@wordpress/block-library 9.22.0 → 9.24.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 (483) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/calendar/index.js +1 -0
  3. package/build/calendar/index.js.map +1 -1
  4. package/build/code/index.js +2 -1
  5. package/build/code/index.js.map +1 -1
  6. package/build/comments/edit/comments-inspector-controls.js +13 -13
  7. package/build/comments/edit/comments-inspector-controls.js.map +1 -1
  8. package/build/comments/edit/index.js +4 -2
  9. package/build/comments/edit/index.js.map +1 -1
  10. package/build/cover/edit/inspector-controls.js +9 -12
  11. package/build/cover/edit/inspector-controls.js.map +1 -1
  12. package/build/details/index.js +2 -1
  13. package/build/details/index.js.map +1 -1
  14. package/build/group/edit.js +17 -13
  15. package/build/group/edit.js.map +1 -1
  16. package/build/html/index.js +2 -1
  17. package/build/html/index.js.map +1 -1
  18. package/build/image/constants.js +2 -1
  19. package/build/image/constants.js.map +1 -1
  20. package/build/image/edit.js +1 -7
  21. package/build/image/edit.js.map +1 -1
  22. package/build/image/image.js +1 -4
  23. package/build/image/image.js.map +1 -1
  24. package/build/latest-posts/edit.js +100 -54
  25. package/build/latest-posts/edit.js.map +1 -1
  26. package/build/more/index.js +2 -1
  27. package/build/more/index.js.map +1 -1
  28. package/build/post-excerpt/edit.js +3 -1
  29. package/build/post-excerpt/edit.js.map +1 -1
  30. package/build/post-excerpt/index.js +2 -1
  31. package/build/post-excerpt/index.js.map +1 -1
  32. package/build/post-navigation-link/edit.js +3 -1
  33. package/build/post-navigation-link/edit.js.map +1 -1
  34. package/build/post-navigation-link/index.js +2 -1
  35. package/build/post-navigation-link/index.js.map +1 -1
  36. package/build/post-navigation-link/variations.js +13 -13
  37. package/build/post-navigation-link/variations.js.map +1 -1
  38. package/build/post-template/edit.js +5 -3
  39. package/build/post-template/edit.js.map +1 -1
  40. package/build/post-terms/edit.js +3 -1
  41. package/build/post-terms/edit.js.map +1 -1
  42. package/build/post-terms/index.js +4 -2
  43. package/build/post-terms/index.js.map +1 -1
  44. package/build/preformatted/transforms.js +5 -1
  45. package/build/preformatted/transforms.js.map +1 -1
  46. package/build/query/edit/query-content.js +11 -12
  47. package/build/query/edit/query-content.js.map +1 -1
  48. package/build/read-more/index.js +2 -1
  49. package/build/read-more/index.js.map +1 -1
  50. package/build/rss/index.js +2 -1
  51. package/build/rss/index.js.map +1 -1
  52. package/build/search/edit.js +76 -86
  53. package/build/search/edit.js.map +1 -1
  54. package/build/separator/edit.js +13 -12
  55. package/build/separator/edit.js.map +1 -1
  56. package/build/table/edit.js +3 -2
  57. package/build/table/edit.js.map +1 -1
  58. package/build/table/index.js +8 -4
  59. package/build/table/index.js.map +1 -1
  60. package/build/template-part/edit/advanced-controls.js +14 -12
  61. package/build/template-part/edit/advanced-controls.js.map +1 -1
  62. package/build/template-part/edit/index.js +2 -1
  63. package/build/template-part/edit/index.js.map +1 -1
  64. package/build-module/calendar/index.js +1 -0
  65. package/build-module/calendar/index.js.map +1 -1
  66. package/build-module/code/index.js +2 -1
  67. package/build-module/code/index.js.map +1 -1
  68. package/build-module/comments/edit/comments-inspector-controls.js +14 -14
  69. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
  70. package/build-module/comments/edit/index.js +4 -2
  71. package/build-module/comments/edit/index.js.map +1 -1
  72. package/build-module/cover/edit/inspector-controls.js +10 -13
  73. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  74. package/build-module/details/index.js +2 -1
  75. package/build-module/details/index.js.map +1 -1
  76. package/build-module/group/edit.js +16 -14
  77. package/build-module/group/edit.js.map +1 -1
  78. package/build-module/html/index.js +2 -1
  79. package/build-module/html/index.js.map +1 -1
  80. package/build-module/image/constants.js +1 -0
  81. package/build-module/image/constants.js.map +1 -1
  82. package/build-module/image/edit.js +2 -8
  83. package/build-module/image/edit.js.map +1 -1
  84. package/build-module/image/image.js +2 -5
  85. package/build-module/image/image.js.map +1 -1
  86. package/build-module/latest-posts/edit.js +100 -54
  87. package/build-module/latest-posts/edit.js.map +1 -1
  88. package/build-module/more/index.js +2 -1
  89. package/build-module/more/index.js.map +1 -1
  90. package/build-module/post-excerpt/edit.js +4 -2
  91. package/build-module/post-excerpt/edit.js.map +1 -1
  92. package/build-module/post-excerpt/index.js +2 -1
  93. package/build-module/post-excerpt/index.js.map +1 -1
  94. package/build-module/post-navigation-link/edit.js +4 -2
  95. package/build-module/post-navigation-link/edit.js.map +1 -1
  96. package/build-module/post-navigation-link/index.js +2 -1
  97. package/build-module/post-navigation-link/index.js.map +1 -1
  98. package/build-module/post-navigation-link/variations.js +13 -13
  99. package/build-module/post-navigation-link/variations.js.map +1 -1
  100. package/build-module/post-template/edit.js +5 -3
  101. package/build-module/post-template/edit.js.map +1 -1
  102. package/build-module/post-terms/edit.js +4 -2
  103. package/build-module/post-terms/edit.js.map +1 -1
  104. package/build-module/post-terms/index.js +4 -2
  105. package/build-module/post-terms/index.js.map +1 -1
  106. package/build-module/preformatted/transforms.js +5 -1
  107. package/build-module/preformatted/transforms.js.map +1 -1
  108. package/build-module/query/edit/query-content.js +12 -13
  109. package/build-module/query/edit/query-content.js.map +1 -1
  110. package/build-module/read-more/index.js +2 -1
  111. package/build-module/read-more/index.js.map +1 -1
  112. package/build-module/rss/index.js +2 -1
  113. package/build-module/rss/index.js.map +1 -1
  114. package/build-module/search/edit.js +78 -88
  115. package/build-module/search/edit.js.map +1 -1
  116. package/build-module/separator/edit.js +15 -14
  117. package/build-module/separator/edit.js.map +1 -1
  118. package/build-module/table/edit.js +4 -3
  119. package/build-module/table/edit.js.map +1 -1
  120. package/build-module/table/index.js +8 -4
  121. package/build-module/table/index.js.map +1 -1
  122. package/build-module/template-part/edit/advanced-controls.js +14 -12
  123. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  124. package/build-module/template-part/edit/index.js +2 -1
  125. package/build-module/template-part/edit/index.js.map +1 -1
  126. package/build-style/archives/editor-rtl.css +47 -11
  127. package/build-style/archives/editor.css +47 -11
  128. package/build-style/archives/style-rtl.css +47 -11
  129. package/build-style/archives/style.css +47 -11
  130. package/build-style/audio/editor-rtl.css +47 -11
  131. package/build-style/audio/editor.css +47 -11
  132. package/build-style/audio/style-rtl.css +47 -11
  133. package/build-style/audio/style.css +47 -11
  134. package/build-style/audio/theme-rtl.css +47 -11
  135. package/build-style/audio/theme.css +47 -11
  136. package/build-style/avatar/editor-rtl.css +47 -11
  137. package/build-style/avatar/editor.css +47 -11
  138. package/build-style/avatar/style-rtl.css +47 -11
  139. package/build-style/avatar/style.css +47 -11
  140. package/build-style/button/editor-rtl.css +47 -11
  141. package/build-style/button/editor.css +47 -11
  142. package/build-style/button/style-rtl.css +47 -12
  143. package/build-style/button/style.css +47 -12
  144. package/build-style/buttons/editor-rtl.css +47 -11
  145. package/build-style/buttons/editor.css +47 -11
  146. package/build-style/buttons/style-rtl.css +50 -11
  147. package/build-style/buttons/style.css +50 -11
  148. package/build-style/calendar/style-rtl.css +47 -11
  149. package/build-style/calendar/style.css +47 -11
  150. package/build-style/categories/editor-rtl.css +47 -11
  151. package/build-style/categories/editor.css +47 -11
  152. package/build-style/categories/style-rtl.css +47 -11
  153. package/build-style/categories/style.css +47 -11
  154. package/build-style/classic-rtl.css +47 -11
  155. package/build-style/classic.css +47 -11
  156. package/build-style/code/editor-rtl.css +47 -11
  157. package/build-style/code/editor.css +47 -11
  158. package/build-style/code/style-rtl.css +47 -11
  159. package/build-style/code/style.css +47 -11
  160. package/build-style/code/theme-rtl.css +47 -11
  161. package/build-style/code/theme.css +47 -11
  162. package/build-style/columns/editor-rtl.css +47 -11
  163. package/build-style/columns/editor.css +47 -11
  164. package/build-style/columns/style-rtl.css +47 -11
  165. package/build-style/columns/style.css +47 -11
  166. package/build-style/comment-author-avatar/editor-rtl.css +47 -11
  167. package/build-style/comment-author-avatar/editor.css +47 -11
  168. package/build-style/comment-author-name/style-rtl.css +47 -11
  169. package/build-style/comment-author-name/style.css +47 -11
  170. package/build-style/comment-content/style-rtl.css +47 -11
  171. package/build-style/comment-content/style.css +47 -11
  172. package/build-style/comment-date/style-rtl.css +47 -11
  173. package/build-style/comment-date/style.css +47 -11
  174. package/build-style/comment-edit-link/style-rtl.css +47 -11
  175. package/build-style/comment-edit-link/style.css +47 -11
  176. package/build-style/comment-reply-link/style-rtl.css +47 -11
  177. package/build-style/comment-reply-link/style.css +47 -11
  178. package/build-style/comment-template/style-rtl.css +47 -11
  179. package/build-style/comment-template/style.css +47 -11
  180. package/build-style/comments/editor-rtl.css +47 -11
  181. package/build-style/comments/editor.css +47 -11
  182. package/build-style/comments/style-rtl.css +47 -11
  183. package/build-style/comments/style.css +47 -11
  184. package/build-style/comments-pagination/editor-rtl.css +47 -11
  185. package/build-style/comments-pagination/editor.css +47 -11
  186. package/build-style/comments-pagination/style-rtl.css +47 -11
  187. package/build-style/comments-pagination/style.css +47 -11
  188. package/build-style/comments-pagination-numbers/editor-rtl.css +47 -11
  189. package/build-style/comments-pagination-numbers/editor.css +47 -11
  190. package/build-style/comments-title/editor-rtl.css +47 -11
  191. package/build-style/comments-title/editor.css +47 -11
  192. package/build-style/common-rtl.css +130 -9
  193. package/build-style/common.css +130 -9
  194. package/build-style/cover/editor-rtl.css +47 -11
  195. package/build-style/cover/editor.css +47 -11
  196. package/build-style/cover/style-rtl.css +47 -11
  197. package/build-style/cover/style.css +47 -11
  198. package/build-style/details/editor-rtl.css +47 -11
  199. package/build-style/details/editor.css +47 -11
  200. package/build-style/details/style-rtl.css +47 -11
  201. package/build-style/details/style.css +47 -11
  202. package/build-style/editor-elements-rtl.css +47 -11
  203. package/build-style/editor-elements.css +47 -11
  204. package/build-style/editor-rtl.css +48 -11
  205. package/build-style/editor.css +48 -11
  206. package/build-style/elements-rtl.css +47 -11
  207. package/build-style/elements.css +47 -11
  208. package/build-style/embed/editor-rtl.css +47 -11
  209. package/build-style/embed/editor.css +47 -11
  210. package/build-style/embed/style-rtl.css +47 -11
  211. package/build-style/embed/style.css +47 -11
  212. package/build-style/embed/theme-rtl.css +47 -11
  213. package/build-style/embed/theme.css +47 -11
  214. package/build-style/file/editor-rtl.css +47 -11
  215. package/build-style/file/editor.css +47 -11
  216. package/build-style/file/style-rtl.css +47 -11
  217. package/build-style/file/style.css +47 -11
  218. package/build-style/footnotes/style-rtl.css +47 -11
  219. package/build-style/footnotes/style.css +47 -11
  220. package/build-style/form-input/editor-rtl.css +47 -11
  221. package/build-style/form-input/editor.css +47 -11
  222. package/build-style/form-input/style-rtl.css +47 -11
  223. package/build-style/form-input/style.css +47 -11
  224. package/build-style/form-submission-notification/editor-rtl.css +47 -11
  225. package/build-style/form-submission-notification/editor.css +47 -11
  226. package/build-style/form-submit-button/style-rtl.css +47 -11
  227. package/build-style/form-submit-button/style.css +47 -11
  228. package/build-style/freeform/editor-rtl.css +47 -11
  229. package/build-style/freeform/editor.css +47 -11
  230. package/build-style/gallery/editor-rtl.css +47 -11
  231. package/build-style/gallery/editor.css +47 -11
  232. package/build-style/gallery/style-rtl.css +47 -11
  233. package/build-style/gallery/style.css +47 -11
  234. package/build-style/gallery/theme-rtl.css +47 -11
  235. package/build-style/gallery/theme.css +47 -11
  236. package/build-style/group/editor-rtl.css +47 -11
  237. package/build-style/group/editor.css +47 -11
  238. package/build-style/group/style-rtl.css +47 -11
  239. package/build-style/group/style.css +47 -11
  240. package/build-style/group/theme-rtl.css +47 -11
  241. package/build-style/group/theme.css +47 -11
  242. package/build-style/heading/style-rtl.css +47 -11
  243. package/build-style/heading/style.css +47 -11
  244. package/build-style/html/editor-rtl.css +48 -11
  245. package/build-style/html/editor.css +48 -11
  246. package/build-style/image/editor-rtl.css +47 -11
  247. package/build-style/image/editor.css +47 -11
  248. package/build-style/image/style-rtl.css +47 -11
  249. package/build-style/image/style.css +47 -11
  250. package/build-style/image/theme-rtl.css +47 -11
  251. package/build-style/image/theme.css +47 -11
  252. package/build-style/latest-comments/style-rtl.css +47 -11
  253. package/build-style/latest-comments/style.css +47 -11
  254. package/build-style/latest-posts/editor-rtl.css +47 -11
  255. package/build-style/latest-posts/editor.css +47 -11
  256. package/build-style/latest-posts/style-rtl.css +47 -11
  257. package/build-style/latest-posts/style.css +47 -11
  258. package/build-style/list/style-rtl.css +47 -11
  259. package/build-style/list/style.css +47 -11
  260. package/build-style/loginout/style-rtl.css +47 -11
  261. package/build-style/loginout/style.css +47 -11
  262. package/build-style/media-text/editor-rtl.css +47 -11
  263. package/build-style/media-text/editor.css +47 -11
  264. package/build-style/media-text/style-rtl.css +47 -11
  265. package/build-style/media-text/style.css +47 -11
  266. package/build-style/more/editor-rtl.css +47 -11
  267. package/build-style/more/editor.css +47 -11
  268. package/build-style/navigation/editor-rtl.css +47 -11
  269. package/build-style/navigation/editor.css +47 -11
  270. package/build-style/navigation/style-rtl.css +47 -11
  271. package/build-style/navigation/style.css +47 -11
  272. package/build-style/navigation-link/editor-rtl.css +47 -11
  273. package/build-style/navigation-link/editor.css +47 -11
  274. package/build-style/navigation-link/style-rtl.css +47 -11
  275. package/build-style/navigation-link/style.css +47 -11
  276. package/build-style/navigation-submenu/editor-rtl.css +47 -11
  277. package/build-style/navigation-submenu/editor.css +47 -11
  278. package/build-style/nextpage/editor-rtl.css +47 -11
  279. package/build-style/nextpage/editor.css +47 -11
  280. package/build-style/page-list/editor-rtl.css +47 -11
  281. package/build-style/page-list/editor.css +47 -11
  282. package/build-style/page-list/style-rtl.css +47 -11
  283. package/build-style/page-list/style.css +47 -11
  284. package/build-style/paragraph/editor-rtl.css +47 -11
  285. package/build-style/paragraph/editor.css +47 -11
  286. package/build-style/paragraph/style-rtl.css +47 -11
  287. package/build-style/paragraph/style.css +47 -11
  288. package/build-style/post-author/editor-rtl.css +47 -11
  289. package/build-style/post-author/editor.css +47 -11
  290. package/build-style/post-author/style-rtl.css +47 -11
  291. package/build-style/post-author/style.css +47 -11
  292. package/build-style/post-author-biography/style-rtl.css +47 -11
  293. package/build-style/post-author-biography/style.css +47 -11
  294. package/build-style/post-author-name/style-rtl.css +47 -11
  295. package/build-style/post-author-name/style.css +47 -11
  296. package/build-style/post-comments-count/style-rtl.css +47 -11
  297. package/build-style/post-comments-count/style.css +47 -11
  298. package/build-style/post-comments-form/editor-rtl.css +47 -11
  299. package/build-style/post-comments-form/editor.css +47 -11
  300. package/build-style/post-comments-form/style-rtl.css +47 -14
  301. package/build-style/post-comments-form/style.css +47 -14
  302. package/build-style/post-comments-link/style-rtl.css +47 -11
  303. package/build-style/post-comments-link/style.css +47 -11
  304. package/build-style/post-content/style-rtl.css +47 -11
  305. package/build-style/post-content/style.css +47 -11
  306. package/build-style/post-date/style-rtl.css +47 -11
  307. package/build-style/post-date/style.css +47 -11
  308. package/build-style/post-excerpt/editor-rtl.css +47 -11
  309. package/build-style/post-excerpt/editor.css +47 -11
  310. package/build-style/post-excerpt/style-rtl.css +47 -11
  311. package/build-style/post-excerpt/style.css +47 -11
  312. package/build-style/post-featured-image/editor-rtl.css +47 -11
  313. package/build-style/post-featured-image/editor.css +47 -11
  314. package/build-style/post-featured-image/style-rtl.css +47 -11
  315. package/build-style/post-featured-image/style.css +47 -11
  316. package/build-style/post-navigation-link/style-rtl.css +47 -11
  317. package/build-style/post-navigation-link/style.css +47 -11
  318. package/build-style/post-template/style-rtl.css +47 -11
  319. package/build-style/post-template/style.css +47 -11
  320. package/build-style/post-terms/style-rtl.css +47 -11
  321. package/build-style/post-terms/style.css +47 -11
  322. package/build-style/post-time-to-read/style-rtl.css +47 -11
  323. package/build-style/post-time-to-read/style.css +47 -11
  324. package/build-style/post-title/style-rtl.css +47 -11
  325. package/build-style/post-title/style.css +47 -11
  326. package/build-style/preformatted/style-rtl.css +47 -11
  327. package/build-style/preformatted/style.css +47 -11
  328. package/build-style/pullquote/editor-rtl.css +47 -11
  329. package/build-style/pullquote/editor.css +47 -11
  330. package/build-style/pullquote/style-rtl.css +47 -11
  331. package/build-style/pullquote/style.css +47 -11
  332. package/build-style/pullquote/theme-rtl.css +47 -11
  333. package/build-style/pullquote/theme.css +47 -11
  334. package/build-style/query/editor-rtl.css +47 -11
  335. package/build-style/query/editor.css +47 -11
  336. package/build-style/query-pagination/editor-rtl.css +47 -11
  337. package/build-style/query-pagination/editor.css +47 -11
  338. package/build-style/query-pagination/style-rtl.css +47 -11
  339. package/build-style/query-pagination/style.css +47 -11
  340. package/build-style/query-pagination-numbers/editor-rtl.css +47 -11
  341. package/build-style/query-pagination-numbers/editor.css +47 -11
  342. package/build-style/query-title/style-rtl.css +47 -11
  343. package/build-style/query-title/style.css +47 -11
  344. package/build-style/query-total/style-rtl.css +47 -11
  345. package/build-style/query-total/style.css +47 -11
  346. package/build-style/quote/style-rtl.css +47 -11
  347. package/build-style/quote/style.css +47 -11
  348. package/build-style/quote/theme-rtl.css +47 -11
  349. package/build-style/quote/theme.css +47 -11
  350. package/build-style/read-more/style-rtl.css +47 -11
  351. package/build-style/read-more/style.css +47 -11
  352. package/build-style/reset-rtl.css +47 -11
  353. package/build-style/reset.css +47 -11
  354. package/build-style/rss/editor-rtl.css +47 -11
  355. package/build-style/rss/editor.css +47 -11
  356. package/build-style/rss/style-rtl.css +47 -11
  357. package/build-style/rss/style.css +47 -11
  358. package/build-style/search/editor-rtl.css +47 -11
  359. package/build-style/search/editor.css +47 -11
  360. package/build-style/search/style-rtl.css +47 -11
  361. package/build-style/search/style.css +47 -11
  362. package/build-style/search/theme-rtl.css +47 -11
  363. package/build-style/search/theme.css +47 -11
  364. package/build-style/separator/editor-rtl.css +47 -11
  365. package/build-style/separator/editor.css +47 -11
  366. package/build-style/separator/style-rtl.css +47 -11
  367. package/build-style/separator/style.css +47 -11
  368. package/build-style/separator/theme-rtl.css +47 -11
  369. package/build-style/separator/theme.css +47 -11
  370. package/build-style/shortcode/editor-rtl.css +47 -11
  371. package/build-style/shortcode/editor.css +47 -11
  372. package/build-style/site-logo/editor-rtl.css +47 -11
  373. package/build-style/site-logo/editor.css +47 -11
  374. package/build-style/site-logo/style-rtl.css +47 -11
  375. package/build-style/site-logo/style.css +47 -11
  376. package/build-style/site-tagline/editor-rtl.css +47 -11
  377. package/build-style/site-tagline/editor.css +47 -11
  378. package/build-style/site-tagline/style-rtl.css +47 -11
  379. package/build-style/site-tagline/style.css +47 -11
  380. package/build-style/site-title/editor-rtl.css +47 -11
  381. package/build-style/site-title/editor.css +47 -11
  382. package/build-style/site-title/style-rtl.css +47 -11
  383. package/build-style/site-title/style.css +47 -11
  384. package/build-style/social-link/editor-rtl.css +47 -11
  385. package/build-style/social-link/editor.css +47 -11
  386. package/build-style/social-links/editor-rtl.css +47 -11
  387. package/build-style/social-links/editor.css +47 -11
  388. package/build-style/social-links/style-rtl.css +47 -11
  389. package/build-style/social-links/style.css +47 -11
  390. package/build-style/spacer/editor-rtl.css +47 -11
  391. package/build-style/spacer/editor.css +47 -11
  392. package/build-style/spacer/style-rtl.css +47 -11
  393. package/build-style/spacer/style.css +47 -11
  394. package/build-style/style-rtl.css +50 -15
  395. package/build-style/style.css +50 -15
  396. package/build-style/table/editor-rtl.css +47 -11
  397. package/build-style/table/editor.css +47 -11
  398. package/build-style/table/style-rtl.css +47 -11
  399. package/build-style/table/style.css +47 -11
  400. package/build-style/table/theme-rtl.css +47 -11
  401. package/build-style/table/theme.css +47 -11
  402. package/build-style/table-of-contents/style-rtl.css +47 -11
  403. package/build-style/table-of-contents/style.css +47 -11
  404. package/build-style/tag-cloud/editor-rtl.css +47 -11
  405. package/build-style/tag-cloud/editor.css +47 -11
  406. package/build-style/tag-cloud/style-rtl.css +47 -11
  407. package/build-style/tag-cloud/style.css +47 -11
  408. package/build-style/template-part/editor-rtl.css +47 -11
  409. package/build-style/template-part/editor.css +47 -11
  410. package/build-style/template-part/theme-rtl.css +47 -11
  411. package/build-style/template-part/theme.css +47 -11
  412. package/build-style/term-description/style-rtl.css +47 -11
  413. package/build-style/term-description/style.css +47 -11
  414. package/build-style/text-columns/editor-rtl.css +47 -11
  415. package/build-style/text-columns/editor.css +47 -11
  416. package/build-style/text-columns/style-rtl.css +47 -11
  417. package/build-style/text-columns/style.css +47 -11
  418. package/build-style/theme-rtl.css +47 -11
  419. package/build-style/theme.css +47 -11
  420. package/build-style/verse/style-rtl.css +47 -11
  421. package/build-style/verse/style.css +47 -11
  422. package/build-style/video/editor-rtl.css +47 -11
  423. package/build-style/video/editor.css +47 -11
  424. package/build-style/video/style-rtl.css +47 -11
  425. package/build-style/video/style.css +47 -11
  426. package/build-style/video/theme-rtl.css +47 -11
  427. package/build-style/video/theme.css +47 -11
  428. package/package.json +35 -35
  429. package/src/button/style.scss +0 -1
  430. package/src/buttons/style.scss +5 -0
  431. package/src/calendar/block.json +1 -0
  432. package/src/code/block.json +2 -1
  433. package/src/comments/edit/comments-inspector-controls.js +14 -12
  434. package/src/comments/edit/index.js +2 -1
  435. package/src/cover/edit/inspector-controls.js +9 -12
  436. package/src/details/block.json +2 -1
  437. package/src/group/edit.js +11 -10
  438. package/src/html/block.json +2 -1
  439. package/src/html/editor.scss +1 -0
  440. package/src/image/constants.js +1 -0
  441. package/src/image/edit.js +2 -5
  442. package/src/image/image.js +7 -5
  443. package/src/latest-posts/edit.js +113 -81
  444. package/src/loginout/index.php +5 -1
  445. package/src/more/block.json +2 -1
  446. package/src/navigation/index.php +0 -1
  447. package/src/navigation-link/index.php +1 -1
  448. package/src/navigation-submenu/index.php +1 -1
  449. package/src/post-author/index.php +1 -1
  450. package/src/post-author-name/index.php +1 -1
  451. package/src/post-comments-form/style.scss +0 -5
  452. package/src/post-excerpt/block.json +2 -1
  453. package/src/post-excerpt/edit.js +13 -8
  454. package/src/post-navigation-link/block.json +2 -1
  455. package/src/post-navigation-link/edit.js +13 -8
  456. package/src/post-navigation-link/variations.js +13 -13
  457. package/src/post-template/edit.js +4 -3
  458. package/src/post-terms/block.json +4 -2
  459. package/src/post-terms/edit.js +13 -8
  460. package/src/preformatted/test/__snapshots__/transforms.native.js.snap +6 -0
  461. package/src/preformatted/test/transforms.native.js +6 -1
  462. package/src/preformatted/transforms.js +7 -1
  463. package/src/query/edit/query-content.js +10 -11
  464. package/src/read-more/block.json +2 -1
  465. package/src/rss/block.json +2 -1
  466. package/src/search/edit.js +84 -99
  467. package/src/separator/edit.js +16 -12
  468. package/src/table/block.json +8 -4
  469. package/src/table/edit.js +6 -2
  470. package/src/template-part/edit/advanced-controls.js +9 -8
  471. package/src/template-part/edit/index.js +1 -0
  472. package/src/verse/test/__snapshots__/transforms.native.js.snap +6 -0
  473. package/src/verse/test/transforms.native.js +5 -1
  474. package/build/search/icons.js +0 -121
  475. package/build/search/icons.js.map +0 -1
  476. package/build/utils/messages.js +0 -22
  477. package/build/utils/messages.js.map +0 -1
  478. package/build-module/search/icons.js +0 -114
  479. package/build-module/search/icons.js.map +0 -1
  480. package/build-module/utils/messages.js +0 -15
  481. package/build-module/utils/messages.js.map +0 -1
  482. package/src/search/icons.js +0 -89
  483. package/src/utils/messages.js +0 -31
