@wordpress/block-library 8.5.0 → 8.7.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 (427) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/buttons/edit.native.js +1 -1
  3. package/build/buttons/edit.native.js.map +1 -1
  4. package/build/buttons/index.js +1 -0
  5. package/build/buttons/index.js.map +1 -1
  6. package/build/buttons/transforms.js +1 -0
  7. package/build/buttons/transforms.js.map +1 -1
  8. package/build/columns/edit.js +14 -10
  9. package/build/columns/edit.js.map +1 -1
  10. package/build/columns/edit.native.js +1 -1
  11. package/build/columns/edit.native.js.map +1 -1
  12. package/build/columns/index.js +4 -0
  13. package/build/columns/index.js.map +1 -1
  14. package/build/comments/edit/placeholder.js +8 -5
  15. package/build/comments/edit/placeholder.js.map +1 -1
  16. package/build/cover/edit/inspector-controls.js +2 -2
  17. package/build/cover/edit/inspector-controls.js.map +1 -1
  18. package/build/cover/index.js +13 -4
  19. package/build/cover/index.js.map +1 -1
  20. package/build/cover/variations.js +29 -0
  21. package/build/cover/variations.js.map +1 -0
  22. package/build/embed/edit.js +13 -14
  23. package/build/embed/edit.js.map +1 -1
  24. package/build/embed/edit.native.js +18 -14
  25. package/build/embed/edit.native.js.map +1 -1
  26. package/build/embed/util.js +39 -12
  27. package/build/embed/util.js.map +1 -1
  28. package/build/gallery/edit.js +9 -5
  29. package/build/gallery/edit.js.map +1 -1
  30. package/build/gallery/use-image-sizes.js +1 -1
  31. package/build/gallery/use-image-sizes.js.map +1 -1
  32. package/build/group/deprecated.js +4 -2
  33. package/build/group/deprecated.js.map +1 -1
  34. package/build/group/edit.js +22 -5
  35. package/build/group/edit.js.map +1 -1
  36. package/build/group/placeholder.js +11 -1
  37. package/build/group/placeholder.js.map +1 -1
  38. package/build/group/variations.js +23 -3
  39. package/build/group/variations.js.map +1 -1
  40. package/build/image/edit.js +1 -1
  41. package/build/image/edit.js.map +1 -1
  42. package/build/image/edit.native.js +1 -1
  43. package/build/image/edit.native.js.map +1 -1
  44. package/build/image/image.js +8 -6
  45. package/build/image/image.js.map +1 -1
  46. package/build/image/index.js +7 -2
  47. package/build/image/index.js.map +1 -1
  48. package/build/latest-posts/edit.js +11 -10
  49. package/build/latest-posts/edit.js.map +1 -1
  50. package/build/latest-posts/edit.native.js +3 -3
  51. package/build/latest-posts/edit.native.js.map +1 -1
  52. package/build/media-text/constants.js +17 -1
  53. package/build/media-text/constants.js.map +1 -1
  54. package/build/media-text/deprecated.js +228 -18
  55. package/build/media-text/deprecated.js.map +1 -1
  56. package/build/media-text/edit.js +10 -22
  57. package/build/media-text/edit.js.map +1 -1
  58. package/build/media-text/edit.native.js +6 -5
  59. package/build/media-text/edit.native.js.map +1 -1
  60. package/build/media-text/index.js +1 -1
  61. package/build/media-text/transforms.js +32 -44
  62. package/build/media-text/transforms.js.map +1 -1
  63. package/build/navigation/edit/index.js +55 -96
  64. package/build/navigation/edit/index.js.map +1 -1
  65. package/build/navigation/edit/menu-inspector-controls.js +2 -5
  66. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  67. package/build/navigation/edit/navigation-menu-selector.js +26 -22
  68. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  69. package/build/navigation/edit/unsaved-inner-blocks.js +14 -1
  70. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  71. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
  72. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  73. package/build/navigation/edit/use-create-navigation-menu.js +1 -1
  74. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  75. package/build/navigation/edit/use-navigation-notice.js +1 -1
  76. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  77. package/build/navigation/index.js +0 -1
  78. package/build/navigation/index.js.map +1 -1
  79. package/build/navigation-link/edit.js +0 -11
  80. package/build/navigation-link/edit.js.map +1 -1
  81. package/build/navigation-link/link-ui.js +0 -1
  82. package/build/navigation-link/link-ui.js.map +1 -1
  83. package/build/navigation-submenu/edit.js +1 -13
  84. package/build/navigation-submenu/edit.js.map +1 -1
  85. package/build/page-list/edit.js +59 -45
  86. package/build/page-list/edit.js.map +1 -1
  87. package/build/page-list-item/edit.js +3 -2
  88. package/build/page-list-item/edit.js.map +1 -1
  89. package/build/post-content/edit.js +6 -1
  90. package/build/post-content/edit.js.map +1 -1
  91. package/build/post-date/edit.js +2 -1
  92. package/build/post-date/edit.js.map +1 -1
  93. package/build/post-date/index.js +4 -1
  94. package/build/post-date/index.js.map +1 -1
  95. package/build/post-date/variations.js +28 -0
  96. package/build/post-date/variations.js.map +1 -0
  97. package/build/post-excerpt/edit.js +39 -10
  98. package/build/post-excerpt/edit.js.map +1 -1
  99. package/build/post-featured-image/dimension-controls.js +2 -8
  100. package/build/post-featured-image/dimension-controls.js.map +1 -1
  101. package/build/post-featured-image/edit.js +1 -1
  102. package/build/post-featured-image/edit.js.map +1 -1
  103. package/build/post-template/index.js +1 -1
  104. package/build/post-time-to-read/index.js +17 -1
  105. package/build/post-time-to-read/index.js.map +1 -1
  106. package/build/pullquote/deprecated.js +3 -3
  107. package/build/pullquote/deprecated.js.map +1 -1
  108. package/build/query/edit/query-placeholder.js +3 -2
  109. package/build/query/edit/query-placeholder.js.map +1 -1
  110. package/build/query/utils.js +26 -9
  111. package/build/query/utils.js.map +1 -1
  112. package/build/quote/index.js +1 -0
  113. package/build/quote/index.js.map +1 -1
  114. package/build/spacer/edit.js +16 -6
  115. package/build/spacer/edit.js.map +1 -1
  116. package/build/table/state.js +12 -4
  117. package/build/table/state.js.map +1 -1
  118. package/build/template-part/edit/import-controls.js +4 -24
  119. package/build/template-part/edit/import-controls.js.map +1 -1
  120. package/build/template-part/edit/utils/transformers.js +69 -19
  121. package/build/template-part/edit/utils/transformers.js.map +1 -1
  122. package/build/text-columns/edit.js +3 -7
  123. package/build/text-columns/edit.js.map +1 -1
  124. package/build/text-columns/save.js +11 -13
  125. package/build/text-columns/save.js.map +1 -1
  126. package/build-module/buttons/edit.native.js +1 -1
  127. package/build-module/buttons/edit.native.js.map +1 -1
  128. package/build-module/buttons/index.js +1 -0
  129. package/build-module/buttons/index.js.map +1 -1
  130. package/build-module/buttons/transforms.js +1 -0
  131. package/build-module/buttons/transforms.js.map +1 -1
  132. package/build-module/columns/edit.js +14 -9
  133. package/build-module/columns/edit.js.map +1 -1
  134. package/build-module/columns/edit.native.js +1 -1
  135. package/build-module/columns/edit.native.js.map +1 -1
  136. package/build-module/columns/index.js +4 -0
  137. package/build-module/columns/index.js.map +1 -1
  138. package/build-module/comments/edit/placeholder.js +9 -5
  139. package/build-module/comments/edit/placeholder.js.map +1 -1
  140. package/build-module/cover/edit/inspector-controls.js +2 -2
  141. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  142. package/build-module/cover/index.js +12 -4
  143. package/build-module/cover/index.js.map +1 -1
  144. package/build-module/cover/variations.js +19 -0
  145. package/build-module/cover/variations.js.map +1 -0
  146. package/build-module/embed/edit.js +14 -15
  147. package/build-module/embed/edit.js.map +1 -1
  148. package/build-module/embed/edit.native.js +19 -15
  149. package/build-module/embed/edit.native.js.map +1 -1
  150. package/build-module/embed/util.js +34 -10
  151. package/build-module/embed/util.js.map +1 -1
  152. package/build-module/gallery/edit.js +9 -5
  153. package/build-module/gallery/edit.js.map +1 -1
  154. package/build-module/gallery/use-image-sizes.js +1 -1
  155. package/build-module/gallery/use-image-sizes.js.map +1 -1
  156. package/build-module/group/deprecated.js +4 -2
  157. package/build-module/group/deprecated.js.map +1 -1
  158. package/build-module/group/edit.js +21 -5
  159. package/build-module/group/edit.js.map +1 -1
  160. package/build-module/group/placeholder.js +11 -1
  161. package/build-module/group/placeholder.js.map +1 -1
  162. package/build-module/group/variations.js +24 -1
  163. package/build-module/group/variations.js.map +1 -1
  164. package/build-module/image/edit.js +1 -1
  165. package/build-module/image/edit.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 -6
  169. package/build-module/image/image.js.map +1 -1
  170. package/build-module/image/index.js +7 -2
  171. package/build-module/image/index.js.map +1 -1
  172. package/build-module/latest-posts/edit.js +11 -9
  173. package/build-module/latest-posts/edit.js.map +1 -1
  174. package/build-module/latest-posts/edit.native.js +3 -3
  175. package/build-module/latest-posts/edit.native.js.map +1 -1
  176. package/build-module/media-text/constants.js +10 -0
  177. package/build-module/media-text/constants.js.map +1 -1
  178. package/build-module/media-text/deprecated.js +227 -18
  179. package/build-module/media-text/deprecated.js.map +1 -1
  180. package/build-module/media-text/edit.js +5 -17
  181. package/build-module/media-text/edit.js.map +1 -1
  182. package/build-module/media-text/edit.native.js +4 -3
  183. package/build-module/media-text/edit.native.js.map +1 -1
  184. package/build-module/media-text/index.js +1 -1
  185. package/build-module/media-text/transforms.js +32 -44
  186. package/build-module/media-text/transforms.js.map +1 -1
  187. package/build-module/navigation/edit/index.js +57 -98
  188. package/build-module/navigation/edit/index.js.map +1 -1
  189. package/build-module/navigation/edit/menu-inspector-controls.js +2 -5
  190. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  191. package/build-module/navigation/edit/navigation-menu-selector.js +25 -22
  192. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  193. package/build-module/navigation/edit/unsaved-inner-blocks.js +14 -1
  194. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  195. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
  196. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  197. package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
  198. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  199. package/build-module/navigation/edit/use-navigation-notice.js +1 -1
  200. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  201. package/build-module/navigation/index.js +0 -1
  202. package/build-module/navigation/index.js.map +1 -1
  203. package/build-module/navigation-link/edit.js +0 -11
  204. package/build-module/navigation-link/edit.js.map +1 -1
  205. package/build-module/navigation-link/link-ui.js +0 -1
  206. package/build-module/navigation-link/link-ui.js.map +1 -1
  207. package/build-module/navigation-submenu/edit.js +1 -13
  208. package/build-module/navigation-submenu/edit.js.map +1 -1
  209. package/build-module/page-list/edit.js +61 -47
  210. package/build-module/page-list/edit.js.map +1 -1
  211. package/build-module/page-list-item/edit.js +3 -2
  212. package/build-module/page-list-item/edit.js.map +1 -1
  213. package/build-module/post-content/edit.js +6 -1
  214. package/build-module/post-content/edit.js.map +1 -1
  215. package/build-module/post-date/edit.js +2 -1
  216. package/build-module/post-date/edit.js.map +1 -1
  217. package/build-module/post-date/index.js +3 -1
  218. package/build-module/post-date/index.js.map +1 -1
  219. package/build-module/post-date/variations.js +18 -0
  220. package/build-module/post-date/variations.js.map +1 -0
  221. package/build-module/post-excerpt/edit.js +38 -11
  222. package/build-module/post-excerpt/edit.js.map +1 -1
  223. package/build-module/post-featured-image/dimension-controls.js +2 -8
  224. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  225. package/build-module/post-featured-image/edit.js +1 -1
  226. package/build-module/post-featured-image/edit.js.map +1 -1
  227. package/build-module/post-template/index.js +1 -1
  228. package/build-module/post-time-to-read/index.js +17 -1
  229. package/build-module/post-time-to-read/index.js.map +1 -1
  230. package/build-module/pullquote/deprecated.js +3 -2
  231. package/build-module/pullquote/deprecated.js.map +1 -1
  232. package/build-module/query/edit/query-placeholder.js +4 -3
  233. package/build-module/query/edit/query-placeholder.js.map +1 -1
  234. package/build-module/query/utils.js +21 -6
  235. package/build-module/query/utils.js.map +1 -1
  236. package/build-module/quote/index.js +1 -0
  237. package/build-module/quote/index.js.map +1 -1
  238. package/build-module/spacer/edit.js +16 -6
  239. package/build-module/spacer/edit.js.map +1 -1
  240. package/build-module/table/state.js +13 -5
  241. package/build-module/table/state.js.map +1 -1
  242. package/build-module/template-part/edit/import-controls.js +4 -23
  243. package/build-module/template-part/edit/import-controls.js.map +1 -1
  244. package/build-module/template-part/edit/utils/transformers.js +69 -20
  245. package/build-module/template-part/edit/utils/transformers.js.map +1 -1
  246. package/build-module/text-columns/edit.js +3 -6
  247. package/build-module/text-columns/edit.js.map +1 -1
  248. package/build-module/text-columns/save.js +11 -12
  249. package/build-module/text-columns/save.js.map +1 -1
  250. package/build-style/categories/editor-rtl.css +5 -0
  251. package/build-style/categories/editor.css +5 -0
  252. package/build-style/categories/style-rtl.css +4 -0
  253. package/build-style/categories/style.css +4 -0
  254. package/build-style/cover/style-rtl.css +11 -5
  255. package/build-style/cover/style.css +11 -5
  256. package/build-style/editor-rtl.css +11 -1
  257. package/build-style/editor.css +11 -1
  258. package/build-style/navigation/editor-rtl.css +1 -1
  259. package/build-style/navigation/editor.css +1 -1
  260. package/build-style/navigation/style-rtl.css +2 -0
  261. package/build-style/navigation/style.css +2 -0
  262. package/build-style/page-list/editor-rtl.css +4 -0
  263. package/build-style/page-list/editor.css +4 -0
  264. package/build-style/post-featured-image/editor-rtl.css +1 -0
  265. package/build-style/post-featured-image/editor.css +1 -0
  266. package/build-style/post-featured-image/style-rtl.css +1 -0
  267. package/build-style/post-featured-image/style.css +1 -0
  268. package/build-style/post-template/style-rtl.css +1 -1
  269. package/build-style/post-template/style.css +1 -1
  270. package/build-style/post-time-to-read/style-rtl.css +91 -0
  271. package/build-style/post-time-to-read/style.css +91 -0
  272. package/build-style/search/style-rtl.css +8 -7
  273. package/build-style/search/style.css +8 -7
  274. package/build-style/style-rtl.css +31 -13
  275. package/build-style/style.css +31 -13
  276. package/package.json +31 -31
  277. package/src/audio/test/__snapshots__/edit.native.js.snap +44 -4
  278. package/src/audio/test/__snapshots__/transforms.native.js.snap +25 -0
  279. package/src/audio/test/transforms.native.js +42 -0
  280. package/src/block/test/__snapshots__/transforms.native.js.snap +15 -0
  281. package/src/block/test/transforms.native.js +40 -0
  282. package/src/buttons/block.json +1 -0
  283. package/src/buttons/edit.native.js +1 -1
  284. package/src/buttons/test/__snapshots__/transforms.native.js.snap +31 -0
  285. package/src/buttons/test/transforms.native.js +48 -0
  286. package/src/categories/editor.scss +5 -0
  287. package/src/categories/style.scss +4 -0
  288. package/src/columns/block.json +4 -0
  289. package/src/columns/edit.js +30 -18
  290. package/src/columns/edit.native.js +1 -1
  291. package/src/columns/test/__snapshots__/transforms.native.js.snap +61 -0
  292. package/src/columns/test/transforms.native.js +91 -0
  293. package/src/comment-template/index.php +1 -2
  294. package/src/comments/edit/placeholder.js +16 -4
  295. package/src/comments/index.php +1 -0
  296. package/src/cover/block.json +9 -3
  297. package/src/cover/edit/inspector-controls.js +4 -5
  298. package/src/cover/index.js +2 -0
  299. package/src/cover/style.scss +16 -7
  300. package/src/cover/test/__snapshots__/transforms.native.js.snap +73 -0
  301. package/src/cover/test/edit.js +324 -0
  302. package/src/cover/test/transforms.native.js +112 -0
  303. package/src/cover/variations.js +20 -0
  304. package/src/embed/edit.js +16 -12
  305. package/src/embed/edit.native.js +28 -18
  306. package/src/embed/test/__snapshots__/transforms.native.js.snap +23 -0
  307. package/src/embed/test/index.js +12 -0
  308. package/src/embed/test/transforms.native.js +44 -0
  309. package/src/embed/util.js +29 -8
  310. package/src/file/test/__snapshots__/edit.native.js.snap +18 -2
  311. package/src/file/test/__snapshots__/transforms.native.js.snap +19 -0
  312. package/src/file/test/transforms.native.js +42 -0
  313. package/src/freeform/test/__snapshots__/transforms.native.js.snap +19 -0
  314. package/src/freeform/test/transforms.native.js +39 -0
  315. package/src/gallery/edit.js +8 -2
  316. package/src/gallery/test/__snapshots__/transforms.native.js.snap +53 -0
  317. package/src/gallery/test/transforms.native.js +52 -0
  318. package/src/gallery/use-image-sizes.js +1 -1
  319. package/src/group/deprecated.js +4 -2
  320. package/src/group/edit.js +27 -9
  321. package/src/group/placeholder.js +13 -1
  322. package/src/group/test/__snapshots__/transforms.native.js.snap +35 -0
  323. package/src/group/test/transforms.native.js +75 -0
  324. package/src/group/variations.js +14 -1
  325. package/src/heading/test/__snapshots__/transforms.native.js.snap +47 -0
  326. package/src/heading/test/transforms.native.js +46 -0
  327. package/src/home-link/index.php +2 -2
  328. package/src/image/block.json +7 -2
  329. package/src/image/edit.js +1 -1
  330. package/src/image/edit.native.js +1 -1
  331. package/src/image/image.js +15 -7
  332. package/src/image/index.php +7 -2
  333. package/src/image/test/__snapshots__/transforms.native.js.snap +49 -0
  334. package/src/image/test/transforms.native.js +48 -0
  335. package/src/latest-comments/style.scss +1 -1
  336. package/src/latest-posts/edit.js +14 -16
  337. package/src/latest-posts/edit.native.js +3 -3
  338. package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +15 -0
  339. package/src/latest-posts/test/transforms.native.js +61 -0
  340. package/src/list/test/__snapshots__/transforms.native.js.snap +85 -0
  341. package/src/list/test/transforms.native.js +56 -0
  342. package/src/media-text/block.json +1 -1
  343. package/src/media-text/constants.js +16 -0
  344. package/src/media-text/deprecated.js +235 -3
  345. package/src/media-text/edit.js +15 -24
  346. package/src/media-text/edit.native.js +3 -9
  347. package/src/media-text/test/__snapshots__/transforms.native.js.snap +73 -0
  348. package/src/media-text/test/transforms.native.js +112 -0
  349. package/src/media-text/transforms.js +24 -51
  350. package/src/missing/test/__snapshots__/edit.native.js.snap +20 -2
  351. package/src/more/test/__snapshots__/transforms.native.js.snap +19 -0
  352. package/src/more/test/transforms.native.js +42 -0
  353. package/src/navigation/block.json +0 -1
  354. package/src/navigation/edit/index.js +99 -115
  355. package/src/navigation/edit/menu-inspector-controls.js +2 -7
  356. package/src/navigation/edit/navigation-menu-selector.js +41 -25
  357. package/src/navigation/edit/unsaved-inner-blocks.js +46 -33
  358. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +82 -83
  359. package/src/navigation/edit/use-create-navigation-menu.js +1 -1
  360. package/src/navigation/edit/use-navigation-notice.js +1 -1
  361. package/src/navigation/editor.scss +23 -20
  362. package/src/navigation/index.php +18 -39
  363. package/src/navigation/style.scss +6 -4
  364. package/src/navigation-link/edit.js +0 -9
  365. package/src/navigation-link/index.php +7 -9
  366. package/src/navigation-link/link-ui.js +0 -1
  367. package/src/navigation-submenu/edit.js +0 -10
  368. package/src/navigation-submenu/index.php +45 -74
  369. package/src/nextpage/test/__snapshots__/transforms.native.js.snap +19 -0
  370. package/src/nextpage/test/transforms.native.js +42 -0
  371. package/src/page-list/edit.js +78 -44
  372. package/src/page-list/editor.scss +6 -0
  373. package/src/page-list-item/edit.js +2 -3
  374. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +59 -0
  375. package/src/paragraph/test/transforms.native.js +50 -0
  376. package/src/post-author/index.php +1 -1
  377. package/src/post-content/edit.js +5 -1
  378. package/src/post-date/edit.js +4 -1
  379. package/src/post-date/index.js +2 -0
  380. package/src/post-date/variations.js +20 -0
  381. package/src/post-excerpt/edit.js +48 -16
  382. package/src/post-excerpt/index.php +1 -2
  383. package/src/post-featured-image/dimension-controls.js +2 -10
  384. package/src/post-featured-image/edit.js +1 -1
  385. package/src/post-featured-image/editor.scss +1 -0
  386. package/src/post-featured-image/style.scss +1 -0
  387. package/src/post-template/block.json +1 -1
  388. package/src/post-template/style.scss +1 -1
  389. package/src/post-time-to-read/block.json +17 -1
  390. package/src/post-time-to-read/style.scss +4 -0
  391. package/src/preformatted/test/__snapshots__/transforms.native.js.snap +31 -0
  392. package/src/preformatted/test/transforms.native.js +42 -0
  393. package/src/pullquote/deprecated.js +2 -6
  394. package/src/pullquote/test/__snapshots__/transforms.native.js.snap +47 -0
  395. package/src/pullquote/test/transforms.native.js +46 -0
  396. package/src/query/edit/query-placeholder.js +10 -5
  397. package/src/query/test/utils.js +33 -1
  398. package/src/query/utils.js +19 -6
  399. package/src/query-title/index.php +2 -5
  400. package/src/quote/block.json +1 -0
  401. package/src/quote/test/__snapshots__/transforms.native.js.snap +39 -0
  402. package/src/quote/test/transforms.native.js +67 -0
  403. package/src/search/style.scss +16 -12
  404. package/src/search/test/__snapshots__/edit.native.js.snap +11 -1
  405. package/src/search/test/__snapshots__/transforms.native.js.snap +15 -0
  406. package/src/search/test/transforms.native.js +40 -0
  407. package/src/separator/test/__snapshots__/transforms.native.js.snap +19 -0
  408. package/src/separator/test/transforms.native.js +42 -0
  409. package/src/shortcode/test/__snapshots__/transforms.native.js.snap +19 -0
  410. package/src/shortcode/test/transforms.native.js +42 -0
  411. package/src/social-links/test/__snapshots__/transforms.native.js.snap +31 -0
  412. package/src/social-links/test/transforms.native.js +53 -0
  413. package/src/spacer/edit.js +18 -5
  414. package/src/spacer/test/__snapshots__/transforms.native.js.snap +19 -0
  415. package/src/spacer/test/transforms.native.js +42 -0
  416. package/src/style.scss +1 -0
  417. package/src/table/state.js +8 -17
  418. package/src/template-part/edit/import-controls.js +2 -29
  419. package/src/template-part/edit/utils/transformers.js +96 -19
  420. package/src/text-columns/edit.js +1 -6
  421. package/src/text-columns/save.js +1 -6
  422. package/src/verse/test/__snapshots__/transforms.native.js.snap +25 -0
  423. package/src/verse/test/transforms.native.js +42 -0
  424. package/src/video/test/__snapshots__/transforms.native.js.snap +41 -0
  425. package/src/video/test/transforms.native.js +48 -0
  426. package/tsconfig.tsbuildinfo +1 -1
  427. package/src/cover/test/block-controls.js +0 -62
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/cover/edit/inspector-controls.js"],"names":["useMemo","Button","ExternalLink","FocalPointPicker","PanelBody","PanelRow","RangeControl","TextareaControl","ToggleControl","SelectControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUnitControl","UnitControl","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useInstanceId","InspectorControls","useSetting","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseGradient","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","__","COVER_MIN_HEIGHT","mediaPosition","CoverHeightInput","onChange","onUnitChange","unit","value","instanceId","inputId","isPx","units","availableUnits","defaultValues","px","em","rem","vw","vh","handleOnChange","unprocessedValue","inputValue","parseFloat","undefined","isNaN","computedValue","parsedQuantity","join","min","CoverInspectorControls","attributes","setAttributes","clientId","setOverlayColor","coverRef","currentSettings","useFeaturedImage","dimRatio","focalPoint","hasParallax","isRepeated","minHeight","minHeightUnit","alt","tagName","isVideoBackground","isImageBackground","mediaElement","url","isImgElement","overlayColor","gradientValue","setGradient","toggleParallax","toggleIsRepeated","showFocalPointPicker","imperativeFocalPointPreview","styleOfRef","property","current","style","colorGradientSettings","htmlElementMessages","header","main","section","article","aside","footer","newFocalPoint","newAlt","id","backgroundType","colorValue","color","label","onColorChange","onGradientChange","isShownByDefault","resetAllFilter","customOverlayColor","gradient","customGradient","newDimRation","newMinHeight","nextUnit"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport {\n\tButton,\n\tExternalLink,\n\tFocalPointPicker,\n\tPanelBody,\n\tPanelRow,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tSelectControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tInspectorControls,\n\tuseSetting,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseGradient,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { COVER_MIN_HEIGHT, mediaPosition } from '../shared';\n\nfunction CoverHeightInput( {\n\tonChange,\n\tonUnitChange,\n\tunit = 'px',\n\tvalue = '',\n} ) {\n\tconst instanceId = useInstanceId( UnitControl );\n\tconst inputId = `block-cover-height-input-${ instanceId }`;\n\tconst isPx = unit === 'px';\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: { px: 430, '%': 20, em: 20, rem: 20, vw: 20, vh: 50 },\n\t} );\n\n\tconst handleOnChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== ''\n\t\t\t\t? parseFloat( unprocessedValue )\n\t\t\t\t: undefined;\n\n\t\tif ( isNaN( inputValue ) && inputValue !== undefined ) {\n\t\t\treturn;\n\t\t}\n\t\tonChange( inputValue );\n\t};\n\n\tconst computedValue = useMemo( () => {\n\t\tconst [ parsedQuantity ] = parseQuantityAndUnitFromRawValue( value );\n\t\treturn [ parsedQuantity, unit ].join( '' );\n\t}, [ unit, value ] );\n\n\tconst min = isPx ? COVER_MIN_HEIGHT : 0;\n\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ __( 'Minimum height of cover' ) }\n\t\t\tid={ inputId }\n\t\t\tisResetValueOnUnitChange\n\t\t\tmin={ min }\n\t\t\tonChange={ handleOnChange }\n\t\t\tonUnitChange={ onUnitChange }\n\t\t\t__unstableInputWidth={ '80px' }\n\t\t\tunits={ units }\n\t\t\tvalue={ computedValue }\n\t\t/>\n\t);\n}\nexport default function CoverInspectorControls( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tsetOverlayColor,\n\tcoverRef,\n\tcurrentSettings,\n} ) {\n\tconst {\n\t\tuseFeaturedImage,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\talt,\n\t\ttagName,\n\t} = attributes;\n\tconst {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\turl,\n\t\tisImgElement,\n\t\toverlayColor,\n\t} = currentSettings;\n\n\tconst { gradientValue, setGradient } = __experimentalUseGradient();\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax ? { focalPoint: undefined } : {} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tisRepeated: ! isRepeated,\n\t\t} );\n\t};\n\n\tconst showFocalPointPicker =\n\t\tisVideoBackground ||\n\t\t( isImageBackground && ( ! hasParallax || isRepeated ) );\n\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst [ styleOfRef, property ] = mediaElement.current\n\t\t\t? [ mediaElement.current.style, 'objectPosition' ]\n\t\t\t: [ coverRef.current.style, 'backgroundPosition' ];\n\t\tstyleOfRef[ property ] = mediaPosition( value );\n\t};\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\tconst htmlElementMessages = {\n\t\theader: __(\n\t\t\t'The <header> element should represent introductory content, typically a group of introductory or navigational aids.'\n\t\t),\n\t\tmain: __(\n\t\t\t'The <main> element should be used for the primary content of your document only. '\n\t\t),\n\t\tsection: __(\n\t\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t\t),\n\t\tarticle: __(\n\t\t\t'The <article> element should represent a self-contained, syndicatable portion of the document.'\n\t\t),\n\t\taside: __(\n\t\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t\t),\n\t\tfooter: __(\n\t\t\t'The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).'\n\t\t),\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ !! url && (\n\t\t\t\t\t<PanelBody title={ __( 'Media settings' ) }>\n\t\t\t\t\t\t{ isImageBackground && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isRepeated }\n\t\t\t\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showFocalPointPicker && (\n\t\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\t\t\turl &&\n\t\t\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t\t\tisImgElement && (\n\t\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Alt text (alternative text)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\t\tonChange={ ( newAlt ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { alt: newAlt } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\tclassName=\"block-library-cover__reset-button\"\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\turl: undefined,\n\t\t\t\t\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\t\t\t\t\tbackgroundType: undefined,\n\t\t\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t\t\t\thasParallax: undefined,\n\t\t\t\t\t\t\t\t\t\tisRepeated: undefined,\n\t\t\t\t\t\t\t\t\t\tuseFeaturedImage: false,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Clear Media' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</PanelRow>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolorValue: overlayColor.color,\n\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\tlabel: __( 'Overlay' ),\n\t\t\t\t\t\t\tonColorChange: setOverlayColor,\n\t\t\t\t\t\t\tonGradientChange: setGradient,\n\t\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\t\tresetAllFilter: () => ( {\n\t\t\t\t\t\t\t\toverlayColor: undefined,\n\t\t\t\t\t\t\t\tcustomOverlayColor: undefined,\n\t\t\t\t\t\t\t\tgradient: undefined,\n\t\t\t\t\t\t\t\tcustomGradient: undefined,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t/>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => {\n\t\t\t\t\t\t// If there's a media background the dimRatio will be\n\t\t\t\t\t\t// defaulted to 50 whereas it will be 100 for colors.\n\t\t\t\t\t\treturn dimRatio === undefined\n\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t: dimRatio !== ( url ? 50 : 100 );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { dimRatio: url ? 50 : 100 } )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tdimRatio: url ? 50 : 100,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\tonChange={ ( newDimRation ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdimRatio: newDimRation,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\tstep={ 10 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"dimensions\">\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! minHeight }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<CoverHeightInput\n\t\t\t\t\t\tvalue={ minHeight }\n\t\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\t\tonChange={ ( newMinHeight ) =>\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tminHeightUnit: nextUnit,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<header>', value: 'header' },\n\t\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t\t{ label: '<footer>', value: 'footer' },\n\t\t\t\t\t] }\n\t\t\t\t\tvalue={ tagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ htmlElementMessages[ tagName ] }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/cover/edit/inspector-controls.js"],"names":["useMemo","Button","ExternalLink","FocalPointPicker","PanelBody","PanelRow","RangeControl","TextareaControl","ToggleControl","SelectControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUnitControl","UnitControl","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useInstanceId","InspectorControls","useSetting","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseGradient","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","__","COVER_MIN_HEIGHT","mediaPosition","CoverHeightInput","onChange","onUnitChange","unit","value","instanceId","inputId","isPx","units","availableUnits","defaultValues","px","em","rem","vw","vh","handleOnChange","unprocessedValue","inputValue","parseFloat","undefined","isNaN","computedValue","parsedQuantity","join","min","CoverInspectorControls","attributes","setAttributes","clientId","setOverlayColor","coverRef","currentSettings","useFeaturedImage","dimRatio","focalPoint","hasParallax","isRepeated","minHeight","minHeightUnit","alt","tagName","isVideoBackground","isImageBackground","mediaElement","url","isImgElement","overlayColor","gradientValue","setGradient","toggleParallax","toggleIsRepeated","showFocalPointPicker","imperativeFocalPointPreview","styleOfRef","property","current","style","colorGradientSettings","htmlElementMessages","header","main","section","article","aside","footer","newFocalPoint","newAlt","id","backgroundType","colorValue","color","label","onColorChange","onGradientChange","isShownByDefault","resetAllFilter","customOverlayColor","gradient","customGradient","newDimRation","newMinHeight","nextUnit"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport {\n\tButton,\n\tExternalLink,\n\tFocalPointPicker,\n\tPanelBody,\n\tPanelRow,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tSelectControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tInspectorControls,\n\tuseSetting,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseGradient,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { COVER_MIN_HEIGHT, mediaPosition } from '../shared';\n\nfunction CoverHeightInput( {\n\tonChange,\n\tonUnitChange,\n\tunit = 'px',\n\tvalue = '',\n} ) {\n\tconst instanceId = useInstanceId( UnitControl );\n\tconst inputId = `block-cover-height-input-${ instanceId }`;\n\tconst isPx = unit === 'px';\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: { px: 430, '%': 20, em: 20, rem: 20, vw: 20, vh: 50 },\n\t} );\n\n\tconst handleOnChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== ''\n\t\t\t\t? parseFloat( unprocessedValue )\n\t\t\t\t: undefined;\n\n\t\tif ( isNaN( inputValue ) && inputValue !== undefined ) {\n\t\t\treturn;\n\t\t}\n\t\tonChange( inputValue );\n\t};\n\n\tconst computedValue = useMemo( () => {\n\t\tconst [ parsedQuantity ] = parseQuantityAndUnitFromRawValue( value );\n\t\treturn [ parsedQuantity, unit ].join( '' );\n\t}, [ unit, value ] );\n\n\tconst min = isPx ? COVER_MIN_HEIGHT : 0;\n\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ __( 'Minimum height of cover' ) }\n\t\t\tid={ inputId }\n\t\t\tisResetValueOnUnitChange\n\t\t\tmin={ min }\n\t\t\tonChange={ handleOnChange }\n\t\t\tonUnitChange={ onUnitChange }\n\t\t\t__unstableInputWidth={ '80px' }\n\t\t\tunits={ units }\n\t\t\tvalue={ computedValue }\n\t\t/>\n\t);\n}\nexport default function CoverInspectorControls( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tsetOverlayColor,\n\tcoverRef,\n\tcurrentSettings,\n} ) {\n\tconst {\n\t\tuseFeaturedImage,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\talt,\n\t\ttagName,\n\t} = attributes;\n\tconst {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\turl,\n\t\tisImgElement,\n\t\toverlayColor,\n\t} = currentSettings;\n\n\tconst { gradientValue, setGradient } = __experimentalUseGradient();\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax ? { focalPoint: undefined } : {} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tisRepeated: ! isRepeated,\n\t\t} );\n\t};\n\n\tconst showFocalPointPicker =\n\t\tisVideoBackground ||\n\t\t( isImageBackground && ( ! hasParallax || isRepeated ) );\n\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst [ styleOfRef, property ] = mediaElement.current\n\t\t\t? [ mediaElement.current.style, 'objectPosition' ]\n\t\t\t: [ coverRef.current.style, 'backgroundPosition' ];\n\t\tstyleOfRef[ property ] = mediaPosition( value );\n\t};\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\tconst htmlElementMessages = {\n\t\theader: __(\n\t\t\t'The <header> element should represent introductory content, typically a group of introductory or navigational aids.'\n\t\t),\n\t\tmain: __(\n\t\t\t'The <main> element should be used for the primary content of your document only. '\n\t\t),\n\t\tsection: __(\n\t\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t\t),\n\t\tarticle: __(\n\t\t\t'The <article> element should represent a self-contained, syndicatable portion of the document.'\n\t\t),\n\t\taside: __(\n\t\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t\t),\n\t\tfooter: __(\n\t\t\t'The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).'\n\t\t),\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ !! url && (\n\t\t\t\t\t<PanelBody title={ __( 'Media settings' ) }>\n\t\t\t\t\t\t{ isImageBackground && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isRepeated }\n\t\t\t\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showFocalPointPicker && (\n\t\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\t\t\turl &&\n\t\t\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t\t\tisImgElement && (\n\t\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\t\tonChange={ ( newAlt ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { alt: newAlt } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\tclassName=\"block-library-cover__reset-button\"\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\turl: undefined,\n\t\t\t\t\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\t\t\t\t\tbackgroundType: undefined,\n\t\t\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t\t\t\thasParallax: undefined,\n\t\t\t\t\t\t\t\t\t\tisRepeated: undefined,\n\t\t\t\t\t\t\t\t\t\tuseFeaturedImage: false,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Clear Media' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</PanelRow>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolorValue: overlayColor.color,\n\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\tlabel: __( 'Overlay' ),\n\t\t\t\t\t\t\tonColorChange: setOverlayColor,\n\t\t\t\t\t\t\tonGradientChange: setGradient,\n\t\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\t\tresetAllFilter: () => ( {\n\t\t\t\t\t\t\t\toverlayColor: undefined,\n\t\t\t\t\t\t\t\tcustomOverlayColor: undefined,\n\t\t\t\t\t\t\t\tgradient: undefined,\n\t\t\t\t\t\t\t\tcustomGradient: undefined,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t/>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => {\n\t\t\t\t\t\t// If there's a media background the dimRatio will be\n\t\t\t\t\t\t// defaulted to 50 whereas it will be 100 for colors.\n\t\t\t\t\t\treturn dimRatio === undefined\n\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t: dimRatio !== ( url ? 50 : 100 );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { dimRatio: url ? 50 : 100 } )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tdimRatio: url ? 50 : 100,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\tonChange={ ( newDimRation ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdimRatio: newDimRation,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\tstep={ 10 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"dimensions\">\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! minHeight }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<CoverHeightInput\n\t\t\t\t\t\tvalue={ minHeight }\n\t\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\t\tonChange={ ( newMinHeight ) =>\n\t\t\t\t\t\t\tsetAttributes( { minHeight: newMinHeight } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tminHeightUnit: nextUnit,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<header>', value: 'header' },\n\t\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t\t{ label: '<footer>', value: 'footer' },\n\t\t\t\t\t] }\n\t\t\t\t\tvalue={ tagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ htmlElementMessages[ tagName ] }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n"]}
@@ -100,14 +100,17 @@ const metadata = {
100
100
  spacing: {
101
101
  padding: true,
102
102
  margin: ["top", "bottom"],
103
+ blockGap: true,
103
104
  __experimentalDefaultControls: {
104
- padding: true
105
+ padding: true,
106
+ blockGap: true
105
107
  }
106
108
  },
107
109
  color: {
108
110
  __experimentalDuotone: "> .wp-block-cover__image-background, > .wp-block-cover__video-background",
109
- text: false,
110
- background: false
111
+ text: true,
112
+ background: false,
113
+ __experimentalSkipSerialization: ["gradients"]
111
114
  },
112
115
  typography: {
113
116
  fontSize: true,
@@ -121,6 +124,9 @@ const metadata = {
121
124
  __experimentalDefaultControls: {
122
125
  fontSize: true
123
126
  }
127
+ },
128
+ __experimentalLayout: {
129
+ allowJustification: false
124
130
  }
125
131
  },
126
132
  editorStyle: "wp-block-cover-editor",
@@ -128,6 +134,7 @@ const metadata = {
128
134
  };
129
135
  import save from './save';
130
136
  import transforms from './transforms';
137
+ import variations from './variations';
131
138
  const {
132
139
  name
133
140
  } = metadata;
@@ -159,7 +166,8 @@ export const settings = {
159
166
  transforms,
160
167
  save,
161
168
  edit,
162
- deprecated
169
+ deprecated,
170
+ variations
163
171
  };
164
172
  export const init = () => initBlock({
165
173
  name,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/cover/index.js"],"names":["__","cover","icon","initBlock","deprecated","edit","save","transforms","name","metadata","settings","example","attributes","customOverlayColor","dimRatio","url","innerBlocks","content","align","style","typography","fontSize","color","text","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,KAAK,IAAIC,IAAlB,QAA8B,kBAA9B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBR,EAAAA,IADuB;AAEvBS,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,kBAAkB,EAAE,SADT;AAEXC,MAAAA,QAAQ,EAAE,EAFC;AAGXC,MAAAA,GAAG,EAAE;AAHM,KADJ;AAMRC,IAAAA,WAAW,EAAE,CACZ;AACCR,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXK,QAAAA,OAAO,EAAEjB,EAAE,CAAE,8BAAF,CADA;AAEXkB,QAAAA,KAAK,EAAE,QAFI;AAGXC,QAAAA,KAAK,EAAE;AACNC,UAAAA,UAAU,EAAE;AACXC,YAAAA,QAAQ,EAAE;AADC,WADN;AAINC,UAAAA,KAAK,EAAE;AACNC,YAAAA,IAAI,EAAE;AADA;AAJD;AAHI;AAFb,KADY;AANL,GAFc;AA0BvBhB,EAAAA,UA1BuB;AA2BvBD,EAAAA,IA3BuB;AA4BvBD,EAAAA,IA5BuB;AA6BvBD,EAAAA;AA7BuB,CAAjB;AAgCP,OAAO,MAAMoB,IAAI,GAAG,MAAMrB,SAAS,CAAE;AAAEK,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { cover as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcustomOverlayColor: '#065174',\n\t\t\tdimRatio: 40,\n\t\t\turl: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg',\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __( '<strong>Snow Patrol</strong>' ),\n\t\t\t\t\talign: 'center',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\tfontSize: 48,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\ttext: 'white',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tsave,\n\tedit,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/cover/index.js"],"names":["__","cover","icon","initBlock","deprecated","edit","save","transforms","variations","name","metadata","settings","example","attributes","customOverlayColor","dimRatio","url","innerBlocks","content","align","style","typography","fontSize","color","text","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,KAAK,IAAIC,IAAlB,QAA8B,kBAA9B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBT,EAAAA,IADuB;AAEvBU,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,kBAAkB,EAAE,SADT;AAEXC,MAAAA,QAAQ,EAAE,EAFC;AAGXC,MAAAA,GAAG,EAAE;AAHM,KADJ;AAMRC,IAAAA,WAAW,EAAE,CACZ;AACCR,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXK,QAAAA,OAAO,EAAElB,EAAE,CAAE,8BAAF,CADA;AAEXmB,QAAAA,KAAK,EAAE,QAFI;AAGXC,QAAAA,KAAK,EAAE;AACNC,UAAAA,UAAU,EAAE;AACXC,YAAAA,QAAQ,EAAE;AADC,WADN;AAINC,UAAAA,KAAK,EAAE;AACNC,YAAAA,IAAI,EAAE;AADA;AAJD;AAHI;AAFb,KADY;AANL,GAFc;AA0BvBjB,EAAAA,UA1BuB;AA2BvBD,EAAAA,IA3BuB;AA4BvBD,EAAAA,IA5BuB;AA6BvBD,EAAAA,UA7BuB;AA8BvBI,EAAAA;AA9BuB,CAAjB;AAiCP,OAAO,MAAMiB,IAAI,GAAG,MAAMtB,SAAS,CAAE;AAAEM,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { cover as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcustomOverlayColor: '#065174',\n\t\t\tdimRatio: 40,\n\t\t\turl: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg',\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __( '<strong>Snow Patrol</strong>' ),\n\t\t\t\t\talign: 'center',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\tfontSize: 48,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\ttext: 'white',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tsave,\n\tedit,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { cover } from '@wordpress/icons';
6
+ const variations = [{
7
+ name: 'cover',
8
+ title: __('Cover'),
9
+ description: __('Add an image or video with a text overlay — great for headers.'),
10
+ attributes: {
11
+ layout: {
12
+ type: 'constrained'
13
+ }
14
+ },
15
+ isDefault: true,
16
+ icon: cover
17
+ }];
18
+ export default variations;
19
+ //# sourceMappingURL=variations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/cover/variations.js"],"names":["__","cover","variations","name","title","description","attributes","layout","type","isDefault","icon"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,KAAT,QAAsB,kBAAtB;AAEA,MAAMC,UAAU,GAAG,CAClB;AACCC,EAAAA,IAAI,EAAE,OADP;AAECC,EAAAA,KAAK,EAAEJ,EAAE,CAAE,OAAF,CAFV;AAGCK,EAAAA,WAAW,EAAEL,EAAE,CACd,gEADc,CAHhB;AAMCM,EAAAA,UAAU,EAAE;AAAEC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,IAAI,EAAE;AAAR;AAAV,GANb;AAOCC,EAAAA,SAAS,EAAE,IAPZ;AAQCC,EAAAA,IAAI,EAAET;AARP,CADkB,CAAnB;AAaA,eAAeC,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { cover } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'cover',\n\t\ttitle: __( 'Cover' ),\n\t\tdescription: __(\n\t\t\t'Add an image or video with a text overlay — great for headers.'\n\t\t),\n\t\tattributes: { layout: { type: 'constrained' } },\n\t\tisDefault: true,\n\t\ticon: cover,\n\t},\n];\n\nexport default variations;\n"]}
@@ -3,7 +3,7 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * Internal dependencies
5
5
  */
6
- import { createUpgradedEmbedBlock, getClassNames, fallback, getEmbedInfoByProvider, getMergedAttributesWithPreview } from './util';
6
+ import { createUpgradedEmbedBlock, getClassNames, removeAspectRatioClasses, fallback, getEmbedInfoByProvider, getMergedAttributesWithPreview } from './util';
7
7
  import EmbedControls from './embed-controls';
8
8
  import { embedContentIcon } from './icons';
9
9
  import EmbedLoading from './embed-loading';
@@ -94,14 +94,10 @@ const EmbedEdit = props => {
94
94
  /**
95
95
  * Returns the attributes derived from the preview, merged with the current attributes.
96
96
  *
97
- * @param {boolean} ignorePreviousClassName Determines if the previous className attribute should be ignored when merging.
98
97
  * @return {Object} Merged attributes.
99
98
  */
100
99
 
101
- const getMergedAttributes = function () {
102
- let ignorePreviousClassName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
103
- return getMergedAttributesWithPreview(attributes, preview, title, responsive, ignorePreviousClassName);
104
- };
100
+ const getMergedAttributes = () => getMergedAttributesWithPreview(attributes, preview, title, responsive);
105
101
 
106
102
  const toggleResponsive = () => {
107
103
  const {
@@ -131,18 +127,17 @@ const EmbedEdit = props => {
131
127
  setAttributes({
132
128
  url: newURL
133
129
  });
134
- }, [preview === null || preview === void 0 ? void 0 : preview.html, attributesUrl]); // Handle incoming preview.
130
+ }, [preview === null || preview === void 0 ? void 0 : preview.html, attributesUrl, cannotEmbed, fetching]); // Handle incoming preview.
135
131
 
136
132
  useEffect(() => {
137
133
  if (preview && !isEditingURL) {
138
- // When obtaining an incoming preview, we set the attributes derived from
139
- // the preview data. In this case when getting the merged attributes,
140
- // we ignore the previous classname because it might not match the expected
141
- // classes by the new preview.
142
- setAttributes(getMergedAttributes(true));
134
+ // When obtaining an incoming preview,
135
+ // we set the attributes derived from the preview data.
136
+ const mergedAttributes = getMergedAttributes();
137
+ setAttributes(mergedAttributes);
143
138
 
144
139
  if (onReplace) {
145
- const upgradedBlock = createUpgradedEmbedBlock(props, getMergedAttributes());
140
+ const upgradedBlock = createUpgradedEmbedBlock(props, mergedAttributes);
146
141
 
147
142
  if (upgradedBlock) {
148
143
  onReplace(upgradedBlock);
@@ -169,11 +164,15 @@ const EmbedEdit = props => {
169
164
  onSubmit: event => {
170
165
  if (event) {
171
166
  event.preventDefault();
172
- }
167
+ } // If the embed URL was changed, we need to reset the aspect ratio class.
168
+ // To do this we have to remove the existing ratio class so it can be recalculated.
169
+
173
170
 
171
+ const blockClass = removeAspectRatioClasses(attributes.className);
174
172
  setIsEditingURL(false);
175
173
  setAttributes({
176
- url
174
+ url,
175
+ className: blockClass
177
176
  });
178
177
  },
179
178
  value: url,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/embed/edit.js"],"names":["createUpgradedEmbedBlock","getClassNames","fallback","getEmbedInfoByProvider","getMergedAttributesWithPreview","EmbedControls","embedContentIcon","EmbedLoading","EmbedPlaceholder","EmbedPreview","classnames","__","_x","sprintf","useState","useEffect","useDispatch","useSelect","useBlockProps","store","coreStore","View","EmbedEdit","props","attributes","providerNameSlug","previewable","responsive","url","attributesUrl","isSelected","onReplace","setAttributes","insertBlocksAfter","onFocus","defaultEmbedInfo","title","icon","setURL","isEditingURL","setIsEditingURL","invalidateResolution","preview","fetching","themeSupportsResponsive","cannotEmbed","select","getEmbedPreview","isPreviewEmbedFallback","isRequestingEmbedPreview","getThemeSupports","embedPreview","previewIsFallback","badEmbedProvider","html","type","undefined","wordpressCantEmbed","data","status","validPreview","getMergedAttributes","ignorePreviousClassName","toggleResponsive","allowResponsive","className","newAllowResponsive","newURL","replace","upgradedBlock","blockProps","label","showEmbedPlaceholder","event","preventDefault","target","value","caption","classFromPreview"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tcreateUpgradedEmbedBlock,\n\tgetClassNames,\n\tfallback,\n\tgetEmbedInfoByProvider,\n\tgetMergedAttributesWithPreview,\n} from './util';\nimport EmbedControls from './embed-controls';\nimport { embedContentIcon } from './icons';\nimport EmbedLoading from './embed-loading';\nimport EmbedPlaceholder from './embed-placeholder';\nimport EmbedPreview from './embed-preview';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { View } from '@wordpress/primitives';\n\nconst EmbedEdit = ( props ) => {\n\tconst {\n\t\tattributes: {\n\t\t\tproviderNameSlug,\n\t\t\tpreviewable,\n\t\t\tresponsive,\n\t\t\turl: attributesUrl,\n\t\t},\n\t\tattributes,\n\t\tisSelected,\n\t\tonReplace,\n\t\tsetAttributes,\n\t\tinsertBlocksAfter,\n\t\tonFocus,\n\t} = props;\n\n\tconst defaultEmbedInfo = {\n\t\ttitle: _x( 'Embed', 'block title' ),\n\t\ticon: embedContentIcon,\n\t};\n\tconst { icon, title } =\n\t\tgetEmbedInfoByProvider( providerNameSlug ) || defaultEmbedInfo;\n\n\tconst [ url, setURL ] = useState( attributesUrl );\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst { invalidateResolution } = useDispatch( coreStore );\n\n\tconst { preview, fetching, themeSupportsResponsive, cannotEmbed } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEmbedPreview,\n\t\t\t\t\tisPreviewEmbedFallback,\n\t\t\t\t\tisRequestingEmbedPreview,\n\t\t\t\t\tgetThemeSupports,\n\t\t\t\t} = select( coreStore );\n\t\t\t\tif ( ! attributesUrl ) {\n\t\t\t\t\treturn { fetching: false, cannotEmbed: false };\n\t\t\t\t}\n\n\t\t\t\tconst embedPreview = getEmbedPreview( attributesUrl );\n\t\t\t\tconst previewIsFallback =\n\t\t\t\t\tisPreviewEmbedFallback( attributesUrl );\n\n\t\t\t\t// The external oEmbed provider does not exist. We got no type info and no html.\n\t\t\t\tconst badEmbedProvider =\n\t\t\t\t\tembedPreview?.html === false &&\n\t\t\t\t\tembedPreview?.type === undefined;\n\t\t\t\t// Some WordPress URLs that can't be embedded will cause the API to return\n\t\t\t\t// a valid JSON response with no HTML and `data.status` set to 404, rather\n\t\t\t\t// than generating a fallback response as other embeds do.\n\t\t\t\tconst wordpressCantEmbed = embedPreview?.data?.status === 404;\n\t\t\t\tconst validPreview =\n\t\t\t\t\t!! embedPreview &&\n\t\t\t\t\t! badEmbedProvider &&\n\t\t\t\t\t! wordpressCantEmbed;\n\t\t\t\treturn {\n\t\t\t\t\tpreview: validPreview ? embedPreview : undefined,\n\t\t\t\t\tfetching: isRequestingEmbedPreview( attributesUrl ),\n\t\t\t\t\tthemeSupportsResponsive:\n\t\t\t\t\t\tgetThemeSupports()[ 'responsive-embeds' ],\n\t\t\t\t\tcannotEmbed: ! validPreview || previewIsFallback,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ attributesUrl ]\n\t\t);\n\n\t/**\n\t * Returns the attributes derived from the preview, merged with the current attributes.\n\t *\n\t * @param {boolean} ignorePreviousClassName Determines if the previous className attribute should be ignored when merging.\n\t * @return {Object} Merged attributes.\n\t */\n\tconst getMergedAttributes = ( ignorePreviousClassName = false ) =>\n\t\tgetMergedAttributesWithPreview(\n\t\t\tattributes,\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tresponsive,\n\t\t\tignorePreviousClassName\n\t\t);\n\n\tconst toggleResponsive = () => {\n\t\tconst { allowResponsive, className } = attributes;\n\t\tconst { html } = preview;\n\t\tconst newAllowResponsive = ! allowResponsive;\n\n\t\tsetAttributes( {\n\t\t\tallowResponsive: newAllowResponsive,\n\t\t\tclassName: getClassNames(\n\t\t\t\thtml,\n\t\t\t\tclassName,\n\t\t\t\tresponsive && newAllowResponsive\n\t\t\t),\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( ! preview?.html || ! cannotEmbed || fetching ) {\n\t\t\treturn;\n\t\t}\n\t\t// At this stage, we're not fetching the preview and know it can't be embedded,\n\t\t// so try removing any trailing slash, and resubmit.\n\t\tconst newURL = attributesUrl.replace( /\\/$/, '' );\n\t\tsetURL( newURL );\n\t\tsetIsEditingURL( false );\n\t\tsetAttributes( { url: newURL } );\n\t}, [ preview?.html, attributesUrl ] );\n\n\t// Handle incoming preview.\n\tuseEffect( () => {\n\t\tif ( preview && ! isEditingURL ) {\n\t\t\t// When obtaining an incoming preview, we set the attributes derived from\n\t\t\t// the preview data. In this case when getting the merged attributes,\n\t\t\t// we ignore the previous classname because it might not match the expected\n\t\t\t// classes by the new preview.\n\t\t\tsetAttributes( getMergedAttributes( true ) );\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst upgradedBlock = createUpgradedEmbedBlock(\n\t\t\t\t\tprops,\n\t\t\t\t\tgetMergedAttributes()\n\t\t\t\t);\n\n\t\t\t\tif ( upgradedBlock ) {\n\t\t\t\t\tonReplace( upgradedBlock );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ preview, isEditingURL ] );\n\n\tconst blockProps = useBlockProps();\n\n\tif ( fetching ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedLoading />\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// translators: %s: type of embed e.g: \"YouTube\", \"Twitter\", etc. \"Embed\" is used when no specific type exists\n\tconst label = sprintf( __( '%s URL' ), title );\n\n\t// No preview, or we can't embed the current URL, or we've clicked the edit button.\n\tconst showEmbedPlaceholder = ! preview || cannotEmbed || isEditingURL;\n\n\tif ( showEmbedPlaceholder ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedPlaceholder\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\tif ( event ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\tsetAttributes( { url } );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ url }\n\t\t\t\t\tcannotEmbed={ cannotEmbed }\n\t\t\t\t\tonChange={ ( event ) => setURL( event.target.value ) }\n\t\t\t\t\tfallback={ () => fallback( url, onReplace ) }\n\t\t\t\t\ttryAgain={ () => {\n\t\t\t\t\t\tinvalidateResolution( 'getEmbedPreview', [ url ] );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// Even though we set attributes that get derived from the preview,\n\t// we don't access them directly because for the initial render,\n\t// the `setAttributes` call will not have taken effect. If we're\n\t// rendering responsive content, setting the responsive classes\n\t// after the preview has been rendered can result in unwanted\n\t// clipping or scrollbars. The `getAttributesFromPreview` function\n\t// that `getMergedAttributes` uses is memoized so that we're not\n\t// calculating them on every render.\n\tconst {\n\t\tcaption,\n\t\ttype,\n\t\tallowResponsive,\n\t\tclassName: classFromPreview,\n\t} = getMergedAttributes();\n\tconst className = classnames( classFromPreview, props.className );\n\n\treturn (\n\t\t<>\n\t\t\t<EmbedControls\n\t\t\t\tshowEditButton={ preview && ! cannotEmbed }\n\t\t\t\tthemeSupportsResponsive={ themeSupportsResponsive }\n\t\t\t\tblockSupportsResponsive={ responsive }\n\t\t\t\tallowResponsive={ allowResponsive }\n\t\t\t\ttoggleResponsive={ toggleResponsive }\n\t\t\t\tswitchBackToURLInput={ () => setIsEditingURL( true ) }\n\t\t\t/>\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedPreview\n\t\t\t\t\tpreview={ preview }\n\t\t\t\t\tpreviewable={ previewable }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\turl={ url }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcaption={ caption }\n\t\t\t\t\tonCaptionChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</>\n\t);\n};\n\nexport default EmbedEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/embed/edit.js"],"names":["createUpgradedEmbedBlock","getClassNames","removeAspectRatioClasses","fallback","getEmbedInfoByProvider","getMergedAttributesWithPreview","EmbedControls","embedContentIcon","EmbedLoading","EmbedPlaceholder","EmbedPreview","classnames","__","_x","sprintf","useState","useEffect","useDispatch","useSelect","useBlockProps","store","coreStore","View","EmbedEdit","props","attributes","providerNameSlug","previewable","responsive","url","attributesUrl","isSelected","onReplace","setAttributes","insertBlocksAfter","onFocus","defaultEmbedInfo","title","icon","setURL","isEditingURL","setIsEditingURL","invalidateResolution","preview","fetching","themeSupportsResponsive","cannotEmbed","select","getEmbedPreview","isPreviewEmbedFallback","isRequestingEmbedPreview","getThemeSupports","embedPreview","previewIsFallback","badEmbedProvider","html","type","undefined","wordpressCantEmbed","data","status","validPreview","getMergedAttributes","toggleResponsive","allowResponsive","className","newAllowResponsive","newURL","replace","mergedAttributes","upgradedBlock","blockProps","label","showEmbedPlaceholder","event","preventDefault","blockClass","target","value","caption","classFromPreview"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tcreateUpgradedEmbedBlock,\n\tgetClassNames,\n\tremoveAspectRatioClasses,\n\tfallback,\n\tgetEmbedInfoByProvider,\n\tgetMergedAttributesWithPreview,\n} from './util';\nimport EmbedControls from './embed-controls';\nimport { embedContentIcon } from './icons';\nimport EmbedLoading from './embed-loading';\nimport EmbedPlaceholder from './embed-placeholder';\nimport EmbedPreview from './embed-preview';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { View } from '@wordpress/primitives';\n\nconst EmbedEdit = ( props ) => {\n\tconst {\n\t\tattributes: {\n\t\t\tproviderNameSlug,\n\t\t\tpreviewable,\n\t\t\tresponsive,\n\t\t\turl: attributesUrl,\n\t\t},\n\t\tattributes,\n\t\tisSelected,\n\t\tonReplace,\n\t\tsetAttributes,\n\t\tinsertBlocksAfter,\n\t\tonFocus,\n\t} = props;\n\n\tconst defaultEmbedInfo = {\n\t\ttitle: _x( 'Embed', 'block title' ),\n\t\ticon: embedContentIcon,\n\t};\n\tconst { icon, title } =\n\t\tgetEmbedInfoByProvider( providerNameSlug ) || defaultEmbedInfo;\n\n\tconst [ url, setURL ] = useState( attributesUrl );\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst { invalidateResolution } = useDispatch( coreStore );\n\n\tconst { preview, fetching, themeSupportsResponsive, cannotEmbed } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEmbedPreview,\n\t\t\t\t\tisPreviewEmbedFallback,\n\t\t\t\t\tisRequestingEmbedPreview,\n\t\t\t\t\tgetThemeSupports,\n\t\t\t\t} = select( coreStore );\n\t\t\t\tif ( ! attributesUrl ) {\n\t\t\t\t\treturn { fetching: false, cannotEmbed: false };\n\t\t\t\t}\n\n\t\t\t\tconst embedPreview = getEmbedPreview( attributesUrl );\n\t\t\t\tconst previewIsFallback =\n\t\t\t\t\tisPreviewEmbedFallback( attributesUrl );\n\n\t\t\t\t// The external oEmbed provider does not exist. We got no type info and no html.\n\t\t\t\tconst badEmbedProvider =\n\t\t\t\t\tembedPreview?.html === false &&\n\t\t\t\t\tembedPreview?.type === undefined;\n\t\t\t\t// Some WordPress URLs that can't be embedded will cause the API to return\n\t\t\t\t// a valid JSON response with no HTML and `data.status` set to 404, rather\n\t\t\t\t// than generating a fallback response as other embeds do.\n\t\t\t\tconst wordpressCantEmbed = embedPreview?.data?.status === 404;\n\t\t\t\tconst validPreview =\n\t\t\t\t\t!! embedPreview &&\n\t\t\t\t\t! badEmbedProvider &&\n\t\t\t\t\t! wordpressCantEmbed;\n\t\t\t\treturn {\n\t\t\t\t\tpreview: validPreview ? embedPreview : undefined,\n\t\t\t\t\tfetching: isRequestingEmbedPreview( attributesUrl ),\n\t\t\t\t\tthemeSupportsResponsive:\n\t\t\t\t\t\tgetThemeSupports()[ 'responsive-embeds' ],\n\t\t\t\t\tcannotEmbed: ! validPreview || previewIsFallback,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ attributesUrl ]\n\t\t);\n\n\t/**\n\t * Returns the attributes derived from the preview, merged with the current attributes.\n\t *\n\t * @return {Object} Merged attributes.\n\t */\n\tconst getMergedAttributes = () =>\n\t\tgetMergedAttributesWithPreview(\n\t\t\tattributes,\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tresponsive\n\t\t);\n\n\tconst toggleResponsive = () => {\n\t\tconst { allowResponsive, className } = attributes;\n\t\tconst { html } = preview;\n\t\tconst newAllowResponsive = ! allowResponsive;\n\n\t\tsetAttributes( {\n\t\t\tallowResponsive: newAllowResponsive,\n\t\t\tclassName: getClassNames(\n\t\t\t\thtml,\n\t\t\t\tclassName,\n\t\t\t\tresponsive && newAllowResponsive\n\t\t\t),\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( ! preview?.html || ! cannotEmbed || fetching ) {\n\t\t\treturn;\n\t\t}\n\t\t// At this stage, we're not fetching the preview and know it can't be embedded,\n\t\t// so try removing any trailing slash, and resubmit.\n\t\tconst newURL = attributesUrl.replace( /\\/$/, '' );\n\t\tsetURL( newURL );\n\t\tsetIsEditingURL( false );\n\t\tsetAttributes( { url: newURL } );\n\t}, [ preview?.html, attributesUrl, cannotEmbed, fetching ] );\n\n\t// Handle incoming preview.\n\tuseEffect( () => {\n\t\tif ( preview && ! isEditingURL ) {\n\t\t\t// When obtaining an incoming preview,\n\t\t\t// we set the attributes derived from the preview data.\n\t\t\tconst mergedAttributes = getMergedAttributes();\n\t\t\tsetAttributes( mergedAttributes );\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst upgradedBlock = createUpgradedEmbedBlock(\n\t\t\t\t\tprops,\n\t\t\t\t\tmergedAttributes\n\t\t\t\t);\n\n\t\t\t\tif ( upgradedBlock ) {\n\t\t\t\t\tonReplace( upgradedBlock );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ preview, isEditingURL ] );\n\n\tconst blockProps = useBlockProps();\n\n\tif ( fetching ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedLoading />\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// translators: %s: type of embed e.g: \"YouTube\", \"Twitter\", etc. \"Embed\" is used when no specific type exists\n\tconst label = sprintf( __( '%s URL' ), title );\n\n\t// No preview, or we can't embed the current URL, or we've clicked the edit button.\n\tconst showEmbedPlaceholder = ! preview || cannotEmbed || isEditingURL;\n\n\tif ( showEmbedPlaceholder ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedPlaceholder\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\tif ( event ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If the embed URL was changed, we need to reset the aspect ratio class.\n\t\t\t\t\t\t// To do this we have to remove the existing ratio class so it can be recalculated.\n\t\t\t\t\t\tconst blockClass = removeAspectRatioClasses(\n\t\t\t\t\t\t\tattributes.className\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\tsetAttributes( { url, className: blockClass } );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ url }\n\t\t\t\t\tcannotEmbed={ cannotEmbed }\n\t\t\t\t\tonChange={ ( event ) => setURL( event.target.value ) }\n\t\t\t\t\tfallback={ () => fallback( url, onReplace ) }\n\t\t\t\t\ttryAgain={ () => {\n\t\t\t\t\t\tinvalidateResolution( 'getEmbedPreview', [ url ] );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// Even though we set attributes that get derived from the preview,\n\t// we don't access them directly because for the initial render,\n\t// the `setAttributes` call will not have taken effect. If we're\n\t// rendering responsive content, setting the responsive classes\n\t// after the preview has been rendered can result in unwanted\n\t// clipping or scrollbars. The `getAttributesFromPreview` function\n\t// that `getMergedAttributes` uses is memoized so that we're not\n\t// calculating them on every render.\n\tconst {\n\t\tcaption,\n\t\ttype,\n\t\tallowResponsive,\n\t\tclassName: classFromPreview,\n\t} = getMergedAttributes();\n\tconst className = classnames( classFromPreview, props.className );\n\n\treturn (\n\t\t<>\n\t\t\t<EmbedControls\n\t\t\t\tshowEditButton={ preview && ! cannotEmbed }\n\t\t\t\tthemeSupportsResponsive={ themeSupportsResponsive }\n\t\t\t\tblockSupportsResponsive={ responsive }\n\t\t\t\tallowResponsive={ allowResponsive }\n\t\t\t\ttoggleResponsive={ toggleResponsive }\n\t\t\t\tswitchBackToURLInput={ () => setIsEditingURL( true ) }\n\t\t\t/>\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedPreview\n\t\t\t\t\tpreview={ preview }\n\t\t\t\t\tpreviewable={ previewable }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\turl={ url }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcaption={ caption }\n\t\t\t\t\tonCaptionChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</>\n\t);\n};\n\nexport default EmbedEdit;\n"]}
@@ -3,7 +3,7 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * Internal dependencies
5
5
  */
6
- import { createUpgradedEmbedBlock, getClassNames, fallback, getEmbedInfoByProvider, getMergedAttributesWithPreview } from './util';
6
+ import { createUpgradedEmbedBlock, getClassNames, removeAspectRatioClasses, fallback, getEmbedInfoByProvider, getMergedAttributesWithPreview } from './util';
7
7
  import EmbedControls from './embed-controls';
8
8
  import { embedContentIcon } from './icons';
9
9
  import EmbedLoading from './embed-loading';
@@ -109,14 +109,10 @@ const EmbedEdit = props => {
109
109
  /**
110
110
  * Returns the attributes derived from the preview, merged with the current attributes.
111
111
  *
112
- * @param {boolean} ignorePreviousClassName Determines if the previous className attribute should be ignored when merging.
113
112
  * @return {Object} Merged attributes.
114
113
  */
115
114
 
116
- const getMergedAttributes = function () {
117
- let ignorePreviousClassName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
118
- return getMergedAttributesWithPreview(attributes, preview, title, responsive, ignorePreviousClassName);
119
- };
115
+ const getMergedAttributes = () => getMergedAttributesWithPreview(attributes, preview, title, responsive);
120
116
 
121
117
  const toggleResponsive = () => {
122
118
  const {
@@ -145,18 +141,17 @@ const EmbedEdit = props => {
145
141
  setAttributes({
146
142
  url: newURL
147
143
  });
148
- }, [preview === null || preview === void 0 ? void 0 : preview.html, url]); // Handle incoming preview.
144
+ }, [preview === null || preview === void 0 ? void 0 : preview.html, url, cannotEmbed, fetching]); // Handle incoming preview.
149
145
 
150
146
  useEffect(() => {
151
147
  if (preview && !isEditingURL) {
152
- // When obtaining an incoming preview, we set the attributes derived from
153
- // the preview data. In this case when getting the merged attributes,
154
- // we ignore the previous classname because it might not match the expected
155
- // classes by the new preview.
156
- setAttributes(getMergedAttributes(true));
148
+ // When obtaining an incoming preview,
149
+ // we set the attributes derived from the preview data.
150
+ const mergedAttributes = getMergedAttributes();
151
+ setAttributes(mergedAttributes);
157
152
 
158
153
  if (onReplace) {
159
- const upgradedBlock = createUpgradedEmbedBlock(props, getMergedAttributes());
154
+ const upgradedBlock = createUpgradedEmbedBlock(props, mergedAttributes);
160
155
 
161
156
  if (upgradedBlock) {
162
157
  onReplace(upgradedBlock);
@@ -166,14 +161,23 @@ const EmbedEdit = props => {
166
161
  }, [preview, isEditingURL]);
167
162
  useEffect(() => setShowEmbedBottomSheet(isEditingURL), [isEditingURL]);
168
163
  const onEditURL = useCallback(value => {
169
- // The order of the following calls is important, we need to update the URL attribute before changing `isEditingURL`,
164
+ // If the embed URL was changed, we need to reset the aspect ratio class.
165
+ // To do this we have to remove the existing ratio class so it can be recalculated.
166
+ if (attributes.url !== value) {
167
+ const blockClass = removeAspectRatioClasses(attributes.className);
168
+ setAttributes({
169
+ className: blockClass
170
+ });
171
+ } // The order of the following calls is important, we need to update the URL attribute before changing `isEditingURL`,
170
172
  // otherwise the side-effect that potentially replaces the block when updating the local state won't use the new URL
171
173
  // for creating the new block.
174
+
175
+
172
176
  setAttributes({
173
177
  url: value
174
178
  });
175
179
  setIsEditingURL(false);
176
- }, []);
180
+ }, [attributes, setAttributes]);
177
181
  const blockProps = useBlockProps();
178
182
 
179
183
  if (fetching) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/embed/edit.native.js"],"names":["createUpgradedEmbedBlock","getClassNames","fallback","getEmbedInfoByProvider","getMergedAttributesWithPreview","EmbedControls","embedContentIcon","EmbedLoading","EmbedPlaceholder","EmbedPreview","EmbedLinkSettings","classnames","_x","useCallback","useState","useEffect","useDispatch","useSelect","useBlockProps","store","blockEditorStore","coreStore","View","PREVIEWABLE_PROVIDERS","NOT_PREVIEWABLE_WP_EMBED_PROVIDERS","WP_EMBED_TYPE","EmbedEdit","props","attributes","align","providerNameSlug","previewable","responsive","url","isSelected","onReplace","setAttributes","insertBlocksAfter","onFocus","clientId","defaultEmbedInfo","title","icon","embedInfoByProvider","wasBlockJustInserted","select","isEditingURL","setIsEditingURL","showEmbedBottomSheet","setShowEmbedBottomSheet","invalidateResolution","preview","fetching","themeSupportsResponsive","cannotEmbed","getEmbedPreview","hasFinishedResolution","isPreviewEmbedFallback","getThemeSupports","embedPreview","hasResolvedEmbedPreview","previewIsFallback","badEmbedProvider","html","type","undefined","wordpressCantEmbed","code","validPreview","getMergedAttributes","ignorePreviousClassName","toggleResponsive","allowResponsive","className","newAllowResponsive","newURL","replace","upgradedBlock","onEditURL","value","blockProps","showEmbedPlaceholder","classFromPreview","isProviderPreviewable","includes","linkLabel","event"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tcreateUpgradedEmbedBlock,\n\tgetClassNames,\n\tfallback,\n\tgetEmbedInfoByProvider,\n\tgetMergedAttributesWithPreview,\n} from './util';\nimport EmbedControls from './embed-controls';\nimport { embedContentIcon } from './icons';\nimport EmbedLoading from './embed-loading';\nimport EmbedPlaceholder from './embed-placeholder';\nimport EmbedPreview from './embed-preview';\nimport EmbedLinkSettings from './embed-link-settings';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\nimport { useCallback, useState, useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { View } from '@wordpress/primitives';\n\n// The inline preview feature will be released progressible, for this reason\n// the embed will only be considered previewable for the following providers list.\nconst PREVIEWABLE_PROVIDERS = [ 'youtube', 'twitter', 'instagram', 'vimeo' ];\n// Some providers are rendering the inline preview as a WordPress embed and\n// are not supported yet, so we need to disallow them with a fixed providers list.\nconst NOT_PREVIEWABLE_WP_EMBED_PROVIDERS = [ 'pinterest' ];\n\nconst WP_EMBED_TYPE = 'wp-embed';\n\nconst EmbedEdit = ( props ) => {\n\tconst {\n\t\tattributes: { align, providerNameSlug, previewable, responsive, url },\n\t\tattributes,\n\t\tisSelected,\n\t\tonReplace,\n\t\tsetAttributes,\n\t\tinsertBlocksAfter,\n\t\tonFocus,\n\t\tclientId,\n\t} = props;\n\n\tconst defaultEmbedInfo = {\n\t\ttitle: _x( 'Embed', 'block title' ),\n\t\ticon: embedContentIcon,\n\t};\n\tconst embedInfoByProvider = getEmbedInfoByProvider( providerNameSlug );\n\tconst { icon, title } = embedInfoByProvider || defaultEmbedInfo;\n\n\tconst { wasBlockJustInserted } = useSelect(\n\t\t( select ) => ( {\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t} ),\n\t\t[ clientId ]\n\t);\n\tconst [ isEditingURL, setIsEditingURL ] = useState(\n\t\tisSelected && wasBlockJustInserted && ! url\n\t);\n\tconst [ showEmbedBottomSheet, setShowEmbedBottomSheet ] =\n\t\tuseState( isEditingURL );\n\tconst { invalidateResolution } = useDispatch( coreStore );\n\n\tconst { preview, fetching, themeSupportsResponsive, cannotEmbed } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEmbedPreview,\n\t\t\t\t\thasFinishedResolution,\n\t\t\t\t\tisPreviewEmbedFallback,\n\t\t\t\t\tgetThemeSupports,\n\t\t\t\t} = select( coreStore );\n\t\t\t\tif ( ! url ) {\n\t\t\t\t\treturn { fetching: false, cannotEmbed: false };\n\t\t\t\t}\n\n\t\t\t\tconst embedPreview = getEmbedPreview( url );\n\t\t\t\tconst hasResolvedEmbedPreview = hasFinishedResolution(\n\t\t\t\t\t'getEmbedPreview',\n\t\t\t\t\t[ url ]\n\t\t\t\t);\n\t\t\t\tconst previewIsFallback = isPreviewEmbedFallback( url );\n\n\t\t\t\t// The external oEmbed provider does not exist. We got no type info and no html.\n\t\t\t\tconst badEmbedProvider =\n\t\t\t\t\tembedPreview?.html === false &&\n\t\t\t\t\tembedPreview?.type === undefined;\n\t\t\t\t// Some WordPress URLs that can't be embedded will cause the API to return\n\t\t\t\t// a valid JSON response with no HTML and `code` set to 404, rather\n\t\t\t\t// than generating a fallback response as other embeds do.\n\t\t\t\tconst wordpressCantEmbed = embedPreview?.code === '404';\n\t\t\t\tconst validPreview =\n\t\t\t\t\t!! embedPreview &&\n\t\t\t\t\t! badEmbedProvider &&\n\t\t\t\t\t! wordpressCantEmbed;\n\n\t\t\t\treturn {\n\t\t\t\t\tpreview: validPreview ? embedPreview : undefined,\n\t\t\t\t\tfetching: ! hasResolvedEmbedPreview,\n\t\t\t\t\tthemeSupportsResponsive:\n\t\t\t\t\t\tgetThemeSupports()[ 'responsive-embeds' ],\n\t\t\t\t\tcannotEmbed: ! validPreview || previewIsFallback,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ url ]\n\t\t);\n\n\t/**\n\t * Returns the attributes derived from the preview, merged with the current attributes.\n\t *\n\t * @param {boolean} ignorePreviousClassName Determines if the previous className attribute should be ignored when merging.\n\t * @return {Object} Merged attributes.\n\t */\n\tconst getMergedAttributes = ( ignorePreviousClassName = false ) =>\n\t\tgetMergedAttributesWithPreview(\n\t\t\tattributes,\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tresponsive,\n\t\t\tignorePreviousClassName\n\t\t);\n\n\tconst toggleResponsive = () => {\n\t\tconst { allowResponsive, className } = attributes;\n\t\tconst { html } = preview;\n\t\tconst newAllowResponsive = ! allowResponsive;\n\n\t\tsetAttributes( {\n\t\t\tallowResponsive: newAllowResponsive,\n\t\t\tclassName: getClassNames(\n\t\t\t\thtml,\n\t\t\t\tclassName,\n\t\t\t\tresponsive && newAllowResponsive\n\t\t\t),\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( ! preview?.html || ! cannotEmbed || fetching ) {\n\t\t\treturn;\n\t\t}\n\t\t// At this stage, we're not fetching the preview and know it can't be embedded,\n\t\t// so try removing any trailing slash, and resubmit.\n\t\tconst newURL = url.replace( /\\/$/, '' );\n\t\tsetIsEditingURL( false );\n\t\tsetAttributes( { url: newURL } );\n\t}, [ preview?.html, url ] );\n\n\t// Handle incoming preview.\n\tuseEffect( () => {\n\t\tif ( preview && ! isEditingURL ) {\n\t\t\t// When obtaining an incoming preview, we set the attributes derived from\n\t\t\t// the preview data. In this case when getting the merged attributes,\n\t\t\t// we ignore the previous classname because it might not match the expected\n\t\t\t// classes by the new preview.\n\t\t\tsetAttributes( getMergedAttributes( true ) );\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst upgradedBlock = createUpgradedEmbedBlock(\n\t\t\t\t\tprops,\n\t\t\t\t\tgetMergedAttributes()\n\t\t\t\t);\n\n\t\t\t\tif ( upgradedBlock ) {\n\t\t\t\t\tonReplace( upgradedBlock );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ preview, isEditingURL ] );\n\n\tuseEffect(\n\t\t() => setShowEmbedBottomSheet( isEditingURL ),\n\t\t[ isEditingURL ]\n\t);\n\n\tconst onEditURL = useCallback( ( value ) => {\n\t\t// The order of the following calls is important, we need to update the URL attribute before changing `isEditingURL`,\n\t\t// otherwise the side-effect that potentially replaces the block when updating the local state won't use the new URL\n\t\t// for creating the new block.\n\t\tsetAttributes( { url: value } );\n\t\tsetIsEditingURL( false );\n\t}, [] );\n\n\tconst blockProps = useBlockProps();\n\n\tif ( fetching ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedLoading />\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst showEmbedPlaceholder = ! preview || cannotEmbed;\n\n\t// Even though we set attributes that get derived from the preview,\n\t// we don't access them directly because for the initial render,\n\t// the `setAttributes` call will not have taken effect. If we're\n\t// rendering responsive content, setting the responsive classes\n\t// after the preview has been rendered can result in unwanted\n\t// clipping or scrollbars. The `getAttributesFromPreview` function\n\t// that `getMergedAttributes` uses is memoized so that we're not\n\t// calculating them on every render.\n\tconst {\n\t\ttype,\n\t\tallowResponsive,\n\t\tclassName: classFromPreview,\n\t} = getMergedAttributes();\n\tconst className = classnames( classFromPreview, props.className );\n\n\tconst isProviderPreviewable =\n\t\tPREVIEWABLE_PROVIDERS.includes( providerNameSlug ) ||\n\t\t// For WordPress embeds, we enable the inline preview for all its providers\n\t\t// except the ones that are not supported yet.\n\t\t( WP_EMBED_TYPE === type &&\n\t\t\t! NOT_PREVIEWABLE_WP_EMBED_PROVIDERS.includes( providerNameSlug ) );\n\n\tconst linkLabel = WP_EMBED_TYPE === type ? 'WordPress' : title;\n\n\treturn (\n\t\t<>\n\t\t\t{ showEmbedPlaceholder ? (\n\t\t\t\t<>\n\t\t\t\t\t<View { ...blockProps }>\n\t\t\t\t\t\t<EmbedPlaceholder\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tlabel={ title }\n\t\t\t\t\t\t\tonPress={ ( event ) => {\n\t\t\t\t\t\t\t\tonFocus( event );\n\t\t\t\t\t\t\t\tsetIsEditingURL( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tcannotEmbed={ cannotEmbed }\n\t\t\t\t\t\t\tfallback={ () => fallback( url, onReplace ) }\n\t\t\t\t\t\t\ttryAgain={ () => {\n\t\t\t\t\t\t\t\tinvalidateResolution( 'getEmbedPreview', [\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\topenEmbedLinkSettings={ () =>\n\t\t\t\t\t\t\t\tsetShowEmbedBottomSheet( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<EmbedControls\n\t\t\t\t\t\tthemeSupportsResponsive={ themeSupportsResponsive }\n\t\t\t\t\t\tblockSupportsResponsive={ responsive }\n\t\t\t\t\t\tallowResponsive={ allowResponsive }\n\t\t\t\t\t\ttoggleResponsive={ toggleResponsive }\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tlinkLabel={ linkLabel }\n\t\t\t\t\t\tonEditURL={ onEditURL }\n\t\t\t\t\t/>\n\t\t\t\t\t<View { ...blockProps }>\n\t\t\t\t\t\t<EmbedPreview\n\t\t\t\t\t\t\talign={ align }\n\t\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tlabel={ title }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tpreview={ preview }\n\t\t\t\t\t\t\tisProviderPreviewable={ isProviderPreviewable }\n\t\t\t\t\t\t\tpreviewable={ previewable }\n\t\t\t\t\t\t\ttype={ type }\n\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\tisDefaultEmbedInfo={ ! embedInfoByProvider }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<EmbedLinkSettings\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\tautoFocus\n\t\t\t\tvalue={ url }\n\t\t\t\tlabel={ linkLabel }\n\t\t\t\tisVisible={ showEmbedBottomSheet }\n\t\t\t\tonClose={ () => setShowEmbedBottomSheet( false ) }\n\t\t\t\tonSubmit={ onEditURL }\n\t\t\t\twithBottomSheet\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default EmbedEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/embed/edit.native.js"],"names":["createUpgradedEmbedBlock","getClassNames","removeAspectRatioClasses","fallback","getEmbedInfoByProvider","getMergedAttributesWithPreview","EmbedControls","embedContentIcon","EmbedLoading","EmbedPlaceholder","EmbedPreview","EmbedLinkSettings","classnames","_x","useCallback","useState","useEffect","useDispatch","useSelect","useBlockProps","store","blockEditorStore","coreStore","View","PREVIEWABLE_PROVIDERS","NOT_PREVIEWABLE_WP_EMBED_PROVIDERS","WP_EMBED_TYPE","EmbedEdit","props","attributes","align","providerNameSlug","previewable","responsive","url","isSelected","onReplace","setAttributes","insertBlocksAfter","onFocus","clientId","defaultEmbedInfo","title","icon","embedInfoByProvider","wasBlockJustInserted","select","isEditingURL","setIsEditingURL","showEmbedBottomSheet","setShowEmbedBottomSheet","invalidateResolution","preview","fetching","themeSupportsResponsive","cannotEmbed","getEmbedPreview","hasFinishedResolution","isPreviewEmbedFallback","getThemeSupports","embedPreview","hasResolvedEmbedPreview","previewIsFallback","badEmbedProvider","html","type","undefined","wordpressCantEmbed","code","validPreview","getMergedAttributes","toggleResponsive","allowResponsive","className","newAllowResponsive","newURL","replace","mergedAttributes","upgradedBlock","onEditURL","value","blockClass","blockProps","showEmbedPlaceholder","classFromPreview","isProviderPreviewable","includes","linkLabel","event"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tcreateUpgradedEmbedBlock,\n\tgetClassNames,\n\tremoveAspectRatioClasses,\n\tfallback,\n\tgetEmbedInfoByProvider,\n\tgetMergedAttributesWithPreview,\n} from './util';\nimport EmbedControls from './embed-controls';\nimport { embedContentIcon } from './icons';\nimport EmbedLoading from './embed-loading';\nimport EmbedPlaceholder from './embed-placeholder';\nimport EmbedPreview from './embed-preview';\nimport EmbedLinkSettings from './embed-link-settings';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\nimport { useCallback, useState, useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { View } from '@wordpress/primitives';\n\n// The inline preview feature will be released progressible, for this reason\n// the embed will only be considered previewable for the following providers list.\nconst PREVIEWABLE_PROVIDERS = [ 'youtube', 'twitter', 'instagram', 'vimeo' ];\n// Some providers are rendering the inline preview as a WordPress embed and\n// are not supported yet, so we need to disallow them with a fixed providers list.\nconst NOT_PREVIEWABLE_WP_EMBED_PROVIDERS = [ 'pinterest' ];\n\nconst WP_EMBED_TYPE = 'wp-embed';\n\nconst EmbedEdit = ( props ) => {\n\tconst {\n\t\tattributes: { align, providerNameSlug, previewable, responsive, url },\n\t\tattributes,\n\t\tisSelected,\n\t\tonReplace,\n\t\tsetAttributes,\n\t\tinsertBlocksAfter,\n\t\tonFocus,\n\t\tclientId,\n\t} = props;\n\n\tconst defaultEmbedInfo = {\n\t\ttitle: _x( 'Embed', 'block title' ),\n\t\ticon: embedContentIcon,\n\t};\n\tconst embedInfoByProvider = getEmbedInfoByProvider( providerNameSlug );\n\tconst { icon, title } = embedInfoByProvider || defaultEmbedInfo;\n\n\tconst { wasBlockJustInserted } = useSelect(\n\t\t( select ) => ( {\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t} ),\n\t\t[ clientId ]\n\t);\n\tconst [ isEditingURL, setIsEditingURL ] = useState(\n\t\tisSelected && wasBlockJustInserted && ! url\n\t);\n\tconst [ showEmbedBottomSheet, setShowEmbedBottomSheet ] =\n\t\tuseState( isEditingURL );\n\tconst { invalidateResolution } = useDispatch( coreStore );\n\n\tconst { preview, fetching, themeSupportsResponsive, cannotEmbed } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEmbedPreview,\n\t\t\t\t\thasFinishedResolution,\n\t\t\t\t\tisPreviewEmbedFallback,\n\t\t\t\t\tgetThemeSupports,\n\t\t\t\t} = select( coreStore );\n\t\t\t\tif ( ! url ) {\n\t\t\t\t\treturn { fetching: false, cannotEmbed: false };\n\t\t\t\t}\n\n\t\t\t\tconst embedPreview = getEmbedPreview( url );\n\t\t\t\tconst hasResolvedEmbedPreview = hasFinishedResolution(\n\t\t\t\t\t'getEmbedPreview',\n\t\t\t\t\t[ url ]\n\t\t\t\t);\n\t\t\t\tconst previewIsFallback = isPreviewEmbedFallback( url );\n\n\t\t\t\t// The external oEmbed provider does not exist. We got no type info and no html.\n\t\t\t\tconst badEmbedProvider =\n\t\t\t\t\tembedPreview?.html === false &&\n\t\t\t\t\tembedPreview?.type === undefined;\n\t\t\t\t// Some WordPress URLs that can't be embedded will cause the API to return\n\t\t\t\t// a valid JSON response with no HTML and `code` set to 404, rather\n\t\t\t\t// than generating a fallback response as other embeds do.\n\t\t\t\tconst wordpressCantEmbed = embedPreview?.code === '404';\n\t\t\t\tconst validPreview =\n\t\t\t\t\t!! embedPreview &&\n\t\t\t\t\t! badEmbedProvider &&\n\t\t\t\t\t! wordpressCantEmbed;\n\n\t\t\t\treturn {\n\t\t\t\t\tpreview: validPreview ? embedPreview : undefined,\n\t\t\t\t\tfetching: ! hasResolvedEmbedPreview,\n\t\t\t\t\tthemeSupportsResponsive:\n\t\t\t\t\t\tgetThemeSupports()[ 'responsive-embeds' ],\n\t\t\t\t\tcannotEmbed: ! validPreview || previewIsFallback,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ url ]\n\t\t);\n\n\t/**\n\t * Returns the attributes derived from the preview, merged with the current attributes.\n\t *\n\t * @return {Object} Merged attributes.\n\t */\n\tconst getMergedAttributes = () =>\n\t\tgetMergedAttributesWithPreview(\n\t\t\tattributes,\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tresponsive\n\t\t);\n\n\tconst toggleResponsive = () => {\n\t\tconst { allowResponsive, className } = attributes;\n\t\tconst { html } = preview;\n\t\tconst newAllowResponsive = ! allowResponsive;\n\n\t\tsetAttributes( {\n\t\t\tallowResponsive: newAllowResponsive,\n\t\t\tclassName: getClassNames(\n\t\t\t\thtml,\n\t\t\t\tclassName,\n\t\t\t\tresponsive && newAllowResponsive\n\t\t\t),\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( ! preview?.html || ! cannotEmbed || fetching ) {\n\t\t\treturn;\n\t\t}\n\t\t// At this stage, we're not fetching the preview and know it can't be embedded,\n\t\t// so try removing any trailing slash, and resubmit.\n\t\tconst newURL = url.replace( /\\/$/, '' );\n\t\tsetIsEditingURL( false );\n\t\tsetAttributes( { url: newURL } );\n\t}, [ preview?.html, url, cannotEmbed, fetching ] );\n\n\t// Handle incoming preview.\n\tuseEffect( () => {\n\t\tif ( preview && ! isEditingURL ) {\n\t\t\t// When obtaining an incoming preview,\n\t\t\t// we set the attributes derived from the preview data.\n\t\t\tconst mergedAttributes = getMergedAttributes();\n\t\t\tsetAttributes( mergedAttributes );\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst upgradedBlock = createUpgradedEmbedBlock(\n\t\t\t\t\tprops,\n\t\t\t\t\tmergedAttributes\n\t\t\t\t);\n\n\t\t\t\tif ( upgradedBlock ) {\n\t\t\t\t\tonReplace( upgradedBlock );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ preview, isEditingURL ] );\n\n\tuseEffect(\n\t\t() => setShowEmbedBottomSheet( isEditingURL ),\n\t\t[ isEditingURL ]\n\t);\n\n\tconst onEditURL = useCallback(\n\t\t( value ) => {\n\t\t\t// If the embed URL was changed, we need to reset the aspect ratio class.\n\t\t\t// To do this we have to remove the existing ratio class so it can be recalculated.\n\t\t\tif ( attributes.url !== value ) {\n\t\t\t\tconst blockClass = removeAspectRatioClasses(\n\t\t\t\t\tattributes.className\n\t\t\t\t);\n\t\t\t\tsetAttributes( { className: blockClass } );\n\t\t\t}\n\n\t\t\t// The order of the following calls is important, we need to update the URL attribute before changing `isEditingURL`,\n\t\t\t// otherwise the side-effect that potentially replaces the block when updating the local state won't use the new URL\n\t\t\t// for creating the new block.\n\t\t\tsetAttributes( { url: value } );\n\t\t\tsetIsEditingURL( false );\n\t\t},\n\t\t[ attributes, setAttributes ]\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( fetching ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedLoading />\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst showEmbedPlaceholder = ! preview || cannotEmbed;\n\n\t// Even though we set attributes that get derived from the preview,\n\t// we don't access them directly because for the initial render,\n\t// the `setAttributes` call will not have taken effect. If we're\n\t// rendering responsive content, setting the responsive classes\n\t// after the preview has been rendered can result in unwanted\n\t// clipping or scrollbars. The `getAttributesFromPreview` function\n\t// that `getMergedAttributes` uses is memoized so that we're not\n\t// calculating them on every render.\n\tconst {\n\t\ttype,\n\t\tallowResponsive,\n\t\tclassName: classFromPreview,\n\t} = getMergedAttributes();\n\tconst className = classnames( classFromPreview, props.className );\n\n\tconst isProviderPreviewable =\n\t\tPREVIEWABLE_PROVIDERS.includes( providerNameSlug ) ||\n\t\t// For WordPress embeds, we enable the inline preview for all its providers\n\t\t// except the ones that are not supported yet.\n\t\t( WP_EMBED_TYPE === type &&\n\t\t\t! NOT_PREVIEWABLE_WP_EMBED_PROVIDERS.includes( providerNameSlug ) );\n\n\tconst linkLabel = WP_EMBED_TYPE === type ? 'WordPress' : title;\n\n\treturn (\n\t\t<>\n\t\t\t{ showEmbedPlaceholder ? (\n\t\t\t\t<>\n\t\t\t\t\t<View { ...blockProps }>\n\t\t\t\t\t\t<EmbedPlaceholder\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tlabel={ title }\n\t\t\t\t\t\t\tonPress={ ( event ) => {\n\t\t\t\t\t\t\t\tonFocus( event );\n\t\t\t\t\t\t\t\tsetIsEditingURL( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tcannotEmbed={ cannotEmbed }\n\t\t\t\t\t\t\tfallback={ () => fallback( url, onReplace ) }\n\t\t\t\t\t\t\ttryAgain={ () => {\n\t\t\t\t\t\t\t\tinvalidateResolution( 'getEmbedPreview', [\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\topenEmbedLinkSettings={ () =>\n\t\t\t\t\t\t\t\tsetShowEmbedBottomSheet( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<EmbedControls\n\t\t\t\t\t\tthemeSupportsResponsive={ themeSupportsResponsive }\n\t\t\t\t\t\tblockSupportsResponsive={ responsive }\n\t\t\t\t\t\tallowResponsive={ allowResponsive }\n\t\t\t\t\t\ttoggleResponsive={ toggleResponsive }\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tlinkLabel={ linkLabel }\n\t\t\t\t\t\tonEditURL={ onEditURL }\n\t\t\t\t\t/>\n\t\t\t\t\t<View { ...blockProps }>\n\t\t\t\t\t\t<EmbedPreview\n\t\t\t\t\t\t\talign={ align }\n\t\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tlabel={ title }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tpreview={ preview }\n\t\t\t\t\t\t\tisProviderPreviewable={ isProviderPreviewable }\n\t\t\t\t\t\t\tpreviewable={ previewable }\n\t\t\t\t\t\t\ttype={ type }\n\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\tisDefaultEmbedInfo={ ! embedInfoByProvider }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<EmbedLinkSettings\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\tautoFocus\n\t\t\t\tvalue={ url }\n\t\t\t\tlabel={ linkLabel }\n\t\t\t\tisVisible={ showEmbedBottomSheet }\n\t\t\t\tonClose={ () => setShowEmbedBottomSheet( false ) }\n\t\t\t\tonSubmit={ onEditURL }\n\t\t\t\twithBottomSheet\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default EmbedEdit;\n"]}
@@ -205,6 +205,25 @@ export const createUpgradedEmbedBlock = function (props) {
205
205
  ...attributesFromPreview
206
206
  });
207
207
  };
208
+ /**
209
+ * Determine if the block already has an aspect ratio class applied.
210
+ *
211
+ * @param {string} existingClassNames Existing block classes.
212
+ * @return {boolean} True or false if the classnames contain an aspect ratio class.
213
+ */
214
+
215
+ export const hasAspectRatioClass = existingClassNames => {
216
+ if (!existingClassNames) {
217
+ return false;
218
+ }
219
+
220
+ return ASPECT_RATIOS.some(_ref4 => {
221
+ let {
222
+ className
223
+ } = _ref4;
224
+ return existingClassNames.includes(className);
225
+ });
226
+ };
208
227
  /**
209
228
  * Removes all previously set aspect ratio related classes and return the rest
210
229
  * existing class names.
@@ -221,10 +240,10 @@ export const removeAspectRatioClasses = existingClassNames => {
221
240
  return existingClassNames;
222
241
  }
223
242
 
224
- const aspectRatioClassNames = ASPECT_RATIOS.reduce((accumulator, _ref4) => {
243
+ const aspectRatioClassNames = ASPECT_RATIOS.reduce((accumulator, _ref5) => {
225
244
  let {
226
245
  className
227
- } = _ref4;
246
+ } = _ref5;
228
247
  accumulator[className] = false;
229
248
  return accumulator;
230
249
  }, {
@@ -330,6 +349,13 @@ export const getAttributesFromPreview = memoize(function (preview, title, curren
330
349
  if (html || 'photo' === type) {
331
350
  attributes.type = type;
332
351
  attributes.providerNameSlug = providerNameSlug;
352
+ } // Aspect ratio classes are removed when the embed URL is updated.
353
+ // If the embed already has an aspect ratio class, that means the URL has not changed.
354
+ // Which also means no need to regenerate it with getClassNames.
355
+
356
+
357
+ if (hasAspectRatioClass(currentClassNames)) {
358
+ return attributes;
333
359
  }
334
360
 
335
361
  attributes.className = getClassNames(html, currentClassNames, isResponsive && allowResponsive);
@@ -338,22 +364,20 @@ export const getAttributesFromPreview = memoize(function (preview, title, curren
338
364
  /**
339
365
  * Returns the attributes derived from the preview, merged with the current attributes.
340
366
  *
341
- * @param {Object} currentAttributes The current attributes of the block.
342
- * @param {Object} preview The preview data.
343
- * @param {string} title The block's title, e.g. Twitter.
344
- * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.
345
- * @param {boolean} ignorePreviousClassName Determines if the previous className attribute should be ignored when merging.
367
+ * @param {Object} currentAttributes The current attributes of the block.
368
+ * @param {Object} preview The preview data.
369
+ * @param {string} title The block's title, e.g. Twitter.
370
+ * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.
346
371
  * @return {Object} Merged attributes.
347
372
  */
348
373
 
349
- export const getMergedAttributesWithPreview = function (currentAttributes, preview, title, isResponsive) {
350
- let ignorePreviousClassName = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
374
+ export const getMergedAttributesWithPreview = (currentAttributes, preview, title, isResponsive) => {
351
375
  const {
352
376
  allowResponsive,
353
377
  className
354
378
  } = currentAttributes;
355
379
  return { ...currentAttributes,
356
- ...getAttributesFromPreview(preview, title, ignorePreviousClassName ? undefined : className, isResponsive, allowResponsive)
380
+ ...getAttributesFromPreview(preview, title, className, isResponsive, allowResponsive)
357
381
  };
358
382
  };
359
383
  //# sourceMappingURL=util.js.map