@wordpress/block-library 8.24.1 → 8.25.1-next.79a6196f.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 (509) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/build/audio/edit.js +15 -62
  4. package/build/audio/edit.js.map +1 -1
  5. package/build/audio/edit.native.js +1 -1
  6. package/build/audio/edit.native.js.map +1 -1
  7. package/build/audio/index.js +2 -2
  8. package/build/block/edit.js +157 -19
  9. package/build/block/edit.js.map +1 -1
  10. package/build/block/index.js +3 -2
  11. package/build/block/index.js.map +1 -1
  12. package/build/block/v1/edit.js +116 -0
  13. package/build/block/v1/edit.js.map +1 -0
  14. package/build/block/{edit.native.js → v1/edit.native.js} +2 -2
  15. package/build/block/v1/edit.native.js.map +1 -0
  16. package/build/button/index.js +2 -2
  17. package/build/button/save.js +1 -1
  18. package/build/button/save.js.map +1 -1
  19. package/build/code/edit.native.js +13 -14
  20. package/build/code/edit.native.js.map +1 -1
  21. package/build/code/index.js +2 -2
  22. package/build/code/save.js +6 -2
  23. package/build/code/save.js.map +1 -1
  24. package/build/comments-title/deprecated.js +1 -1
  25. package/build/comments-title/index.js +1 -1
  26. package/build/cover/edit/inspector-controls.js +1 -1
  27. package/build/cover/edit/inspector-controls.js.map +1 -1
  28. package/build/cover/edit.native.js +1 -0
  29. package/build/cover/edit.native.js.map +1 -1
  30. package/build/details/index.js +2 -2
  31. package/build/embed/deprecated.js +2 -2
  32. package/build/embed/embed-preview.native.js +1 -1
  33. package/build/embed/embed-preview.native.js.map +1 -1
  34. package/build/embed/icons.js +1 -1
  35. package/build/embed/icons.js.map +1 -1
  36. package/build/embed/index.js +2 -2
  37. package/build/embed/transforms.js +2 -2
  38. package/build/embed/util.js +6 -6
  39. package/build/embed/util.js.map +1 -1
  40. package/build/file/edit.js +20 -28
  41. package/build/file/edit.js.map +1 -1
  42. package/build/file/edit.native.js +1 -1
  43. package/build/file/edit.native.js.map +1 -1
  44. package/build/file/index.js +4 -4
  45. package/build/file/save.js +4 -1
  46. package/build/file/save.js.map +1 -1
  47. package/build/form-input/deprecated.js +147 -0
  48. package/build/form-input/deprecated.js.map +1 -0
  49. package/build/form-input/edit.js +1 -1
  50. package/build/form-input/edit.js.map +1 -1
  51. package/build/form-input/index.js +4 -2
  52. package/build/form-input/index.js.map +1 -1
  53. package/build/form-input/save.js +7 -9
  54. package/build/form-input/save.js.map +1 -1
  55. package/build/gallery/edit.js +38 -58
  56. package/build/gallery/edit.js.map +1 -1
  57. package/build/gallery/gallery.js +19 -24
  58. package/build/gallery/gallery.js.map +1 -1
  59. package/build/gallery/gallery.native.js +1 -1
  60. package/build/gallery/gallery.native.js.map +1 -1
  61. package/build/gallery/index.js +8 -4
  62. package/build/gallery/index.js.map +1 -1
  63. package/build/gallery/transforms.js +4 -68
  64. package/build/gallery/transforms.js.map +1 -1
  65. package/build/gallery/v1/gallery.native.js +1 -1
  66. package/build/gallery/v1/gallery.native.js.map +1 -1
  67. package/build/group/edit.js +6 -1
  68. package/build/group/edit.js.map +1 -1
  69. package/build/group/index.js +5 -1
  70. package/build/group/index.js.map +1 -1
  71. package/build/heading/index.js +3 -6
  72. package/build/heading/index.js.map +1 -1
  73. package/build/image/deprecated.js +11 -0
  74. package/build/image/deprecated.js.map +1 -1
  75. package/build/image/edit.native.js +4 -1
  76. package/build/image/edit.native.js.map +1 -1
  77. package/build/image/image.js +35 -71
  78. package/build/image/image.js.map +1 -1
  79. package/build/image/index.js +2 -2
  80. package/build/image/save.js +3 -1
  81. package/build/image/save.js.map +1 -1
  82. package/build/image/view.js +7 -1
  83. package/build/image/view.js.map +1 -1
  84. package/build/list/edit.js +10 -15
  85. package/build/list/edit.js.map +1 -1
  86. package/build/list-item/edit.js +17 -2
  87. package/build/list-item/edit.js.map +1 -1
  88. package/build/list-item/hooks/use-enter.js +5 -3
  89. package/build/list-item/hooks/use-enter.js.map +1 -1
  90. package/build/list-item/hooks/use-enter.native.js +4 -3
  91. package/build/list-item/hooks/use-enter.native.js.map +1 -1
  92. package/build/list-item/hooks/use-indent-list-item.js +2 -3
  93. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  94. package/build/list-item/hooks/use-merge.js +1 -1
  95. package/build/list-item/hooks/use-merge.js.map +1 -1
  96. package/build/list-item/hooks/use-outdent-list-item.js +3 -17
  97. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  98. package/build/list-item/hooks/use-space.js +8 -4
  99. package/build/list-item/hooks/use-space.js.map +1 -1
  100. package/build/list-item/index.js +10 -3
  101. package/build/list-item/index.js.map +1 -1
  102. package/build/media-text/media-container.native.js +3 -0
  103. package/build/media-text/media-container.native.js.map +1 -1
  104. package/build/navigation/constants.js +3 -1
  105. package/build/navigation/constants.js.map +1 -1
  106. package/build/navigation/edit/index.js +5 -1
  107. package/build/navigation/edit/index.js.map +1 -1
  108. package/build/navigation/view.js +25 -1
  109. package/build/navigation/view.js.map +1 -1
  110. package/build/page-list/convert-to-links-modal.js +2 -2
  111. package/build/page-list/convert-to-links-modal.js.map +1 -1
  112. package/build/paragraph/edit.js +54 -32
  113. package/build/paragraph/edit.js.map +1 -1
  114. package/build/paragraph/index.js +2 -4
  115. package/build/paragraph/index.js.map +1 -1
  116. package/build/paragraph/transforms.js +2 -4
  117. package/build/paragraph/transforms.js.map +1 -1
  118. package/build/pattern/edit.js +24 -2
  119. package/build/pattern/edit.js.map +1 -1
  120. package/build/pattern/recursion-detector.js +147 -0
  121. package/build/pattern/recursion-detector.js.map +1 -0
  122. package/build/post-featured-image/edit.js +19 -2
  123. package/build/post-featured-image/edit.js.map +1 -1
  124. package/build/post-featured-image/index.js +4 -0
  125. package/build/post-featured-image/index.js.map +1 -1
  126. package/build/post-title/index.js +1 -3
  127. package/build/post-title/index.js.map +1 -1
  128. package/build/preformatted/index.js +2 -3
  129. package/build/preformatted/index.js.map +1 -1
  130. package/build/pullquote/index.js +5 -7
  131. package/build/pullquote/index.js.map +1 -1
  132. package/build/query/edit/inspector-controls/index.js +3 -1
  133. package/build/query/edit/inspector-controls/index.js.map +1 -1
  134. package/build/query/edit/inspector-controls/taxonomy-controls.js +2 -0
  135. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  136. package/build/query-pagination-numbers/index.js +1 -1
  137. package/build/query-title/index.js +1 -3
  138. package/build/query-title/index.js.map +1 -1
  139. package/build/quote/index.js +3 -5
  140. package/build/quote/index.js.map +1 -1
  141. package/build/quote/transforms.js +7 -6
  142. package/build/quote/transforms.js.map +1 -1
  143. package/build/search/edit.js +3 -5
  144. package/build/search/edit.js.map +1 -1
  145. package/build/search/index.js +0 -4
  146. package/build/search/index.js.map +1 -1
  147. package/build/site-logo/edit.js +7 -6
  148. package/build/site-logo/edit.js.map +1 -1
  149. package/build/site-title/index.js +1 -5
  150. package/build/site-title/index.js.map +1 -1
  151. package/build/social-link/icons/gravatar.js +22 -0
  152. package/build/social-link/icons/gravatar.js.map +1 -0
  153. package/build/social-link/icons/index.js +11 -0
  154. package/build/social-link/icons/index.js.map +1 -1
  155. package/build/social-link/variations.js +7 -0
  156. package/build/social-link/variations.js.map +1 -1
  157. package/build/spacer/edit.native.js +2 -2
  158. package/build/spacer/edit.native.js.map +1 -1
  159. package/build/table/edit.js +3 -1
  160. package/build/table/edit.js.map +1 -1
  161. package/build/table/index.js +9 -10
  162. package/build/table/index.js.map +1 -1
  163. package/build/table-of-contents/edit.js +2 -2
  164. package/build/table-of-contents/edit.js.map +1 -1
  165. package/build/table-of-contents/index.js +5 -2
  166. package/build/table-of-contents/index.js.map +1 -1
  167. package/build/tag-cloud/edit.js +5 -9
  168. package/build/tag-cloud/edit.js.map +1 -1
  169. package/build/utils/caption.js +90 -0
  170. package/build/utils/caption.js.map +1 -0
  171. package/build/utils/constants.js +16 -0
  172. package/build/utils/constants.js.map +1 -0
  173. package/build/utils/remove-anchor-tag.js +2 -1
  174. package/build/utils/remove-anchor-tag.js.map +1 -1
  175. package/build/verse/index.js +3 -5
  176. package/build/verse/index.js.map +1 -1
  177. package/build/video/deprecated.js +2 -2
  178. package/build/video/edit.js +16 -57
  179. package/build/video/edit.js.map +1 -1
  180. package/build/video/edit.native.js +1 -1
  181. package/build/video/edit.native.js.map +1 -1
  182. package/build/video/index.js +2 -2
  183. package/build-module/audio/edit.js +19 -66
  184. package/build-module/audio/edit.js.map +1 -1
  185. package/build-module/audio/edit.native.js +2 -2
  186. package/build-module/audio/edit.native.js.map +1 -1
  187. package/build-module/audio/index.js +2 -2
  188. package/build-module/block/edit.js +160 -22
  189. package/build-module/block/edit.js.map +1 -1
  190. package/build-module/block/index.js +3 -2
  191. package/build-module/block/index.js.map +1 -1
  192. package/build-module/block/v1/edit.js +108 -0
  193. package/build-module/block/v1/edit.js.map +1 -0
  194. package/build-module/block/{edit.native.js → v1/edit.native.js} +2 -2
  195. package/build-module/block/v1/edit.native.js.map +1 -0
  196. package/build-module/button/index.js +2 -2
  197. package/build-module/button/save.js +1 -1
  198. package/build-module/button/save.js.map +1 -1
  199. package/build-module/code/edit.native.js +14 -16
  200. package/build-module/code/edit.native.js.map +1 -1
  201. package/build-module/code/index.js +2 -2
  202. package/build-module/code/save.js +6 -2
  203. package/build-module/code/save.js.map +1 -1
  204. package/build-module/comments-title/deprecated.js +1 -1
  205. package/build-module/comments-title/index.js +1 -1
  206. package/build-module/cover/edit/inspector-controls.js +1 -1
  207. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  208. package/build-module/cover/edit.native.js +1 -0
  209. package/build-module/cover/edit.native.js.map +1 -1
  210. package/build-module/details/index.js +2 -2
  211. package/build-module/embed/deprecated.js +2 -2
  212. package/build-module/embed/embed-preview.native.js +2 -2
  213. package/build-module/embed/embed-preview.native.js.map +1 -1
  214. package/build-module/embed/icons.js +1 -1
  215. package/build-module/embed/icons.js.map +1 -1
  216. package/build-module/embed/index.js +2 -2
  217. package/build-module/embed/transforms.js +2 -2
  218. package/build-module/embed/util.js +6 -6
  219. package/build-module/embed/util.js.map +1 -1
  220. package/build-module/file/edit.js +20 -28
  221. package/build-module/file/edit.js.map +1 -1
  222. package/build-module/file/edit.native.js +1 -1
  223. package/build-module/file/edit.native.js.map +1 -1
  224. package/build-module/file/index.js +4 -4
  225. package/build-module/file/save.js +4 -1
  226. package/build-module/file/save.js.map +1 -1
  227. package/build-module/form-input/deprecated.js +138 -0
  228. package/build-module/form-input/deprecated.js.map +1 -0
  229. package/build-module/form-input/edit.js +1 -1
  230. package/build-module/form-input/edit.js.map +1 -1
  231. package/build-module/form-input/index.js +4 -2
  232. package/build-module/form-input/index.js.map +1 -1
  233. package/build-module/form-input/save.js +8 -10
  234. package/build-module/form-input/save.js.map +1 -1
  235. package/build-module/gallery/edit.js +41 -61
  236. package/build-module/gallery/edit.js.map +1 -1
  237. package/build-module/gallery/gallery.js +18 -21
  238. package/build-module/gallery/gallery.js.map +1 -1
  239. package/build-module/gallery/gallery.native.js +2 -2
  240. package/build-module/gallery/gallery.native.js.map +1 -1
  241. package/build-module/gallery/index.js +8 -4
  242. package/build-module/gallery/index.js.map +1 -1
  243. package/build-module/gallery/transforms.js +4 -68
  244. package/build-module/gallery/transforms.js.map +1 -1
  245. package/build-module/gallery/v1/gallery.native.js +2 -2
  246. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  247. package/build-module/group/edit.js +6 -1
  248. package/build-module/group/edit.js.map +1 -1
  249. package/build-module/group/index.js +5 -1
  250. package/build-module/group/index.js.map +1 -1
  251. package/build-module/heading/index.js +3 -6
  252. package/build-module/heading/index.js.map +1 -1
  253. package/build-module/image/deprecated.js +11 -0
  254. package/build-module/image/deprecated.js.map +1 -1
  255. package/build-module/image/edit.native.js +5 -2
  256. package/build-module/image/edit.native.js.map +1 -1
  257. package/build-module/image/image.js +35 -71
  258. package/build-module/image/image.js.map +1 -1
  259. package/build-module/image/index.js +2 -2
  260. package/build-module/image/save.js +3 -1
  261. package/build-module/image/save.js.map +1 -1
  262. package/build-module/image/view.js +7 -1
  263. package/build-module/image/view.js.map +1 -1
  264. package/build-module/list/edit.js +10 -15
  265. package/build-module/list/edit.js.map +1 -1
  266. package/build-module/list-item/edit.js +18 -3
  267. package/build-module/list-item/edit.js.map +1 -1
  268. package/build-module/list-item/hooks/use-enter.js +5 -3
  269. package/build-module/list-item/hooks/use-enter.js.map +1 -1
  270. package/build-module/list-item/hooks/use-enter.native.js +4 -3
  271. package/build-module/list-item/hooks/use-enter.native.js.map +1 -1
  272. package/build-module/list-item/hooks/use-indent-list-item.js +2 -3
  273. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  274. package/build-module/list-item/hooks/use-merge.js +1 -1
  275. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  276. package/build-module/list-item/hooks/use-outdent-list-item.js +3 -17
  277. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  278. package/build-module/list-item/hooks/use-space.js +8 -4
  279. package/build-module/list-item/hooks/use-space.js.map +1 -1
  280. package/build-module/list-item/index.js +10 -3
  281. package/build-module/list-item/index.js.map +1 -1
  282. package/build-module/media-text/media-container.native.js +3 -0
  283. package/build-module/media-text/media-container.native.js.map +1 -1
  284. package/build-module/navigation/constants.js +1 -0
  285. package/build-module/navigation/constants.js.map +1 -1
  286. package/build-module/navigation/edit/index.js +7 -3
  287. package/build-module/navigation/edit/index.js.map +1 -1
  288. package/build-module/navigation/view.js +25 -1
  289. package/build-module/navigation/view.js.map +1 -1
  290. package/build-module/page-list/convert-to-links-modal.js +2 -2
  291. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  292. package/build-module/paragraph/edit.js +54 -32
  293. package/build-module/paragraph/edit.js.map +1 -1
  294. package/build-module/paragraph/index.js +2 -4
  295. package/build-module/paragraph/index.js.map +1 -1
  296. package/build-module/paragraph/transforms.js +2 -4
  297. package/build-module/paragraph/transforms.js.map +1 -1
  298. package/build-module/pattern/edit.js +26 -4
  299. package/build-module/pattern/edit.js.map +1 -1
  300. package/build-module/pattern/recursion-detector.js +139 -0
  301. package/build-module/pattern/recursion-detector.js.map +1 -0
  302. package/build-module/post-featured-image/edit.js +19 -2
  303. package/build-module/post-featured-image/edit.js.map +1 -1
  304. package/build-module/post-featured-image/index.js +4 -0
  305. package/build-module/post-featured-image/index.js.map +1 -1
  306. package/build-module/post-title/index.js +1 -3
  307. package/build-module/post-title/index.js.map +1 -1
  308. package/build-module/preformatted/index.js +2 -3
  309. package/build-module/preformatted/index.js.map +1 -1
  310. package/build-module/pullquote/index.js +5 -7
  311. package/build-module/pullquote/index.js.map +1 -1
  312. package/build-module/query/edit/inspector-controls/index.js +3 -1
  313. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  314. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +2 -0
  315. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  316. package/build-module/query-pagination-numbers/index.js +1 -1
  317. package/build-module/query-title/index.js +1 -3
  318. package/build-module/query-title/index.js.map +1 -1
  319. package/build-module/quote/index.js +3 -5
  320. package/build-module/quote/index.js.map +1 -1
  321. package/build-module/quote/transforms.js +7 -6
  322. package/build-module/quote/transforms.js.map +1 -1
  323. package/build-module/search/edit.js +3 -5
  324. package/build-module/search/edit.js.map +1 -1
  325. package/build-module/search/index.js +0 -4
  326. package/build-module/search/index.js.map +1 -1
  327. package/build-module/site-logo/edit.js +7 -6
  328. package/build-module/site-logo/edit.js.map +1 -1
  329. package/build-module/site-title/index.js +1 -5
  330. package/build-module/site-title/index.js.map +1 -1
  331. package/build-module/social-link/icons/gravatar.js +14 -0
  332. package/build-module/social-link/icons/gravatar.js.map +1 -0
  333. package/build-module/social-link/icons/index.js +1 -0
  334. package/build-module/social-link/icons/index.js.map +1 -1
  335. package/build-module/social-link/variations.js +8 -1
  336. package/build-module/social-link/variations.js.map +1 -1
  337. package/build-module/spacer/edit.native.js +2 -2
  338. package/build-module/spacer/edit.native.js.map +1 -1
  339. package/build-module/table/edit.js +3 -1
  340. package/build-module/table/edit.js.map +1 -1
  341. package/build-module/table/index.js +9 -10
  342. package/build-module/table/index.js.map +1 -1
  343. package/build-module/table-of-contents/edit.js +1 -1
  344. package/build-module/table-of-contents/edit.js.map +1 -1
  345. package/build-module/table-of-contents/index.js +5 -1
  346. package/build-module/table-of-contents/index.js.map +1 -1
  347. package/build-module/tag-cloud/edit.js +6 -10
  348. package/build-module/tag-cloud/edit.js.map +1 -1
  349. package/build-module/utils/caption.js +82 -0
  350. package/build-module/utils/caption.js.map +1 -0
  351. package/build-module/utils/constants.js +9 -0
  352. package/build-module/utils/constants.js.map +1 -0
  353. package/build-module/utils/remove-anchor-tag.js +2 -1
  354. package/build-module/utils/remove-anchor-tag.js.map +1 -1
  355. package/build-module/verse/index.js +3 -5
  356. package/build-module/verse/index.js.map +1 -1
  357. package/build-module/video/deprecated.js +2 -2
  358. package/build-module/video/edit.js +21 -62
  359. package/build-module/video/edit.js.map +1 -1
  360. package/build-module/video/edit.native.js +2 -2
  361. package/build-module/video/edit.native.js.map +1 -1
  362. package/build-module/video/index.js +2 -2
  363. package/build-style/button/editor-rtl.css +0 -37
  364. package/build-style/button/editor.css +0 -37
  365. package/build-style/button/style-rtl.css +6 -6
  366. package/build-style/button/style.css +6 -6
  367. package/build-style/editor-rtl.css +3 -55
  368. package/build-style/editor.css +3 -55
  369. package/build-style/navigation/editor-rtl.css +2 -4
  370. package/build-style/navigation/editor.css +2 -4
  371. package/build-style/navigation/style-rtl.css +14 -18
  372. package/build-style/navigation/style.css +14 -18
  373. package/build-style/search/style-rtl.css +26 -27
  374. package/build-style/search/style.css +26 -27
  375. package/build-style/social-links/style-rtl.css +14 -2
  376. package/build-style/social-links/style.css +14 -2
  377. package/build-style/style-rtl.css +60 -53
  378. package/build-style/style.css +60 -53
  379. package/build-style/table/editor-rtl.css +1 -14
  380. package/build-style/table/editor.css +1 -14
  381. package/package.json +32 -32
  382. package/src/audio/block.json +2 -2
  383. package/src/audio/edit.js +29 -92
  384. package/src/audio/edit.native.js +2 -1
  385. package/src/audio/test/__snapshots__/edit.native.js.snap +12 -0
  386. package/src/audio/test/edit.native.js +29 -0
  387. package/src/block/edit.js +218 -37
  388. package/src/block/index.js +3 -2
  389. package/src/block/index.php +48 -0
  390. package/src/block/v1/edit.js +163 -0
  391. package/src/block/{edit.native.js → v1/edit.native.js} +2 -2
  392. package/src/button/block.json +2 -2
  393. package/src/button/editor.scss +0 -43
  394. package/src/button/save.js +1 -1
  395. package/src/button/style.scss +6 -6
  396. package/src/buttons/test/__snapshots__/edit.native.js.snap +6 -0
  397. package/src/buttons/test/edit.native.js +49 -0
  398. package/src/code/block.json +2 -2
  399. package/src/code/edit.native.js +11 -13
  400. package/src/code/save.js +4 -1
  401. package/src/code/test/edit.native.js +2 -2
  402. package/src/comments-title/block.json +1 -1
  403. package/src/cover/edit/inspector-controls.js +1 -1
  404. package/src/cover/edit.native.js +1 -0
  405. package/src/cover/test/edit.native.js +7 -1
  406. package/src/details/block.json +2 -2
  407. package/src/embed/block.json +2 -2
  408. package/src/embed/embed-preview.native.js +2 -1
  409. package/src/embed/icons.js +1 -1
  410. package/src/embed/util.js +2 -2
  411. package/src/file/block.json +4 -4
  412. package/src/file/edit.js +18 -25
  413. package/src/file/edit.native.js +1 -1
  414. package/src/file/save.js +5 -1
  415. package/src/form-input/block.json +2 -2
  416. package/src/form-input/deprecated.js +142 -0
  417. package/src/form-input/edit.js +1 -1
  418. package/src/form-input/index.js +2 -0
  419. package/src/form-input/save.js +27 -24
  420. package/src/gallery/block.json +8 -4
  421. package/src/gallery/edit.js +70 -98
  422. package/src/gallery/gallery.js +22 -36
  423. package/src/gallery/gallery.native.js +6 -2
  424. package/src/gallery/index.php +15 -0
  425. package/src/gallery/transforms.js +2 -55
  426. package/src/gallery/v1/gallery.native.js +2 -1
  427. package/src/group/block.json +5 -1
  428. package/src/group/edit.js +4 -1
  429. package/src/heading/block.json +3 -6
  430. package/src/image/block.json +2 -2
  431. package/src/image/deprecated.js +8 -0
  432. package/src/image/edit.native.js +5 -3
  433. package/src/image/image.js +77 -127
  434. package/src/image/index.php +1 -6
  435. package/src/image/save.js +3 -1
  436. package/src/image/view.js +5 -2
  437. package/src/list/edit.js +27 -35
  438. package/src/list-item/block.json +10 -3
  439. package/src/list-item/edit.js +18 -2
  440. package/src/list-item/hooks/use-enter.js +63 -62
  441. package/src/list-item/hooks/use-enter.native.js +9 -5
  442. package/src/list-item/hooks/use-indent-list-item.js +43 -53
  443. package/src/list-item/hooks/use-merge.js +1 -1
  444. package/src/list-item/hooks/use-outdent-list-item.js +50 -69
  445. package/src/list-item/hooks/use-space.js +7 -4
  446. package/src/media-text/media-container.native.js +3 -1
  447. package/src/navigation/constants.js +2 -0
  448. package/src/navigation/edit/index.js +18 -3
  449. package/src/navigation/editor.scss +1 -1
  450. package/src/navigation/index.php +1 -1
  451. package/src/navigation/style.scss +18 -16
  452. package/src/navigation/view.js +29 -3
  453. package/src/navigation-link/test/__snapshots__/hooks.js.snap +6 -3
  454. package/src/page-list/convert-to-links-modal.js +2 -2
  455. package/src/paragraph/block.json +2 -4
  456. package/src/paragraph/edit.js +53 -40
  457. package/src/paragraph/test/__snapshots__/edit.native.js.snap +12 -0
  458. package/src/paragraph/test/edit.native.js +114 -0
  459. package/src/pattern/edit.js +35 -3
  460. package/src/pattern/index.php +16 -0
  461. package/src/pattern/recursion-detector.js +145 -0
  462. package/src/pattern/test/index.js +74 -0
  463. package/src/post-featured-image/block.json +4 -0
  464. package/src/post-featured-image/edit.js +32 -1
  465. package/src/post-featured-image/index.php +31 -0
  466. package/src/post-title/block.json +1 -3
  467. package/src/preformatted/block.json +2 -3
  468. package/src/pullquote/block.json +5 -7
  469. package/src/query/edit/inspector-controls/index.js +2 -0
  470. package/src/query/edit/inspector-controls/taxonomy-controls.js +2 -0
  471. package/src/query-pagination-numbers/block.json +1 -1
  472. package/src/query-title/block.json +1 -3
  473. package/src/quote/block.json +3 -5
  474. package/src/quote/transforms.js +12 -11
  475. package/src/search/block.json +0 -4
  476. package/src/search/edit.js +2 -8
  477. package/src/search/index.php +3 -7
  478. package/src/search/style.scss +27 -29
  479. package/src/site-logo/edit.js +3 -4
  480. package/src/site-title/block.json +1 -5
  481. package/src/social-link/icons/gravatar.js +10 -0
  482. package/src/social-link/icons/index.js +1 -0
  483. package/src/social-link/index.php +5 -1
  484. package/src/social-link/socials-with-bg.scss +5 -0
  485. package/src/social-link/socials-without-bg.scss +4 -0
  486. package/src/social-link/variations.js +7 -0
  487. package/src/social-links/style.scss +14 -8
  488. package/src/spacer/edit.native.js +4 -2
  489. package/src/table/block.json +9 -10
  490. package/src/table/edit.js +3 -1
  491. package/src/table/editor.scss +1 -17
  492. package/src/table-of-contents/edit.js +1 -1
  493. package/src/table-of-contents/index.js +5 -1
  494. package/src/tag-cloud/edit.js +7 -7
  495. package/src/template-part/index.php +6 -0
  496. package/src/utils/caption.js +108 -0
  497. package/src/utils/constants.js +8 -0
  498. package/src/utils/remove-anchor-tag.js +2 -1
  499. package/src/verse/block.json +3 -5
  500. package/src/video/block.json +2 -2
  501. package/src/video/edit.js +40 -100
  502. package/src/video/edit.native.js +2 -1
  503. package/build/block/edit.native.js.map +0 -1
  504. package/build/table-of-contents/icon.js +0 -22
  505. package/build/table-of-contents/icon.js.map +0 -1
  506. package/build-module/block/edit.native.js.map +0 -1
  507. package/build-module/table-of-contents/icon.js +0 -15
  508. package/build-module/table-of-contents/icon.js.map +0 -1
  509. package/src/table-of-contents/icon.js +0 -18
