@wordpress/block-library 7.5.0 → 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 (527) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +3 -2
  3. package/babel-plugin.js +154 -0
  4. package/build/audio/edit.js +1 -1
  5. package/build/audio/edit.js.map +1 -1
  6. package/build/block/edit.js +10 -9
  7. package/build/block/edit.js.map +1 -1
  8. package/build/button/index.js +1 -0
  9. package/build/button/index.js.map +1 -1
  10. package/build/categories/edit.js +1 -1
  11. package/build/categories/edit.js.map +1 -1
  12. package/build/categories/index.js +1 -1
  13. package/build/comment-author-avatar/index.js +1 -0
  14. package/build/comment-author-avatar/index.js.map +1 -1
  15. package/build/comments-title/deprecated.js +110 -0
  16. package/build/comments-title/deprecated.js.map +1 -0
  17. package/build/comments-title/edit.js +35 -37
  18. package/build/comments-title/edit.js.map +1 -1
  19. package/build/comments-title/index.js +5 -8
  20. package/build/comments-title/index.js.map +1 -1
  21. package/build/cover/controls.native.js +2 -3
  22. package/build/cover/controls.native.js.map +1 -1
  23. package/build/cover/edit/block-controls.js +115 -0
  24. package/build/cover/edit/block-controls.js.map +1 -0
  25. package/build/cover/edit/cover-placeholder.js +49 -0
  26. package/build/cover/edit/cover-placeholder.js.map +1 -0
  27. package/build/cover/edit/index.js +333 -0
  28. package/build/cover/edit/index.js.map +1 -0
  29. package/build/cover/edit/inspector-controls.js +224 -0
  30. package/build/cover/edit/inspector-controls.js.map +1 -0
  31. package/build/cover/edit/resizable-cover.js +67 -0
  32. package/build/cover/edit/resizable-cover.js.map +1 -0
  33. package/build/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
  34. package/build/cover/edit/use-cover-is-dark.js.map +1 -0
  35. package/build/cover/edit.native.js +0 -1
  36. package/build/cover/edit.native.js.map +1 -1
  37. package/build/cover/focal-point-settings-button.native.js.map +1 -1
  38. package/build/cover/shared.js +9 -0
  39. package/build/cover/shared.js.map +1 -1
  40. package/build/embed/embed-preview.js +1 -1
  41. package/build/embed/embed-preview.js.map +1 -1
  42. package/build/file/edit.native.js +0 -1
  43. package/build/file/edit.native.js.map +1 -1
  44. package/build/gallery/edit.js +2 -1
  45. package/build/gallery/edit.js.map +1 -1
  46. package/build/gallery/gallery.js +1 -1
  47. package/build/gallery/gallery.js.map +1 -1
  48. package/build/gallery/shared.js +2 -2
  49. package/build/gallery/shared.js.map +1 -1
  50. package/build/gallery/use-get-media.js +2 -1
  51. package/build/gallery/use-get-media.js.map +1 -1
  52. package/build/gallery/use-short-code-transform.js +19 -18
  53. package/build/gallery/use-short-code-transform.js.map +1 -1
  54. package/build/gallery/v1/gallery.js +1 -1
  55. package/build/gallery/v1/gallery.js.map +1 -1
  56. package/build/heading/edit.js +6 -2
  57. package/build/heading/edit.js.map +1 -1
  58. package/build/heading/index.js +1 -0
  59. package/build/heading/index.js.map +1 -1
  60. package/build/heading/transforms.js +1 -0
  61. package/build/heading/transforms.js.map +1 -1
  62. package/build/image/edit.js +5 -2
  63. package/build/image/edit.js.map +1 -1
  64. package/build/image/edit.native.js +0 -1
  65. package/build/image/edit.native.js.map +1 -1
  66. package/build/image/image.js +1 -1
  67. package/build/image/image.js.map +1 -1
  68. package/build/index.js +46 -10
  69. package/build/index.js.map +1 -1
  70. package/build/is-block-metadata-experimental.js +18 -0
  71. package/build/is-block-metadata-experimental.js.map +1 -0
  72. package/build/latest-posts/edit.js +30 -4
  73. package/build/latest-posts/edit.js.map +1 -1
  74. package/build/list/transforms.js +6 -0
  75. package/build/list/transforms.js.map +1 -1
  76. package/build/list/v2/edit.js +2 -1
  77. package/build/list/v2/edit.js.map +1 -1
  78. package/build/list/v2/migrate.js +1 -0
  79. package/build/list/v2/migrate.js.map +1 -1
  80. package/build/list/v2/transforms.js +46 -9
  81. package/build/list/v2/transforms.js.map +1 -1
  82. package/build/list-item/edit.js +7 -9
  83. package/build/list-item/edit.js.map +1 -1
  84. package/build/list-item/hooks/index.js +24 -0
  85. package/build/list-item/hooks/index.js.map +1 -1
  86. package/build/list-item/hooks/use-backspace.js +59 -0
  87. package/build/list-item/hooks/use-backspace.js.map +1 -0
  88. package/build/list-item/hooks/use-enter.js +6 -9
  89. package/build/list-item/hooks/use-enter.js.map +1 -1
  90. package/build/list-item/hooks/use-indent-list-item.js +33 -39
  91. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  92. package/build/list-item/hooks/use-space.js +54 -0
  93. package/build/list-item/hooks/use-space.js.map +1 -0
  94. package/build/list-item/hooks/use-split.js +30 -0
  95. package/build/list-item/hooks/use-split.js.map +1 -0
  96. package/build/list-item/index.js +1 -0
  97. package/build/list-item/index.js.map +1 -1
  98. package/build/list-item/utils.js +1 -1
  99. package/build/list-item/utils.js.map +1 -1
  100. package/build/media-text/edit.native.js +2 -1
  101. package/build/media-text/edit.native.js.map +1 -1
  102. package/build/media-text/media-container.native.js +2 -4
  103. package/build/media-text/media-container.native.js.map +1 -1
  104. package/build/media-text/transforms.js +137 -8
  105. package/build/media-text/transforms.js.map +1 -1
  106. package/build/navigation/edit/index.js +86 -81
  107. package/build/navigation/edit/index.js.map +1 -1
  108. package/build/navigation/edit/inner-blocks.js +1 -5
  109. package/build/navigation/edit/inner-blocks.js.map +1 -1
  110. package/build/navigation/use-navigation-entities.js +3 -3
  111. package/build/navigation/use-navigation-entities.js.map +1 -1
  112. package/build/navigation-link/fallback-variations.js +1 -1
  113. package/build/navigation-link/fallback-variations.js.map +1 -1
  114. package/build/navigation-link/hooks.js +1 -1
  115. package/build/navigation-link/hooks.js.map +1 -1
  116. package/build/page-list/convert-to-links-modal.js +1 -1
  117. package/build/page-list/convert-to-links-modal.js.map +1 -1
  118. package/build/page-list/edit.js +1 -1
  119. package/build/page-list/edit.js.map +1 -1
  120. package/build/post-author/edit.js +1 -1
  121. package/build/post-author/edit.js.map +1 -1
  122. package/build/post-author-name/index.js +1 -0
  123. package/build/post-author-name/index.js.map +1 -1
  124. package/build/post-comment/index.js +1 -0
  125. package/build/post-comment/index.js.map +1 -1
  126. package/build/post-comments/edit.js +34 -16
  127. package/build/post-comments/edit.js.map +1 -1
  128. package/build/post-comments-count/index.js +1 -0
  129. package/build/post-comments-count/index.js.map +1 -1
  130. package/build/post-comments-form/form.js +1 -1
  131. package/build/post-comments-form/form.js.map +1 -1
  132. package/build/post-comments-link/index.js +1 -0
  133. package/build/post-comments-link/index.js.map +1 -1
  134. package/build/post-featured-image/edit.js +1 -1
  135. package/build/post-featured-image/edit.js.map +1 -1
  136. package/build/post-template/edit.js +7 -2
  137. package/build/post-template/edit.js.map +1 -1
  138. package/build/post-terms/edit.js +11 -2
  139. package/build/post-terms/edit.js.map +1 -1
  140. package/build/post-terms/hooks.js +33 -0
  141. package/build/post-terms/hooks.js.map +1 -0
  142. package/build/post-terms/index.js +12 -5
  143. package/build/post-terms/index.js.map +1 -1
  144. package/build/post-title/index.js +1 -1
  145. package/build/post-title/index.js.map +1 -1
  146. package/build/pullquote/edit.js +1 -1
  147. package/build/pullquote/edit.js.map +1 -1
  148. package/build/pullquote/edit.native.js +1 -1
  149. package/build/pullquote/edit.native.js.map +1 -1
  150. package/build/query/edit/inspector-controls/index.js +26 -17
  151. package/build/query/edit/inspector-controls/index.js.map +1 -1
  152. package/build/query/edit/inspector-controls/parent-control.js +148 -0
  153. package/build/query/edit/inspector-controls/parent-control.js.map +1 -0
  154. package/build/query/edit/inspector-controls/sticky-control.js +41 -0
  155. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -0
  156. package/build/query/index.js +2 -1
  157. package/build/query/index.js.map +1 -1
  158. package/build/query/utils.js +28 -2
  159. package/build/query/utils.js.map +1 -1
  160. package/build/query-title/index.js +1 -1
  161. package/build/query-title/index.js.map +1 -1
  162. package/build/query-title/variations.js +1 -1
  163. package/build/query-title/variations.js.map +1 -1
  164. package/build/quote/edit.js +3 -2
  165. package/build/quote/edit.js.map +1 -1
  166. package/build/quote/v2/edit.js +1 -1
  167. package/build/quote/v2/edit.js.map +1 -1
  168. package/build/search/edit.js +1 -0
  169. package/build/search/edit.js.map +1 -1
  170. package/build/site-logo/edit.js +1 -1
  171. package/build/site-logo/edit.js.map +1 -1
  172. package/build/table/edit.js +15 -2
  173. package/build/table/edit.js.map +1 -1
  174. package/build/table-of-contents/edit.js +138 -66
  175. package/build/table-of-contents/edit.js.map +1 -1
  176. package/build/table-of-contents/index.js +13 -3
  177. package/build/table-of-contents/index.js.map +1 -1
  178. package/build/table-of-contents/list.js +16 -9
  179. package/build/table-of-contents/list.js.map +1 -1
  180. package/build/table-of-contents/save.js +40 -0
  181. package/build/table-of-contents/save.js.map +1 -0
  182. package/build/table-of-contents/utils.js +11 -77
  183. package/build/table-of-contents/utils.js.map +1 -1
  184. package/build/template-part/edit/index.js +7 -3
  185. package/build/template-part/edit/index.js.map +1 -1
  186. package/build/template-part/edit/inner-blocks.js +3 -8
  187. package/build/template-part/edit/inner-blocks.js.map +1 -1
  188. package/build/video/edit.js +1 -1
  189. package/build/video/edit.js.map +1 -1
  190. package/build-module/audio/edit.js +2 -2
  191. package/build-module/audio/edit.js.map +1 -1
  192. package/build-module/block/edit.js +11 -10
  193. package/build-module/block/edit.js.map +1 -1
  194. package/build-module/button/index.js +1 -0
  195. package/build-module/button/index.js.map +1 -1
  196. package/build-module/categories/edit.js +1 -1
  197. package/build-module/categories/edit.js.map +1 -1
  198. package/build-module/categories/index.js +1 -1
  199. package/build-module/comment-author-avatar/index.js +1 -0
  200. package/build-module/comment-author-avatar/index.js.map +1 -1
  201. package/build-module/comments-title/deprecated.js +102 -0
  202. package/build-module/comments-title/deprecated.js.map +1 -0
  203. package/build-module/comments-title/edit.js +38 -40
  204. package/build-module/comments-title/edit.js.map +1 -1
  205. package/build-module/comments-title/index.js +4 -8
  206. package/build-module/comments-title/index.js.map +1 -1
  207. package/build-module/cover/controls.native.js +2 -3
  208. package/build-module/cover/controls.native.js.map +1 -1
  209. package/build-module/cover/edit/block-controls.js +104 -0
  210. package/build-module/cover/edit/block-controls.js.map +1 -0
  211. package/build-module/cover/edit/cover-placeholder.js +38 -0
  212. package/build-module/cover/edit/cover-placeholder.js.map +1 -0
  213. package/build-module/cover/edit/index.js +307 -0
  214. package/build-module/cover/edit/index.js.map +1 -0
  215. package/build-module/cover/edit/inspector-controls.js +215 -0
  216. package/build-module/cover/edit/inspector-controls.js.map +1 -0
  217. package/build-module/cover/edit/resizable-cover.js +55 -0
  218. package/build-module/cover/edit/resizable-cover.js.map +1 -0
  219. package/build-module/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
  220. package/build-module/cover/edit/use-cover-is-dark.js.map +1 -0
  221. package/build-module/cover/edit.native.js +0 -1
  222. package/build-module/cover/edit.native.js.map +1 -1
  223. package/build-module/cover/focal-point-settings-button.native.js.map +1 -1
  224. package/build-module/cover/shared.js +7 -0
  225. package/build-module/cover/shared.js.map +1 -1
  226. package/build-module/embed/embed-preview.js +2 -2
  227. package/build-module/embed/embed-preview.js.map +1 -1
  228. package/build-module/file/edit.native.js +0 -1
  229. package/build-module/file/edit.native.js.map +1 -1
  230. package/build-module/gallery/edit.js +2 -1
  231. package/build-module/gallery/edit.js.map +1 -1
  232. package/build-module/gallery/gallery.js +2 -2
  233. package/build-module/gallery/gallery.js.map +1 -1
  234. package/build-module/gallery/shared.js +2 -2
  235. package/build-module/gallery/shared.js.map +1 -1
  236. package/build-module/gallery/use-get-media.js +2 -1
  237. package/build-module/gallery/use-get-media.js.map +1 -1
  238. package/build-module/gallery/use-short-code-transform.js +19 -18
  239. package/build-module/gallery/use-short-code-transform.js.map +1 -1
  240. package/build-module/gallery/v1/gallery.js +2 -2
  241. package/build-module/gallery/v1/gallery.js.map +1 -1
  242. package/build-module/heading/edit.js +6 -2
  243. package/build-module/heading/edit.js.map +1 -1
  244. package/build-module/heading/index.js +1 -0
  245. package/build-module/heading/index.js.map +1 -1
  246. package/build-module/heading/transforms.js +1 -0
  247. package/build-module/heading/transforms.js.map +1 -1
  248. package/build-module/image/edit.js +6 -3
  249. package/build-module/image/edit.js.map +1 -1
  250. package/build-module/image/edit.native.js +0 -1
  251. package/build-module/image/edit.native.js.map +1 -1
  252. package/build-module/image/image.js +2 -2
  253. package/build-module/image/image.js.map +1 -1
  254. package/build-module/index.js +42 -10
  255. package/build-module/index.js.map +1 -1
  256. package/build-module/is-block-metadata-experimental.js +16 -0
  257. package/build-module/is-block-metadata-experimental.js.map +1 -0
  258. package/build-module/latest-posts/edit.js +29 -5
  259. package/build-module/latest-posts/edit.js.map +1 -1
  260. package/build-module/list/transforms.js +6 -0
  261. package/build-module/list/transforms.js.map +1 -1
  262. package/build-module/list/v2/edit.js +2 -1
  263. package/build-module/list/v2/edit.js.map +1 -1
  264. package/build-module/list/v2/migrate.js +1 -3
  265. package/build-module/list/v2/migrate.js.map +1 -1
  266. package/build-module/list/v2/transforms.js +46 -9
  267. package/build-module/list/v2/transforms.js.map +1 -1
  268. package/build-module/list-item/edit.js +8 -9
  269. package/build-module/list-item/edit.js.map +1 -1
  270. package/build-module/list-item/hooks/index.js +3 -0
  271. package/build-module/list-item/hooks/index.js.map +1 -1
  272. package/build-module/list-item/hooks/use-backspace.js +44 -0
  273. package/build-module/list-item/hooks/use-backspace.js.map +1 -0
  274. package/build-module/list-item/hooks/use-enter.js +6 -9
  275. package/build-module/list-item/hooks/use-enter.js.map +1 -1
  276. package/build-module/list-item/hooks/use-indent-list-item.js +33 -38
  277. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  278. package/build-module/list-item/hooks/use-space.js +40 -0
  279. package/build-module/list-item/hooks/use-space.js.map +1 -0
  280. package/build-module/list-item/hooks/use-split.js +19 -0
  281. package/build-module/list-item/hooks/use-split.js.map +1 -0
  282. package/build-module/list-item/index.js +1 -0
  283. package/build-module/list-item/index.js.map +1 -1
  284. package/build-module/list-item/utils.js +1 -1
  285. package/build-module/list-item/utils.js.map +1 -1
  286. package/build-module/media-text/edit.native.js +2 -1
  287. package/build-module/media-text/edit.native.js.map +1 -1
  288. package/build-module/media-text/media-container.native.js +2 -4
  289. package/build-module/media-text/media-container.native.js.map +1 -1
  290. package/build-module/media-text/transforms.js +137 -8
  291. package/build-module/media-text/transforms.js.map +1 -1
  292. package/build-module/navigation/edit/index.js +87 -82
  293. package/build-module/navigation/edit/index.js.map +1 -1
  294. package/build-module/navigation/edit/inner-blocks.js +2 -6
  295. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  296. package/build-module/navigation/use-navigation-entities.js +1 -1
  297. package/build-module/navigation/use-navigation-entities.js.map +1 -1
  298. package/build-module/navigation-link/fallback-variations.js +1 -1
  299. package/build-module/navigation-link/fallback-variations.js.map +1 -1
  300. package/build-module/navigation-link/hooks.js +2 -2
  301. package/build-module/navigation-link/hooks.js.map +1 -1
  302. package/build-module/page-list/convert-to-links-modal.js +1 -1
  303. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  304. package/build-module/page-list/edit.js +1 -1
  305. package/build-module/page-list/edit.js.map +1 -1
  306. package/build-module/post-author/edit.js +1 -1
  307. package/build-module/post-author/edit.js.map +1 -1
  308. package/build-module/post-author-name/index.js +1 -0
  309. package/build-module/post-author-name/index.js.map +1 -1
  310. package/build-module/post-comment/index.js +1 -0
  311. package/build-module/post-comment/index.js.map +1 -1
  312. package/build-module/post-comments/edit.js +35 -16
  313. package/build-module/post-comments/edit.js.map +1 -1
  314. package/build-module/post-comments-count/index.js +1 -0
  315. package/build-module/post-comments-count/index.js.map +1 -1
  316. package/build-module/post-comments-form/form.js +1 -1
  317. package/build-module/post-comments-form/form.js.map +1 -1
  318. package/build-module/post-comments-link/index.js +1 -0
  319. package/build-module/post-comments-link/index.js.map +1 -1
  320. package/build-module/post-featured-image/edit.js +1 -1
  321. package/build-module/post-featured-image/edit.js.map +1 -1
  322. package/build-module/post-template/edit.js +7 -2
  323. package/build-module/post-template/edit.js.map +1 -1
  324. package/build-module/post-terms/edit.js +10 -3
  325. package/build-module/post-terms/edit.js.map +1 -1
  326. package/build-module/post-terms/hooks.js +25 -0
  327. package/build-module/post-terms/hooks.js.map +1 -0
  328. package/build-module/post-terms/index.js +10 -8
  329. package/build-module/post-terms/index.js.map +1 -1
  330. package/build-module/post-title/index.js +1 -1
  331. package/build-module/post-title/index.js.map +1 -1
  332. package/build-module/pullquote/edit.js +2 -2
  333. package/build-module/pullquote/edit.js.map +1 -1
  334. package/build-module/pullquote/edit.native.js +2 -2
  335. package/build-module/pullquote/edit.native.js.map +1 -1
  336. package/build-module/query/edit/inspector-controls/index.js +24 -17
  337. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  338. package/build-module/query/edit/inspector-controls/parent-control.js +135 -0
  339. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -0
  340. package/build-module/query/edit/inspector-controls/sticky-control.js +31 -0
  341. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -0
  342. package/build-module/query/index.js +2 -1
  343. package/build-module/query/index.js.map +1 -1
  344. package/build-module/query/utils.js +21 -0
  345. package/build-module/query/utils.js.map +1 -1
  346. package/build-module/query-title/index.js +1 -1
  347. package/build-module/query-title/index.js.map +1 -1
  348. package/build-module/query-title/variations.js +2 -2
  349. package/build-module/query-title/variations.js.map +1 -1
  350. package/build-module/quote/edit.js +4 -3
  351. package/build-module/quote/edit.js.map +1 -1
  352. package/build-module/quote/v2/edit.js +2 -2
  353. package/build-module/quote/v2/edit.js.map +1 -1
  354. package/build-module/search/edit.js +1 -0
  355. package/build-module/search/edit.js.map +1 -1
  356. package/build-module/site-logo/edit.js +1 -1
  357. package/build-module/site-logo/edit.js.map +1 -1
  358. package/build-module/table/edit.js +17 -4
  359. package/build-module/table/edit.js.map +1 -1
  360. package/build-module/table-of-contents/edit.js +136 -68
  361. package/build-module/table-of-contents/edit.js.map +1 -1
  362. package/build-module/table-of-contents/index.js +12 -3
  363. package/build-module/table-of-contents/index.js.map +1 -1
  364. package/build-module/table-of-contents/list.js +18 -10
  365. package/build-module/table-of-contents/list.js.map +1 -1
  366. package/build-module/table-of-contents/save.js +28 -0
  367. package/build-module/table-of-contents/save.js.map +1 -0
  368. package/build-module/table-of-contents/utils.js +11 -73
  369. package/build-module/table-of-contents/utils.js.map +1 -1
  370. package/build-module/template-part/edit/index.js +8 -4
  371. package/build-module/template-part/edit/index.js.map +1 -1
  372. package/build-module/template-part/edit/inner-blocks.js +4 -9
  373. package/build-module/template-part/edit/inner-blocks.js.map +1 -1
  374. package/build-module/video/edit.js +2 -2
  375. package/build-module/video/edit.js.map +1 -1
  376. package/build-style/editor-rtl.css +4 -6
  377. package/build-style/editor.css +4 -6
  378. package/build-style/image/editor-rtl.css +1 -1
  379. package/build-style/image/editor.css +1 -1
  380. package/build-style/post-comments/style-rtl.css +22 -0
  381. package/build-style/post-comments/style.css +22 -0
  382. package/build-style/post-comments-form/style-rtl.css +1 -3
  383. package/build-style/post-comments-form/style.css +1 -3
  384. package/build-style/separator/editor-rtl.css +1 -0
  385. package/build-style/separator/editor.css +1 -0
  386. package/build-style/style-rtl.css +23 -3
  387. package/build-style/style.css +23 -3
  388. package/build-style/video/editor-rtl.css +2 -5
  389. package/build-style/video/editor.css +2 -5
  390. package/build-types/table-of-contents/list.d.ts +12 -0
  391. package/build-types/table-of-contents/list.d.ts.map +1 -0
  392. package/build-types/table-of-contents/utils.d.ts +24 -0
  393. package/build-types/table-of-contents/utils.d.ts.map +1 -0
  394. package/package.json +30 -29
  395. package/src/audio/edit.js +4 -2
  396. package/src/avatar/block.json +0 -1
  397. package/src/avatar/index.php +2 -2
  398. package/src/block/edit.js +39 -42
  399. package/src/block/test/edit.native.js +1 -1
  400. package/src/button/block.json +1 -0
  401. package/src/categories/block.json +1 -1
  402. package/src/categories/edit.js +1 -1
  403. package/src/comment-author-avatar/block.json +1 -0
  404. package/src/comments-title/block.json +0 -6
  405. package/src/comments-title/deprecated.js +34 -0
  406. package/src/comments-title/edit.js +44 -100
  407. package/src/comments-title/index.js +3 -1
  408. package/src/comments-title/index.php +41 -23
  409. package/src/cover/controls.native.js +1 -2
  410. package/src/cover/edit/block-controls.js +119 -0
  411. package/src/cover/edit/cover-placeholder.js +39 -0
  412. package/src/cover/edit/index.js +381 -0
  413. package/src/cover/edit/inspector-controls.js +286 -0
  414. package/src/cover/edit/resizable-cover.js +55 -0
  415. package/src/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
  416. package/src/cover/edit.native.js +0 -1
  417. package/src/cover/editor.scss +1 -1
  418. package/src/cover/focal-point-settings-button.native.js +1 -1
  419. package/src/cover/index.php +20 -37
  420. package/src/cover/shared.js +4 -0
  421. package/src/cover/test/block-controls.js +62 -0
  422. package/src/embed/embed-preview.js +4 -2
  423. package/src/file/edit.native.js +0 -1
  424. package/src/gallery/edit.js +2 -1
  425. package/src/gallery/gallery.js +2 -2
  426. package/src/gallery/shared.js +3 -2
  427. package/src/gallery/use-get-media.js +2 -1
  428. package/src/gallery/use-short-code-transform.js +19 -16
  429. package/src/gallery/v1/gallery.js +2 -2
  430. package/src/heading/block.json +1 -0
  431. package/src/heading/edit.js +5 -2
  432. package/src/image/edit.js +9 -1
  433. package/src/image/edit.native.js +0 -1
  434. package/src/image/editor.scss +1 -1
  435. package/src/image/image.js +8 -2
  436. package/src/image/test/edit.native.js +7 -7
  437. package/src/index.js +50 -27
  438. package/src/is-block-metadata-experimental.js +19 -0
  439. package/src/latest-posts/edit.js +27 -2
  440. package/src/latest-posts/index.php +12 -6
  441. package/src/list/transforms.js +7 -0
  442. package/src/list/v2/edit.js +1 -0
  443. package/src/list/v2/migrate.js +1 -1
  444. package/src/list/v2/transforms.js +35 -0
  445. package/src/list-item/block.json +2 -1
  446. package/src/list-item/edit.js +17 -10
  447. package/src/list-item/hooks/index.js +3 -0
  448. package/src/list-item/hooks/use-backspace.js +52 -0
  449. package/src/list-item/hooks/use-enter.js +9 -16
  450. package/src/list-item/hooks/use-indent-list-item.js +50 -63
  451. package/src/list-item/hooks/use-space.js +48 -0
  452. package/src/list-item/hooks/use-split.js +24 -0
  453. package/src/list-item/utils.js +1 -1
  454. package/src/media-text/edit.native.js +3 -1
  455. package/src/media-text/media-container.native.js +2 -4
  456. package/src/media-text/transforms.js +154 -0
  457. package/src/navigation/edit/index.js +175 -169
  458. package/src/navigation/edit/inner-blocks.js +1 -8
  459. package/src/navigation/index.php +40 -0
  460. package/src/navigation/use-navigation-entities.js +1 -1
  461. package/src/navigation-link/fallback-variations.js +1 -1
  462. package/src/navigation-link/hooks.js +2 -2
  463. package/src/navigation-link/test/__snapshots__/hooks.js.snap +4 -4
  464. package/src/page-list/convert-to-links-modal.js +1 -1
  465. package/src/page-list/edit.js +1 -4
  466. package/src/post-author/edit.js +24 -22
  467. package/src/post-author-name/block.json +1 -0
  468. package/src/post-comment/block.json +1 -0
  469. package/src/post-comments/edit.js +54 -22
  470. package/src/post-comments/style.scss +26 -0
  471. package/src/post-comments-count/block.json +1 -0
  472. package/src/post-comments-form/form.js +1 -4
  473. package/src/post-comments-form/style.scss +1 -4
  474. package/src/post-comments-link/block.json +1 -0
  475. package/src/post-featured-image/edit.js +1 -1
  476. package/src/post-template/edit.js +5 -0
  477. package/src/post-template/index.php +30 -0
  478. package/src/post-terms/edit.js +19 -0
  479. package/src/post-terms/hooks.js +27 -0
  480. package/src/post-terms/index.js +14 -7
  481. package/src/post-terms/index.php +40 -2
  482. package/src/post-title/index.js +1 -1
  483. package/src/pullquote/edit.js +2 -2
  484. package/src/pullquote/edit.native.js +2 -2
  485. package/src/query/block.json +2 -1
  486. package/src/query/edit/inspector-controls/index.js +25 -11
  487. package/src/query/edit/inspector-controls/parent-control.js +133 -0
  488. package/src/query/edit/inspector-controls/sticky-control.js +25 -0
  489. package/src/query/utils.js +22 -0
  490. package/src/query-title/index.js +1 -1
  491. package/src/query-title/variations.js +2 -2
  492. package/src/quote/edit.js +5 -2
  493. package/src/quote/v2/edit.js +4 -2
  494. package/src/search/edit.js +1 -0
  495. package/src/search/index.php +1 -1
  496. package/src/separator/editor.scss +1 -0
  497. package/src/site-logo/edit.js +1 -1
  498. package/src/table/edit.js +19 -4
  499. package/src/table-of-contents/block.json +9 -2
  500. package/src/table-of-contents/edit.js +155 -75
  501. package/src/table-of-contents/index.js +2 -0
  502. package/src/table-of-contents/list.tsx +46 -0
  503. package/src/table-of-contents/save.js +25 -0
  504. package/src/table-of-contents/utils.ts +71 -0
  505. package/src/tag-cloud/block.json +1 -1
  506. package/src/template-part/edit/index.js +25 -15
  507. package/src/template-part/edit/inner-blocks.js +2 -10
  508. package/src/video/edit.js +4 -2
  509. package/src/video/editor.scss +3 -6
  510. package/test/babel-plugin.js +67 -0
  511. package/tsconfig.json +11 -0
  512. package/tsconfig.tsbuildinfo +1 -0
  513. package/build/cover/edit.js +0 -598
  514. package/build/cover/edit.js.map +0 -1
  515. package/build/cover/use-cover-is-dark.js.map +0 -1
  516. package/build/post-terms/variations.js +0 -37
  517. package/build/post-terms/variations.js.map +0 -1
  518. package/build-module/cover/edit.js +0 -575
  519. package/build-module/cover/edit.js.map +0 -1
  520. package/build-module/cover/use-cover-is-dark.js.map +0 -1
  521. package/build-module/post-terms/variations.js +0 -27
  522. package/build-module/post-terms/variations.js.map +0 -1
  523. package/src/cover/edit.js +0 -757
  524. package/src/post-terms/variations.js +0 -28
  525. package/src/table-of-contents/index.php +0 -346
  526. package/src/table-of-contents/list.js +0 -28
  527. package/src/table-of-contents/utils.js +0 -126
