@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
@@ -7,6 +7,7 @@ import { createBlock } from '@wordpress/blocks';
7
7
  * Internal dependencies
8
8
  */
9
9
  import { IMAGE_BACKGROUND_TYPE, VIDEO_BACKGROUND_TYPE } from './shared';
10
+ import cleanEmptyObject from '../utils/clean-empty-object';
10
11
 
11
12
  const transforms = {
12
13
  from: [
@@ -73,6 +74,19 @@ const transforms = {
73
74
  style,
74
75
  } = attributes;
75
76
 
77
+ // If the Group block being transformed has a Cover block as its
78
+ // only child return that Cover block.
79
+ if (
80
+ innerBlocks?.length === 1 &&
81
+ innerBlocks[ 0 ]?.name === 'core/cover'
82
+ ) {
83
+ return createBlock(
84
+ 'core/cover',
85
+ innerBlocks[ 0 ].attributes,
86
+ innerBlocks[ 0 ].innerBlocks
87
+ );
88
+ }
89
+
76
90
  // If no background or gradient color is provided, default to 50% opacity.
77
91
  // This matches the styling of a Cover block with a background image,
78
92
  // in the state where a background image has been removed.
@@ -99,14 +113,16 @@ const transforms = {
99
113
  ...attributes,
100
114
  backgroundColor: undefined,
101
115
  gradient: undefined,
102
- style: {
116
+ style: cleanEmptyObject( {
103
117
  ...attributes?.style,
104
- color: {
105
- ...attributes?.style?.color,
106
- background: undefined,
107
- gradient: undefined,
108
- },
109
- },
118
+ color: style?.color
119
+ ? {
120
+ ...style?.color,
121
+ background: undefined,
122
+ gradient: undefined,
123
+ }
124
+ : undefined,
125
+ } ),
110
126
  };
111
127
 
112
128
  // Preserve the block by nesting it within the Cover block,
@@ -192,6 +208,95 @@ const transforms = {
192
208
  anchor,
193
209
  } ),
194
210
  },
211
+ {
212
+ type: 'block',
213
+ blocks: [ 'core/group' ],
214
+ isMatch: ( { url } ) => {
215
+ // If the Cover block uses background media, skip this transform,
216
+ // and instead use the Group block's default transform.
217
+ if ( url ) {
218
+ return false;
219
+ }
220
+ return true;
221
+ },
222
+ transform: ( attributes, innerBlocks ) => {
223
+ // Convert Cover overlay colors to comparable Group background colors.
224
+ const transformedColorAttributes = {
225
+ backgroundColor: attributes?.overlayColor,
226
+ gradient: attributes?.gradient,
227
+ style: cleanEmptyObject( {
228
+ ...attributes?.style,
229
+ color:
230
+ attributes?.customOverlayColor ||
231
+ attributes?.customGradient ||
232
+ attributes?.style?.color
233
+ ? {
234
+ background:
235
+ attributes?.customOverlayColor,
236
+ gradient: attributes?.customGradient,
237
+ ...attributes?.style?.color,
238
+ }
239
+ : undefined,
240
+ } ),
241
+ };
242
+
243
+ // If the Cover block contains only a single Group block as a direct child,
244
+ // then attempt to merge the Cover's background colors with the child Group block,
245
+ // and remove the Cover block as the wrapper.
246
+ if (
247
+ innerBlocks?.length === 1 &&
248
+ innerBlocks[ 0 ]?.name === 'core/group'
249
+ ) {
250
+ const groupAttributes = cleanEmptyObject(
251
+ innerBlocks[ 0 ].attributes || {}
252
+ );
253
+
254
+ // If the Group block contains any kind of background color or gradient,
255
+ // skip merging Cover background colors, and preserve the Group block's colors.
256
+ if (
257
+ groupAttributes?.backgroundColor ||
258
+ groupAttributes?.gradient ||
259
+ groupAttributes?.style?.color?.background ||
260
+ groupAttributes?.style?.color?.gradient
261
+ ) {
262
+ return createBlock(
263
+ 'core/group',
264
+ groupAttributes,
265
+ innerBlocks[ 0 ]?.innerBlocks
266
+ );
267
+ }
268
+
269
+ return createBlock(
270
+ 'core/group',
271
+ {
272
+ ...transformedColorAttributes,
273
+ ...groupAttributes,
274
+ style: cleanEmptyObject( {
275
+ ...groupAttributes?.style,
276
+ color:
277
+ transformedColorAttributes?.style?.color ||
278
+ groupAttributes?.style?.color
279
+ ? {
280
+ ...transformedColorAttributes
281
+ ?.style?.color,
282
+ ...groupAttributes?.style
283
+ ?.color,
284
+ }
285
+ : undefined,
286
+ } ),
287
+ },
288
+ innerBlocks[ 0 ]?.innerBlocks
289
+ );
290
+ }
291
+
292
+ // In all other cases, transform the Cover block directly to a Group block.
293
+ return createBlock(
294
+ 'core/group',
295
+ { ...attributes, ...transformedColorAttributes },
296
+ innerBlocks
297
+ );
298
+ },
299
+ },
195
300
  ],
