@wordpress/block-library 8.34.0 → 8.35.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 (721) hide show
  1. package/CHANGELOG.md +8 -3
  2. package/build/audio/edit.js +2 -2
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/avatar/edit.js +2 -2
  5. package/build/avatar/edit.js.map +1 -1
  6. package/build/block/edit.js +23 -165
  7. package/build/block/edit.js.map +1 -1
  8. package/build/button/deprecated.js +16 -16
  9. package/build/button/deprecated.js.map +1 -1
  10. package/build/button/edit.js +3 -7
  11. package/build/button/edit.js.map +1 -1
  12. package/build/button/index.js +1 -0
  13. package/build/button/index.js.map +1 -1
  14. package/build/button/save.js +3 -3
  15. package/build/button/save.js.map +1 -1
  16. package/build/buttons/deprecated.js +2 -2
  17. package/build/buttons/deprecated.js.map +1 -1
  18. package/build/buttons/edit.js +2 -2
  19. package/build/buttons/edit.js.map +1 -1
  20. package/build/buttons/save.js +2 -2
  21. package/build/buttons/save.js.map +1 -1
  22. package/build/categories/edit.js +2 -2
  23. package/build/categories/edit.js.map +1 -1
  24. package/build/column/deprecated.js +2 -2
  25. package/build/column/deprecated.js.map +1 -1
  26. package/build/column/edit.js +2 -2
  27. package/build/column/edit.js.map +1 -1
  28. package/build/column/save.js +2 -2
  29. package/build/column/save.js.map +1 -1
  30. package/build/columns/deprecated.js +3 -3
  31. package/build/columns/deprecated.js.map +1 -1
  32. package/build/columns/edit.js +2 -2
  33. package/build/columns/edit.js.map +1 -1
  34. package/build/columns/save.js +2 -2
  35. package/build/columns/save.js.map +1 -1
  36. package/build/comment-author-name/edit.js +2 -2
  37. package/build/comment-author-name/edit.js.map +1 -1
  38. package/build/comment-content/edit.js +2 -2
  39. package/build/comment-content/edit.js.map +1 -1
  40. package/build/comment-edit-link/edit.js +2 -2
  41. package/build/comment-edit-link/edit.js.map +1 -1
  42. package/build/comment-reply-link/edit.js +2 -2
  43. package/build/comment-reply-link/edit.js.map +1 -1
  44. package/build/comments/edit/comments-legacy.js +2 -2
  45. package/build/comments/edit/comments-legacy.js.map +1 -1
  46. package/build/comments-title/edit.js +2 -2
  47. package/build/comments-title/edit.js.map +1 -1
  48. package/build/cover/deprecated.js +38 -38
  49. package/build/cover/deprecated.js.map +1 -1
  50. package/build/cover/edit/index.js +6 -6
  51. package/build/cover/edit/index.js.map +1 -1
  52. package/build/cover/edit/resizable-cover-popover.js +2 -2
  53. package/build/cover/edit/resizable-cover-popover.js.map +1 -1
  54. package/build/cover/edit.native.js +2 -2
  55. package/build/cover/edit.native.js.map +1 -1
  56. package/build/cover/save.js +5 -5
  57. package/build/cover/save.js.map +1 -1
  58. package/build/embed/deprecated.js +3 -3
  59. package/build/embed/deprecated.js.map +1 -1
  60. package/build/embed/edit.js +2 -2
  61. package/build/embed/edit.js.map +1 -1
  62. package/build/embed/edit.native.js +2 -2
  63. package/build/embed/edit.native.js.map +1 -1
  64. package/build/embed/embed-preview.js +3 -3
  65. package/build/embed/embed-preview.js.map +1 -1
  66. package/build/embed/embed-preview.native.js +2 -2
  67. package/build/embed/embed-preview.native.js.map +1 -1
  68. package/build/embed/icons.js +7 -1
  69. package/build/embed/icons.js.map +1 -1
  70. package/build/embed/save.js +2 -2
  71. package/build/embed/save.js.map +1 -1
  72. package/build/embed/util.js +10 -8
  73. package/build/embed/util.js.map +1 -1
  74. package/build/embed/variations.js +9 -0
  75. package/build/embed/variations.js.map +1 -1
  76. package/build/file/deprecated.js +2 -2
  77. package/build/file/deprecated.js.map +1 -1
  78. package/build/file/edit.js +3 -3
  79. package/build/file/edit.js.map +1 -1
  80. package/build/file/save.js +2 -2
  81. package/build/file/save.js.map +1 -1
  82. package/build/form-input/deprecated.js +3 -3
  83. package/build/form-input/deprecated.js.map +1 -1
  84. package/build/form-input/edit.js +4 -4
  85. package/build/form-input/edit.js.map +1 -1
  86. package/build/form-input/save.js +3 -3
  87. package/build/form-input/save.js.map +1 -1
  88. package/build/form-submission-notification/edit.js +2 -2
  89. package/build/form-submission-notification/edit.js.map +1 -1
  90. package/build/form-submission-notification/save.js +2 -2
  91. package/build/form-submission-notification/save.js.map +1 -1
  92. package/build/gallery/deprecated.js +3 -3
  93. package/build/gallery/deprecated.js.map +1 -1
  94. package/build/gallery/edit.js +2 -2
  95. package/build/gallery/edit.js.map +1 -1
  96. package/build/gallery/gallery.js +2 -2
  97. package/build/gallery/gallery.js.map +1 -1
  98. package/build/gallery/save.js +3 -3
  99. package/build/gallery/save.js.map +1 -1
  100. package/build/gallery/v1/gallery-image.js +2 -2
  101. package/build/gallery/v1/gallery-image.js.map +1 -1
  102. package/build/gallery/v1/gallery.js +3 -3
  103. package/build/gallery/v1/gallery.js.map +1 -1
  104. package/build/gallery/v1/save.js +3 -3
  105. package/build/gallery/v1/save.js.map +1 -1
  106. package/build/group/deprecated.js +4 -4
  107. package/build/group/deprecated.js.map +1 -1
  108. package/build/heading/deprecated.js +6 -6
  109. package/build/heading/deprecated.js.map +1 -1
  110. package/build/heading/edit.js +2 -19
  111. package/build/heading/edit.js.map +1 -1
  112. package/build/heading/edit.native.js +2 -2
  113. package/build/heading/edit.native.js.map +1 -1
  114. package/build/heading/index.js +1 -0
  115. package/build/heading/index.js.map +1 -1
  116. package/build/heading/save.js +2 -2
  117. package/build/heading/save.js.map +1 -1
  118. package/build/home-link/edit.js +2 -2
  119. package/build/home-link/edit.js.map +1 -1
  120. package/build/html/edit.js +0 -2
  121. package/build/html/edit.js.map +1 -1
  122. package/build/image/deprecated.js +10 -10
  123. package/build/image/deprecated.js.map +1 -1
  124. package/build/image/edit.js +7 -5
  125. package/build/image/edit.js.map +1 -1
  126. package/build/image/image.js +5 -3
  127. package/build/image/image.js.map +1 -1
  128. package/build/image/save.js +3 -3
  129. package/build/image/save.js.map +1 -1
  130. package/build/latest-posts/edit.js +5 -5
  131. package/build/latest-posts/edit.js.map +1 -1
  132. package/build/list/deprecated.js +90 -1
  133. package/build/list/deprecated.js.map +1 -1
  134. package/build/list/index.js +0 -2
  135. package/build/list/index.js.map +1 -1
  136. package/build/list-item/edit.js +1 -8
  137. package/build/list-item/edit.js.map +1 -1
  138. package/build/list-item/index.js +2 -1
  139. package/build/list-item/index.js.map +1 -1
  140. package/build/media-text/deprecated.js +10 -10
  141. package/build/media-text/deprecated.js.map +1 -1
  142. package/build/media-text/edit.js +2 -2
  143. package/build/media-text/edit.js.map +1 -1
  144. package/build/media-text/media-container.js +2 -2
  145. package/build/media-text/media-container.js.map +1 -1
  146. package/build/media-text/save.js +3 -3
  147. package/build/media-text/save.js.map +1 -1
  148. package/build/navigation/edit/index.js +3 -3
  149. package/build/navigation/edit/index.js.map +1 -1
  150. package/build/navigation/edit/responsive-wrapper.js +3 -3
  151. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  152. package/build/navigation/edit/utils.js +2 -2
  153. package/build/navigation/edit/utils.js.map +1 -1
  154. package/build/navigation-link/edit.js +3 -3
  155. package/build/navigation-link/edit.js.map +1 -1
  156. package/build/navigation-submenu/edit.js +2 -2
  157. package/build/navigation-submenu/edit.js.map +1 -1
  158. package/build/page-list/edit.js +2 -2
  159. package/build/page-list/edit.js.map +1 -1
  160. package/build/page-list-item/edit.js +3 -3
  161. package/build/page-list-item/edit.js.map +1 -1
  162. package/build/paragraph/deprecated.js +6 -6
  163. package/build/paragraph/deprecated.js.map +1 -1
  164. package/build/paragraph/edit.js +2 -18
  165. package/build/paragraph/edit.js.map +1 -1
  166. package/build/paragraph/index.js +1 -0
  167. package/build/paragraph/index.js.map +1 -1
  168. package/build/paragraph/save.js +2 -2
  169. package/build/paragraph/save.js.map +1 -1
  170. package/build/paragraph/transforms.js +1 -0
  171. package/build/paragraph/transforms.js.map +1 -1
  172. package/build/pattern/edit.js +1 -1
  173. package/build/pattern/edit.js.map +1 -1
  174. package/build/post-author/edit.js +2 -2
  175. package/build/post-author/edit.js.map +1 -1
  176. package/build/post-author-biography/edit.js +2 -2
  177. package/build/post-author-biography/edit.js.map +1 -1
  178. package/build/post-author-name/edit.js +2 -2
  179. package/build/post-author-name/edit.js.map +1 -1
  180. package/build/post-comments-count/edit.js +2 -2
  181. package/build/post-comments-count/edit.js.map +1 -1
  182. package/build/post-comments-form/edit.js +2 -2
  183. package/build/post-comments-form/edit.js.map +1 -1
  184. package/build/post-comments-form/form.js +2 -2
  185. package/build/post-comments-form/form.js.map +1 -1
  186. package/build/post-comments-link/edit.js +2 -2
  187. package/build/post-comments-link/edit.js.map +1 -1
  188. package/build/post-date/edit.js +2 -2
  189. package/build/post-date/edit.js.map +1 -1
  190. package/build/post-excerpt/edit.js +3 -3
  191. package/build/post-excerpt/edit.js.map +1 -1
  192. package/build/post-featured-image/dimension-controls.js +20 -28
  193. package/build/post-featured-image/dimension-controls.js.map +1 -1
  194. package/build/post-featured-image/edit.js +3 -3
  195. package/build/post-featured-image/edit.js.map +1 -1
  196. package/build/post-featured-image/overlay.js +2 -2
  197. package/build/post-featured-image/overlay.js.map +1 -1
  198. package/build/post-navigation-link/edit.js +2 -2
  199. package/build/post-navigation-link/edit.js.map +1 -1
  200. package/build/post-template/edit.js +6 -6
  201. package/build/post-template/edit.js.map +1 -1
  202. package/build/post-terms/edit.js +2 -2
  203. package/build/post-terms/edit.js.map +1 -1
  204. package/build/post-time-to-read/edit.js +3 -3
  205. package/build/post-time-to-read/edit.js.map +1 -1
  206. package/build/post-title/edit.js +2 -2
  207. package/build/post-title/edit.js.map +1 -1
  208. package/build/pullquote/deprecated.js +7 -7
  209. package/build/pullquote/deprecated.js.map +1 -1
  210. package/build/pullquote/edit.js +2 -2
  211. package/build/pullquote/edit.js.map +1 -1
  212. package/build/pullquote/save.js +2 -2
  213. package/build/pullquote/save.js.map +1 -1
  214. package/build/query-title/edit.js +2 -2
  215. package/build/query-title/edit.js.map +1 -1
  216. package/build/quote/deprecated.js +3 -3
  217. package/build/quote/deprecated.js.map +1 -1
  218. package/build/quote/edit.js +2 -2
  219. package/build/quote/edit.js.map +1 -1
  220. package/build/quote/save.js +2 -2
  221. package/build/quote/save.js.map +1 -1
  222. package/build/rss/edit.js +8 -6
  223. package/build/rss/edit.js.map +1 -1
  224. package/build/search/edit.js +6 -6
  225. package/build/search/edit.js.map +1 -1
  226. package/build/search/edit.native.js +2 -2
  227. package/build/search/edit.native.js.map +1 -1
  228. package/build/separator/deprecated.js +2 -2
  229. package/build/separator/deprecated.js.map +1 -1
  230. package/build/separator/edit.js +2 -2
  231. package/build/separator/edit.js.map +1 -1
  232. package/build/separator/save.js +2 -2
  233. package/build/separator/save.js.map +1 -1
  234. package/build/shortcode/edit.js +7 -10
  235. package/build/shortcode/edit.js.map +1 -1
  236. package/build/site-logo/edit.js +4 -4
  237. package/build/site-logo/edit.js.map +1 -1
  238. package/build/site-tagline/edit.js +2 -2
  239. package/build/site-tagline/edit.js.map +1 -1
  240. package/build/site-title/edit.js +2 -2
  241. package/build/site-title/edit.js.map +1 -1
  242. package/build/social-link/edit.js +3 -3
  243. package/build/social-link/edit.js.map +1 -1
  244. package/build/social-links/deprecated.js +2 -2
  245. package/build/social-links/deprecated.js.map +1 -1
  246. package/build/social-links/edit.js +2 -2
  247. package/build/social-links/edit.js.map +1 -1
  248. package/build/social-links/save.js +2 -2
  249. package/build/social-links/save.js.map +1 -1
  250. package/build/spacer/edit.js +3 -3
  251. package/build/spacer/edit.js.map +1 -1
  252. package/build/table/deprecated.js +8 -8
  253. package/build/table/deprecated.js.map +1 -1
  254. package/build/table/edit.js +3 -3
  255. package/build/table/edit.js.map +1 -1
  256. package/build/table/save.js +3 -3
  257. package/build/table/save.js.map +1 -1
  258. package/build/term-description/edit.js +2 -2
  259. package/build/term-description/edit.js.map +1 -1
  260. package/build/utils/caption.js +2 -2
  261. package/build/utils/caption.js.map +1 -1
  262. package/build/verse/deprecated.js +2 -2
  263. package/build/verse/deprecated.js.map +1 -1
  264. package/build/verse/edit.js +2 -2
  265. package/build/verse/edit.js.map +1 -1
  266. package/build/verse/save.js +2 -2
  267. package/build/verse/save.js.map +1 -1
  268. package/build/video/edit.js +2 -2
  269. package/build/video/edit.js.map +1 -1
  270. package/build-module/audio/edit.js +2 -2
  271. package/build-module/audio/edit.js.map +1 -1
  272. package/build-module/avatar/edit.js +2 -2
  273. package/build-module/avatar/edit.js.map +1 -1
  274. package/build-module/block/edit.js +27 -169
  275. package/build-module/block/edit.js.map +1 -1
  276. package/build-module/button/deprecated.js +16 -16
  277. package/build-module/button/deprecated.js.map +1 -1
  278. package/build-module/button/edit.js +3 -7
  279. package/build-module/button/edit.js.map +1 -1
  280. package/build-module/button/index.js +1 -0
  281. package/build-module/button/index.js.map +1 -1
  282. package/build-module/button/save.js +3 -3
  283. package/build-module/button/save.js.map +1 -1
  284. package/build-module/buttons/deprecated.js +2 -2
  285. package/build-module/buttons/deprecated.js.map +1 -1
  286. package/build-module/buttons/edit.js +2 -2
  287. package/build-module/buttons/edit.js.map +1 -1
  288. package/build-module/buttons/save.js +2 -2
  289. package/build-module/buttons/save.js.map +1 -1
  290. package/build-module/categories/edit.js +2 -2
  291. package/build-module/categories/edit.js.map +1 -1
  292. package/build-module/column/deprecated.js +2 -2
  293. package/build-module/column/deprecated.js.map +1 -1
  294. package/build-module/column/edit.js +2 -2
  295. package/build-module/column/edit.js.map +1 -1
  296. package/build-module/column/save.js +2 -2
  297. package/build-module/column/save.js.map +1 -1
  298. package/build-module/columns/deprecated.js +3 -3
  299. package/build-module/columns/deprecated.js.map +1 -1
  300. package/build-module/columns/edit.js +2 -2
  301. package/build-module/columns/edit.js.map +1 -1
  302. package/build-module/columns/save.js +2 -2
  303. package/build-module/columns/save.js.map +1 -1
  304. package/build-module/comment-author-name/edit.js +2 -2
  305. package/build-module/comment-author-name/edit.js.map +1 -1
  306. package/build-module/comment-content/edit.js +2 -2
  307. package/build-module/comment-content/edit.js.map +1 -1
  308. package/build-module/comment-edit-link/edit.js +2 -2
  309. package/build-module/comment-edit-link/edit.js.map +1 -1
  310. package/build-module/comment-reply-link/edit.js +2 -2
  311. package/build-module/comment-reply-link/edit.js.map +1 -1
  312. package/build-module/comments/edit/comments-legacy.js +2 -2
  313. package/build-module/comments/edit/comments-legacy.js.map +1 -1
  314. package/build-module/comments-title/edit.js +2 -2
  315. package/build-module/comments-title/edit.js.map +1 -1
  316. package/build-module/cover/deprecated.js +38 -38
  317. package/build-module/cover/deprecated.js.map +1 -1
  318. package/build-module/cover/edit/index.js +6 -6
  319. package/build-module/cover/edit/index.js.map +1 -1
  320. package/build-module/cover/edit/resizable-cover-popover.js +2 -2
  321. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
  322. package/build-module/cover/edit.native.js +2 -2
  323. package/build-module/cover/edit.native.js.map +1 -1
  324. package/build-module/cover/save.js +5 -5
  325. package/build-module/cover/save.js.map +1 -1
  326. package/build-module/embed/deprecated.js +3 -3
  327. package/build-module/embed/deprecated.js.map +1 -1
  328. package/build-module/embed/edit.js +2 -2
  329. package/build-module/embed/edit.js.map +1 -1
  330. package/build-module/embed/edit.native.js +2 -2
  331. package/build-module/embed/edit.native.js.map +1 -1
  332. package/build-module/embed/embed-preview.js +3 -3
  333. package/build-module/embed/embed-preview.js.map +1 -1
  334. package/build-module/embed/embed-preview.native.js +2 -2
  335. package/build-module/embed/embed-preview.native.js.map +1 -1
  336. package/build-module/embed/icons.js +6 -0
  337. package/build-module/embed/icons.js.map +1 -1
  338. package/build-module/embed/save.js +2 -2
  339. package/build-module/embed/save.js.map +1 -1
  340. package/build-module/embed/util.js +10 -8
  341. package/build-module/embed/util.js.map +1 -1
  342. package/build-module/embed/variations.js +10 -1
  343. package/build-module/embed/variations.js.map +1 -1
  344. package/build-module/file/deprecated.js +2 -2
  345. package/build-module/file/deprecated.js.map +1 -1
  346. package/build-module/file/edit.js +3 -3
  347. package/build-module/file/edit.js.map +1 -1
  348. package/build-module/file/save.js +2 -2
  349. package/build-module/file/save.js.map +1 -1
  350. package/build-module/form-input/deprecated.js +3 -3
  351. package/build-module/form-input/deprecated.js.map +1 -1
  352. package/build-module/form-input/edit.js +4 -4
  353. package/build-module/form-input/edit.js.map +1 -1
  354. package/build-module/form-input/save.js +3 -3
  355. package/build-module/form-input/save.js.map +1 -1
  356. package/build-module/form-submission-notification/edit.js +2 -2
  357. package/build-module/form-submission-notification/edit.js.map +1 -1
  358. package/build-module/form-submission-notification/save.js +2 -2
  359. package/build-module/form-submission-notification/save.js.map +1 -1
  360. package/build-module/gallery/deprecated.js +3 -3
  361. package/build-module/gallery/deprecated.js.map +1 -1
  362. package/build-module/gallery/edit.js +2 -2
  363. package/build-module/gallery/edit.js.map +1 -1
  364. package/build-module/gallery/gallery.js +2 -2
  365. package/build-module/gallery/gallery.js.map +1 -1
  366. package/build-module/gallery/save.js +3 -3
  367. package/build-module/gallery/save.js.map +1 -1
  368. package/build-module/gallery/v1/gallery-image.js +2 -2
  369. package/build-module/gallery/v1/gallery-image.js.map +1 -1
  370. package/build-module/gallery/v1/gallery.js +3 -3
  371. package/build-module/gallery/v1/gallery.js.map +1 -1
  372. package/build-module/gallery/v1/save.js +3 -3
  373. package/build-module/gallery/v1/save.js.map +1 -1
  374. package/build-module/group/deprecated.js +4 -4
  375. package/build-module/group/deprecated.js.map +1 -1
  376. package/build-module/heading/deprecated.js +6 -6
  377. package/build-module/heading/deprecated.js.map +1 -1
  378. package/build-module/heading/edit.js +2 -19
  379. package/build-module/heading/edit.js.map +1 -1
  380. package/build-module/heading/edit.native.js +2 -2
  381. package/build-module/heading/edit.native.js.map +1 -1
  382. package/build-module/heading/index.js +1 -0
  383. package/build-module/heading/index.js.map +1 -1
  384. package/build-module/heading/save.js +2 -2
  385. package/build-module/heading/save.js.map +1 -1
  386. package/build-module/home-link/edit.js +2 -2
  387. package/build-module/home-link/edit.js.map +1 -1
  388. package/build-module/html/edit.js +0 -2
  389. package/build-module/html/edit.js.map +1 -1
  390. package/build-module/image/deprecated.js +10 -10
  391. package/build-module/image/deprecated.js.map +1 -1
  392. package/build-module/image/edit.js +7 -5
  393. package/build-module/image/edit.js.map +1 -1
  394. package/build-module/image/image.js +5 -3
  395. package/build-module/image/image.js.map +1 -1
  396. package/build-module/image/save.js +3 -3
  397. package/build-module/image/save.js.map +1 -1
  398. package/build-module/latest-posts/edit.js +6 -6
  399. package/build-module/latest-posts/edit.js.map +1 -1
  400. package/build-module/list/deprecated.js +90 -1
  401. package/build-module/list/deprecated.js.map +1 -1
  402. package/build-module/list/index.js +0 -2
  403. package/build-module/list/index.js.map +1 -1
  404. package/build-module/list-item/edit.js +2 -9
  405. package/build-module/list-item/edit.js.map +1 -1
  406. package/build-module/list-item/index.js +2 -1
  407. package/build-module/list-item/index.js.map +1 -1
  408. package/build-module/media-text/deprecated.js +10 -10
  409. package/build-module/media-text/deprecated.js.map +1 -1
  410. package/build-module/media-text/edit.js +2 -2
  411. package/build-module/media-text/edit.js.map +1 -1
  412. package/build-module/media-text/media-container.js +2 -2
  413. package/build-module/media-text/media-container.js.map +1 -1
  414. package/build-module/media-text/save.js +3 -3
  415. package/build-module/media-text/save.js.map +1 -1
  416. package/build-module/navigation/edit/index.js +3 -3
  417. package/build-module/navigation/edit/index.js.map +1 -1
  418. package/build-module/navigation/edit/responsive-wrapper.js +3 -3
  419. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  420. package/build-module/navigation/edit/utils.js +2 -2
  421. package/build-module/navigation/edit/utils.js.map +1 -1
  422. package/build-module/navigation-link/edit.js +3 -3
  423. package/build-module/navigation-link/edit.js.map +1 -1
  424. package/build-module/navigation-submenu/edit.js +2 -2
  425. package/build-module/navigation-submenu/edit.js.map +1 -1
  426. package/build-module/page-list/edit.js +2 -2
  427. package/build-module/page-list/edit.js.map +1 -1
  428. package/build-module/page-list-item/edit.js +3 -3
  429. package/build-module/page-list-item/edit.js.map +1 -1
  430. package/build-module/paragraph/deprecated.js +6 -6
  431. package/build-module/paragraph/deprecated.js.map +1 -1
  432. package/build-module/paragraph/edit.js +2 -18
  433. package/build-module/paragraph/edit.js.map +1 -1
  434. package/build-module/paragraph/index.js +1 -0
  435. package/build-module/paragraph/index.js.map +1 -1
  436. package/build-module/paragraph/save.js +2 -2
  437. package/build-module/paragraph/save.js.map +1 -1
  438. package/build-module/paragraph/transforms.js +1 -0
  439. package/build-module/paragraph/transforms.js.map +1 -1
  440. package/build-module/pattern/edit.js +1 -1
  441. package/build-module/pattern/edit.js.map +1 -1
  442. package/build-module/post-author/edit.js +2 -2
  443. package/build-module/post-author/edit.js.map +1 -1
  444. package/build-module/post-author-biography/edit.js +2 -2
  445. package/build-module/post-author-biography/edit.js.map +1 -1
  446. package/build-module/post-author-name/edit.js +2 -2
  447. package/build-module/post-author-name/edit.js.map +1 -1
  448. package/build-module/post-comments-count/edit.js +2 -2
  449. package/build-module/post-comments-count/edit.js.map +1 -1
  450. package/build-module/post-comments-form/edit.js +2 -2
  451. package/build-module/post-comments-form/edit.js.map +1 -1
  452. package/build-module/post-comments-form/form.js +2 -2
  453. package/build-module/post-comments-form/form.js.map +1 -1
  454. package/build-module/post-comments-link/edit.js +2 -2
  455. package/build-module/post-comments-link/edit.js.map +1 -1
  456. package/build-module/post-date/edit.js +2 -2
  457. package/build-module/post-date/edit.js.map +1 -1
  458. package/build-module/post-excerpt/edit.js +3 -3
  459. package/build-module/post-excerpt/edit.js.map +1 -1
  460. package/build-module/post-featured-image/dimension-controls.js +20 -28
  461. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  462. package/build-module/post-featured-image/edit.js +3 -3
  463. package/build-module/post-featured-image/edit.js.map +1 -1
  464. package/build-module/post-featured-image/overlay.js +2 -2
  465. package/build-module/post-featured-image/overlay.js.map +1 -1
  466. package/build-module/post-navigation-link/edit.js +2 -2
  467. package/build-module/post-navigation-link/edit.js.map +1 -1
  468. package/build-module/post-template/edit.js +7 -7
  469. package/build-module/post-template/edit.js.map +1 -1
  470. package/build-module/post-terms/edit.js +2 -2
  471. package/build-module/post-terms/edit.js.map +1 -1
  472. package/build-module/post-time-to-read/edit.js +3 -3
  473. package/build-module/post-time-to-read/edit.js.map +1 -1
  474. package/build-module/post-title/edit.js +2 -2
  475. package/build-module/post-title/edit.js.map +1 -1
  476. package/build-module/pullquote/deprecated.js +7 -7
  477. package/build-module/pullquote/deprecated.js.map +1 -1
  478. package/build-module/pullquote/edit.js +2 -2
  479. package/build-module/pullquote/edit.js.map +1 -1
  480. package/build-module/pullquote/save.js +2 -2
  481. package/build-module/pullquote/save.js.map +1 -1
  482. package/build-module/query-title/edit.js +2 -2
  483. package/build-module/query-title/edit.js.map +1 -1
  484. package/build-module/quote/deprecated.js +3 -3
  485. package/build-module/quote/deprecated.js.map +1 -1
  486. package/build-module/quote/edit.js +2 -2
  487. package/build-module/quote/edit.js.map +1 -1
  488. package/build-module/quote/save.js +2 -2
  489. package/build-module/quote/save.js.map +1 -1
  490. package/build-module/rss/edit.js +10 -8
  491. package/build-module/rss/edit.js.map +1 -1
  492. package/build-module/search/edit.js +6 -6
  493. package/build-module/search/edit.js.map +1 -1
  494. package/build-module/search/edit.native.js +2 -2
  495. package/build-module/search/edit.native.js.map +1 -1
  496. package/build-module/separator/deprecated.js +2 -2
  497. package/build-module/separator/deprecated.js.map +1 -1
  498. package/build-module/separator/edit.js +2 -2
  499. package/build-module/separator/edit.js.map +1 -1
  500. package/build-module/separator/save.js +2 -2
  501. package/build-module/separator/save.js.map +1 -1
  502. package/build-module/shortcode/edit.js +8 -11
  503. package/build-module/shortcode/edit.js.map +1 -1
  504. package/build-module/site-logo/edit.js +4 -4
  505. package/build-module/site-logo/edit.js.map +1 -1
  506. package/build-module/site-tagline/edit.js +2 -2
  507. package/build-module/site-tagline/edit.js.map +1 -1
  508. package/build-module/site-title/edit.js +2 -2
  509. package/build-module/site-title/edit.js.map +1 -1
  510. package/build-module/social-link/edit.js +3 -3
  511. package/build-module/social-link/edit.js.map +1 -1
  512. package/build-module/social-links/deprecated.js +2 -2
  513. package/build-module/social-links/deprecated.js.map +1 -1
  514. package/build-module/social-links/edit.js +2 -2
  515. package/build-module/social-links/edit.js.map +1 -1
  516. package/build-module/social-links/save.js +2 -2
  517. package/build-module/social-links/save.js.map +1 -1
  518. package/build-module/spacer/edit.js +3 -3
  519. package/build-module/spacer/edit.js.map +1 -1
  520. package/build-module/table/deprecated.js +8 -8
  521. package/build-module/table/deprecated.js.map +1 -1
  522. package/build-module/table/edit.js +3 -3
  523. package/build-module/table/edit.js.map +1 -1
  524. package/build-module/table/save.js +3 -3
  525. package/build-module/table/save.js.map +1 -1
  526. package/build-module/term-description/edit.js +2 -2
  527. package/build-module/term-description/edit.js.map +1 -1
  528. package/build-module/utils/caption.js +2 -2
  529. package/build-module/utils/caption.js.map +1 -1
  530. package/build-module/verse/deprecated.js +2 -2
  531. package/build-module/verse/deprecated.js.map +1 -1
  532. package/build-module/verse/edit.js +2 -2
  533. package/build-module/verse/edit.js.map +1 -1
  534. package/build-module/verse/save.js +2 -2
  535. package/build-module/verse/save.js.map +1 -1
  536. package/build-module/video/edit.js +2 -2
  537. package/build-module/video/edit.js.map +1 -1
  538. package/build-style/block/editor-rtl.css +4 -4
  539. package/build-style/block/editor.css +4 -4
  540. package/build-style/buttons/editor-rtl.css +1 -1
  541. package/build-style/buttons/editor.css +1 -1
  542. package/build-style/buttons/style-rtl.css +1 -1
  543. package/build-style/buttons/style.css +1 -1
  544. package/build-style/common-rtl.css +3 -7
  545. package/build-style/common.css +3 -7
  546. package/build-style/editor-rtl.css +15 -32
  547. package/build-style/editor.css +15 -32
  548. package/build-style/group/editor-rtl.css +2 -1
  549. package/build-style/group/editor.css +2 -1
  550. package/build-style/image/editor-rtl.css +3 -0
  551. package/build-style/image/editor.css +3 -0
  552. package/build-style/image/style-rtl.css +1 -2
  553. package/build-style/image/style.css +1 -2
  554. package/build-style/post-template/style-rtl.css +0 -3
  555. package/build-style/post-template/style.css +0 -3
  556. package/build-style/rss/editor-rtl.css +1 -10
  557. package/build-style/rss/editor.css +1 -10
  558. package/build-style/shortcode/editor-rtl.css +0 -4
  559. package/build-style/shortcode/editor.css +0 -4
  560. package/build-style/style-rtl.css +5 -13
  561. package/build-style/style.css +5 -13
  562. package/build-style/template-part/editor-rtl.css +3 -7
  563. package/build-style/template-part/editor.css +3 -7
  564. package/package.json +36 -36
  565. package/src/audio/edit.js +2 -2
  566. package/src/avatar/edit.js +2 -2
  567. package/src/block/edit.js +30 -245
  568. package/src/block/editor.scss +7 -5
  569. package/src/button/block.json +1 -0
  570. package/src/button/deprecated.js +16 -16
  571. package/src/button/edit.js +3 -9
  572. package/src/button/save.js +3 -3
  573. package/src/buttons/deprecated.js +2 -2
  574. package/src/buttons/edit.js +2 -2
  575. package/src/buttons/editor.scss +1 -3
  576. package/src/buttons/save.js +2 -2
  577. package/src/buttons/style.scss +1 -3
  578. package/src/categories/edit.js +2 -2
  579. package/src/code/theme.native.scss +1 -1
  580. package/src/column/deprecated.js +2 -2
  581. package/src/column/edit.js +2 -2
  582. package/src/column/save.js +2 -2
  583. package/src/columns/deprecated.js +3 -3
  584. package/src/columns/edit.js +2 -2
  585. package/src/columns/save.js +2 -2
  586. package/src/comment-author-name/edit.js +2 -2
  587. package/src/comment-content/edit.js +2 -2
  588. package/src/comment-edit-link/edit.js +2 -2
  589. package/src/comment-reply-link/edit.js +2 -2
  590. package/src/comments/edit/comments-legacy.js +2 -2
  591. package/src/comments-title/edit.js +2 -2
  592. package/src/common.scss +4 -4
  593. package/src/cover/deprecated.js +38 -38
  594. package/src/cover/edit/index.js +6 -9
  595. package/src/cover/edit/resizable-cover-popover.js +2 -2
  596. package/src/cover/edit.native.js +2 -2
  597. package/src/cover/save.js +5 -5
  598. package/src/embed/deprecated.js +3 -3
  599. package/src/embed/edit.js +2 -2
  600. package/src/embed/edit.native.js +2 -2
  601. package/src/embed/embed-preview.js +3 -3
  602. package/src/embed/embed-preview.native.js +2 -2
  603. package/src/embed/icons.js +9 -0
  604. package/src/embed/save.js +2 -2
  605. package/src/embed/util.js +10 -6
  606. package/src/embed/variations.js +9 -0
  607. package/src/file/deprecated.js +2 -2
  608. package/src/file/edit.js +3 -3
  609. package/src/file/save.js +2 -2
  610. package/src/form-input/deprecated.js +3 -3
  611. package/src/form-input/edit.js +4 -4
  612. package/src/form-input/save.js +3 -3
  613. package/src/form-submission-notification/edit.js +2 -2
  614. package/src/form-submission-notification/save.js +4 -7
  615. package/src/gallery/deprecated.js +3 -3
  616. package/src/gallery/edit.js +2 -2
  617. package/src/gallery/gallery.js +2 -2
  618. package/src/gallery/save.js +3 -3
  619. package/src/gallery/test/helpers.native.js +3 -3
  620. package/src/gallery/v1/gallery-image.js +2 -2
  621. package/src/gallery/v1/gallery.js +3 -3
  622. package/src/gallery/v1/save.js +3 -3
  623. package/src/group/deprecated.js +4 -4
  624. package/src/group/editor.scss +2 -1
  625. package/src/heading/block.json +1 -0
  626. package/src/heading/deprecated.js +6 -6
  627. package/src/heading/edit.js +2 -23
  628. package/src/heading/edit.native.js +2 -2
  629. package/src/heading/save.js +2 -2
  630. package/src/heading/test/__snapshots__/transforms.native.js.snap +1 -1
  631. package/src/home-link/edit.js +2 -2
  632. package/src/html/edit.js +0 -2
  633. package/src/image/deprecated.js +10 -10
  634. package/src/image/edit.js +5 -3
  635. package/src/image/editor.scss +13 -7
  636. package/src/image/image.js +5 -2
  637. package/src/image/save.js +3 -3
  638. package/src/image/style.scss +1 -3
  639. package/src/latest-posts/edit.js +6 -6
  640. package/src/latest-posts/index.php +1 -0
  641. package/src/list/block.json +0 -2
  642. package/src/list/deprecated.js +88 -1
  643. package/src/list/index.php +54 -0
  644. package/src/list/test/__snapshots__/edit.native.js.snap +11 -11
  645. package/src/list/test/__snapshots__/transforms.native.js.snap +3 -3
  646. package/src/list/test/edit.native.js +24 -24
  647. package/src/list/test/transforms.native.js +1 -1
  648. package/src/list-item/block.json +2 -1
  649. package/src/list-item/edit.js +0 -15
  650. package/src/media-text/deprecated.js +10 -10
  651. package/src/media-text/edit.js +2 -2
  652. package/src/media-text/media-container.js +2 -2
  653. package/src/media-text/save.js +3 -3
  654. package/src/navigation/edit/index.js +3 -3
  655. package/src/navigation/edit/responsive-wrapper.js +3 -3
  656. package/src/navigation/edit/utils.js +2 -2
  657. package/src/navigation/index.php +52 -1
  658. package/src/navigation-link/edit.js +3 -3
  659. package/src/navigation-submenu/edit.js +2 -2
  660. package/src/page-list/edit.js +2 -2
  661. package/src/page-list-item/edit.js +3 -3
  662. package/src/paragraph/block.json +1 -0
  663. package/src/paragraph/deprecated.js +6 -6
  664. package/src/paragraph/edit.js +2 -23
  665. package/src/paragraph/save.js +2 -2
  666. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +1 -1
  667. package/src/pattern/edit.js +1 -1
  668. package/src/post-author/edit.js +2 -2
  669. package/src/post-author-biography/edit.js +2 -2
  670. package/src/post-author-name/edit.js +2 -2
  671. package/src/post-comments-count/edit.js +2 -2
  672. package/src/post-comments-form/edit.js +2 -2
  673. package/src/post-comments-form/form.js +2 -2
  674. package/src/post-comments-link/edit.js +2 -2
  675. package/src/post-date/edit.js +2 -2
  676. package/src/post-excerpt/edit.js +3 -3
  677. package/src/post-featured-image/dimension-controls.js +30 -36
  678. package/src/post-featured-image/edit.js +3 -3
  679. package/src/post-featured-image/overlay.js +2 -2
  680. package/src/post-navigation-link/edit.js +2 -2
  681. package/src/post-template/edit.js +7 -7
  682. package/src/post-template/style.scss +0 -4
  683. package/src/post-terms/edit.js +2 -2
  684. package/src/post-time-to-read/edit.js +3 -3
  685. package/src/post-title/edit.js +2 -2
  686. package/src/pullquote/deprecated.js +7 -7
  687. package/src/pullquote/edit.js +2 -2
  688. package/src/pullquote/save.js +2 -2
  689. package/src/query-title/edit.js +2 -2
  690. package/src/quote/deprecated.js +3 -3
  691. package/src/quote/edit.js +2 -2
  692. package/src/quote/save.js +2 -2
  693. package/src/rss/edit.js +30 -23
  694. package/src/rss/editor.scss +2 -16
  695. package/src/search/edit.js +6 -6
  696. package/src/search/edit.native.js +2 -2
  697. package/src/separator/deprecated.js +2 -2
  698. package/src/separator/edit.js +2 -2
  699. package/src/separator/save.js +2 -2
  700. package/src/shortcode/edit.js +13 -17
  701. package/src/shortcode/editor.scss +0 -6
  702. package/src/site-logo/edit.js +4 -4
  703. package/src/site-logo/index.php +2 -0
  704. package/src/site-tagline/edit.js +2 -2
  705. package/src/site-title/edit.js +2 -2
  706. package/src/social-link/edit.js +3 -3
  707. package/src/social-links/deprecated.js +2 -2
  708. package/src/social-links/edit.js +2 -2
  709. package/src/social-links/save.js +2 -2
  710. package/src/spacer/edit.js +3 -3
  711. package/src/table/deprecated.js +12 -20
  712. package/src/table/edit.js +3 -3
  713. package/src/table/save.js +3 -3
  714. package/src/template-part/editor.scss +5 -8
  715. package/src/term-description/edit.js +2 -2
  716. package/src/utils/caption.js +2 -2
  717. package/src/verse/deprecated.js +2 -2
  718. package/src/verse/edit.js +2 -2
  719. package/src/verse/save.js +2 -2
  720. package/src/video/edit.js +2 -2
  721. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["isBlobURL","ExternalLink","ResizableBox","Spinner","TextareaControl","TextControl","ToolbarButton","ToolbarGroup","Dropdown","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUseCustomUnits","useCustomUnits","useViewportMatch","useSelect","useDispatch","BlockControls","InspectorControls","__experimentalImageURLInputUI","ImageURLInputUI","MediaReplaceFlow","store","blockEditorStore","useSettings","__experimentalImageEditor","ImageEditor","__experimentalUseBorderProps","useBorderProps","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","privateApis","blockEditorPrivateApis","useEffect","useMemo","useState","useRef","__","_x","sprintf","isRTL","DOWN","getFilename","switchToBlockType","blocksStore","crop","overlayText","upload","noticesStore","coreStore","unlock","createUpgradedEmbedBlock","isExternalImage","Caption","TOOLSPANEL_DROPDOWNMENU_PROPS","MIN_SIZE","ALLOWED_MEDIA_TYPES","evalAspectRatio","DimensionsTool","ResolutionTool","scaleOptions","value","label","help","ImageWrapper","href","children","createElement","onClick","event","preventDefault","style","cursor","display","Image","temporaryURL","attributes","setAttributes","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","context","clientId","blockEditingMode","url","alt","align","id","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","numericWidth","parseInt","undefined","numericHeight","imageRef","allowResize","getBlock","getSettings","image","select","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","hasNonContentControls","isContentOnlyMode","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","resetLightbox","allowEditing","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","onError","message","canEditImage","allowCrop","switchToCover","dimensionsUnitsOptions","availableUnits","showLightboxSetting","lightboxChecked","dimensionsControl","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","resetAll","sizeControls","dropdownMenuProps","lockUrlControls","lockHrefControls","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","lockCaption","getBlockBindingsSource","getBlockParentsByBlockName","urlBinding","altBinding","titleBinding","bindings","hasParentPattern","length","urlBindingSource","source","altBindingSource","titleBindingSource","lockAttributesEditing","controls","Fragment","group","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","icon","mediaId","mediaURL","accept","onSelect","popoverProps","position","renderToggle","isOpen","onToggle","onKeyDown","keyCode","renderContent","className","disabled","__nextHasNoMarginBottom","isShownByDefault","hasValue","onDeselect","readOnly","options","__next40pxDefaultSize","filename","defaultedAlt","borderProps","shadowProps","isRounded","src","onLoad","target","ref","objectFit","onSaveImage","imageAttributes","onFinishEditing","numericRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","size","showHandle","maxHeight","lockAspectRatio","top","right","bottom","left","direction","elt","offsetWidth","String","resizeRatio","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\tDropdown,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch } 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} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { getFilename } from '@wordpress/url';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { crop, overlayText, upload } 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 { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../utils/constants';\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } 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\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// Safari needs the display property.\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\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} ) {\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\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\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 } =\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\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\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 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 ] );\n\n\t// Get naturalWidth and naturalHeight from image ref, 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\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\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\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\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 = isSingleSelected && canEditImage && ! isEditingImage;\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 dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : 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} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\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={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t>\n\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\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 { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst { getBlockParentsByBlockName } = unlock(\n\t\t\t\tselect( blockEditorStore )\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 =\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block' ).length > 0;\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 ||\n\t\t\t\t\t\turlBindingSource?.lockAttributesEditing ),\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,\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 ||\n\t\t\t\t\t\taltBindingSource?.lockAttributesEditing ),\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 ||\n\t\t\t\t\t\ttitleBindingSource?.lockAttributesEditing ),\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[ clientId, isSingleSelected, metadata?.bindings ]\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ isSingleSelected &&\n\t\t\t\t\t! isEditingImage &&\n\t\t\t\t\t! lockHrefControls &&\n\t\t\t\t\t! lockUrlControls && (\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{ allowCrop && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isSingleSelected && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isSingleSelected && ! isEditingImage && ! lockUrlControls && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\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=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ _x(\n\t\t\t\t\t\t\t\t\t'Alt',\n\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) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\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\tdisabled={ 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 href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Title' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\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{ __(\n\t\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\t) }\n\t\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\t{ __(\n\t\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\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</>\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/>\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={ TOOLSPANEL_DROPDOWNMENU_PROPS }\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 href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\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{ isResizable && 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\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\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{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\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\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\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 if ( ! isResizable ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\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\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\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\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} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSingleSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / 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={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\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\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\t// Add all controls if the image attributes are connected.\n\t\treturn metadata?.bindings ? controls : sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ img }\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={ isSingleSelected && hasNonContentControls }\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":["isBlobURL","ExternalLink","ResizableBox","Spinner","TextareaControl","TextControl","ToolbarButton","ToolbarGroup","Dropdown","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUseCustomUnits","useCustomUnits","useViewportMatch","useSelect","useDispatch","BlockControls","InspectorControls","__experimentalImageURLInputUI","ImageURLInputUI","MediaReplaceFlow","store","blockEditorStore","useSettings","__experimentalImageEditor","ImageEditor","__experimentalUseBorderProps","useBorderProps","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","privateApis","blockEditorPrivateApis","useEffect","useMemo","useState","useRef","__","_x","sprintf","isRTL","DOWN","getFilename","switchToBlockType","blocksStore","crop","overlayText","upload","noticesStore","coreStore","unlock","createUpgradedEmbedBlock","isExternalImage","Caption","TOOLSPANEL_DROPDOWNMENU_PROPS","MIN_SIZE","ALLOWED_MEDIA_TYPES","evalAspectRatio","DimensionsTool","ResolutionTool","scaleOptions","value","label","help","ImageWrapper","href","children","createElement","onClick","event","preventDefault","style","pointerEvents","cursor","display","Image","temporaryURL","attributes","setAttributes","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","context","clientId","blockEditingMode","parentLayoutType","url","alt","align","id","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","numericWidth","parseInt","undefined","numericHeight","imageRef","allowResize","getBlock","getSettings","image","select","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","hasNonContentControls","isContentOnlyMode","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","resetLightbox","allowEditing","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","onError","message","canEditImage","allowCrop","switchToCover","dimensionsUnitsOptions","availableUnits","showLightboxSetting","lightboxChecked","dimensionsControl","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","resetAll","sizeControls","dropdownMenuProps","lockUrlControls","lockHrefControls","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","lockCaption","getBlockBindingsSource","getBlockParentsByBlockName","urlBinding","altBinding","titleBinding","bindings","hasParentPattern","length","urlBindingSource","source","altBindingSource","titleBindingSource","lockAttributesEditing","controls","Fragment","group","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","icon","mediaId","mediaURL","accept","onSelect","popoverProps","position","renderToggle","isOpen","onToggle","onKeyDown","keyCode","renderContent","className","disabled","__nextHasNoMarginBottom","isShownByDefault","hasValue","onDeselect","readOnly","options","__next40pxDefaultSize","filename","defaultedAlt","borderProps","shadowProps","isRounded","src","onLoad","target","ref","objectFit","onSaveImage","imageAttributes","onFinishEditing","numericRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","size","showHandle","maxHeight","lockAspectRatio","top","right","bottom","left","direction","elt","offsetWidth","String","resizeRatio","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\tDropdown,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch } 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} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { getFilename } from '@wordpress/url';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { crop, overlayText, upload } 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 { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../utils/constants';\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } 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\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\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} ) {\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\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\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 } =\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\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\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 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\t\tparentLayoutType !== 'grid';\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 ] );\n\n\t// Get naturalWidth and naturalHeight from image ref, 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\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\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\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\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 = isSingleSelected && canEditImage && ! isEditingImage;\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 dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : 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} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\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={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t\t>\n\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\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 { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst { getBlockParentsByBlockName } = unlock(\n\t\t\t\tselect( blockEditorStore )\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 =\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block' ).length > 0;\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 ||\n\t\t\t\t\t\turlBindingSource?.lockAttributesEditing ),\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,\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 ||\n\t\t\t\t\t\taltBindingSource?.lockAttributesEditing ),\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 ||\n\t\t\t\t\t\ttitleBindingSource?.lockAttributesEditing ),\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[ clientId, isSingleSelected, metadata?.bindings ]\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ isSingleSelected &&\n\t\t\t\t\t! isEditingImage &&\n\t\t\t\t\t! lockHrefControls &&\n\t\t\t\t\t! lockUrlControls && (\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{ allowCrop && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isSingleSelected && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isSingleSelected && ! isEditingImage && ! lockUrlControls && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\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=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ _x(\n\t\t\t\t\t\t\t\t\t'Alt',\n\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) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\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\tdisabled={ 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 href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Title' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\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{ __(\n\t\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\t) }\n\t\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\t{ __(\n\t\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\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</>\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/>\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={ TOOLSPANEL_DROPDOWNMENU_PROPS }\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 href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\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{ isResizable && 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\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\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{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\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\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\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 if ( ! isResizable ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\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\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\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\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} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSingleSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / 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={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\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\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\t// Add all controls if the image attributes are connected.\n\t\treturn metadata?.bindings ? controls : sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ img }\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={ isSingleSelected && hasNonContentControls }\n\t\t\t\treadOnly={ lockCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
- import classnames from 'classnames';
5
+ import clsx from 'clsx';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
@@ -31,7 +31,7 @@ export default function save({
31
31
  const newRel = !rel ? undefined : rel;
32
32
  const borderProps = getBorderClassesAndStyles(attributes);
33
33
  const shadowProps = getShadowClassesAndStyles(attributes);
34
- const classes = classnames({
34
+ const classes = clsx({
35
35
  // All other align classes are handled by block supports.
36
36
  // `{ align: 'none' }` is unique to transforms for the image block.
37
37
  alignnone: 'none' === align,
@@ -39,7 +39,7 @@ export default function save({
39
39
  'is-resized': width || height,
40
40
  'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
41
41
  });
42
- const imageClasses = classnames(borderProps.className, {
42
+ const imageClasses = clsx(borderProps.className, {
43
43
  [`wp-image-${id}`]: !!id
44
44
  });
45
45
  const image = createElement("img", {
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","RichText","useBlockProps","__experimentalGetElementClassName","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","save","attributes","url","alt","caption","align","href","rel","linkClass","width","height","aspectRatio","scale","id","linkTarget","sizeSlug","title","newRel","undefined","borderProps","shadowProps","classes","alignnone","className","style","Object","keys","length","imageClasses","image","createElement","src","objectFit","figure","Fragment","target","isEmpty","Content","tagName","value"],"sources":["@wordpress/block-library/src/image/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\turl,\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tid,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\ttitle,\n\t} = attributes;\n\n\tconst newRel = ! rel ? undefined : rel;\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = classnames( {\n\t\t// All other align classes are handled by block supports.\n\t\t// `{ align: 'none' }` is unique to transforms for the image block.\n\t\talignnone: 'none' === align,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'is-resized': width || height,\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 imageClasses = classnames( borderProps.className, {\n\t\t[ `wp-image-${ id }` ]: !! id,\n\t} );\n\n\tconst image = (\n\t\t<img\n\t\t\tsrc={ url }\n\t\t\talt={ alt }\n\t\t\tclassName={ imageClasses || undefined }\n\t\t\tstyle={ {\n\t\t\t\t...borderProps.style,\n\t\t\t\t...shadowProps.style,\n\t\t\t\taspectRatio,\n\t\t\t\tobjectFit: scale,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t} }\n\t\t\ttitle={ title }\n\t\t/>\n\t);\n\n\tconst figure = (\n\t\t<>\n\t\t\t{ href ? (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\thref={ href }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ newRel }\n\t\t\t\t>\n\t\t\t\t\t{ image }\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\timage\n\t\t\t) }\n\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t{ figure }\n\t\t</figure>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,iCAAiC,EACjCC,uCAAuC,IAAIC,yBAAyB,EACpEC,uCAAuC,IAAIC,yBAAyB,QAC9D,yBAAyB;AAEhC,eAAe,SAASC,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IACLC,GAAG;IACHC,GAAG;IACHC,OAAO;IACPC,KAAK;IACLC,IAAI;IACJC,GAAG;IACHC,SAAS;IACTC,KAAK;IACLC,MAAM;IACNC,WAAW;IACXC,KAAK;IACLC,EAAE;IACFC,UAAU;IACVC,QAAQ;IACRC;EACD,CAAC,GAAGf,UAAU;EAEd,MAAMgB,MAAM,GAAG,CAAEV,GAAG,GAAGW,SAAS,GAAGX,GAAG;EACtC,MAAMY,WAAW,GAAGtB,yBAAyB,CAAEI,UAAW,CAAC;EAC3D,MAAMmB,WAAW,GAAGrB,yBAAyB,CAAEE,UAAW,CAAC;EAE3D,MAAMoB,OAAO,GAAG7B,UAAU,CAAE;IAC3B;IACA;IACA8B,SAAS,EAAE,MAAM,KAAKjB,KAAK;IAC3B,CAAG,QAAQU,QAAU,EAAC,GAAIA,QAAQ;IAClC,YAAY,EAAEN,KAAK,IAAIC,MAAM;IAC7B,mBAAmB,EAClB,CAAC,CAAES,WAAW,CAACI,SAAS,IACtBJ,WAAW,CAACK,KAAK,IAClBC,MAAM,CAACC,IAAI,CAAEP,WAAW,CAACK,KAAM,CAAC,CAACG,MAAM,GAAG;EAC7C,CAAE,CAAC;EAEH,MAAMC,YAAY,GAAGpC,UAAU,CAAE2B,WAAW,CAACI,SAAS,EAAE;IACvD,CAAG,YAAYV,EAAI,EAAC,GAAI,CAAC,CAAEA;EAC5B,CAAE,CAAC;EAEH,MAAMgB,KAAK,GACVC,aAAA;IACCC,GAAG,EAAG7B,GAAK;IACXC,GAAG,EAAGA,GAAK;IACXoB,SAAS,EAAGK,YAAY,IAAIV,SAAW;IACvCM,KAAK,EAAG;MACP,GAAGL,WAAW,CAACK,KAAK;MACpB,GAAGJ,WAAW,CAACI,KAAK;MACpBb,WAAW;MACXqB,SAAS,EAAEpB,KAAK;MAChBH,KAAK;MACLC;IACD,CAAG;IACHM,KAAK,EAAGA;EAAO,CACf,CACD;EAED,MAAMiB,MAAM,GACXH,aAAA,CAAAI,QAAA,QACG5B,IAAI,GACLwB,aAAA;IACCP,SAAS,EAAGf,SAAW;IACvBF,IAAI,EAAGA,IAAM;IACb6B,MAAM,EAAGrB,UAAY;IACrBP,GAAG,EAAGU;EAAQ,GAEZY,KACA,CAAC,GAEJA,KACA,EACC,CAAEpC,QAAQ,CAAC2C,OAAO,CAAEhC,OAAQ,CAAC,IAC9B0B,aAAA,CAACrC,QAAQ,CAAC4C,OAAO;IAChBd,SAAS,EAAG5B,iCAAiC,CAAE,SAAU,CAAG;IAC5D2C,OAAO,EAAC,YAAY;IACpBC,KAAK,EAAGnC;EAAS,CACjB,CAED,CACF;EAED,OACC0B,aAAA;IAAA,GAAapC,aAAa,CAACM,IAAI,CAAE;MAAEuB,SAAS,EAAEF;IAAQ,CAAE;EAAC,GACtDY,MACK,CAAC;AAEX","ignoreList":[]}
1
+ {"version":3,"names":["clsx","RichText","useBlockProps","__experimentalGetElementClassName","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","save","attributes","url","alt","caption","align","href","rel","linkClass","width","height","aspectRatio","scale","id","linkTarget","sizeSlug","title","newRel","undefined","borderProps","shadowProps","classes","alignnone","className","style","Object","keys","length","imageClasses","image","createElement","src","objectFit","figure","Fragment","target","isEmpty","Content","tagName","value"],"sources":["@wordpress/block-library/src/image/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\turl,\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tid,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\ttitle,\n\t} = attributes;\n\n\tconst newRel = ! rel ? undefined : rel;\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( {\n\t\t// All other align classes are handled by block supports.\n\t\t// `{ align: 'none' }` is unique to transforms for the image block.\n\t\talignnone: 'none' === align,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'is-resized': width || height,\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 imageClasses = clsx( borderProps.className, {\n\t\t[ `wp-image-${ id }` ]: !! id,\n\t} );\n\n\tconst image = (\n\t\t<img\n\t\t\tsrc={ url }\n\t\t\talt={ alt }\n\t\t\tclassName={ imageClasses || undefined }\n\t\t\tstyle={ {\n\t\t\t\t...borderProps.style,\n\t\t\t\t...shadowProps.style,\n\t\t\t\taspectRatio,\n\t\t\t\tobjectFit: scale,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t} }\n\t\t\ttitle={ title }\n\t\t/>\n\t);\n\n\tconst figure = (\n\t\t<>\n\t\t\t{ href ? (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\thref={ href }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ newRel }\n\t\t\t\t>\n\t\t\t\t\t{ image }\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\timage\n\t\t\t) }\n\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t{ figure }\n\t\t</figure>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,iCAAiC,EACjCC,uCAAuC,IAAIC,yBAAyB,EACpEC,uCAAuC,IAAIC,yBAAyB,QAC9D,yBAAyB;AAEhC,eAAe,SAASC,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IACLC,GAAG;IACHC,GAAG;IACHC,OAAO;IACPC,KAAK;IACLC,IAAI;IACJC,GAAG;IACHC,SAAS;IACTC,KAAK;IACLC,MAAM;IACNC,WAAW;IACXC,KAAK;IACLC,EAAE;IACFC,UAAU;IACVC,QAAQ;IACRC;EACD,CAAC,GAAGf,UAAU;EAEd,MAAMgB,MAAM,GAAG,CAAEV,GAAG,GAAGW,SAAS,GAAGX,GAAG;EACtC,MAAMY,WAAW,GAAGtB,yBAAyB,CAAEI,UAAW,CAAC;EAC3D,MAAMmB,WAAW,GAAGrB,yBAAyB,CAAEE,UAAW,CAAC;EAE3D,MAAMoB,OAAO,GAAG7B,IAAI,CAAE;IACrB;IACA;IACA8B,SAAS,EAAE,MAAM,KAAKjB,KAAK;IAC3B,CAAG,QAAQU,QAAU,EAAC,GAAIA,QAAQ;IAClC,YAAY,EAAEN,KAAK,IAAIC,MAAM;IAC7B,mBAAmB,EAClB,CAAC,CAAES,WAAW,CAACI,SAAS,IACtBJ,WAAW,CAACK,KAAK,IAClBC,MAAM,CAACC,IAAI,CAAEP,WAAW,CAACK,KAAM,CAAC,CAACG,MAAM,GAAG;EAC7C,CAAE,CAAC;EAEH,MAAMC,YAAY,GAAGpC,IAAI,CAAE2B,WAAW,CAACI,SAAS,EAAE;IACjD,CAAG,YAAYV,EAAI,EAAC,GAAI,CAAC,CAAEA;EAC5B,CAAE,CAAC;EAEH,MAAMgB,KAAK,GACVC,aAAA;IACCC,GAAG,EAAG7B,GAAK;IACXC,GAAG,EAAGA,GAAK;IACXoB,SAAS,EAAGK,YAAY,IAAIV,SAAW;IACvCM,KAAK,EAAG;MACP,GAAGL,WAAW,CAACK,KAAK;MACpB,GAAGJ,WAAW,CAACI,KAAK;MACpBb,WAAW;MACXqB,SAAS,EAAEpB,KAAK;MAChBH,KAAK;MACLC;IACD,CAAG;IACHM,KAAK,EAAGA;EAAO,CACf,CACD;EAED,MAAMiB,MAAM,GACXH,aAAA,CAAAI,QAAA,QACG5B,IAAI,GACLwB,aAAA;IACCP,SAAS,EAAGf,SAAW;IACvBF,IAAI,EAAGA,IAAM;IACb6B,MAAM,EAAGrB,UAAY;IACrBP,GAAG,EAAGU;EAAQ,GAEZY,KACA,CAAC,GAEJA,KACA,EACC,CAAEpC,QAAQ,CAAC2C,OAAO,CAAEhC,OAAQ,CAAC,IAC9B0B,aAAA,CAACrC,QAAQ,CAAC4C,OAAO;IAChBd,SAAS,EAAG5B,iCAAiC,CAAE,SAAU,CAAG;IAC5D2C,OAAO,EAAC,YAAY;IACpBC,KAAK,EAAGnC;EAAS,CACjB,CAED,CACF;EAED,OACC0B,aAAA;IAAA,GAAapC,aAAa,CAACM,IAAI,CAAE;MAAEuB,SAAS,EAAEF;IAAQ,CAAE;EAAC,GACtDY,MACK,CAAC;AAEX","ignoreList":[]}
@@ -2,13 +2,13 @@ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
- import classnames from 'classnames';
5
+ import clsx from 'clsx';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
10
  import { BaseControl, PanelBody, Placeholder, QueryControls, RadioControl, RangeControl, Spinner, ToggleControl, ToolbarGroup } from '@wordpress/components';
11
- import { __, sprintf } from '@wordpress/i18n';
11
+ import { __, _x, sprintf } from '@wordpress/i18n';
12
12
  import { dateI18n, format, getSettings } from '@wordpress/date';
13
13
  import { InspectorControls, BlockAlignmentToolbar, BlockControls, __experimentalImageSizeControl as ImageSizeControl, useBlockProps, store as blockEditorStore } from '@wordpress/block-editor';
14
14
  import { useSelect, useDispatch } from '@wordpress/data';
@@ -282,7 +282,7 @@ export default function LatestPostsEdit({
282
282
  required: true
283
283
  })));
284
284
  const blockProps = useBlockProps({
285
- className: classnames({
285
+ className: clsx({
286
286
  'wp-block-latest-posts__list': true,
287
287
  'is-grid': postLayout === 'grid',
288
288
  'has-dates': displayPostDate,
@@ -303,14 +303,14 @@ export default function LatestPostsEdit({
303
303
  const displayPosts = latestPosts.length > postsToShow ? latestPosts.slice(0, postsToShow) : latestPosts;
304
304
  const layoutControls = [{
305
305
  icon: list,
306
- title: __('List view'),
306
+ title: _x('List view', 'Latest posts block display setting'),
307
307
  onClick: () => setAttributes({
308
308
  postLayout: 'list'
309
309
  }),
310
310
  isActive: postLayout === 'list'
311
311
  }, {
312
312
  icon: grid,
313
- title: __('Grid view'),
313
+ title: _x('Grid view', 'Latest posts block display setting'),
314
314
  onClick: () => setAttributes({
315
315
  postLayout: 'grid'
316
316
  }),
@@ -332,7 +332,7 @@ export default function LatestPostsEdit({
332
332
  url: imageSourceUrl,
333
333
  alt: featuredImageAlt
334
334
  } = getFeaturedImageDetails(post, featuredImageSizeSlug);
335
- const imageClasses = classnames({
335
+ const imageClasses = clsx({
336
336
  'wp-block-latest-posts__featured-image': true,
337
337
  [`align${featuredImageAlign}`]: !!featuredImageAlign
338
338
  });
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","BaseControl","PanelBody","Placeholder","QueryControls","RadioControl","RangeControl","Spinner","ToggleControl","ToolbarGroup","__","sprintf","dateI18n","format","getSettings","InspectorControls","BlockAlignmentToolbar","BlockControls","__experimentalImageSizeControl","ImageSizeControl","useBlockProps","store","blockEditorStore","useSelect","useDispatch","pin","list","grid","coreStore","noticeStore","useInstanceId","createInterpolateElement","MIN_EXCERPT_LENGTH","MAX_EXCERPT_LENGTH","MAX_POSTS_COLUMNS","CATEGORIES_LIST_QUERY","per_page","context","USERS_LIST_QUERY","has_published_posts","getFeaturedImageDetails","post","size","_image$media_details$","image","_embedded","url","media_details","sizes","source_url","alt","alt_text","LatestPostsEdit","attributes","setAttributes","_categoriesList$reduc","instanceId","postsToShow","order","orderBy","categories","selectedAuthor","displayFeaturedImage","displayPostContentRadio","displayPostContent","displayPostDate","displayAuthor","postLayout","columns","excerptLength","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","imageSizes","latestPosts","defaultImageWidth","defaultImageHeight","categoriesList","authorList","select","_settings$imageDimens","_settings$imageDimens2","getEntityRecords","getUsers","settings","catIds","length","map","cat","id","latestPostsQuery","Object","fromEntries","entries","author","orderby","_embed","filter","value","imageDimensions","width","height","createWarningNotice","removeNotice","noticeId","showRedirectionPreventedNotice","event","preventDefault","type","imageSizeOptions","slug","name","label","categorySuggestions","reduce","accumulator","category","selectCategories","tokens","hasNoSuggestion","some","token","allCategories","includes","hasPosts","inspectorControls","createElement","title","checked","onChange","selected","options","__nextHasNoMarginBottom","__next40pxDefaultSize","min","max","Fragment","newAttrs","hasOwnProperty","imageWidth","imageHeight","imageSizeHelp","onChangeImage","undefined","className","VisualLabel","controls","isCollapsed","numberOfItems","onOrderChange","onOrderByChange","onNumberOfItemsChange","onCategoryChange","selectedCategories","onAuthorChange","Number","selectedAuthorId","Math","required","blockProps","icon","Array","isArray","displayPosts","slice","layoutControls","onClick","isActive","dateFormat","formats","date","titleTrimmed","rendered","trim","excerpt","currentAuthor","find","excerptElement","document","innerHTML","textContent","innerText","imageSourceUrl","featuredImageAlt","imageClasses","renderFeaturedImage","featuredImage","src","style","maxWidth","maxHeight","needsReadMore","split","raw","postExcerpt","join","a","href","link","rel","span","key","dangerouslySetInnerHTML","__html","date_gmt","dateTime","content"],"sources":["@wordpress/block-library/src/latest-posts/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { pin, list, grid } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tMAX_POSTS_COLUMNS,\n} from './constants';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = post._embedded?.[ 'wp:featuredmedia' ]?.[ '0' ];\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nexport default function LatestPostsEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tlatestPosts,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = Object.fromEntries(\n\t\t\t\tObject.entries( {\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'wp:featuredmedia',\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.width ?? 0,\n\t\t\t\tdefaultImageHeight:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.height ?? 0,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tfeaturedImageSizeSlug,\n\t\t\tpostsToShow,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tcategories,\n\t\t\tselectedAuthor,\n\t\t]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticeStore );\n\tlet noticeId;\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\t// Remove previous warning if any, to show one at a time per block.\n\t\tremoveNotice( noticeId );\n\t\tnoticeId = `block-library/core/latest-posts/redirection-prevented/${ instanceId }`;\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: noticeId,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce(\n\t\t\t( accumulator, category ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ category.name ]: category,\n\t\t\t} ),\n\t\t\t{}\n\t\t) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Post content' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<RadioControl\n\t\t\t\t\t\tlabel={ __( 'Show:' ) }\n\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: value,\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\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Post meta' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Featured image' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BaseControl className=\"editor-latest-posts-image-alignment-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageAlign: value,\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\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisCollapsed={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\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\taddLinkToFeaturedImage: 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/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t<QueryControls\n\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t}\n\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t/>\n\n\t\t\t\t{ postLayout === 'grid' && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t! hasPosts\n\t\t\t\t\t\t\t\t? MAX_POSTS_COLUMNS\n\t\t\t\t\t\t\t\t: Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_POSTS_COLUMNS,\n\t\t\t\t\t\t\t\t\t\tlatestPosts.length\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: __( 'List view' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'list' } ),\n\t\t\tisActive: postLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: __( 'Grid view' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'grid' } ),\n\t\t\tisActive: postLayout === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = authorList?.find(\n\t\t\t\t\t\t( author ) => author.id === post.author\n\t\t\t\t\t);\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = classnames( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Hidden accessibility text: Post title */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'… <a>Read more<span>: %1$s</span></a>'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\ttitleTrimmed || __( '(no title)' )\n\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\ta: (\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__read-more\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\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\tspan: (\n\t\t\t\t\t\t\t\t\t\t<span className=\"screen-reader-text\" />\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) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ post.id }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\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{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: current author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.raw.trim(),\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</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","BaseControl","PanelBody","Placeholder","QueryControls","RadioControl","RangeControl","Spinner","ToggleControl","ToolbarGroup","__","_x","sprintf","dateI18n","format","getSettings","InspectorControls","BlockAlignmentToolbar","BlockControls","__experimentalImageSizeControl","ImageSizeControl","useBlockProps","store","blockEditorStore","useSelect","useDispatch","pin","list","grid","coreStore","noticeStore","useInstanceId","createInterpolateElement","MIN_EXCERPT_LENGTH","MAX_EXCERPT_LENGTH","MAX_POSTS_COLUMNS","CATEGORIES_LIST_QUERY","per_page","context","USERS_LIST_QUERY","has_published_posts","getFeaturedImageDetails","post","size","_image$media_details$","image","_embedded","url","media_details","sizes","source_url","alt","alt_text","LatestPostsEdit","attributes","setAttributes","_categoriesList$reduc","instanceId","postsToShow","order","orderBy","categories","selectedAuthor","displayFeaturedImage","displayPostContentRadio","displayPostContent","displayPostDate","displayAuthor","postLayout","columns","excerptLength","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","imageSizes","latestPosts","defaultImageWidth","defaultImageHeight","categoriesList","authorList","select","_settings$imageDimens","_settings$imageDimens2","getEntityRecords","getUsers","settings","catIds","length","map","cat","id","latestPostsQuery","Object","fromEntries","entries","author","orderby","_embed","filter","value","imageDimensions","width","height","createWarningNotice","removeNotice","noticeId","showRedirectionPreventedNotice","event","preventDefault","type","imageSizeOptions","slug","name","label","categorySuggestions","reduce","accumulator","category","selectCategories","tokens","hasNoSuggestion","some","token","allCategories","includes","hasPosts","inspectorControls","createElement","title","checked","onChange","selected","options","__nextHasNoMarginBottom","__next40pxDefaultSize","min","max","Fragment","newAttrs","hasOwnProperty","imageWidth","imageHeight","imageSizeHelp","onChangeImage","undefined","className","VisualLabel","controls","isCollapsed","numberOfItems","onOrderChange","onOrderByChange","onNumberOfItemsChange","onCategoryChange","selectedCategories","onAuthorChange","Number","selectedAuthorId","Math","required","blockProps","icon","Array","isArray","displayPosts","slice","layoutControls","onClick","isActive","dateFormat","formats","date","titleTrimmed","rendered","trim","excerpt","currentAuthor","find","excerptElement","document","innerHTML","textContent","innerText","imageSourceUrl","featuredImageAlt","imageClasses","renderFeaturedImage","featuredImage","src","style","maxWidth","maxHeight","needsReadMore","split","raw","postExcerpt","join","a","href","link","rel","span","key","dangerouslySetInnerHTML","__html","date_gmt","dateTime","content"],"sources":["@wordpress/block-library/src/latest-posts/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { pin, list, grid } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tMAX_POSTS_COLUMNS,\n} from './constants';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = post._embedded?.[ 'wp:featuredmedia' ]?.[ '0' ];\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nexport default function LatestPostsEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tlatestPosts,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = Object.fromEntries(\n\t\t\t\tObject.entries( {\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'wp:featuredmedia',\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.width ?? 0,\n\t\t\t\tdefaultImageHeight:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.height ?? 0,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tfeaturedImageSizeSlug,\n\t\t\tpostsToShow,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tcategories,\n\t\t\tselectedAuthor,\n\t\t]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticeStore );\n\tlet noticeId;\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\t// Remove previous warning if any, to show one at a time per block.\n\t\tremoveNotice( noticeId );\n\t\tnoticeId = `block-library/core/latest-posts/redirection-prevented/${ instanceId }`;\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: noticeId,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce(\n\t\t\t( accumulator, category ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ category.name ]: category,\n\t\t\t} ),\n\t\t\t{}\n\t\t) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Post content' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<RadioControl\n\t\t\t\t\t\tlabel={ __( 'Show:' ) }\n\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: value,\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\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Post meta' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Featured image' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BaseControl className=\"editor-latest-posts-image-alignment-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageAlign: value,\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\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisCollapsed={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\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\taddLinkToFeaturedImage: 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/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t<QueryControls\n\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t}\n\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t/>\n\n\t\t\t\t{ postLayout === 'grid' && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t! hasPosts\n\t\t\t\t\t\t\t\t? MAX_POSTS_COLUMNS\n\t\t\t\t\t\t\t\t: Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_POSTS_COLUMNS,\n\t\t\t\t\t\t\t\t\t\tlatestPosts.length\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: _x( 'List view', 'Latest posts block display setting' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'list' } ),\n\t\t\tisActive: postLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: _x( 'Grid view', 'Latest posts block display setting' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'grid' } ),\n\t\t\tisActive: postLayout === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = authorList?.find(\n\t\t\t\t\t\t( author ) => author.id === post.author\n\t\t\t\t\t);\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = clsx( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Hidden accessibility text: Post title */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'… <a>Read more<span>: %1$s</span></a>'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\ttitleTrimmed || __( '(no title)' )\n\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\ta: (\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__read-more\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\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\tspan: (\n\t\t\t\t\t\t\t\t\t\t<span className=\"screen-reader-text\" />\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) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ post.id }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\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{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: current author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.raw.trim(),\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</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}