@@ -15,19 +15,16 @@ import { store as blockEditorStore } from '@wordpress/block-editor';
15
15
  /**
16
16
  * Internal dependencies
17
17
  */
18
- import useIndentListItem from './use-indent-list-item';
18
+ import useOutdentListItem from './use-outdent-list-item';
19
19
 
20
20
  export default function useEnter( props ) {
21
21
  const { replaceBlocks } = useDispatch( blockEditorStore );
22
- const {
23
- getBlock,
24
- getBlockRootClientId,
25
- getBlockParents,
26
- getBlockIndex,
27
- } = useSelect( blockEditorStore );
22
+ const { getBlock, getBlockRootClientId, getBlockIndex } = useSelect(
23
+ blockEditorStore
24
+ );
28
25
  const propsRef = useRef( props );
29
26
  propsRef.current = props;
30
- const [ canIndent, indentListItem ] = useIndentListItem(
27
+ const [ canOutdent, outdentListItem ] = useOutdentListItem(
31
28
  propsRef.current.clientId
32
29
  );
33
30
  return useRefEffect(
@@ -41,17 +38,13 @@ export default function useEnter( props ) {
41
38
  return;
42
39
  }
43
40
  event.preventDefault();
44
- if ( canIndent ) {
45
- indentListItem();
41
+ if ( canOutdent ) {
42
+ outdentListItem();
46
43
  return;
47
44
  }
48
45
  // Here we are in top level list so we need to split.
49
46
  const blockRootClientId = getBlockRootClientId( clientId );
50
- const blockParents = getBlockParents( clientId );
51
- const topParentListBlockClientId = blockParents[ 0 ];
52
- const topParentListBlock = getBlock(
53
- topParentListBlockClientId
54
- );
47
+ const topParentListBlock = getBlock( blockRootClientId );
55
48
  const blockIndex = getBlockIndex( clientId );
56
49
  const head = cloneBlock( {
57
50
  ...topParentListBlock,
@@ -89,6 +82,6 @@ export default function useEnter( props ) {
89
82
  element.removeEventListener( 'keydown', onKeyDown );
90
83
  };
91
84
  },
92
- [ canIndent ]
85
+ [ canOutdent ]
93
86
  );
94
87
  }
@@ -1,89 +1,76 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { first } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
4
  import { useCallback } from '@wordpress/element';
10
5
  import { useSelect, useDispatch } from '@wordpress/data';
11
6
  import { store as blockEditorStore } from '@wordpress/block-editor';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import { createListItem } from '../utils';
7
+ import { createBlock, cloneBlock } from '@wordpress/blocks';
17
8
 
18
9
  export default function useIndentListItem( clientId ) {
19
- const { canIndent } = useSelect(
20
- ( innerSelect ) => {
21
- const { getBlockIndex } = innerSelect( blockEditorStore );
22
- return {
23
- canIndent: getBlockIndex( clientId ) > 0,
24
- };
25
- },
10
+ const canIndent = useSelect(
11
+ ( select ) => select( blockEditorStore ).getBlockIndex( clientId ) > 0,
26
12
  [ clientId ]
27
13
  );
28
- const { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );
14
+ const { replaceBlocks, selectionChange, multiSelect } = useDispatch(
15
+ blockEditorStore
16
+ );
29
17
  const {
30
- getBlockRootClientId,
31
18
  getBlock,
32
- getBlockOrder,
19
+ getPreviousBlockClientId,
33
20
  getSelectionStart,
34
21
  getSelectionEnd,
35
- getBlockIndex,
22
+ hasMultiSelection,
23
+ getMultiSelectedBlockClientIds,
36
24
  } = useSelect( blockEditorStore );
37
-
38
25
  return [
39
26
  canIndent,
40
27
  useCallback( () => {
28
+ const _hasMultiSelection = hasMultiSelection();
29
+ const clientIds = _hasMultiSelection
30
+ ? getMultiSelectedBlockClientIds()
31
+ : [ clientId ];
32
+ const clonedBlocks = clientIds.map( ( _clientId ) =>
33
+ cloneBlock( getBlock( _clientId ) )
34
+ );
35
+ const previousSiblingId = getPreviousBlockClientId( clientId );
36
+ const newListItem = cloneBlock( getBlock( previousSiblingId ) );
37
+ // If the sibling has no innerBlocks, create a new `list` block.
38
+ if ( ! newListItem.innerBlocks?.length ) {
39
+ newListItem.innerBlocks = [ createBlock( 'core/list' ) ];
40
+ }
41
+ // A list item usually has one `list`, but it's possible to have
42
+ // more. So we need to preserve the previous `list` blocks and
43
+ // merge the new blocks to the last `list`.
44
+ newListItem.innerBlocks[
45
+ newListItem.innerBlocks.length - 1
46
+ ].innerBlocks.push( ...clonedBlocks );
47
+
48
+ // We get the selection start/end here, because when
49
+ // we replace blocks, the selection is updated too.
41
50
  const selectionStart = getSelectionStart();
42
51
  const selectionEnd = getSelectionEnd();
43
-
44
- const parentId = getBlockRootClientId( clientId );
45
- const previousSiblingId = getBlockOrder( parentId )[
46
- getBlockIndex( clientId ) - 1
47
- ];
48
- const previousSibling = getBlock( previousSiblingId );
49
- const previousSiblingChildren =
50
- first( previousSibling.innerBlocks )?.innerBlocks || [];
51
- const previousSiblingListAttributes =
52
- first( previousSibling.innerBlocks )?.attributes || {};
53
- const block = getBlock( clientId );
54
-
55
- const childListAttributes = first( block.innerBlocks )?.attributes;
56
- const childItemBlocks =
57
- first( block.innerBlocks )?.innerBlocks || [];
58
-
59
- const newBlock = createListItem(
60
- block.attributes,
61
- childListAttributes,
62
- childItemBlocks
63
- );
64
- // Replace the previous sibling of the block being indented and the indented block,
52
+ // Replace the previous sibling of the block being indented and the indented blocks,
65
53
  // with a new block whose attributes are equal to the ones of the previous sibling and
66
- // whose descendants are the children of the previous sibling, followed by the indented block.
54
+ // whose descendants are the children of the previous sibling, followed by the indented blocks.
67
55
  replaceBlocks(
68
- [ previousSiblingId, clientId ],
69
- [
70
- createListItem(
71
- previousSibling.attributes,
72
- previousSiblingListAttributes,
73
- [ ...previousSiblingChildren, newBlock ]
74
- ),
75
- ]
76
- );
77
-
78
- // Restore the selection state.
79
- selectionChange(
80
- newBlock.clientId,
81
- selectionEnd.attributeKey,
82
- selectionEnd.clientId === selectionStart.clientId
83
- ? selectionStart.offset
84
- : selectionEnd.offset,
85
- selectionEnd.offset
56
+ [ previousSiblingId, ...clientIds ],
57
+ [ newListItem ]
86
58
  );
59
+ if ( ! _hasMultiSelection ) {
60
+ selectionChange(
61
+ clonedBlocks[ 0 ].clientId,
62
+ selectionEnd.attributeKey,
63
+ selectionEnd.clientId === selectionStart.clientId
64
+ ? selectionStart.offset
65
+ : selectionEnd.offset,
66
+ selectionEnd.offset
67
+ );
68
+ } else {
69
+ multiSelect(
70
+ clonedBlocks[ 0 ].clientId,
71
+ clonedBlocks[ clonedBlocks.length - 1 ].clientId
72
+ );
73
+ }
87
74
  }, [ clientId ] ),
88
75
  ];
89
76
  }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useRefEffect } from '@wordpress/compose';
5
+ import { SPACE } from '@wordpress/keycodes';
6
+ import { store as blockEditorStore } from '@wordpress/block-editor';
7
+ import { useSelect } from '@wordpress/data';
8
+
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import useIndentListItem from './use-indent-list-item';
13
+
14
+ export default function useSpace( clientId ) {
15
+ const { getSelectionStart, getSelectionEnd } = useSelect(
16
+ blockEditorStore
17
+ );
18
+ const [ canIndent, indentListItem ] = useIndentListItem( clientId );
19
+
20
+ return useRefEffect(
21
+ ( element ) => {
22
+ function onKeyDown( event ) {
23
+ if (
24
+ event.defaultPrevented ||
25
+ event.keyCode !== SPACE ||
26
+ ! canIndent
27
+ ) {
28
+ return;
29
+ }
30
+ const selectionStart = getSelectionStart();
31
+ const selectionEnd = getSelectionEnd();
32
+ if (
33
+ selectionStart.offset === 0 &&
34
+ selectionEnd.offset === 0
35
+ ) {
36
+ event.preventDefault();
37
+ indentListItem();
38
+ }
39
+ }
40
+
41
+ element.addEventListener( 'keydown', onKeyDown );
42
+ return () => {
43
+ element.removeEventListener( 'keydown', onKeyDown );
44
+ };
45
+ },
46
+ [ canIndent, indentListItem ]
47
+ );
48
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useCallback } from '@wordpress/element';
5
+ import { useSelect } from '@wordpress/data';
6
+ import { store as blockEditorStore } from '@wordpress/block-editor';
7
+ import { cloneBlock } from '@wordpress/blocks';
8
+
9
+ export default function useSplit( clientId ) {
10
+ const { getBlock } = useSelect( blockEditorStore );
11
+ return useCallback(
12
+ ( value, isAfterOriginal ) => {
13
+ const block = getBlock( clientId );
14
+ return cloneBlock(
15
+ block,
16
+ {
17
+ content: value,
18
+ },
19
+ isAfterOriginal ? [] : block.innerBlocks
20
+ );
21
+ },
22
+ [ clientId, getBlock ]
23
+ );
24
+ }
@@ -7,7 +7,7 @@ export function createListItem( listItemAttributes, listAttributes, children ) {
7
7
  return createBlock(
8
8
  'core/list-item',
9
9
  listItemAttributes,
10
- ! children || ! children.length
10
+ ! children?.length
11
11
  ? []
12
12
  : [ createBlock( 'core/list', listAttributes, children ) ]
13
13
  );
@@ -275,6 +275,8 @@ class MediaTextEdit extends Component {
275
275
  const widthString = `${ temporaryMediaWidth }%`;
276
276
  const innerBlockWidth = shouldStack ? 100 : 100 - temporaryMediaWidth;
277
277
  const innerBlockWidthString = `${ innerBlockWidth }%`;
278
+ const hasMedia =
279
+ mediaType === MEDIA_TYPE_IMAGE || mediaType === MEDIA_TYPE_VIDEO;
278
280
 
279
281
  const innerBlockContainerStyle = [
280
282
  { width: innerBlockWidthString },
@@ -344,7 +346,7 @@ class MediaTextEdit extends Component {
344
346
  <>
345
347
  { mediaType === MEDIA_TYPE_IMAGE && this.getControls() }
346
348
  <BlockControls>
347
- { ( isMediaSelected || mediaType === MEDIA_TYPE_VIDEO ) && (
349
+ { hasMedia && (
348
350
  <ToolbarGroup>
349
351
  <Button
350
352
  label={ __( 'Edit media' ) }
@@ -191,7 +191,6 @@ class MediaContainer extends Component {
191
191
  <TouchableWithoutFeedback
192
192
  accessible={ ! isSelected }
193
193
  onPress={ this.onMediaPressed }
194
- onLongPress={ openMediaOptions }
195
194
  disabled={ ! isSelected }
196
195
  >
197
196
  <View
@@ -222,7 +221,7 @@ class MediaContainer extends Component {
222
221
  );
223
222
  }
224
223
 
225
- renderVideo( params, openMediaOptions ) {
224
+ renderVideo( params ) {
226
225
  const {
227
226
  aligmentStyles,
228
227
  mediaUrl,
@@ -251,7 +250,6 @@ class MediaContainer extends Component {
251
250
  <TouchableWithoutFeedback
252
251
  accessible={ ! isSelected }
253
252
  onPress={ this.onMediaPressed }
254
- onLongPress={ openMediaOptions }
255
253
  disabled={ ! isSelected }
256
254
  >
257
255
  <View style={ [ styles.videoContainer, aligmentStyles ] }>
@@ -305,7 +303,7 @@ class MediaContainer extends Component {
305
303
  mediaElement = this.renderImage( params, openMediaOptions );
306
304
  break;
307
305
  case MEDIA_TYPE_VIDEO:
308
- mediaElement = this.renderVideo( params, openMediaOptions );
306
+ mediaElement = this.renderVideo( params );
309
307
  break;
310
308
  }
311
309
  return mediaElement;
@@ -28,6 +28,61 @@ const transforms = {
28
28
  anchor,
29
29
  } ),
30
30
  },
31
+ {
32
+ type: 'block',
33
+ blocks: [ 'core/cover' ],
34
+ transform: (
35
+ {
36
+ align,
37
+ alt,
38
+ anchor,
39
+ backgroundType,
40
+ customGradient,
41
+ customOverlayColor,
42
+ gradient,
43
+ id,
44
+ overlayColor,
45
+ url,
46
+ },
47
+ innerBlocks
48
+ ) => {
49
+ let additionalAttributes = {};
50
+
51
+ if ( customGradient ) {
52
+ additionalAttributes = {
53
+ style: {
54
+ color: {
55
+ gradient: customGradient,
56
+ },
57
+ },
58
+ };
59
+ } else if ( customOverlayColor ) {
60
+ additionalAttributes = {
61
+ style: {
62
+ color: {
63
+ background: customOverlayColor,
64
+ },
65
+ },
66
+ };
67
+ }
68
+
69
+ return createBlock(
70
+ 'core/media-text',
71
+ {
72
+ align,
73
+ anchor,
74
+ backgroundColor: overlayColor,
75
+ gradient,
76
+ mediaAlt: alt,
77
+ mediaId: id,
78
+ mediaType: backgroundType,
79
+ mediaUrl: url,
80
+ ...additionalAttributes,
81
+ },
82
+ innerBlocks
83
+ );
84
+ },
85
+ },
31
86
  ],
32
87
  to: [
33
88
  {
@@ -59,6 +114,105 @@ const transforms = {
59
114
  } );
60
115
  },
61
116
  },
117
+ {
118
+ type: 'block',
119
+ blocks: [ 'core/cover' ],
120
+ transform: (
121
+ {
122
+ align,
123
+ anchor,
124
+ backgroundColor,
125
+ focalPoint,
126
+ gradient,
127
+ mediaAlt,
128
+ mediaId,
129
+ mediaType,
130
+ mediaUrl,
131
+ style,
132
+ textColor,
133
+ },
134
+ innerBlocks
135
+ ) => {
136
+ const additionalAttributes = {};
137
+
138
+ if ( style?.color?.gradient ) {
139
+ additionalAttributes.customGradient = style.color.gradient;
140
+ } else if ( style?.color?.background ) {
141
+ additionalAttributes.customOverlayColor =
142
+ style.color.background;
143
+ }
144
+
145
+ const coverAttributes = {
146
+ align,
147
+ alt: mediaAlt,
148
+ anchor,
149
+ backgroundType: mediaType,
150
+ dimRatio: !! mediaUrl ? 50 : 100,
151
+ focalPoint,
152
+ gradient,
153
+ id: mediaId,
154
+ overlayColor: backgroundColor,
155
+ url: mediaUrl,
156
+ ...additionalAttributes,
157
+ };
158
+ const customTextColor = style?.color?.text;
159
+
160
+ // Attempt to maintain any text color selection.
161
+ // Cover block's do not opt into color block support so we
162
+ // cannot directly copy the color attributes across.
163
+ if ( ! textColor && ! customTextColor ) {
164
+ return createBlock(
165
+ 'core/cover',
166
+ coverAttributes,
167
+ innerBlocks
168
+ );
169
+ }
170
+
171
+ const coloredInnerBlocks = innerBlocks.map( ( innerBlock ) => {
172
+ const {
173
+ attributes: { style: innerStyle },
174
+ } = innerBlock;
175
+
176
+ // Only apply the media and text color if the inner block
177
+ // doesn't set its own color block support selection.
178
+ if (
179
+ innerBlock.attributes.textColor ||
180
+ innerStyle?.color?.text
181
+ ) {
182
+ return innerBlock;
183
+ }
184
+
185
+ const newAttributes = { textColor };
186
+
187
+ // Only add or extend inner block's style object if we have
188
+ // a custom text color from the media & text block.
189
+ if ( customTextColor ) {
190
+ newAttributes.style = {
191
+ ...innerStyle,
192
+ color: {
193
+ ...innerStyle?.color,
194
+ text: customTextColor,
195
+ },
196
+ };
197
+ }
198
+
199
+ return createBlock(
200
+ innerBlock.name,
201
+ {
202
+ ...innerBlock.attributes,
203
+ ...newAttributes,
204
+ },
205
+ innerBlock.innerBlocks
206
+ );
207
+ } );
208
+
209
+ return createBlock(
210
+ 'core/cover',
211
+ coverAttributes,
212
+ coloredInnerBlocks
213
+ );
214
+ },
215
+ },
62
216
  ],
63
217
  };
64
218