@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
@@ -0,0 +1,55 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import classnames from 'classnames';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { useState } from '@wordpress/element';
10
+ import { ResizableBox } from '@wordpress/components';
11
+
12
+ const RESIZABLE_BOX_ENABLE_OPTION = {
13
+ top: false,
14
+ right: false,
15
+ bottom: true,
16
+ left: false,
17
+ topRight: false,
18
+ bottomRight: false,
19
+ bottomLeft: false,
20
+ topLeft: false,
21
+ };
22
+
23
+ export default function ResizableCover( {
24
+ className,
25
+ onResizeStart,
26
+ onResize,
27
+ onResizeStop,
28
+ ...props
29
+ } ) {
30
+ const [ isResizing, setIsResizing ] = useState( false );
31
+
32
+ return (
33
+ <ResizableBox
34
+ className={ classnames( className, {
35
+ 'is-resizing': isResizing,
36
+ } ) }
37
+ enable={ RESIZABLE_BOX_ENABLE_OPTION }
38
+ onResizeStart={ ( _event, _direction, elt ) => {
39
+ onResizeStart( elt.clientHeight );
40
+ onResize( elt.clientHeight );
41
+ } }
42
+ onResize={ ( _event, _direction, elt ) => {
43
+ onResize( elt.clientHeight );
44
+ if ( ! isResizing ) {
45
+ setIsResizing( true );
46
+ }
47
+ } }
48
+ onResizeStop={ ( _event, _direction, elt ) => {
49
+ onResizeStop( elt.clientHeight );
50
+ setIsResizing( false );
51
+ } }
52
+ { ...props }
53
+ />
54
+ );
55
+ }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import FastAverageColor from 'fast-average-color';
5
+ import { colord } from 'colord';
6
+
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+ import { useEffect, useState } from '@wordpress/element';
11
+
12
+ function retrieveFastAverageColor() {
13
+ if ( ! retrieveFastAverageColor.fastAverageColor ) {
14
+ retrieveFastAverageColor.fastAverageColor = new FastAverageColor();
15
+ }
16
+ return retrieveFastAverageColor.fastAverageColor;
17
+ }
18
+
19
+ /**
20
+ * useCoverIsDark is a hook that returns a boolean variable specifying if the cover
21
+ * background is dark or not.
22
+ *
23
+ * @param {?string} url Url of the media background.
24
+ * @param {?number} dimRatio Transparency of the overlay color. If an image and
25
+ * color are set, dimRatio is used to decide what is used
26
+ * for background darkness checking purposes.
27
+ * @param {?string} overlayColor String containing the overlay color value if one exists.
28
+ * @param {?Object} elementRef If a media background is set, elementRef should contain a reference to a
29
+ * dom element that renders that media.
30
+ *
31
+ * @return {boolean} True if the cover background is considered "dark" and false otherwise.
32
+ */
33
+ export default function useCoverIsDark(
34
+ url,
35
+ dimRatio = 50,
36
+ overlayColor,
37
+ elementRef
38
+ ) {
39
+ const [ isDark, setIsDark ] = useState( false );
40
+ useEffect( () => {
41
+ // If opacity is lower than 50 the dominant color is the image or video color,
42
+ // so use that color for the dark mode computation.
43
+ if ( url && dimRatio <= 50 && elementRef.current ) {
44
+ retrieveFastAverageColor().getColorAsync(
45
+ elementRef.current,
46
+ ( color ) => {
47
+ setIsDark( color.isDark );
48
+ }
49
+ );
50
+ }
51
+ }, [ url, url && dimRatio <= 50 && elementRef.current, setIsDark ] );
52
+ useEffect( () => {
53
+ // If opacity is greater than 50 the dominant color is the overlay color,
54
+ // so use that color for the dark mode computation.
55
+ if ( dimRatio > 50 || ! url ) {
56
+ if ( ! overlayColor ) {
57
+ // If no overlay color exists the overlay color is black (isDark )
58
+ setIsDark( true );
59
+ return;
60
+ }
61
+ setIsDark( colord( overlayColor ).isDark() );
62
+ }
63
+ }, [ overlayColor, dimRatio > 50 || ! url, setIsDark ] );
64
+ useEffect( () => {
65
+ if ( ! url && ! overlayColor ) {
66
+ // Reset isDark.
67
+ setIsDark( false );
68
+ }
69
+ }, [ ! url && ! overlayColor, setIsDark ] );
70
+ return isDark;
71
+ }
@@ -9,6 +9,7 @@ import {
9
9
  Platform,
10
10
  } from 'react-native';
