@wordpress/block-library 7.4.0 → 7.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (798) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +3 -2
  3. package/babel-plugin.js +154 -0
  4. package/build/audio/edit.js +4 -16
  5. package/build/audio/edit.js.map +1 -1
  6. package/build/block/edit.js +10 -9
  7. package/build/block/edit.js.map +1 -1
  8. package/build/button/deprecated.js +175 -35
  9. package/build/button/deprecated.js.map +1 -1
  10. package/build/button/edit.js +1 -1
  11. package/build/button/edit.js.map +1 -1
  12. package/build/button/edit.native.js +7 -3
  13. package/build/button/edit.native.js.map +1 -1
  14. package/build/button/index.js +1 -0
  15. package/build/button/index.js.map +1 -1
  16. package/build/button/save.js +1 -1
  17. package/build/button/save.js.map +1 -1
  18. package/build/categories/edit.js +1 -1
  19. package/build/categories/edit.js.map +1 -1
  20. package/build/categories/index.js +1 -1
  21. package/build/columns/index.js +3 -1
  22. package/build/columns/index.js.map +1 -1
  23. package/build/comment-author-avatar/index.js +1 -0
  24. package/build/comment-author-avatar/index.js.map +1 -1
  25. package/build/comment-template/edit.js +1 -3
  26. package/build/comment-template/edit.js.map +1 -1
  27. package/build/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  28. package/{build-module/comments-query-loop → build/comments}/edit/comments-inspector-controls.js.map +1 -1
  29. package/build/{comments-query-loop → comments}/edit.js +3 -3
  30. package/build/comments/edit.js.map +1 -0
  31. package/build/{comments-query-loop → comments}/index.js +1 -1
  32. package/build/comments/index.js.map +1 -0
  33. package/build/{comments-query-loop → comments}/save.js +2 -2
  34. package/build/comments/save.js.map +1 -0
  35. package/build/comments-title/deprecated.js +110 -0
  36. package/build/comments-title/deprecated.js.map +1 -0
  37. package/build/comments-title/edit.js +35 -35
  38. package/build/comments-title/edit.js.map +1 -1
  39. package/build/comments-title/index.js +5 -8
  40. package/build/comments-title/index.js.map +1 -1
  41. package/build/cover/controls.native.js +2 -3
  42. package/build/cover/controls.native.js.map +1 -1
  43. package/build/cover/deprecated.js +212 -207
  44. package/build/cover/deprecated.js.map +1 -1
  45. package/build/cover/edit/block-controls.js +115 -0
  46. package/build/cover/edit/block-controls.js.map +1 -0
  47. package/build/cover/edit/cover-placeholder.js +49 -0
  48. package/build/cover/edit/cover-placeholder.js.map +1 -0
  49. package/build/cover/edit/index.js +343 -0
  50. package/build/cover/edit/index.js.map +1 -0
  51. package/build/cover/edit/inspector-controls.js +224 -0
  52. package/build/cover/edit/inspector-controls.js.map +1 -0
  53. package/build/cover/edit/resizable-cover.js +67 -0
  54. package/build/cover/edit/resizable-cover.js.map +1 -0
  55. package/build/cover/edit/use-cover-is-dark.js +81 -0
  56. package/build/cover/edit/use-cover-is-dark.js.map +1 -0
  57. package/build/cover/edit.native.js +36 -16
  58. package/build/cover/edit.native.js.map +1 -1
  59. package/build/cover/focal-point-settings-button.native.js.map +1 -1
  60. package/build/cover/save.js +18 -5
  61. package/build/cover/save.js.map +1 -1
  62. package/build/cover/shared.js +15 -9
  63. package/build/cover/shared.js.map +1 -1
  64. package/build/cover/transforms.js +77 -6
  65. package/build/cover/transforms.js.map +1 -1
  66. package/build/cover/use-cover-is-dark.native.js +60 -0
  67. package/build/cover/use-cover-is-dark.native.js.map +1 -0
  68. package/build/embed/embed-preview.js +1 -1
  69. package/build/embed/embed-preview.js.map +1 -1
  70. package/build/file/edit.js +1 -1
  71. package/build/file/edit.js.map +1 -1
  72. package/build/file/edit.native.js +0 -1
  73. package/build/file/edit.native.js.map +1 -1
  74. package/build/file/save.js +9 -1
  75. package/build/file/save.js.map +1 -1
  76. package/build/gallery/edit.js +2 -1
  77. package/build/gallery/edit.js.map +1 -1
  78. package/build/gallery/gallery.js +1 -1
  79. package/build/gallery/gallery.js.map +1 -1
  80. package/build/gallery/gap-styles.js +14 -4
  81. package/build/gallery/gap-styles.js.map +1 -1
  82. package/build/gallery/index.js +1 -1
  83. package/build/gallery/shared.js +2 -2
  84. package/build/gallery/shared.js.map +1 -1
  85. package/build/gallery/use-get-media.js +2 -1
  86. package/build/gallery/use-get-media.js.map +1 -1
  87. package/build/gallery/use-short-code-transform.js +19 -18
  88. package/build/gallery/use-short-code-transform.js.map +1 -1
  89. package/build/gallery/v1/gallery.js +1 -1
  90. package/build/gallery/v1/gallery.js.map +1 -1
  91. package/build/group/index.js +1 -0
  92. package/build/group/index.js.map +1 -1
  93. package/build/heading/edit.js +6 -2
  94. package/build/heading/edit.js.map +1 -1
  95. package/build/heading/index.js +1 -0
  96. package/build/heading/index.js.map +1 -1
  97. package/build/heading/transforms.js +9 -4
  98. package/build/heading/transforms.js.map +1 -1
  99. package/build/image/edit.js +5 -56
  100. package/build/image/edit.js.map +1 -1
  101. package/build/image/edit.native.js +56 -4
  102. package/build/image/edit.native.js.map +1 -1
  103. package/build/image/image.js +4 -14
  104. package/build/image/image.js.map +1 -1
  105. package/build/index.js +48 -14
  106. package/build/index.js.map +1 -1
  107. package/build/is-block-metadata-experimental.js +18 -0
  108. package/build/is-block-metadata-experimental.js.map +1 -0
  109. package/build/latest-posts/edit.js +30 -4
  110. package/build/latest-posts/edit.js.map +1 -1
  111. package/build/latest-posts/edit.native.js +49 -0
  112. package/build/latest-posts/edit.native.js.map +1 -1
  113. package/build/list/transforms.js +6 -0
  114. package/build/list/transforms.js.map +1 -1
  115. package/build/list/v2/edit.js +2 -1
  116. package/build/list/v2/edit.js.map +1 -1
  117. package/build/list/v2/migrate.js +1 -0
  118. package/build/list/v2/migrate.js.map +1 -1
  119. package/build/list/v2/transforms.js +46 -9
  120. package/build/list/v2/transforms.js.map +1 -1
  121. package/build/list-item/edit.js +7 -9
  122. package/build/list-item/edit.js.map +1 -1
  123. package/build/list-item/hooks/index.js +24 -0
  124. package/build/list-item/hooks/index.js.map +1 -1
  125. package/build/list-item/hooks/use-backspace.js +59 -0
  126. package/build/list-item/hooks/use-backspace.js.map +1 -0
  127. package/build/list-item/hooks/use-enter.js +6 -9
  128. package/build/list-item/hooks/use-enter.js.map +1 -1
  129. package/build/list-item/hooks/use-indent-list-item.js +33 -39
  130. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  131. package/build/list-item/hooks/use-space.js +54 -0
  132. package/build/list-item/hooks/use-space.js.map +1 -0
  133. package/build/list-item/hooks/use-split.js +44 -0
  134. package/build/list-item/hooks/use-split.js.map +1 -0
  135. package/build/list-item/index.js +1 -0
  136. package/build/list-item/index.js.map +1 -1
  137. package/build/list-item/utils.js +1 -1
  138. package/build/list-item/utils.js.map +1 -1
  139. package/build/media-text/edit.native.js +2 -1
  140. package/build/media-text/edit.native.js.map +1 -1
  141. package/build/media-text/media-container.native.js +2 -4
  142. package/build/media-text/media-container.native.js.map +1 -1
  143. package/build/media-text/transforms.js +137 -8
  144. package/build/media-text/transforms.js.map +1 -1
  145. package/build/navigation/edit/index.js +91 -109
  146. package/build/navigation/edit/index.js.map +1 -1
  147. package/build/navigation/edit/inner-blocks.js +6 -12
  148. package/build/navigation/edit/inner-blocks.js.map +1 -1
  149. package/build/navigation/index.js +0 -1
  150. package/build/navigation/index.js.map +1 -1
  151. package/build/navigation/use-navigation-entities.js +3 -3
  152. package/build/navigation/use-navigation-entities.js.map +1 -1
  153. package/build/navigation/view-modal.js +25 -0
  154. package/build/navigation/view-modal.js.map +1 -1
  155. package/build/navigation-link/edit.js +60 -35
  156. package/build/navigation-link/edit.js.map +1 -1
  157. package/build/navigation-link/fallback-variations.js +1 -1
  158. package/build/navigation-link/fallback-variations.js.map +1 -1
  159. package/build/navigation-link/hooks.js +1 -1
  160. package/build/navigation-link/hooks.js.map +1 -1
  161. package/build/navigation-submenu/edit.js +14 -14
  162. package/build/navigation-submenu/edit.js.map +1 -1
  163. package/build/page-list/convert-to-links-modal.js +1 -1
  164. package/build/page-list/convert-to-links-modal.js.map +1 -1
  165. package/build/page-list/edit.js +1 -1
  166. package/build/page-list/edit.js.map +1 -1
  167. package/build/paragraph/edit.js +10 -0
  168. package/build/paragraph/edit.js.map +1 -1
  169. package/build/paragraph/use-enter.js +94 -0
  170. package/build/paragraph/use-enter.js.map +1 -0
  171. package/build/post-author/edit.js +1 -1
  172. package/build/post-author/edit.js.map +1 -1
  173. package/build/post-author-name/index.js +4 -0
  174. package/build/post-author-name/index.js.map +1 -1
  175. package/build/post-author-name/transforms.js +41 -0
  176. package/build/post-author-name/transforms.js.map +1 -0
  177. package/build/post-comment/index.js +2 -1
  178. package/build/post-comment/index.js.map +1 -1
  179. package/build/post-comments/edit.js +138 -35
  180. package/build/post-comments/edit.js.map +1 -1
  181. package/build/post-comments/index.js +3 -2
  182. package/build/post-comments/index.js.map +1 -1
  183. package/build/post-comments-count/index.js +1 -0
  184. package/build/post-comments-count/index.js.map +1 -1
  185. package/build/post-comments-form/edit.js +38 -4
  186. package/build/post-comments-form/edit.js.map +1 -1
  187. package/build/post-comments-form/form.js +58 -0
  188. package/build/post-comments-form/form.js.map +1 -0
  189. package/build/post-comments-form/index.js +1 -0
  190. package/build/post-comments-form/index.js.map +1 -1
  191. package/build/post-comments-link/index.js +1 -0
  192. package/build/post-comments-link/index.js.map +1 -1
  193. package/build/post-content/edit.js +1 -1
  194. package/build/post-content/edit.js.map +1 -1
  195. package/build/post-date/edit.js +13 -7
  196. package/build/post-date/edit.js.map +1 -1
  197. package/build/post-excerpt/edit.js +1 -1
  198. package/build/post-excerpt/edit.js.map +1 -1
  199. package/build/post-featured-image/edit.js +1 -1
  200. package/build/post-featured-image/edit.js.map +1 -1
  201. package/build/post-template/edit.js +7 -2
  202. package/build/post-template/edit.js.map +1 -1
  203. package/build/post-terms/edit.js +35 -4
  204. package/build/post-terms/edit.js.map +1 -1
  205. package/build/post-terms/hooks.js +33 -0
  206. package/build/post-terms/hooks.js.map +1 -0
  207. package/build/post-terms/index.js +20 -5
  208. package/build/post-terms/index.js.map +1 -1
  209. package/build/post-title/index.js +1 -1
  210. package/build/post-title/index.js.map +1 -1
  211. package/build/pullquote/edit.js +1 -1
  212. package/build/pullquote/edit.js.map +1 -1
  213. package/build/pullquote/edit.native.js +1 -1
  214. package/build/pullquote/edit.native.js.map +1 -1
  215. package/build/query/edit/inspector-controls/index.js +26 -17
  216. package/build/query/edit/inspector-controls/index.js.map +1 -1
  217. package/build/query/edit/inspector-controls/parent-control.js +148 -0
  218. package/build/query/edit/inspector-controls/parent-control.js.map +1 -0
  219. package/build/query/edit/inspector-controls/sticky-control.js +41 -0
  220. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -0
  221. package/build/query/index.js +2 -1
  222. package/build/query/index.js.map +1 -1
  223. package/build/query/utils.js +28 -2
  224. package/build/query/utils.js.map +1 -1
  225. package/build/query-no-results/edit.js +1 -1
  226. package/build/query-no-results/edit.js.map +1 -1
  227. package/build/query-title/index.js +1 -1
  228. package/build/query-title/index.js.map +1 -1
  229. package/build/query-title/variations.js +1 -1
  230. package/build/query-title/variations.js.map +1 -1
  231. package/build/quote/edit.js +3 -2
  232. package/build/quote/edit.js.map +1 -1
  233. package/build/quote/index.js +1 -0
  234. package/build/quote/index.js.map +1 -1
  235. package/build/quote/v2/edit.js +1 -1
  236. package/build/quote/v2/edit.js.map +1 -1
  237. package/build/search/edit.js +2 -1
  238. package/build/search/edit.js.map +1 -1
  239. package/build/search/index.js +4 -0
  240. package/build/search/index.js.map +1 -1
  241. package/build/separator/index.js +3 -0
  242. package/build/separator/index.js.map +1 -1
  243. package/build/shortcode/edit.native.js +16 -13
  244. package/build/shortcode/edit.native.js.map +1 -1
  245. package/build/site-logo/edit.js +1 -1
  246. package/build/site-logo/edit.js.map +1 -1
  247. package/build/social-links/edit.js +2 -2
  248. package/build/social-links/edit.js.map +1 -1
  249. package/build/table/edit.js +15 -2
  250. package/build/table/edit.js.map +1 -1
  251. package/build/table-of-contents/edit.js +145 -65
  252. package/build/table-of-contents/edit.js.map +1 -1
  253. package/build/table-of-contents/index.js +13 -3
  254. package/build/table-of-contents/index.js.map +1 -1
  255. package/build/table-of-contents/list.js +16 -9
  256. package/build/table-of-contents/list.js.map +1 -1
  257. package/build/table-of-contents/save.js +40 -0
  258. package/build/table-of-contents/save.js.map +1 -0
  259. package/build/table-of-contents/utils.js +11 -77
  260. package/build/table-of-contents/utils.js.map +1 -1
  261. package/build/template-part/edit/index.js +7 -3
  262. package/build/template-part/edit/index.js.map +1 -1
  263. package/build/template-part/edit/inner-blocks.js +3 -8
  264. package/build/template-part/edit/inner-blocks.js.map +1 -1
  265. package/build/video/edit.js +4 -8
  266. package/build/video/edit.js.map +1 -1
  267. package/build-module/audio/edit.js +5 -17
  268. package/build-module/audio/edit.js.map +1 -1
  269. package/build-module/block/edit.js +11 -10
  270. package/build-module/block/edit.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 +7 -3
  276. package/build-module/button/edit.native.js.map +1 -1
  277. package/build-module/button/index.js +1 -0
  278. package/build-module/button/index.js.map +1 -1
  279. package/build-module/button/save.js +2 -2
  280. package/build-module/button/save.js.map +1 -1
  281. package/build-module/categories/edit.js +1 -1
  282. package/build-module/categories/edit.js.map +1 -1
  283. package/build-module/categories/index.js +1 -1
  284. package/build-module/columns/index.js +3 -1
  285. package/build-module/columns/index.js.map +1 -1
  286. package/build-module/comment-author-avatar/index.js +1 -0
  287. package/build-module/comment-author-avatar/index.js.map +1 -1
  288. package/build-module/comment-template/edit.js +1 -3
  289. package/build-module/comment-template/edit.js.map +1 -1
  290. package/build-module/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  291. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -0
  292. package/build-module/{comments-query-loop → comments}/edit.js +2 -2
  293. package/build-module/comments/edit.js.map +1 -0
  294. package/build-module/{comments-query-loop → comments}/index.js +1 -1
  295. package/build-module/comments/index.js.map +1 -0
  296. package/build-module/{comments-query-loop → comments}/save.js +1 -1
  297. package/build-module/comments/save.js.map +1 -0
  298. package/build-module/comments-title/deprecated.js +102 -0
  299. package/build-module/comments-title/deprecated.js.map +1 -0
  300. package/build-module/comments-title/edit.js +38 -38
  301. package/build-module/comments-title/edit.js.map +1 -1
  302. package/build-module/comments-title/index.js +4 -8
  303. package/build-module/comments-title/index.js.map +1 -1
  304. package/build-module/cover/controls.native.js +2 -3
  305. package/build-module/cover/controls.native.js.map +1 -1
  306. package/build-module/cover/deprecated.js +206 -198
  307. package/build-module/cover/deprecated.js.map +1 -1
  308. package/build-module/cover/edit/block-controls.js +104 -0
  309. package/build-module/cover/edit/block-controls.js.map +1 -0
  310. package/build-module/cover/edit/cover-placeholder.js +38 -0
  311. package/build-module/cover/edit/cover-placeholder.js.map +1 -0
  312. package/build-module/cover/edit/index.js +317 -0
  313. package/build-module/cover/edit/index.js.map +1 -0
  314. package/build-module/cover/edit/inspector-controls.js +215 -0
  315. package/build-module/cover/edit/inspector-controls.js.map +1 -0
  316. package/build-module/cover/edit/resizable-cover.js +55 -0
  317. package/build-module/cover/edit/resizable-cover.js.map +1 -0
  318. package/build-module/cover/edit/use-cover-is-dark.js +70 -0
  319. package/build-module/cover/edit/use-cover-is-dark.js.map +1 -0
  320. package/build-module/cover/edit.native.js +35 -17
  321. package/build-module/cover/edit.native.js.map +1 -1
  322. package/build-module/cover/focal-point-settings-button.native.js.map +1 -1
  323. package/build-module/cover/save.js +19 -6
  324. package/build-module/cover/save.js.map +1 -1
  325. package/build-module/cover/shared.js +11 -5
  326. package/build-module/cover/shared.js.map +1 -1
  327. package/build-module/cover/transforms.js +74 -6
  328. package/build-module/cover/transforms.js.map +1 -1
  329. package/build-module/cover/use-cover-is-dark.native.js +51 -0
  330. package/build-module/cover/use-cover-is-dark.native.js.map +1 -0
  331. package/build-module/embed/embed-preview.js +2 -2
  332. package/build-module/embed/embed-preview.js.map +1 -1
  333. package/build-module/file/edit.js +2 -2
  334. package/build-module/file/edit.js.map +1 -1
  335. package/build-module/file/edit.native.js +0 -1
  336. package/build-module/file/edit.native.js.map +1 -1
  337. package/build-module/file/save.js +7 -2
  338. package/build-module/file/save.js.map +1 -1
  339. package/build-module/gallery/edit.js +2 -1
  340. package/build-module/gallery/edit.js.map +1 -1
  341. package/build-module/gallery/gallery.js +2 -2
  342. package/build-module/gallery/gallery.js.map +1 -1
  343. package/build-module/gallery/gap-styles.js +14 -4
  344. package/build-module/gallery/gap-styles.js.map +1 -1
  345. package/build-module/gallery/index.js +1 -1
  346. package/build-module/gallery/shared.js +2 -2
  347. package/build-module/gallery/shared.js.map +1 -1
  348. package/build-module/gallery/use-get-media.js +2 -1
  349. package/build-module/gallery/use-get-media.js.map +1 -1
  350. package/build-module/gallery/use-short-code-transform.js +19 -18
  351. package/build-module/gallery/use-short-code-transform.js.map +1 -1
  352. package/build-module/gallery/v1/gallery.js +2 -2
  353. package/build-module/gallery/v1/gallery.js.map +1 -1
  354. package/build-module/group/index.js +1 -0
  355. package/build-module/group/index.js.map +1 -1
  356. package/build-module/heading/edit.js +6 -2
  357. package/build-module/heading/edit.js.map +1 -1
  358. package/build-module/heading/index.js +1 -0
  359. package/build-module/heading/index.js.map +1 -1
  360. package/build-module/heading/transforms.js +9 -4
  361. package/build-module/heading/transforms.js.map +1 -1
  362. package/build-module/image/edit.js +4 -52
  363. package/build-module/image/edit.js.map +1 -1
  364. package/build-module/image/edit.native.js +57 -6
  365. package/build-module/image/edit.native.js.map +1 -1
  366. package/build-module/image/image.js +6 -16
  367. package/build-module/image/image.js.map +1 -1
  368. package/build-module/index.js +43 -12
  369. package/build-module/index.js.map +1 -1
  370. package/build-module/is-block-metadata-experimental.js +16 -0
  371. package/build-module/is-block-metadata-experimental.js.map +1 -0
  372. package/build-module/latest-posts/edit.js +29 -5
  373. package/build-module/latest-posts/edit.js.map +1 -1
  374. package/build-module/latest-posts/edit.native.js +51 -2
  375. package/build-module/latest-posts/edit.native.js.map +1 -1
  376. package/build-module/list/transforms.js +6 -0
  377. package/build-module/list/transforms.js.map +1 -1
  378. package/build-module/list/v2/edit.js +2 -1
  379. package/build-module/list/v2/edit.js.map +1 -1
  380. package/build-module/list/v2/migrate.js +1 -3
  381. package/build-module/list/v2/migrate.js.map +1 -1
  382. package/build-module/list/v2/transforms.js +46 -9
  383. package/build-module/list/v2/transforms.js.map +1 -1
  384. package/build-module/list-item/edit.js +8 -9
  385. package/build-module/list-item/edit.js.map +1 -1
  386. package/build-module/list-item/hooks/index.js +3 -0
  387. package/build-module/list-item/hooks/index.js.map +1 -1
  388. package/build-module/list-item/hooks/use-backspace.js +44 -0
  389. package/build-module/list-item/hooks/use-backspace.js.map +1 -0
  390. package/build-module/list-item/hooks/use-enter.js +6 -9
  391. package/build-module/list-item/hooks/use-enter.js.map +1 -1
  392. package/build-module/list-item/hooks/use-indent-list-item.js +33 -38
  393. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  394. package/build-module/list-item/hooks/use-space.js +40 -0
  395. package/build-module/list-item/hooks/use-space.js.map +1 -0
  396. package/build-module/list-item/hooks/use-split.js +33 -0
  397. package/build-module/list-item/hooks/use-split.js.map +1 -0
  398. package/build-module/list-item/index.js +1 -0
  399. package/build-module/list-item/index.js.map +1 -1
  400. package/build-module/list-item/utils.js +1 -1
  401. package/build-module/list-item/utils.js.map +1 -1
  402. package/build-module/media-text/edit.native.js +2 -1
  403. package/build-module/media-text/edit.native.js.map +1 -1
  404. package/build-module/media-text/media-container.native.js +2 -4
  405. package/build-module/media-text/media-container.native.js.map +1 -1
  406. package/build-module/media-text/transforms.js +137 -8
  407. package/build-module/media-text/transforms.js.map +1 -1
  408. package/build-module/navigation/edit/index.js +93 -110
  409. package/build-module/navigation/edit/index.js.map +1 -1
  410. package/build-module/navigation/edit/inner-blocks.js +7 -13
  411. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  412. package/build-module/navigation/index.js +0 -1
  413. package/build-module/navigation/index.js.map +1 -1
  414. package/build-module/navigation/use-navigation-entities.js +1 -1
  415. package/build-module/navigation/use-navigation-entities.js.map +1 -1
  416. package/build-module/navigation/view-modal.js +24 -0
  417. package/build-module/navigation/view-modal.js.map +1 -1
  418. package/build-module/navigation-link/edit.js +60 -36
  419. package/build-module/navigation-link/edit.js.map +1 -1
  420. package/build-module/navigation-link/fallback-variations.js +1 -1
  421. package/build-module/navigation-link/fallback-variations.js.map +1 -1
  422. package/build-module/navigation-link/hooks.js +2 -2
  423. package/build-module/navigation-link/hooks.js.map +1 -1
  424. package/build-module/navigation-submenu/edit.js +14 -14
  425. package/build-module/navigation-submenu/edit.js.map +1 -1
  426. package/build-module/page-list/convert-to-links-modal.js +1 -1
  427. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  428. package/build-module/page-list/edit.js +1 -1
  429. package/build-module/page-list/edit.js.map +1 -1
  430. package/build-module/paragraph/edit.js +9 -0
  431. package/build-module/paragraph/edit.js.map +1 -1
  432. package/build-module/paragraph/use-enter.js +81 -0
  433. package/build-module/paragraph/use-enter.js.map +1 -0
  434. package/build-module/post-author/edit.js +1 -1
  435. package/build-module/post-author/edit.js.map +1 -1
  436. package/build-module/post-author-name/index.js +3 -0
  437. package/build-module/post-author-name/index.js.map +1 -1
  438. package/build-module/post-author-name/transforms.js +32 -0
  439. package/build-module/post-author-name/transforms.js.map +1 -0
  440. package/build-module/post-comment/index.js +2 -1
  441. package/build-module/post-comment/index.js.map +1 -1
  442. package/build-module/post-comments/edit.js +139 -37
  443. package/build-module/post-comments/edit.js.map +1 -1
  444. package/build-module/post-comments/index.js +3 -2
  445. package/build-module/post-comments/index.js.map +1 -1
  446. package/build-module/post-comments-count/index.js +1 -0
  447. package/build-module/post-comments-count/index.js.map +1 -1
  448. package/build-module/post-comments-form/edit.js +38 -6
  449. package/build-module/post-comments-form/edit.js.map +1 -1
  450. package/build-module/post-comments-form/form.js +45 -0
  451. package/build-module/post-comments-form/form.js.map +1 -0
  452. package/build-module/post-comments-form/index.js +1 -0
  453. package/build-module/post-comments-form/index.js.map +1 -1
  454. package/build-module/post-comments-link/index.js +1 -0
  455. package/build-module/post-comments-link/index.js.map +1 -1
  456. package/build-module/post-content/edit.js +1 -1
  457. package/build-module/post-content/edit.js.map +1 -1
  458. package/build-module/post-date/edit.js +15 -9
  459. package/build-module/post-date/edit.js.map +1 -1
  460. package/build-module/post-excerpt/edit.js +1 -1
  461. package/build-module/post-excerpt/edit.js.map +1 -1
  462. package/build-module/post-featured-image/edit.js +1 -1
  463. package/build-module/post-featured-image/edit.js.map +1 -1
  464. package/build-module/post-template/edit.js +7 -2
  465. package/build-module/post-template/edit.js.map +1 -1
  466. package/build-module/post-terms/edit.js +35 -6
  467. package/build-module/post-terms/edit.js.map +1 -1
  468. package/build-module/post-terms/hooks.js +25 -0
  469. package/build-module/post-terms/hooks.js.map +1 -0
  470. package/build-module/post-terms/index.js +18 -8
  471. package/build-module/post-terms/index.js.map +1 -1
  472. package/build-module/post-title/index.js +1 -1
  473. package/build-module/post-title/index.js.map +1 -1
  474. package/build-module/pullquote/edit.js +2 -2
  475. package/build-module/pullquote/edit.js.map +1 -1
  476. package/build-module/pullquote/edit.native.js +2 -2
  477. package/build-module/pullquote/edit.native.js.map +1 -1
  478. package/build-module/query/edit/inspector-controls/index.js +24 -17
  479. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  480. package/build-module/query/edit/inspector-controls/parent-control.js +135 -0
  481. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -0
  482. package/build-module/query/edit/inspector-controls/sticky-control.js +31 -0
  483. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -0
  484. package/build-module/query/index.js +2 -1
  485. package/build-module/query/index.js.map +1 -1
  486. package/build-module/query/utils.js +21 -0
  487. package/build-module/query/utils.js.map +1 -1
  488. package/build-module/query-no-results/edit.js +1 -1
  489. package/build-module/query-no-results/edit.js.map +1 -1
  490. package/build-module/query-title/index.js +1 -1
  491. package/build-module/query-title/index.js.map +1 -1
  492. package/build-module/query-title/variations.js +2 -2
  493. package/build-module/query-title/variations.js.map +1 -1
  494. package/build-module/quote/edit.js +4 -3
  495. package/build-module/quote/edit.js.map +1 -1
  496. package/build-module/quote/index.js +1 -0
  497. package/build-module/quote/index.js.map +1 -1
  498. package/build-module/quote/v2/edit.js +2 -2
  499. package/build-module/quote/v2/edit.js.map +1 -1
  500. package/build-module/search/edit.js +3 -2
  501. package/build-module/search/edit.js.map +1 -1
  502. package/build-module/search/index.js +4 -0
  503. package/build-module/search/index.js.map +1 -1
  504. package/build-module/separator/index.js +3 -0
  505. package/build-module/separator/index.js.map +1 -1
  506. package/build-module/shortcode/edit.native.js +17 -13
  507. package/build-module/shortcode/edit.native.js.map +1 -1
  508. package/build-module/site-logo/edit.js +1 -1
  509. package/build-module/site-logo/edit.js.map +1 -1
  510. package/build-module/social-links/edit.js +2 -2
  511. package/build-module/social-links/edit.js.map +1 -1
  512. package/build-module/table/edit.js +17 -4
  513. package/build-module/table/edit.js.map +1 -1
  514. package/build-module/table-of-contents/edit.js +144 -68
  515. package/build-module/table-of-contents/edit.js.map +1 -1
  516. package/build-module/table-of-contents/index.js +12 -3
  517. package/build-module/table-of-contents/index.js.map +1 -1
  518. package/build-module/table-of-contents/list.js +18 -10
  519. package/build-module/table-of-contents/list.js.map +1 -1
  520. package/build-module/table-of-contents/save.js +28 -0
  521. package/build-module/table-of-contents/save.js.map +1 -0
  522. package/build-module/table-of-contents/utils.js +11 -73
  523. package/build-module/table-of-contents/utils.js.map +1 -1
  524. package/build-module/template-part/edit/index.js +8 -4
  525. package/build-module/template-part/edit/index.js.map +1 -1
  526. package/build-module/template-part/edit/inner-blocks.js +4 -9
  527. package/build-module/template-part/edit/inner-blocks.js.map +1 -1
  528. package/build-module/video/edit.js +5 -9
  529. package/build-module/video/edit.js.map +1 -1
  530. package/build-style/comment-content/style-rtl.css +81 -0
  531. package/build-style/comment-content/style.css +81 -0
  532. package/build-style/{comments-query-loop → comments}/editor-rtl.css +0 -0
  533. package/build-style/{comments-query-loop → comments}/editor.css +0 -0
  534. package/build-style/cover/style-rtl.css +32 -27
  535. package/build-style/cover/style.css +32 -27
  536. package/build-style/editor-rtl.css +16 -10
  537. package/build-style/editor.css +16 -10
  538. package/build-style/image/editor-rtl.css +1 -1
  539. package/build-style/image/editor.css +1 -1
  540. package/build-style/latest-posts/style-rtl.css +2 -0
  541. package/build-style/latest-posts/style.css +4 -0
  542. package/build-style/navigation/style-rtl.css +3 -0
  543. package/build-style/navigation/style.css +3 -0
  544. package/build-style/post-comments/editor-rtl.css +79 -0
  545. package/build-style/post-comments/editor.css +79 -0
  546. package/build-style/post-comments/style-rtl.css +27 -3
  547. package/build-style/post-comments/style.css +27 -3
  548. package/build-style/post-comments-form/editor-rtl.css +79 -0
  549. package/build-style/post-comments-form/editor.css +79 -0
  550. package/build-style/post-comments-form/style-rtl.css +1 -3
  551. package/build-style/post-comments-form/style.css +1 -3
  552. package/build-style/separator/editor-rtl.css +1 -0
  553. package/build-style/separator/editor.css +1 -0
  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 +69 -33
  557. package/build-style/style.css +71 -33
  558. package/build-style/video/editor-rtl.css +2 -5
  559. package/build-style/video/editor.css +2 -5
  560. package/build-types/table-of-contents/list.d.ts +12 -0
  561. package/build-types/table-of-contents/list.d.ts.map +1 -0
  562. package/build-types/table-of-contents/utils.d.ts +24 -0
  563. package/build-types/table-of-contents/utils.d.ts.map +1 -0
  564. package/package.json +30 -29
  565. package/src/audio/edit.js +6 -9
  566. package/src/avatar/block.json +0 -1
  567. package/src/avatar/index.php +2 -2
  568. package/src/block/edit.js +39 -42
  569. package/src/block/test/edit.native.js +1 -1
  570. package/src/button/block.json +1 -0
  571. package/src/button/deprecated.js +145 -0
  572. package/src/button/edit.js +3 -1
  573. package/src/button/edit.native.js +6 -3
  574. package/src/button/save.js +3 -1
  575. package/src/buttons/test/__snapshots__/edit.native.js.snap +1 -1
  576. package/src/buttons/test/edit.native.js +1 -1
  577. package/src/categories/block.json +1 -1
  578. package/src/categories/edit.js +1 -1
  579. package/src/columns/block.json +3 -1
  580. package/src/comment-author-avatar/block.json +1 -0
  581. package/src/comment-author-name/index.php +7 -5
  582. package/src/comment-content/index.php +25 -3
  583. package/src/comment-content/style.scss +5 -0
  584. package/src/comment-edit-link/index.php +1 -4
  585. package/src/comment-reply-link/index.php +1 -4
  586. package/src/comment-template/edit.js +1 -5
  587. package/src/comment-template/index.php +4 -0
  588. package/src/{comments-query-loop → comments}/block.json +1 -1
  589. package/src/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  590. package/src/{comments-query-loop → comments}/edit.js +2 -1
  591. package/src/{comments-query-loop → comments}/editor.scss +0 -0
  592. package/src/{comments-query-loop → comments}/index.js +0 -0
  593. package/src/{comments-query-loop → comments}/save.js +1 -3
  594. package/src/comments-pagination/index.php +4 -0
  595. package/src/comments-title/block.json +0 -6
  596. package/src/comments-title/deprecated.js +34 -0
  597. package/src/comments-title/edit.js +44 -84
  598. package/src/comments-title/index.js +3 -1
  599. package/src/comments-title/index.php +51 -22
  600. package/src/cover/controls.native.js +1 -2
  601. package/src/cover/deprecated.js +230 -183
  602. package/src/cover/edit/block-controls.js +119 -0
  603. package/src/cover/edit/cover-placeholder.js +39 -0
  604. package/src/cover/edit/index.js +393 -0
  605. package/src/cover/edit/inspector-controls.js +286 -0
  606. package/src/cover/edit/resizable-cover.js +55 -0
  607. package/src/cover/edit/use-cover-is-dark.js +71 -0
  608. package/src/cover/edit.native.js +40 -14
  609. package/src/cover/editor.scss +1 -1
  610. package/src/cover/focal-point-settings-button.native.js +1 -1
  611. package/src/cover/index.php +20 -37
  612. package/src/cover/save.js +26 -13
  613. package/src/cover/shared.js +5 -3
  614. package/src/cover/style.native.scss +4 -0
  615. package/src/cover/style.scss +27 -26
  616. package/src/cover/test/__snapshots__/edit.native.js.snap +6 -6
  617. package/src/cover/test/block-controls.js +62 -0
  618. package/src/cover/test/transforms.js +301 -0
  619. package/src/cover/transforms.js +112 -7
  620. package/src/cover/use-cover-is-dark.native.js +51 -0
  621. package/src/editor.scss +3 -1
  622. package/src/embed/embed-preview.js +4 -2
  623. package/src/file/edit.js +5 -1
  624. package/src/file/edit.native.js +0 -1
  625. package/src/file/save.js +14 -2
  626. package/src/gallery/block.json +1 -1
  627. package/src/gallery/edit.js +2 -1
  628. package/src/gallery/gallery.js +2 -2
  629. package/src/gallery/gap-styles.js +21 -6
  630. package/src/gallery/index.php +23 -12
  631. package/src/gallery/shared.js +3 -2
  632. package/src/gallery/use-get-media.js +2 -1
  633. package/src/gallery/use-short-code-transform.js +19 -16
  634. package/src/gallery/v1/gallery.js +2 -2
  635. package/src/group/block.json +1 -0
  636. package/src/heading/block.json +1 -0
  637. package/src/heading/edit.js +5 -2
  638. package/src/heading/transforms.js +4 -3
  639. package/src/image/edit.js +0 -44
  640. package/src/image/edit.native.js +65 -4
  641. package/src/image/editor.scss +1 -1
  642. package/src/image/image.js +10 -13
  643. package/src/image/styles.native.scss +11 -0
  644. package/src/image/test/edit.native.js +7 -7
  645. package/src/index.js +53 -33
  646. package/src/is-block-metadata-experimental.js +19 -0
  647. package/src/latest-posts/edit.js +27 -2
  648. package/src/latest-posts/edit.native.js +56 -1
  649. package/src/latest-posts/index.php +12 -6
  650. package/src/latest-posts/style.scss +4 -0
  651. package/src/list/transforms.js +7 -0
  652. package/src/list/v2/edit.js +1 -0
  653. package/src/list/v2/migrate.js +1 -1
  654. package/src/list/v2/transforms.js +35 -0
  655. package/src/list-item/block.json +2 -1
  656. package/src/list-item/edit.js +17 -10
  657. package/src/list-item/hooks/index.js +3 -0
  658. package/src/list-item/hooks/use-backspace.js +52 -0
  659. package/src/list-item/hooks/use-enter.js +9 -16
  660. package/src/list-item/hooks/use-indent-list-item.js +50 -63
  661. package/src/list-item/hooks/use-space.js +48 -0
  662. package/src/list-item/hooks/use-split.js +33 -0
  663. package/src/list-item/utils.js +1 -1
  664. package/src/media-text/edit.native.js +3 -1
  665. package/src/media-text/media-container.native.js +2 -4
  666. package/src/media-text/transforms.js +154 -0
  667. package/src/navigation/block.json +0 -1
  668. package/src/navigation/edit/index.js +181 -205
  669. package/src/navigation/edit/inner-blocks.js +6 -15
  670. package/src/navigation/index.php +40 -0
  671. package/src/navigation/style.scss +3 -0
  672. package/src/navigation/use-navigation-entities.js +1 -1
  673. package/src/navigation/view-modal.js +32 -0
  674. package/src/navigation-link/edit.js +75 -48
  675. package/src/navigation-link/fallback-variations.js +1 -1
  676. package/src/navigation-link/hooks.js +2 -2
  677. package/src/navigation-link/test/__snapshots__/hooks.js.snap +4 -4
  678. package/src/navigation-link/test/edit.js +0 -20
  679. package/src/navigation-submenu/edit.js +13 -17
  680. package/src/page-list/convert-to-links-modal.js +1 -1
  681. package/src/page-list/edit.js +1 -4
  682. package/src/paragraph/edit.js +6 -0
  683. package/src/paragraph/use-enter.js +103 -0
  684. package/src/post-author/edit.js +24 -22
  685. package/src/post-author/index.php +4 -3
  686. package/src/post-author-name/block.json +1 -0
  687. package/src/post-author-name/index.js +2 -0
  688. package/src/post-author-name/index.php +1 -1
  689. package/src/post-author-name/transforms.js +25 -0
  690. package/src/post-comment/block.json +2 -1
  691. package/src/post-comments/block.json +3 -2
  692. package/src/post-comments/edit.js +206 -44
  693. package/src/post-comments/editor.scss +3 -0
  694. package/src/post-comments/index.php +3 -1
  695. package/src/post-comments/style.scss +30 -5
  696. package/src/post-comments-count/block.json +1 -0
  697. package/src/post-comments-form/block.json +1 -0
  698. package/src/post-comments-form/edit.js +52 -23
  699. package/src/post-comments-form/editor.scss +3 -0
  700. package/src/post-comments-form/form.js +50 -0
  701. package/src/post-comments-form/index.php +10 -3
  702. package/src/post-comments-form/style.scss +1 -4
  703. package/src/post-comments-link/block.json +1 -0
  704. package/src/post-content/edit.js +15 -1
  705. package/src/post-date/edit.js +4 -3
  706. package/src/post-excerpt/edit.js +14 -1
  707. package/src/post-featured-image/edit.js +1 -1
  708. package/src/post-template/edit.js +5 -0
  709. package/src/post-template/index.php +30 -0
  710. package/src/post-terms/block.json +8 -0
  711. package/src/post-terms/edit.js +47 -1
  712. package/src/post-terms/hooks.js +27 -0
  713. package/src/post-terms/index.js +14 -7
  714. package/src/post-terms/index.php +50 -2
  715. package/src/post-title/index.js +1 -1
  716. package/src/pullquote/edit.js +2 -2
  717. package/src/pullquote/edit.native.js +2 -2
  718. package/src/query/block.json +2 -1
  719. package/src/query/edit/inspector-controls/index.js +25 -11
  720. package/src/query/edit/inspector-controls/parent-control.js +133 -0
  721. package/src/query/edit/inspector-controls/sticky-control.js +25 -0
  722. package/src/query/utils.js +22 -0
  723. package/src/query-no-results/edit.js +1 -1
  724. package/src/query-pagination/index.php +0 -1
  725. package/src/query-title/index.js +1 -1
  726. package/src/query-title/variations.js +2 -2
  727. package/src/quote/block.json +1 -0
  728. package/src/quote/edit.js +5 -2
  729. package/src/quote/v2/edit.js +4 -2
  730. package/src/search/block.json +4 -0
  731. package/src/search/edit.js +4 -1
  732. package/src/search/index.php +29 -16
  733. package/src/separator/block.json +3 -0
  734. package/src/separator/editor.scss +1 -0
  735. package/src/shortcode/edit.native.js +29 -15
  736. package/src/shortcode/style.native.scss +11 -4
  737. package/src/shortcode/test/__snapshots__/edit.native.js.snap +9 -0
  738. package/src/shortcode/test/edit.native.js +58 -40
  739. package/src/site-logo/edit.js +1 -1
  740. package/src/site-logo/style.scss +6 -0
  741. package/src/social-links/edit.js +11 -10
  742. package/src/table/edit.js +19 -4
  743. package/src/table-of-contents/block.json +9 -2
  744. package/src/table-of-contents/edit.js +170 -77
  745. package/src/table-of-contents/index.js +2 -0
  746. package/src/table-of-contents/list.tsx +46 -0
  747. package/src/table-of-contents/save.js +25 -0
  748. package/src/table-of-contents/utils.ts +71 -0
  749. package/src/tag-cloud/block.json +1 -1
  750. package/src/template-part/edit/index.js +25 -15
  751. package/src/template-part/edit/inner-blocks.js +2 -10
  752. package/src/video/edit.js +7 -6
  753. package/src/video/editor.scss +3 -6
  754. package/test/babel-plugin.js +67 -0
  755. package/tsconfig.json +11 -0
  756. package/tsconfig.tsbuildinfo +1 -0
  757. package/build/comments-query-loop/edit/comments-inspector-controls.js.map +0 -1
  758. package/build/comments-query-loop/edit.js.map +0 -1
  759. package/build/comments-query-loop/index.js.map +0 -1
  760. package/build/comments-query-loop/save.js.map +0 -1
  761. package/build/cover/edit.js +0 -665
  762. package/build/cover/edit.js.map +0 -1
  763. package/build/navigation-area/edit.js +0 -110
  764. package/build/navigation-area/edit.js.map +0 -1
  765. package/build/navigation-area/index.js +0 -62
  766. package/build/navigation-area/index.js.map +0 -1
  767. package/build/navigation-area/inner-blocks.js +0 -34
  768. package/build/navigation-area/inner-blocks.js.map +0 -1
  769. package/build/navigation-area/save.js +0 -18
  770. package/build/navigation-area/save.js.map +0 -1
  771. package/build/post-terms/variations.js +0 -37
  772. package/build/post-terms/variations.js.map +0 -1
  773. package/build-module/comments-query-loop/edit.js.map +0 -1
  774. package/build-module/comments-query-loop/index.js.map +0 -1
  775. package/build-module/comments-query-loop/save.js.map +0 -1
  776. package/build-module/cover/edit.js +0 -642
  777. package/build-module/cover/edit.js.map +0 -1
  778. package/build-module/navigation-area/edit.js +0 -94
  779. package/build-module/navigation-area/edit.js.map +0 -1
  780. package/build-module/navigation-area/index.js +0 -48
  781. package/build-module/navigation-area/index.js.map +0 -1
  782. package/build-module/navigation-area/inner-blocks.js +0 -26
  783. package/build-module/navigation-area/inner-blocks.js.map +0 -1
  784. package/build-module/navigation-area/save.js +0 -10
  785. package/build-module/navigation-area/save.js.map +0 -1
  786. package/build-module/post-terms/variations.js +0 -27
  787. package/build-module/post-terms/variations.js.map +0 -1
  788. package/src/cover/edit.js +0 -822
  789. package/src/navigation-area/block.json +0 -23
  790. package/src/navigation-area/edit.js +0 -111
  791. package/src/navigation-area/index.js +0 -26
  792. package/src/navigation-area/index.php +0 -22
  793. package/src/navigation-area/inner-blocks.js +0 -24
  794. package/src/navigation-area/save.js +0 -8
  795. package/src/post-terms/variations.js +0 -28
  796. package/src/table-of-contents/index.php +0 -346
  797. package/src/table-of-contents/list.js +0 -28
  798. package/src/table-of-contents/utils.js +0 -126
