@wordpress/block-library 7.3.10 → 7.6.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 (752) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +3 -2
  3. package/babel-plugin.js +154 -0
  4. package/build/archives/edit.js +1 -1
  5. package/build/archives/edit.js.map +1 -1
  6. package/build/audio/edit.js +5 -17
  7. package/build/audio/edit.js.map +1 -1
  8. package/build/audio/edit.native.js +1 -1
  9. package/build/audio/edit.native.js.map +1 -1
  10. package/build/block/edit.js +10 -9
  11. package/build/block/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/categories/edit.js +9 -4
  17. package/build/categories/edit.js.map +1 -1
  18. package/build/categories/index.js +5 -1
  19. package/build/categories/index.js.map +1 -1
  20. package/build/column/index.js +10 -0
  21. package/build/column/index.js.map +1 -1
  22. package/build/comment-author-avatar/index.js +1 -0
  23. package/build/comment-author-avatar/index.js.map +1 -1
  24. package/build/comment-template/edit.js +1 -3
  25. package/build/comment-template/edit.js.map +1 -1
  26. package/build/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  27. package/{build-module/comments-query-loop → build/comments}/edit/comments-inspector-controls.js.map +1 -1
  28. package/build/{comments-query-loop → comments}/edit.js +2 -2
  29. package/build/comments/edit.js.map +1 -0
  30. package/build/{comments-query-loop → comments}/index.js +1 -1
  31. package/build/comments/index.js.map +1 -0
  32. package/build/{comments-query-loop → comments}/save.js +2 -2
  33. package/build/comments/save.js.map +1 -0
  34. package/build/comments-title/index.js +1 -1
  35. package/build/comments-title/index.js.map +1 -1
  36. package/build/cover/controls.native.js +2 -3
  37. package/build/cover/controls.native.js.map +1 -1
  38. package/build/cover/edit/block-controls.js +115 -0
  39. package/build/cover/edit/block-controls.js.map +1 -0
  40. package/build/cover/edit/cover-placeholder.js +49 -0
  41. package/build/cover/edit/cover-placeholder.js.map +1 -0
  42. package/build/cover/edit/index.js +333 -0
  43. package/build/cover/edit/index.js.map +1 -0
  44. package/build/cover/edit/inspector-controls.js +224 -0
  45. package/build/cover/edit/inspector-controls.js.map +1 -0
  46. package/build/cover/edit/resizable-cover.js +67 -0
  47. package/build/cover/edit/resizable-cover.js.map +1 -0
  48. package/build/cover/edit/use-cover-is-dark.js +81 -0
  49. package/build/cover/edit/use-cover-is-dark.js.map +1 -0
  50. package/build/cover/edit.native.js +36 -16
  51. package/build/cover/edit.native.js.map +1 -1
  52. package/build/cover/focal-point-settings-button.native.js.map +1 -1
  53. package/build/cover/shared.js +9 -0
  54. package/build/cover/shared.js.map +1 -1
  55. package/build/cover/transforms.js +77 -6
  56. package/build/cover/transforms.js.map +1 -1
  57. package/build/cover/use-cover-is-dark.native.js +60 -0
  58. package/build/cover/use-cover-is-dark.native.js.map +1 -0
  59. package/build/embed/edit.js +12 -18
  60. package/build/embed/edit.js.map +1 -1
  61. package/build/embed/edit.native.js +1 -7
  62. package/build/embed/edit.native.js.map +1 -1
  63. package/build/embed/embed-preview.js +1 -1
  64. package/build/embed/embed-preview.js.map +1 -1
  65. package/build/embed/util.js +29 -4
  66. package/build/embed/util.js.map +1 -1
  67. package/build/file/edit.native.js +0 -1
  68. package/build/file/edit.native.js.map +1 -1
  69. package/build/file/inspector.js +2 -4
  70. package/build/file/inspector.js.map +1 -1
  71. package/build/gallery/edit.js +3 -2
  72. package/build/gallery/edit.js.map +1 -1
  73. package/build/gallery/gallery.js +1 -1
  74. package/build/gallery/gallery.js.map +1 -1
  75. package/build/gallery/shared.js +2 -2
  76. package/build/gallery/shared.js.map +1 -1
  77. package/build/gallery/use-get-media.js +2 -1
  78. package/build/gallery/use-get-media.js.map +1 -1
  79. package/build/gallery/use-short-code-transform.js +19 -18
  80. package/build/gallery/use-short-code-transform.js.map +1 -1
  81. package/build/gallery/v1/edit.js +1 -1
  82. package/build/gallery/v1/edit.js.map +1 -1
  83. package/build/gallery/v1/gallery.js +1 -1
  84. package/build/gallery/v1/gallery.js.map +1 -1
  85. package/build/group/index.js +1 -0
  86. package/build/group/index.js.map +1 -1
  87. package/build/heading/edit.js +6 -2
  88. package/build/heading/edit.js.map +1 -1
  89. package/build/heading/index.js +1 -0
  90. package/build/heading/index.js.map +1 -1
  91. package/build/heading/transforms.js +9 -4
  92. package/build/heading/transforms.js.map +1 -1
  93. package/build/html/edit.js +2 -2
  94. package/build/html/edit.js.map +1 -1
  95. package/build/image/edit.js +9 -8
  96. package/build/image/edit.js.map +1 -1
  97. package/build/image/edit.native.js +1 -2
  98. package/build/image/edit.native.js.map +1 -1
  99. package/build/image/image.js +2 -2
  100. package/build/image/image.js.map +1 -1
  101. package/build/index.js +48 -12
  102. package/build/index.js.map +1 -1
  103. package/build/index.native.js +14 -3
  104. package/build/index.native.js.map +1 -1
  105. package/build/is-block-metadata-experimental.js +18 -0
  106. package/build/is-block-metadata-experimental.js.map +1 -0
  107. package/build/latest-comments/edit.js +1 -1
  108. package/build/latest-comments/edit.js.map +1 -1
  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 +30 -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/loginout/edit.js +1 -1
  140. package/build/loginout/edit.js.map +1 -1
  141. package/build/media-text/edit.js +1 -2
  142. package/build/media-text/edit.js.map +1 -1
  143. package/build/media-text/edit.native.js +3 -2
  144. package/build/media-text/edit.native.js.map +1 -1
  145. package/build/media-text/media-container.native.js +2 -4
  146. package/build/media-text/media-container.native.js.map +1 -1
  147. package/build/media-text/transforms.js +137 -8
  148. package/build/media-text/transforms.js.map +1 -1
  149. package/build/navigation/edit/index.js +86 -81
  150. package/build/navigation/edit/index.js.map +1 -1
  151. package/build/navigation/edit/inner-blocks.js +1 -5
  152. package/build/navigation/edit/inner-blocks.js.map +1 -1
  153. package/build/navigation/edit/unsaved-inner-blocks.js +5 -4
  154. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  155. package/build/navigation/index.js +1 -1
  156. package/build/navigation/use-navigation-entities.js +3 -3
  157. package/build/navigation/use-navigation-entities.js.map +1 -1
  158. package/build/navigation/view-modal.js +62 -0
  159. package/build/navigation/view-modal.js.map +1 -0
  160. package/build/navigation/view.js +1 -34
  161. package/build/navigation/view.js.map +1 -1
  162. package/build/navigation-link/edit.js +1 -1
  163. package/build/navigation-link/edit.js.map +1 -1
  164. package/build/navigation-link/fallback-variations.js +1 -1
  165. package/build/navigation-link/fallback-variations.js.map +1 -1
  166. package/build/navigation-link/hooks.js +1 -1
  167. package/build/navigation-link/hooks.js.map +1 -1
  168. package/build/page-list/convert-to-links-modal.js +1 -1
  169. package/build/page-list/convert-to-links-modal.js.map +1 -1
  170. package/build/page-list/edit.js +1 -1
  171. package/build/page-list/edit.js.map +1 -1
  172. package/build/paragraph/edit.js +10 -0
  173. package/build/paragraph/edit.js.map +1 -1
  174. package/build/paragraph/edit.native.js +6 -2
  175. package/build/paragraph/edit.native.js.map +1 -1
  176. package/build/paragraph/use-enter.js +94 -0
  177. package/build/paragraph/use-enter.js.map +1 -0
  178. package/build/post-author/edit.js +2 -2
  179. package/build/post-author/edit.js.map +1 -1
  180. package/build/post-author-name/index.js +1 -0
  181. package/build/post-author-name/index.js.map +1 -1
  182. package/build/post-comment/index.js +2 -1
  183. package/build/post-comment/index.js.map +1 -1
  184. package/build/post-comments/edit.js +14 -35
  185. package/build/post-comments/edit.js.map +1 -1
  186. package/build/post-comments/index.js +1 -1
  187. package/build/post-comments-count/index.js +1 -0
  188. package/build/post-comments-count/index.js.map +1 -1
  189. package/build/post-comments-form/edit.js +37 -24
  190. package/build/post-comments-form/edit.js.map +1 -1
  191. package/build/post-comments-form/form.js +48 -0
  192. package/build/post-comments-form/form.js.map +1 -0
  193. package/build/post-comments-link/index.js +1 -0
  194. package/build/post-comments-link/index.js.map +1 -1
  195. package/build/post-excerpt/edit.js +1 -1
  196. package/build/post-excerpt/edit.js.map +1 -1
  197. package/build/post-featured-image/edit.js +1 -1
  198. package/build/post-featured-image/edit.js.map +1 -1
  199. package/build/post-template/edit.js +7 -2
  200. package/build/post-template/edit.js.map +1 -1
  201. package/build/post-terms/edit.js +35 -4
  202. package/build/post-terms/edit.js.map +1 -1
  203. package/build/post-terms/hooks.js +33 -0
  204. package/build/post-terms/hooks.js.map +1 -0
  205. package/build/post-terms/index.js +20 -5
  206. package/build/post-terms/index.js.map +1 -1
  207. package/build/post-title/index.js +1 -1
  208. package/build/post-title/index.js.map +1 -1
  209. package/build/pullquote/edit.js +1 -1
  210. package/build/pullquote/edit.js.map +1 -1
  211. package/build/pullquote/edit.native.js +1 -1
  212. package/build/pullquote/edit.native.js.map +1 -1
  213. package/build/query/edit/inspector-controls/index.js +26 -17
  214. package/build/query/edit/inspector-controls/index.js.map +1 -1
  215. package/build/query/edit/inspector-controls/parent-control.js +148 -0
  216. package/build/query/edit/inspector-controls/parent-control.js.map +1 -0
  217. package/build/query/edit/inspector-controls/sticky-control.js +41 -0
  218. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -0
  219. package/build/query/index.js +2 -1
  220. package/build/query/index.js.map +1 -1
  221. package/build/query/utils.js +28 -2
  222. package/build/query/utils.js.map +1 -1
  223. package/build/query-title/index.js +1 -1
  224. package/build/query-title/index.js.map +1 -1
  225. package/build/query-title/variations.js +1 -1
  226. package/build/query-title/variations.js.map +1 -1
  227. package/build/quote/edit.js +3 -2
  228. package/build/quote/edit.js.map +1 -1
  229. package/build/quote/index.js +7 -0
  230. package/build/quote/index.js.map +1 -1
  231. package/build/quote/v2/edit.js +12 -4
  232. package/build/quote/v2/edit.js.map +1 -1
  233. package/build/rss/edit.js +1 -1
  234. package/build/rss/edit.js.map +1 -1
  235. package/build/search/edit.js +12 -9
  236. package/build/search/edit.js.map +1 -1
  237. package/build/separator/index.js +3 -0
  238. package/build/separator/index.js.map +1 -1
  239. package/build/site-logo/edit.js +1 -1
  240. package/build/site-logo/edit.js.map +1 -1
  241. package/build/spacer/constants.js +9 -0
  242. package/build/spacer/constants.js.map +1 -0
  243. package/build/spacer/controls.js +3 -3
  244. package/build/spacer/controls.js.map +1 -1
  245. package/build/spacer/controls.native.js +2 -2
  246. package/build/spacer/controls.native.js.map +1 -1
  247. package/build/spacer/edit.js +5 -6
  248. package/build/spacer/edit.js.map +1 -1
  249. package/build/table/edit.js +23 -4
  250. package/build/table/edit.js.map +1 -1
  251. package/build/table-of-contents/edit.js +138 -66
  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/tag-cloud/edit.js +1 -1
  262. package/build/tag-cloud/edit.js.map +1 -1
  263. package/build/template-part/edit/index.js +7 -3
  264. package/build/template-part/edit/index.js.map +1 -1
  265. package/build/template-part/edit/inner-blocks.js +3 -8
  266. package/build/template-part/edit/inner-blocks.js.map +1 -1
  267. package/build/video/edit.js +5 -9
  268. package/build/video/edit.js.map +1 -1
  269. package/build/video/edit.native.js +1 -1
  270. package/build/video/edit.native.js.map +1 -1
  271. package/build-module/archives/edit.js +1 -1
  272. package/build-module/archives/edit.js.map +1 -1
  273. package/build-module/audio/edit.js +6 -18
  274. package/build-module/audio/edit.js.map +1 -1
  275. package/build-module/audio/edit.native.js +1 -1
  276. package/build-module/audio/edit.native.js.map +1 -1
  277. package/build-module/block/edit.js +11 -10
  278. package/build-module/block/edit.js.map +1 -1
  279. package/build-module/button/edit.native.js +7 -3
  280. package/build-module/button/edit.native.js.map +1 -1
  281. package/build-module/button/index.js +1 -0
  282. package/build-module/button/index.js.map +1 -1
  283. package/build-module/categories/edit.js +9 -4
  284. package/build-module/categories/edit.js.map +1 -1
  285. package/build-module/categories/index.js +5 -1
  286. package/build-module/categories/index.js.map +1 -1
  287. package/build-module/column/index.js +10 -0
  288. package/build-module/column/index.js.map +1 -1
  289. package/build-module/comment-author-avatar/index.js +1 -0
  290. package/build-module/comment-author-avatar/index.js.map +1 -1
  291. package/build-module/comment-template/edit.js +1 -3
  292. package/build-module/comment-template/edit.js.map +1 -1
  293. package/build-module/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  294. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -0
  295. package/build-module/{comments-query-loop → comments}/edit.js +1 -1
  296. package/build-module/comments/edit.js.map +1 -0
  297. package/build-module/{comments-query-loop → comments}/index.js +1 -1
  298. package/build-module/comments/index.js.map +1 -0
  299. package/build-module/{comments-query-loop → comments}/save.js +1 -1
  300. package/build-module/comments/save.js.map +1 -0
  301. package/build-module/comments-title/index.js +1 -1
  302. package/build-module/comments-title/index.js.map +1 -1
  303. package/build-module/cover/controls.native.js +2 -3
  304. package/build-module/cover/controls.native.js.map +1 -1
  305. package/build-module/cover/edit/block-controls.js +104 -0
  306. package/build-module/cover/edit/block-controls.js.map +1 -0
  307. package/build-module/cover/edit/cover-placeholder.js +38 -0
  308. package/build-module/cover/edit/cover-placeholder.js.map +1 -0
  309. package/build-module/cover/edit/index.js +307 -0
  310. package/build-module/cover/edit/index.js.map +1 -0
  311. package/build-module/cover/edit/inspector-controls.js +215 -0
  312. package/build-module/cover/edit/inspector-controls.js.map +1 -0
  313. package/build-module/cover/edit/resizable-cover.js +55 -0
  314. package/build-module/cover/edit/resizable-cover.js.map +1 -0
  315. package/build-module/cover/edit/use-cover-is-dark.js +70 -0
  316. package/build-module/cover/edit/use-cover-is-dark.js.map +1 -0
  317. package/build-module/cover/edit.native.js +35 -17
  318. package/build-module/cover/edit.native.js.map +1 -1
  319. package/build-module/cover/focal-point-settings-button.native.js.map +1 -1
  320. package/build-module/cover/shared.js +7 -0
  321. package/build-module/cover/shared.js.map +1 -1
  322. package/build-module/cover/transforms.js +74 -6
  323. package/build-module/cover/transforms.js.map +1 -1
  324. package/build-module/cover/use-cover-is-dark.native.js +51 -0
  325. package/build-module/cover/use-cover-is-dark.native.js.map +1 -0
  326. package/build-module/embed/edit.js +13 -19
  327. package/build-module/embed/edit.js.map +1 -1
  328. package/build-module/embed/edit.native.js +2 -8
  329. package/build-module/embed/edit.native.js.map +1 -1
  330. package/build-module/embed/embed-preview.js +2 -2
  331. package/build-module/embed/embed-preview.js.map +1 -1
  332. package/build-module/embed/util.js +25 -3
  333. package/build-module/embed/util.js.map +1 -1
  334. package/build-module/file/edit.native.js +0 -1
  335. package/build-module/file/edit.native.js.map +1 -1
  336. package/build-module/file/inspector.js +2 -4
  337. package/build-module/file/inspector.js.map +1 -1
  338. package/build-module/gallery/edit.js +3 -2
  339. package/build-module/gallery/edit.js.map +1 -1
  340. package/build-module/gallery/gallery.js +2 -2
  341. package/build-module/gallery/gallery.js.map +1 -1
  342. package/build-module/gallery/shared.js +2 -2
  343. package/build-module/gallery/shared.js.map +1 -1
  344. package/build-module/gallery/use-get-media.js +2 -1
  345. package/build-module/gallery/use-get-media.js.map +1 -1
  346. package/build-module/gallery/use-short-code-transform.js +19 -18
  347. package/build-module/gallery/use-short-code-transform.js.map +1 -1
  348. package/build-module/gallery/v1/edit.js +1 -1
  349. package/build-module/gallery/v1/edit.js.map +1 -1
  350. package/build-module/gallery/v1/gallery.js +2 -2
  351. package/build-module/gallery/v1/gallery.js.map +1 -1
  352. package/build-module/group/index.js +1 -0
  353. package/build-module/group/index.js.map +1 -1
  354. package/build-module/heading/edit.js +6 -2
  355. package/build-module/heading/edit.js.map +1 -1
  356. package/build-module/heading/index.js +1 -0
  357. package/build-module/heading/index.js.map +1 -1
  358. package/build-module/heading/transforms.js +9 -4
  359. package/build-module/heading/transforms.js.map +1 -1
  360. package/build-module/html/edit.js +2 -2
  361. package/build-module/html/edit.js.map +1 -1
  362. package/build-module/image/edit.js +10 -9
  363. package/build-module/image/edit.js.map +1 -1
  364. package/build-module/image/edit.native.js +1 -2
  365. package/build-module/image/edit.native.js.map +1 -1
  366. package/build-module/image/image.js +3 -3
  367. package/build-module/image/image.js.map +1 -1
  368. package/build-module/index.js +43 -11
  369. package/build-module/index.js.map +1 -1
  370. package/build-module/index.native.js +14 -3
  371. package/build-module/index.native.js.map +1 -1
  372. package/build-module/is-block-metadata-experimental.js +16 -0
  373. package/build-module/is-block-metadata-experimental.js.map +1 -0
  374. package/build-module/latest-comments/edit.js +1 -1
  375. package/build-module/latest-comments/edit.js.map +1 -1
  376. package/build-module/latest-posts/edit.js +29 -5
  377. package/build-module/latest-posts/edit.js.map +1 -1
  378. package/build-module/latest-posts/edit.native.js +51 -2
  379. package/build-module/latest-posts/edit.native.js.map +1 -1
  380. package/build-module/list/transforms.js +6 -0
  381. package/build-module/list/transforms.js.map +1 -1
  382. package/build-module/list/v2/edit.js +2 -1
  383. package/build-module/list/v2/edit.js.map +1 -1
  384. package/build-module/list/v2/migrate.js +1 -3
  385. package/build-module/list/v2/migrate.js.map +1 -1
  386. package/build-module/list/v2/transforms.js +46 -9
  387. package/build-module/list/v2/transforms.js.map +1 -1
  388. package/build-module/list-item/edit.js +8 -9
  389. package/build-module/list-item/edit.js.map +1 -1
  390. package/build-module/list-item/hooks/index.js +3 -0
  391. package/build-module/list-item/hooks/index.js.map +1 -1
  392. package/build-module/list-item/hooks/use-backspace.js +44 -0
  393. package/build-module/list-item/hooks/use-backspace.js.map +1 -0
  394. package/build-module/list-item/hooks/use-enter.js +6 -9
  395. package/build-module/list-item/hooks/use-enter.js.map +1 -1
  396. package/build-module/list-item/hooks/use-indent-list-item.js +33 -38
  397. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  398. package/build-module/list-item/hooks/use-space.js +40 -0
  399. package/build-module/list-item/hooks/use-space.js.map +1 -0
  400. package/build-module/list-item/hooks/use-split.js +19 -0
  401. package/build-module/list-item/hooks/use-split.js.map +1 -0
  402. package/build-module/list-item/index.js +1 -0
  403. package/build-module/list-item/index.js.map +1 -1
  404. package/build-module/list-item/utils.js +1 -1
  405. package/build-module/list-item/utils.js.map +1 -1
  406. package/build-module/loginout/edit.js +1 -1
  407. package/build-module/loginout/edit.js.map +1 -1
  408. package/build-module/media-text/edit.js +1 -2
  409. package/build-module/media-text/edit.js.map +1 -1
  410. package/build-module/media-text/edit.native.js +3 -2
  411. package/build-module/media-text/edit.native.js.map +1 -1
  412. package/build-module/media-text/media-container.native.js +2 -4
  413. package/build-module/media-text/media-container.native.js.map +1 -1
  414. package/build-module/media-text/transforms.js +137 -8
  415. package/build-module/media-text/transforms.js.map +1 -1
  416. package/build-module/navigation/edit/index.js +87 -82
  417. package/build-module/navigation/edit/index.js.map +1 -1
  418. package/build-module/navigation/edit/inner-blocks.js +2 -6
  419. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  420. package/build-module/navigation/edit/unsaved-inner-blocks.js +5 -4
  421. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  422. package/build-module/navigation/index.js +1 -1
  423. package/build-module/navigation/use-navigation-entities.js +1 -1
  424. package/build-module/navigation/use-navigation-entities.js.map +1 -1
  425. package/build-module/navigation/view-modal.js +56 -0
  426. package/build-module/navigation/view-modal.js.map +1 -0
  427. package/build-module/navigation/view.js +1 -30
  428. package/build-module/navigation/view.js.map +1 -1
  429. package/build-module/navigation-link/edit.js +1 -1
  430. package/build-module/navigation-link/edit.js.map +1 -1
  431. package/build-module/navigation-link/fallback-variations.js +1 -1
  432. package/build-module/navigation-link/fallback-variations.js.map +1 -1
  433. package/build-module/navigation-link/hooks.js +2 -2
  434. package/build-module/navigation-link/hooks.js.map +1 -1
  435. package/build-module/page-list/convert-to-links-modal.js +1 -1
  436. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  437. package/build-module/page-list/edit.js +1 -1
  438. package/build-module/page-list/edit.js.map +1 -1
  439. package/build-module/paragraph/edit.js +9 -0
  440. package/build-module/paragraph/edit.js.map +1 -1
  441. package/build-module/paragraph/edit.native.js +6 -2
  442. package/build-module/paragraph/edit.native.js.map +1 -1
  443. package/build-module/paragraph/use-enter.js +81 -0
  444. package/build-module/paragraph/use-enter.js.map +1 -0
  445. package/build-module/post-author/edit.js +2 -2
  446. package/build-module/post-author/edit.js.map +1 -1
  447. package/build-module/post-author-name/index.js +1 -0
  448. package/build-module/post-author-name/index.js.map +1 -1
  449. package/build-module/post-comment/index.js +2 -1
  450. package/build-module/post-comment/index.js.map +1 -1
  451. package/build-module/post-comments/edit.js +13 -35
  452. package/build-module/post-comments/edit.js.map +1 -1
  453. package/build-module/post-comments/index.js +1 -1
  454. package/build-module/post-comments-count/index.js +1 -0
  455. package/build-module/post-comments-count/index.js.map +1 -1
  456. package/build-module/post-comments-form/edit.js +38 -26
  457. package/build-module/post-comments-form/edit.js.map +1 -1
  458. package/build-module/post-comments-form/form.js +39 -0
  459. package/build-module/post-comments-form/form.js.map +1 -0
  460. package/build-module/post-comments-link/index.js +1 -0
  461. package/build-module/post-comments-link/index.js.map +1 -1
  462. package/build-module/post-excerpt/edit.js +1 -1
  463. package/build-module/post-excerpt/edit.js.map +1 -1
  464. package/build-module/post-featured-image/edit.js +1 -1
  465. package/build-module/post-featured-image/edit.js.map +1 -1
  466. package/build-module/post-template/edit.js +7 -2
  467. package/build-module/post-template/edit.js.map +1 -1
  468. package/build-module/post-terms/edit.js +35 -6
  469. package/build-module/post-terms/edit.js.map +1 -1
  470. package/build-module/post-terms/hooks.js +25 -0
  471. package/build-module/post-terms/hooks.js.map +1 -0
  472. package/build-module/post-terms/index.js +18 -8
  473. package/build-module/post-terms/index.js.map +1 -1
  474. package/build-module/post-title/index.js +1 -1
  475. package/build-module/post-title/index.js.map +1 -1
  476. package/build-module/pullquote/edit.js +2 -2
  477. package/build-module/pullquote/edit.js.map +1 -1
  478. package/build-module/pullquote/edit.native.js +2 -2
  479. package/build-module/pullquote/edit.native.js.map +1 -1
  480. package/build-module/query/edit/inspector-controls/index.js +24 -17
  481. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  482. package/build-module/query/edit/inspector-controls/parent-control.js +135 -0
  483. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -0
  484. package/build-module/query/edit/inspector-controls/sticky-control.js +31 -0
  485. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -0
  486. package/build-module/query/index.js +2 -1
  487. package/build-module/query/index.js.map +1 -1
  488. package/build-module/query/utils.js +21 -0
  489. package/build-module/query/utils.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 +2 -1
  497. package/build-module/quote/index.js.map +1 -1
  498. package/build-module/quote/v2/edit.js +12 -5
  499. package/build-module/quote/v2/edit.js.map +1 -1
  500. package/build-module/rss/edit.js +1 -1
  501. package/build-module/rss/edit.js.map +1 -1
  502. package/build-module/search/edit.js +12 -9
  503. package/build-module/search/edit.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/site-logo/edit.js +1 -1
  507. package/build-module/site-logo/edit.js.map +1 -1
  508. package/build-module/spacer/constants.js +2 -0
  509. package/build-module/spacer/constants.js.map +1 -0
  510. package/build-module/spacer/controls.js +2 -2
  511. package/build-module/spacer/controls.js.map +1 -1
  512. package/build-module/spacer/controls.native.js +1 -1
  513. package/build-module/spacer/controls.native.js.map +1 -1
  514. package/build-module/spacer/edit.js +1 -1
  515. package/build-module/spacer/edit.js.map +1 -1
  516. package/build-module/table/edit.js +26 -7
  517. package/build-module/table/edit.js.map +1 -1
  518. package/build-module/table-of-contents/edit.js +136 -68
  519. package/build-module/table-of-contents/edit.js.map +1 -1
  520. package/build-module/table-of-contents/index.js +12 -3
  521. package/build-module/table-of-contents/index.js.map +1 -1
  522. package/build-module/table-of-contents/list.js +18 -10
  523. package/build-module/table-of-contents/list.js.map +1 -1
  524. package/build-module/table-of-contents/save.js +28 -0
  525. package/build-module/table-of-contents/save.js.map +1 -0
  526. package/build-module/table-of-contents/utils.js +11 -73
  527. package/build-module/table-of-contents/utils.js.map +1 -1
  528. package/build-module/tag-cloud/edit.js +1 -1
  529. package/build-module/tag-cloud/edit.js.map +1 -1
  530. package/build-module/template-part/edit/index.js +8 -4
  531. package/build-module/template-part/edit/index.js.map +1 -1
  532. package/build-module/template-part/edit/inner-blocks.js +4 -9
  533. package/build-module/template-part/edit/inner-blocks.js.map +1 -1
  534. package/build-module/video/edit.js +6 -10
  535. package/build-module/video/edit.js.map +1 -1
  536. package/build-module/video/edit.native.js +1 -1
  537. package/build-module/video/edit.native.js.map +1 -1
  538. package/build-style/{comments-query-loop → comments}/editor-rtl.css +0 -0
  539. package/build-style/{comments-query-loop → comments}/editor.css +0 -0
  540. package/build-style/common-rtl.css +32 -0
  541. package/build-style/common.css +32 -0
  542. package/build-style/cover/style-rtl.css +0 -4
  543. package/build-style/cover/style.css +0 -4
  544. package/build-style/editor-rtl.css +16 -10
  545. package/build-style/editor.css +16 -10
  546. package/build-style/image/editor-rtl.css +1 -1
  547. package/build-style/image/editor.css +1 -1
  548. package/build-style/navigation/style-rtl.css +3 -0
  549. package/build-style/navigation/style.css +3 -0
  550. package/build-style/separator/editor-rtl.css +1 -0
  551. package/build-style/separator/editor.css +1 -0
  552. package/build-style/style-rtl.css +73 -4
  553. package/build-style/style.css +73 -4
  554. package/build-style/table/editor-rtl.css +8 -0
  555. package/build-style/table/editor.css +8 -0
  556. package/build-style/table/style-rtl.css +38 -0
  557. package/build-style/table/style.css +38 -0
  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/archives/edit.js +1 -1
  566. package/src/audio/edit.js +7 -10
  567. package/src/audio/edit.native.js +1 -1
  568. package/src/avatar/block.json +0 -1
  569. package/src/avatar/index.php +2 -2
  570. package/src/block/edit.js +39 -42
  571. package/src/block/test/edit.native.js +1 -1
  572. package/src/button/block.json +1 -0
  573. package/src/button/edit.native.js +6 -3
  574. package/src/categories/block.json +5 -1
  575. package/src/categories/edit.js +9 -3
  576. package/src/categories/index.php +1 -0
  577. package/src/column/block.json +10 -0
  578. package/src/comment-author-avatar/block.json +1 -0
  579. package/src/comment-template/edit.js +1 -5
  580. package/src/{comments-query-loop → comments}/block.json +1 -1
  581. package/src/{comments-query-loop → comments}/edit/comments-inspector-controls.js +0 -0
  582. package/src/{comments-query-loop → comments}/edit.js +1 -1
  583. package/src/{comments-query-loop → comments}/editor.scss +0 -0
  584. package/src/{comments-query-loop → comments}/index.js +0 -0
  585. package/src/{comments-query-loop → comments}/save.js +1 -3
  586. package/src/comments-title/index.js +1 -1
  587. package/src/common.scss +24 -1
  588. package/src/cover/controls.native.js +1 -2
  589. package/src/cover/edit/block-controls.js +119 -0
  590. package/src/cover/edit/cover-placeholder.js +39 -0
  591. package/src/cover/edit/index.js +381 -0
  592. package/src/cover/edit/inspector-controls.js +286 -0
  593. package/src/cover/edit/resizable-cover.js +55 -0
  594. package/src/cover/edit/use-cover-is-dark.js +71 -0
  595. package/src/cover/edit.native.js +40 -14
  596. package/src/cover/editor.scss +1 -1
  597. package/src/cover/focal-point-settings-button.native.js +1 -1
  598. package/src/cover/shared.js +4 -0
  599. package/src/cover/style.native.scss +4 -0
  600. package/src/cover/style.scss +0 -4
  601. package/src/cover/test/__snapshots__/edit.native.js.snap +6 -6
  602. package/src/cover/test/block-controls.js +62 -0
  603. package/src/cover/test/transforms.js +301 -0
  604. package/src/cover/transforms.js +112 -7
  605. package/src/cover/use-cover-is-dark.native.js +51 -0
  606. package/src/editor.scss +1 -1
  607. package/src/embed/edit.js +19 -24
  608. package/src/embed/edit.native.js +9 -14
  609. package/src/embed/embed-preview.js +4 -2
  610. package/src/embed/util.js +34 -2
  611. package/src/file/edit.native.js +0 -1
  612. package/src/file/inspector.js +1 -3
  613. package/src/gallery/edit.js +3 -2
  614. package/src/gallery/gallery.js +2 -2
  615. package/src/gallery/shared.js +3 -2
  616. package/src/gallery/use-get-media.js +2 -1
  617. package/src/gallery/use-short-code-transform.js +19 -16
  618. package/src/gallery/v1/edit.js +1 -1
  619. package/src/gallery/v1/gallery.js +2 -2
  620. package/src/group/block.json +1 -0
  621. package/src/heading/block.json +1 -0
  622. package/src/heading/edit.js +5 -2
  623. package/src/heading/transforms.js +4 -3
  624. package/src/html/edit.js +2 -2
  625. package/src/image/edit.js +11 -5
  626. package/src/image/edit.native.js +1 -2
  627. package/src/image/editor.scss +1 -1
  628. package/src/image/image.js +9 -3
  629. package/src/image/test/edit.native.js +7 -7
  630. package/src/index.js +52 -30
  631. package/src/index.native.js +12 -2
  632. package/src/is-block-metadata-experimental.js +19 -0
  633. package/src/latest-comments/edit.js +1 -1
  634. package/src/latest-posts/edit.js +27 -2
  635. package/src/latest-posts/edit.native.js +56 -1
  636. package/src/list/transforms.js +7 -0
  637. package/src/list/v2/edit.js +1 -0
  638. package/src/list/v2/migrate.js +1 -1
  639. package/src/list/v2/transforms.js +35 -0
  640. package/src/list-item/block.json +2 -1
  641. package/src/list-item/edit.js +17 -10
  642. package/src/list-item/hooks/index.js +3 -0
  643. package/src/list-item/hooks/use-backspace.js +52 -0
  644. package/src/list-item/hooks/use-enter.js +9 -16
  645. package/src/list-item/hooks/use-indent-list-item.js +50 -63
  646. package/src/list-item/hooks/use-space.js +48 -0
  647. package/src/list-item/hooks/use-split.js +24 -0
  648. package/src/list-item/utils.js +1 -1
  649. package/src/loginout/edit.js +1 -1
  650. package/src/media-text/edit.js +1 -2
  651. package/src/media-text/edit.native.js +4 -2
  652. package/src/media-text/media-container.native.js +2 -4
  653. package/src/media-text/transforms.js +154 -0
  654. package/src/navigation/block.json +1 -1
  655. package/src/navigation/edit/index.js +175 -169
  656. package/src/navigation/edit/inner-blocks.js +1 -8
  657. package/src/navigation/edit/unsaved-inner-blocks.js +5 -4
  658. package/src/navigation/index.php +5 -0
  659. package/src/navigation/style.scss +3 -0
  660. package/src/navigation/use-navigation-entities.js +1 -1
  661. package/src/navigation/view-modal.js +68 -0
  662. package/src/navigation/view.js +0 -35
  663. package/src/navigation-link/edit.js +1 -1
  664. package/src/navigation-link/fallback-variations.js +1 -1
  665. package/src/navigation-link/hooks.js +2 -2
  666. package/src/navigation-link/test/__snapshots__/hooks.js.snap +4 -4
  667. package/src/page-list/convert-to-links-modal.js +1 -1
  668. package/src/page-list/edit.js +1 -4
  669. package/src/paragraph/edit.js +6 -0
  670. package/src/paragraph/edit.native.js +13 -1
  671. package/src/paragraph/use-enter.js +103 -0
  672. package/src/post-author/edit.js +25 -23
  673. package/src/post-author-name/block.json +1 -0
  674. package/src/post-comment/block.json +2 -1
  675. package/src/post-comments/block.json +1 -1
  676. package/src/post-comments/edit.js +13 -43
  677. package/src/post-comments/index.php +2 -0
  678. package/src/post-comments-count/block.json +1 -0
  679. package/src/post-comments-form/edit.js +50 -58
  680. package/src/post-comments-form/form.js +40 -0
  681. package/src/post-comments-link/block.json +1 -0
  682. package/src/post-excerpt/edit.js +1 -1
  683. package/src/post-featured-image/edit.js +1 -1
  684. package/src/post-template/edit.js +5 -0
  685. package/src/post-terms/block.json +8 -0
  686. package/src/post-terms/edit.js +47 -1
  687. package/src/post-terms/hooks.js +27 -0
  688. package/src/post-terms/index.js +14 -7
  689. package/src/post-terms/index.php +50 -2
  690. package/src/post-title/index.js +1 -1
  691. package/src/pullquote/edit.js +2 -2
  692. package/src/pullquote/edit.native.js +2 -2
  693. package/src/query/block.json +2 -1
  694. package/src/query/edit/inspector-controls/index.js +25 -11
  695. package/src/query/edit/inspector-controls/parent-control.js +133 -0
  696. package/src/query/edit/inspector-controls/sticky-control.js +25 -0
  697. package/src/query/utils.js +22 -0
  698. package/src/query-title/index.js +1 -1
  699. package/src/query-title/variations.js +2 -2
  700. package/src/quote/block.json +1 -0
  701. package/src/quote/edit.js +5 -2
  702. package/src/quote/index.js +1 -1
  703. package/src/quote/v2/edit.js +7 -2
  704. package/src/rss/edit.js +1 -1
  705. package/src/search/edit.js +14 -7
  706. package/src/search/index.php +85 -34
  707. package/src/separator/block.json +3 -0
  708. package/src/separator/editor.scss +1 -0
  709. package/src/site-logo/edit.js +1 -1
  710. package/src/spacer/constants.js +1 -0
  711. package/src/spacer/controls.js +2 -2
  712. package/src/spacer/controls.native.js +1 -1
  713. package/src/spacer/edit.js +1 -2
  714. package/src/table/edit.js +30 -6
  715. package/src/table/editor.scss +13 -0
  716. package/src/table/style.scss +52 -0
  717. package/src/table-of-contents/block.json +9 -2
  718. package/src/table-of-contents/edit.js +155 -75
  719. package/src/table-of-contents/index.js +2 -0
  720. package/src/table-of-contents/list.tsx +46 -0
  721. package/src/table-of-contents/save.js +25 -0
  722. package/src/table-of-contents/utils.ts +71 -0
  723. package/src/tag-cloud/block.json +1 -1
  724. package/src/tag-cloud/edit.js +1 -1
  725. package/src/template-part/edit/index.js +25 -15
  726. package/src/template-part/edit/inner-blocks.js +2 -10
  727. package/src/video/edit.js +8 -7
  728. package/src/video/edit.native.js +1 -1
  729. package/src/video/editor.scss +3 -6
  730. package/test/babel-plugin.js +67 -0
  731. package/tsconfig.json +11 -0
  732. package/tsconfig.tsbuildinfo +1 -0
  733. package/build/comments-query-loop/edit/comments-inspector-controls.js.map +0 -1
  734. package/build/comments-query-loop/edit.js.map +0 -1
  735. package/build/comments-query-loop/index.js.map +0 -1
  736. package/build/comments-query-loop/save.js.map +0 -1
  737. package/build/cover/edit.js +0 -668
  738. package/build/cover/edit.js.map +0 -1
  739. package/build/post-terms/variations.js +0 -37
  740. package/build/post-terms/variations.js.map +0 -1
  741. package/build-module/comments-query-loop/edit.js.map +0 -1
  742. package/build-module/comments-query-loop/index.js.map +0 -1
  743. package/build-module/comments-query-loop/save.js.map +0 -1
  744. package/build-module/cover/edit.js +0 -645
  745. package/build-module/cover/edit.js.map +0 -1
  746. package/build-module/post-terms/variations.js +0 -27
  747. package/build-module/post-terms/variations.js.map +0 -1
  748. package/src/cover/edit.js +0 -827
  749. package/src/post-terms/variations.js +0 -28
  750. package/src/table-of-contents/index.php +0 -346
  751. package/src/table-of-contents/list.js +0 -28
  752. package/src/table-of-contents/utils.js +0 -126