11
11
  import Video from 'react-native-video';
12
+ import classnames from 'classnames/dedupe';
12
13
 
13
14
  /**
14
15
  * WordPress dependencies
@@ -47,7 +48,7 @@ import {
47
48
  store as blockEditorStore,
48
49
  } from '@wordpress/block-editor';
49
50
  import { compose, withPreferredColorScheme } from '@wordpress/compose';
50
- import { withSelect, withDispatch } from '@wordpress/data';
51
+ import { useDispatch, withSelect, withDispatch } from '@wordpress/data';
51
52
  import {
52
53
  useEffect,
53
54
  useState,
@@ -71,6 +72,7 @@ import {
71
72
  COVER_DEFAULT_HEIGHT,
72
73
  } from './shared';
73
74
  import Controls from './controls';
75
+ import useCoverIsDark from './use-cover-is-dark';
74
76
 
75
77
  /**
76
78
  * Constants
@@ -113,6 +115,7 @@ const Cover = ( {
113
115
  customGradient,
114
116
  gradient,
115
117
  overlayColor,
118
+ isDark,
116
119
  } = attributes;
117
120
  const [ isScreenReaderEnabled, setIsScreenReaderEnabled ] = useState(
118
121
  false
@@ -180,18 +183,6 @@ const Cover = ( {
180
183
 
181
184
  const openMediaOptionsRef = useRef();
182
185
 
183
- // Used to set a default color for its InnerBlocks
184
- // since there's no system to inherit styles yet
185
- // the RichText component will check if there are
186
- // parent styles for the current block. If there are,
187
- // it will use that color instead.
188
- useEffect( () => {
189
- // While we don't support theme colors.
190
- if ( ! attributes.overlayColor || ( ! attributes.overlay && url ) ) {
191
- setAttributes( { childrenStyles: styles.defaultColor } );
192
- }
193
- }, [ setAttributes ] );
194
-
195
186
  // Initialize uploading flag to false, awaiting sync.
196
187
  const [ isUploadInProgress, setIsUploadInProgress ] = useState( false );
197
188
 
@@ -257,6 +248,42 @@ const Cover = ( {
257
248
  openGeneralSidebar();
258
249
  }
259
250
 
251
+ const { __unstableMarkNextChangeAsNotPersistent } = useDispatch(
252
+ blockEditorStore
253
+ );
254
+ const isCoverDark = useCoverIsDark(
255
+ isDark,
256
+ url,
257
+ dimRatio,
258
+ overlayColorValue?.color
259
+ );
260
+
261
+ useEffect( () => {
262
+ // This side-effect should not create an undo level.
263
+ __unstableMarkNextChangeAsNotPersistent();
264
+ // Used to set a default color for its InnerBlocks
265
+ // since there's no system to inherit styles yet
266
+ // the RichText component will check if there are
267
+ // parent styles for the current block. If there are,
268
+ // it will use that color instead.
269
+ setAttributes( {
270
+ isDark: isCoverDark,
271
+ childrenStyles: isCoverDark
272
+ ? styles.defaultColor
273
+ : styles.defaultColorLightMode,
274
+ } );
275
+
276
+ // Ensure that "is-light" is removed from "className" attribute if cover background is dark.
277
+ if ( isCoverDark && attributes.className?.includes( 'is-light' ) ) {
278
+ const className = classnames( attributes.className, {
279
+ 'is-light': false,
280
+ } );
281
+ setAttributes( {
282
+ className: className !== '' ? className : undefined,
283
+ } );
284
+ }
285
+ }, [ isCoverDark ] );
286
+
260
287
  const backgroundColor = getStylesFromColorScheme(
261
288
  styles.backgroundSolid,
262
289
  styles.backgroundSolidDark
@@ -375,7 +402,6 @@ const Cover = ( {
375
402
  <TouchableWithoutFeedback
376
403
  accessible={ ! isParentSelected }
377
404
  onPress={ onMediaPressed }
378
- onLongPress={ openMediaOptionsRef.current }
379
405
  disabled={ ! isParentSelected }
380
406
  >
381
407
  <View style={ [ styles.background, backgroundColor ] }>
@@ -10,7 +10,7 @@
10
10
  min-height: auto !important;
11
11
  padding: 0 !important;
12
12
 
13
- // Resizeable placeholder for placeholder.
13
+ // Resizable placeholder for placeholder.
14
14
  .block-library-cover__resize-container {
15
15
  display: none;
16
16
  }
@@ -41,7 +41,7 @@ function FocalPointSettingsButton( {
41
41
  >
42
42
  { /*
43
43
  * Wrapper View element used around Icon as workaround for SVG opacity
44
- * issue: https://git.io/JtuXD
44
+ * issue: https://github.com/react-native-svg/react-native-svg/issues/1345
45
45
  */ }