@@ -48,7 +48,14 @@ function block_core_gallery_render( $attributes, $content ) {
48
48
  // Skip if gap value contains unsupported characters.
49
49
  // Regex for CSS value borrowed from `safecss_filter_attr`, and used here
50
50
  // because we only want to match against the value, not the CSS attribute.
51
- $gap = preg_match( '%[\\\(&=}]|/\*%', $gap ) ? null : $gap;
51
+ if ( is_array( $gap ) ) {
52
+ foreach ( $gap as $key => $value ) {
53
+ $gap[ $key ] = $value && preg_match( '%[\\\(&=}]|/\*%', $value ) ? null : $value;
54
+ }
55
+ } else {
56
+ $gap = $gap && preg_match( '%[\\\(&=}]|/\*%', $gap ) ? null : $gap;
57
+ }
58
+
52
59
  $class = wp_unique_id( 'wp-block-gallery-' );
53
60
  $content = preg_replace(
54
61
  '/' . preg_quote( 'class="', '/' ) . '/',
@@ -56,19 +63,23 @@ function block_core_gallery_render( $attributes, $content ) {
56
63
  $content,
57
64
  1
58
65
  );
66
+
59
67
  // --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default
60
68
  // gap on the gallery.
61
- $gap_value = $gap ? $gap : 'var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )';
62
- $style = '.' . $class . '{ --wp--style--unstable-gallery-gap: ' . $gap_value . '; gap: ' . $gap_value . '}';
63
- // Ideally styles should be loaded in the head, but blocks may be parsed
64
- // after that, so loading in the footer for now.
65
- // See https://core.trac.wordpress.org/ticket/53494.
66
- add_action(
67
- 'wp_footer',
68
- function () use ( $style ) {
69
- echo '<style> ' . $style . '</style>';
70
- }
71
- );
69
+ $fallback_gap = 'var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )';
70
+ $gap_value = $gap ? $gap : $fallback_gap;
71
+ $gap_column = $gap_value;
72
+
73
+ if ( is_array( $gap_value ) ) {
74
+ $gap_row = isset( $gap_value['top'] ) ? $gap_value['top'] : $fallback_gap;
75
+ $gap_column = isset( $gap_value['left'] ) ? $gap_value['left'] : $fallback_gap;
76
+ $gap_value = $gap_row === $gap_column ? $gap_row : $gap_row . ' ' . $gap_column;
77
+ }
78
+
79
+ // Set the CSS variable to the column value, and the `gap` property to the combined gap value.
80
+ $style = '.' . $class . '{ --wp--style--unstable-gallery-gap: ' . $gap_column . '; gap: ' . $gap_value . '}';
81
+
82
+ gutenberg_enqueue_block_support_styles( $style, 11 );
72
83
  return $content;
73
84
  }
74
85
  /**
@@ -8,11 +8,12 @@ export function defaultColumnsNumber( imageCount ) {
8
8
  }
9
9
 
10
10
  export const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {
11
- const imageProps = pick( image, [ 'alt', 'id', 'link', 'caption' ] );
11
+ const imageProps = pick( image, [ 'alt', 'id', 'link' ] );
12
12
  imageProps.url =
13
13
  get( image, [ 'sizes', sizeSlug, 'url' ] ) ||
14
14
  get( image, [ 'media_details', 'sizes', sizeSlug, 'source_url' ] ) ||
15
- image.url;
15
+ image.url ||
16
+ image.source_url;
16
17
  const fullUrl =
17
18
  get( image, [ 'sizes', 'full', 'url' ] ) ||
18
19
  get( image, [ 'media_details', 'sizes', 'full', 'source_url' ] );
@@ -32,7 +32,8 @@ export default function useGetMedia( innerBlockImages ) {
32
32
 
33
33
  return select( coreStore ).getMediaItems( {
34
34
  include: imageIds.join( ',' ),
35
- per_page: -1,
35
+ per_page: imageIds.length,
36
+ orderby: 'include',
36
37
  } );
37
38
  },
38
39
  [ innerBlockImages ]
@@ -23,20 +23,13 @@ export default function useShortCodeTransform( shortCodeTransforms ) {
23
23
  if ( ! shortCodeTransforms || shortCodeTransforms.length === 0 ) {
24
24
  return;
25
25
  }
26
- const getMedia = select( coreStore ).getMedia;
27
- return shortCodeTransforms.map( ( image ) => {
28
- const imageData = getMedia( image.id );
29
- if ( imageData ) {
30
- return {
31
- id: imageData.id,
32
- type: 'image',
33
- url: imageData.source_url,
34
- mime: imageData.mime_type,
35
- alt: imageData.alt_text,
36
- link: imageData.link,
37
- };
38
- }
39
- return undefined;
26
+
27
+ const imageIds = shortCodeTransforms.map( ( image ) => image.id );
28
+
29
+ return select( coreStore ).getMediaItems( {
30
+ include: imageIds.join( ',' ),
31
+ per_page: imageIds.length,
32
+ orderby: 'include',
40
33
  } );
41
34
  },
42
35
  [ shortCodeTransforms ]
@@ -46,7 +39,17 @@ export default function useShortCodeTransform( shortCodeTransforms ) {
46
39
  return;
47
40
  }
48
41
 
49
- if ( every( newImageData, ( img ) => img && img.url ) ) {
50
- return newImageData;
42
+ if ( every( newImageData, ( img ) => img && img.source_url ) ) {
43
+ return newImageData.map( ( imageData ) => {
44
+ return {
45
+ id: imageData.id,
46
+ type: 'image',
47
+ url: imageData.source_url,
48
+ mime: imageData.mime_type,
49
+ alt: imageData.alt_text,
50
+ link: imageData.link,
51
+ caption: imageData?.caption?.raw,
52
+ };
53
+ } );
51
54
  }
52
55
  }
@@ -9,7 +9,7 @@ import classnames from 'classnames';
9
9
  import { RichText } from '@wordpress/block-editor';
10
10
  import { VisuallyHidden } from '@wordpress/components';
11
11
  import { __, sprintf } from '@wordpress/i18n';
12
- import { createBlock } from '@wordpress/blocks';
12
+ import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
13
13
 
14
14
  /**
15
15
  * Internal dependencies
@@ -101,7 +101,7 @@ export const Gallery = ( props ) => {
101
101
  onChange={ ( value ) => setAttributes( { caption: value } ) }
102
102
  inlineToolbar
103
103
  __unstableOnSplitAtEnd={ () =>
104
- insertBlocksAfter( createBlock( 'core/paragraph' ) )
104
+ insertBlocksAfter( createBlock( getDefaultBlockName() ) )
105
105
  }
106
106
  />
107
107
  </figure>
@@ -18,6 +18,7 @@
18
18
  }
19
19
  },
20
20
  "supports": {
21
+ "__experimentalSettings": true,
21
22
  "align": [ "wide", "full" ],
22
23
  "anchor": true,
23
24
  "html": false,
@@ -43,6 +43,7 @@
43
43
  "typography": {
44
44
  "fontSize": true,
45
45
  "lineHeight": true,
46
+ "__experimentalFontFamily": true,
46
47
  "__experimentalFontStyle": true,
47
48
  "__experimentalFontWeight": true,
48
49
  "__experimentalLetterSpacing": true,
@@ -42,10 +42,13 @@ function HeadingEdit( {
42
42
  } );
43
43
 
44
44
  const { canGenerateAnchors } = useSelect( ( select ) => {
45
- const settings = select( blockEditorStore ).getSettings();
45
+ const { getGlobalBlockCount, getSettings } = select( blockEditorStore );
46
+ const settings = getSettings();
46
47
 
47
48
  return {
48
- canGenerateAnchors: !! settings.generateAnchors,
49
+ canGenerateAnchors:
50
+ !! settings.generateAnchors ||
51
+ getGlobalBlockCount( 'core/table-of-contents' ) > 0,
49
52
  };
50
53
  }, [] );
51
54
 
@@ -16,10 +16,11 @@ const transforms = {
16
16
  isMultiBlock: true,
17
17
  blocks: [ 'core/paragraph' ],
18
18
  transform: ( attributes ) =>
19
- attributes.map( ( { content, anchor } ) =>
19
+ attributes.map( ( { content, anchor, align: textAlign } ) =>
20
20
  createBlock( name, {
21
21
  content,
22
22
  anchor,
23
+ textAlign,
23
24
  } )
24
25
  ),
25
26
  },
@@ -84,8 +85,8 @@ const transforms = {
84
85
  isMultiBlock: true,
85
86
  blocks: [ 'core/paragraph' ],
86
87
  transform: ( attributes ) =>
87
- attributes.map( ( { content } ) =>
88
- createBlock( 'core/paragraph', { content } )
88
+ attributes.map( ( { content, textAlign: align } ) =>
89
+ createBlock( 'core/paragraph', { content, align } )
89
90
  ),
90
91
  },
91
92
  ],
package/src/image/edit.js CHANGED
@@ -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,33 +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
- // If the image block was not replaced with an embed,
160
- // clear the attributes and trigger the placeholder.
161
- if ( ! isReplaced ) {
162
- setAttributes( {
163
- url: undefined,
164
- id: undefined,
165
- } );
166
- }
167
- }
168
-
169
128
  function onUploadError( message ) {
170
129
  noticeOperations.removeAllNotices();
171
130
  noticeOperations.createErrorNotice( message );
@@ -364,8 +323,6 @@ export function ImageEdit( {
364
323
  containerRef={ ref }
365
324
  context={ context }
366
325
  clientId={ clientId }
367
- onCloseModal={ onCloseModal }
368
- onImageLoadError={ onImageError }
369
326
  />
370
327
  ) }
371
328
  { ! url && (
@@ -382,7 +339,6 @@ export function ImageEdit( {
382
339
  onSelectURL={ onSelectURL }
383
340
  notices={ noticeUI }
384
341
  onError={ onUploadError }
385
- onClose={ onCloseModal }
386
342
  accept="image/*"
387
343
  allowedTypes={ ALLOWED_MEDIA_TYPES }
388
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
@@ -207,6 +213,7 @@ export class ImageEdit extends Component {
207
213
  this.onImagePressed = this.onImagePressed.bind( this );
208
214
  this.onSetFeatured = this.onSetFeatured.bind( this );
209
215
  this.onFocusCaption = this.onFocusCaption.bind( this );
216
+ this.onSelectURL = this.onSelectURL.bind( this );
210
217
  this.updateAlignment = this.updateAlignment.bind( this );
211
218
  this.accessibilityLabelCreator = this.accessibilityLabelCreator.bind(
212
219
  this
@@ -461,6 +468,45 @@ export class ImageEdit extends Component {
461
468
  } );
462
469
  }
463
470
 
471
+ onSelectURL( newURL ) {
472
+ const {
473
+ createErrorNotice,
474
+ imageDefaultSize,
475
+ setAttributes,
476
+ } = this.props;
477
+
478
+ if ( isURL( newURL ) ) {
479
+ this.setState( {
480
+ isFetchingImage: true,
481
+ } );
482
+
483
+ // Use RN's Image.getSize to determine if URL is a valid image
484
+ RNImage.getSize(
485
+ newURL,
486
+ () => {
487
+ setAttributes( {
488
+ url: newURL,
489
+ id: undefined,
490
+ width: undefined,
491
+ height: undefined,
492
+ sizeSlug: imageDefaultSize,
493
+ } );
494
+ this.setState( {
495
+ isFetchingImage: false,
496
+ } );
497
+ },
498
+ () => {
499
+ createErrorNotice( __( 'Image file not found.' ) );
500
+ this.setState( {
501
+ isFetchingImage: false,
502
+ } );
503
+ }
504
+ );
505
+ } else {
506
+ createErrorNotice( __( 'Invalid URL.' ) );
507
+ }
508
+ }
509
+
464
510
  onFocusCaption() {
465
511
  if ( this.props.onFocus ) {
466
512
  this.props.onFocus();
@@ -484,6 +530,14 @@ export class ImageEdit extends Component {
484
530
  );
485
531
  }
486
532
 
533
+ showLoadingIndicator() {
534
+ return (
535
+ <View style={ styles.image__loading }>
536
+ <ActivityIndicator animating />
537
+ </View>
538
+ );
539
+ }
540
+
487
541
  getWidth() {
488
542
  const { attributes } = this.props;
489
543
  const { align, width } = attributes;
@@ -611,7 +665,7 @@ export class ImageEdit extends Component {
611
665
  }
612
666
 
613
667
  render() {
614
- const { isCaptionSelected } = this.state;
668
+ const { isCaptionSelected, isFetchingImage } = this.state;
615
669
  const {
616
670
  attributes,
617
671
  isSelected,
@@ -713,9 +767,11 @@ export class ImageEdit extends Component {
713
767
  if ( ! url ) {
714
768
  return (
715
769
  <View style={ styles.content }>
770
+ { isFetchingImage && this.showLoadingIndicator() }
716
771
  <MediaPlaceholder
717
772
  allowedTypes={ [ MEDIA_TYPE_IMAGE ] }
718
773
  onSelect={ this.onSelectMediaUploadOption }
774
+ onSelectURL={ this.onSelectURL }
719
775
  icon={ this.getPlaceholderIcon() }
720
776
  onFocus={ this.props.onFocus }
721
777
  autoOpenMediaUpload={
@@ -757,7 +813,6 @@ export class ImageEdit extends Component {
757
813
  <TouchableWithoutFeedback
758
814
  accessible={ ! isSelected }
759
815
  onPress={ this.onImagePressed }
760
- onLongPress={ openMediaOptions }
761
816
  disabled={ ! isSelected }
762
817
  >
763
818
  <View style={ styles.content }>
@@ -785,6 +840,8 @@ export class ImageEdit extends Component {
785
840
  } ) => {
786
841
  return (
787
842
  <View style={ imageContainerStyles }>
843
+ { isFetchingImage &&
844
+ this.showLoadingIndicator() }
788
845
  <Image
789
846
  align={
790
847
  align && alignToFlex[ align ]
@@ -837,6 +894,7 @@ export class ImageEdit extends Component {
837
894
  allowedTypes={ [ MEDIA_TYPE_IMAGE ] }
838
895
  isReplacingMedia={ true }
839
896
  onSelect={ this.onSelectMediaUploadOption }
897
+ onSelectURL={ this.onSelectURL }
840
898
  render={ ( { open, getMediaOptions } ) => {
841
899
  return getImageComponent( open, getMediaOptions );
842
900
  } }
@@ -882,7 +940,10 @@ export default compose( [
882
940
  };
883
941
  } ),
884
942
  withDispatch( ( dispatch ) => {
943
+ const { createErrorNotice } = dispatch( noticesStore );
944
+
885
945
  return {
946
+ createErrorNotice,
886
947
  closeSettingsBottomSheet() {
887
948
  dispatch( editPostStore ).closeGeneralSidebar();
888
949
  },
@@ -110,8 +110,8 @@ figure.wp-block-image:not(.wp-block) {
110
110
 
111
111
  .wp-block-image__zoom {
112
112
  .components-popover__content {
113
- overflow: visible;
114
113
  min-width: 260px;
114
+ overflow: visible !important;
115
115
  }
116
116
 
117
117
  .components-range-control {
@@ -33,7 +33,11 @@ import {
33
33
  import { useEffect, useMemo, useState, useRef } from '@wordpress/element';
34
34
  import { __, sprintf, isRTL } from '@wordpress/i18n';
35
35
  import { getFilename } from '@wordpress/url';
36
- import { createBlock, switchToBlockType } from '@wordpress/blocks';
36
+ import {
37
+ createBlock,
38
+ getDefaultBlockName,
39
+ switchToBlockType,
40
+ } from '@wordpress/blocks';
37
41
  import { crop, overlayText, upload } from '@wordpress/icons';
38
42
  import { store as noticesStore } from '@wordpress/notices';
39
43
  import { store as coreStore } from '@wordpress/core-data';
@@ -43,7 +47,7 @@ import { store as coreStore } from '@wordpress/core-data';
43
47
  */
44
48
  import { createUpgradedEmbedBlock } from '../embed/util';
45
49
  import useClientWidth from './use-client-width';
46
- import { isExternalImage, isMediaDestroyed } from './edit';
50
+ import { isExternalImage } from './edit';
47
51
 
48
52
  /**
49
53
  * Module constants
@@ -72,14 +76,12 @@ export default function Image( {
72
76
  isSelected,
73
77
  insertBlocksAfter,
74
78
  onReplace,
75
- onCloseModal,
76
79
  onSelectImage,
77
80
  onSelectURL,
78
81
  onUploadError,
79
82
  containerRef,
80
83
  context,
81
84
  clientId,
82
- onImageLoadError,
83
85
  } ) {
84
86
  const imageRef = useRef();
85
87
  const captionRef = useRef();
@@ -221,13 +223,10 @@ export default function Image( {
221
223
  // Check if there's an embed block that handles this URL, e.g., instagram URL.
222
224
  // See: https://github.com/WordPress/gutenberg/pull/11472
223
225
  const embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );
224
- const shouldReplace = undefined !== embedBlock;
225
226
 
226
- if ( shouldReplace ) {
227
+ if ( undefined !== embedBlock ) {
227
228
  onReplace( embedBlock );
228
229
  }
229
-
230
- onImageLoadError( shouldReplace );
231
230
  }
232
231
 
233
232
  function onSetHref( props ) {
@@ -299,9 +298,6 @@ export default function Image( {
299
298
  if ( ! isSelected ) {
300
299
  setIsEditingImage( false );
301
300
  }
302
- if ( isSelected && isMediaDestroyed( id ) ) {
303
- onImageLoadError();
304
- }
305
301
  }, [ isSelected ] );
306
302
 
307
303
  const canEditImage = id && naturalWidth && naturalHeight && imageEditing;
@@ -365,7 +361,6 @@ export default function Image( {
365
361
  onSelect={ onSelectImage }
366
362
  onSelectURL={ onSelectURL }
367
363
  onError={ onUploadError }
368
- onCloseModal={ onCloseModal }
369
364
  />
370
365
  </BlockControls>
371
366
  ) }
@@ -598,7 +593,9 @@ export default function Image( {
598
593
  }
599
594
  inlineToolbar
600
595
  __unstableOnSplitAtEnd={ () =>
601
- insertBlocksAfter( createBlock( 'core/paragraph' ) )
596
+ insertBlocksAfter(
597
+ createBlock( getDefaultBlockName() )
598
+ )
602
599
  }
603
600
  />
604
601
  ) }
@@ -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
+ }
@@ -87,7 +87,7 @@ describe( 'Image Block', () => {
87
87
 
88
88
  fireEvent.press( screen.getByA11yLabel( /Image Block/ ) );
89
89
  // Awaiting navigation event seemingly required due to React Navigation bug
90
- // https://git.io/Ju35Z
90
+ // https://github.com/react-navigation/react-navigation/issues/9701
91
91
  await act( () =>
92
92
  fireEvent.press( screen.getByA11yLabel( 'Open Settings' ) )
93
93
  );
@@ -113,7 +113,7 @@ describe( 'Image Block', () => {
113
113
 
114
114
  fireEvent.press( screen.getByA11yLabel( /Image Block/ ) );
115
115
  // Awaiting navigation event seemingly required due to React Navigation bug
116
- // https://git.io/Ju35Z
116
+ // https://github.com/react-navigation/react-navigation/issues/9701
117
117
  await act( () =>
118
118
  fireEvent.press( screen.getByA11yLabel( 'Open Settings' ) )
119
119
  );
@@ -139,7 +139,7 @@ describe( 'Image Block', () => {
139
139
 
140
140
  fireEvent.press( screen.getByA11yLabel( /Image Block/ ) );
141
141
  // Awaiting navigation event seemingly required due to React Navigation bug
142
- // https://git.io/Ju35Z
142
+ // https://github.com/react-navigation/react-navigation/issues/9701
143
143
  await act( () =>
144
144
  fireEvent.press( screen.getByA11yLabel( 'Open Settings' ) )
145
145
  );
@@ -172,7 +172,7 @@ describe( 'Image Block', () => {
172
172
 
173
173
  fireEvent.press( screen.getByA11yLabel( /Image Block/ ) );
174
174
  // Awaiting navigation event seemingly required due to React Navigation bug
175
- // https://git.io/Ju35Z
175
+ // https://github.com/react-navigation/react-navigation/issues/9701
176
176
  await act( () =>
177
177
  fireEvent.press( screen.getByA11yLabel( 'Open Settings' ) )
178
178
  );
@@ -212,7 +212,7 @@ describe( 'Image Block', () => {
212
212
 
213
213
  fireEvent.press( screen.getByA11yLabel( /Image Block/ ) );
214
214
  // Awaiting navigation event seemingly required due to React Navigation bug
215
- // https://git.io/Ju35Z
215
+ // https://github.com/react-navigation/react-navigation/issues/9701
216
216
  await act( () =>
217
217
  fireEvent.press( screen.getByA11yLabel( 'Open Settings' ) )
218
218
  );
@@ -239,7 +239,7 @@ describe( 'Image Block', () => {
239
239
 
240
240
  const settingsButton = screen.getByA11yLabel( 'Open Settings' );
241
241
  // Awaiting navigation event seemingly required due to React Navigation bug
242
- // https://git.io/Ju35Z
242
+ // https://github.com/react-navigation/react-navigation/issues/9701
243
243
  await act( () => fireEvent.press( settingsButton ) );
244
244
 
245
245
  const linkTargetButton = screen.getByText( 'Open in new tab' );
@@ -270,7 +270,7 @@ describe( 'Image Block', () => {
270
270
 
271
271
  const settingsButton = screen.getByA11yLabel( 'Open Settings' );
272
272
  // Awaiting navigation event seemingly required due to React Navigation bug
273
- // https://git.io/Ju35Z
273
+ // https://github.com/react-navigation/react-navigation/issues/9701
274
274
  await act( () => fireEvent.press( settingsButton ) );
275
275
 
276
276
  const linkTargetButton = screen.getByText( 'Open in new tab' );