@wordpress/block-library 7.6.0 → 7.9.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 (774) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/audio/edit.js +1 -0
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/index.js +6 -1
  5. package/build/audio/index.js.map +1 -1
  6. package/build/audio/save.js +2 -1
  7. package/build/audio/save.js.map +1 -1
  8. package/build/avatar/hooks.js +2 -2
  9. package/build/avatar/hooks.js.map +1 -1
  10. package/build/block/edit.js.map +1 -1
  11. package/build/block/edit.native.js.map +1 -1
  12. package/build/button/deprecated.js +175 -35
  13. package/build/button/deprecated.js.map +1 -1
  14. package/build/button/edit.js +1 -1
  15. package/build/button/edit.js.map +1 -1
  16. package/build/button/edit.native.js.map +1 -1
  17. package/build/button/save.js +1 -1
  18. package/build/button/save.js.map +1 -1
  19. package/build/buttons/deprecated.js.map +1 -1
  20. package/build/buttons/edit.js.map +1 -1
  21. package/build/buttons/edit.native.js.map +1 -1
  22. package/build/column/deprecated.js.map +1 -1
  23. package/build/column/edit.js.map +1 -1
  24. package/build/column/edit.native.js.map +1 -1
  25. package/build/columns/deprecated.js.map +1 -1
  26. package/build/columns/edit.js +1 -1
  27. package/build/columns/edit.js.map +1 -1
  28. package/build/columns/edit.native.js +1 -1
  29. package/build/columns/edit.native.js.map +1 -1
  30. package/build/columns/index.js +3 -1
  31. package/build/columns/index.js.map +1 -1
  32. package/build/columns/utils.js +1 -1
  33. package/build/columns/utils.js.map +1 -1
  34. package/build/columns/variations.js +2 -2
  35. package/build/columns/variations.js.map +1 -1
  36. package/build/comment-author-name/edit.js +3 -3
  37. package/build/comment-author-name/edit.js.map +1 -1
  38. package/build/comment-author-name/index.js +0 -4
  39. package/build/comment-author-name/index.js.map +1 -1
  40. package/build/comment-date/edit.js +4 -4
  41. package/build/comment-date/edit.js.map +1 -1
  42. package/build/comment-date/index.js +0 -4
  43. package/build/comment-date/index.js.map +1 -1
  44. package/build/comment-edit-link/index.js +0 -4
  45. package/build/comment-edit-link/index.js.map +1 -1
  46. package/build/comment-reply-link/index.js +0 -4
  47. package/build/comment-reply-link/index.js.map +1 -1
  48. package/build/comments/edit.js +10 -2
  49. package/build/comments/edit.js.map +1 -1
  50. package/build/comments-title/deprecated.js +0 -3
  51. package/build/comments-title/deprecated.js.map +1 -1
  52. package/build/comments-title/edit.js +1 -1
  53. package/build/comments-title/edit.js.map +1 -1
  54. package/build/cover/controls.native.js.map +1 -1
  55. package/build/cover/deprecated.js +212 -207
  56. package/build/cover/deprecated.js.map +1 -1
  57. package/build/cover/edit/block-controls.js +3 -10
  58. package/build/cover/edit/block-controls.js.map +1 -1
  59. package/build/cover/edit/index.js +34 -31
  60. package/build/cover/edit/index.js.map +1 -1
  61. package/build/cover/edit/inspector-controls.js +34 -6
  62. package/build/cover/edit/inspector-controls.js.map +1 -1
  63. package/build/cover/edit.native.js.map +1 -1
  64. package/build/cover/index.js +1 -0
  65. package/build/cover/index.js.map +1 -1
  66. package/build/cover/save.js +18 -5
  67. package/build/cover/save.js.map +1 -1
  68. package/build/cover/shared.js +14 -17
  69. package/build/cover/shared.js.map +1 -1
  70. package/build/cover/transforms.js.map +1 -1
  71. package/build/embed/deprecated.js +6 -1
  72. package/build/embed/deprecated.js.map +1 -1
  73. package/build/embed/edit.js.map +1 -1
  74. package/build/embed/edit.native.js.map +1 -1
  75. package/build/embed/embed-controls.native.js.map +1 -1
  76. package/build/embed/embed-preview.js +1 -0
  77. package/build/embed/embed-preview.js.map +1 -1
  78. package/build/embed/icons.js +21 -1
  79. package/build/embed/icons.js.map +1 -1
  80. package/build/embed/index.js +6 -1
  81. package/build/embed/index.js.map +1 -1
  82. package/build/embed/save.js +1 -0
  83. package/build/embed/save.js.map +1 -1
  84. package/build/embed/transforms.js +6 -1
  85. package/build/embed/transforms.js.map +1 -1
  86. package/build/embed/util.js +6 -1
  87. package/build/embed/util.js.map +1 -1
  88. package/build/embed/variations.js +11 -0
  89. package/build/embed/variations.js.map +1 -1
  90. package/build/file/edit.js +1 -1
  91. package/build/file/edit.js.map +1 -1
  92. package/build/file/edit.native.js.map +1 -1
  93. package/build/file/index.js.map +1 -1
  94. package/build/file/save.js +9 -1
  95. package/build/file/save.js.map +1 -1
  96. package/build/gallery/edit.js +1 -1
  97. package/build/gallery/edit.js.map +1 -1
  98. package/build/gallery/gallery.js +1 -1
  99. package/build/gallery/gallery.js.map +1 -1
  100. package/build/gallery/gallery.native.js.map +1 -1
  101. package/build/gallery/gap-styles.js +14 -4
  102. package/build/gallery/gap-styles.js.map +1 -1
  103. package/build/gallery/index.js +1 -1
  104. package/build/gallery/index.js.map +1 -1
  105. package/build/gallery/save.js +1 -1
  106. package/build/gallery/save.js.map +1 -1
  107. package/build/gallery/shared.js +27 -10
  108. package/build/gallery/shared.js.map +1 -1
  109. package/build/gallery/transforms.js +2 -2
  110. package/build/gallery/transforms.js.map +1 -1
  111. package/build/gallery/v1/edit.js +3 -3
  112. package/build/gallery/v1/edit.js.map +1 -1
  113. package/build/gallery/v1/gallery-image.js +1 -0
  114. package/build/gallery/v1/gallery-image.js.map +1 -1
  115. package/build/gallery/v1/gallery-image.native.js.map +1 -1
  116. package/build/gallery/v1/gallery.js +1 -1
  117. package/build/gallery/v1/gallery.js.map +1 -1
  118. package/build/gallery/v1/save.js +10 -2
  119. package/build/gallery/v1/save.js.map +1 -1
  120. package/build/group/index.js +1 -0
  121. package/build/group/index.js.map +1 -1
  122. package/build/heading/autogenerate-anchors.js +7 -2
  123. package/build/heading/autogenerate-anchors.js.map +1 -1
  124. package/build/heading/deprecated.js.map +1 -1
  125. package/build/heading/edit.js.map +1 -1
  126. package/build/html/edit.js +11 -20
  127. package/build/html/edit.js.map +1 -1
  128. package/build/html/preview.js +48 -0
  129. package/build/html/preview.js.map +1 -0
  130. package/build/image/deprecated.js.map +1 -1
  131. package/build/image/edit.js +5 -59
  132. package/build/image/edit.js.map +1 -1
  133. package/build/image/edit.native.js +58 -4
  134. package/build/image/edit.native.js.map +1 -1
  135. package/build/image/image.js +4 -13
  136. package/build/image/image.js.map +1 -1
  137. package/build/image/index.js +5 -0
  138. package/build/image/index.js.map +1 -1
  139. package/build/image/save.js +1 -0
  140. package/build/image/save.js.map +1 -1
  141. package/build/image/transforms.js.map +1 -1
  142. package/build/image/utils.js +2 -1
  143. package/build/image/utils.js.map +1 -1
  144. package/build/index.js +1 -1
  145. package/build/index.js.map +1 -1
  146. package/build/latest-comments/edit.js.map +1 -1
  147. package/build/latest-posts/edit.js +1 -1
  148. package/build/latest-posts/edit.js.map +1 -1
  149. package/build/latest-posts/edit.native.js.map +1 -1
  150. package/build/list/index.js.map +1 -1
  151. package/build/list/v2/edit.js.map +1 -1
  152. package/build/list/v2/transforms.js +33 -17
  153. package/build/list/v2/transforms.js.map +1 -1
  154. package/build/list-item/hooks/use-backspace.js.map +1 -1
  155. package/build/list-item/hooks/use-enter.js +7 -4
  156. package/build/list-item/hooks/use-enter.js.map +1 -1
  157. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  158. package/build/list-item/hooks/use-outdent-list-item.js +36 -15
  159. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  160. package/build/list-item/hooks/use-space.js.map +1 -1
  161. package/build/list-item/hooks/use-split.js +17 -3
  162. package/build/list-item/hooks/use-split.js.map +1 -1
  163. package/build/media-text/deprecated.js +5 -3
  164. package/build/media-text/deprecated.js.map +1 -1
  165. package/build/media-text/edit.native.js.map +1 -1
  166. package/build/media-text/media-container.js +3 -3
  167. package/build/media-text/media-container.js.map +1 -1
  168. package/build/media-text/media-container.native.js.map +1 -1
  169. package/build/media-text/save.js +3 -1
  170. package/build/media-text/save.js.map +1 -1
  171. package/build/missing/edit.native.js.map +1 -1
  172. package/build/navigation/deprecated.js.map +1 -1
  173. package/build/navigation/edit/index.js +1 -1
  174. package/build/navigation/edit/index.js.map +1 -1
  175. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  176. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  177. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  178. package/build/navigation/index.js +9 -0
  179. package/build/navigation/index.js.map +1 -1
  180. package/build/navigation/use-navigation-entities.js.map +1 -1
  181. package/build/navigation/use-navigation-menu.js +72 -38
  182. package/build/navigation/use-navigation-menu.js.map +1 -1
  183. package/build/navigation/use-template-part-area-label.js +4 -1
  184. package/build/navigation/use-template-part-area-label.js.map +1 -1
  185. package/build/navigation/view.js +5 -3
  186. package/build/navigation/view.js.map +1 -1
  187. package/build/navigation-link/edit.js +44 -12
  188. package/build/navigation-link/edit.js.map +1 -1
  189. package/build/navigation-submenu/edit.js.map +1 -1
  190. package/build/navigation-submenu/view.js +5 -3
  191. package/build/navigation-submenu/view.js.map +1 -1
  192. package/build/page-list/convert-to-links-modal.js.map +1 -1
  193. package/build/page-list/edit.js.map +1 -1
  194. package/build/paragraph/deprecated.js +1 -1
  195. package/build/paragraph/deprecated.js.map +1 -1
  196. package/build/pattern/edit.js.map +1 -1
  197. package/build/post-author/edit.js.map +1 -1
  198. package/build/post-author-name/index.js +3 -0
  199. package/build/post-author-name/index.js.map +1 -1
  200. package/build/post-author-name/transforms.js +41 -0
  201. package/build/post-author-name/transforms.js.map +1 -0
  202. package/build/post-comments-form/edit.js +12 -2
  203. package/build/post-comments-form/edit.js.map +1 -1
  204. package/build/post-comments-form/form.js +11 -1
  205. package/build/post-comments-form/form.js.map +1 -1
  206. package/build/post-content/edit.js.map +1 -1
  207. package/build/post-date/edit.js +13 -7
  208. package/build/post-date/edit.js.map +1 -1
  209. package/build/post-featured-image/edit.js +10 -24
  210. package/build/post-featured-image/edit.js.map +1 -1
  211. package/build/post-navigation-link/index.js +4 -0
  212. package/build/post-navigation-link/index.js.map +1 -1
  213. package/build/pullquote/deprecated.js.map +1 -1
  214. package/build/query/edit/index.js +5 -1
  215. package/build/query/edit/index.js.map +1 -1
  216. package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
  217. package/build/query/edit/query-toolbar.js +16 -2
  218. package/build/query/edit/query-toolbar.js.map +1 -1
  219. package/build/quote/v2/edit.js.map +1 -1
  220. package/build/search/edit.js +1 -1
  221. package/build/search/edit.js.map +1 -1
  222. package/build/search/edit.native.js.map +1 -1
  223. package/build/search/index.js +4 -0
  224. package/build/search/index.js.map +1 -1
  225. package/build/separator/use-deprecated-opacity.js.map +1 -1
  226. package/build/shortcode/edit.native.js +16 -13
  227. package/build/shortcode/edit.native.js.map +1 -1
  228. package/build/site-logo/edit.js +3 -12
  229. package/build/site-logo/edit.js.map +1 -1
  230. package/build/social-links/deprecated.js.map +1 -1
  231. package/build/social-links/edit.js +2 -2
  232. package/build/social-links/edit.js.map +1 -1
  233. package/build/social-links/edit.native.js.map +1 -1
  234. package/build/spacer/controls.js.map +1 -1
  235. package/build/table/deprecated.js.map +1 -1
  236. package/build/table/edit.js +1 -0
  237. package/build/table/edit.js.map +1 -1
  238. package/build/table/index.js +6 -1
  239. package/build/table/index.js.map +1 -1
  240. package/build/table/save.js +2 -1
  241. package/build/table/save.js.map +1 -1
  242. package/build/table/state.js.map +1 -1
  243. package/build/table-of-contents/edit.js +11 -3
  244. package/build/table-of-contents/edit.js.map +1 -1
  245. package/build/tag-cloud/edit.js.map +1 -1
  246. package/build/template-part/edit/advanced-controls.js +4 -1
  247. package/build/template-part/edit/advanced-controls.js.map +1 -1
  248. package/build/template-part/edit/index.js.map +1 -1
  249. package/build/template-part/edit/utils/hooks.js +4 -1
  250. package/build/template-part/edit/utils/hooks.js.map +1 -1
  251. package/build/transformationCategories.native.js.map +1 -1
  252. package/build/video/edit-common-settings.js.map +1 -1
  253. package/build/video/edit.js +1 -0
  254. package/build/video/edit.js.map +1 -1
  255. package/build/video/edit.native.js +43 -0
  256. package/build/video/edit.native.js.map +1 -1
  257. package/build/video/index.js +6 -1
  258. package/build/video/index.js.map +1 -1
  259. package/build/video/save.js +1 -0
  260. package/build/video/save.js.map +1 -1
  261. package/build-module/audio/edit.js +2 -1
  262. package/build-module/audio/edit.js.map +1 -1
  263. package/build-module/audio/index.js +6 -1
  264. package/build-module/audio/index.js.map +1 -1
  265. package/build-module/audio/save.js +3 -2
  266. package/build-module/audio/save.js.map +1 -1
  267. package/build-module/avatar/hooks.js +2 -2
  268. package/build-module/avatar/hooks.js.map +1 -1
  269. package/build-module/block/edit.js.map +1 -1
  270. package/build-module/block/edit.native.js.map +1 -1
  271. package/build-module/button/deprecated.js +175 -35
  272. package/build-module/button/deprecated.js.map +1 -1
  273. package/build-module/button/edit.js +2 -2
  274. package/build-module/button/edit.js.map +1 -1
  275. package/build-module/button/edit.native.js.map +1 -1
  276. package/build-module/button/save.js +2 -2
  277. package/build-module/button/save.js.map +1 -1
  278. package/build-module/buttons/deprecated.js.map +1 -1
  279. package/build-module/buttons/edit.js.map +1 -1
  280. package/build-module/buttons/edit.native.js.map +1 -1
  281. package/build-module/column/deprecated.js.map +1 -1
  282. package/build-module/column/edit.js.map +1 -1
  283. package/build-module/column/edit.native.js.map +1 -1
  284. package/build-module/columns/deprecated.js.map +1 -1
  285. package/build-module/columns/edit.js +2 -2
  286. package/build-module/columns/edit.js.map +1 -1
  287. package/build-module/columns/edit.native.js +2 -2
  288. package/build-module/columns/edit.native.js.map +1 -1
  289. package/build-module/columns/index.js +3 -1
  290. package/build-module/columns/index.js.map +1 -1
  291. package/build-module/columns/utils.js +2 -2
  292. package/build-module/columns/utils.js.map +1 -1
  293. package/build-module/columns/variations.js +2 -2
  294. package/build-module/columns/variations.js.map +1 -1
  295. package/build-module/comment-author-name/edit.js +3 -3
  296. package/build-module/comment-author-name/edit.js.map +1 -1
  297. package/build-module/comment-author-name/index.js +0 -4
  298. package/build-module/comment-author-name/index.js.map +1 -1
  299. package/build-module/comment-date/edit.js +4 -4
  300. package/build-module/comment-date/edit.js.map +1 -1
  301. package/build-module/comment-date/index.js +0 -4
  302. package/build-module/comment-date/index.js.map +1 -1
  303. package/build-module/comment-edit-link/index.js +0 -4
  304. package/build-module/comment-edit-link/index.js.map +1 -1
  305. package/build-module/comment-reply-link/index.js +0 -4
  306. package/build-module/comment-reply-link/index.js.map +1 -1
  307. package/build-module/comments/edit.js +10 -2
  308. package/build-module/comments/edit.js.map +1 -1
  309. package/build-module/comments-title/deprecated.js +0 -3
  310. package/build-module/comments-title/deprecated.js.map +1 -1
  311. package/build-module/comments-title/edit.js +1 -1
  312. package/build-module/comments-title/edit.js.map +1 -1
  313. package/build-module/cover/controls.native.js.map +1 -1
  314. package/build-module/cover/deprecated.js +206 -198
  315. package/build-module/cover/deprecated.js.map +1 -1
  316. package/build-module/cover/edit/block-controls.js +3 -8
  317. package/build-module/cover/edit/block-controls.js.map +1 -1
  318. package/build-module/cover/edit/index.js +36 -33
  319. package/build-module/cover/edit/index.js.map +1 -1
  320. package/build-module/cover/edit/inspector-controls.js +32 -7
  321. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  322. package/build-module/cover/edit.native.js.map +1 -1
  323. package/build-module/cover/index.js +1 -0
  324. package/build-module/cover/index.js.map +1 -1
  325. package/build-module/cover/save.js +19 -6
  326. package/build-module/cover/save.js.map +1 -1
  327. package/build-module/cover/shared.js +11 -12
  328. package/build-module/cover/shared.js.map +1 -1
  329. package/build-module/cover/transforms.js.map +1 -1
  330. package/build-module/embed/deprecated.js +6 -1
  331. package/build-module/embed/deprecated.js.map +1 -1
  332. package/build-module/embed/edit.js.map +1 -1
  333. package/build-module/embed/edit.native.js.map +1 -1
  334. package/build-module/embed/embed-controls.native.js.map +1 -1
  335. package/build-module/embed/embed-preview.js +2 -1
  336. package/build-module/embed/embed-preview.js.map +1 -1
  337. package/build-module/embed/icons.js +19 -0
  338. package/build-module/embed/icons.js.map +1 -1
  339. package/build-module/embed/index.js +6 -1
  340. package/build-module/embed/index.js.map +1 -1
  341. package/build-module/embed/save.js +2 -1
  342. package/build-module/embed/save.js.map +1 -1
  343. package/build-module/embed/transforms.js +6 -1
  344. package/build-module/embed/transforms.js.map +1 -1
  345. package/build-module/embed/util.js +6 -1
  346. package/build-module/embed/util.js.map +1 -1
  347. package/build-module/embed/variations.js +12 -1
  348. package/build-module/embed/variations.js.map +1 -1
  349. package/build-module/file/edit.js +2 -2
  350. package/build-module/file/edit.js.map +1 -1
  351. package/build-module/file/edit.native.js.map +1 -1
  352. package/build-module/file/index.js.map +1 -1
  353. package/build-module/file/save.js +7 -2
  354. package/build-module/file/save.js.map +1 -1
  355. package/build-module/gallery/edit.js +2 -2
  356. package/build-module/gallery/edit.js.map +1 -1
  357. package/build-module/gallery/gallery.js +2 -2
  358. package/build-module/gallery/gallery.js.map +1 -1
  359. package/build-module/gallery/gallery.native.js.map +1 -1
  360. package/build-module/gallery/gap-styles.js +14 -4
  361. package/build-module/gallery/gap-styles.js.map +1 -1
  362. package/build-module/gallery/index.js +1 -1
  363. package/build-module/gallery/index.js.map +1 -1
  364. package/build-module/gallery/save.js +2 -2
  365. package/build-module/gallery/save.js.map +1 -1
  366. package/build-module/gallery/shared.js +25 -8
  367. package/build-module/gallery/shared.js.map +1 -1
  368. package/build-module/gallery/transforms.js +3 -3
  369. package/build-module/gallery/transforms.js.map +1 -1
  370. package/build-module/gallery/v1/edit.js +4 -4
  371. package/build-module/gallery/v1/edit.js.map +1 -1
  372. package/build-module/gallery/v1/gallery-image.js +2 -1
  373. package/build-module/gallery/v1/gallery-image.js.map +1 -1
  374. package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
  375. package/build-module/gallery/v1/gallery.js +2 -2
  376. package/build-module/gallery/v1/gallery.js.map +1 -1
  377. package/build-module/gallery/v1/save.js +8 -3
  378. package/build-module/gallery/v1/save.js.map +1 -1
  379. package/build-module/group/index.js +1 -0
  380. package/build-module/group/index.js.map +1 -1
  381. package/build-module/heading/autogenerate-anchors.js +5 -2
  382. package/build-module/heading/autogenerate-anchors.js.map +1 -1
  383. package/build-module/heading/deprecated.js.map +1 -1
  384. package/build-module/heading/edit.js.map +1 -1
  385. package/build-module/html/edit.js +12 -23
  386. package/build-module/html/edit.js.map +1 -1
  387. package/build-module/html/preview.js +38 -0
  388. package/build-module/html/preview.js.map +1 -0
  389. package/build-module/image/deprecated.js.map +1 -1
  390. package/build-module/image/edit.js +5 -56
  391. package/build-module/image/edit.js.map +1 -1
  392. package/build-module/image/edit.native.js +59 -6
  393. package/build-module/image/edit.native.js.map +1 -1
  394. package/build-module/image/image.js +6 -15
  395. package/build-module/image/image.js.map +1 -1
  396. package/build-module/image/index.js +5 -0
  397. package/build-module/image/index.js.map +1 -1
  398. package/build-module/image/save.js +2 -1
  399. package/build-module/image/save.js.map +1 -1
  400. package/build-module/image/transforms.js.map +1 -1
  401. package/build-module/image/utils.js +2 -2
  402. package/build-module/image/utils.js.map +1 -1
  403. package/build-module/index.js +1 -1
  404. package/build-module/index.js.map +1 -1
  405. package/build-module/latest-comments/edit.js.map +1 -1
  406. package/build-module/latest-posts/edit.js +2 -2
  407. package/build-module/latest-posts/edit.js.map +1 -1
  408. package/build-module/latest-posts/edit.native.js.map +1 -1
  409. package/build-module/list/index.js.map +1 -1
  410. package/build-module/list/v2/edit.js.map +1 -1
  411. package/build-module/list/v2/transforms.js +32 -17
  412. package/build-module/list/v2/transforms.js.map +1 -1
  413. package/build-module/list-item/hooks/use-backspace.js.map +1 -1
  414. package/build-module/list-item/hooks/use-enter.js +7 -4
  415. package/build-module/list-item/hooks/use-enter.js.map +1 -1
  416. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  417. package/build-module/list-item/hooks/use-outdent-list-item.js +34 -15
  418. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  419. package/build-module/list-item/hooks/use-space.js.map +1 -1
  420. package/build-module/list-item/hooks/use-split.js +19 -5
  421. package/build-module/list-item/hooks/use-split.js.map +1 -1
  422. package/build-module/media-text/deprecated.js +3 -1
  423. package/build-module/media-text/deprecated.js.map +1 -1
  424. package/build-module/media-text/edit.native.js.map +1 -1
  425. package/build-module/media-text/media-container.js +3 -1
  426. package/build-module/media-text/media-container.js.map +1 -1
  427. package/build-module/media-text/media-container.native.js.map +1 -1
  428. package/build-module/media-text/save.js +4 -1
  429. package/build-module/media-text/save.js.map +1 -1
  430. package/build-module/missing/edit.native.js.map +1 -1
  431. package/build-module/navigation/deprecated.js.map +1 -1
  432. package/build-module/navigation/edit/index.js +1 -1
  433. package/build-module/navigation/edit/index.js.map +1 -1
  434. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  435. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  436. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  437. package/build-module/navigation/index.js +9 -0
  438. package/build-module/navigation/index.js.map +1 -1
  439. package/build-module/navigation/use-navigation-entities.js.map +1 -1
  440. package/build-module/navigation/use-navigation-menu.js +73 -39
  441. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  442. package/build-module/navigation/use-template-part-area-label.js +4 -1
  443. package/build-module/navigation/use-template-part-area-label.js.map +1 -1
  444. package/build-module/navigation/view.js +5 -3
  445. package/build-module/navigation/view.js.map +1 -1
  446. package/build-module/navigation-link/edit.js +44 -13
  447. package/build-module/navigation-link/edit.js.map +1 -1
  448. package/build-module/navigation-submenu/edit.js.map +1 -1
  449. package/build-module/navigation-submenu/view.js +5 -3
  450. package/build-module/navigation-submenu/view.js.map +1 -1
  451. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  452. package/build-module/page-list/edit.js.map +1 -1
  453. package/build-module/paragraph/deprecated.js +2 -2
  454. package/build-module/paragraph/deprecated.js.map +1 -1
  455. package/build-module/pattern/edit.js.map +1 -1
  456. package/build-module/post-author/edit.js.map +1 -1
  457. package/build-module/post-author-name/index.js +2 -0
  458. package/build-module/post-author-name/index.js.map +1 -1
  459. package/build-module/post-author-name/transforms.js +32 -0
  460. package/build-module/post-author-name/transforms.js.map +1 -0
  461. package/build-module/post-comments-form/edit.js +12 -3
  462. package/build-module/post-comments-form/edit.js.map +1 -1
  463. package/build-module/post-comments-form/form.js +7 -1
  464. package/build-module/post-comments-form/form.js.map +1 -1
  465. package/build-module/post-content/edit.js.map +1 -1
  466. package/build-module/post-date/edit.js +15 -9
  467. package/build-module/post-date/edit.js.map +1 -1
  468. package/build-module/post-featured-image/edit.js +10 -23
  469. package/build-module/post-featured-image/edit.js.map +1 -1
  470. package/build-module/post-navigation-link/index.js +4 -0
  471. package/build-module/post-navigation-link/index.js.map +1 -1
  472. package/build-module/pullquote/deprecated.js.map +1 -1
  473. package/build-module/query/edit/index.js +5 -1
  474. package/build-module/query/edit/index.js.map +1 -1
  475. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
  476. package/build-module/query/edit/query-toolbar.js +14 -2
  477. package/build-module/query/edit/query-toolbar.js.map +1 -1
  478. package/build-module/quote/v2/edit.js.map +1 -1
  479. package/build-module/search/edit.js +2 -2
  480. package/build-module/search/edit.js.map +1 -1
  481. package/build-module/search/edit.native.js.map +1 -1
  482. package/build-module/search/index.js +4 -0
  483. package/build-module/search/index.js.map +1 -1
  484. package/build-module/separator/use-deprecated-opacity.js.map +1 -1
  485. package/build-module/shortcode/edit.native.js +17 -13
  486. package/build-module/shortcode/edit.native.js.map +1 -1
  487. package/build-module/site-logo/edit.js +3 -11
  488. package/build-module/site-logo/edit.js.map +1 -1
  489. package/build-module/social-links/deprecated.js.map +1 -1
  490. package/build-module/social-links/edit.js +2 -2
  491. package/build-module/social-links/edit.js.map +1 -1
  492. package/build-module/social-links/edit.native.js.map +1 -1
  493. package/build-module/spacer/controls.js.map +1 -1
  494. package/build-module/table/deprecated.js.map +1 -1
  495. package/build-module/table/edit.js +2 -1
  496. package/build-module/table/edit.js.map +1 -1
  497. package/build-module/table/index.js +6 -1
  498. package/build-module/table/index.js.map +1 -1
  499. package/build-module/table/save.js +3 -2
  500. package/build-module/table/save.js.map +1 -1
  501. package/build-module/table/state.js.map +1 -1
  502. package/build-module/table-of-contents/edit.js +12 -4
  503. package/build-module/table-of-contents/edit.js.map +1 -1
  504. package/build-module/tag-cloud/edit.js.map +1 -1
  505. package/build-module/template-part/edit/advanced-controls.js +4 -1
  506. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  507. package/build-module/template-part/edit/index.js.map +1 -1
  508. package/build-module/template-part/edit/utils/hooks.js +4 -1
  509. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  510. package/build-module/transformationCategories.native.js.map +1 -1
  511. package/build-module/video/edit-common-settings.js.map +1 -1
  512. package/build-module/video/edit.js +2 -1
  513. package/build-module/video/edit.js.map +1 -1
  514. package/build-module/video/edit.native.js +42 -1
  515. package/build-module/video/edit.native.js.map +1 -1
  516. package/build-module/video/index.js +6 -1
  517. package/build-module/video/index.js.map +1 -1
  518. package/build-module/video/save.js +2 -1
  519. package/build-module/video/save.js.map +1 -1
  520. package/build-style/audio/style-rtl.css +0 -3
  521. package/build-style/audio/style.css +0 -3
  522. package/build-style/button/style-rtl.css +5 -5
  523. package/build-style/button/style.css +5 -5
  524. package/build-style/common-rtl.css +1 -3
  525. package/build-style/common.css +1 -3
  526. package/build-style/cover/editor-rtl.css +11 -0
  527. package/build-style/cover/editor.css +11 -0
  528. package/build-style/cover/style-rtl.css +33 -25
  529. package/build-style/cover/style.css +33 -25
  530. package/build-style/editor-rtl.css +14 -39
  531. package/build-style/editor.css +14 -39
  532. package/build-style/embed/style-rtl.css +0 -1
  533. package/build-style/embed/style.css +0 -1
  534. package/build-style/file/style-rtl.css +11 -12
  535. package/build-style/file/style.css +11 -12
  536. package/build-style/gallery/style-rtl.css +2 -4
  537. package/build-style/gallery/style.css +2 -4
  538. package/build-style/image/style-rtl.css +0 -3
  539. package/build-style/image/style.css +0 -3
  540. package/build-style/navigation/style-rtl.css +9 -1
  541. package/build-style/navigation/style.css +9 -1
  542. package/build-style/post-comments/style-rtl.css +2 -1
  543. package/build-style/post-comments/style.css +2 -1
  544. package/build-style/post-comments-form/editor-rtl.css +3 -0
  545. package/build-style/post-comments-form/editor.css +3 -0
  546. package/build-style/post-featured-image/editor-rtl.css +0 -27
  547. package/build-style/post-featured-image/editor.css +0 -27
  548. package/build-style/post-template/style-rtl.css +9 -18
  549. package/build-style/post-template/style.css +9 -18
  550. package/build-style/search/style-rtl.css +9 -11
  551. package/build-style/search/style.css +9 -11
  552. package/build-style/site-logo/editor-rtl.css +0 -12
  553. package/build-style/site-logo/editor.css +0 -12
  554. package/build-style/site-logo/style-rtl.css +4 -0
  555. package/build-style/site-logo/style.css +4 -0
  556. package/build-style/style-rtl.css +86 -93
  557. package/build-style/style.css +86 -93
  558. package/build-style/table/style-rtl.css +0 -1
  559. package/build-style/table/style.css +0 -1
  560. package/build-style/video/style-rtl.css +1 -5
  561. package/build-style/video/style.css +1 -5
  562. package/package.json +30 -29
  563. package/src/audio/block.json +6 -1
  564. package/src/audio/edit.js +4 -0
  565. package/src/audio/index.js +1 -2
  566. package/src/audio/save.js +12 -2
  567. package/src/audio/style.scss +0 -2
  568. package/src/avatar/hooks.js +2 -2
  569. package/src/block/edit.js +4 -6
  570. package/src/block/edit.native.js +12 -16
  571. package/src/block/test/edit.native.js +5 -8
  572. package/src/button/deprecated.js +145 -36
  573. package/src/button/edit.js +7 -11
  574. package/src/button/edit.native.js +2 -3
  575. package/src/button/save.js +5 -11
  576. package/src/button/style.scss +10 -5
  577. package/src/buttons/deprecated.js +4 -6
  578. package/src/buttons/edit.js +3 -3
  579. package/src/buttons/edit.native.js +7 -11
  580. package/src/buttons/test/__snapshots__/edit.native.js.snap +1 -1
  581. package/src/buttons/test/edit.native.js +1 -1
  582. package/src/column/deprecated.js +2 -1
  583. package/src/column/edit.js +2 -3
  584. package/src/column/edit.native.js +2 -2
  585. package/src/columns/block.json +3 -1
  586. package/src/columns/deprecated.js +4 -2
  587. package/src/columns/edit.js +6 -7
  588. package/src/columns/edit.native.js +12 -16
  589. package/src/columns/index.js +1 -2
  590. package/src/columns/utils.js +5 -3
  591. package/src/columns/variations.js +2 -2
  592. package/src/comment-author-name/block.json +0 -4
  593. package/src/comment-author-name/edit.js +3 -12
  594. package/src/comment-date/block.json +0 -4
  595. package/src/comment-date/edit.js +10 -14
  596. package/src/comment-date/index.php +0 -3
  597. package/src/comment-edit-link/block.json +0 -4
  598. package/src/comment-reply-link/block.json +0 -4
  599. package/src/comments/edit.js +24 -4
  600. package/src/comments-title/deprecated.js +0 -2
  601. package/src/comments-title/edit.js +1 -1
  602. package/src/comments-title/index.php +1 -1
  603. package/src/cover/block.json +1 -0
  604. package/src/cover/controls.native.js +2 -4
  605. package/src/cover/deprecated.js +237 -195
  606. package/src/cover/edit/block-controls.js +11 -20
  607. package/src/cover/edit/index.js +81 -66
  608. package/src/cover/edit/inspector-controls.js +38 -7
  609. package/src/cover/edit.native.js +8 -13
  610. package/src/cover/editor.scss +13 -0
  611. package/src/cover/index.php +21 -8
  612. package/src/cover/save.js +28 -16
  613. package/src/cover/shared.js +5 -7
  614. package/src/cover/style.scss +27 -22
  615. package/src/cover/test/edit.native.js +4 -7
  616. package/src/cover/transforms.js +2 -7
  617. package/src/embed/block.json +6 -1
  618. package/src/embed/edit.js +38 -40
  619. package/src/embed/edit.native.js +46 -49
  620. package/src/embed/embed-controls.native.js +2 -3
  621. package/src/embed/embed-preview.js +8 -1
  622. package/src/embed/icons.js +25 -0
  623. package/src/embed/save.js +10 -2
  624. package/src/embed/style.scss +0 -1
  625. package/src/embed/test/__snapshots__/index.native.js.snap +1 -1
  626. package/src/embed/test/index.native.js +24 -50
  627. package/src/embed/variations.js +10 -0
  628. package/src/file/edit.js +9 -5
  629. package/src/file/edit.native.js +14 -25
  630. package/src/file/index.js +1 -2
  631. package/src/file/save.js +14 -2
  632. package/src/file/style.scss +16 -15
  633. package/src/freeform/editor.scss +0 -2
  634. package/src/gallery/block.json +1 -1
  635. package/src/gallery/edit.js +8 -6
  636. package/src/gallery/gallery.js +9 -2
  637. package/src/gallery/gallery.native.js +2 -4
  638. package/src/gallery/gap-styles.js +21 -6
  639. package/src/gallery/index.js +2 -4
  640. package/src/gallery/index.php +27 -12
  641. package/src/gallery/save.js +5 -1
  642. package/src/gallery/shared.js +22 -9
  643. package/src/gallery/test/__snapshots__/index.native.js.snap +2 -2
  644. package/src/gallery/test/helpers.native.js +11 -198
  645. package/src/gallery/test/index.native.js +37 -63
  646. package/src/gallery/transforms.js +3 -3
  647. package/src/gallery/v1/edit.js +18 -24
  648. package/src/gallery/v1/gallery-image.js +10 -11
  649. package/src/gallery/v1/gallery-image.native.js +8 -17
  650. package/src/gallery/v1/gallery.js +8 -2
  651. package/src/gallery/v1/save.js +20 -3
  652. package/src/group/block.json +1 -0
  653. package/src/heading/autogenerate-anchors.js +8 -5
  654. package/src/heading/deprecated.js +6 -21
  655. package/src/heading/edit.js +2 -3
  656. package/src/html/edit.js +10 -40
  657. package/src/html/preview.js +46 -0
  658. package/src/image/block.json +5 -0
  659. package/src/image/deprecated.js +6 -29
  660. package/src/image/edit.js +1 -53
  661. package/src/image/edit.native.js +75 -24
  662. package/src/image/image.js +35 -49
  663. package/src/image/save.js +10 -2
  664. package/src/image/style.scss +0 -2
  665. package/src/image/styles.native.scss +11 -0
  666. package/src/image/test/edit.native.js +51 -19
  667. package/src/image/transforms.js +4 -3
  668. package/src/image/utils.js +2 -2
  669. package/src/index.js +1 -1
  670. package/src/latest-comments/edit.js +2 -6
  671. package/src/latest-posts/edit.js +6 -7
  672. package/src/latest-posts/edit.native.js +10 -15
  673. package/src/list/index.js +1 -2
  674. package/src/list/test/migrate.js +1 -2
  675. package/src/list/v2/edit.js +6 -9
  676. package/src/list/v2/transforms.js +22 -7
  677. package/src/list-item/hooks/use-backspace.js +2 -3
  678. package/src/list-item/hooks/use-enter.js +11 -9
  679. package/src/list-item/hooks/use-indent-list-item.js +2 -3
  680. package/src/list-item/hooks/use-outdent-list-item.js +50 -24
  681. package/src/list-item/hooks/use-space.js +2 -3
  682. package/src/list-item/hooks/use-split.js +18 -9
  683. package/src/media-text/deprecated.js +6 -3
  684. package/src/media-text/edit.native.js +2 -5
  685. package/src/media-text/media-container.js +1 -1
  686. package/src/media-text/media-container.native.js +6 -9
  687. package/src/media-text/save.js +2 -1
  688. package/src/missing/edit.native.js +2 -3
  689. package/src/missing/test/edit-integration.native.js +2 -3
  690. package/src/missing/test/edit.native.js +6 -9
  691. package/src/navigation/block.json +9 -0
  692. package/src/navigation/deprecated.js +2 -5
  693. package/src/navigation/edit/index.js +25 -36
  694. package/src/navigation/edit/navigation-menu-delete-control.js +2 -3
  695. package/src/navigation/edit/unsaved-inner-blocks.js +31 -30
  696. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -3
  697. package/src/navigation/style.scss +10 -1
  698. package/src/navigation/test/use-navigation-menu.js +241 -0
  699. package/src/navigation/use-navigation-entities.js +11 -13
  700. package/src/navigation/use-navigation-menu.js +95 -82
  701. package/src/navigation/use-template-part-area-label.js +8 -7
  702. package/src/navigation/view.js +7 -2
  703. package/src/navigation-link/edit.js +59 -25
  704. package/src/navigation-link/test/edit.js +2 -24
  705. package/src/navigation-submenu/edit.js +10 -20
  706. package/src/navigation-submenu/view.js +7 -2
  707. package/src/page-list/convert-to-links-modal.js +51 -54
  708. package/src/page-list/edit.js +6 -6
  709. package/src/page-list/test/convert-to-links-modal.js +6 -12
  710. package/src/paragraph/deprecated.js +2 -2
  711. package/src/pattern/edit.js +2 -4
  712. package/src/post-author/edit.js +2 -3
  713. package/src/post-author/index.php +3 -2
  714. package/src/post-author-name/index.js +2 -0
  715. package/src/post-author-name/index.php +1 -1
  716. package/src/post-author-name/transforms.js +25 -0
  717. package/src/post-comments/index.php +1 -1
  718. package/src/post-comments/style.scss +7 -3
  719. package/src/post-comments-form/edit.js +20 -3
  720. package/src/post-comments-form/editor.scss +4 -0
  721. package/src/post-comments-form/form.js +11 -1
  722. package/src/post-comments-form/index.php +1 -1
  723. package/src/post-content/edit.js +2 -3
  724. package/src/post-date/edit.js +4 -3
  725. package/src/post-featured-image/edit.js +14 -30
  726. package/src/post-featured-image/editor.scss +0 -29
  727. package/src/post-featured-image/index.php +4 -2
  728. package/src/post-navigation-link/block.json +4 -0
  729. package/src/post-template/index.php +15 -3
  730. package/src/post-template/style.scss +1 -7
  731. package/src/pullquote/deprecated.js +2 -1
  732. package/src/query/edit/index.js +10 -10
  733. package/src/query/edit/inspector-controls/parent-control.js +2 -3
  734. package/src/query/edit/query-toolbar.js +25 -5
  735. package/src/query-pagination/index.php +0 -1
  736. package/src/quote/v2/edit.js +4 -6
  737. package/src/quote/v2/test/migrate.js +1 -2
  738. package/src/search/block.json +4 -0
  739. package/src/search/edit.js +9 -13
  740. package/src/search/edit.native.js +4 -6
  741. package/src/search/index.php +38 -23
  742. package/src/search/style.scss +11 -9
  743. package/src/separator/use-deprecated-opacity.js +2 -4
  744. package/src/shortcode/edit.native.js +30 -15
  745. package/src/shortcode/style.native.scss +11 -4
  746. package/src/shortcode/test/__snapshots__/edit.native.js.snap +9 -0
  747. package/src/shortcode/test/edit.native.js +55 -40
  748. package/src/site-logo/edit.js +3 -17
  749. package/src/site-logo/editor.scss +0 -14
  750. package/src/site-logo/style.scss +6 -0
  751. package/src/social-links/deprecated.js +4 -2
  752. package/src/social-links/edit.js +11 -10
  753. package/src/social-links/edit.native.js +3 -5
  754. package/src/spacer/controls.js +2 -3
  755. package/src/spacer/test/index.native.js +10 -21
  756. package/src/table/block.json +6 -1
  757. package/src/table/deprecated.js +4 -8
  758. package/src/table/edit.js +2 -0
  759. package/src/table/save.js +6 -1
  760. package/src/table/state.js +2 -4
  761. package/src/table/style.scss +0 -1
  762. package/src/table-of-contents/edit.js +22 -13
  763. package/src/tag-cloud/edit.js +4 -7
  764. package/src/template-part/edit/advanced-controls.js +4 -4
  765. package/src/template-part/edit/index.js +6 -10
  766. package/src/template-part/edit/utils/hooks.js +8 -7
  767. package/src/transformationCategories.native.js +3 -3
  768. package/src/video/block.json +6 -1
  769. package/src/video/edit-common-settings.js +2 -8
  770. package/src/video/edit.js +4 -0
  771. package/src/video/edit.native.js +38 -16
  772. package/src/video/index.js +1 -2
  773. package/src/video/save.js +10 -2
  774. package/src/video/style.scss +0 -2