@@ -0,0 +1,163 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import classnames from 'classnames';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import {
10
+ useEntityBlockEditor,
11
+ useEntityProp,
12
+ useEntityRecord,
13
+ } from '@wordpress/core-data';
14
+ import {
15
+ Placeholder,
16
+ Spinner,
17
+ TextControl,
18
+ PanelBody,
19
+ } from '@wordpress/components';
20
+ import { __ } from '@wordpress/i18n';
21
+ import {
22
+ useInnerBlocksProps,
23
+ __experimentalRecursionProvider as RecursionProvider,
24
+ __experimentalUseHasRecursion as useHasRecursion,
25
+ InnerBlocks,
26
+ InspectorControls,
27
+ useBlockProps,
28
+ Warning,
29
+ privateApis as blockEditorPrivateApis,
30
+ } from '@wordpress/block-editor';
31
+ import { useRef, useMemo } from '@wordpress/element';
32
+
33
+ /**
34
+ * Internal dependencies
35
+ */
36
+ import { unlock } from '../../lock-unlock';
37
+
38
+ const { useLayoutClasses } = unlock( blockEditorPrivateApis );
39
+ const fullAlignments = [ 'full', 'wide', 'left', 'right' ];
40
+
41
+ const useInferredLayout = ( blocks, parentLayout ) => {
42
+ const initialInferredAlignmentRef = useRef();
43
+
44
+ return useMemo( () => {
45
+ // Exit early if the pattern's blocks haven't loaded yet.
46
+ if ( ! blocks?.length ) {
47
+ return {};
48
+ }
49
+
50
+ let alignment = initialInferredAlignmentRef.current;
51
+
52
+ // Only track the initial alignment so that temporarily removed
53
+ // alignments can be reapplied.
54
+ if ( alignment === undefined ) {
55
+ const isConstrained = parentLayout?.type === 'constrained';
56
+ const hasFullAlignment = blocks.some( ( block ) =>
57
+ fullAlignments.includes( block.attributes.align )
58
+ );
59
+
60
+ alignment = isConstrained && hasFullAlignment ? 'full' : null;
61
+ initialInferredAlignmentRef.current = alignment;
62
+ }
63
+
64
+ const layout = alignment ? parentLayout : undefined;
65
+
66
+ return { alignment, layout };
67
+ }, [ blocks, parentLayout ] );
68
+ };
69
+
70
+ export default function ReusableBlockEdit( {
71
+ name,
72
+ attributes: { ref },
73
+ __unstableParentLayout: parentLayout,
74
+ } ) {
75
+ const hasAlreadyRendered = useHasRecursion( ref );
76
+ const { record, hasResolved } = useEntityRecord(
77
+ 'postType',
78
+ 'wp_block',
79
+ ref
80
+ );
81
+ const isMissing = hasResolved && ! record;
82
+
83
+ const [ blocks, onInput, onChange ] = useEntityBlockEditor(
84
+ 'postType',
85
+ 'wp_block',
86
+ { id: ref }
87
+ );
88
+
89
+ const [ title, setTitle ] = useEntityProp(
90
+ 'postType',
91
+ 'wp_block',
92
+ 'title',
93
+ ref
94
+ );
95
+
96
+ const { alignment, layout } = useInferredLayout( blocks, parentLayout );
97
+ const layoutClasses = useLayoutClasses( { layout }, name );
98
+
99
+ const blockProps = useBlockProps( {
100
+ className: classnames(
101
+ 'block-library-block__reusable-block-container',
102
+ layout && layoutClasses,
103
+ { [ `align${ alignment }` ]: alignment }
104
+ ),
105
+ } );
106
+
107
+ const innerBlocksProps = useInnerBlocksProps( blockProps, {
108
+ value: blocks,
109
+ layout,
110
+ onInput,
111
+ onChange,
112
+ renderAppender: blocks?.length
113
+ ? undefined
114
+ : InnerBlocks.ButtonBlockAppender,
115
+ } );
116
+
117
+ let children = null;
118
+
119
+ if ( hasAlreadyRendered ) {
120
+ children = (
121
+ <Warning>
122
+ { __( 'Block cannot be rendered inside itself.' ) }
123
+ </Warning>
124
+ );
125
+ }
126
+
127
+ if ( isMissing ) {
128
+ children = (
129
+ <Warning>
130
+ { __( 'Block has been deleted or is unavailable.' ) }
131
+ </Warning>
132
+ );
133
+ }
134
+
135
+ if ( ! hasResolved ) {
136
+ children = (
137
+ <Placeholder>
138
+ <Spinner />
139
+ </Placeholder>
140
+ );
141
+ }
142
+
143
+ return (
144
+ <RecursionProvider uniqueId={ ref }>
145
+ <InspectorControls>
146
+ <PanelBody>
147
+ <TextControl
148
+ label={ __( 'Name' ) }
149
+ value={ title }
150
+ onChange={ setTitle }
151
+ __nextHasNoMarginBottom
152
+ __next40pxDefaultSize
153
+ />
154
+ </PanelBody>
155
+ </InspectorControls>
156
+ { children === null ? (
157
+ <div { ...innerBlocksProps } />
158
+ ) : (
159
+ <div { ...blockProps }>{ children }</div>
160
+ ) }
161
+ </RecursionProvider>
162
+ );
163
+ }
@@ -42,8 +42,8 @@ import { store as noticesStore } from '@wordpress/notices';
42
42
  /**
43
43
  * Internal dependencies
44
44
  */