46
46
  <View style={ disabled && styles.dimmedActionButton }>
47
47
  <Icon icon={ chevronRight } />
@@ -106,3 +106,7 @@ export function getPositionClassName( contentPosition ) {
106
106
 
107
107
  return POSITION_CLASSNAMES[ contentPosition ];
108
108
  }
109
+
110
+ export function mediaPosition( { x, y } ) {
111
+ return `${ Math.round( x * 100 ) }% ${ Math.round( y * 100 ) }%`;
112
+ }
@@ -49,6 +49,10 @@
49
49
  color: $white;
50
50
  }
51
51
 
52
+ .defaultColorLightMode {
53
+ color: $black;
54
+ }
55
+
52
56
  .background {
53
57
  width: 100%;
54
58
  height: 100%;
@@ -96,10 +96,6 @@
96
96
  }
97
97
  }
98
98
 
99
- .block-library-cover__padding-visualizer {
100
- z-index: z-index(".block-library-cover__padding-visualizer");
101
- }
102
-
103
99
  // Apply max-width to floated items that have no intrinsic width
104
100
  &.alignleft,
105
101
  &.alignright {
@@ -1,8 +1,8 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`color settings clears the selected overlay color and mantains the inner blocks 1`] = `
4
- "<!-- wp:cover -->
5
- <div class=\\"wp-block-cover\\"><span aria-hidden=\\"true\\" class=\\"wp-block-cover__background has-background-dim-100 has-background-dim\\"></span><div class=\\"wp-block-cover__inner-container\\"><!-- wp:paragraph {\\"align\\":\\"center\\",\\"placeholder\\":\\"Write title…\\"} -->
4
+ "<!-- wp:cover {\\"isDark\\":false} -->
5
+ <div class=\\"wp-block-cover is-light\\"><span aria-hidden=\\"true\\" class=\\"wp-block-cover__background has-background-dim-100 has-background-dim\\"></span><div class=\\"wp-block-cover__inner-container\\"><!-- wp:paragraph {\\"align\\":\\"center\\",\\"placeholder\\":\\"Write title…\\"} -->
6
6
  <p class=\\"has-text-align-center\\"></p>
7
7
  <!-- /wp:paragraph --></div></div>
8
8
  <!-- /wp:cover -->"
@@ -17,16 +17,16 @@ exports[`color settings sets a color for the overlay background when the placeho
17
17
  `;
18
18
 
19
19
  exports[`color settings sets a gradient overlay background when a solid background was already selected 1`] = `
