@wordpress/block-library 7.17.0 → 7.19.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 (374) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/audio/edit.js +44 -4
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/button/deprecated.js +16 -2
  5. package/build/button/deprecated.js.map +1 -1
  6. package/build/button/edit.js +14 -8
  7. package/build/button/edit.js.map +1 -1
  8. package/build/button/index.js +4 -1
  9. package/build/button/index.js.map +1 -1
  10. package/build/button/save.js +2 -0
  11. package/build/button/save.js.map +1 -1
  12. package/build/buttons/edit.native.js +1 -1
  13. package/build/buttons/edit.native.js.map +1 -1
  14. package/build/columns/transforms.js +5 -0
  15. package/build/columns/transforms.js.map +1 -1
  16. package/build/comment-template/index.js +6 -2
  17. package/build/comment-template/index.js.map +1 -1
  18. package/build/cover/edit/index.js +3 -1
  19. package/build/cover/edit/index.js.map +1 -1
  20. package/build/cover/edit/inspector-controls.js +3 -7
  21. package/build/cover/edit/inspector-controls.js.map +1 -1
  22. package/build/embed/deprecated.js +43 -4
  23. package/build/embed/deprecated.js.map +1 -1
  24. package/build/file/deprecated.js +108 -4
  25. package/build/file/deprecated.js.map +1 -1
  26. package/build/file/transforms.js +3 -9
  27. package/build/file/transforms.js.map +1 -1
  28. package/build/gallery/deprecated.js +148 -23
  29. package/build/gallery/deprecated.js.map +1 -1
  30. package/build/gallery/gallery.js +3 -2
  31. package/build/gallery/gallery.js.map +1 -1
  32. package/build/gallery/use-image-sizes.js +2 -1
  33. package/build/gallery/use-image-sizes.js.map +1 -1
  34. package/build/gallery/v1/edit.js +6 -3
  35. package/build/gallery/v1/edit.js.map +1 -1
  36. package/build/group/edit.js +105 -48
  37. package/build/group/edit.js.map +1 -1
  38. package/build/group/index.js +3 -0
  39. package/build/group/index.js.map +1 -1
  40. package/build/group/placeholder.js +168 -0
  41. package/build/group/placeholder.js.map +1 -0
  42. package/build/group/variations.js +3 -3
  43. package/build/group/variations.js.map +1 -1
  44. package/build/image/edit.native.js +1 -1
  45. package/build/image/edit.native.js.map +1 -1
  46. package/build/image/image.js +6 -9
  47. package/build/image/image.js.map +1 -1
  48. package/build/latest-comments/edit.js +2 -1
  49. package/build/latest-comments/edit.js.map +1 -1
  50. package/build/latest-comments/index.js +5 -1
  51. package/build/latest-comments/index.js.map +1 -1
  52. package/build/latest-posts/deprecated.js +13 -0
  53. package/build/latest-posts/deprecated.js.map +1 -1
  54. package/build/latest-posts/edit.js +1 -1
  55. package/build/latest-posts/edit.js.map +1 -1
  56. package/build/latest-posts/index.js +13 -0
  57. package/build/latest-posts/index.js.map +1 -1
  58. package/build/list/utils.js +4 -8
  59. package/build/list/utils.js.map +1 -1
  60. package/build/list-item/edit.js +2 -1
  61. package/build/list-item/edit.js.map +1 -1
  62. package/build/list-item/hooks/use-outdent-list-item.js +5 -7
  63. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  64. package/build/navigation/edit/index.js +94 -103
  65. package/build/navigation/edit/index.js.map +1 -1
  66. package/build/navigation/edit/manage-menus-button.js +36 -0
  67. package/build/navigation/edit/manage-menus-button.js.map +1 -0
  68. package/build/navigation/edit/navigation-menu-selector.js +12 -5
  69. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  70. package/build/navigation/edit/responsive-wrapper.js +2 -6
  71. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  72. package/build/navigation/edit/unsaved-inner-blocks.js +5 -17
  73. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  74. package/build/navigation-link/edit.js +14 -3
  75. package/build/navigation-link/edit.js.map +1 -1
  76. package/build/navigation-submenu/edit.js +4 -4
  77. package/build/navigation-submenu/edit.js.map +1 -1
  78. package/build/page-list/edit.js +29 -10
  79. package/build/page-list/edit.js.map +1 -1
  80. package/build/post-author/edit.js +35 -20
  81. package/build/post-author/edit.js.map +1 -1
  82. package/build/post-comments-count/index.js +4 -0
  83. package/build/post-comments-count/index.js.map +1 -1
  84. package/build/post-comments-form/index.js +4 -0
  85. package/build/post-comments-form/index.js.map +1 -1
  86. package/build/post-comments-link/index.js +4 -0
  87. package/build/post-comments-link/index.js.map +1 -1
  88. package/build/post-content/edit.js +14 -6
  89. package/build/post-content/edit.js.map +1 -1
  90. package/build/post-content/index.js +3 -0
  91. package/build/post-content/index.js.map +1 -1
  92. package/build/pullquote/deprecated.js +6 -6
  93. package/build/pullquote/deprecated.js.map +1 -1
  94. package/build/search/edit.js +1 -3
  95. package/build/search/edit.js.map +1 -1
  96. package/build/site-logo/edit.js +2 -2
  97. package/build/site-logo/edit.js.map +1 -1
  98. package/build/site-tagline/edit.js +21 -9
  99. package/build/site-tagline/edit.js.map +1 -1
  100. package/build/site-title/edit/index.js +20 -8
  101. package/build/site-title/edit/index.js.map +1 -1
  102. package/build/social-link/edit.js +11 -2
  103. package/build/social-link/edit.js.map +1 -1
  104. package/build/social-link/index.js +3 -0
  105. package/build/social-link/index.js.map +1 -1
  106. package/build/spacer/controls.js +3 -7
  107. package/build/spacer/controls.js.map +1 -1
  108. package/build/table/deprecated.js +282 -27
  109. package/build/table/deprecated.js.map +1 -1
  110. package/build/table/state.js +1 -1
  111. package/build/table/state.js.map +1 -1
  112. package/build/template-part/variations.js +5 -0
  113. package/build/template-part/variations.js.map +1 -1
  114. package/build/utils/clean-empty-object.js +5 -4
  115. package/build/utils/clean-empty-object.js.map +1 -1
  116. package/build/video/deprecated.js +159 -0
  117. package/build/video/deprecated.js.map +1 -0
  118. package/build/video/edit.js +41 -5
  119. package/build/video/edit.js.map +1 -1
  120. package/build/video/index.js +3 -0
  121. package/build/video/index.js.map +1 -1
  122. package/build/video/tracks-editor.js +3 -28
  123. package/build/video/tracks-editor.js.map +1 -1
  124. package/build-module/audio/edit.js +46 -7
  125. package/build-module/audio/edit.js.map +1 -1
  126. package/build-module/button/deprecated.js +16 -2
  127. package/build-module/button/deprecated.js.map +1 -1
  128. package/build-module/button/edit.js +16 -10
  129. package/build-module/button/edit.js.map +1 -1
  130. package/build-module/button/index.js +4 -1
  131. package/build-module/button/index.js.map +1 -1
  132. package/build-module/button/save.js +2 -0
  133. package/build-module/button/save.js.map +1 -1
  134. package/build-module/buttons/edit.native.js +1 -1
  135. package/build-module/buttons/edit.native.js.map +1 -1
  136. package/build-module/columns/transforms.js +5 -0
  137. package/build-module/columns/transforms.js.map +1 -1
  138. package/build-module/comment-template/index.js +6 -2
  139. package/build-module/comment-template/index.js.map +1 -1
  140. package/build-module/cover/edit/index.js +3 -1
  141. package/build-module/cover/edit/index.js.map +1 -1
  142. package/build-module/cover/edit/inspector-controls.js +4 -8
  143. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  144. package/build-module/embed/deprecated.js +44 -5
  145. package/build-module/embed/deprecated.js.map +1 -1
  146. package/build-module/file/deprecated.js +108 -4
  147. package/build-module/file/deprecated.js.map +1 -1
  148. package/build-module/file/transforms.js +3 -8
  149. package/build-module/file/transforms.js.map +1 -1
  150. package/build-module/gallery/deprecated.js +147 -25
  151. package/build-module/gallery/deprecated.js.map +1 -1
  152. package/build-module/gallery/gallery.js +3 -2
  153. package/build-module/gallery/gallery.js.map +1 -1
  154. package/build-module/gallery/use-image-sizes.js +3 -2
  155. package/build-module/gallery/use-image-sizes.js.map +1 -1
  156. package/build-module/gallery/v1/edit.js +7 -4
  157. package/build-module/gallery/v1/edit.js.map +1 -1
  158. package/build-module/group/edit.js +101 -48
  159. package/build-module/group/edit.js.map +1 -1
  160. package/build-module/group/index.js +3 -0
  161. package/build-module/group/index.js.map +1 -1
  162. package/build-module/group/placeholder.js +154 -0
  163. package/build-module/group/placeholder.js.map +1 -0
  164. package/build-module/group/variations.js +3 -3
  165. package/build-module/group/variations.js.map +1 -1
  166. package/build-module/image/edit.native.js +1 -1
  167. package/build-module/image/edit.native.js.map +1 -1
  168. package/build-module/image/image.js +8 -11
  169. package/build-module/image/image.js.map +1 -1
  170. package/build-module/latest-comments/edit.js +2 -1
  171. package/build-module/latest-comments/edit.js.map +1 -1
  172. package/build-module/latest-comments/index.js +5 -1
  173. package/build-module/latest-comments/index.js.map +1 -1
  174. package/build-module/latest-posts/deprecated.js +13 -0
  175. package/build-module/latest-posts/deprecated.js.map +1 -1
  176. package/build-module/latest-posts/edit.js +2 -2
  177. package/build-module/latest-posts/edit.js.map +1 -1
  178. package/build-module/latest-posts/index.js +13 -0
  179. package/build-module/latest-posts/index.js.map +1 -1
  180. package/build-module/list/utils.js +5 -9
  181. package/build-module/list/utils.js.map +1 -1
  182. package/build-module/list-item/edit.js +2 -1
  183. package/build-module/list-item/edit.js.map +1 -1
  184. package/build-module/list-item/hooks/use-outdent-list-item.js +5 -6
  185. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  186. package/build-module/navigation/edit/index.js +96 -105
  187. package/build-module/navigation/edit/index.js.map +1 -1
  188. package/build-module/navigation/edit/manage-menus-button.js +26 -0
  189. package/build-module/navigation/edit/manage-menus-button.js.map +1 -0
  190. package/build-module/navigation/edit/navigation-menu-selector.js +13 -6
  191. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  192. package/build-module/navigation/edit/responsive-wrapper.js +2 -6
  193. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  194. package/build-module/navigation/edit/unsaved-inner-blocks.js +7 -18
  195. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  196. package/build-module/navigation-link/edit.js +14 -4
  197. package/build-module/navigation-link/edit.js.map +1 -1
  198. package/build-module/navigation-submenu/edit.js +4 -4
  199. package/build-module/navigation-submenu/edit.js.map +1 -1
  200. package/build-module/page-list/edit.js +29 -10
  201. package/build-module/page-list/edit.js.map +1 -1
  202. package/build-module/post-author/edit.js +35 -21
  203. package/build-module/post-author/edit.js.map +1 -1
  204. package/build-module/post-comments-count/index.js +4 -0
  205. package/build-module/post-comments-count/index.js.map +1 -1
  206. package/build-module/post-comments-form/index.js +4 -0
  207. package/build-module/post-comments-form/index.js.map +1 -1
  208. package/build-module/post-comments-link/index.js +4 -0
  209. package/build-module/post-comments-link/index.js.map +1 -1
  210. package/build-module/post-content/edit.js +14 -6
  211. package/build-module/post-content/edit.js.map +1 -1
  212. package/build-module/post-content/index.js +3 -0
  213. package/build-module/post-content/index.js.map +1 -1
  214. package/build-module/pullquote/deprecated.js +7 -7
  215. package/build-module/pullquote/deprecated.js.map +1 -1
  216. package/build-module/search/edit.js +1 -3
  217. package/build-module/search/edit.js.map +1 -1
  218. package/build-module/site-logo/edit.js +3 -3
  219. package/build-module/site-logo/edit.js.map +1 -1
  220. package/build-module/site-tagline/edit.js +23 -11
  221. package/build-module/site-tagline/edit.js.map +1 -1
  222. package/build-module/site-title/edit/index.js +22 -10
  223. package/build-module/site-title/edit/index.js.map +1 -1
  224. package/build-module/social-link/edit.js +11 -2
  225. package/build-module/social-link/edit.js.map +1 -1
  226. package/build-module/social-link/index.js +3 -0
  227. package/build-module/social-link/index.js.map +1 -1
  228. package/build-module/spacer/controls.js +4 -8
  229. package/build-module/spacer/controls.js.map +1 -1
  230. package/build-module/table/deprecated.js +282 -27
  231. package/build-module/table/deprecated.js.map +1 -1
  232. package/build-module/table/state.js +1 -1
  233. package/build-module/table/state.js.map +1 -1
  234. package/build-module/template-part/variations.js +5 -0
  235. package/build-module/template-part/variations.js.map +1 -1
  236. package/build-module/utils/clean-empty-object.js +5 -5
  237. package/build-module/utils/clean-empty-object.js.map +1 -1
  238. package/build-module/video/deprecated.js +147 -0
  239. package/build-module/video/deprecated.js.map +1 -0
  240. package/build-module/video/edit.js +45 -9
  241. package/build-module/video/edit.js.map +1 -1
  242. package/build-module/video/index.js +2 -0
  243. package/build-module/video/index.js.map +1 -1
  244. package/build-module/video/tracks-editor.js +4 -29
  245. package/build-module/video/tracks-editor.js.map +1 -1
  246. package/build-style/button/style-rtl.css +1 -0
  247. package/build-style/button/style.css +1 -0
  248. package/build-style/comment-template/style-rtl.css +1 -0
  249. package/build-style/comment-template/style.css +1 -0
  250. package/build-style/editor-rtl.css +80 -5
  251. package/build-style/editor.css +80 -5
  252. package/build-style/group/editor-rtl.css +44 -0
  253. package/build-style/group/editor.css +44 -0
  254. package/build-style/latest-comments/style-rtl.css +1 -0
  255. package/build-style/latest-comments/style.css +1 -0
  256. package/build-style/latest-posts/style-rtl.css +3 -0
  257. package/build-style/latest-posts/style.css +3 -0
  258. package/build-style/navigation/editor-rtl.css +27 -4
  259. package/build-style/navigation/editor.css +27 -4
  260. package/build-style/navigation/style-rtl.css +13 -1
  261. package/build-style/navigation/style.css +13 -1
  262. package/build-style/navigation-link/editor-rtl.css +8 -1
  263. package/build-style/navigation-link/editor.css +8 -1
  264. package/build-style/post-comments-form/style-rtl.css +3 -0
  265. package/build-style/post-comments-form/style.css +3 -0
  266. package/build-style/query/editor-rtl.css +1 -1
  267. package/build-style/query/editor.css +1 -1
  268. package/build-style/query-pagination/style-rtl.css +1 -1
  269. package/build-style/query-pagination/style.css +1 -1
  270. package/build-style/style-rtl.css +28 -2
  271. package/build-style/style.css +28 -2
  272. package/build-style/table/editor-rtl.css +1 -0
  273. package/build-style/table/editor.css +1 -0
  274. package/build-style/table/style-rtl.css +5 -0
  275. package/build-style/table/style.css +5 -0
  276. package/build-style/table/theme-rtl.css +1 -3
  277. package/build-style/table/theme.css +1 -3
  278. package/build-style/theme-rtl.css +1 -3
  279. package/build-style/theme.css +1 -3
  280. package/package.json +29 -28
  281. package/src/audio/edit.js +79 -24
  282. package/src/avatar/index.php +1 -1
  283. package/src/block/test/edit.native.js +8 -8
  284. package/src/button/block.json +4 -1
  285. package/src/button/deprecated.js +18 -2
  286. package/src/button/edit.js +12 -10
  287. package/src/button/save.js +12 -2
  288. package/src/button/style.scss +2 -0
  289. package/src/buttons/edit.native.js +1 -1
  290. package/src/buttons/test/edit.native.js +19 -19
  291. package/src/columns/test/edit.native.js +32 -32
  292. package/src/columns/transforms.js +8 -0
  293. package/src/comment-template/block.json +6 -2
  294. package/src/comment-template/style.scss +2 -0
  295. package/src/cover/edit/index.js +3 -1
  296. package/src/cover/edit/inspector-controls.js +11 -13
  297. package/src/cover/test/edit.native.js +26 -26
  298. package/src/embed/deprecated.js +53 -26
  299. package/src/embed/test/index.native.js +43 -43
  300. package/src/file/deprecated.js +130 -2
  301. package/src/file/transforms.js +3 -8
  302. package/src/gallery/deprecated.js +129 -4
  303. package/src/gallery/gallery.js +2 -0
  304. package/src/gallery/index.php +19 -10
  305. package/src/gallery/test/index.native.js +11 -11
  306. package/src/gallery/use-image-sizes.js +3 -2
  307. package/src/gallery/v1/edit.js +21 -25
  308. package/src/group/block.json +3 -0
  309. package/src/group/edit.js +105 -46
  310. package/src/group/editor.scss +48 -0
  311. package/src/group/placeholder.js +187 -0
  312. package/src/group/test/edit.native.js +3 -3
  313. package/src/group/test/placeholder.js +78 -0
  314. package/src/group/variations.js +3 -3
  315. package/src/image/edit.native.js +1 -1
  316. package/src/image/image.js +22 -10
  317. package/src/image/test/edit.native.js +17 -17
  318. package/src/latest-comments/block.json +5 -1
  319. package/src/latest-comments/edit.js +1 -0
  320. package/src/latest-comments/style.scss +3 -0
  321. package/src/latest-posts/block.json +13 -0
  322. package/src/latest-posts/edit.js +2 -2
  323. package/src/latest-posts/style.scss +3 -0
  324. package/src/list/test/edit.native.js +36 -36
  325. package/src/list/utils.js +3 -11
  326. package/src/list-item/edit.js +1 -0
  327. package/src/list-item/hooks/use-outdent-list-item.js +3 -6
  328. package/src/missing/test/edit-integration.native.js +5 -5
  329. package/src/navigation/edit/index.js +186 -161
  330. package/src/navigation/edit/manage-menus-button.js +21 -0
  331. package/src/navigation/edit/navigation-menu-selector.js +20 -5
  332. package/src/navigation/edit/responsive-wrapper.js +2 -10
  333. package/src/navigation/edit/unsaved-inner-blocks.js +5 -22
  334. package/src/navigation/editor.scss +29 -4
  335. package/src/navigation/style.scss +19 -1
  336. package/src/navigation-link/edit.js +13 -4
  337. package/src/navigation-link/editor.scss +8 -0
  338. package/src/navigation-submenu/edit.js +7 -5
  339. package/src/page-list/edit.js +36 -22
  340. package/src/post-author/edit.js +44 -20
  341. package/src/post-comments-count/block.json +4 -0
  342. package/src/post-comments-form/block.json +4 -0
  343. package/src/post-comments-form/style.scss +3 -0
  344. package/src/post-comments-link/block.json +4 -0
  345. package/src/post-content/block.json +3 -0
  346. package/src/post-content/edit.js +8 -4
  347. package/src/pullquote/deprecated.js +7 -7
  348. package/src/query/editor.scss +1 -1
  349. package/src/query-pagination/style.scss +1 -1
  350. package/src/read-more/index.php +9 -2
  351. package/src/search/edit.js +1 -1
  352. package/src/shortcode/test/edit.native.js +5 -5
  353. package/src/site-logo/edit.js +3 -3
  354. package/src/site-tagline/edit.js +25 -18
  355. package/src/site-title/edit/index.js +26 -12
  356. package/src/social-link/block.json +3 -0
  357. package/src/social-link/edit.js +8 -1
  358. package/src/social-link/index.php +11 -7
  359. package/src/social-link/test/index.native.js +10 -10
  360. package/src/social-links/test/edit.native.js +4 -4
  361. package/src/spacer/controls.js +10 -12
  362. package/src/spacer/test/index.native.js +17 -17
  363. package/src/table/deprecated.js +587 -348
  364. package/src/table/editor.scss +1 -0
  365. package/src/table/state.js +1 -1
  366. package/src/table/style.scss +7 -0
  367. package/src/table/theme.scss +1 -3
  368. package/src/template-part/index.php +5 -0
  369. package/src/template-part/variations.js +4 -0
  370. package/src/utils/clean-empty-object.js +5 -6
  371. package/src/video/deprecated.js +57 -0
  372. package/src/video/edit.js +71 -23
  373. package/src/video/index.js +2 -0
  374. package/src/video/tracks-editor.js +12 -28