45
- import styles from './editor.scss';
46
- import EditTitle from './edit-title';
45
+ import styles from '../editor.scss';
46
+ import EditTitle from '../edit-title';
47
47
 
48
48
  export default function ReusableBlockEdit( {
49
49
  attributes: { ref },
@@ -36,8 +36,8 @@
36
36
  "__experimentalRole": "content"
37
37
  },
38
38
  "text": {
39
- "type": "string",
40
- "source": "html",
39
+ "type": "rich-text",
40
+ "source": "rich-text",
41
41
  "selector": "a,button",
42
42
  "__experimentalRole": "content"
43
43
  },
@@ -28,49 +28,6 @@
28
28
  }
29
29
  }
30
30
 
31
- .wp-block-button__inline-link {
32
- color: $gray-700;
33
- height: 0;
34
- overflow: hidden;
35
- max-width: 290px;
36
-
37
- &-input__suggestions {
38
- max-width: 290px;
39
- }
40
-
41
- @include break-medium() {
42
- max-width: 260px;
43
-
44
- &-input__suggestions {
45
- max-width: 260px;
46
- }
47
-
48
- }
49
- @include break-large() {
50
- max-width: 290px;
51
-
52
- &-input__suggestions {
53
- max-width: 290px;
54
- }
55
-
56
- }
57
-
58
- .is-selected & {
59
- height: auto;
60
- overflow: visible;
61
- }
62
- }
63
-
64
- .wp-button-label__width {
65
- .components-button-group {
66
- display: block;
67
- }
68
-
69
- .components-base-control__field {
70
- margin-bottom: 12px;
71
- }
72
- }
73
-
74
31
  // Display "table" is used because the button container should only wrap the content and not takes the full width.