196
301
  };
197
302
 
@@ -0,0 +1,51 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+
5
+ import { colord } from 'colord';
6
+
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+ import { useEffect, useState } from '@wordpress/element';
11
+
12
+ /**
13
+ * useCoverIsDark is a hook that returns a boolean variable specifying if the cover
14
+ * background is dark or not.
15
+ *
16
+ * @param {?boolean} initialValue Initial value.
17
+ * @param {?string} url Url of the media background.
18
+ * @param {?number} dimRatio Transparency of the overlay color. If an image and
19
+ * color are set, dimRatio is used to decide what is used
20
+ * for background darkness checking purposes.
21
+ * @param {?string} overlayColor String containing the overlay color value if one exists.
22
+ *
23
+ * @return {boolean} True if the cover background is considered "dark" and false otherwise.
24
+ */
25
+ export default function useCoverIsDark(
26
+ initialValue = false,
27
+ url,
28
+ dimRatio = 50,
29
+ overlayColor
30
+ ) {
31
+ const [ isDark, setIsDark ] = useState( initialValue );
32
+ useEffect( () => {
33
+ // If opacity is greater than 50 the dominant color is the overlay color,
34
+ // so use that color for the dark mode computation.
35
+ if ( dimRatio > 50 || ! url ) {
36
+ if ( ! overlayColor ) {
37
+ // If no overlay color exists the overlay color is black (isDark )
38
+ setIsDark( true );
39
+ return;
40
+ }
41
+ setIsDark( colord( overlayColor ).isDark() );
42
+ }
43
+ }, [ overlayColor, dimRatio > 50 || ! url, setIsDark ] );
44
+ useEffect( () => {
45
+ if ( ! url && ! overlayColor ) {
46
+ // Reset isDark.
47
+ setIsDark( false );
48
+ }
49
+ }, [ ! url && ! overlayColor, setIsDark ] );
50
+ return isDark;
51
+ }
package/src/editor.scss CHANGED
@@ -6,8 +6,8 @@
6
6
  @import "./buttons/editor.scss";
7
7
  @import "./categories/editor.scss";
8
8
  @import "./columns/editor.scss";
9
+ @import "./comments/editor.scss";
9
10
  @import "./comment-author-avatar/editor.scss";
10
- @import "./comments-query-loop/editor.scss";
11
11
  @import "./comments-pagination/editor.scss";
12
12
  @import "./comments-pagination-numbers/editor.scss";
13
13
  @import "./comments-title/editor.scss";
package/src/embed/edit.js CHANGED
@@ -5,8 +5,8 @@ import {
5
5
  createUpgradedEmbedBlock,
6
6
  getClassNames,
7
7
  fallback,
8
- getAttributesFromPreview,
9
8
  getEmbedInfoByProvider,
9
+ getMergedAttributesWithPreview,
10
10
  } from './util';
11
11
  import EmbedControls from './embed-controls';
12
12
  import { embedContentIcon } from './icons';
@@ -99,21 +99,19 @@ const EmbedEdit = ( props ) => {
99
99
  );
100
100
 
101
101
  /**
102
- * @return {Object} Attributes derived from the preview, merged with the current attributes.
102
+ * Returns the attributes derived from the preview, merged with the current attributes.
103
+ *
104
+ * @param {boolean} ignorePreviousClassName Determines if the previous className attribute should be ignored when merging.
105
+ * @return {Object} Merged attributes.
103
106
  */
104
- const getMergedAttributes = () => {
105
- const { allowResponsive, className } = attributes;
106
- return {
107
- ...attributes,
108
- ...getAttributesFromPreview(
109
- preview,
110
- title,
111
- className,
112
- responsive,
113
- allowResponsive
114
- ),
115
- };
116
- };
107
+ const getMergedAttributes = ( ignorePreviousClassName = false ) =>
108
+ getMergedAttributesWithPreview(
109
+ attributes,
110
+ preview,
111
+ title,
112
+ responsive,
113
+ ignorePreviousClassName
114
+ );
117
115
 