package/src/image/edit.js CHANGED
@@ -19,11 +19,9 @@ import {
19
19
  store as blockEditorStore,
20
20
  } from '@wordpress/block-editor';
21
21
  import { useEffect, useRef, useState } from '@wordpress/element';
22
- import { __ } from '@wordpress/i18n';
22
+ import { __, sprintf } from '@wordpress/i18n';
23
23
  import { image as icon } from '@wordpress/icons';
24
24
 
25
- /* global wp */
26
-
27
25
  /**
28
26
  * Internal dependencies
29
27
  */
@@ -97,7 +95,7 @@ function hasDefaultSize( image, defaultSize ) {
97
95
  * @return {boolean} Whether the image has been destroyed.
98
96
  */
99
97
  export function isMediaDestroyed( id ) {
100
- const attachment = wp?.media?.attachment( id ) || {};
98
+ const attachment = window?.wp?.media?.attachment( id ) || {};
101
99
  return attachment.destroyed;
102
100
  }
103
101
 
@@ -158,6 +156,14 @@ export function ImageEdit( {
158
156
  has been deleted.
159
157
  */
160
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
+ );
161
167
  // If the image block was not replaced with an embed,
162
168
  // clear the attributes and trigger the placeholder.
163
169
  if ( ! isReplaced ) {
@@ -232,7 +238,7 @@ export function ImageEdit( {
232
238
  // The constants used in Gutenberg do not match WP options so a little more complicated than ideal.
233
239
  // TODO: fix this in a follow up PR, requires updating media-text and ui component.
234
240
  switch (
235
- wp?.media?.view?.settings?.defaultProps?.link ||
241
+ window?.wp?.media?.view?.settings?.defaultProps?.link ||
236
242
  LINK_DESTINATION_NONE
237
243
  ) {
238
244
  case 'file':
@@ -670,7 +670,7 @@ export class ImageEdit extends Component {
670
670
 
671
671
  const getInspectorControls = () => (
672
672
  <InspectorControls>
673
- <PanelBody title={ __( 'Image settings' ) } />
673
+ <PanelBody title={ __( 'Settings' ) } />
674
674
  <PanelBody style={ styles.panelBody }>
675
675
  <BlockStyles clientId={ clientId } url={ url } />
676
676
  </PanelBody>
@@ -757,7 +757,6 @@ export class ImageEdit extends Component {
757
757
  <TouchableWithoutFeedback
758
758
  accessible={ ! isSelected }
759
759
  onPress={ this.onImagePressed }
760
- onLongPress={ openMediaOptions }
761
760
  disabled={ ! isSelected }
762
761
  >
763
762
  <View style={ styles.content }>
@@ -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';
@@ -370,7 +374,7 @@ export default function Image( {
370
374
  </BlockControls>
371
375
  ) }
372
376
  <InspectorControls>
373
- <PanelBody title={ __( 'Image settings' ) }>
377
+ <PanelBody title={ __( 'Settings' ) }>
374
378
  { ! multiImageSelection && (
375
379
  <TextareaControl
376
380
  label={ __( 'Alt text (alternative text)' ) }
@@ -598,7 +602,9 @@ export default function Image( {
598
602
  }
599
603
  inlineToolbar
600
604
  __unstableOnSplitAtEnd={ () =>
601
- insertBlocksAfter( createBlock( 'core/paragraph' ) )
605
+ insertBlocksAfter(
606
+ createBlock( getDefaultBlockName() )
607
+ )
602
608
  }
603
609
  />
604
610
  ) }
@@ -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' );
package/src/index.js CHANGED
@@ -12,6 +12,15 @@ import {
12
12
  /**
13
13
  * Internal dependencies
14
14
  */
15
+ // When IS_GUTENBERG_PLUGIN is set to false, imports of experimental blocks
16
+ // are transformed by packages/block-library/src/index.js as follows:
17
+ // import * as experimentalBlock from './experimental-block'
18
+ // becomes
19
+ // const experimentalBlock = null;
20
+ // This enables webpack to eliminate the experimental blocks code from the
21
+ // production build to make the final bundle smaller.
22
+ //
23
+ // See https://github.com/WordPress/gutenberg/pull/40655 for more context.
15
24
  import * as archives from './archives';
16
25
  import * as avatar from './avatar';
17
26
  import * as audio from './audio';
@@ -23,6 +32,7 @@ import * as classic from './freeform';
23
32
  import * as code from './code';
24
33
  import * as column from './column';
25
34
  import * as columns from './columns';
35
+ import * as comments from './comments';
26
36
  import * as commentAuthorAvatar from './comment-author-avatar';
27
37
  import * as commentAuthorName from './comment-author-name';
28
38
  import * as commentContent from './comment-content';
@@ -31,7 +41,6 @@ import * as commentEditLink from './comment-edit-link';
31
41
  import * as commentReplyLink from './comment-reply-link';
32
42
  import * as commentTemplate from './comment-template';
33
43
  import * as commentsPaginationPrevious from './comments-pagination-previous';
34
- import * as commentsQueryLoop from './comments-query-loop';
35
44
  import * as commentsPagination from './comments-pagination';
36
45
  import * as commentsPaginationNext from './comments-pagination-next';
37
46
  import * as commentsPaginationNumbers from './comments-pagination-numbers';
@@ -99,6 +108,7 @@ import * as socialLink from './social-link';
99
108
  import * as socialLinks from './social-links';
100
109
  import * as spacer from './spacer';
101
110
  import * as table from './table';
111
+ import * as tableOfContents from './table-of-contents';
102
112
  import * as tagCloud from './tag-cloud';
103
113
  import * as templatePart from './template-part';
104
114
  import * as termDescription from './term-description';
@@ -106,6 +116,8 @@ import * as textColumns from './text-columns';
106
116
  import * as verse from './verse';
107
117
  import * as video from './video';
108
118
 
119
+ import isBlockMetadataExperimental from './is-block-metadata-experimental';
120
+
109
121
  /**
110
122
  * Function to register an individual block.
111
123
  *
@@ -121,16 +133,9 @@ const registerBlock = ( block ) => {
121
133
  };
122
134
 
123
135
  /**
124
- * Function to get all the core blocks in an array.
125
- *
126
- * @example
127
- * ```js
128
- * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';
129
- *
130
- * const coreBlocks = __experimentalGetCoreBlocks();
131
- * ```
136
+ * Function to get all the block-library blocks in an array
132
137
  */
133
- export const __experimentalGetCoreBlocks = () => [
138
+ const getAllBlocks = () => [
134
139
  // Common blocks are grouped at the top to prioritize their display
135
140
  // in various contexts — like the inserter and auto-complete components.
136
141
  paragraph,
@@ -138,6 +143,7 @@ export const __experimentalGetCoreBlocks = () => [
138
143
  heading,
139
144
  gallery,
140
145
  list,
146
+ listItem,
141
147
  quote,
142
148
 
143
149
  // Register all remaining core blocks.
@@ -151,6 +157,7 @@ export const __experimentalGetCoreBlocks = () => [
151
157
  code,
152
158
  column,
153
159
  columns,
160
+ commentAuthorAvatar,
154
161
  cover,
155
162
  embed,
156
163
  file,
@@ -175,7 +182,6 @@ export const __experimentalGetCoreBlocks = () => [
175
182
  socialLinks,
176
183
  spacer,
177
184
  table,
178
- // tableOfContents,
179
185
  tagCloud,
180
186
  textColumns,
181
187
  verse,
@@ -196,6 +202,10 @@ export const __experimentalGetCoreBlocks = () => [
196
202
  postFeaturedImage,
197
203
  postContent,
198
204
  postAuthor,
205
+ postAuthorName,
206
+ postComment,
207
+ postCommentsCount,
208
+ postCommentsLink,
199
209
  postDate,
200
210
  postTerms,
201
211
  postNavigationLink,
@@ -206,6 +216,7 @@ export const __experimentalGetCoreBlocks = () => [
206
216
  queryPaginationPrevious,
207
217
  queryNoResults,
208
218
  readMore,
219
+ comments,
209
220
  commentAuthorName,
210
221
  commentContent,
211
222
  commentDate,
@@ -213,14 +224,13 @@ export const __experimentalGetCoreBlocks = () => [
213
224
  commentReplyLink,
214
225
  commentTemplate,
215
226
  commentsTitle,
216
- commentsQueryLoop,
217
227
  commentsPagination,
218
228
  commentsPaginationNext,
219
229
  commentsPaginationNumbers,
220
230
  commentsPaginationPrevious,
221
-
222
231
  postComments,
223
232
  postCommentsForm,
233
+ tableOfContents,
224
234
  homeLink,
225
235
  logInOut,
226
236
  termDescription,
@@ -228,6 +238,21 @@ export const __experimentalGetCoreBlocks = () => [
228
238
  postAuthorBiography,
229
239
  ];
230
240
 
241
+ /**
242
+ * Function to get all the core blocks in an array.
243
+ *
244
+ * @example
245
+ * ```js
246
+ * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';
247
+ *
248
+ * const coreBlocks = __experimentalGetCoreBlocks();
249
+ * ```
250
+ */
251
+ export const __experimentalGetCoreBlocks = () =>
252
+ getAllBlocks().filter(
253
+ ( { metadata } ) => ! isBlockMetadataExperimental( metadata )
254
+ );
255
+
231
256
  /**
232
257
  * Function to register core blocks provided by the block editor.
233
258
  *
@@ -267,22 +292,19 @@ export const registerCoreBlocks = (
267
292
  export const __experimentalRegisterExperimentalCoreBlocks = process.env
268
293
  .IS_GUTENBERG_PLUGIN
269
294
  ? ( { enableFSEBlocks } = {} ) => {
270
- [
271
- // Experimental blocks.
272
- postAuthorName,
273
- ...( window.__experimentalEnableListBlockV2
274
- ? [ listItem ]
275
- : [] ),
276
-
277
- // Full Site Editing blocks.
278
- ...( enableFSEBlocks
279
- ? [
280
- commentAuthorAvatar,
281
- postComment,
282
- postCommentsCount,
283
- postCommentsLink,
284
- ]
285
- : [] ),
286
- ].forEach( registerBlock );
295
+ const enabledExperiments = [
296
+ window.__experimentalEnableListBlockV2 ? 'list-v2' : null,
297
+ enableFSEBlocks ? 'fse' : null,
298
+ ];
299
+ getAllBlocks()
300
+ .filter( ( { metadata } ) =>
301
+ isBlockMetadataExperimental( metadata )
302
+ )
303
+ .filter(
304
+ ( { metadata: { __experimental } } ) =>
305
+ __experimental === true ||
306
+ enabledExperiments.includes( __experimental )
307
+ )
308
+ .forEach( registerBlock );
287
309
  }
288
310
  : undefined;
@@ -179,6 +179,14 @@ const devOnly = ( block ) => ( !! __DEV__ ? block : null );
179
179
  const iOSOnly = ( block ) =>
180
180
  Platform.OS === 'ios' ? block : devOnly( block );
181
181
 
182
+ // To be removed once Quote V2 is released on the web editor.
183
+ function quoteCheck( quoteBlock, blocksFlags ) {
184
+ if ( blocksFlags?.__experimentalEnableQuoteBlockV2 ) {
185
+ quoteBlock.settings = quoteBlock?.settingsV2;
186
+ }
187
+ return quoteBlock;
188
+ }
189
+
182
190
  // Hide the Classic block and SocialLink block
183
191
  addFilter(
184
192
  'blocks.registerBlockType',
@@ -230,8 +238,10 @@ addFilter(
230
238
  *
231
239
  * registerCoreBlocks();
232
240
  * ```
241
+ * @param {Object} [blocksFlags] Experimental flags
242
+ *
233
243
  */
234
- export const registerCoreBlocks = () => {
244
+ export const registerCoreBlocks = ( blocksFlags ) => {
235
245
  // When adding new blocks to this list please also consider updating /src/block-support/supported-blocks.json in the Gutenberg-Mobile repo
236
246
  [
237
247
  paragraph,
@@ -244,7 +254,7 @@ export const registerCoreBlocks = () => {
244
254
  nextpage,
245
255
  separator,
246
256
  list,
247
- quote,
257
+ quoteCheck( quote, blocksFlags ),
248
258
  mediaText,
249
259
  preformatted,
250
260
  gallery,
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Checks if the block is experimental based on the metadata loaded
3
+ * from block.json.
4
+ *
5
+ * This function is in a separate file and uses the older JS syntax so
6
+ * that it can be imported in both:
7
+ * – block-library/src/index.js
8
+ * – block-library/src/babel-plugin.js
9
+ *
10
+ * @param {Object} metadata Parsed block.json metadata.
11
+ * @return {boolean} Is the block experimental?
12
+ */
13
+ module.exports = function isBlockMetadataExperimental( metadata ) {
14
+ return (
15
+ metadata &&
16
+ '__experimental' in metadata &&
17
+ metadata.__experimental !== false
18
+ );
19
+ };
@@ -35,7 +35,7 @@ export default function LatestComments( { attributes, setAttributes } ) {
35
35
  return (
36
36
  <div { ...useBlockProps() }>
37
37
  <InspectorControls>
38
- <PanelBody title={ __( 'Latest comments settings' ) }>
38
+ <PanelBody title={ __( 'Settings' ) }>
39
39
  <ToggleControl
40
40
  label={ __( 'Display avatar' ) }
41
41
  checked={ displayAvatar }
@@ -28,9 +28,11 @@ import {
28
28
  useBlockProps,
29
29
  store as blockEditorStore,
30
30
  } from '@wordpress/block-editor';
31
- import { useSelect } from '@wordpress/data';
31
+ import { useSelect, useDispatch } from '@wordpress/data';
32
32
  import { pin, list, grid } from '@wordpress/icons';
33
33
  import { store as coreStore } from '@wordpress/core-data';
34
+ import { store as noticeStore } from '@wordpress/notices';
35
+ import { useInstanceId } from '@wordpress/compose';
34
36
 
35
37
  /**
36
38
  * Internal dependencies
@@ -66,6 +68,7 @@ function getFeaturedImageDetails( post, size ) {
66
68
  }
67
69
 
68
70
  export default function LatestPostsEdit( { attributes, setAttributes } ) {
71
+ const instanceId = useInstanceId( LatestPostsEdit );
69
72
  const {
70
73
  postsToShow,
71
74
  order,
@@ -148,6 +151,20 @@ export default function LatestPostsEdit( { attributes, setAttributes } ) {
148
151
  ]
149
152
  );
150
153
 
154
+ // If a user clicks to a link prevent redirection and show a warning.
155
+ const { createWarningNotice, removeNotice } = useDispatch( noticeStore );
156
+ let noticeId;
157
+ const showRedirectionPreventedNotice = ( event ) => {
158
+ event.preventDefault();
159
+ // Remove previous warning if any, to show one at a time per block.
160
+ removeNotice( noticeId );
161
+ noticeId = `block-library/core/latest-posts/redirection-prevented/${ instanceId }`;
162
+ createWarningNotice( __( 'Links are disabled in the editor.' ), {
163
+ id: noticeId,
164
+ type: 'snackbar',
165
+ } );
166
+ };
167
+
151
168
  const imageSizeOptions = imageSizes
152
169
  .filter( ( { slug } ) => slug !== 'full' )
153
170
  .map( ( { name, slug } ) => ( {
@@ -466,7 +483,11 @@ export default function LatestPostsEdit( { attributes, setAttributes } ) {
466
483
  .join( ' ' ) }
467
484
  { /* translators: excerpt truncation character, default … */ }
468
485
  { __( ' … ' ) }
469
- <a href={ post.link } rel="noopener noreferrer">
486
+ <a
487
+ href={ post.link }
488
+ rel="noopener noreferrer"
489
+ onClick={ showRedirectionPreventedNotice }
490
+ >
470
491
  { __( 'Read more' ) }
471
492
  </a>
472
493
  </>
@@ -483,6 +504,9 @@ export default function LatestPostsEdit( { attributes, setAttributes } ) {
483
504
  className="wp-block-latest-posts__post-title"
484
505
  href={ post.link }
485
506
  rel="noreferrer noopener"
507
+ onClick={
508
+ showRedirectionPreventedNotice
509
+ }
486
510
  >
487
511
  { featuredImage }
488
512
  </a>
@@ -501,6 +525,7 @@ export default function LatestPostsEdit( { attributes, setAttributes } ) {
501
525
  }
502
526
  : undefined
503
527
  }
528
+ onClick={ showRedirectionPreventedNotice }
504
529
  >
505
530
  { ! titleTrimmed ? __( '(no title)' ) : null }
506
531
  </a>
@@ -12,7 +12,10 @@ import { compose, withPreferredColorScheme } from '@wordpress/compose';
12
12
  import { withDispatch, withSelect } from '@wordpress/data';
13
13
  import { __ } from '@wordpress/i18n';
14
14
  import { postList as icon } from '@wordpress/icons';
15
- import { InspectorControls } from '@wordpress/block-editor';
15
+ import {
16
+ InspectorControls,
17
+ BlockAlignmentControl,
18
+ } from '@wordpress/block-editor';
16
19
  import apiFetch from '@wordpress/api-fetch';
17
20
  import {
18
21
  Icon,
@@ -43,6 +46,15 @@ class LatestPostsEdit extends Component {
43
46
  );
44
47
  this.onSetExcerptLength = this.onSetExcerptLength.bind( this );
45
48
  this.onSetDisplayPostDate = this.onSetDisplayPostDate.bind( this );
49
+ this.onSetDisplayFeaturedImage = this.onSetDisplayFeaturedImage.bind(
50
+ this
51
+ );
52
+ this.onSetFeaturedImageAlign = this.onSetFeaturedImageAlign.bind(
53
+ this
54
+ );
55
+ this.onSetAddLinkToFeaturedImage = this.onSetAddLinkToFeaturedImage.bind(
56
+ this
57
+ );
46
58
  this.onSetOrder = this.onSetOrder.bind( this );
47
59
  this.onSetOrderBy = this.onSetOrderBy.bind( this );
48
60
  this.onSetPostsToShow = this.onSetPostsToShow.bind( this );
@@ -95,6 +107,21 @@ class LatestPostsEdit extends Component {
95
107
  setAttributes( { displayPostDate: value } );
96
108
  }
97
109
 
110
+ onSetDisplayFeaturedImage( value ) {
111
+ const { setAttributes } = this.props;
112
+ setAttributes( { displayFeaturedImage: value } );
113
+ }
114
+
115
+ onSetAddLinkToFeaturedImage( value ) {
116
+ const { setAttributes } = this.props;
117
+ setAttributes( { addLinkToFeaturedImage: value } );
118
+ }
119
+
120
+ onSetFeaturedImageAlign( value ) {
121
+ const { setAttributes } = this.props;
122
+ setAttributes( { featuredImageAlign: value } );
123
+ }
124
+
98
125
  onSetOrder( value ) {
99
126
  const { setAttributes } = this.props;
100
127
  setAttributes( { order: value } );
@@ -124,6 +151,9 @@ class LatestPostsEdit extends Component {
124
151
  displayPostContentRadio,
125
152
  excerptLength,
126
153
  displayPostDate,
154
+ displayFeaturedImage,
155
+ featuredImageAlign,
156
+ addLinkToFeaturedImage,
127
157
  order,
128
158
  orderBy,
129
159
  postsToShow,
@@ -166,6 +196,31 @@ class LatestPostsEdit extends Component {
166
196
  onChange={ this.onSetDisplayPostDate }
167
197
  />
168
198
  </PanelBody>
199
+
200
+ <PanelBody title={ __( 'Featured image settings' ) }>
201
+ <ToggleControl
202
+ label={ __( 'Display featured image' ) }
203
+ checked={ displayFeaturedImage }
204
+ onChange={ this.onSetDisplayFeaturedImage }
205
+ />
206
+ { displayFeaturedImage && (
207
+ <>
208
+ <BlockAlignmentControl
209
+ value={ featuredImageAlign }
210
+ onChange={ this.onSetFeaturedImageAlign }
211
+ controls={ [ 'left', 'center', 'right' ] }
212
+ isBottomSheetControl={ true }
213
+ />
214
+ <ToggleControl
215
+ label={ __( 'Add link to featured image' ) }
216
+ checked={ addLinkToFeaturedImage }
217
+ onChange={ this.onSetAddLinkToFeaturedImage }
218
+ separatorType={ 'topFullWidth' }
219
+ />
220
+ </>
221
+ ) }
222
+ </PanelBody>
223
+
169
224
  <PanelBody title={ __( 'Sorting and filtering' ) }>
170
225
  <QueryControls
171
226
  { ...{ order, orderBy } }
@@ -208,6 +208,13 @@ const transforms = {
208
208
  } );
209
209
  },
210
210
  },
211
+ {
212
+ type: 'block',
213
+ blocks: [ 'core/table-of-contents' ],
214
+ transform: () => {
215
+ return createBlock( 'core/table-of-contents' );
216
+ },
217
+ },
211
218
  ],
212
219
  };
213
220
 
@@ -134,6 +134,7 @@ function Edit( { attributes, setAttributes, clientId } ) {
134
134
  const innerBlocksProps = useInnerBlocksProps( blockProps, {
135
135
  allowedBlocks: [ 'core/list-item' ],
136
136
  template: TEMPLATE,
137
+ templateInsertUpdatesSelection: true,
137
138
  } );
138
139
  useMigrateOnLoad( attributes, clientId );
139
140
  const { ordered, reversed, start } = attributes;
@@ -8,7 +8,7 @@ import { omit } from 'lodash';
8
8
  */
9
9
  import { createBlock } from '@wordpress/blocks';
10
10
 
11
- function createListBlockFromDOMElement( listElement ) {
11
+ export function createListBlockFromDOMElement( listElement ) {
12
12
  const listAttributes = {
13
13
  ordered: 'OL' === listElement.tagName,
14
14
  start: listElement.getAttribute( 'start' )
@@ -9,6 +9,32 @@ import {
9
9
  toHTMLString,
10
10
  } from '@wordpress/rich-text';
11
11
 
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+ import { createListBlockFromDOMElement } from './migrate';
16
+
17
+ function getListContentSchema( { phrasingContentSchema } ) {
18
+ const listContentSchema = {
19
+ ...phrasingContentSchema,
20
+ ul: {},
21
+ ol: { attributes: [ 'type', 'start', 'reversed' ] },
22
+ };
23
+
24
+ // Recursion is needed.
25
+ // Possible: ul > li > ul.
26
+ // Impossible: ul > ul.
27
+ [ 'ul', 'ol' ].forEach( ( tag ) => {
28
+ listContentSchema[ tag ].children = {
29
+ li: {
30
+ children: listContentSchema,
31
+ },
32
+ };
33
+ } );
34
+
35
+ return listContentSchema;
36
+ }
37
+
12
38
  const transforms = {
13
39
  from: [
14
40
  {
@@ -82,6 +108,15 @@ const transforms = {
82
108
  );
83
109
  },
84
110
  } ) ),
111
+ {
112
+ type: 'raw',
113
+ selector: 'ol,ul',
114
+ schema: ( args ) => ( {
115
+ ol: getListContentSchema( args ).ol,
116
+ ul: getListContentSchema( args ).ul,
117
+ } ),
118
+ transform: createListBlockFromDOMElement,
119
+ },
85
120
  ],
86
121
  to: [
87
122
  ...[ 'core/paragraph', 'core/heading' ].map( ( block ) => ( {
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "$schema": "https://schemas.wp.org/trunk/block.json",
3
3
  "apiVersion": 2,
4
+ "__experimental": "list-v2",
4
5
  "name": "core/list-item",
5
6
  "title": "List item",
6
7
  "category": "text",
@@ -14,7 +15,7 @@
14
15
  "content": {
15
16
  "type": "string",
16
17
  "source": "html",
17
- "selector": "li",
18
+ "selector": "li",
18
19
  "default": "",
19
20
  "__experimentalRole": "content"
20
21
  }