@@ -0,0 +1,46 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useMemo } from '@wordpress/element';
5
+ import {
6
+ transformStyles,
7
+ store as blockEditorStore,
8
+ } from '@wordpress/block-editor';
9
+ import { SandBox } from '@wordpress/components';
10
+ import { useSelect } from '@wordpress/data';
11
+
12
+ // Default styles used to unset some of the styles
13
+ // that might be inherited from the editor style.
14
+ const DEFAULT_STYLES = `
15
+ html,body,:root {
16
+ margin: 0 !important;
17
+ padding: 0 !important;
18
+ overflow: visible !important;
19
+ min-height: auto !important;
20
+ }
21
+ `;
22
+
23
+ export default function HTMLEditPreview( { content, isSelected } ) {
24
+ const settingStyles = useSelect( ( select ) => {
25
+ return select( blockEditorStore ).getSettings()?.styles;
26
+ }, [] );
27
+
28
+ const styles = useMemo(
29
+ () => [ DEFAULT_STYLES, ...transformStyles( settingStyles ) ],
30
+ [ settingStyles ]
31
+ );
32
+
33
+ return (
34
+ <>
35
+ <SandBox html={ content } styles={ styles } />
36
+ { /*
37
+ An overlay is added when the block is not selected in order to register click events.
38
+ Some browsers do not bubble up the clicks from the sandboxed iframe, which makes it
39
+ difficult to reselect the block.
40
+ */ }
41
+ { ! isSelected && (
42
+ <div className="block-library-html__preview-overlay"></div>
43
+ ) }
44
+ </>
45
+ );
46
+ }
@@ -88,6 +88,11 @@
88
88
  "__experimentalDefaultControls": {
89
89
  "radius": true
90
90
  }