118
116
  const toggleResponsive = () => {
119
117
  const { allowResponsive, className } = attributes;
@@ -145,15 +143,12 @@ const EmbedEdit = ( props ) => {
145
143
  // Handle incoming preview.
146
144
  useEffect( () => {
147
145
  if ( preview && ! isEditingURL ) {
148
- // Even though we set attributes that get derived from the preview,
149
- // we don't access them directly because for the initial render,
150
- // the `setAttributes` call will not have taken effect. If we're
151
- // rendering responsive content, setting the responsive classes
152
- // after the preview has been rendered can result in unwanted
153
- // clipping or scrollbars. The `getAttributesFromPreview` function
154
- // that `getMergedAttributes` uses is memoized so that we're not
155
- // calculating them on every render.
156
- setAttributes( getMergedAttributes() );
146
+ // When obtaining an incoming preview, we set the attributes derived from
147
+ // the preview data. In this case when getting the merged attributes,
148
+ // we ignore the previous classname because it might not match the expected
149
+ // classes by the new preview.
150
+ setAttributes( getMergedAttributes( true ) );
151
+
157
152
  if ( onReplace ) {
158
153
  const upgradedBlock = createUpgradedEmbedBlock(
159
154
  props,
@@ -5,8 +5,8 @@ import {
5
5
  createUpgradedEmbedBlock,
6
6
  getClassNames,
7
7
  fallback,
8
- getAttributesFromPreview,
9
8
  getEmbedInfoByProvider,
9
+ getMergedAttributesWithPreview,
10
10
  } from './util';
11
11
  import EmbedControls from './embed-controls';
12
12
  import { embedContentIcon } from './icons';
@@ -130,19 +130,14 @@ const EmbedEdit = ( props ) => {
130
130
  * @param {boolean} ignorePreviousClassName Determines if the previous className attribute should be ignored when merging.
131
131
  * @return {Object} Merged attributes.
132
132
  */
133
- const getMergedAttributes = ( ignorePreviousClassName = false ) => {
134
- const { allowResponsive, className } = attributes;
135
- return {
136
- ...attributes,
137
- ...getAttributesFromPreview(
138
- preview,
139
- title,
140
- ignorePreviousClassName ? undefined : className,
141
- responsive,
142
- allowResponsive
143
- ),
144
- };
145
- };
133
+ const getMergedAttributes = ( ignorePreviousClassName = false ) =>
134
+ getMergedAttributesWithPreview(
135
+ attributes,
136
+ preview,
137
+ title,
138
+ responsive,
139
+ ignorePreviousClassName
140
+ );
146
141
 
147
142
  const toggleResponsive = () => {
148
143
  const { allowResponsive, className } = attributes;
@@ -15,7 +15,7 @@ import { __, sprintf } from '@wordpress/i18n';
15
15
  import { Placeholder, SandBox } from '@wordpress/components';
16
16
  import { RichText, BlockIcon } from '@wordpress/block-editor';
17
17
  import { Component } from '@wordpress/element';
18
- import { createBlock } from '@wordpress/blocks';
18
+ import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
19
19
 
20
20
  /**
21
21
  * Internal dependencies
@@ -145,7 +145,9 @@ class EmbedPreview extends Component {
145
145
  onChange={ onCaptionChange }
146
146
  inlineToolbar
147
147
  __unstableOnSplitAtEnd={ () =>
148
- insertBlocksAfter( createBlock( 'core/paragraph' ) )
148
+ insertBlocksAfter(
149
+ createBlock( getDefaultBlockName() )
150
+ )
149
151
  }
150
152
  />
151
153
  ) }
package/src/embed/util.js CHANGED
@@ -66,9 +66,11 @@ export const isFromWordPress = ( html ) =>
66
66
  html && html.includes( 'class="wp-embedded-content"' );
67
67
 
68
68
  export const getPhotoHtml = ( photo ) => {
69
+ // If full image url not found use thumbnail.
70
+ const imageUrl = photo.url || photo.thumbnail_url;
71
+
69
72
  // 100% width for the preview so it fits nicely into the document, some "thumbnails" are
70
- // actually the full size photo. If thumbnails not found, use full image.
71
- const imageUrl = photo.thumbnail_url || photo.url;
73
+ // actually the full size photo.
72
74
  const photoPreview = (
73
75
  <p>
74
76
  <img src={ imageUrl } alt={ photo.title } width="100%" />
@@ -290,3 +292,33 @@ export const getAttributesFromPreview = memoize(
290
292
  return attributes;
291
293
  }
292
294
  );
295
+
296
+ /**
297
+ * Returns the attributes derived from the preview, merged with the current attributes.
298
+ *
299
+ * @param {Object} currentAttributes The current attributes of the block.
300
+ * @param {Object} preview The preview data.
301
+ * @param {string} title The block's title, e.g. Twitter.
302
+ * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.
303
+ * @param {boolean} ignorePreviousClassName Determines if the previous className attribute should be ignored when merging.
304
+ * @return {Object} Merged attributes.
305
+ */
306
+ export const getMergedAttributesWithPreview = (
307
+ currentAttributes,
308
+ preview,
309
+ title,
310
+ isResponsive,
311
+ ignorePreviousClassName = false
312
+ ) => {
313
+ const { allowResponsive, className } = currentAttributes;
314
+ return {
315
+ ...currentAttributes,
316
+ ...getAttributesFromPreview(
317
+ preview,
318
+ title,
319
+ ignorePreviousClassName ? undefined : className,
320
+ isResponsive,
321
+ allowResponsive
322
+ ),
323
+ };
324
+ };
@@ -452,7 +452,6 @@ export class FileEdit extends Component {
452
452
  <TouchableWithoutFeedback
453
453
  accessible={ ! isSelected }
454
454
  onPress={ this.onFilePressed }
455
- onLongPress={ openMediaOptions }
456
455
  disabled={ ! isSelected }
457
456
  >
458
457
  <View
@@ -68,7 +68,7 @@ export default function FileBlockInspector( {
68
68
  ) }
69
69
  </PanelBody>
70
70
  ) }
71
- <PanelBody title={ __( 'Text link settings' ) }>
71
+ <PanelBody title={ __( 'Settings' ) }>
72
72
  <SelectControl
73
73
  label={ __( 'Link to' ) }
74
74
  value={ textLinkHref }
@@ -80,8 +80,6 @@ export default function FileBlockInspector( {
80
80
  checked={ openInNewWindow }
81
81
  onChange={ changeOpenInNewWindow }
82
82
  />
83
- </PanelBody>
84
- <PanelBody title={ __( 'Download button settings' ) }>
85
83
  <ToggleControl
86
84
  label={ __( 'Show download button' ) }
87
85
  checked={ showDownloadButton }
@@ -204,10 +204,11 @@ function GalleryEdit( props ) {
204
204
  : undefined;
205
205
  }
206
206
  return {
207
- ...pickRelevantMediaFiles( imageAttributes, sizeSlug ),
207
+ ...pickRelevantMediaFiles( image, sizeSlug ),
208
208
  ...getHrefAndDestination( image, linkTo ),
209
209
  ...getUpdatedLinkTargetSettings( linkTarget, attributes ),
210
210
  className: newClassName,
211
+ caption: imageAttributes.caption,
211
212
  sizeSlug,
212
213
  };
213
214
  }
@@ -478,7 +479,7 @@ function GalleryEdit( props ) {
478
479
  return (
479
480
  <>
480
481
  <InspectorControls>
481
- <PanelBody title={ __( 'Gallery settings' ) }>
482
+ <PanelBody title={ __( 'Settings' ) }>
482
483
  { images.length > 1 && (
483
484
  <RangeControl
484
485
  label={ __( 'Columns' ) }
@@ -10,7 +10,7 @@ import { RichText, useInnerBlocksProps } from '@wordpress/block-editor';
10
10
  import { VisuallyHidden } from '@wordpress/components';
11
11
  import { useState, useEffect } from '@wordpress/element';
12
12
  import { __ } from '@wordpress/i18n';
13
- import { createBlock } from '@wordpress/blocks';
13
+ import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
14
14
  import { View } from '@wordpress/primitives';
15
15
 
16
16
  const allowedBlocks = [ 'core/image' ];
@@ -89,7 +89,7 @@ export const Gallery = ( props ) => {
89
89
  onChange={ ( value ) => setAttributes( { caption: value } ) }
90
90
  inlineToolbar
91
91
  __unstableOnSplitAtEnd={ () =>
92
- insertBlocksAfter( createBlock( 'core/paragraph' ) )
92
+ insertBlocksAfter( createBlock( getDefaultBlockName() ) )
93
93
  }
94
94
  />
95
95
  </figure>
@@ -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
  }
@@ -420,7 +420,7 @@ function GalleryEdit( props ) {
420
420
  return (
421
421
  <>
422
422
  <InspectorControls>
423
- <PanelBody title={ __( 'Gallery settings' ) }>
423
+ <PanelBody title={ __( 'Settings' ) }>
424
424
  { images.length > 1 && (
425
425
  <RangeControl
426
426
  label={ __( 'Columns' ) }
@@ -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/html/edit.js CHANGED
@@ -59,14 +59,14 @@ export default function HTMLEdit( { attributes, setAttributes, isSelected } ) {
59
59
  isPressed={ ! isPreview }
60
60
  onClick={ switchToHTML }
61
61
  >
62
- <span>HTML</span>
62
+ HTML
63
63
  </ToolbarButton>
64
64
  <ToolbarButton
65
65
  className="components-tab-button"
66
66
  isPressed={ isPreview }
67
67
  onClick={ switchToPreview }
68
68
  >
69
- <span>{ __( 'Preview' ) }</span>
69
+ { __( 'Preview' ) }
70
70
  </ToolbarButton>
71
71
  </ToolbarGroup>
72
72
  </BlockControls>