20
- "<!-- wp:cover {\\"gradient\\":\\"light-green-cyan-to-vivid-green-cyan\\"} -->
21
- <div class=\\"wp-block-cover\\"><span aria-hidden=\\"true\\" class=\\"wp-block-cover__background has-background-dim-100 has-background-dim has-background-gradient has-light-green-cyan-to-vivid-green-cyan-gradient-background\\"></span><div class=\\"wp-block-cover__inner-container\\"><!-- wp:paragraph {\\"align\\":\\"center\\",\\"placeholder\\":\\"Write title…\\"} -->
20
+ "<!-- wp:cover {\\"gradient\\":\\"light-green-cyan-to-vivid-green-cyan\\",\\"isDark\\":false} -->
21
+ <div class=\\"wp-block-cover is-light\\"><span aria-hidden=\\"true\\" class=\\"wp-block-cover__background has-background-dim-100 has-background-dim has-background-gradient has-light-green-cyan-to-vivid-green-cyan-gradient-background\\"></span><div class=\\"wp-block-cover__inner-container\\"><!-- wp:paragraph {\\"align\\":\\"center\\",\\"placeholder\\":\\"Write title…\\"} -->
22
22
  <p class=\\"has-text-align-center\\"></p>
23
23
  <!-- /wp:paragraph --></div></div>
24
24
  <!-- /wp:cover -->"
25
25
  `;
26
26
 
27
27
  exports[`color settings toggles between solid colors and gradients 1`] = `
28
- "<!-- wp:cover {\\"gradient\\":\\"light-green-cyan-to-vivid-green-cyan\\"} -->
29
- <div class=\\"wp-block-cover\\"><span aria-hidden=\\"true\\" class=\\"wp-block-cover__background has-background-dim-100 has-background-dim has-background-gradient has-light-green-cyan-to-vivid-green-cyan-gradient-background\\"></span><div class=\\"wp-block-cover__inner-container\\"><!-- wp:paragraph {\\"align\\":\\"center\\",\\"placeholder\\":\\"Write title…\\"} -->
28
+ "<!-- wp:cover {\\"gradient\\":\\"light-green-cyan-to-vivid-green-cyan\\",\\"isDark\\":false} -->
29
+ <div class=\\"wp-block-cover is-light\\"><span aria-hidden=\\"true\\" class=\\"wp-block-cover__background has-background-dim-100 has-background-dim has-background-gradient has-light-green-cyan-to-vivid-green-cyan-gradient-background\\"></span><div class=\\"wp-block-cover__inner-container\\"><!-- wp:paragraph {\\"align\\":\\"center\\",\\"placeholder\\":\\"Write title…\\"} -->
30
30
  <p class=\\"has-text-align-center\\"></p>
31
31
  <!-- /wp:paragraph --></div></div>
32
32
  <!-- /wp:cover -->"