@@ -202,7 +202,7 @@ function ImageEdit({
202
202
 
203
203
  // Try to use the previous selected image size if its available
204
204
  // otherwise try the default image size or fallback to "full"
205
- let newSize = 'full';
205
+ let newSize = _constants.DEFAULT_MEDIA_SIZE_SLUG;
206
206
  if (sizeSlug && hasSize(media, sizeSlug)) {
207
207
  newSize = sizeSlug;
208
208
  } else if (hasSize(media, imageDefaultSize)) {
@@ -225,12 +225,6 @@ function ImageEdit({
225
225
  additionalAttributes = {
226
226
  sizeSlug: newSize
227
227
  };
228
- } else {
229
- // Keep the same url when selecting the same file, so "Resolution"
230
- // option is not changed.
231
- additionalAttributes = {
232
- url
233
- };
234
228
  }
235
229
 
236
230
  // Check if default link setting should be used.
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_blob","_blocks","_components","_data","_blockEditor","_element","_i18n","_icons","_notices","_compose","_hooks","_image","_utils","_useMaxWidthObserver","_constants","_jsxRuntime","pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","exports","isExternalImage","id","isBlobURL","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","useState","blob","containerRef","useRef","layoutType","type","default","isMaxWidthContainerWidth","maxWidthObserver","maxContentWidth","useMaxWidthObserver","placeholderResizeListener","placeholderWidth","useResizeObserver","isSmallContainer","altRef","useEffect","current","captionRef","__unstableMarkNextChangeAsNotPersistent","replaceBlock","useDispatch","blockEditorStore","undefined","getSettings","getBlockRootClientId","getBlockName","canInsertBlockType","useSelect","blockEditingMode","useBlockEditingMode","createErrorNotice","noticesStore","onUploadError","message","src","onSelectImagesList","images","win","ownerDocument","defaultView","every","file","File","files","rootClientId","some","isValidFileType","__","imageBlocks","map","createBlock","createBlobURL","galleryBlock","onSelectImage","media","Array","isArray","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","useUploadMediaFromBlobURL","allowedTypes","ALLOWED_MEDIA_TYPES","onChange","onError","isExternal","mediaPreview","jsx","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","classes","clsx","style","keys","length","blockProps","useBlockProps","ref","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","sprintf","placeholder","content","jsxs","Placeholder","icon","pluginsIcon","withIllustration","instructions","objectFit","children","Fragment","parentLayoutType","MediaPlaceholder","BlockIcon","onSelect","accept","handleUpload","value","disableMediaButtons","_default"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL, createBlobURL } from '@wordpress/blob';\nimport { createBlock, getBlockBindingsSource } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tuseBlockProps,\n\tMediaPlaceholder,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\nimport { isValidFileType } from './utils';\nimport { useMaxWidthObserver } from './use-max-width-observer';\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 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: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tconst containerRef = useRef();\n\t// Only observe the max width from the parent container when the parent layout is not flex nor grid.\n\t// This won't work for them because the container width changes with the image.\n\t// TODO: Find a way to observe the container width for flex and grid layouts.\n\tconst layoutType = parentLayout?.type || parentLayout?.default?.type;\n\tconst isMaxWidthContainerWidth =\n\t\t! layoutType || ( layoutType !== 'flex' && layoutType !== 'grid' );\n\tconst [ maxWidthObserver, maxContentWidth ] = useMaxWidthObserver();\n\n\tconst [ placeholderResizeListener, { width: placeholderWidth } ] =\n\t\tuseResizeObserver();\n\n\tconst isSmallContainer = placeholderWidth && placeholderWidth < 160;\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 { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst {\n\t\tgetSettings,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tcanInsertBlockType,\n\t} = useSelect( blockEditorStore );\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\tblob: undefined,\n\t\t} );\n\t}\n\n\tfunction onSelectImagesList( images ) {\n\t\tconst win = containerRef.current?.ownerDocument.defaultView;\n\n\t\tif ( images.every( ( file ) => file instanceof win.File ) ) {\n\t\t\t/** @type {File[]} */\n\t\t\tconst files = images;\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\tif ( files.some( ( file ) => ! isValidFileType( file ) ) ) {\n\t\t\t\t// Copied from the same notice in the gallery block.\n\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t\t),\n\t\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst imageBlocks = files\n\t\t\t\t.filter( ( file ) => isValidFileType( file ) )\n\t\t\t\t.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\tif ( getBlockName( rootClientId ) === 'core/gallery' ) {\n\t\t\t\treplaceBlock( clientId, imageBlocks );\n\t\t\t} else if ( canInsertBlockType( 'core/gallery', rootClientId ) ) {\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{},\n\t\t\t\t\timageBlocks\n\t\t\t\t);\n\n\t\t\t\treplaceBlock( clientId, galleryBlock );\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( Array.isArray( media ) ) {\n\t\t\tonSelectImagesList( media );\n\t\t\treturn;\n\t\t}\n\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\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\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\tconst { imageDefaultSize } = getSettings();\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\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\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\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( 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: containerRef,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\tmetadata?.bindings?.url?.source\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\ticon={\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t( lockUrlControls ? pluginsIcon : icon )\n\t\t\t\t}\n\t\t\t\twithIllustration={ ! isSingleSelected || isSmallContainer }\n\t\t\t\tlabel={ ! isSmallContainer && __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Drag and drop an image, upload, or choose from your library.'\n\t\t\t\t\t)\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\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\tlockUrlControlsMessage }\n\n\t\t\t\t{ ! lockUrlControls && ! isSmallContainer && content }\n\t\t\t\t{ placeholderResizeListener }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<figure { ...blockProps }>\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\tisSingleSelected={ isSingleSelected }\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\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\tparentLayoutType={ layoutType }\n\t\t\t\t\tmaxContentWidth={ maxContentWidth }\n\t\t\t\t/>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\thandleUpload={ ( files ) => files.length === 1 }\n\t\t\t\t\tvalue={ { id, src } }\n\t\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t\t{\n\t\t\t\t// The listener cannot be placed as the first element as it will break the in-between inserter.\n\t\t\t\t// See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120\n\t\t\t\tisSingleSelected && isMaxWidthContainerWidth && maxWidthObserver\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_blob","_blocks","_components","_data","_blockEditor","_element","_i18n","_icons","_notices","_compose","_hooks","_image","_utils","_useMaxWidthObserver","_constants","_jsxRuntime","pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","exports","isExternalImage","id","isBlobURL","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","useState","blob","containerRef","useRef","layoutType","type","default","isMaxWidthContainerWidth","maxWidthObserver","maxContentWidth","useMaxWidthObserver","placeholderResizeListener","placeholderWidth","useResizeObserver","isSmallContainer","altRef","useEffect","current","captionRef","__unstableMarkNextChangeAsNotPersistent","replaceBlock","useDispatch","blockEditorStore","undefined","getSettings","getBlockRootClientId","getBlockName","canInsertBlockType","useSelect","blockEditingMode","useBlockEditingMode","createErrorNotice","noticesStore","onUploadError","message","src","onSelectImagesList","images","win","ownerDocument","defaultView","every","file","File","files","rootClientId","some","isValidFileType","__","imageBlocks","map","createBlock","createBlobURL","galleryBlock","onSelectImage","media","Array","isArray","title","imageDefaultSize","newSize","DEFAULT_MEDIA_SIZE_SLUG","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","useUploadMediaFromBlobURL","allowedTypes","ALLOWED_MEDIA_TYPES","onChange","onError","isExternal","mediaPreview","jsx","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","classes","clsx","style","keys","length","blockProps","useBlockProps","ref","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","sprintf","placeholder","content","jsxs","Placeholder","icon","pluginsIcon","withIllustration","instructions","objectFit","children","Fragment","parentLayoutType","MediaPlaceholder","BlockIcon","onSelect","accept","handleUpload","value","disableMediaButtons","_default"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL, createBlobURL } from '@wordpress/blob';\nimport { createBlock, getBlockBindingsSource } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tuseBlockProps,\n\tMediaPlaceholder,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\nimport { isValidFileType } from './utils';\nimport { useMaxWidthObserver } from './use-max-width-observer';\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\tDEFAULT_MEDIA_SIZE_SLUG,\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 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: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tconst containerRef = useRef();\n\t// Only observe the max width from the parent container when the parent layout is not flex nor grid.\n\t// This won't work for them because the container width changes with the image.\n\t// TODO: Find a way to observe the container width for flex and grid layouts.\n\tconst layoutType = parentLayout?.type || parentLayout?.default?.type;\n\tconst isMaxWidthContainerWidth =\n\t\t! layoutType || ( layoutType !== 'flex' && layoutType !== 'grid' );\n\tconst [ maxWidthObserver, maxContentWidth ] = useMaxWidthObserver();\n\n\tconst [ placeholderResizeListener, { width: placeholderWidth } ] =\n\t\tuseResizeObserver();\n\n\tconst isSmallContainer = placeholderWidth && placeholderWidth < 160;\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 { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst {\n\t\tgetSettings,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tcanInsertBlockType,\n\t} = useSelect( blockEditorStore );\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\tblob: undefined,\n\t\t} );\n\t}\n\n\tfunction onSelectImagesList( images ) {\n\t\tconst win = containerRef.current?.ownerDocument.defaultView;\n\n\t\tif ( images.every( ( file ) => file instanceof win.File ) ) {\n\t\t\t/** @type {File[]} */\n\t\t\tconst files = images;\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\tif ( files.some( ( file ) => ! isValidFileType( file ) ) ) {\n\t\t\t\t// Copied from the same notice in the gallery block.\n\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t\t),\n\t\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst imageBlocks = files\n\t\t\t\t.filter( ( file ) => isValidFileType( file ) )\n\t\t\t\t.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\tif ( getBlockName( rootClientId ) === 'core/gallery' ) {\n\t\t\t\treplaceBlock( clientId, imageBlocks );\n\t\t\t} else if ( canInsertBlockType( 'core/gallery', rootClientId ) ) {\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{},\n\t\t\t\t\timageBlocks\n\t\t\t\t);\n\n\t\t\t\treplaceBlock( clientId, galleryBlock );\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( Array.isArray( media ) ) {\n\t\t\tonSelectImagesList( media );\n\t\t\treturn;\n\t\t}\n\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\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\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\tconst { imageDefaultSize } = getSettings();\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 = DEFAULT_MEDIA_SIZE_SLUG;\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}\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\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\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\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( 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: containerRef,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\tmetadata?.bindings?.url?.source\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\ticon={\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t( lockUrlControls ? pluginsIcon : icon )\n\t\t\t\t}\n\t\t\t\twithIllustration={ ! isSingleSelected || isSmallContainer }\n\t\t\t\tlabel={ ! isSmallContainer && __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Drag and drop an image, upload, or choose from your library.'\n\t\t\t\t\t)\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\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\tlockUrlControlsMessage }\n\n\t\t\t\t{ ! lockUrlControls && ! isSmallContainer && content }\n\t\t\t\t{ placeholderResizeListener }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<figure { ...blockProps }>\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\tisSingleSelected={ isSingleSelected }\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\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\tparentLayoutType={ layoutType }\n\t\t\t\t\tmaxContentWidth={ maxContentWidth }\n\t\t\t\t/>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\thandleUpload={ ( files ) => files.length === 1 }\n\t\t\t\t\tvalue={ { id, src } }\n\t\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t\t{\n\t\t\t\t// The listener cannot be placed as the first element as it will break the in-between inserter.\n\t\t\t\t// See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120\n\t\t\t\tisSingleSelected && isMaxWidthContainerWidth && maxWidthObserver\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -32,10 +32,6 @@ var _jsxRuntime = require("react/jsx-runtime");
32
32
  * Internal dependencies
33
33
  */
34
34
 
35
- /**
36
- * Module constants
37
- */
38
-
39
35
  const {
40
36
  DimensionsTool,
41
37
  ResolutionTool
@@ -679,6 +675,7 @@ function Image({
679
675
  })
680
676
  }), dimensionsControl, !!imageSizeOptions.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(ResolutionTool, {
681
677
  value: sizeSlug,
678
+ defaultValue: _constants.DEFAULT_MEDIA_SIZE_SLUG,
682
679
  onChange: updateImage,
683
680
  options: imageSizeOptions
684
681
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_blob","require","_components","_compose","_data","_blockEditor","_element","_i18n","_url","_blocks","_icons","_notices","_coreData","_lockUnlock","_util","_edit","_caption","_hooks","_constants","_utils","_jsxRuntime","DimensionsTool","ResolutionTool","unlock","blockEditorPrivateApis","scaleOptions","value","label","_x","help","__","WRITEMODE_POPOVER_PROPS","placement","ImageWrapper","href","children","jsx","onClick","event","preventDefault","style","pointerEvents","cursor","display","ContentOnlyControls","attributes","setAttributes","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","popoverAnchor","setPopoverAnchor","useState","isAltDialogOpen","setIsAltDialogOpen","isTitleDialogOpen","setIsTitleDialogOpen","jsxs","Fragment","ToolbarItem","ref","toggleProps","DropdownMenu","icon","chevronDown","description","popoverProps","onClose","MenuItem","Popover","anchor","offset","variant","className","TextareaControl","alt","onChange","disabled","ExternalLink","__nextHasNoMarginBottom","TextControl","__next40pxDefaultSize","title","Image","temporaryURL","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","context","clientId","blockEditingMode","parentLayoutType","maxContentWidth","url","align","id","rel","linkClass","linkDestination","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","imageElement","setImageElement","resizeDelta","setResizeDelta","pixelSize","setPixelSize","offsetTop","setOffsetTop","setResizeObserved","useResizeObserver","entry","box","borderBoxSize","inlineSize","blockSize","target","effectResizeableBoxPlacement","useCallback","_imageElement$offsetT","setRefs","useMergeRefs","allowResize","image","useSelect","select","coreStore","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","getSettings","blockEditorStore","rootClientId","settings","getBlock","replaceBlocks","toggleSelection","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","editEntityRecord","isLargeViewport","useViewportMatch","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","hasImageErrored","setHasImageErrored","hasNonContentControls","isContentOnlyMode","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","useEffect","isExternalImage","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","useMemo","undefined","complete","onImageError","embedBlock","createUpgradedEmbedBlock","onImageLoad","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","resetLightbox","allowEditing","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","isBlobURL","type","allowedTypes","ALLOWED_MEDIA_TYPES","onError","message","canEditImage","allowCrop","switchToCover","switchToBlockType","dimensionsUnitsOptions","useCustomUnits","availableUnits","useSettings","showLightboxSetting","lightboxChecked","dropdownMenuProps","useToolsPanelDropdownMenuProps","dimensionsControl","SIZED_LAYOUTS","newAspectRatio","defaultAspectRatio","tools","newWidth","newHeight","newScale","defaultScale","unitsOptions","resetAll","sizeControls","InspectorControls","__experimentalToolsPanel","arePatternOverridesEnabled","bindings","__default","source","lockUrlControls","lockHrefControls","lockCaption","urlBinding","altBinding","titleBinding","hasParentPattern","urlBindingSource","getBlockBindingsSource","altBindingSource","titleBindingSource","canUserEditValue","args","sprintf","showUrlInput","showCoverControls","showBlockControls","mediaReplaceFlow","BlockControls","group","MediaReplaceFlow","mediaId","mediaURL","accept","onSelect","onReset","controls","__experimentalImageURLInputUI","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","ToolbarButton","crop","overlayText","ToolbarGroup","upload","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","readOnly","length","options","filename","getFilename","defaultedAlt","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","isRounded","postType","postId","queryId","isDescendentOfQueryLoop","Number","isFinite","Placeholder","withIllustration","Spinner","src","onLoad","objectFit","__experimentalImageEditor","onSaveImage","imageAttributes","onFinishEditing","resizableBox","numericRatio","evalAspectRatio","customRatio","naturalRatio","ratio","minWidth","MIN_SIZE","minHeight","maxWidthBuffer","maxResizeWidth","showRightHandle","showLeftHandle","isRTL","ResizableBox","position","inset","size","maxHeight","lockAspectRatio","top","right","bottom","left","onResizeStart","onResize","direction","elt","delta","onResizeStop","current","Math","abs","offsetWidth","String","resizeRatio","setPostFeatureImage","featured_media","featuredImageControl","BlockSettingsMenuControls","selectedClientIds","Caption","isSelected","showToolbarButton"],"sources":["@wordpress/block-library/src/image/image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tPlaceholder,\n\tMenuItem,\n\tToolbarItem,\n\tDropdownMenu,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tuseMergeRefs,\n\tuseResizeObserver,\n\tuseViewportMatch,\n} from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockSettingsMenuControls,\n} from '@wordpress/block-editor';\nimport { useCallback, useEffect, useMemo, useState } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport { getBlockBindingsSource, switchToBlockType } from '@wordpress/blocks';\nimport { crop, overlayText, upload, chevronDown } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\n\n/**\n * Module constants\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES, SIZED_LAYOUTS } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\nconst WRITEMODE_POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// and remove pointer events. Safari needs the display property.\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nfunction ContentOnlyControls( {\n\tattributes,\n\tsetAttributes,\n\tlockAltControls,\n\tlockAltControlsMessage,\n\tlockTitleControls,\n\tlockTitleControlsMessage,\n} ) {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst [ isAltDialogOpen, setIsAltDialogOpen ] = useState( false );\n\tconst [ isTitleDialogOpen, setIsTitleDialogOpen ] = useState( false );\n\treturn (\n\t\t<>\n\t\t\t<ToolbarItem ref={ setPopoverAnchor }>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\tlabel={ __( 'More' ) }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t\tdescription: __( 'Displays more controls.' ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tpopoverProps={ WRITEMODE_POPOVER_PROPS }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsAltDialogOpen( true );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ _x(\n\t\t\t\t\t\t\t\t\t\t'Alternative text',\n\t\t\t\t\t\t\t\t\t\t'Alternative text for an image. Block toolbar label, a low character count is preferred.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsTitleDialogOpen( true );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Title text' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t\t{ isAltDialogOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonClose={ () => setIsAltDialogOpen( false ) }\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-image__toolbar_content_textarea__container\">\n\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tvalue={ attributes.alt || '' }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t\t{ isTitleDialogOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonClose={ () => setIsTitleDialogOpen( false ) }\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-image__toolbar_content_textarea__container\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\tvalue={ attributes.title || '' }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\ttitle: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSingleSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n\tparentLayoutType,\n\tmaxContentWidth,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\tconst [ imageElement, setImageElement ] = useState();\n\tconst [ resizeDelta, setResizeDelta ] = useState( null );\n\tconst [ pixelSize, setPixelSize ] = useState( {} );\n\tconst [ offsetTop, setOffsetTop ] = useState( 0 );\n\tconst setResizeObserved = useResizeObserver( ( [ entry ] ) => {\n\t\tif ( ! resizeDelta ) {\n\t\t\tconst [ box ] = entry.borderBoxSize;\n\t\t\tsetPixelSize( { width: box.inlineSize, height: box.blockSize } );\n\t\t}\n\t\t// This is usually 0 unless the image height is less than the line-height.\n\t\tsetOffsetTop( entry.target.offsetTop );\n\t} );\n\tconst effectResizeableBoxPlacement = useCallback( () => {\n\t\tsetOffsetTop( imageElement?.offsetTop ?? 0 );\n\t}, [ imageElement ] );\n\tconst setRefs = useMergeRefs( [ setImageElement, setResizeObserved ] );\n\tconst { allowResize = true } = context;\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getMedia( id, { context: 'view' } )\n\t\t\t\t: null,\n\t\t[ id, isSingleSelected ]\n\t);\n\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst [ hasImageErrored, setHasImageErrored ] = useState( false );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport;\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSingleSelected ||\n\t\t\t! getSettings().mediaUpload\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSingleSelected, externalBlob, getSettings ] );\n\n\t// Get naturalWidth and naturalHeight from image, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageElement?.naturalWidth || loadedNaturalWidth || undefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageElement?.naturalHeight || loadedNaturalHeight || undefined,\n\t\t};\n\t}, [ loadedNaturalWidth, loadedNaturalHeight, imageElement?.complete ] );\n\n\tfunction onImageError() {\n\t\tsetHasImageErrored( true );\n\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onImageLoad( event ) {\n\t\tsetHasImageErrored( false );\n\t\tsetLoadedNaturalSize( {\n\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t} );\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetLightbox( enable ) {\n\t\tif ( enable && ! lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: true },\n\t\t\t} );\n\t\t} else if ( ! enable && lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction resetLightbox() {\n\t\t// When deleting a link from an image while lightbox settings\n\t\t// are enabled by default, we should disable the lightbox,\n\t\t// otherwise the resulting UX looks like a mistake.\n\t\t// See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.\n\t\tif ( lightboxSetting?.enabled && lightboxSetting?.allowEditing ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop =\n\t\tisSingleSelected &&\n\t\tcanEditImage &&\n\t\t! isEditingImage &&\n\t\t! isContentOnlyMode;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxSetting =\n\t\t// If a block-level override is set, we should give users the option to\n\t\t// remove that override, even if the lightbox UI is disabled in the settings.\n\t\t( !! lightbox && lightbox?.enabled !== lightboxSetting?.enabled ) ||\n\t\tlightboxSetting?.allowEditing;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst dimensionsControl =\n\t\tisResizable &&\n\t\t( SIZED_LAYOUTS.includes( parentLayoutType ) ? (\n\t\t\t<DimensionsTool\n\t\t\t\tvalue={ { aspectRatio } }\n\t\t\t\tonChange={ ( { aspectRatio: newAspectRatio } ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t\t\tscale: 'cover',\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\t\ttools={ [ 'aspectRatio' ] }\n\t\t\t/>\n\t\t) : (\n\t\t\t<DimensionsTool\n\t\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\t\tonChange={ ( {\n\t\t\t\t\twidth: newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} ) => {\n\t\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\t\theight: newHeight,\n\t\t\t\t\t\tscale: newScale,\n\t\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdefaultScale=\"cover\"\n\t\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\t\tscaleOptions={ scaleOptions }\n\t\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t\t/>\n\t\t) );\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst arePatternOverridesEnabled =\n\t\tmetadata?.bindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockHrefControls = false,\n\t\tlockAltControls = false,\n\t\tlockAltControlsMessage,\n\t\tlockTitleControls = false,\n\t\tlockTitleControlsMessage,\n\t\tlockCaption = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\tconst hasParentPattern = !! context[ 'pattern/overrides' ];\n\t\t\tconst urlBindingSource = getBlockBindingsSource(\n\t\t\t\turlBinding?.source\n\t\t\t);\n\t\t\tconst altBindingSource = getBlockBindingsSource(\n\t\t\t\taltBinding?.source\n\t\t\t);\n\t\t\tconst titleBindingSource = getBlockBindingsSource(\n\t\t\t\ttitleBinding?.source\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\t! urlBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: urlBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockHrefControls:\n\t\t\t\t\t// Disable editing the link of the URL if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the link on the frontend.\n\t\t\t\t\thasParentPattern || arePatternOverridesEnabled,\n\t\t\t\tlockCaption:\n\t\t\t\t\t// Disable editing the caption if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the caption on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\t! altBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: altBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockAltControlsMessage: altBindingSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\taltBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\t! titleBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: titleBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockTitleControlsMessage: titleBindingSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\ttitleBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tarePatternOverridesEnabled,\n\t\t\tcontext,\n\t\t\tisSingleSelected,\n\t\t\tmetadata?.bindings,\n\t\t]\n\t);\n\n\tconst showUrlInput =\n\t\tisSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockHrefControls &&\n\t\t! lockUrlControls;\n\n\tconst showCoverControls = isSingleSelected && canInsertCover;\n\n\tconst showBlockControls = showUrlInput || allowCrop || showCoverControls;\n\n\tconst mediaReplaceFlow = isSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockUrlControls && (\n\t\t\t// For contentOnly mode, put this button in its own area so it has borders around it.\n\t\t\t<BlockControls group={ isContentOnlyMode ? 'inline' : 'other' }>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tname={ ! url ? __( 'Add image' ) : __( 'Replace' ) }\n\t\t\t\t\tonReset={ () => onSelectImage( undefined ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ showBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ showUrlInput && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t\tshowLightboxSetting={ showLightboxSetting }\n\t\t\t\t\t\t\tlightboxEnabled={ lightboxChecked }\n\t\t\t\t\t\t\tonSetLightbox={ onSetLightbox }\n\t\t\t\t\t\t\tresetLightbox={ resetLightbox }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ allowCrop && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showCoverControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload to Media Library' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isContentOnlyMode && (\n\t\t\t\t// Add some extra controls for content attributes when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit these attributes.\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ContentOnlyControls\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tlockAltControls={ lockAltControls }\n\t\t\t\t\t\tlockAltControlsMessage={ lockAltControlsMessage }\n\t\t\t\t\t\tlockTitleControls={ lockTitleControls }\n\t\t\t\t\t\tlockTitleControlsMessage={ lockTitleControlsMessage }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ isSingleSelected && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! alt }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\treadOnly={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ dimensionsControl }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\treadOnly={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tconst { postType, postId, queryId } = context;\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\n\tlet img =\n\t\ttemporaryURL && hasImageErrored ? (\n\t\t\t// Show a placeholder during upload when the blob URL can't be loaded. This can\n\t\t\t// happen when the user uploads a HEIC image in a browser that doesn't support them.\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"wp-block-image__placeholder\"\n\t\t\t\twithIllustration\n\t\t\t>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t) : (\n\t\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t\t// should direct focus to block.\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\t\talt={ defaultedAlt }\n\t\t\t\t\tonError={ onImageError }\n\t\t\t\t\tonLoad={ onImageLoad }\n\t\t\t\t\tref={ setRefs }\n\t\t\t\t\tclassName={ borderProps.className }\n\t\t\t\t\twidth={ naturalWidth }\n\t\t\t\t\theight={ naturalHeight }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\taspectRatio,\n\t\t\t\t\t\t...( resizeDelta\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\twidth: pixelSize.width + resizeDelta.width,\n\t\t\t\t\t\t\t\t\theight:\n\t\t\t\t\t\t\t\t\t\tpixelSize.height + resizeDelta.height,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: { width, height } ),\n\t\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ temporaryURL && <Spinner /> }\n\t\t\t</>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\t{ ...pixelSize }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else {\n\t\timg = <ImageWrapper href={ href }>{ img }</ImageWrapper>;\n\t}\n\n\tlet resizableBox;\n\tif (\n\t\tisResizable &&\n\t\tisSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! SIZED_LAYOUTS.includes( parentLayoutType )\n\t) {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = pixelSize.width / pixelSize.height;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\t\tconst maxResizeWidth = maxContentWidth || maxWidthBuffer;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\t\tresizableBox = (\n\t\t\t<ResizableBox\n\t\t\t\tref={ effectResizeableBoxPlacement }\n\t\t\t\tstyle={ {\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t// To match the vertical-align: bottom of the img (from style.scss)\n\t\t\t\t\t// syncs the top with the img. This matters when the img height is\n\t\t\t\t\t// less than the line-height.\n\t\t\t\t\tinset: `${ offsetTop }px 0 0 0`,\n\t\t\t\t} }\n\t\t\t\tsize={ pixelSize }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxResizeWidth }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxResizeWidth / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResize={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetResizeDelta( delta );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\tsetResizeDelta( null );\n\t\t\t\t\tsetPixelSize( ( current ) => ( {\n\t\t\t\t\t\twidth: current.width + delta.width,\n\t\t\t\t\t\theight: current.height + delta.height,\n\t\t\t\t\t} ) );\n\n\t\t\t\t\t// Clear hardcoded width if the resized width is close to the max-content width.\n\t\t\t\t\tif (\n\t\t\t\t\t\tmaxContentWidth &&\n\t\t\t\t\t\t// Only do this if the image is bigger than the container to prevent it from being squished.\n\t\t\t\t\t\t// TODO: Remove this check if the image support setting 100% width.\n\t\t\t\t\t\tnaturalWidth >= maxContentWidth &&\n\t\t\t\t\t\tMath.abs( elt.offsetWidth - maxContentWidth ) < 10\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ mediaReplaceFlow }\n\t\t\t\t{ /* Add all controls if the image attributes are connected. */ }\n\t\t\t\t{ metadata?.bindings ? controls : sizeControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Set the post's featured image with the current image.\n\t */\n\tconst setPostFeatureImage = () => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tfeatured_media: id,\n\t\t} );\n\t\tcreateSuccessNotice( __( 'Post featured image updated.' ), {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst featuredImageControl = (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds } ) =>\n\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t! isDescendentOfQueryLoop &&\n\t\t\t\tpostId &&\n\t\t\t\tid &&\n\t\t\t\tclientId === selectedClientIds[ 0 ] && (\n\t\t\t\t\t<MenuItem onClick={ setPostFeatureImage }>\n\t\t\t\t\t\t{ __( 'Set as featured image' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockSettingsMenuControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ mediaReplaceFlow }\n\t\t\t{ controls }\n\t\t\t{ featuredImageControl }\n\t\t\t{ img }\n\t\t\t{ resizableBox }\n\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={\n\t\t\t\t\tisSingleSelected &&\n\t\t\t\t\thasNonContentControls &&\n\t\t\t\t\t! arePatternOverridesEnabled\n\t\t\t\t}\n\t\t\t\treadOnly={ lockCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blob","require","_components","_compose","_data","_blockEditor","_element","_i18n","_url","_blocks","_icons","_notices","_coreData","_lockUnlock","_util","_edit","_caption","_hooks","_constants","_utils","_jsxRuntime","DimensionsTool","ResolutionTool","unlock","blockEditorPrivateApis","scaleOptions","value","label","_x","help","__","WRITEMODE_POPOVER_PROPS","placement","ImageWrapper","href","children","jsx","onClick","event","preventDefault","style","pointerEvents","cursor","display","ContentOnlyControls","attributes","setAttributes","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","popoverAnchor","setPopoverAnchor","useState","isAltDialogOpen","setIsAltDialogOpen","isTitleDialogOpen","setIsTitleDialogOpen","jsxs","Fragment","ToolbarItem","ref","toggleProps","DropdownMenu","icon","chevronDown","description","popoverProps","onClose","MenuItem","Popover","anchor","offset","variant","className","TextareaControl","alt","onChange","disabled","ExternalLink","__nextHasNoMarginBottom","TextControl","__next40pxDefaultSize","title","Image","temporaryURL","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","context","clientId","blockEditingMode","parentLayoutType","maxContentWidth","url","align","id","rel","linkClass","linkDestination","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","imageElement","setImageElement","resizeDelta","setResizeDelta","pixelSize","setPixelSize","offsetTop","setOffsetTop","setResizeObserved","useResizeObserver","entry","box","borderBoxSize","inlineSize","blockSize","target","effectResizeableBoxPlacement","useCallback","_imageElement$offsetT","setRefs","useMergeRefs","allowResize","image","useSelect","select","coreStore","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","getSettings","blockEditorStore","rootClientId","settings","getBlock","replaceBlocks","toggleSelection","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","editEntityRecord","isLargeViewport","useViewportMatch","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","hasImageErrored","setHasImageErrored","hasNonContentControls","isContentOnlyMode","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","useEffect","isExternalImage","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","useMemo","undefined","complete","onImageError","embedBlock","createUpgradedEmbedBlock","onImageLoad","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","resetLightbox","allowEditing","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","isBlobURL","type","allowedTypes","ALLOWED_MEDIA_TYPES","onError","message","canEditImage","allowCrop","switchToCover","switchToBlockType","dimensionsUnitsOptions","useCustomUnits","availableUnits","useSettings","showLightboxSetting","lightboxChecked","dropdownMenuProps","useToolsPanelDropdownMenuProps","dimensionsControl","SIZED_LAYOUTS","newAspectRatio","defaultAspectRatio","tools","newWidth","newHeight","newScale","defaultScale","unitsOptions","resetAll","sizeControls","InspectorControls","__experimentalToolsPanel","arePatternOverridesEnabled","bindings","__default","source","lockUrlControls","lockHrefControls","lockCaption","urlBinding","altBinding","titleBinding","hasParentPattern","urlBindingSource","getBlockBindingsSource","altBindingSource","titleBindingSource","canUserEditValue","args","sprintf","showUrlInput","showCoverControls","showBlockControls","mediaReplaceFlow","BlockControls","group","MediaReplaceFlow","mediaId","mediaURL","accept","onSelect","onReset","controls","__experimentalImageURLInputUI","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","ToolbarButton","crop","overlayText","ToolbarGroup","upload","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","readOnly","length","defaultValue","DEFAULT_MEDIA_SIZE_SLUG","options","filename","getFilename","defaultedAlt","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","isRounded","postType","postId","queryId","isDescendentOfQueryLoop","Number","isFinite","Placeholder","withIllustration","Spinner","src","onLoad","objectFit","__experimentalImageEditor","onSaveImage","imageAttributes","onFinishEditing","resizableBox","numericRatio","evalAspectRatio","customRatio","naturalRatio","ratio","minWidth","MIN_SIZE","minHeight","maxWidthBuffer","maxResizeWidth","showRightHandle","showLeftHandle","isRTL","ResizableBox","position","inset","size","maxHeight","lockAspectRatio","top","right","bottom","left","onResizeStart","onResize","direction","elt","delta","onResizeStop","current","Math","abs","offsetWidth","String","resizeRatio","setPostFeatureImage","featured_media","featuredImageControl","BlockSettingsMenuControls","selectedClientIds","Caption","isSelected","showToolbarButton"],"sources":["@wordpress/block-library/src/image/image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tPlaceholder,\n\tMenuItem,\n\tToolbarItem,\n\tDropdownMenu,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tuseMergeRefs,\n\tuseResizeObserver,\n\tuseViewportMatch,\n} from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockSettingsMenuControls,\n} from '@wordpress/block-editor';\nimport { useCallback, useEffect, useMemo, useState } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport { getBlockBindingsSource, switchToBlockType } from '@wordpress/blocks';\nimport { crop, overlayText, upload, chevronDown } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport {\n\tMIN_SIZE,\n\tALLOWED_MEDIA_TYPES,\n\tSIZED_LAYOUTS,\n\tDEFAULT_MEDIA_SIZE_SLUG,\n} from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\nconst WRITEMODE_POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// and remove pointer events. Safari needs the display property.\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nfunction ContentOnlyControls( {\n\tattributes,\n\tsetAttributes,\n\tlockAltControls,\n\tlockAltControlsMessage,\n\tlockTitleControls,\n\tlockTitleControlsMessage,\n} ) {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst [ isAltDialogOpen, setIsAltDialogOpen ] = useState( false );\n\tconst [ isTitleDialogOpen, setIsTitleDialogOpen ] = useState( false );\n\treturn (\n\t\t<>\n\t\t\t<ToolbarItem ref={ setPopoverAnchor }>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\tlabel={ __( 'More' ) }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t\tdescription: __( 'Displays more controls.' ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tpopoverProps={ WRITEMODE_POPOVER_PROPS }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsAltDialogOpen( true );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ _x(\n\t\t\t\t\t\t\t\t\t\t'Alternative text',\n\t\t\t\t\t\t\t\t\t\t'Alternative text for an image. Block toolbar label, a low character count is preferred.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsTitleDialogOpen( true );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Title text' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t\t{ isAltDialogOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonClose={ () => setIsAltDialogOpen( false ) }\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-image__toolbar_content_textarea__container\">\n\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tvalue={ attributes.alt || '' }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t\t{ isTitleDialogOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonClose={ () => setIsTitleDialogOpen( false ) }\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-image__toolbar_content_textarea__container\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\tvalue={ attributes.title || '' }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\ttitle: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSingleSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n\tparentLayoutType,\n\tmaxContentWidth,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\tconst [ imageElement, setImageElement ] = useState();\n\tconst [ resizeDelta, setResizeDelta ] = useState( null );\n\tconst [ pixelSize, setPixelSize ] = useState( {} );\n\tconst [ offsetTop, setOffsetTop ] = useState( 0 );\n\tconst setResizeObserved = useResizeObserver( ( [ entry ] ) => {\n\t\tif ( ! resizeDelta ) {\n\t\t\tconst [ box ] = entry.borderBoxSize;\n\t\t\tsetPixelSize( { width: box.inlineSize, height: box.blockSize } );\n\t\t}\n\t\t// This is usually 0 unless the image height is less than the line-height.\n\t\tsetOffsetTop( entry.target.offsetTop );\n\t} );\n\tconst effectResizeableBoxPlacement = useCallback( () => {\n\t\tsetOffsetTop( imageElement?.offsetTop ?? 0 );\n\t}, [ imageElement ] );\n\tconst setRefs = useMergeRefs( [ setImageElement, setResizeObserved ] );\n\tconst { allowResize = true } = context;\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getMedia( id, { context: 'view' } )\n\t\t\t\t: null,\n\t\t[ id, isSingleSelected ]\n\t);\n\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst [ hasImageErrored, setHasImageErrored ] = useState( false );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport;\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSingleSelected ||\n\t\t\t! getSettings().mediaUpload\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSingleSelected, externalBlob, getSettings ] );\n\n\t// Get naturalWidth and naturalHeight from image, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageElement?.naturalWidth || loadedNaturalWidth || undefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageElement?.naturalHeight || loadedNaturalHeight || undefined,\n\t\t};\n\t}, [ loadedNaturalWidth, loadedNaturalHeight, imageElement?.complete ] );\n\n\tfunction onImageError() {\n\t\tsetHasImageErrored( true );\n\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onImageLoad( event ) {\n\t\tsetHasImageErrored( false );\n\t\tsetLoadedNaturalSize( {\n\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t} );\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetLightbox( enable ) {\n\t\tif ( enable && ! lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: true },\n\t\t\t} );\n\t\t} else if ( ! enable && lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction resetLightbox() {\n\t\t// When deleting a link from an image while lightbox settings\n\t\t// are enabled by default, we should disable the lightbox,\n\t\t// otherwise the resulting UX looks like a mistake.\n\t\t// See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.\n\t\tif ( lightboxSetting?.enabled && lightboxSetting?.allowEditing ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop =\n\t\tisSingleSelected &&\n\t\tcanEditImage &&\n\t\t! isEditingImage &&\n\t\t! isContentOnlyMode;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxSetting =\n\t\t// If a block-level override is set, we should give users the option to\n\t\t// remove that override, even if the lightbox UI is disabled in the settings.\n\t\t( !! lightbox && lightbox?.enabled !== lightboxSetting?.enabled ) ||\n\t\tlightboxSetting?.allowEditing;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst dimensionsControl =\n\t\tisResizable &&\n\t\t( SIZED_LAYOUTS.includes( parentLayoutType ) ? (\n\t\t\t<DimensionsTool\n\t\t\t\tvalue={ { aspectRatio } }\n\t\t\t\tonChange={ ( { aspectRatio: newAspectRatio } ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t\t\tscale: 'cover',\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\t\ttools={ [ 'aspectRatio' ] }\n\t\t\t/>\n\t\t) : (\n\t\t\t<DimensionsTool\n\t\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\t\tonChange={ ( {\n\t\t\t\t\twidth: newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} ) => {\n\t\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\t\theight: newHeight,\n\t\t\t\t\t\tscale: newScale,\n\t\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdefaultScale=\"cover\"\n\t\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\t\tscaleOptions={ scaleOptions }\n\t\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t\t/>\n\t\t) );\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst arePatternOverridesEnabled =\n\t\tmetadata?.bindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockHrefControls = false,\n\t\tlockAltControls = false,\n\t\tlockAltControlsMessage,\n\t\tlockTitleControls = false,\n\t\tlockTitleControlsMessage,\n\t\tlockCaption = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\tconst hasParentPattern = !! context[ 'pattern/overrides' ];\n\t\t\tconst urlBindingSource = getBlockBindingsSource(\n\t\t\t\turlBinding?.source\n\t\t\t);\n\t\t\tconst altBindingSource = getBlockBindingsSource(\n\t\t\t\taltBinding?.source\n\t\t\t);\n\t\t\tconst titleBindingSource = getBlockBindingsSource(\n\t\t\t\ttitleBinding?.source\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\t! urlBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: urlBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockHrefControls:\n\t\t\t\t\t// Disable editing the link of the URL if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the link on the frontend.\n\t\t\t\t\thasParentPattern || arePatternOverridesEnabled,\n\t\t\t\tlockCaption:\n\t\t\t\t\t// Disable editing the caption if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the caption on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\t! altBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: altBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockAltControlsMessage: altBindingSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\taltBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\t! titleBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: titleBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockTitleControlsMessage: titleBindingSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\ttitleBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tarePatternOverridesEnabled,\n\t\t\tcontext,\n\t\t\tisSingleSelected,\n\t\t\tmetadata?.bindings,\n\t\t]\n\t);\n\n\tconst showUrlInput =\n\t\tisSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockHrefControls &&\n\t\t! lockUrlControls;\n\n\tconst showCoverControls = isSingleSelected && canInsertCover;\n\n\tconst showBlockControls = showUrlInput || allowCrop || showCoverControls;\n\n\tconst mediaReplaceFlow = isSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockUrlControls && (\n\t\t\t// For contentOnly mode, put this button in its own area so it has borders around it.\n\t\t\t<BlockControls group={ isContentOnlyMode ? 'inline' : 'other' }>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tname={ ! url ? __( 'Add image' ) : __( 'Replace' ) }\n\t\t\t\t\tonReset={ () => onSelectImage( undefined ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ showBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ showUrlInput && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t\tshowLightboxSetting={ showLightboxSetting }\n\t\t\t\t\t\t\tlightboxEnabled={ lightboxChecked }\n\t\t\t\t\t\t\tonSetLightbox={ onSetLightbox }\n\t\t\t\t\t\t\tresetLightbox={ resetLightbox }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ allowCrop && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showCoverControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload to Media Library' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isContentOnlyMode && (\n\t\t\t\t// Add some extra controls for content attributes when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit these attributes.\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ContentOnlyControls\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tlockAltControls={ lockAltControls }\n\t\t\t\t\t\tlockAltControlsMessage={ lockAltControlsMessage }\n\t\t\t\t\t\tlockTitleControls={ lockTitleControls }\n\t\t\t\t\t\tlockTitleControlsMessage={ lockTitleControlsMessage }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ isSingleSelected && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! alt }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\treadOnly={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ dimensionsControl }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tdefaultValue={ DEFAULT_MEDIA_SIZE_SLUG }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\treadOnly={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tconst { postType, postId, queryId } = context;\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\n\tlet img =\n\t\ttemporaryURL && hasImageErrored ? (\n\t\t\t// Show a placeholder during upload when the blob URL can't be loaded. This can\n\t\t\t// happen when the user uploads a HEIC image in a browser that doesn't support them.\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"wp-block-image__placeholder\"\n\t\t\t\twithIllustration\n\t\t\t>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t) : (\n\t\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t\t// should direct focus to block.\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\t\talt={ defaultedAlt }\n\t\t\t\t\tonError={ onImageError }\n\t\t\t\t\tonLoad={ onImageLoad }\n\t\t\t\t\tref={ setRefs }\n\t\t\t\t\tclassName={ borderProps.className }\n\t\t\t\t\twidth={ naturalWidth }\n\t\t\t\t\theight={ naturalHeight }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\taspectRatio,\n\t\t\t\t\t\t...( resizeDelta\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\twidth: pixelSize.width + resizeDelta.width,\n\t\t\t\t\t\t\t\t\theight:\n\t\t\t\t\t\t\t\t\t\tpixelSize.height + resizeDelta.height,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: { width, height } ),\n\t\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ temporaryURL && <Spinner /> }\n\t\t\t</>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\t{ ...pixelSize }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else {\n\t\timg = <ImageWrapper href={ href }>{ img }</ImageWrapper>;\n\t}\n\n\tlet resizableBox;\n\tif (\n\t\tisResizable &&\n\t\tisSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! SIZED_LAYOUTS.includes( parentLayoutType )\n\t) {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = pixelSize.width / pixelSize.height;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\t\tconst maxResizeWidth = maxContentWidth || maxWidthBuffer;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\t\tresizableBox = (\n\t\t\t<ResizableBox\n\t\t\t\tref={ effectResizeableBoxPlacement }\n\t\t\t\tstyle={ {\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t// To match the vertical-align: bottom of the img (from style.scss)\n\t\t\t\t\t// syncs the top with the img. This matters when the img height is\n\t\t\t\t\t// less than the line-height.\n\t\t\t\t\tinset: `${ offsetTop }px 0 0 0`,\n\t\t\t\t} }\n\t\t\t\tsize={ pixelSize }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxResizeWidth }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxResizeWidth / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResize={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetResizeDelta( delta );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\tsetResizeDelta( null );\n\t\t\t\t\tsetPixelSize( ( current ) => ( {\n\t\t\t\t\t\twidth: current.width + delta.width,\n\t\t\t\t\t\theight: current.height + delta.height,\n\t\t\t\t\t} ) );\n\n\t\t\t\t\t// Clear hardcoded width if the resized width is close to the max-content width.\n\t\t\t\t\tif (\n\t\t\t\t\t\tmaxContentWidth &&\n\t\t\t\t\t\t// Only do this if the image is bigger than the container to prevent it from being squished.\n\t\t\t\t\t\t// TODO: Remove this check if the image support setting 100% width.\n\t\t\t\t\t\tnaturalWidth >= maxContentWidth &&\n\t\t\t\t\t\tMath.abs( elt.offsetWidth - maxContentWidth ) < 10\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ mediaReplaceFlow }\n\t\t\t\t{ /* Add all controls if the image attributes are connected. */ }\n\t\t\t\t{ metadata?.bindings ? controls : sizeControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Set the post's featured image with the current image.\n\t */\n\tconst setPostFeatureImage = () => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tfeatured_media: id,\n\t\t} );\n\t\tcreateSuccessNotice( __( 'Post featured image updated.' ), {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst featuredImageControl = (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds } ) =>\n\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t! isDescendentOfQueryLoop &&\n\t\t\t\tpostId &&\n\t\t\t\tid &&\n\t\t\t\tclientId === selectedClientIds[ 0 ] && (\n\t\t\t\t\t<MenuItem onClick={ setPostFeatureImage }>\n\t\t\t\t\t\t{ __( 'Set as featured image' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockSettingsMenuControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ mediaReplaceFlow }\n\t\t\t{ controls }\n\t\t\t{ featuredImageControl }\n\t\t\t{ img }\n\t\t\t{ resizableBox }\n\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={\n\t\t\t\t\tisSingleSelected &&\n\t\t\t\t\thasNonContentControls &&\n\t\t\t\t\t! arePatternOverridesEnabled\n\t\t\t\t}\n\t\t\t\treadOnly={ lockCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}