@wordpress/block-library 8.18.1-next.5a1d1283.0 → 8.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/build/block/edit.js +53 -2
  4. package/build/block/edit.js.map +1 -1
  5. package/build/button/edit.js +7 -4
  6. package/build/button/edit.js.map +1 -1
  7. package/build/button/index.js +11 -2
  8. package/build/button/index.js.map +1 -1
  9. package/build/button/save.js +10 -4
  10. package/build/button/save.js.map +1 -1
  11. package/build/buttons/edit.js +12 -3
  12. package/build/buttons/edit.js.map +1 -1
  13. package/build/code/edit.js +8 -2
  14. package/build/code/edit.js.map +1 -1
  15. package/build/code/index.js +7 -1
  16. package/build/code/index.js.map +1 -1
  17. package/build/column/index.js +1 -0
  18. package/build/column/index.js.map +1 -1
  19. package/build/columns/index.js +2 -0
  20. package/build/columns/index.js.map +1 -1
  21. package/build/file/edit.native.js +1 -1
  22. package/build/file/edit.native.js.map +1 -1
  23. package/build/file/index.js +2 -1
  24. package/build/file/index.js.map +1 -1
  25. package/build/file/utils/index.js +1 -15
  26. package/build/file/utils/index.js.map +1 -1
  27. package/build/file/view.js +14 -1
  28. package/build/file/view.js.map +1 -1
  29. package/build/footnotes/edit.js +12 -2
  30. package/build/footnotes/edit.js.map +1 -1
  31. package/build/gallery/edit.js +1 -1
  32. package/build/gallery/edit.js.map +1 -1
  33. package/build/group/edit.js +0 -1
  34. package/build/group/edit.js.map +1 -1
  35. package/build/group/index.js +4 -0
  36. package/build/group/index.js.map +1 -1
  37. package/build/heading/edit.js +0 -1
  38. package/build/heading/edit.js.map +1 -1
  39. package/build/heading/index.js +2 -0
  40. package/build/heading/index.js.map +1 -1
  41. package/build/heading/transforms.js +3 -6
  42. package/build/heading/transforms.js.map +1 -1
  43. package/build/image/deprecated.js +191 -7
  44. package/build/image/deprecated.js.map +1 -1
  45. package/build/image/edit.js +27 -12
  46. package/build/image/edit.js.map +1 -1
  47. package/build/image/image.js +75 -40
  48. package/build/image/image.js.map +1 -1
  49. package/build/image/index.js +7 -4
  50. package/build/image/index.js.map +1 -1
  51. package/build/image/{view-interactivity.js → view.js} +1 -1
  52. package/build/image/view.js.map +1 -0
  53. package/build/list/deprecated.js +93 -1
  54. package/build/list/deprecated.js.map +1 -1
  55. package/build/list/edit.js +10 -10
  56. package/build/list/edit.js.map +1 -1
  57. package/build/list/ordered-list-settings.js +10 -10
  58. package/build/list/ordered-list-settings.js.map +1 -1
  59. package/build/list/save.js +4 -2
  60. package/build/list/save.js.map +1 -1
  61. package/build/list/utils.js +21 -2
  62. package/build/list/utils.js.map +1 -1
  63. package/build/navigation/constants.js +1 -1
  64. package/build/navigation/constants.js.map +1 -1
  65. package/build/navigation/index.js +4 -2
  66. package/build/navigation/index.js.map +1 -1
  67. package/build/navigation/view.js +168 -82
  68. package/build/navigation/view.js.map +1 -1
  69. package/build/navigation-link/edit.js +3 -9
  70. package/build/navigation-link/edit.js.map +1 -1
  71. package/build/navigation-link/transforms.js +24 -0
  72. package/build/navigation-link/transforms.js.map +1 -1
  73. package/build/page-list/edit.js +2 -1
  74. package/build/page-list/edit.js.map +1 -1
  75. package/build/post-comments-form/edit.js +10 -2
  76. package/build/post-comments-form/edit.js.map +1 -1
  77. package/build/post-comments-form/form.js +5 -3
  78. package/build/post-comments-form/form.js.map +1 -1
  79. package/build/post-content/edit.js +8 -7
  80. package/build/post-content/edit.js.map +1 -1
  81. package/build/post-content/index.js +3 -0
  82. package/build/post-content/index.js.map +1 -1
  83. package/build/post-featured-image/overlay.js +2 -1
  84. package/build/post-featured-image/overlay.js.map +1 -1
  85. package/build/preformatted/edit.js +4 -1
  86. package/build/preformatted/edit.js.map +1 -1
  87. package/build/preformatted/index.js +1 -1
  88. package/build/preformatted/index.js.map +1 -1
  89. package/build/pullquote/deprecated.js +6 -7
  90. package/build/pullquote/deprecated.js.map +1 -1
  91. package/build/query/edit/enhanced-pagination-modal.js +56 -0
  92. package/build/query/edit/enhanced-pagination-modal.js.map +1 -0
  93. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +42 -0
  94. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -0
  95. package/build/query/edit/inspector-controls/index.js +8 -25
  96. package/build/query/edit/inspector-controls/index.js.map +1 -1
  97. package/build/query/edit/query-content.js +8 -2
  98. package/build/query/edit/query-content.js.map +1 -1
  99. package/build/query/utils.js +19 -0
  100. package/build/query/utils.js.map +1 -1
  101. package/build/query/view.js +4 -5
  102. package/build/query/view.js.map +1 -1
  103. package/build/search/index.js +1 -0
  104. package/build/search/index.js.map +1 -1
  105. package/build/search/view.js +81 -150
  106. package/build/search/view.js.map +1 -1
  107. package/build/social-link/edit.native.js +3 -1
  108. package/build/social-link/edit.native.js.map +1 -1
  109. package/build/table/edit.js +7 -7
  110. package/build/table/edit.js.map +1 -1
  111. package/build/table-of-contents/edit.js +2 -130
  112. package/build/table-of-contents/edit.js.map +1 -1
  113. package/build/table-of-contents/hooks.js +145 -0
  114. package/build/table-of-contents/hooks.js.map +1 -0
  115. package/build/table-of-contents/index.js +2 -1
  116. package/build/table-of-contents/index.js.map +1 -1
  117. package/build/verse/edit.js +4 -1
  118. package/build/verse/edit.js.map +1 -1
  119. package/build/verse/index.js +1 -1
  120. package/build/verse/index.js.map +1 -1
  121. package/build-module/block/edit.js +54 -3
  122. package/build-module/block/edit.js.map +1 -1
  123. package/build-module/button/edit.js +7 -4
  124. package/build-module/button/edit.js.map +1 -1
  125. package/build-module/button/index.js +11 -2
  126. package/build-module/button/index.js.map +1 -1
  127. package/build-module/button/save.js +10 -4
  128. package/build-module/button/save.js.map +1 -1
  129. package/build-module/buttons/edit.js +12 -3
  130. package/build-module/buttons/edit.js.map +1 -1
  131. package/build-module/code/edit.js +8 -2
  132. package/build-module/code/edit.js.map +1 -1
  133. package/build-module/code/index.js +7 -1
  134. package/build-module/code/index.js.map +1 -1
  135. package/build-module/column/index.js +1 -0
  136. package/build-module/column/index.js.map +1 -1
  137. package/build-module/columns/index.js +2 -0
  138. package/build-module/columns/index.js.map +1 -1
  139. package/build-module/file/edit.native.js +1 -1
  140. package/build-module/file/edit.native.js.map +1 -1
  141. package/build-module/file/index.js +2 -1
  142. package/build-module/file/index.js.map +1 -1
  143. package/build-module/file/utils/index.js +0 -13
  144. package/build-module/file/utils/index.js.map +1 -1
  145. package/build-module/file/view.js +14 -2
  146. package/build-module/file/view.js.map +1 -1
  147. package/build-module/footnotes/edit.js +12 -2
  148. package/build-module/footnotes/edit.js.map +1 -1
  149. package/build-module/gallery/edit.js +1 -1
  150. package/build-module/gallery/edit.js.map +1 -1
  151. package/build-module/group/edit.js +0 -1
  152. package/build-module/group/edit.js.map +1 -1
  153. package/build-module/group/index.js +4 -0
  154. package/build-module/group/index.js.map +1 -1
  155. package/build-module/heading/edit.js +0 -1
  156. package/build-module/heading/edit.js.map +1 -1
  157. package/build-module/heading/index.js +2 -0
  158. package/build-module/heading/index.js.map +1 -1
  159. package/build-module/heading/transforms.js +3 -6
  160. package/build-module/heading/transforms.js.map +1 -1
  161. package/build-module/image/deprecated.js +191 -7
  162. package/build-module/image/deprecated.js.map +1 -1
  163. package/build-module/image/edit.js +27 -12
  164. package/build-module/image/edit.js.map +1 -1
  165. package/build-module/image/image.js +77 -42
  166. package/build-module/image/image.js.map +1 -1
  167. package/build-module/image/index.js +7 -4
  168. package/build-module/image/index.js.map +1 -1
  169. package/build-module/image/{view-interactivity.js → view.js} +1 -1
  170. package/build-module/image/view.js.map +1 -0
  171. package/build-module/list/deprecated.js +95 -3
  172. package/build-module/list/deprecated.js.map +1 -1
  173. package/build-module/list/edit.js +10 -10
  174. package/build-module/list/edit.js.map +1 -1
  175. package/build-module/list/ordered-list-settings.js +10 -10
  176. package/build-module/list/ordered-list-settings.js.map +1 -1
  177. package/build-module/list/save.js +4 -2
  178. package/build-module/list/save.js.map +1 -1
  179. package/build-module/list/utils.js +20 -2
  180. package/build-module/list/utils.js.map +1 -1
  181. package/build-module/navigation/constants.js +1 -1
  182. package/build-module/navigation/constants.js.map +1 -1
  183. package/build-module/navigation/index.js +4 -2
  184. package/build-module/navigation/index.js.map +1 -1
  185. package/build-module/navigation/view.js +168 -83
  186. package/build-module/navigation/view.js.map +1 -1
  187. package/build-module/navigation-link/edit.js +3 -9
  188. package/build-module/navigation-link/edit.js.map +1 -1
  189. package/build-module/navigation-link/transforms.js +24 -0
  190. package/build-module/navigation-link/transforms.js.map +1 -1
  191. package/build-module/page-list/edit.js +2 -1
  192. package/build-module/page-list/edit.js.map +1 -1
  193. package/build-module/post-comments-form/edit.js +10 -2
  194. package/build-module/post-comments-form/edit.js.map +1 -1
  195. package/build-module/post-comments-form/form.js +5 -3
  196. package/build-module/post-comments-form/form.js.map +1 -1
  197. package/build-module/post-content/edit.js +8 -7
  198. package/build-module/post-content/edit.js.map +1 -1
  199. package/build-module/post-content/index.js +3 -0
  200. package/build-module/post-content/index.js.map +1 -1
  201. package/build-module/post-featured-image/overlay.js +2 -1
  202. package/build-module/post-featured-image/overlay.js.map +1 -1
  203. package/build-module/preformatted/edit.js +4 -1
  204. package/build-module/preformatted/edit.js.map +1 -1
  205. package/build-module/preformatted/index.js +1 -1
  206. package/build-module/preformatted/index.js.map +1 -1
  207. package/build-module/pullquote/deprecated.js +6 -7
  208. package/build-module/pullquote/deprecated.js.map +1 -1
  209. package/build-module/query/edit/enhanced-pagination-modal.js +50 -0
  210. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -0
  211. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +35 -0
  212. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -0
  213. package/build-module/query/edit/inspector-controls/index.js +9 -26
  214. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  215. package/build-module/query/edit/query-content.js +8 -2
  216. package/build-module/query/edit/query-content.js.map +1 -1
  217. package/build-module/query/utils.js +17 -0
  218. package/build-module/query/utils.js.map +1 -1
  219. package/build-module/query/view.js +4 -5
  220. package/build-module/query/view.js.map +1 -1
  221. package/build-module/search/index.js +1 -0
  222. package/build-module/search/index.js.map +1 -1
  223. package/build-module/search/view.js +81 -151
  224. package/build-module/search/view.js.map +1 -1
  225. package/build-module/social-link/edit.native.js +3 -1
  226. package/build-module/social-link/edit.native.js.map +1 -1
  227. package/build-module/table/edit.js +7 -7
  228. package/build-module/table/edit.js.map +1 -1
  229. package/build-module/table-of-contents/edit.js +3 -131
  230. package/build-module/table-of-contents/edit.js.map +1 -1
  231. package/build-module/table-of-contents/hooks.js +137 -0
  232. package/build-module/table-of-contents/hooks.js.map +1 -0
  233. package/build-module/table-of-contents/index.js +2 -1
  234. package/build-module/table-of-contents/index.js.map +1 -1
  235. package/build-module/verse/edit.js +4 -1
  236. package/build-module/verse/edit.js.map +1 -1
  237. package/build-module/verse/index.js +1 -1
  238. package/build-module/verse/index.js.map +1 -1
  239. package/build-style/cover/style-rtl.css +9 -0
  240. package/build-style/cover/style.css +9 -0
  241. package/build-style/editor-rtl.css +15 -9
  242. package/build-style/editor.css +15 -9
  243. package/build-style/file/style-rtl.css +5 -0
  244. package/build-style/file/style.css +5 -0
  245. package/build-style/heading/style-rtl.css +13 -0
  246. package/build-style/heading/style.css +13 -0
  247. package/build-style/navigation-link/editor-rtl.css +0 -9
  248. package/build-style/navigation-link/editor.css +0 -9
  249. package/build-style/paragraph/editor-rtl.css +5 -0
  250. package/build-style/paragraph/editor.css +5 -0
  251. package/build-style/paragraph/style-rtl.css +5 -0
  252. package/build-style/paragraph/style.css +5 -0
  253. package/build-style/post-navigation-link/style-rtl.css +3 -0
  254. package/build-style/post-navigation-link/style.css +3 -0
  255. package/build-style/query/editor-rtl.css +10 -0
  256. package/build-style/query/editor.css +10 -0
  257. package/build-style/query/style-rtl.css +1 -1
  258. package/build-style/query/style.css +1 -1
  259. package/build-style/reset-rtl.css +27 -27
  260. package/build-style/reset.css +27 -27
  261. package/build-style/style-rtl.css +35 -0
  262. package/build-style/style.css +35 -0
  263. package/package.json +32 -33
  264. package/src/audio/test/__snapshots__/edit.native.js.snap +78 -106
  265. package/src/avatar/index.php +2 -2
  266. package/src/block/edit.js +58 -2
  267. package/src/block/test/edit.native.js +2 -3
  268. package/src/button/block.json +11 -2
  269. package/src/button/edit.js +27 -11
  270. package/src/button/save.js +10 -4
  271. package/src/buttons/edit.js +13 -3
  272. package/src/buttons/test/edit.native.js +28 -24
  273. package/src/calendar/index.php +2 -2
  274. package/src/code/block.json +2 -1
  275. package/src/code/edit.js +13 -1
  276. package/src/code/index.js +5 -0
  277. package/src/column/block.json +1 -0
  278. package/src/columns/block.json +2 -0
  279. package/src/comment-template/index.php +1 -1
  280. package/src/comments-pagination-next/index.php +1 -1
  281. package/src/comments-pagination-previous/index.php +1 -1
  282. package/src/cover/style.scss +12 -1
  283. package/src/cover/test/edit.js +7 -7
  284. package/src/cover/test/edit.native.js +18 -27
  285. package/src/embed/test/index.native.js +30 -45
  286. package/src/file/block.json +2 -1
  287. package/src/file/edit.native.js +1 -1
  288. package/src/file/index.php +19 -21
  289. package/src/file/style.scss +6 -1
  290. package/src/file/test/__snapshots__/edit.native.js.snap +162 -218
  291. package/src/file/utils/index.js +0 -15
  292. package/src/file/view.js +14 -5
  293. package/src/footnotes/edit.js +13 -1
  294. package/src/gallery/edit.js +1 -1
  295. package/src/gallery/index.php +1 -1
  296. package/src/group/block.json +4 -0
  297. package/src/group/edit.js +0 -1
  298. package/src/heading/block.json +2 -0
  299. package/src/heading/edit.js +0 -1
  300. package/src/heading/style.scss +4 -0
  301. package/src/heading/transforms.js +1 -6
  302. package/src/image/block.json +7 -4
  303. package/src/image/deprecated.js +210 -7
  304. package/src/image/edit.js +43 -29
  305. package/src/image/image.js +86 -43
  306. package/src/image/index.php +251 -28
  307. package/src/latest-posts/index.php +1 -1
  308. package/src/list/deprecated.js +84 -3
  309. package/src/list/edit.js +6 -3
  310. package/src/list/ordered-list-settings.js +20 -5
  311. package/src/list/save.js +10 -1
  312. package/src/list/test/edit.native.js +2 -4
  313. package/src/list/utils.js +22 -1
  314. package/src/navigation/block.json +4 -2
  315. package/src/navigation/constants.js +1 -0
  316. package/src/navigation/index.php +85 -123
  317. package/src/navigation/view.js +192 -96
  318. package/src/navigation-link/edit.js +21 -36
  319. package/src/navigation-link/editor.scss +0 -8
  320. package/src/navigation-link/transforms.js +22 -0
  321. package/src/page-list/edit.js +2 -1
  322. package/src/paragraph/editor.scss +5 -0
  323. package/src/paragraph/style.scss +5 -0
  324. package/src/pattern/index.php +2 -2
  325. package/src/post-comments-form/edit.js +10 -0
  326. package/src/post-comments-form/form.js +7 -1
  327. package/src/post-content/block.json +3 -0
  328. package/src/post-content/edit.js +14 -6
  329. package/src/post-excerpt/index.php +2 -2
  330. package/src/post-featured-image/index.php +2 -2
  331. package/src/post-featured-image/overlay.js +1 -0
  332. package/src/post-navigation-link/index.php +0 -5
  333. package/src/post-navigation-link/style.scss +4 -0
  334. package/src/post-template/index.php +1 -1
  335. package/src/post-terms/index.php +5 -2
  336. package/src/preformatted/edit.js +5 -0
  337. package/src/preformatted/index.js +1 -1
  338. package/src/pullquote/deprecated.js +8 -13
  339. package/src/query/edit/enhanced-pagination-modal.js +65 -0
  340. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +49 -0
  341. package/src/query/edit/inspector-controls/index.js +9 -45
  342. package/src/query/edit/query-content.js +8 -0
  343. package/src/query/editor.scss +10 -0
  344. package/src/query/index.php +29 -16
  345. package/src/query/style.scss +2 -2
  346. package/src/query/utils.js +22 -0
  347. package/src/query/view.js +5 -5
  348. package/src/query-pagination-next/index.php +1 -1
  349. package/src/query-pagination-previous/index.php +1 -1
  350. package/src/reset.scss +1 -1
  351. package/src/search/block.json +1 -0
  352. package/src/search/index.php +45 -4
  353. package/src/search/test/__snapshots__/edit.native.js.snap +265 -363
  354. package/src/search/view.js +70 -169
  355. package/src/social-link/edit.native.js +1 -1
  356. package/src/social-link/editor.native.scss +4 -0
  357. package/src/table/edit.js +21 -19
  358. package/src/table-of-contents/block.json +2 -1
  359. package/src/table-of-contents/edit.js +5 -162
  360. package/src/table-of-contents/hooks.js +156 -0
  361. package/src/verse/edit.js +5 -0
  362. package/src/verse/index.js +1 -1
  363. package/src/verse/test/edit.native.js +2 -3
  364. package/build/file/view-interactivity.js +0 -22
  365. package/build/file/view-interactivity.js.map +0 -1
  366. package/build/image/view-interactivity.js.map +0 -1
  367. package/build/navigation/view-interactivity.js +0 -172
  368. package/build/navigation/view-interactivity.js.map +0 -1
  369. package/build/navigation/view-modal.js +0 -115
  370. package/build/navigation/view-modal.js.map +0 -1
  371. package/build-module/file/view-interactivity.js +0 -18
  372. package/build-module/file/view-interactivity.js.map +0 -1
  373. package/build-module/image/view-interactivity.js.map +0 -1
  374. package/build-module/navigation/view-interactivity.js +0 -169
  375. package/build-module/navigation/view-interactivity.js.map +0 -1
  376. package/build-module/navigation/view-modal.js +0 -112
  377. package/build-module/navigation/view-modal.js.map +0 -1
  378. package/src/file/view-interactivity.js +0 -18
  379. package/src/navigation/view-interactivity.js +0 -196
  380. package/src/navigation/view-modal.js +0 -127
  381. /package/src/image/{view-interactivity.js → view.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","RichText","useBlockProps","__experimentalGetElementClassName","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","v1","attributes","url","type","source","selector","attribute","alt","default","caption","href","id","align","width","height","save","extraImageProps","image","createElement","src","figureStyle","maxWidth","className","style","isEmpty","Content","tagName","value","v2","v3","linkDestination","classes","v4","title","rel","linkClass","sizeSlug","linkTarget","supports","anchor","newRel","undefined","figure","Fragment","target","v5","color","__experimentalDuotone","text","background","__experimentalBorder","radius","__experimentalDefaultControls","__experimentalStyle","spacing","margin","v6","__experimentalRole","aspectRatio","scale","behaviors","lightbox","filter","duotone","__experimentalSkipSerialization","borderProps","Object","keys","length","imageClasses","objectFit","v7","migrate"],"sources":["@wordpress/block-library/src/image/deprecated.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n} from '@wordpress/block-editor';\n\n/**\n * Deprecation for adding the `wp-image-${id}` class to the image block for\n * responsive images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/4898\n */\nconst v1 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height } = attributes;\n\t\tconst extraImageProps = width || height ? { width, height } : {};\n\t\tconst image = <img src={ url } alt={ alt } { ...extraImageProps } />;\n\n\t\tlet figureStyle = {};\n\n\t\tif ( width ) {\n\t\t\tfigureStyle = { width };\n\t\t} else if ( align === 'left' || align === 'right' ) {\n\t\t\tfigureStyle = { maxWidth: '50%' };\n\t\t}\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\tclassName={ align ? `align${ align }` : null }\n\t\t\t\tstyle={ figureStyle }\n\t\t\t>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for adding the `is-resized` class to the image block to fix\n * captions on resized images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/6496\n */\nconst v2 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\tattributes;\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure className={ align ? `align${ align }` : null }>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for image floats including a wrapping div.\n *\n * @see https://github.com/WordPress/gutenberg/pull/7721\n */\nconst v3 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\tattributes;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure className={ classes }>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for removing the outer div wrapper around aligned images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/38657\n */\nconst v4 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\tif ( 'left' === align || 'right' === align || 'center' === align ) {\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t<figure className={ classes }>{ figure }</figure>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for moving existing border radius styles onto the inner img\n * element where new border block support styles must be applied.\n * It will also add a new `.has-custom-border` class for existing blocks\n * with border radii set. This class is required to improve caption position\n * and styling when an image within a gallery has a custom border or\n * rounded corners.\n *\n * @see https://github.com/WordPress/gutenberg/pull/31366\n */\nconst v5 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\t__experimentalDuotone: 'img',\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalStyle: {\n\t\t\tspacing: {\n\t\t\t\tmargin: '0 0 1em 0',\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for adding width and height as style rules on the inner img.\n *\n * @see https://github.com/WordPress/gutenberg/pull/31366\n */\nconst v6 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\taspectRatio: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tscale: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tbehaviors: {\n\t\t\tlightbox: true,\n\t\t},\n\t\tcolor: {\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\tfilter: {\n\t\t\tduotone: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\twidth: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\taspectRatio,\n\t\t\tscale,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t\t'has-custom-border':\n\t\t\t\t!! borderProps.className ||\n\t\t\t\t( borderProps.style &&\n\t\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t\t} );\n\n\t\tconst imageClasses = classnames( borderProps.className, {\n\t\t\t[ `wp-image-${ id }` ]: !! id,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ imageClasses || undefined }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\taspectRatio,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t} }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for converting to string width and height block attributes and\n * removing the width and height img element attributes which are not needed\n * as they get added by the TODO hook.\n *\n * @see https://github.com/WordPress/gutenberg/pull/53274\n */\nconst v7 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\taspectRatio: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tscale: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tbehaviors: {\n\t\t\tlightbox: true,\n\t\t},\n\t\tcolor: {\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\tfilter: {\n\t\t\tduotone: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\twidth: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t},\n\tmigrate( { width, height, ...attributes } ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\twidth: `${ width }px`,\n\t\t\theight: `${ height }px`,\n\t\t};\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\taspectRatio,\n\t\t\tscale,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t\t'has-custom-border':\n\t\t\t\t!! borderProps.className ||\n\t\t\t\t( borderProps.style &&\n\t\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t\t} );\n\n\t\tconst imageClasses = classnames( borderProps.className, {\n\t\t\t[ `wp-image-${ id }` ]: !! id,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ imageClasses || undefined }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\taspectRatio,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\twidth,\n\t\t\t\t\theight,\n\t\t\t\t} }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nexport default [ v7, v6, v5, v4, v3, v2, v1 ];\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","RichText","useBlockProps","__experimentalGetElementClassName","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","v1","attributes","url","type","source","selector","attribute","alt","default","caption","href","id","align","width","height","save","extraImageProps","image","createElement","src","figureStyle","maxWidth","className","style","isEmpty","Content","tagName","value","v2","v3","linkDestination","classes","v4","title","rel","linkClass","sizeSlug","linkTarget","supports","anchor","newRel","undefined","figure","Fragment","target","v5","color","__experimentalDuotone","text","background","__experimentalBorder","radius","__experimentalDefaultControls","__experimentalStyle","spacing","margin","v6","__experimentalRole","aspectRatio","scale","filter","duotone","__experimentalSkipSerialization","borderProps","Object","keys","length","imageClasses","objectFit","v7","migrate","v8","behaviors","lightbox","enabled","newAttributes","isEligible"],"sources":["@wordpress/block-library/src/image/deprecated.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n} from '@wordpress/block-editor';\n\n/**\n * Deprecation for adding the `wp-image-${id}` class to the image block for\n * responsive images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/4898\n */\nconst v1 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height } = attributes;\n\t\tconst extraImageProps = width || height ? { width, height } : {};\n\t\tconst image = <img src={ url } alt={ alt } { ...extraImageProps } />;\n\n\t\tlet figureStyle = {};\n\n\t\tif ( width ) {\n\t\t\tfigureStyle = { width };\n\t\t} else if ( align === 'left' || align === 'right' ) {\n\t\t\tfigureStyle = { maxWidth: '50%' };\n\t\t}\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\tclassName={ align ? `align${ align }` : null }\n\t\t\t\tstyle={ figureStyle }\n\t\t\t>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for adding the `is-resized` class to the image block to fix\n * captions on resized images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/6496\n */\nconst v2 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\tattributes;\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure className={ align ? `align${ align }` : null }>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for image floats including a wrapping div.\n *\n * @see https://github.com/WordPress/gutenberg/pull/7721\n */\nconst v3 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\tattributes;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure className={ classes }>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for removing the outer div wrapper around aligned images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/38657\n */\nconst v4 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\tif ( 'left' === align || 'right' === align || 'center' === align ) {\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t<figure className={ classes }>{ figure }</figure>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for moving existing border radius styles onto the inner img\n * element where new border block support styles must be applied.\n * It will also add a new `.has-custom-border` class for existing blocks\n * with border radii set. This class is required to improve caption position\n * and styling when an image within a gallery has a custom border or\n * rounded corners.\n *\n * @see https://github.com/WordPress/gutenberg/pull/31366\n */\nconst v5 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\t__experimentalDuotone: 'img',\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalStyle: {\n\t\t\tspacing: {\n\t\t\t\tmargin: '0 0 1em 0',\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for adding width and height as style rules on the inner img.\n *\n * @see https://github.com/WordPress/gutenberg/pull/31366\n */\nconst v6 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\taspectRatio: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tscale: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\tfilter: {\n\t\t\tduotone: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\twidth: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\taspectRatio,\n\t\t\tscale,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t\t'has-custom-border':\n\t\t\t\t!! borderProps.className ||\n\t\t\t\t( borderProps.style &&\n\t\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t\t} );\n\n\t\tconst imageClasses = classnames( borderProps.className, {\n\t\t\t[ `wp-image-${ id }` ]: !! id,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ imageClasses || undefined }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\taspectRatio,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t} }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for converting to string width and height block attributes and\n * removing the width and height img element attributes which are not needed\n * as they get added by the TODO hook.\n *\n * @see https://github.com/WordPress/gutenberg/pull/53274\n */\nconst v7 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\taspectRatio: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tscale: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\tfilter: {\n\t\t\tduotone: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\twidth: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t},\n\tmigrate( { width, height, ...attributes } ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\twidth: `${ width }px`,\n\t\t\theight: `${ height }px`,\n\t\t};\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\taspectRatio,\n\t\t\tscale,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t\t'has-custom-border':\n\t\t\t\t!! borderProps.className ||\n\t\t\t\t( borderProps.style &&\n\t\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t\t} );\n\n\t\tconst imageClasses = classnames( borderProps.className, {\n\t\t\t[ `wp-image-${ id }` ]: !! id,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ imageClasses || undefined }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\taspectRatio,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\twidth,\n\t\t\t\t\theight,\n\t\t\t\t} }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst v8 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tbehaviors: {\n\t\t\ttype: 'object',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'string',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'string',\n\t\t},\n\t\taspectRatio: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tscale: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\tfilter: {\n\t\t\tduotone: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\twidth: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t},\n\tmigrate( { width, height, ...attributes } ) {\n\t\tconst {\n\t\t\tbehaviors: {\n\t\t\t\tlightbox: { enabled },\n\t\t\t},\n\t\t} = attributes;\n\t\tconst newAttributes = {\n\t\t\t...attributes,\n\t\t\tlightbox: {\n\t\t\t\tenabled,\n\t\t\t},\n\t\t};\n\t\tdelete newAttributes.behaviors;\n\t\treturn newAttributes;\n\t},\n\tisEligible( attributes ) {\n\t\treturn !! attributes.behaviors;\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\taspectRatio,\n\t\t\tscale,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t\t'has-custom-border':\n\t\t\t\t!! borderProps.className ||\n\t\t\t\t( borderProps.style &&\n\t\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t\t} );\n\n\t\tconst imageClasses = classnames( borderProps.className, {\n\t\t\t[ `wp-image-${ id }` ]: !! id,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ imageClasses || undefined }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\taspectRatio,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\twidth,\n\t\t\t\t\theight,\n\t\t\t\t} }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nexport default [ v8, v7, v6, v5, v4, v3, v2, v1 ];\n"],"mappings":"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"}