75
32
  div[data-type="core/button"] {
76
33
  display: table;
@@ -30,7 +30,7 @@ export default function save( { attributes, className } ) {
30
30
  width,
31
31
  } = attributes;
32
32
 
33
- if ( ! text ) {
33
+ if ( RichText.isEmpty( text ) ) {
34
34
  return null;
35
35
  }
36
36
 
@@ -98,19 +98,19 @@ $blocks-block__margin: 0.5em;
98
98
  border-radius: 0 !important;
99
99
  }
100
100
 
101
- .wp-block-button.is-style-outline > .wp-block-button__link,
102
- .wp-block-button .wp-block-button__link.is-style-outline {
101
+ .wp-block-button:where(.is-style-outline) > .wp-block-button__link,
102
+ .wp-block-button .wp-block-button__link:where(.is-style-outline) {
103
103
  border: 2px solid currentColor;
104
104
  padding: 0.667em 1.333em;
105
105
  }
106
106
 
107
- .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color),
108
- .wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color) {
107
+ .wp-block-button:where(.is-style-outline) > .wp-block-button__link:not(.has-text-color),
108
+ .wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-text-color) {
109
109
  color: currentColor;
110
110
  }
111
111
 
112
- .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background),
113
- .wp-block-button .wp-block-button__link.is-style-outline:not(.has-background) {
112
+ .wp-block-button:where(.is-style-outline) > .wp-block-button__link:not(.has-background),
113
+ .wp-block-button .wp-block-button__link:where(.is-style-outline):not(.has-background) {
114
114
  background-color: transparent;
115
115
  // background-image is required to overwrite a gradient background
116
116
  background-image: none;
@@ -6,6 +6,12 @@ exports[`Buttons block color customization sets a background color 1`] = `
6
6
  <!-- /wp:buttons -->"
7
7
  `;
8
8
 
9
+ exports[`Buttons block color customization sets a custom gradient background color 1`] = `
10
+ "<!-- wp:buttons -->
11
+ <div class="wp-block-buttons"><!-- wp:button {"style":{"color":{"gradient":"linear-gradient(200deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)"}}} /--></div>
12
+ <!-- /wp:buttons -->"
13
+ `;
14
+
9
15
  exports[`Buttons block color customization sets a gradient background color 1`] = `
10
16
  "<!-- wp:buttons -->
11
17
  <div class="wp-block-buttons"><!-- wp:button {"gradient":"light-green-cyan-to-vivid-green-cyan"} /--></div>
@@ -10,6 +10,7 @@ import {
10
10
  initializeEditor,
11
11
  triggerBlockListLayout,
12
12
  typeInRichText,
13
+ openBlockSettings,
13
14
  waitFor,
14
15
  } from 'test/helpers';
15
16
 
@@ -391,5 +392,53 @@ describe( 'Buttons block', () => {
391
392
  // Assert
392
393
  expect( getEditorHtml() ).toMatchSnapshot();
393
394
  } );
395
+
396
+ it( 'sets a custom gradient background color', async () => {
397
+ // Arrange
398
+ const screen = await initializeEditor();
399
+ await addBlock( screen, 'Buttons' );
400
+
401
+ // Act
402
+ const buttonsBlock = getBlock( screen, 'Buttons' );
403
+ fireEvent.press( buttonsBlock );
404
+
405
+ // Trigger onLayout for the list
406
+ await triggerBlockListLayout( buttonsBlock );
407
+
408
+ const buttonBlock = await getBlock( screen, 'Button' );
409
+ fireEvent.press( buttonBlock );
410
+
411
+ // Open Block Settings.
412
+ await openBlockSettings( screen );
413
+
414
+ // Open Text color settings
415
+ fireEvent.press( screen.getByLabelText( 'Background, Default' ) );
416
+
417
+ // Tap on the gradient segment
418
+ fireEvent.press( screen.getByLabelText( 'Gradient' ) );
419
+
420
+ // Tap one gradient color
421
+ fireEvent.press(
422
+ screen.getByLabelText( 'Light green cyan to vivid green cyan' )
423
+ );
424
+
425
+ // Tap on Customize Gradient
426
+ fireEvent.press( screen.getByLabelText( /Customize Gradient/ ) );
427
+
428
+ // Change the current angle
429
+ fireEvent.press( screen.getByText( '135', { hidden: true } ) );
430
+ const angleTextInput = screen.getByDisplayValue( '135', {
431
+ hidden: true,
432
+ } );
433
+ fireEvent.changeText( angleTextInput, '200' );
434
+
435
+ // Go back to the settings list.
436
+ fireEvent.press( await screen.findByLabelText( 'Go back' ) );
437
+
438
+ // Assert
439
+ const customButton = await screen.findByText( 'CUSTOM' );
440
+ expect( customButton ).toBeVisible();
441
+ expect( getEditorHtml() ).toMatchSnapshot();
442
+ } );
394
443
  } );
395
444
  } );
@@ -8,8 +8,8 @@
8
8
  "textdomain": "default",
9
9
  "attributes": {
10
10
  "content": {
11
- "type": "string",
12
- "source": "html",
11
+ "type": "rich-text",
12
+ "source": "rich-text",
13
13
  "selector": "code",
14
14
  "__unstablePreserveWhiteSpace": true
15
15
  }
@@ -6,7 +6,7 @@ import { View } from 'react-native';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { PlainText } from '@wordpress/block-editor';
9
+ import { RichText } from '@wordpress/block-editor';
10
10
  import { __ } from '@wordpress/i18n';
11
11
  import { usePreferredColorSchemeStyle } from '@wordpress/compose';
12
12
  import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
@@ -20,14 +20,11 @@ import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
20
20
  */
21
21
  import styles from './theme.scss';
22
22
 
23
- // Note: styling is applied directly to the (nested) PlainText component. Web-side components
24
- // apply it to the container 'div' but we don't have a proper proposal for cascading styling yet.
25
23
  export function CodeEdit( props ) {
26
24
  const {
27
25
  attributes,
28
26
  setAttributes,
29
- onFocus,
30
- onBlur,
27
+ onRemove,
31
28
  style,
32
29
  insertBlocksAfter,
33
30
  mergeBlocks,
@@ -37,30 +34,31 @@ export function CodeEdit( props ) {
37
34
  styles.blockCode,
38
35
  styles.blockCodeDark
39
36
  ),
40
- ...( style?.fontSize && { fontSize: style.fontSize } ),
41
37
  };
42
38
 
39
+ const textStyle = style?.fontSize ? { fontSize: style.fontSize } : {};
40
+
43
41
  const placeholderStyle = usePreferredColorSchemeStyle(
44
42
  styles.placeholder,
45
43
  styles.placeholderDark
46
44
  );
47
45
 
48
46
  return (
49
- <View>
50
- <PlainText
47
+ <View style={ codeStyle }>
48
+ <RichText
49
+ tagName="pre"
51
50
  value={ attributes.content }
52
51
  identifier="content"
53
- style={ codeStyle }
54
- multiline={ true }
52
+ style={ textStyle }
55
53
  underlineColorAndroid="transparent"
56
54
  onChange={ ( content ) => setAttributes( { content } ) }
57
55
  onMerge={ mergeBlocks }
56
+ onRemove={ onRemove }
58
57
  placeholder={ __( 'Write code…' ) }
59
58
  aria-label={ __( 'Code' ) }
60
- isSelected={ props.isSelected }
61
- onFocus={ onFocus }
62
- onBlur={ onBlur }
63
59
  placeholderTextColor={ placeholderStyle.color }
60
+ preserveWhiteSpace
61
+ __unstablePastePlainText
64
62
  __unstableOnSplitAtDoubleLineEnd={ () =>
65
63
  insertBlocksAfter( createBlock( getDefaultBlockName() ) )
66
64
  }
package/src/code/save.js CHANGED
@@ -13,7 +13,10 @@ export default function save( { attributes } ) {
13
13
  <pre { ...useBlockProps.save() }>
14
14
  <RichText.Content
15
15
  tagName="code"
16
- value={ escape( attributes.content ) }
16
+ // To do: `escape` encodes characters in shortcodes and URLs to
17
+ // prevent embedding in PHP. Ideally checks for the code block,
18
+ // or pre/code tags, should be made on the PHP side?
19
+ value={ escape( attributes.content.toString() ) }
17
20
  />
18
21
  </pre>
19
22
  );
@@ -49,7 +49,7 @@ describe( 'Code', () => {
49
49
  const screen = await initializeEditor( {
50
50
  initialHtml,
51
51
  } );
52
- const { getByDisplayValue } = screen;
52
+ const { findByPlaceholderText } = screen;
53
53
 
54
54
  // Get block
55
55
  const codeBlock = await getBlock( screen, 'Code' );
@@ -57,7 +57,7 @@ describe( 'Code', () => {
57
57
  fireEvent.press( codeBlock );
58
58
 
59
59
  // Get initial text
60
- const codeBlockText = getByDisplayValue( 'Sample text' );
60
+ const codeBlockText = await findByPlaceholderText( 'Write code…' );
61
61
  expect( codeBlockText ).toBeVisible();
62
62
 
63
63
  expect( getEditorHtml() ).toMatchSnapshot();
@@ -5,7 +5,7 @@
5
5
  "title": "Comments Title",
6
6
  "category": "theme",
7
7
  "ancestor": [ "core/comments" ],
8
- "description": "Displays a title with the number of comments",
8
+ "description": "Displays a title with the number of comments.",
9
9
  "textdomain": "default",
10
10
  "usesContext": [ "postId", "postType" ],
11
11
  "attributes": {
@@ -220,7 +220,7 @@ export default function CoverInspectorControls( {
220
220
  <PanelRow>
221
221
  <Button
222
222
  variant="secondary"
223
- isSmall
223
+ size="small"
224
224
  className="block-library-cover__reset-button"
225
225
  onClick={ onClearMedia }
226
226
  >
@@ -538,6 +538,7 @@ const Cover = ( {
538
538
  <BottomSheetConsumer>
539
539
  { ( { shouldEnableBottomSheetScroll } ) => (
540
540
  <ColorPalette
541
+ enableCustomColor={ true }
541
542
  customColorIndicatorStyles={
542
543
  styles.paletteColorIndicator
543
544
  }
@@ -80,7 +80,13 @@ const MEDIA_OPTIONS = [
80
80
  // Simplified tree to render Cover edit within slot.
81
81
  const CoverEdit = ( props ) => (
82
82
  <SlotFillProvider>
83
- <BlockEdit isSelected name={ cover.name } clientId={ 0 } { ...props } />
83
+ <BlockEdit
84
+ isSelected
85
+ mayDisplayControls
86
+ name={ cover.name }
87
+ clientId={ 0 }
88
+ { ...props }
89
+ />
84
90
  <BottomSheetSettings isVisible />
85
91
  </SlotFillProvider>
86
92
  );
@@ -13,8 +13,8 @@
13
13
  "default": false
14
14
  },
15
15
  "summary": {
16
- "type": "string",
17
- "source": "html",
16
+ "type": "rich-text",
17
+ "source": "rich-text",
18
18
  "selector": "summary"
19
19
  }
20
20
  },
@@ -12,8 +12,8 @@
12
12
  "__experimentalRole": "content"
13
13
  },
14
14
  "caption": {
15
- "type": "string",
16
- "source": "html",
15
+ "type": "rich-text",
16
+ "source": "rich-text",
17
17
  "selector": "figcaption",
18
18
  "__experimentalRole": "content"
19
19
  },
@@ -10,6 +10,7 @@ import classnames from 'classnames/dedupe';
10
10
  import { View } from '@wordpress/primitives';
11
11
  import {
12
12
  BlockCaption,
13
+ RichText,
13
14
  store as blockEditorStore,
14
15
  } from '@wordpress/block-editor';
15
16
  import { __, sprintf } from '@wordpress/i18n';
@@ -51,7 +52,7 @@ const EmbedPreview = ( {
51
52
  styles[ `embed-preview__sandbox--align-${ align }` ];
52
53
 
53
54
  function accessibilityLabelCreator( caption ) {
54
- return ! caption
55
+ return RichText.isEmpty( caption )
55
56
  ? /* translators: accessibility text. Empty Embed caption. */
56
57
  __( 'Embed caption. Empty' )
57
58
  : sprintf(
@@ -137,7 +137,7 @@ export const embedAnimotoIcon = (
137
137
  export const embedDailymotionIcon = (
138
138
  <SVG viewBox="0 0 24 24">
139
139
  <Path
140
- d="m12.1479 18.5957c-2.4949 0-4.28131-1.7558-4.28131-4.0658 0-2.2176 1.78641-4.0965 4.09651-4.0965 2.2793 0 4.0349 1.7864 4.0349 4.1581 0 2.2794-1.7556 4.0042-3.8501 4.0042zm8.3521-18.5957-4.5329 1v7c-1.1088-1.41691-2.8028-1.8787-4.8049-1.8787-2.09443 0-3.97329.76993-5.5133 2.27917-1.72483 1.66323-2.6489 3.78863-2.6489 6.16033 0 2.5873.98562 4.8049 2.89526 6.499 1.44763 1.2936 3.17251 1.9402 5.17454 1.9402 1.9713 0 3.4498-.5236 4.8973-1.9402v1.9402h4.5329c0-7.6359 0-15.3641 0-23z"
140
+ d="M11.903 16.568c-1.82 0-3.124-1.281-3.124-2.967a2.987 2.987 0 0 1 2.989-2.989c1.663 0 2.944 1.304 2.944 3.034 0 1.663-1.281 2.922-2.81 2.922ZM17.997 3l-3.308.73v5.107c-.809-1.034-2.045-1.37-3.505-1.37-1.529 0-2.9.561-4.023 1.662-1.259 1.214-1.933 2.764-1.933 4.495 0 1.888.72 3.506 2.113 4.742 1.056.944 2.314 1.415 3.775 1.415 1.438 0 2.517-.382 3.573-1.415v1.415h3.308V3Z"
141
141
  fill="#333436"
142
142
  />
143
143
  </SVG>
package/src/embed/util.js CHANGED
@@ -7,7 +7,7 @@ import memoize from 'memize';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
10
+ import { privateApis as componentsPrivateApis } from '@wordpress/components';
11
11
  import { renderToString } from '@wordpress/element';
12
12
  import {
13
13
  createBlock,
@@ -23,7 +23,6 @@ import { ASPECT_RATIOS, WP_EMBED_TYPE } from './constants';
23
23
  import { unlock } from '../lock-unlock';
24
24
 
25
25
  const { name: DEFAULT_EMBED_BLOCK } = metadata;
26
- const { kebabCase } = unlock( blockEditorPrivateApis );
27
26
 
28
27
  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
29
28
 
@@ -283,6 +282,7 @@ export const getAttributesFromPreview = memoize(
283
282
  // If we got a provider name from the API, use it for the slug, otherwise we use the title,
284
283
  // because not all embed code gives us a provider name.
285
284
  const { html, provider_name: providerName } = preview;
285
+ const { kebabCase } = unlock( componentsPrivateApis );
286
286
  const providerNameSlug = kebabCase(
287
287
  ( providerName || title ).toLowerCase()
288
288
  );
@@ -21,8 +21,8 @@
21
21
  "attribute": "id"
22
22
  },
23
23
  "fileName": {
24
- "type": "string",
25
- "source": "html",
24
+ "type": "rich-text",
25
+ "source": "rich-text",
26
26
  "selector": "a:not([download])"
27
27
  },
28
28
  "textLinkHref": {
@@ -42,8 +42,8 @@
42
42
  "default": true
43
43
  },
44
44
  "downloadButtonText": {
45
- "type": "string",
46
- "source": "html",
45
+ "type": "rich-text",
46
+ "source": "rich-text",
47
47
  "selector": "a[download]"
48
48
  },
49
49
  "displayPreview": {