@@ -0,0 +1,62 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { render, screen, fireEvent } from '@testing-library/react';
5
+
6
+ // Need to mock the BlockControls wrapper as this requires a slot to run
7
+ // so can't be easily unit tested.
8
+ jest.mock( '@wordpress/block-editor', () => ( {
9
+ ...jest.requireActual( '@wordpress/block-editor' ),
10
+ BlockControls: ( { children } ) => <div>{ children }</div>,
11
+ } ) );
12
+
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+ import CoverBlockControls from '../edit/block-controls';
17
+
18
+ const setAttributes = jest.fn();
19
+ const onSelectMedia = jest.fn();
20
+
21
+ const currentSettings = { hasInnerBlocks: true, url: undefined };
22
+ const defaultAttributes = {
23
+ contentPosition: undefined,
24
+ id: 1,
25
+ useFeaturedImage: false,
26
+ dimRatio: 50,
27
+ minHeight: 300,
28
+ minHeightUnit: 'px',
29
+ };
30
+ const defaultProps = {
31
+ attributes: defaultAttributes,
32
+ currentSettings,
33
+ setAttributes,
34
+ onSelectMedia,
35
+ };
36
+
37
+ beforeEach( () => {
38
+ setAttributes.mockClear();
39
+ onSelectMedia.mockClear();
40
+ } );
41
+
42
+ describe( 'Cover block controls', () => {
43
+ describe( 'Full height toggle', () => {
44
+ test( 'displays toggle full height button toggled off if minHeight not 100vh', () => {
45
+ render( <CoverBlockControls { ...defaultProps } /> );
46
+ expect(
47
+ screen.getByRole( 'button', {
48
+ pressed: false,
49
+ name: 'Toggle full height',
50
+ } )
51
+ ).toBeInTheDocument();
52
+ } );
53
+ test( 'sets minHeight attributes to 100vh when clicked', () => {
54
+ render( <CoverBlockControls { ...defaultProps } /> );
55
+ fireEvent.click( screen.getByLabelText( 'Toggle full height' ) );
56
+ expect( setAttributes ).toHaveBeenCalledWith( {
57
+ minHeight: 100,
58
+ minHeightUnit: 'vh',
59
+ } );
60
+ } );
61
+ } );
62
+ } );
@@ -0,0 +1,301 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import {
5
+ createBlock,
6
+ getBlockTypes,
7
+ registerBlockType,
8
+ switchToBlockType,
9
+ unregisterBlockType,
10
+ } from '@wordpress/blocks';
11
+
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+ import { metadata as coverMetadata, settings as coverSettings } from '../index';
16
+ import {
17
+ metadata as groupMetadata,
18
+ settings as groupSettings,
19
+ } from '../../group';
20
+
21
+ describe( 'transforms', () => {
22
+ beforeAll( () => {
23
+ registerBlockType( coverMetadata, coverSettings );
24
+ registerBlockType( groupMetadata, groupSettings );
25
+ } );
26
+
27
+ afterAll( () => {
28
+ getBlockTypes().forEach( ( block ) => {
29
+ unregisterBlockType( block.name );
30
+ } );
31
+ } );
32
+
33
+ describe( 'transform from Group to Cover', () => {
34
+ it( 'should return child Cover block when Group block contains only a single Cover block', () => {
35
+ const block = createBlock(
36
+ 'core/group',
37
+ { gradient: 'my-gradient' },
38
+ [ createBlock( 'core/cover', { dimRatio: 10 } ) ]
39
+ );
40
+
41
+ const transformedBlocks = switchToBlockType( block, 'core/cover' );
42
+
43
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
44
+ attributes: { dimRatio: 10 },
45
+ innerBlocks: [],
46
+ name: 'core/cover',
47
+ } );
48
+ } );
49
+
50
+ it( 'should wrap Group in a Cover block and move named gradient up to the parent Cover block', () => {
51
+ const block = createBlock( 'core/group', {
52
+ gradient: 'my-gradient',
53
+ } );
54
+
55
+ const transformedBlocks = switchToBlockType( block, 'core/cover' );
56
+ const innerGroupBlock = transformedBlocks[ 0 ].innerBlocks[ 0 ];
57
+
58
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
59
+ attributes: { gradient: 'my-gradient' },
60
+ name: 'core/cover',
61
+ } );
62
+
63
+ expect( innerGroupBlock.name ).toBe( 'core/group' );
64
+ expect( innerGroupBlock.attributes ).not.toHaveProperty(
65
+ 'gradient'
66
+ );
67
+ } );
68
+
69
+ it( 'should wrap Group in a Cover block and move custom gradient up to the parent Cover block', () => {
70
+ const gradient =
71
+ 'linear-gradient(90deg,rgb(188,138,51) 0%,rgb(65,88,208) 100%)';
72
+ const block = createBlock( 'core/group', {
73
+ style: {
74
+ color: {
75
+ gradient,
76
+ },
77
+ },
78
+ } );
79
+
80
+ const transformedBlocks = switchToBlockType( block, 'core/cover' );
81
+ const innerGroupBlock = transformedBlocks[ 0 ].innerBlocks[ 0 ];
82
+
83
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
84
+ attributes: { customGradient: gradient },
85
+ name: 'core/cover',
86
+ } );
87
+
88
+ expect( innerGroupBlock.name ).toBe( 'core/group' );
89
+ expect( innerGroupBlock.attributes ).not.toHaveProperty( 'style' );
90
+ } );
91
+
92
+ it( 'should wrap Group in a Cover block and move named background color up to the parent Cover block', () => {
93
+ const block = createBlock( 'core/group', {
94
+ backgroundColor: 'my-background-color',
95
+ } );
96
+
97
+ const transformedBlocks = switchToBlockType( block, 'core/cover' );
98
+ const innerGroupBlock = transformedBlocks[ 0 ].innerBlocks[ 0 ];
99
+
100
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
101
+ attributes: { overlayColor: 'my-background-color' },
102
+ name: 'core/cover',
103
+ } );
104
+
105
+ expect( innerGroupBlock.name ).toBe( 'core/group' );
106
+ expect( innerGroupBlock.attributes ).not.toHaveProperty(
107
+ 'backgroundColor'
108
+ );
109
+ } );
110
+
111
+ it( 'should wrap Group in a Cover block and move custom background color up to the parent Cover block', () => {
112
+ const background = '#ff0000';
113
+ const block = createBlock( 'core/group', {
114
+ style: {
115
+ color: {
116
+ background,
117
+ },
118
+ },
119
+ } );
120
+
121
+ const transformedBlocks = switchToBlockType( block, 'core/cover' );
122
+ const innerGroupBlock = transformedBlocks[ 0 ].innerBlocks[ 0 ];
123
+
124
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
125
+ attributes: { customOverlayColor: background },
126
+ name: 'core/cover',
127
+ } );
128
+
129
+ expect( innerGroupBlock.name ).toBe( 'core/group' );
130
+ expect( innerGroupBlock.attributes ).not.toHaveProperty( 'style' );
131
+ } );
132
+ } );
133
+
134
+ describe( 'transform from Cover to Group', () => {
135
+ it( 'should transfer named gradient color to Group block', () => {
136
+ const block = createBlock( 'core/cover', {
137
+ gradient: 'my-gradient',
138
+ } );
139
+
140
+ const transformedBlocks = switchToBlockType( block, 'core/group' );
141
+
142
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
143
+ attributes: { gradient: 'my-gradient' },
144
+ name: 'core/group',
145
+ } );
146
+ } );
147
+
148
+ it( 'should transfer custom gradient color to style object in Group block', () => {
149
+ const gradient =
150
+ 'linear-gradient(90deg,rgb(188,138,51) 0%,rgb(65,88,208) 100%)';
151
+ const block = createBlock( 'core/cover', {
152
+ customGradient: gradient,
153
+ } );
154
+
155
+ const transformedBlocks = switchToBlockType( block, 'core/group' );
156
+
157
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
158
+ attributes: { style: { color: { gradient } } },
159
+ name: 'core/group',
160
+ } );
161
+ } );
162
+
163
+ it( 'should transfer named background color to backgroundColor attribute in Group block', () => {
164
+ const block = createBlock( 'core/cover', {
165
+ overlayColor: 'my-background-color',
166
+ } );
167
+
168
+ const transformedBlocks = switchToBlockType( block, 'core/group' );
169
+
170
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
171
+ attributes: { backgroundColor: 'my-background-color' },
172
+ name: 'core/group',
173
+ } );
174
+ } );
175
+
176
+ it( 'should transfer custom background color to style object in Group block', () => {
177
+ const block = createBlock( 'core/cover', {
178
+ customOverlayColor: '#ff0000',
179
+ } );
180
+
181
+ const transformedBlocks = switchToBlockType( block, 'core/group' );
182
+
183
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
184
+ attributes: { style: { color: { background: '#ff0000' } } },
185
+ name: 'core/group',
186
+ } );
187
+ } );
188
+
189
+ it( 'should merge Cover block named gradient color into child Group block', () => {
190
+ const block = createBlock(
191
+ 'core/cover',
192
+ {
193
+ gradient: 'my-gradient',
194
+ },
195
+ [ createBlock( 'core/group', { fontSize: 'medium' } ) ]
196
+ );
197
+
198
+ const transformedBlocks = switchToBlockType( block, 'core/group' );
199
+
200
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
201
+ attributes: { fontSize: 'medium', gradient: 'my-gradient' },
202
+ innerBlocks: [],
203
+ name: 'core/group',
204
+ } );
205
+ } );
206
+
207
+ it( 'should merge Cover block custom gradient color to style object in child Group block', () => {
208
+ const gradient =
209
+ 'linear-gradient(90deg,rgb(188,138,51) 0%,rgb(65,88,208) 100%)';
210
+ const block = createBlock(
211
+ 'core/cover',
212
+ {
213
+ customGradient: gradient,
214
+ },
215
+ [ createBlock( 'core/group', { fontSize: 'medium' } ) ]
216
+ );
217
+
218
+ const transformedBlocks = switchToBlockType( block, 'core/group' );
219
+
220
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
221
+ attributes: {
222
+ fontSize: 'medium',
223
+ style: { color: { gradient } },
224
+ },
225
+ innerBlocks: [],
226
+ name: 'core/group',
227
+ } );
228
+ } );
229
+
230
+ it( 'should merge Cover block named background color to backgroundColor attribute in child Group block', () => {
231
+ const block = createBlock(
232
+ 'core/cover',
233
+ {
234
+ overlayColor: 'my-background-color',
235
+ },
236
+ [ createBlock( 'core/group', { fontSize: 'medium' } ) ]
237
+ );
238
+
239
+ const transformedBlocks = switchToBlockType( block, 'core/group' );
240
+
241
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
242
+ attributes: {
243
+ backgroundColor: 'my-background-color',
244
+ fontSize: 'medium',
245
+ },
246
+ innerBlocks: [],
247
+ name: 'core/group',
248
+ } );
249
+ } );
250
+
251
+ it( 'should merge Cover block custom background color into child Group block', () => {
252
+ const block = createBlock(
253
+ 'core/cover',
254
+ {
255
+ customOverlayColor: '#ff0000',
256
+ },
257
+ [ createBlock( 'core/group', { fontSize: 'medium' } ) ]
258
+ );
259
+
260
+ const transformedBlocks = switchToBlockType( block, 'core/group' );
261
+
262
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
263
+ attributes: {
264
+ fontSize: 'medium',
265
+ style: { color: { background: '#ff0000' } },
266
+ },
267
+ innerBlocks: [],
268
+ name: 'core/group',
269
+ } );
270
+ } );
271
+
272
+ it( 'should skip merging Cover block gradient into child Group block if Group block has background color', () => {
273
+ const block = createBlock(
274
+ 'core/cover',
275
+ {
276
+ gradient: 'my-gradient',
277
+ },
278
+ [
279
+ createBlock( 'core/group', {
280
+ fontSize: 'medium',
281
+ style: { color: { background: '#ff0000' } },
282
+ } ),
283
+ ]
284
+ );
285
+
286
+ const transformedBlocks = switchToBlockType( block, 'core/group' );
287
+
288
+ expect( transformedBlocks[ 0 ] ).toMatchObject( {
289
+ attributes: {
290
+ fontSize: 'medium',
291
+ style: { color: { background: '#ff0000' } },
292
+ },
293
+ innerBlocks: [],
294
+ name: 'core/group',
295
+ } );
296
+ expect( transformedBlocks[ 0 ].attributes ).not.toHaveProperty(
297
+ 'gradient'
298
+ );
299
+ } );
300
+ } );
301
+ } );