@@ -54,17 +54,17 @@ const isTemporaryImage = (id, url) => !id && isBlobURL(url);
54
54
  export const isExternalImage = (id, url) => url && !id && !isBlobURL(url);
55
55
 
56
56
  /**
57
- * Checks if WP generated default image size. Size generation is skipped
57
+ * Checks if WP generated the specified image size. Size generation is skipped
58
58
  * when the image is smaller than the said size.
59
59
  *
60
60
  * @param {Object} image
61
- * @param {string} defaultSize
61
+ * @param {string} size
62
62
  *
63
63
  * @return {boolean} Whether or not it has default image size.
64
64
  */
65
- function hasDefaultSize(image, defaultSize) {
66
- var _image$sizes$defaultS, _image$media_details$;
67
- return 'url' in ((_image$sizes$defaultS = image?.sizes?.[defaultSize]) !== null && _image$sizes$defaultS !== void 0 ? _image$sizes$defaultS : {}) || 'source_url' in ((_image$media_details$ = image?.media_details?.sizes?.[defaultSize]) !== null && _image$media_details$ !== void 0 ? _image$media_details$ : {});
65
+ function hasSize(image, size) {
66
+ var _image$sizes$size, _image$media_details$;
67
+ return 'url' in ((_image$sizes$size = image?.sizes?.[size]) !== null && _image$sizes$size !== void 0 ? _image$sizes$size : {}) || 'source_url' in ((_image$media_details$ = image?.media_details?.sizes?.[size]) !== null && _image$media_details$ !== void 0 ? _image$media_details$ : {});
68
68
  }
69
69
  export function ImageEdit({
70
70
  attributes,
@@ -84,7 +84,9 @@ export function ImageEdit({
84
84
  id,
85
85
  width,
86
86
  height,
87
- sizeSlug
87
+ sizeSlug,
88
+ aspectRatio,
89
+ scale
88
90
  } = attributes;
89
91
  const [temporaryURL, setTemporaryURL] = useState();
90
92
  const altRef = useRef();
@@ -140,7 +142,16 @@ export function ImageEdit({
140
142
  return;
141
143
  }
142
144
  setTemporaryURL();
143
- let mediaAttributes = pickRelevantMediaFiles(media, imageDefaultSize);
145
+
146
+ // Try to use the previous selected image size if its available
147
+ // otherwise try the default image size or fallback to "full"
148
+ let newSize = 'full';
149
+ if (sizeSlug && hasSize(media, sizeSlug)) {
150
+ newSize = sizeSlug;
151
+ } else if (hasSize(media, imageDefaultSize)) {
152
+ newSize = imageDefaultSize;
153
+ }
154
+ let mediaAttributes = pickRelevantMediaFiles(media, newSize);
144
155
 
145
156
  // If a caption text was meanwhile written by the user,
146
157
  // make sure the text is not overwritten by empty captions.
@@ -155,9 +166,7 @@ export function ImageEdit({
155
166
  // Reset the dimension attributes if changing to a different image.
156
167
  if (!media.id || media.id !== id) {
157
168
  additionalAttributes = {
158
- // Fallback to size "full" if there's no default image size.
159
- // It means the image is smaller, and the block will use a full-size URL.
160
- sizeSlug: hasDefaultSize(media, imageDefaultSize) ? imageDefaultSize : 'full'
169
+ sizeSlug: newSize
161
170
  };
162
171
  } else {
163
172
  // Keep the same url when selecting the same file, so "Resolution"
@@ -289,12 +298,18 @@ export function ImageEdit({
289
298
  icon: icon,
290
299
  label: __('Image'),
291
300
  instructions: __('Upload an image file, pick one from your media library, or add one with a URL.'),
292
- style: isSelected ? undefined : borderProps.style
301
+ style: {
302
+ aspectRatio: !(width && height) && aspectRatio ? aspectRatio : undefined,
303
+ width: height && aspectRatio ? '100%' : width,
304
+ height: width && aspectRatio ? '100%' : height,
305
+ objectFit: scale,
306
+ ...borderProps.style
307
+ }
293
308
  }, content);
294
309
  };
295
310
  return createElement("figure", {
296
311
  ...blockProps
297
- }, (temporaryURL || url) && createElement(Image, {
312
+ }, createElement(Image, {
298
313
  temporaryURL: temporaryURL,
299
314
  attributes: attributes,
300
315
  setAttributes: setAttributes,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","getBlobByURL","isBlobURL","revokeBlobURL","Placeholder","useDispatch","useSelect","BlockAlignmentControl","BlockControls","BlockIcon","MediaPlaceholder","useBlockProps","store","blockEditorStore","__experimentalUseBorderProps","useBorderProps","useBlockEditingMode","useEffect","useRef","useState","__","image","icon","noticesStore","Image","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isTemporaryImage","id","isExternalImage","hasDefaultSize","defaultSize","_image$sizes$defaultS","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","className","insertBlocksAfter","onReplace","context","clientId","alt","caption","align","width","height","sizeSlug","temporaryURL","setTemporaryURL","altRef","current","captionRef","ref","imageDefaultSize","mediaUpload","select","getSettings","settings","blockEditingMode","createErrorNotice","onUploadError","message","type","src","undefined","onSelectImage","media","title","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","defaultProps","link","href","onSelectURL","newURL","updateAlignment","nextAlign","extraUpdatedAttributes","isTemp","file","filesList","onFileChange","img","allowedTypes","onError","isExternal","mediaPreview","createElement","borderProps","classes","style","keys","length","blockProps","placeholder","content","withIllustration","label","instructions","containerRef","group","value","onChange","onSelect","accept","disableMediaButtons"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockAlignmentControl,\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport Image from './image';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated default image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} defaultSize\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasDefaultSize( image, defaultSize ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ defaultSize ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ defaultSize ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst ref = useRef();\n\tconst { imageDefaultSize, mediaUpload } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\timageDefaultSize: settings.imageDefaultSize,\n\t\t\tmediaUpload: settings.mediaUpload,\n\t\t};\n\t}, [] );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetTemporaryURL();\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, imageDefaultSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\t// Fallback to size \"full\" if there's no default image size.\n\t\t\t\t// It means the image is smaller, and the block will use a full-size URL.\n\t\t\t\tsizeSlug: hasDefaultSize( media, imageDefaultSize )\n\t\t\t\t\t? imageDefaultSize\n\t\t\t\t\t: 'full',\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tlet isTemp = isTemporaryImage( id, url );\n\n\t// Upload a temporary image on mount.\n\tuseEffect( () => {\n\t\tif ( ! isTemp ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( url );\n\n\t\tif ( file ) {\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList: [ file ],\n\t\t\t\tonFileChange: ( [ img ] ) => {\n\t\t\t\t\tonSelectImage( img );\n\t\t\t\t},\n\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\tonError: ( message ) => {\n\t\t\t\t\tisTemp = false;\n\t\t\t\t\tonUploadError( message );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\t// If an image is temporary, revoke the Blob url when it is uploaded (and is\n\t// no longer temporary).\n\tuseEffect( () => {\n\t\tif ( isTemp ) {\n\t\t\tsetTemporaryURL( url );\n\t\t\treturn;\n\t\t}\n\t\trevokeBlobURL( temporaryURL );\n\t}, [ isTemp, url ] );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName={ 'edit-image-preview' }\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t) }\n\t\t\t\tstyle={ isSelected ? undefined : borderProps.style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t{ ( temporaryURL || url ) && (\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontainerRef={ ref }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! url && blockEditingMode === 'default' && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","getBlobByURL","isBlobURL","revokeBlobURL","Placeholder","useDispatch","useSelect","BlockAlignmentControl","BlockControls","BlockIcon","MediaPlaceholder","useBlockProps","store","blockEditorStore","__experimentalUseBorderProps","useBorderProps","useBlockEditingMode","useEffect","useRef","useState","__","image","icon","noticesStore","Image","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isTemporaryImage","id","isExternalImage","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","className","insertBlocksAfter","onReplace","context","clientId","alt","caption","align","width","height","sizeSlug","aspectRatio","scale","temporaryURL","setTemporaryURL","altRef","current","captionRef","ref","imageDefaultSize","mediaUpload","select","getSettings","settings","blockEditingMode","createErrorNotice","onUploadError","message","type","src","undefined","onSelectImage","media","title","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","defaultProps","link","href","onSelectURL","newURL","updateAlignment","nextAlign","extraUpdatedAttributes","isTemp","file","filesList","onFileChange","img","allowedTypes","onError","isExternal","mediaPreview","createElement","borderProps","classes","style","keys","length","blockProps","placeholder","content","withIllustration","label","instructions","objectFit","containerRef","group","value","onChange","onSelect","accept","disableMediaButtons"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockAlignmentControl,\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport Image from './image';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst ref = useRef();\n\tconst { imageDefaultSize, mediaUpload } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\timageDefaultSize: settings.imageDefaultSize,\n\t\t\tmediaUpload: settings.mediaUpload,\n\t\t};\n\t}, [] );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetTemporaryURL();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\tsizeSlug: newSize,\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tlet isTemp = isTemporaryImage( id, url );\n\n\t// Upload a temporary image on mount.\n\tuseEffect( () => {\n\t\tif ( ! isTemp ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( url );\n\n\t\tif ( file ) {\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList: [ file ],\n\t\t\t\tonFileChange: ( [ img ] ) => {\n\t\t\t\t\tonSelectImage( img );\n\t\t\t\t},\n\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\tonError: ( message ) => {\n\t\t\t\t\tisTemp = false;\n\t\t\t\t\tonUploadError( message );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\t// If an image is temporary, revoke the Blob url when it is uploaded (and is\n\t// no longer temporary).\n\tuseEffect( () => {\n\t\tif ( isTemp ) {\n\t\t\tsetTemporaryURL( url );\n\t\t\treturn;\n\t\t}\n\t\trevokeBlobURL( temporaryURL );\n\t}, [ isTemp, url ] );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName={ 'edit-image-preview' }\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t) }\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t<Image\n\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tcontext={ context }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t/>\n\t\t\t{ ! url && blockEditingMode === 'default' && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":"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"}
@@ -3,10 +3,10 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  * WordPress dependencies
4
4
  */
5
5
  import { isBlobURL } from '@wordpress/blob';
6
- import { ExternalLink, ResizableBox, Spinner, TextareaControl, TextControl, ToolbarButton, ToolbarGroup, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalUseCustomUnits as useCustomUnits } from '@wordpress/components';
6
+ import { ExternalLink, ResizableBox, Spinner, TextareaControl, ToggleControl, TextControl, ToolbarButton, ToolbarGroup, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalUseCustomUnits as useCustomUnits } from '@wordpress/components';
7
7
  import { useViewportMatch, usePrevious } from '@wordpress/compose';
8
8
  import { useSelect, useDispatch } from '@wordpress/data';
9
- import { BlockControls, InspectorControls, RichText, __experimentalImageURLInputUI as ImageURLInputUI, MediaReplaceFlow, store as blockEditorStore, BlockAlignmentControl, __experimentalImageEditor as ImageEditor, __experimentalGetElementClassName, __experimentalUseBorderProps as useBorderProps, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
9
+ import { BlockControls, InspectorControls, RichText, __experimentalImageURLInputUI as ImageURLInputUI, MediaReplaceFlow, store as blockEditorStore, useSetting, BlockAlignmentControl, __experimentalImageEditor as ImageEditor, __experimentalGetElementClassName, __experimentalUseBorderProps as useBorderProps, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
10
10
  import { useEffect, useMemo, useState, useRef, useCallback } from '@wordpress/element';
11
11
  import { __, _x, sprintf, isRTL } from '@wordpress/i18n';
12
12
  import { getFilename } from '@wordpress/url';
@@ -72,7 +72,8 @@ export default function Image({
72
72
  aspectRatio,
73
73
  scale,
74
74
  linkTarget,
75
- sizeSlug
75
+ sizeSlug,
76
+ lightbox
76
77
  } = attributes;
77
78
 
78
79
  // The only supported unit is px, so we can parseInt to strip the px here.
@@ -298,6 +299,54 @@ export default function Image({
298
299
  const dimensionsUnitsOptions = useCustomUnits({
299
300
  availableUnits: ['px']
300
301
  });
302
+ const lightboxSetting = useSetting('lightbox');
303
+ const showLightboxToggle = lightboxSetting === true || lightboxSetting?.allowEditing === true;
304
+ const lightboxChecked = lightbox?.enabled || !lightbox && lightboxSetting?.enabled;
305
+ const dimensionsControl = createElement(DimensionsTool, {
306
+ value: {
307
+ width,
308
+ height,
309
+ scale,
310
+ aspectRatio
311
+ },
312
+ onChange: ({
313
+ width: newWidth,
314
+ height: newHeight,
315
+ scale: newScale,
316
+ aspectRatio: newAspectRatio
317
+ }) => {
318
+ // Rebuilding the object forces setting `undefined`
319
+ // for values that are removed since setAttributes
320
+ // doesn't do anything with keys that aren't set.
321
+ setAttributes({
322
+ // CSS includes `height: auto`, but we need
323
+ // `width: auto` to fix the aspect ratio when
324
+ // only height is set due to the width and
325
+ // height attributes set via the server.
326
+ width: !newWidth && newHeight ? 'auto' : newWidth,
327
+ height: newHeight,
328
+ scale: newScale,
329
+ aspectRatio: newAspectRatio
330
+ });
331
+ },
332
+ defaultScale: "cover",
333
+ defaultAspectRatio: "auto",
334
+ scaleOptions: scaleOptions,
335
+ unitsOptions: dimensionsUnitsOptions
336
+ });
337
+ const resetAll = () => {
338
+ setAttributes({
339
+ width: undefined,
340
+ height: undefined,
341
+ scale: undefined,
342
+ aspectRatio: undefined,
343
+ lightbox: undefined
344
+ });
345
+ };
346
+ const sizeControls = createElement(InspectorControls, null, createElement(ToolsPanel, {
347
+ label: __('Settings'),
348
+ resetAll: resetAll
349
+ }, isResizable && dimensionsControl));
301
350
  const controls = createElement(Fragment, null, createElement(BlockControls, {
302
351
  group: "block"
303
352
  }, hasNonContentControls && createElement(BlockAlignmentControl, {
@@ -348,12 +397,7 @@ export default function Image({
348
397
  label: __('Upload external image')
349
398
  }))), createElement(InspectorControls, null, createElement(ToolsPanel, {
350
399
  label: __('Settings'),
351
- resetAll: () => setAttributes({
352
- width: undefined,
353
- height: undefined,
354
- scale: undefined,
355
- aspectRatio: undefined
356
- })
400
+ resetAll: resetAll
357
401
  }, !multiImageSelection && createElement(ToolsPanelItem, {
358
402
  label: __('Alternative text'),
359
403
  isShownByDefault: true,
@@ -369,42 +413,30 @@ export default function Image({
369
413
  href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
370
414
  }, __('Describe the purpose of the image.')), createElement("br", null), __('Leave empty if decorative.')),
371
415
  __nextHasNoMarginBottom: true
372
- })), isResizable && createElement(DimensionsTool, {
373
- value: {
374
- width,
375
- height,
376
- scale,
377
- aspectRatio
378
- },
379
- onChange: ({
380
- width: newWidth,
381
- height: newHeight,
382
- scale: newScale,
383
- aspectRatio: newAspectRatio
384
- }) => {
385
- // Rebuilding the object forces setting `undefined`
386
- // for values that are removed since setAttributes
387
- // doesn't do anything with keys that aren't set.
388
- setAttributes({
389
- // CSS includes `height: auto`, but we need
390
- // `width: auto` to fix the aspect ratio when
391
- // only height is set due to the width and
392
- // height attributes set via the server.
393
- width: !newWidth && newHeight ? 'auto' : newWidth,
394
- height: newHeight,
395
- scale: newScale,
396
- aspectRatio: newAspectRatio
397
- });
398
- },
399
- defaultScale: "cover",
400
- defaultAspectRatio: "auto",
401
- scaleOptions: scaleOptions,
402
- unitsOptions: dimensionsUnitsOptions
403
- }), createElement(ResolutionTool, {
416
+ })), isResizable && dimensionsControl, createElement(ResolutionTool, {
404
417
  value: sizeSlug,
405
418
  onChange: updateImage,
406
419
  options: imageSizeOptions
407
- }))), createElement(InspectorControls, {
420
+ }), showLightboxToggle && createElement(ToolsPanelItem, {
421
+ hasValue: () => !!lightbox,
422
+ label: __('Expand on Click'),
423
+ onDeselect: () => {
424
+ setAttributes({
425
+ lightbox: undefined
426
+ });
427
+ },
428
+ isShownByDefault: true
429
+ }, createElement(ToggleControl, {
430
+ label: __('Expand on Click'),
431
+ checked: lightboxChecked,
432
+ onChange: newValue => {
433
+ setAttributes({
434
+ lightbox: {
435
+ enabled: newValue
436
+ }
437
+ });
438
+ }
439
+ })))), createElement(InspectorControls, {
408
440
  group: "advanced"
409
441
  }, createElement(TextControl, {
410
442
  __nextHasNoMarginBottom: true,
@@ -565,6 +597,9 @@ export default function Image({
565
597
  resizeRatio: align === 'center' ? 2 : 1
566
598
  }, img);
567
599
  }
600
+ if (!url && !temporaryURL) {
601
+ return sizeControls;
602
+ }
568
603
  return createElement(Fragment, null, !temporaryURL && controls, img, showCaption && (!RichText.isEmpty(caption) || isSelected) && createElement(RichText, {
569
604
  identifier: "caption",
570
605
  className: __experimentalGetElementClassName('caption'),