91
+ },
92
+ "__experimentalStyle": {
93
+ "spacing": {
94
+ "margin": "0 0 1em 0"
95
+ }
91
96
  }
92
97
  },
93
98
  "styles": [
@@ -176,16 +176,8 @@ const deprecated = [
176
176
  {
177
177
  attributes: blockAttributes,
178
178
  save( { attributes } ) {
179
- const {
180
- url,
181
- alt,
182
- caption,
183
- align,
184
- href,
185
- width,
186
- height,
187
- id,
188
- } = attributes;
179
+ const { url, alt, caption, align, href, width, height, id } =
180
+ attributes;
189
181
 
190
182
  const classes = classnames( {
191
183
  [ `align${ align }` ]: align,
@@ -218,16 +210,8 @@ const deprecated = [
218
210
  {
219
211
  attributes: blockAttributes,
220
212
  save( { attributes } ) {
221
- const {
222
- url,
223
- alt,
224
- caption,
225
- align,
226
- href,
227
- width,
228
- height,
229
- id,
230
- } = attributes;
213
+ const { url, alt, caption, align, href, width, height, id } =
214
+ attributes;
231
215
 
232
216
  const image = (
233
217
  <img
@@ -255,15 +239,8 @@ const deprecated = [
255
239
  {
256
240
  attributes: blockAttributes,
257
241
  save( { attributes } ) {
258
- const {
259
- url,
260
- alt,
261
- caption,
262
- align,
263
- href,
264
- width,
265
- height,
266
- } = attributes;
242
+ const { url, alt, caption, align, href, width, height } =
243
+ attributes;
267
244
  const extraImageProps = width || height ? { width, height } : {};
268
245
  const image = (
269
246
  <img src={ url } alt={ alt } { ...extraImageProps } />
package/src/image/edit.js CHANGED
@@ -19,7 +19,7 @@ import {
19
19
  store as blockEditorStore,
20
20
  } from '@wordpress/block-editor';
21
21
  import { useEffect, useRef, useState } from '@wordpress/element';
22
- import { __, sprintf } from '@wordpress/i18n';
22
+ import { __ } from '@wordpress/i18n';
23
23
  import { image as icon } from '@wordpress/icons';
24
24
 
25
25
  /**
@@ -85,20 +85,6 @@ function hasDefaultSize( image, defaultSize ) {
85
85
  );
86
86
  }
87
87
 
88
- /**
89
- * Checks if a media attachment object has been "destroyed",
90
- * that is, removed from the media library. The core Media Library
91
- * adds a `destroyed` property to a deleted attachment object in the media collection.
92
- *
93
- * @param {number} id The attachment id.
94
- *
95
- * @return {boolean} Whether the image has been destroyed.
96
- */
97
- export function isMediaDestroyed( id ) {
98
- const attachment = window?.wp?.media?.attachment( id ) || {};
99
- return attachment.destroyed;
100
- }
101
-
102
88
  export function ImageEdit( {
103
89
  attributes,
104
90
  setAttributes,
@@ -139,41 +125,6 @@ export function ImageEdit( {
139
125
  return pick( getSettings(), [ 'imageDefaultSize', 'mediaUpload' ] );
140
126
  }, [] );
141
127
 
142
- // A callback passed to MediaUpload,
143
- // fired when the media modal closes.
144
- function onCloseModal() {
145
- if ( isMediaDestroyed( attributes?.id ) ) {
146
- setAttributes( {
147
- url: undefined,
148
- id: undefined,
149
- } );
150
- }
151
- }
152
-
153
- /*
154
- Runs an error callback if the image does not load.
155
- If the error callback is triggered, we infer that that image
156
- has been deleted.
157
- */
158
- function onImageError( isReplaced = false ) {
159
- noticeOperations.removeAllNotices();
160
- noticeOperations.createErrorNotice(
161
- sprintf(
162
- /* translators: %s url or missing image */
163
- __( 'Error loading image: %s' ),
164
- url
165
- )
166
- );
167
- // If the image block was not replaced with an embed,
168
- // clear the attributes and trigger the placeholder.
169
- if ( ! isReplaced ) {
170
- setAttributes( {
171
- url: undefined,
172
- id: undefined,
173
- } );
174
- }
175
- }
176
-
177
128
  function onUploadError( message ) {
178
129
  noticeOperations.removeAllNotices();
179
130
  noticeOperations.createErrorNotice( message );
@@ -372,8 +323,6 @@ export function ImageEdit( {
372
323
  containerRef={ ref }
373
324
  context={ context }
374
325
  clientId={ clientId }
375
- onCloseModal={ onCloseModal }
376
- onImageLoadError={ onImageError }
377
326
  />
378
327
  ) }
379
328
  { ! url && (
@@ -390,7 +339,6 @@ export function ImageEdit( {
390
339
  onSelectURL={ onSelectURL }
391
340
  notices={ noticeUI }
392
341
  onError={ onUploadError }
393
- onClose={ onCloseModal }
394
342
  accept="image/*"
395
343
  allowedTypes={ ALLOWED_MEDIA_TYPES }
396
344
  value={ { id, src } }
@@ -1,7 +1,12 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { View, TouchableWithoutFeedback } from 'react-native';
4
+ import {
5
+ ActivityIndicator,
6
+ Image as RNImage,
7
+ TouchableWithoutFeedback,
8
+ View,
9
+ } from 'react-native';
5
10
  import { useRoute } from '@react-navigation/native';
6
11
 
7
12
  /**
@@ -45,7 +50,7 @@ import {
45
50
  blockSettingsScreens,
46
51
  } from '@wordpress/block-editor';
47
52
  import { __, _x, sprintf } from '@wordpress/i18n';
48
- import { getProtocol, hasQueryArg } from '@wordpress/url';
53
+ import { getProtocol, hasQueryArg, isURL } from '@wordpress/url';
49
54
  import { doAction, hasAction } from '@wordpress/hooks';
50
55
  import { compose, withPreferredColorScheme } from '@wordpress/compose';
51
56
  import { withSelect, withDispatch } from '@wordpress/data';
@@ -57,6 +62,7 @@ import {
57
62
  } from '@wordpress/icons';
58
63
  import { store as coreStore } from '@wordpress/core-data';
59
64
  import { store as editPostStore } from '@wordpress/edit-post';
65
+ import { store as noticesStore } from '@wordpress/notices';
60
66
 
61
67
  /**
62
68
  * Internal dependencies
@@ -190,16 +196,13 @@ export class ImageEdit extends Component {
190
196
 
191
197
  this.replacedFeaturedImage = false;
192
198
 
193
- this.finishMediaUploadWithSuccess = this.finishMediaUploadWithSuccess.bind(
194
- this
195
- );
196
- this.finishMediaUploadWithFailure = this.finishMediaUploadWithFailure.bind(
197
- this
198
- );
199
+ this.finishMediaUploadWithSuccess =
200
+ this.finishMediaUploadWithSuccess.bind( this );
201
+ this.finishMediaUploadWithFailure =
202
+ this.finishMediaUploadWithFailure.bind( this );
199
203
  this.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );
200
- this.onSelectMediaUploadOption = this.onSelectMediaUploadOption.bind(
201
- this
202
- );
204
+ this.onSelectMediaUploadOption =
205
+ this.onSelectMediaUploadOption.bind( this );
203
206
  this.updateMediaProgress = this.updateMediaProgress.bind( this );
204
207
  this.updateImageURL = this.updateImageURL.bind( this );
205
208
  this.onSetNewTab = this.onSetNewTab.bind( this );
@@ -207,10 +210,10 @@ export class ImageEdit extends Component {
207
210
  this.onImagePressed = this.onImagePressed.bind( this );
208
211
  this.onSetFeatured = this.onSetFeatured.bind( this );
209
212
  this.onFocusCaption = this.onFocusCaption.bind( this );
213
+ this.onSelectURL = this.onSelectURL.bind( this );
210
214
  this.updateAlignment = this.updateAlignment.bind( this );
211
- this.accessibilityLabelCreator = this.accessibilityLabelCreator.bind(
212
- this
213
- );
215
+ this.accessibilityLabelCreator =
216
+ this.accessibilityLabelCreator.bind( this );
214
217
  this.setMappedAttributes = this.setMappedAttributes.bind( this );
215
218
  this.onSizeChangeValue = this.onSizeChangeValue.bind( this );
216
219
  }
@@ -263,12 +266,8 @@ export class ImageEdit extends Component {
263
266
  }
264
267
 
265
268
  componentDidUpdate( previousProps ) {
266
- const {
267
- image,
268
- attributes,
269
- setAttributes,
270
- featuredImageId,
271
- } = this.props;
269
+ const { image, attributes, setAttributes, featuredImageId } =
270
+ this.props;
272
271
  if ( ! previousProps.image && image ) {
273
272
  const url =
274
273
  getUrlForSlug( image, attributes?.sizeSlug ) ||
@@ -429,6 +428,7 @@ export class ImageEdit extends Component {
429
428
  id: media.id,
430
429
  url: media.url,
431
430
  caption: media.caption,
431
+ alt: media.alt,
432
432
  };
433
433
 
434
434
  let additionalAttributes;
@@ -461,6 +461,42 @@ export class ImageEdit extends Component {
461
461
  } );
462
462
  }
463
463
 
464
+ onSelectURL( newURL ) {
465
+ const { createErrorNotice, imageDefaultSize, setAttributes } =
466
+ this.props;
467
+
468
+ if ( isURL( newURL ) ) {
469
+ this.setState( {
470
+ isFetchingImage: true,
471
+ } );
472
+
473
+ // Use RN's Image.getSize to determine if URL is a valid image
474
+ RNImage.getSize(
475
+ newURL,
476
+ () => {
477
+ setAttributes( {
478
+ url: newURL,
479
+ id: undefined,
480
+ width: undefined,
481
+ height: undefined,
482
+ sizeSlug: imageDefaultSize,
483
+ } );
484
+ this.setState( {
485
+ isFetchingImage: false,
486
+ } );
487
+ },
488
+ () => {
489
+ createErrorNotice( __( 'Image file not found.' ) );
490
+ this.setState( {
491
+ isFetchingImage: false,
492
+ } );
493
+ }
494
+ );
495
+ } else {
496
+ createErrorNotice( __( 'Invalid URL.' ) );
497
+ }
498
+ }
499
+
464
500
  onFocusCaption() {
465
501
  if ( this.props.onFocus ) {
466
502
  this.props.onFocus();
@@ -484,6 +520,14 @@ export class ImageEdit extends Component {
484
520
  );
485
521
  }
486
522
 
523
+ showLoadingIndicator() {
524
+ return (
525
+ <View style={ styles.image__loading }>
526
+ <ActivityIndicator animating />
527
+ </View>
528
+ );
529
+ }
530
+
487
531
  getWidth() {
488
532
  const { attributes } = this.props;
489
533
  const { align, width } = attributes;
@@ -611,7 +655,7 @@ export class ImageEdit extends Component {
611
655
  }
612
656
 
613
657
  render() {
614
- const { isCaptionSelected } = this.state;
658
+ const { isCaptionSelected, isFetchingImage } = this.state;
615
659
  const {
616
660
  attributes,
617
661
  isSelected,
@@ -713,9 +757,11 @@ export class ImageEdit extends Component {
713
757
  if ( ! url ) {
714
758
  return (
715
759
  <View style={ styles.content }>
760
+ { isFetchingImage && this.showLoadingIndicator() }
716
761
  <MediaPlaceholder
717
762
  allowedTypes={ [ MEDIA_TYPE_IMAGE ] }
718
763
  onSelect={ this.onSelectMediaUploadOption }
764
+ onSelectURL={ this.onSelectURL }
719
765
  icon={ this.getPlaceholderIcon() }
720
766
  onFocus={ this.props.onFocus }
721
767
  autoOpenMediaUpload={
@@ -784,6 +830,8 @@ export class ImageEdit extends Component {
784
830
  } ) => {
785
831
  return (
786
832
  <View style={ imageContainerStyles }>
833
+ { isFetchingImage &&
834
+ this.showLoadingIndicator() }
787
835
  <Image
788
836
  align={
789
837
  align && alignToFlex[ align ]
@@ -836,6 +884,7 @@ export class ImageEdit extends Component {
836
884
  allowedTypes={ [ MEDIA_TYPE_IMAGE ] }
837
885
  isReplacingMedia={ true }
838
886
  onSelect={ this.onSelectMediaUploadOption }
887
+ onSelectURL={ this.onSelectURL }
839
888
  render={ ( { open, getMediaOptions } ) => {
840
889
  return getImageComponent( open, getMediaOptions );
841
890
  } }
@@ -847,9 +896,8 @@ export class ImageEdit extends Component {
847
896
  export default compose( [
848
897
  withSelect( ( select, props ) => {
849
898
  const { getMedia } = select( coreStore );
850
- const { getSettings, wasBlockJustInserted } = select(
851
- blockEditorStore
852
- );
899
+ const { getSettings, wasBlockJustInserted } =
900
+ select( blockEditorStore );
853
901
  const { getEditedPostAttribute } = select( 'core/editor' );
854
902
  const {
855
903
  attributes: { id, url },
@@ -881,7 +929,10 @@ export default compose( [
881
929
  };
882
930
  } ),
883
931
  withDispatch( ( dispatch ) => {
932
+ const { createErrorNotice } = dispatch( noticesStore );
933
+
884
934
  return {
935
+ createErrorNotice,
885
936
  closeSettingsBottomSheet() {
886
937
  dispatch( editPostStore ).closeGeneralSidebar();
887
938
  },
@@ -29,6 +29,7 @@ import {
29
29
  BlockAlignmentControl,
30
30
  __experimentalImageEditor as ImageEditor,
31
31
  __experimentalImageEditingProvider as ImageEditingProvider,
32
+ __experimentalGetElementClassName,
32
33
  } from '@wordpress/block-editor';
33
34
  import { useEffect, useMemo, useState, useRef } from '@wordpress/element';
34
35
  import { __, sprintf, isRTL } from '@wordpress/i18n';
@@ -47,7 +48,7 @@ import { store as coreStore } from '@wordpress/core-data';
47
48
  */
48
49
  import { createUpgradedEmbedBlock } from '../embed/util';
49
50
  import useClientWidth from './use-client-width';
50
- import { isExternalImage, isMediaDestroyed } from './edit';
51
+ import { isExternalImage } from './edit';
51
52
 
52
53
  /**
53
54
  * Module constants
@@ -76,14 +77,12 @@ export default function Image( {
76
77
  isSelected,
77
78
  insertBlocksAfter,
78
79
  onReplace,
79
- onCloseModal,
80
80
  onSelectImage,
81
81
  onSelectURL,
82
82
  onUploadError,
83
83
  containerRef,
84
84
  context,
85
85
  clientId,
86
- onImageLoadError,
87
86
  } ) {
88
87
  const imageRef = useRef();
89
88
  const captionRef = useRef();
@@ -94,9 +93,8 @@ export default function Image( {
94
93
  const { image, multiImageSelection } = useSelect(
95
94
  ( select ) => {
96
95
  const { getMedia } = select( coreStore );
97
- const { getMultiSelectedBlockClientIds, getBlockName } = select(
98
- blockEditorStore
99
- );
96
+ const { getMultiSelectedBlockClientIds, getBlockName } =
97
+ select( blockEditorStore );
100
98
  const multiSelectedClientIds = getMultiSelectedBlockClientIds();
101
99
  return {
102
100
  image:
@@ -113,42 +111,36 @@ export default function Image( {
113
111
  },
114
112
  [ id, isSelected ]
115
113
  );
116
- const {
117
- canInsertCover,
118
- imageEditing,
119
- imageSizes,
120
- maxWidth,
121
- mediaUpload,
122
- } = useSelect(
123
- ( select ) => {
124
- const {
125
- getBlockRootClientId,
126
- getSettings,
127
- canInsertBlockType,
128
- } = select( blockEditorStore );
129
-
130
- const rootClientId = getBlockRootClientId( clientId );
131
- const settings = pick( getSettings(), [
132
- 'imageEditing',
133
- 'imageSizes',
134
- 'maxWidth',
135
- 'mediaUpload',
136
- ] );
137
-
138
- return {
139
- ...settings,
140
- canInsertCover: canInsertBlockType(
141
- 'core/cover',
142
- rootClientId
143
- ),
144
- };
145
- },
146
- [ clientId ]
147
- );
114
+ const { canInsertCover, imageEditing, imageSizes, maxWidth, mediaUpload } =
115
+ useSelect(
116
+ ( select ) => {
117
+ const {
118
+ getBlockRootClientId,
119
+ getSettings,
120
+ canInsertBlockType,
121
+ } = select( blockEditorStore );
122
+
123
+ const rootClientId = getBlockRootClientId( clientId );
124
+ const settings = pick( getSettings(), [
125
+ 'imageEditing',
126
+ 'imageSizes',
127
+ 'maxWidth',
128
+ 'mediaUpload',
129
+ ] );
130
+
131
+ return {
132
+ ...settings,
133
+ canInsertCover: canInsertBlockType(
134
+ 'core/cover',
135
+ rootClientId
136
+ ),
137
+ };
138
+ },
139
+ [ clientId ]
140
+ );
148
141
  const { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );
149
- const { createErrorNotice, createSuccessNotice } = useDispatch(
150
- noticesStore
151
- );
142
+ const { createErrorNotice, createSuccessNotice } =
143
+ useDispatch( noticesStore );
152
144
  const isLargeViewport = useViewportMatch( 'medium' );
153
145
  const isWideAligned = includes( [ 'wide', 'full' ], align );
154
146
  const [
@@ -225,13 +217,10 @@ export default function Image( {
225
217
  // Check if there's an embed block that handles this URL, e.g., instagram URL.
226
218
  // See: https://github.com/WordPress/gutenberg/pull/11472
227
219
  const embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );
228
- const shouldReplace = undefined !== embedBlock;
229
220
 
230
- if ( shouldReplace ) {
221
+ if ( undefined !== embedBlock ) {
231
222
  onReplace( embedBlock );
232
223
  }
233
-
234
- onImageLoadError( shouldReplace );
235
224
  }
236
225
 
237
226
  function onSetHref( props ) {
@@ -303,9 +292,6 @@ export default function Image( {
303
292
  if ( ! isSelected ) {
304
293
  setIsEditingImage( false );
305
294
  }
306
- if ( isSelected && isMediaDestroyed( id ) ) {
307
- onImageLoadError();
308
- }
309
295
  }, [ isSelected ] );
310
296
 
311
297
  const canEditImage = id && naturalWidth && naturalHeight && imageEditing;
@@ -369,7 +355,6 @@ export default function Image( {
369
355
  onSelect={ onSelectImage }
370
356
  onSelectURL={ onSelectURL }
371
357
  onError={ onUploadError }
372
- onCloseModal={ onCloseModal }
373
358
  />
374
359
  </BlockControls>
375
360
  ) }
@@ -592,6 +577,7 @@ export default function Image( {
592
577
  { img }
593
578
  { ( ! RichText.isEmpty( caption ) || isSelected ) && (
594
579
  <RichText
580
+ className={ __experimentalGetElementClassName( 'caption' ) }
595
581
  ref={ captionRef }
596
582
  tagName="figcaption"
597
583
  aria-label={ __( 'Image caption text' ) }
package/src/image/save.js CHANGED
@@ -7,7 +7,11 @@ import { isEmpty } from 'lodash';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { RichText, useBlockProps } from '@wordpress/block-editor';
10
+ import {
11
+ RichText,
12
+ useBlockProps,
13
+ __experimentalGetElementClassName,
14
+ } from '@wordpress/block-editor';
11
15
 
12
16
  export default function save( { attributes } ) {
13
17
  const {
@@ -60,7 +64,11 @@ export default function save( { attributes } ) {
60
64
  image
61
65
  ) }
62
66
  { ! RichText.isEmpty( caption ) && (
63
- <RichText.Content tagName="figcaption" value={ caption } />
67
+ <RichText.Content
68
+ className={ __experimentalGetElementClassName( 'caption' ) }
69
+ tagName="figcaption"
70
+ value={ caption }
71
+ />
64
72
  ) }
65
73
  </>
66
74
  );
@@ -1,6 +1,4 @@
1
1
  .wp-block-image {
2
- margin: 0 0 1em 0;
3
-
4
2
  img {
5
3
  height: auto;
6
4
  max-width: 100%;
@@ -57,3 +57,14 @@
57
57
  .removeFeaturedButton {
58
58
  color: $alert-red;
59
59
  }
60
+
61
+ .image__loading {
62
+ align-items: center;
63
+ background-color: rgba(10, 10, 10, 0.5);
64
+ flex: 1;
65
+ height: 100%;
66
+ justify-content: center;
67
+ position: absolute;
68
+ width: 100%;
69
+ z-index: 1;
70
+ }