@@ -75,7 +75,7 @@ describe( 'Columns block', () => {
75
75
  const screen = await initializeEditor( {
76
76
  initialHtml: TWO_COLUMNS_BLOCK_HTML,
77
77
  } );
78
- const { getByA11yLabel } = screen;
78
+ const { getByLabelText } = screen;
79
79
 
80
80
  // Get block
81
81
  const columnsBlock = await getBlock( screen, 'Columns' );
@@ -85,7 +85,7 @@ describe( 'Columns block', () => {
85
85
  await openBlockSettings( screen );
86
86
 
87
87
  // Update the number of columns by adding one
88
- const columnsControl = getByA11yLabel( /Number of columns/ );
88
+ const columnsControl = getByLabelText( /Number of columns/ );
89
89
  fireEvent( columnsControl, 'accessibilityAction', {
90
90
  nativeEvent: { actionName: 'increment' },
91
91
  } );
@@ -97,7 +97,7 @@ describe( 'Columns block', () => {
97
97
  const screen = await initializeEditor( {
98
98
  initialHtml: TWO_COLUMNS_BLOCK_HTML,
99
99
  } );
100
- const { getByA11yLabel } = screen;
100
+ const { getByLabelText } = screen;
101
101
 
102
102
  // Wait for the block to be created.
103
103
  const columnsBlock = await getBlock( screen, 'Columns' );
@@ -107,7 +107,7 @@ describe( 'Columns block', () => {
107
107
  await openBlockSettings( screen );
108
108
 
109
109
  // Update the number of columns by removing one
110
- const columnsControl = getByA11yLabel( /Number of columns/ );
110
+ const columnsControl = getByLabelText( /Number of columns/ );
111
111
  fireEvent( columnsControl, 'accessibilityAction', {
112
112
  nativeEvent: { actionName: 'decrement' },
113
113
  } );
@@ -117,7 +117,7 @@ describe( 'Columns block', () => {
117
117
 
118
118
  it( 'reaches the minimum limit of number of column blocks', async () => {
119
119
  const screen = await initializeEditor();
120
- const { getByA11yLabel, getByTestId } = screen;
120
+ const { getByLabelText, getByTestId } = screen;
121
121
 
122
122
  // Add block
123
123
  await addBlock( screen, 'Columns' );
@@ -131,7 +131,7 @@ describe( 'Columns block', () => {
131
131
  const blockVariationModal = getByTestId( 'block-variation-modal' );
132
132
  await waitFor( () => blockVariationModal.props.isVisible );
133
133
  const threeColumnLayout =
134
- within( blockVariationModal ).getByA11yLabel(
134
+ within( blockVariationModal ).getByLabelText(
135
135
  /33 \/ 33 \/ 33 block/
136
136
  );
137
137
  fireEvent.press( threeColumnLayout );
@@ -144,7 +144,7 @@ describe( 'Columns block', () => {
144
144
  await openBlockSettings( screen );
145
145
 
146
146
  // Update the number of columns by adding one
147
- const columnsControl = getByA11yLabel( /Number of columns/ );
147
+ const columnsControl = getByLabelText( /Number of columns/ );
148
148
  fireEvent( columnsControl, 'accessibilityAction', {
149
149
  nativeEvent: { actionName: 'increment' },
150
150
  } );
@@ -164,7 +164,7 @@ describe( 'Columns block', () => {
164
164
  const screen = await initializeEditor( {
165
165
  initialHtml: TWO_COLUMNS_BLOCK_HTML,
166
166
  } );
167
- const { getByA11yLabel } = screen;
167
+ const { getByLabelText } = screen;
168
168
 
169
169
  // Get block
170
170
  const columnsBlock = await getBlock( screen, 'Columns' );
@@ -175,11 +175,11 @@ describe( 'Columns block', () => {
175
175
  fireEvent.press( firstColumnBlock );
176
176
 
177
177
  // Open block actions menu
178
- const blockActionsButton = getByA11yLabel( /Open Block Actions Menu/ );
178
+ const blockActionsButton = getByLabelText( /Open Block Actions Menu/ );
179
179
  fireEvent.press( blockActionsButton );
180
180
 
181
181
  // Delete block
182
- const deleteButton = getByA11yLabel( /Remove block/ );
182
+ const deleteButton = getByLabelText( /Remove block/ );
183
183
  fireEvent.press( deleteButton );
184
184
 
185
185
  expect( getEditorHtml() ).toMatchSnapshot();
@@ -189,7 +189,7 @@ describe( 'Columns block', () => {
189
189
  const screen = await initializeEditor( {
190
190
  initialHtml: TWO_COLUMNS_BLOCK_HTML,
191
191
  } );
192
- const { getByA11yLabel } = screen;
192
+ const { getByLabelText } = screen;
193
193
 
194
194
  // Get block
195
195
  const columnsBlock = await getBlock( screen, 'Columns' );
@@ -200,11 +200,11 @@ describe( 'Columns block', () => {
200
200
  fireEvent.press( firstColumnBlock );
201
201
 
202
202
  // Open block actions menu
203
- let blockActionsButton = getByA11yLabel( /Open Block Actions Menu/ );
203
+ let blockActionsButton = getByLabelText( /Open Block Actions Menu/ );
204
204
  fireEvent.press( blockActionsButton );
205
205
 
206
206
  // Delete block
207
- let deleteButton = getByA11yLabel( /Remove block/ );
207
+ let deleteButton = getByLabelText( /Remove block/ );
208
208
  fireEvent.press( deleteButton );
209
209
 
210
210
  // Get the only left column
@@ -212,11 +212,11 @@ describe( 'Columns block', () => {
212
212
  fireEvent.press( lastColumnBlock );
213
213
 
214
214
  // Open block actions menu
215
- blockActionsButton = getByA11yLabel( /Open Block Actions Menu/ );
215
+ blockActionsButton = getByLabelText( /Open Block Actions Menu/ );
216
216
  fireEvent.press( blockActionsButton );
217
217
 
218
218
  // Delete block
219
- deleteButton = getByA11yLabel( /Remove block/ );
219
+ deleteButton = getByLabelText( /Remove block/ );
220
220
  fireEvent.press( deleteButton );
221
221
 
222
222
  expect( getEditorHtml() ).toMatchSnapshot();
@@ -226,20 +226,20 @@ describe( 'Columns block', () => {
226
226
  const screen = await initializeEditor( {
227
227
  initialHtml: TWO_COLUMNS_BLOCK_HTML,
228
228
  } );
229
- const { getByA11yLabel } = screen;
229
+ const { getByLabelText } = screen;
230
230
 
231
231
  // Get block
232
232
  const columnsBlock = await getBlock( screen, 'Columns' );
233
233
  fireEvent.press( columnsBlock );
234
234
 
235
235
  // Open vertical alignment menu
236
- const verticalAlignmentButton = getByA11yLabel(
236
+ const verticalAlignmentButton = getByLabelText(
237
237
  /Change vertical alignment/
238
238
  );
239
239
  fireEvent.press( verticalAlignmentButton );
240
240
 
241
241
  // Get Align top button
242
- const verticalTopAlignmentButton = getByA11yLabel( /Align top/ );
242
+ const verticalTopAlignmentButton = getByLabelText( /Align top/ );
243
243
  fireEvent.press( verticalTopAlignmentButton );
244
244
 
245
245
  expect( getEditorHtml() ).toMatchSnapshot();
@@ -249,20 +249,20 @@ describe( 'Columns block', () => {
249
249
  const screen = await initializeEditor( {
250
250
  initialHtml: TWO_COLUMNS_BLOCK_HTML,
251
251
  } );
252
- const { getByA11yLabel } = screen;
252
+ const { getByLabelText } = screen;
253
253
 
254
254
  // Get block
255
255
  const columnsBlock = await getBlock( screen, 'Columns' );
256
256
  fireEvent.press( columnsBlock );
257
257
 
258
258
  // Open vertical alignment menu
259
- const verticalAlignmentButton = getByA11yLabel(
259
+ const verticalAlignmentButton = getByLabelText(
260
260
  /Change vertical alignment/
261
261
  );
262
262
  fireEvent.press( verticalAlignmentButton );
263
263
 
264
264
  // Get Align top button
265
- const verticalTopAlignmentButton = getByA11yLabel( /Align top/ );
265
+ const verticalTopAlignmentButton = getByLabelText( /Align top/ );
266
266
  fireEvent.press( verticalTopAlignmentButton );
267
267
 
268
268
  // Get the first column
@@ -273,7 +273,7 @@ describe( 'Columns block', () => {
273
273
  fireEvent.press( verticalAlignmentButton );
274
274
 
275
275
  // Get Align bottom button
276
- const verticalBottomAlignmentButton = getByA11yLabel( /Align bottom/ );
276
+ const verticalBottomAlignmentButton = getByLabelText( /Align bottom/ );
277
277
  fireEvent.press( verticalBottomAlignmentButton );
278
278
 
279
279
  expect( getEditorHtml() ).toMatchSnapshot();
@@ -283,20 +283,20 @@ describe( 'Columns block', () => {
283
283
  const screen = await initializeEditor( {
284
284
  initialHtml: TWO_COLUMNS_BLOCK_HTML,
285
285
  } );
286
- const { getByA11yLabel } = screen;
286
+ const { getByLabelText } = screen;
287
287
 
288
288
  // Get block
289
289
  const columnsBlock = await getBlock( screen, 'Columns' );
290
290
  fireEvent.press( columnsBlock );
291
291
 
292
292
  // Open vertical alignment menu
293
- const verticalAlignmentButton = getByA11yLabel(
293
+ const verticalAlignmentButton = getByLabelText(
294
294
  /Change vertical alignment/
295
295
  );
296
296
  fireEvent.press( verticalAlignmentButton );
297
297
 
298
298
  // Get Align top button
299
- const verticalTopAlignmentButton = getByA11yLabel( /Align top/ );
299
+ const verticalTopAlignmentButton = getByLabelText( /Align top/ );
300
300
  fireEvent.press( verticalTopAlignmentButton );
301
301
 
302
302
  // Add a new column
@@ -310,7 +310,7 @@ describe( 'Columns block', () => {
310
310
  describe( 'when using columns percentage mechanism', () => {
311
311
  it( "updates the slider's input value", async () => {
312
312
  const screen = await initializeEditor();
313
- const { getByA11yLabel, getByTestId } = screen;
313
+ const { getByLabelText, getByTestId } = screen;
314
314
 
315
315
  // Add block
316
316
  await addBlock( screen, 'Columns' );
@@ -324,7 +324,7 @@ describe( 'Columns block', () => {
324
324
  const blockVariationModal = getByTestId( 'block-variation-modal' );
325
325
  await waitFor( () => blockVariationModal.props.isVisible );
326
326
  const threeColumnLayout =
327
- within( blockVariationModal ).getByA11yLabel(
327
+ within( blockVariationModal ).getByLabelText(
328
328
  /33 \/ 33 \/ 33 block/
329
329
  );
330
330
  fireEvent.press( threeColumnLayout );
@@ -337,7 +337,7 @@ describe( 'Columns block', () => {
337
337
  await openBlockSettings( screen );
338
338
 
339
339
  // Get width control
340
- const widthControl = getByA11yLabel( /Width. Value is/ );
340
+ const widthControl = getByLabelText( /Width. Value is/ );
341
341
  fireEvent.press( within( widthControl ).getByText( '33.3' ) );
342
342
  const widthTextInput =
343
343
  within( widthControl ).getByDisplayValue( '33.3' );
@@ -350,7 +350,7 @@ describe( 'Columns block', () => {
350
350
  const screen = await initializeEditor( {
351
351
  initialHtml: TWO_COLUMNS_BLOCK_HTML,
352
352
  } );
353
- const { getByA11yLabel, getByTestId } = screen;
353
+ const { getByLabelText, getByTestId } = screen;
354
354
 
355
355
  // Get block
356
356
  const columnsBlock = await getBlock( screen, 'Columns' );
@@ -364,7 +364,7 @@ describe( 'Columns block', () => {
364
364
  await openBlockSettings( screen );
365
365
 
366
366
  // Set custom width value for the first column
367
- let widthControl = getByA11yLabel( /Width. Value is/ );
367
+ let widthControl = getByLabelText( /Width. Value is/ );
368
368
  fireEvent.press( within( widthControl ).getByText( '50' ) );
369
369
  let widthTextInput =
370
370
  within( widthControl ).getByDisplayValue( '50' );
@@ -383,7 +383,7 @@ describe( 'Columns block', () => {
383
383
  await openBlockSettings( screen );
384
384
 
385
385
  // Set custom width value for the second column
386
- widthControl = getByA11yLabel( /Width. Value is/ );
386
+ widthControl = getByLabelText( /Width. Value is/ );
387
387
  fireEvent.press( within( widthControl ).getByText( '50' ) );
388
388
  widthTextInput = within( widthControl ).getByDisplayValue( '50' );
389
389
  fireEvent.changeText( widthTextInput, '55.5' );
@@ -422,7 +422,7 @@ describe( 'Columns block', () => {
422
422
  );
423
423
  await waitFor( () => blockVariationModal.props.isVisible );
424
424
  const columnLayout =
425
- within( blockVariationModal ).getByA11yLabel( layout );
425
+ within( blockVariationModal ).getByLabelText( layout );
426
426
  fireEvent.press( columnLayout );
427
427
 
428
428
  expect( getEditorHtml() ).toMatchSnapshot();
@@ -105,6 +105,14 @@ const transforms = {
105
105
  },
106
106
  },
107
107
  ],
108
+ to: [
109
+ {
110
+ type: 'block',
111
+ blocks: [ '*' ],
112
+ transform: ( attributes, innerBlocks ) =>
113
+ innerBlocks.flatMap( ( innerBlock ) => innerBlock.innerBlocks ),
114
+ },
115
+ ],
108
116
  };
109
117
 
110
118
  export default transforms;
@@ -9,9 +9,13 @@
9
9
  "textdomain": "default",
10
10
  "usesContext": [ "postId" ],
11
11
  "supports": {
12
- "reusable": false,
13
- "html": false,
14
12
  "align": true,
13
+ "html": false,
14
+ "reusable": false,
15
+ "spacing": {
16
+ "margin": true,
17
+ "padding": true
18
+ },
15
19
  "typography": {
16
20
  "fontSize": true,
17
21
  "lineHeight": true,
@@ -1,4 +1,6 @@
1
1
  .wp-block-comment-template {
2
+ // This block has customizable padding, border-box makes that more predictable.
3
+ box-sizing: border-box;
2
4
  margin-bottom: 0;
3
5
  max-width: 100%;
4
6
  list-style: none;
@@ -188,7 +188,9 @@ function CoverEdit( {
188
188
  className: 'wp-block-cover__inner-container',
189
189
  },
190
190
  {
191
- template: innerBlocksTemplate,
191
+ // Avoid template sync when the `templateLock` value is `all` or `contentOnly`.
192
+ // See: https://github.com/WordPress/gutenberg/pull/45632
193
+ template: ! hasInnerBlocks ? innerBlocksTemplate : undefined,
192
194
  templateInsertUpdatesSelection: true,
193
195
  allowedBlocks,
194
196
  templateLock,
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { Fragment, useMemo } from '@wordpress/element';
5
5
  import {
6
- BaseControl,
7
6
  Button,
8
7
  ExternalLink,
9
8
  FocalPointPicker,
@@ -73,18 +72,17 @@ function CoverHeightInput( {
73
72
  const min = isPx ? COVER_MIN_HEIGHT : 0;
74
73
 
75
74
  return (
76
- <BaseControl label={ __( 'Minimum height of cover' ) } id={ inputId }>
77
- <UnitControl
78
- id={ inputId }
79
- isResetValueOnUnitChange
80
- min={ min }
81
- onChange={ handleOnChange }
82
- onUnitChange={ onUnitChange }
83
- style={ { maxWidth: 80 } }
84
- units={ units }
85
- value={ computedValue }
86
- />
87
- </BaseControl>
75
+ <UnitControl
76
+ label={ __( 'Minimum height of cover' ) }
77
+ id={ inputId }
78
+ isResetValueOnUnitChange
79
+ min={ min }
80
+ onChange={ handleOnChange }
81
+ onUnitChange={ onUnitChange }
82
+ __unstableInputWidth={ '80px' }
83
+ units={ units }
84
+ value={ computedValue }
85
+ />
88
86
  );
89
87
  }
90
88
  export default function CoverInspectorControls( {
@@ -307,7 +307,7 @@ describe( 'when an image is attached', () => {
307
307
  const screen = await initializeEditor( {
308
308
  initialHtml: COVER_BLOCK_IMAGE_HTML,
309
309
  } );
310
- const { getByA11yLabel } = screen;
310
+ const { getByLabelText } = screen;
311
311
 
312
312
  // Get block
313
313
  const coverBlock = await getBlock( screen, 'Cover' );
@@ -317,7 +317,7 @@ describe( 'when an image is attached', () => {
317
317
  await openBlockSettings( screen );
318
318
 
319
319
  // Update Opacity attribute
320
- const opacityControl = getByA11yLabel( /Opacity/ );
320
+ const opacityControl = getByLabelText( /Opacity/ );
321
321
  fireEvent.press( within( opacityControl ).getByText( '50' ) );
322
322
  const heightTextInput =
323
323
  within( opacityControl ).getByDisplayValue( '50' );
@@ -334,12 +334,12 @@ describe( 'when an image is attached', () => {
334
334
 
335
335
  describe( 'color settings', () => {
336
336
  it( 'sets a color for the overlay background when the placeholder is visible', async () => {
337
- const { getByTestId, getByA11yLabel } = await initializeEditor( {
337
+ const { getByTestId, getByLabelText } = await initializeEditor( {
338
338
  initialHtml: COVER_BLOCK_PLACEHOLDER_HTML,
339
339
  } );
340
340
 
341
341
  const block = await waitFor( () =>
342
- getByA11yLabel( 'Cover block. Empty' )
342
+ getByLabelText( 'Cover block. Empty' )
343
343
  );
344
344
  expect( block ).toBeDefined();
345
345
 
@@ -354,13 +354,13 @@ describe( 'color settings', () => {
354
354
 
355
355
  // Wait for the block to be created.
356
356
  const coverBlockWithOverlay = await waitFor( () =>
357
- getByA11yLabel( /Cover Block\. Row 1/ )
357
+ getByLabelText( /Cover Block\. Row 1/ )
358
358
  );
359
359
  fireEvent.press( coverBlockWithOverlay );
360
360
 
361
361
  // Open Block Settings.
362
362
  const settingsButton = await waitFor( () =>
363
- getByA11yLabel( 'Open Settings' )
363
+ getByLabelText( 'Open Settings' )
364
364
  );
365
365
  fireEvent.press( settingsButton );
366
366
 
@@ -370,7 +370,7 @@ describe( 'color settings', () => {
370
370
 
371
371
  // Open the overlay color settings.
372
372
  const colorOverlay = await waitFor( () =>
373
- getByA11yLabel( 'Color. Empty' )
373
+ getByLabelText( 'Color. Empty' )
374
374
  );
375
375
  expect( colorOverlay ).toBeDefined();
376
376
  fireEvent.press( colorOverlay );
@@ -389,20 +389,20 @@ describe( 'color settings', () => {
389
389
  } );
390
390
 
391
391
  it( 'sets a gradient overlay background when a solid background was already selected', async () => {
392
- const { getByTestId, getByA11yLabel } = await initializeEditor( {
392
+ const { getByTestId, getByLabelText } = await initializeEditor( {
393
393
  initialHtml: COVER_BLOCK_SOLID_COLOR_HTML,
394
394
  } );
395
395
 
396
396
  // Wait for the block to be created.
397
397
  const coverBlock = await waitFor( () =>
398
- getByA11yLabel( /Cover Block\. Row 1/ )
398
+ getByLabelText( /Cover Block\. Row 1/ )
399
399
  );
400
400
  expect( coverBlock ).toBeDefined();
401
401
  fireEvent.press( coverBlock );
402
402
 
403
403
  // Open Block Settings.
404
404
  const settingsButton = await waitFor( () =>
405
- getByA11yLabel( 'Open Settings' )
405
+ getByLabelText( 'Open Settings' )
406
406
  );
407
407
  fireEvent.press( settingsButton );
408
408
 
@@ -412,7 +412,7 @@ describe( 'color settings', () => {
412
412
 
413
413
  // Open the overlay color settings.
414
414
  const colorOverlay = await waitFor( () =>
415
- getByA11yLabel( 'Color. Empty' )
415
+ getByLabelText( 'Color. Empty' )
416
416
  );
417
417
  expect( colorOverlay ).toBeDefined();
418
418
  fireEvent.press( colorOverlay );
@@ -423,7 +423,7 @@ describe( 'color settings', () => {
423
423
 
424
424
  // Open the gradients.
425
425
  const gradientsButton = await waitFor( () =>
426
- getByA11yLabel( 'Gradient' )
426
+ getByLabelText( 'Gradient' )
427
427
  );
428
428
  expect( gradientsButton ).toBeDefined();
429
429
 
@@ -446,12 +446,12 @@ describe( 'color settings', () => {
446
446
  } );
447
447
 
448
448
  it( 'toggles between solid colors and gradients', async () => {
449
- const { getByTestId, getByA11yLabel } = await initializeEditor( {
449
+ const { getByTestId, getByLabelText } = await initializeEditor( {
450
450
  initialHtml: COVER_BLOCK_PLACEHOLDER_HTML,
451
451
  } );
452
452
 
453
453
  const block = await waitFor( () =>
454
- getByA11yLabel( 'Cover block. Empty' )
454
+ getByLabelText( 'Cover block. Empty' )
455
455
  );
456
456
  expect( block ).toBeDefined();
457
457
 
@@ -466,13 +466,13 @@ describe( 'color settings', () => {
466
466
 
467
467
  // Wait for the block to be created.
468
468
  const coverBlockWithOverlay = await waitFor( () =>
469
- getByA11yLabel( /Cover Block\. Row 1/ )
469
+ getByLabelText( /Cover Block\. Row 1/ )
470
470
  );
471
471
  fireEvent.press( coverBlockWithOverlay );
472
472
 
473
473
  // Open Block Settings.
474
474
  const settingsButton = await waitFor( () =>
475
- getByA11yLabel( 'Open Settings' )
475
+ getByLabelText( 'Open Settings' )
476
476
  );
477
477
  fireEvent.press( settingsButton );
478
478
 
@@ -482,7 +482,7 @@ describe( 'color settings', () => {
482
482
 
483
483
  // Open the overlay color settings.
484
484
  const colorOverlay = await waitFor( () =>
485
- getByA11yLabel( 'Color. Empty' )
485
+ getByLabelText( 'Color. Empty' )
486
486
  );
487
487
  expect( colorOverlay ).toBeDefined();
488
488
  fireEvent.press( colorOverlay );
@@ -499,7 +499,7 @@ describe( 'color settings', () => {
499
499
 
500
500
  // Open the gradients.
501
501
  const gradientsButton = await waitFor( () =>
502
- getByA11yLabel( 'Gradient' )
502
+ getByLabelText( 'Gradient' )
503
503
  );
504
504
  expect( gradientsButton ).toBeDefined();
505
505
 
@@ -516,11 +516,11 @@ describe( 'color settings', () => {
516
516
  fireEvent.press( newGradientButton );
517
517
 
518
518
  // Go back to the settings list.
519
- fireEvent.press( await waitFor( () => getByA11yLabel( 'Go back' ) ) );
519
+ fireEvent.press( await waitFor( () => getByLabelText( 'Go back' ) ) );
520
520
 
521
521
  // Find the color setting.
522
522
  const colorSetting = await waitFor( () =>
523
- getByA11yLabel( 'Color. Empty' )
523
+ getByLabelText( 'Color. Empty' )
524
524
  );
525
525
  expect( colorSetting ).toBeDefined();
526
526
  fireEvent.press( colorSetting );
@@ -532,21 +532,21 @@ describe( 'color settings', () => {
532
532
  } );
533
533
 
534
534
  it( 'clears the selected overlay color and mantains the inner blocks', async () => {
535
- const { getByTestId, getByA11yLabel, getByText } =
535
+ const { getByTestId, getByLabelText, getByText } =
536
536
  await initializeEditor( {
537
537
  initialHtml: COVER_BLOCK_SOLID_COLOR_HTML,
538
538
  } );
539
539
 
540
540
  // Wait for the block to be created.
541
541
  const coverBlock = await waitFor( () =>
542
- getByA11yLabel( /Cover Block\. Row 1/ )
542
+ getByLabelText( /Cover Block\. Row 1/ )
543
543
  );
544
544
  expect( coverBlock ).toBeDefined();
545
545
  fireEvent.press( coverBlock );
546
546
 
547
547
  // Open Block Settings.
548
548
  const settingsButton = await waitFor( () =>
549
- getByA11yLabel( 'Open Settings' )
549
+ getByLabelText( 'Open Settings' )
550
550
  );
551
551
  fireEvent.press( settingsButton );
552
552
 
@@ -556,7 +556,7 @@ describe( 'color settings', () => {
556
556
 
557
557
  // Open the overlay color settings.
558
558
  const colorOverlay = await waitFor( () =>
559
- getByA11yLabel( 'Color. Empty' )
559
+ getByLabelText( 'Color. Empty' )
560
560
  );
561
561
  expect( colorOverlay ).toBeDefined();
562
562
  fireEvent.press( colorOverlay );
@@ -635,7 +635,7 @@ describe( 'minimum height settings', () => {
635
635
  const screen = await initializeEditor( {
636
636
  initialHtml: COVER_BLOCK_CUSTOM_HEIGHT_HTML,
637
637
  } );
638
- const { getByA11yLabel, getByText } = screen;
638
+ const { getByLabelText, getByText } = screen;
639
639
 
640
640
  // Get block
641
641
  const coverBlock = await getBlock( screen, 'Cover' );
@@ -649,7 +649,7 @@ describe( 'minimum height settings', () => {
649
649
  fireEvent.press( getByText( unitName ) );
650
650
 
651
651
  // Update height attribute
652
- const heightControl = getByA11yLabel( /Minimum height/ );
652
+ const heightControl = getByLabelText( /Minimum height/ );
653
653
  fireEvent.press( within( heightControl ).getByText( value ) );
654
654
  const heightTextInput =
655
655
  within( heightControl ).getByDisplayValue( value );
@@ -11,36 +11,63 @@ import metadata from './block.json';
11
11
  /**
12
12
  * WordPress dependencies
13
13
  */
14
- import { RichText } from '@wordpress/block-editor';
14
+ import { RichText, useBlockProps } from '@wordpress/block-editor';
15
15
 
16
16
  const { attributes: blockAttributes } = metadata;
17
17
 
18
- const deprecated = [
19
- {
20
- attributes: blockAttributes,
21
- save( { attributes: { url, caption, type, providerNameSlug } } ) {
22
- if ( ! url ) {
23
- return null;
24
- }
25
-
26
- const embedClassName = classnames( 'wp-block-embed', {
27
- [ `is-type-${ type }` ]: type,
28
- [ `is-provider-${ providerNameSlug }` ]: providerNameSlug,
29
- } );
30
-
31
- return (
32
- <figure className={ embedClassName }>
18
+ // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
19
+ // to the embed figcaption element.
20
+ const v2 = {
21
+ attributes: blockAttributes,
22
+ save( { attributes } ) {
23
+ const { url, caption, type, providerNameSlug } = attributes;
24
+
25
+ if ( ! url ) {
26
+ return null;
27
+ }
28
+
29
+ const className = classnames( 'wp-block-embed', {
30
+ [ `is-type-${ type }` ]: type,
31
+ [ `is-provider-${ providerNameSlug }` ]: providerNameSlug,
32
+ [ `wp-block-embed-${ providerNameSlug }` ]: providerNameSlug,
33
+ } );
34
+
35
+ return (
36
+ <figure { ...useBlockProps.save( { className } ) }>
37
+ <div className="wp-block-embed__wrapper">
33
38
  { `\n${ url }\n` /* URL needs to be on its own line. */ }
34
- { ! RichText.isEmpty( caption ) && (
35
- <RichText.Content
36
- tagName="figcaption"
37
- value={ caption }
38
- />
39
- ) }
40
- </figure>
41
- );
42
- },
39
+ </div>
40
+ { ! RichText.isEmpty( caption ) && (
41
+ <RichText.Content tagName="figcaption" value={ caption } />
42
+ ) }
43
+ </figure>
44
+ );
45
+ },
46
+ };
47
+
48
+ const v1 = {
49
+ attributes: blockAttributes,
50
+ save( { attributes: { url, caption, type, providerNameSlug } } ) {
51
+ if ( ! url ) {
52
+ return null;
53
+ }
54
+
55
+ const embedClassName = classnames( 'wp-block-embed', {
56
+ [ `is-type-${ type }` ]: type,
57
+ [ `is-provider-${ providerNameSlug }` ]: providerNameSlug,
58
+ } );
59
+
60
+ return (
61
+ <figure className={ embedClassName }>
62
+ { `\n${ url }\n` /* URL needs to be on its own line. */ }
63
+ { ! RichText.isEmpty( caption ) && (
64
+ <RichText.Content tagName="figcaption" value={ caption } />
65
+ ) }
66
+ </figure>
67
+ );
43
68
  },
44
- ];
69
+ };
70
+
71
+ const deprecated = [ v2, v1 ];
45
72
 
46
73
  export default deprecated;