@wordpress/block-library 9.48.0 → 10.0.1-next.v.202606191442.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 (951) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/build/breadcrumbs/edit.cjs +1 -1
  3. package/build/breadcrumbs/edit.cjs.map +1 -1
  4. package/build/button/edit.cjs +1 -1
  5. package/build/button/edit.cjs.map +2 -2
  6. package/build/categories/edit.cjs +1 -1
  7. package/build/categories/edit.cjs.map +1 -1
  8. package/build/code/edit.cjs +1 -1
  9. package/build/code/edit.cjs.map +2 -2
  10. package/build/code/index.cjs +1 -1
  11. package/build/code/index.cjs.map +1 -1
  12. package/build/columns/transforms.cjs +65 -0
  13. package/build/columns/transforms.cjs.map +2 -2
  14. package/build/columns/utils.cjs.map +1 -1
  15. package/build/comments/edit/comments-legacy.cjs +1 -1
  16. package/build/comments/edit/comments-legacy.cjs.map +1 -1
  17. package/build/comments/edit/placeholder.cjs +4 -4
  18. package/build/comments/edit/placeholder.cjs.map +1 -1
  19. package/build/comments-pagination-next/edit.cjs +2 -2
  20. package/build/comments-pagination-next/edit.cjs.map +1 -1
  21. package/build/comments-pagination-previous/edit.cjs +2 -2
  22. package/build/comments-pagination-previous/edit.cjs.map +1 -1
  23. package/build/cover/deprecated.cjs +3 -3
  24. package/build/cover/deprecated.cjs.map +2 -2
  25. package/build/cover/edit/block-controls.cjs +13 -0
  26. package/build/cover/edit/block-controls.cjs.map +2 -2
  27. package/build/cover/edit/index.cjs +61 -2
  28. package/build/cover/edit/index.cjs.map +3 -3
  29. package/build/cover/edit/inspector-controls.cjs +93 -35
  30. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  31. package/build/details/edit.cjs +1 -1
  32. package/build/details/edit.cjs.map +2 -2
  33. package/build/embed/embed-placeholder.cjs +1 -1
  34. package/build/embed/embed-placeholder.cjs.map +2 -2
  35. package/build/file/edit.cjs +3 -11
  36. package/build/file/edit.cjs.map +2 -2
  37. package/build/file/index.cjs +3 -1
  38. package/build/file/index.cjs.map +3 -3
  39. package/build/file/transforms.cjs +11 -32
  40. package/build/file/transforms.cjs.map +2 -2
  41. package/build/file/variations.cjs +38 -0
  42. package/build/file/variations.cjs.map +7 -0
  43. package/build/footnotes/edit.cjs +1 -1
  44. package/build/footnotes/edit.cjs.map +2 -2
  45. package/build/form-input/edit.cjs +1 -1
  46. package/build/form-input/edit.cjs.map +2 -2
  47. package/build/freeform/edit.cjs +1 -1
  48. package/build/freeform/edit.cjs.map +1 -1
  49. package/build/gallery/edit.cjs +212 -331
  50. package/build/gallery/edit.cjs.map +2 -2
  51. package/build/gallery/transforms.cjs +43 -0
  52. package/build/gallery/transforms.cjs.map +2 -2
  53. package/build/heading/edit.cjs +0 -1
  54. package/build/heading/edit.cjs.map +2 -2
  55. package/build/home-link/edit.cjs +1 -1
  56. package/build/home-link/edit.cjs.map +2 -2
  57. package/build/html/index.cjs +1 -1
  58. package/build/html/index.cjs.map +2 -2
  59. package/build/html/modal.cjs +3 -3
  60. package/build/html/modal.cjs.map +2 -2
  61. package/build/icon/block.json +12 -0
  62. package/build/icon/edit.cjs +90 -39
  63. package/build/icon/edit.cjs.map +3 -3
  64. package/build/icon/index.cjs +3 -1
  65. package/build/icon/index.cjs.map +3 -3
  66. package/build/{tab/save.cjs → icon/variations.cjs} +14 -15
  67. package/build/icon/variations.cjs.map +7 -0
  68. package/build/image/block.json +1 -0
  69. package/build/image/edit.cjs +4 -3
  70. package/build/image/edit.cjs.map +2 -2
  71. package/build/image/image.cjs +91 -27
  72. package/build/image/image.cjs.map +2 -2
  73. package/build/image/index.cjs +1 -1
  74. package/build/image/index.cjs.map +2 -2
  75. package/build/image/transforms.cjs +9 -3
  76. package/build/image/transforms.cjs.map +2 -2
  77. package/build/index.cjs +1 -3
  78. package/build/index.cjs.map +2 -2
  79. package/build/latest-posts/edit.cjs +1 -1
  80. package/build/latest-posts/edit.cjs.map +1 -1
  81. package/build/list/edit.cjs +1 -8
  82. package/build/list/edit.cjs.map +2 -2
  83. package/build/list/ordered-list-settings.cjs +1 -44
  84. package/build/list/ordered-list-settings.cjs.map +2 -2
  85. package/build/list-item/hooks/use-merge.cjs +47 -24
  86. package/build/list-item/hooks/use-merge.cjs.map +2 -2
  87. package/build/math/edit.cjs +1 -1
  88. package/build/math/index.cjs +1 -1
  89. package/build/math/index.cjs.map +1 -1
  90. package/build/media-text/constants.cjs +1 -1
  91. package/build/media-text/constants.cjs.map +2 -2
  92. package/build/media-text/index.cjs +1 -1
  93. package/build/media-text/index.cjs.map +2 -2
  94. package/build/missing/edit.cjs +2 -2
  95. package/build/missing/edit.cjs.map +1 -1
  96. package/build/navigation/edit/index.cjs +29 -34
  97. package/build/navigation/edit/index.cjs.map +2 -2
  98. package/build/navigation/edit/navigation-menu-selector.cjs +1 -1
  99. package/build/navigation/edit/navigation-menu-selector.cjs.map +2 -2
  100. package/build/navigation/edit/placeholder/index.cjs +1 -1
  101. package/build/navigation/edit/placeholder/index.cjs.map +2 -2
  102. package/build/navigation-link/edit.cjs +1 -2
  103. package/build/navigation-link/edit.cjs.map +2 -2
  104. package/build/navigation-submenu/block.json +7 -0
  105. package/build/navigation-submenu/edit.cjs +3 -2
  106. package/build/navigation-submenu/edit.cjs.map +2 -2
  107. package/build/page-list/block.json +2 -5
  108. package/build/page-list/edit.cjs +1 -11
  109. package/build/page-list/edit.cjs.map +2 -2
  110. package/build/paragraph/deprecated.cjs +1 -0
  111. package/build/paragraph/deprecated.cjs.map +2 -2
  112. package/build/paragraph/edit.cjs +10 -1
  113. package/build/paragraph/edit.cjs.map +3 -3
  114. package/build/playlist/block.json +12 -0
  115. package/build/playlist/edit.cjs +27 -1
  116. package/build/playlist/edit.cjs.map +2 -2
  117. package/build/playlist/save.cjs +8 -1
  118. package/build/playlist/save.cjs.map +2 -2
  119. package/build/playlist/view.cjs +1 -0
  120. package/build/playlist/view.cjs.map +2 -2
  121. package/build/post-author/edit.cjs +1 -1
  122. package/build/post-author/edit.cjs.map +2 -2
  123. package/build/post-author/utils.cjs +1 -1
  124. package/build/post-author/utils.cjs.map +2 -2
  125. package/build/post-date/edit.cjs +2 -2
  126. package/build/post-date/edit.cjs.map +2 -2
  127. package/build/post-excerpt/edit.cjs +2 -2
  128. package/build/post-excerpt/edit.cjs.map +2 -2
  129. package/build/post-featured-image/block.json +1 -0
  130. package/build/post-featured-image/dimension-controls.cjs +90 -178
  131. package/build/post-featured-image/dimension-controls.cjs.map +3 -3
  132. package/build/post-featured-image/edit.cjs +47 -17
  133. package/build/post-featured-image/edit.cjs.map +2 -2
  134. package/build/post-navigation-link/edit.cjs +2 -2
  135. package/build/post-navigation-link/edit.cjs.map +2 -2
  136. package/build/post-time-to-read/edit.cjs +1 -1
  137. package/build/post-time-to-read/edit.cjs.map +1 -1
  138. package/build/post-time-to-read/index.cjs +1 -1
  139. package/build/post-time-to-read/index.cjs.map +2 -2
  140. package/build/post-time-to-read/variations.cjs +1 -1
  141. package/build/post-time-to-read/variations.cjs.map +2 -2
  142. package/build/preformatted/edit.cjs +1 -1
  143. package/build/preformatted/edit.cjs.map +2 -2
  144. package/build/pullquote/block.json +1 -3
  145. package/build/pullquote/deprecated.cjs +114 -9
  146. package/build/pullquote/deprecated.cjs.map +3 -3
  147. package/build/pullquote/edit.cjs +43 -66
  148. package/build/pullquote/edit.cjs.map +3 -3
  149. package/build/pullquote/save.cjs +5 -26
  150. package/build/pullquote/save.cjs.map +3 -3
  151. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs +1 -1
  152. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs.map +1 -1
  153. package/build/query/edit/inspector-controls/order-control.cjs +2 -2
  154. package/build/query/edit/inspector-controls/order-control.cjs.map +2 -2
  155. package/build/query/utils.cjs +2 -2
  156. package/build/query/utils.cjs.map +2 -2
  157. package/build/query-pagination-next/edit.cjs +2 -2
  158. package/build/query-pagination-next/edit.cjs.map +1 -1
  159. package/build/query-pagination-previous/edit.cjs +2 -2
  160. package/build/query-pagination-previous/edit.cjs.map +1 -1
  161. package/build/query-title/edit.cjs +1 -1
  162. package/build/query-title/edit.cjs.map +2 -2
  163. package/build/query-total/edit.cjs +1 -1
  164. package/build/query-total/edit.cjs.map +2 -2
  165. package/build/quote/edit.cjs +4 -9
  166. package/build/quote/edit.cjs.map +2 -2
  167. package/build/quote/index.cjs +1 -1
  168. package/build/quote/index.cjs.map +2 -2
  169. package/build/read-more/edit.cjs +1 -1
  170. package/build/read-more/edit.cjs.map +2 -2
  171. package/build/rss/edit.cjs +1 -1
  172. package/build/rss/edit.cjs.map +2 -2
  173. package/build/search/edit.cjs +3 -3
  174. package/build/search/edit.cjs.map +2 -2
  175. package/build/shortcode/edit.cjs +1 -1
  176. package/build/shortcode/edit.cjs.map +2 -2
  177. package/build/shortcode/transforms.cjs +2 -2
  178. package/build/shortcode/transforms.cjs.map +2 -2
  179. package/build/site-tagline/edit.cjs +1 -1
  180. package/build/site-tagline/edit.cjs.map +2 -2
  181. package/build/site-title/edit.cjs +1 -1
  182. package/build/site-title/edit.cjs.map +2 -2
  183. package/build/tab-list/block.json +34 -21
  184. package/build/tab-list/edit.cjs +116 -12
  185. package/build/tab-list/edit.cjs.map +3 -3
  186. package/build/tab-list/save.cjs +33 -3
  187. package/build/tab-list/save.cjs.map +3 -3
  188. package/build/tab-panel/add-tab-toolbar-control.cjs +19 -8
  189. package/build/tab-panel/add-tab-toolbar-control.cjs.map +2 -2
  190. package/build/tab-panel/block.json +2 -6
  191. package/build/tab-panel/remove-tab-toolbar-control.cjs +9 -14
  192. package/build/tab-panel/remove-tab-toolbar-control.cjs.map +2 -2
  193. package/build/tab-panels/block.json +2 -27
  194. package/build/table/index.cjs +1 -1
  195. package/build/table/index.cjs.map +2 -2
  196. package/build/tabs/block.json +3 -17
  197. package/build/tabs/edit.cjs +7 -21
  198. package/build/tabs/edit.cjs.map +3 -3
  199. package/build/tabs/index.cjs +6 -10
  200. package/build/tabs/index.cjs.map +2 -2
  201. package/build/tabs/use-tab-list-items-sync.cjs +53 -0
  202. package/build/tabs/use-tab-list-items-sync.cjs.map +7 -0
  203. package/build/tabs/view.cjs +2 -10
  204. package/build/tabs/view.cjs.map +2 -2
  205. package/build/terms-query/edit/inspector-controls/order-control.cjs +2 -2
  206. package/build/terms-query/edit/inspector-controls/order-control.cjs.map +2 -2
  207. package/build/utils/style-state.cjs +164 -0
  208. package/build/utils/style-state.cjs.map +7 -0
  209. package/build/utils/waveform-player.cjs +42 -9
  210. package/build/utils/waveform-player.cjs.map +2 -2
  211. package/build/utils/waveform-utils.cjs +6 -4
  212. package/build/utils/waveform-utils.cjs.map +2 -2
  213. package/build/verse/edit.cjs +1 -1
  214. package/build/verse/edit.cjs.map +2 -2
  215. package/build/video/edit-common-settings.cjs +3 -6
  216. package/build/video/edit-common-settings.cjs.map +2 -2
  217. package/build-module/breadcrumbs/edit.mjs +1 -1
  218. package/build-module/breadcrumbs/edit.mjs.map +1 -1
  219. package/build-module/button/edit.mjs +1 -1
  220. package/build-module/button/edit.mjs.map +2 -2
  221. package/build-module/categories/edit.mjs +1 -1
  222. package/build-module/categories/edit.mjs.map +1 -1
  223. package/build-module/code/edit.mjs +1 -1
  224. package/build-module/code/edit.mjs.map +2 -2
  225. package/build-module/code/index.mjs +1 -1
  226. package/build-module/code/index.mjs.map +1 -1
  227. package/build-module/columns/transforms.mjs +65 -0
  228. package/build-module/columns/transforms.mjs.map +2 -2
  229. package/build-module/columns/utils.mjs.map +1 -1
  230. package/build-module/comments/edit/comments-legacy.mjs +1 -1
  231. package/build-module/comments/edit/comments-legacy.mjs.map +1 -1
  232. package/build-module/comments/edit/placeholder.mjs +4 -4
  233. package/build-module/comments/edit/placeholder.mjs.map +1 -1
  234. package/build-module/comments-pagination-next/edit.mjs +2 -2
  235. package/build-module/comments-pagination-next/edit.mjs.map +1 -1
  236. package/build-module/comments-pagination-previous/edit.mjs +2 -2
  237. package/build-module/comments-pagination-previous/edit.mjs.map +1 -1
  238. package/build-module/cover/deprecated.mjs +3 -3
  239. package/build-module/cover/deprecated.mjs.map +2 -2
  240. package/build-module/cover/edit/block-controls.mjs +15 -2
  241. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  242. package/build-module/cover/edit/index.mjs +64 -3
  243. package/build-module/cover/edit/index.mjs.map +2 -2
  244. package/build-module/cover/edit/inspector-controls.mjs +98 -35
  245. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  246. package/build-module/details/edit.mjs +1 -1
  247. package/build-module/details/edit.mjs.map +2 -2
  248. package/build-module/embed/embed-placeholder.mjs +1 -1
  249. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  250. package/build-module/file/edit.mjs +5 -13
  251. package/build-module/file/edit.mjs.map +2 -2
  252. package/build-module/file/index.mjs +3 -1
  253. package/build-module/file/index.mjs.map +2 -2
  254. package/build-module/file/transforms.mjs +11 -32
  255. package/build-module/file/transforms.mjs.map +2 -2
  256. package/build-module/file/variations.mjs +17 -0
  257. package/build-module/file/variations.mjs.map +7 -0
  258. package/build-module/footnotes/edit.mjs +1 -1
  259. package/build-module/footnotes/edit.mjs.map +2 -2
  260. package/build-module/form-input/edit.mjs +1 -1
  261. package/build-module/form-input/edit.mjs.map +2 -2
  262. package/build-module/freeform/edit.mjs +1 -1
  263. package/build-module/freeform/edit.mjs.map +1 -1
  264. package/build-module/gallery/edit.mjs +214 -334
  265. package/build-module/gallery/edit.mjs.map +2 -2
  266. package/build-module/gallery/transforms.mjs +43 -0
  267. package/build-module/gallery/transforms.mjs.map +2 -2
  268. package/build-module/heading/edit.mjs +1 -2
  269. package/build-module/heading/edit.mjs.map +2 -2
  270. package/build-module/home-link/edit.mjs +1 -1
  271. package/build-module/home-link/edit.mjs.map +2 -2
  272. package/build-module/html/index.mjs +1 -1
  273. package/build-module/html/index.mjs.map +2 -2
  274. package/build-module/html/modal.mjs +3 -3
  275. package/build-module/html/modal.mjs.map +2 -2
  276. package/build-module/icon/block.json +12 -0
  277. package/build-module/icon/edit.mjs +94 -40
  278. package/build-module/icon/edit.mjs.map +2 -2
  279. package/build-module/icon/index.mjs +3 -1
  280. package/build-module/icon/index.mjs.map +2 -2
  281. package/build-module/icon/variations.mjs +13 -0
  282. package/build-module/icon/variations.mjs.map +7 -0
  283. package/build-module/image/block.json +1 -0
  284. package/build-module/image/edit.mjs +4 -3
  285. package/build-module/image/edit.mjs.map +2 -2
  286. package/build-module/image/image.mjs +96 -27
  287. package/build-module/image/image.mjs.map +2 -2
  288. package/build-module/image/index.mjs +1 -1
  289. package/build-module/image/index.mjs.map +2 -2
  290. package/build-module/image/transforms.mjs +9 -3
  291. package/build-module/image/transforms.mjs.map +2 -2
  292. package/build-module/index.mjs +1 -3
  293. package/build-module/index.mjs.map +2 -2
  294. package/build-module/latest-posts/edit.mjs +1 -1
  295. package/build-module/latest-posts/edit.mjs.map +1 -1
  296. package/build-module/list/edit.mjs +2 -9
  297. package/build-module/list/edit.mjs.map +2 -2
  298. package/build-module/list/ordered-list-settings.mjs +1 -45
  299. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  300. package/build-module/list-item/hooks/use-merge.mjs +48 -25
  301. package/build-module/list-item/hooks/use-merge.mjs.map +2 -2
  302. package/build-module/math/edit.mjs +1 -1
  303. package/build-module/math/index.mjs +1 -1
  304. package/build-module/math/index.mjs.map +1 -1
  305. package/build-module/media-text/constants.mjs +1 -1
  306. package/build-module/media-text/constants.mjs.map +2 -2
  307. package/build-module/media-text/index.mjs +1 -1
  308. package/build-module/media-text/index.mjs.map +2 -2
  309. package/build-module/missing/edit.mjs +2 -2
  310. package/build-module/missing/edit.mjs.map +1 -1
  311. package/build-module/navigation/edit/index.mjs +30 -41
  312. package/build-module/navigation/edit/index.mjs.map +2 -2
  313. package/build-module/navigation/edit/navigation-menu-selector.mjs +1 -1
  314. package/build-module/navigation/edit/navigation-menu-selector.mjs.map +2 -2
  315. package/build-module/navigation/edit/placeholder/index.mjs +1 -1
  316. package/build-module/navigation/edit/placeholder/index.mjs.map +2 -2
  317. package/build-module/navigation-link/edit.mjs +1 -2
  318. package/build-module/navigation-link/edit.mjs.map +2 -2
  319. package/build-module/navigation-submenu/block.json +7 -0
  320. package/build-module/navigation-submenu/edit.mjs +3 -2
  321. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  322. package/build-module/page-list/block.json +2 -5
  323. package/build-module/page-list/edit.mjs +1 -11
  324. package/build-module/page-list/edit.mjs.map +2 -2
  325. package/build-module/paragraph/deprecated.mjs +1 -0
  326. package/build-module/paragraph/deprecated.mjs.map +2 -2
  327. package/build-module/paragraph/edit.mjs +12 -2
  328. package/build-module/paragraph/edit.mjs.map +2 -2
  329. package/build-module/playlist/block.json +12 -0
  330. package/build-module/playlist/edit.mjs +27 -1
  331. package/build-module/playlist/edit.mjs.map +2 -2
  332. package/build-module/playlist/save.mjs +8 -1
  333. package/build-module/playlist/save.mjs.map +2 -2
  334. package/build-module/playlist/view.mjs +1 -0
  335. package/build-module/playlist/view.mjs.map +2 -2
  336. package/build-module/post-author/edit.mjs +1 -1
  337. package/build-module/post-author/edit.mjs.map +2 -2
  338. package/build-module/post-author/utils.mjs +1 -1
  339. package/build-module/post-author/utils.mjs.map +2 -2
  340. package/build-module/post-date/edit.mjs +2 -2
  341. package/build-module/post-date/edit.mjs.map +2 -2
  342. package/build-module/post-excerpt/edit.mjs +2 -2
  343. package/build-module/post-excerpt/edit.mjs.map +2 -2
  344. package/build-module/post-featured-image/block.json +1 -0
  345. package/build-module/post-featured-image/dimension-controls.mjs +99 -187
  346. package/build-module/post-featured-image/dimension-controls.mjs.map +2 -2
  347. package/build-module/post-featured-image/edit.mjs +47 -17
  348. package/build-module/post-featured-image/edit.mjs.map +2 -2
  349. package/build-module/post-navigation-link/edit.mjs +2 -2
  350. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  351. package/build-module/post-time-to-read/edit.mjs +1 -1
  352. package/build-module/post-time-to-read/edit.mjs.map +1 -1
  353. package/build-module/post-time-to-read/index.mjs +1 -1
  354. package/build-module/post-time-to-read/index.mjs.map +2 -2
  355. package/build-module/post-time-to-read/variations.mjs +2 -2
  356. package/build-module/post-time-to-read/variations.mjs.map +2 -2
  357. package/build-module/preformatted/edit.mjs +1 -1
  358. package/build-module/preformatted/edit.mjs.map +2 -2
  359. package/build-module/pullquote/block.json +1 -3
  360. package/build-module/pullquote/deprecated.mjs +114 -9
  361. package/build-module/pullquote/deprecated.mjs.map +2 -2
  362. package/build-module/pullquote/edit.mjs +44 -72
  363. package/build-module/pullquote/edit.mjs.map +2 -2
  364. package/build-module/pullquote/save.mjs +5 -16
  365. package/build-module/pullquote/save.mjs.map +2 -2
  366. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs +1 -1
  367. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs.map +1 -1
  368. package/build-module/query/edit/inspector-controls/order-control.mjs +2 -2
  369. package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
  370. package/build-module/query/utils.mjs +2 -2
  371. package/build-module/query/utils.mjs.map +2 -2
  372. package/build-module/query-pagination-next/edit.mjs +2 -2
  373. package/build-module/query-pagination-next/edit.mjs.map +1 -1
  374. package/build-module/query-pagination-previous/edit.mjs +2 -2
  375. package/build-module/query-pagination-previous/edit.mjs.map +1 -1
  376. package/build-module/query-title/edit.mjs +1 -1
  377. package/build-module/query-title/edit.mjs.map +2 -2
  378. package/build-module/query-total/edit.mjs +1 -1
  379. package/build-module/query-total/edit.mjs.map +2 -2
  380. package/build-module/quote/edit.mjs +5 -10
  381. package/build-module/quote/edit.mjs.map +2 -2
  382. package/build-module/quote/index.mjs +1 -1
  383. package/build-module/quote/index.mjs.map +2 -2
  384. package/build-module/read-more/edit.mjs +1 -1
  385. package/build-module/read-more/edit.mjs.map +2 -2
  386. package/build-module/rss/edit.mjs +1 -1
  387. package/build-module/rss/edit.mjs.map +2 -2
  388. package/build-module/search/edit.mjs +3 -3
  389. package/build-module/search/edit.mjs.map +2 -2
  390. package/build-module/shortcode/edit.mjs +1 -1
  391. package/build-module/shortcode/edit.mjs.map +2 -2
  392. package/build-module/shortcode/transforms.mjs +2 -2
  393. package/build-module/shortcode/transforms.mjs.map +2 -2
  394. package/build-module/site-tagline/edit.mjs +1 -1
  395. package/build-module/site-tagline/edit.mjs.map +2 -2
  396. package/build-module/site-title/edit.mjs +1 -1
  397. package/build-module/site-title/edit.mjs.map +2 -2
  398. package/build-module/tab-list/block.json +34 -21
  399. package/build-module/tab-list/edit.mjs +122 -15
  400. package/build-module/tab-list/edit.mjs.map +2 -2
  401. package/build-module/tab-list/save.mjs +29 -4
  402. package/build-module/tab-list/save.mjs.map +2 -2
  403. package/build-module/tab-panel/add-tab-toolbar-control.mjs +19 -8
  404. package/build-module/tab-panel/add-tab-toolbar-control.mjs.map +2 -2
  405. package/build-module/tab-panel/block.json +2 -6
  406. package/build-module/tab-panel/remove-tab-toolbar-control.mjs +9 -14
  407. package/build-module/tab-panel/remove-tab-toolbar-control.mjs.map +2 -2
  408. package/build-module/tab-panels/block.json +2 -27
  409. package/build-module/table/index.mjs +1 -1
  410. package/build-module/table/index.mjs.map +2 -2
  411. package/build-module/tabs/block.json +3 -17
  412. package/build-module/tabs/edit.mjs +7 -21
  413. package/build-module/tabs/edit.mjs.map +2 -2
  414. package/build-module/tabs/index.mjs +6 -10
  415. package/build-module/tabs/index.mjs.map +2 -2
  416. package/build-module/tabs/use-tab-list-items-sync.mjs +32 -0
  417. package/build-module/tabs/use-tab-list-items-sync.mjs.map +7 -0
  418. package/build-module/tabs/view.mjs +2 -10
  419. package/build-module/tabs/view.mjs.map +2 -2
  420. package/build-module/terms-query/edit/inspector-controls/order-control.mjs +2 -2
  421. package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
  422. package/build-module/utils/style-state.mjs +132 -0
  423. package/build-module/utils/style-state.mjs.map +7 -0
  424. package/build-module/utils/waveform-player.mjs +44 -11
  425. package/build-module/utils/waveform-player.mjs.map +2 -2
  426. package/build-module/utils/waveform-utils.mjs +6 -4
  427. package/build-module/utils/waveform-utils.mjs.map +2 -2
  428. package/build-module/verse/edit.mjs +1 -1
  429. package/build-module/verse/edit.mjs.map +2 -2
  430. package/build-module/video/edit-common-settings.mjs +4 -7
  431. package/build-module/video/edit-common-settings.mjs.map +2 -2
  432. package/build-style/comment-template/style-rtl.css +1 -0
  433. package/build-style/comment-template/style.css +1 -0
  434. package/build-style/common-rtl.css +30 -10
  435. package/build-style/common.css +30 -10
  436. package/build-style/cover/style-rtl.css +2 -1
  437. package/build-style/cover/style.css +2 -1
  438. package/build-style/editor-rtl.css +34 -27
  439. package/build-style/editor.css +34 -27
  440. package/build-style/form-input/style-rtl.css +2 -0
  441. package/build-style/form-input/style.css +2 -0
  442. package/build-style/gallery/style-rtl.css +4 -2
  443. package/build-style/gallery/style.css +4 -2
  444. package/build-style/icon/style-rtl.css +9 -0
  445. package/build-style/icon/style.css +9 -0
  446. package/build-style/media-text/style-rtl.css +2 -1
  447. package/build-style/media-text/style.css +2 -1
  448. package/build-style/playlist/style-rtl.css +3 -0
  449. package/build-style/playlist/style.css +3 -0
  450. package/build-style/query/editor-rtl.css +8 -4
  451. package/build-style/query/editor.css +8 -4
  452. package/build-style/read-more/style-rtl.css +1 -0
  453. package/build-style/read-more/style.css +1 -0
  454. package/build-style/reset-rtl.css +3 -1
  455. package/build-style/reset.css +3 -1
  456. package/build-style/search/style-rtl.css +3 -1
  457. package/build-style/search/style.css +3 -1
  458. package/build-style/site-logo/editor-rtl.css +2 -1
  459. package/build-style/site-logo/editor.css +2 -1
  460. package/build-style/style-rtl.css +64 -41
  461. package/build-style/style.css +64 -41
  462. package/build-style/tab-list/editor-rtl.css +12 -4
  463. package/build-style/tab-list/editor.css +12 -4
  464. package/build-style/{tab → tab-list}/style-rtl.css +5 -3
  465. package/build-style/{tab → tab-list}/style.css +5 -3
  466. package/build-style/tab-panel/style-rtl.css +0 -17
  467. package/build-style/tab-panel/style.css +0 -17
  468. package/build-style/template-part/editor-rtl.css +8 -4
  469. package/build-style/template-part/editor.css +8 -4
  470. package/build-style/video/style-rtl.css +2 -1
  471. package/build-style/video/style.css +2 -1
  472. package/package.json +55 -48
  473. package/src/accordion/README.md +97 -0
  474. package/src/accordion-heading/README.md +81 -0
  475. package/src/accordion-item/README.md +85 -0
  476. package/src/accordion-panel/README.md +74 -0
  477. package/src/archives/README.md +56 -0
  478. package/src/audio/README.md +55 -0
  479. package/src/avatar/README.md +74 -0
  480. package/src/avatar/index.php +2 -2
  481. package/src/block/README.md +56 -0
  482. package/src/block/index.php +2 -26
  483. package/src/breadcrumbs/README.md +67 -0
  484. package/src/button/README.md +93 -0
  485. package/src/buttons/README.md +80 -0
  486. package/src/calendar/README.md +51 -0
  487. package/src/categories/README.md +69 -0
  488. package/src/code/README.md +55 -0
  489. package/src/column/README.md +72 -0
  490. package/src/columns/README.md +90 -0
  491. package/src/columns/test/transforms.js +164 -0
  492. package/src/columns/transforms.js +74 -0
  493. package/src/comment-author-avatar/README.md +63 -0
  494. package/src/comment-author-avatar/index.php +3 -3
  495. package/src/comment-author-name/README.md +67 -0
  496. package/src/comment-author-name/index.php +1 -1
  497. package/src/comment-content/README.md +61 -0
  498. package/src/comment-date/README.md +67 -0
  499. package/src/comment-date/index.php +1 -1
  500. package/src/comment-edit-link/README.md +67 -0
  501. package/src/comment-reply-link/README.md +63 -0
  502. package/src/comment-template/README.md +60 -0
  503. package/src/comments/README.md +88 -0
  504. package/src/comments-pagination/README.md +77 -0
  505. package/src/comments-pagination-next/README.md +64 -0
  506. package/src/comments-pagination-numbers/README.md +64 -0
  507. package/src/comments-pagination-previous/README.md +64 -0
  508. package/src/comments-title/README.md +70 -0
  509. package/src/common.scss +63 -10
  510. package/src/cover/README.md +111 -0
  511. package/src/cover/edit/block-controls.js +14 -2
  512. package/src/cover/edit/index.js +86 -0
  513. package/src/cover/edit/inspector-controls.js +124 -54
  514. package/src/details/README.md +65 -0
  515. package/src/editor.scss +0 -1
  516. package/src/embed/README.md +56 -0
  517. package/src/file/README.md +60 -0
  518. package/src/file/edit.js +3 -16
  519. package/src/file/index.js +2 -0
  520. package/src/file/transforms.js +12 -31
  521. package/src/file/variations.js +17 -0
  522. package/src/footnotes/README.md +64 -0
  523. package/src/form/README.md +90 -0
  524. package/src/form-input/README.md +74 -0
  525. package/src/form-submission-notification/README.md +50 -0
  526. package/src/form-submit-button/README.md +54 -0
  527. package/src/freeform/README.md +49 -0
  528. package/src/gallery/README.md +115 -0
  529. package/src/gallery/edit.js +214 -351
  530. package/src/gallery/test/transforms.js +155 -0
  531. package/src/gallery/transforms.js +47 -0
  532. package/src/group/README.md +80 -0
  533. package/src/heading/README.md +60 -0
  534. package/src/heading/edit.js +1 -2
  535. package/src/home-link/README.md +66 -0
  536. package/src/home-link/index.php +3 -15
  537. package/src/html/README.md +48 -0
  538. package/src/icon/README.md +66 -0
  539. package/src/icon/block.json +12 -0
  540. package/src/icon/edit.js +86 -36
  541. package/src/icon/index.js +3 -1
  542. package/src/icon/index.php +23 -0
  543. package/src/icon/style.scss +12 -0
  544. package/src/icon/variations.js +9 -0
  545. package/src/image/README.md +103 -0
  546. package/src/image/block.json +1 -0
  547. package/src/image/edit.js +8 -3
  548. package/src/image/image.js +120 -54
  549. package/src/image/index.php +4 -5
  550. package/src/image/transforms.js +34 -8
  551. package/src/index.js +4 -11
  552. package/src/latest-comments/README.md +57 -0
  553. package/src/latest-posts/README.md +71 -0
  554. package/src/list/README.md +70 -0
  555. package/src/list/edit.js +2 -9
  556. package/src/list/ordered-list-settings.js +46 -92
  557. package/src/list-item/README.md +71 -0
  558. package/src/list-item/hooks/use-merge.js +53 -46
  559. package/src/loginout/README.md +56 -0
  560. package/src/math/README.md +50 -0
  561. package/src/media-text/README.md +92 -0
  562. package/src/missing/README.md +55 -0
  563. package/src/more/README.md +49 -0
  564. package/src/navigation/README.md +115 -0
  565. package/src/navigation/edit/index.js +33 -40
  566. package/src/navigation/index.php +58 -0
  567. package/src/navigation-link/README.md +93 -0
  568. package/src/navigation-link/edit.js +0 -1
  569. package/src/navigation-link/index.php +1 -15
  570. package/src/navigation-overlay-close/README.md +48 -0
  571. package/src/navigation-submenu/README.md +89 -0
  572. package/src/navigation-submenu/block.json +7 -0
  573. package/src/navigation-submenu/edit.js +1 -0
  574. package/src/navigation-submenu/index.php +1 -17
  575. package/src/nextpage/README.md +50 -0
  576. package/src/page-list/README.md +84 -0
  577. package/src/page-list/block.json +2 -5
  578. package/src/page-list/edit.js +0 -11
  579. package/src/page-list/index.php +4 -16
  580. package/src/page-list-item/README.md +77 -0
  581. package/src/paragraph/README.md +70 -0
  582. package/src/paragraph/deprecated.js +1 -0
  583. package/src/paragraph/edit.js +13 -1
  584. package/src/pattern/README.md +45 -0
  585. package/src/playlist/README.md +86 -0
  586. package/src/playlist/block.json +12 -0
  587. package/src/playlist/edit.js +27 -0
  588. package/src/playlist/index.php +10 -3
  589. package/src/playlist/save.js +9 -1
  590. package/src/playlist/style.scss +7 -0
  591. package/src/playlist/view.js +1 -0
  592. package/src/playlist-track/README.md +69 -0
  593. package/src/post-author/README.md +78 -0
  594. package/src/post-author-biography/README.md +59 -0
  595. package/src/post-author-name/README.md +63 -0
  596. package/src/post-author-name/index.php +1 -1
  597. package/src/post-comment/README.md +61 -0
  598. package/src/post-comments-count/README.md +58 -0
  599. package/src/post-comments-form/README.md +59 -0
  600. package/src/post-comments-link/README.md +60 -0
  601. package/src/post-content/README.md +71 -0
  602. package/src/post-date/README.md +65 -0
  603. package/src/post-date/edit.js +2 -2
  604. package/src/post-date/index.php +1 -1
  605. package/src/post-excerpt/README.md +66 -0
  606. package/src/post-featured-image/README.md +86 -0
  607. package/src/post-featured-image/block.json +1 -0
  608. package/src/post-featured-image/dimension-controls.js +105 -184
  609. package/src/post-featured-image/edit.js +53 -21
  610. package/src/post-featured-image/index.php +25 -23
  611. package/src/post-navigation-link/README.md +63 -0
  612. package/src/post-template/README.md +71 -0
  613. package/src/post-terms/README.md +65 -0
  614. package/src/post-time-to-read/README.md +63 -0
  615. package/src/post-time-to-read/index.js +1 -1
  616. package/src/post-time-to-read/variations.js +2 -2
  617. package/src/post-title/README.md +69 -0
  618. package/src/preformatted/README.md +50 -0
  619. package/src/pullquote/README.md +64 -0
  620. package/src/pullquote/block.json +1 -3
  621. package/src/pullquote/deprecated.js +121 -9
  622. package/src/pullquote/edit.js +8 -38
  623. package/src/pullquote/save.js +2 -13
  624. package/src/query/README.md +64 -0
  625. package/src/query-no-results/README.md +65 -0
  626. package/src/query-pagination/README.md +79 -0
  627. package/src/query-pagination-next/README.md +67 -0
  628. package/src/query-pagination-numbers/README.md +65 -0
  629. package/src/query-pagination-previous/README.md +67 -0
  630. package/src/query-title/README.md +65 -0
  631. package/src/query-total/README.md +66 -0
  632. package/src/quote/README.md +75 -0
  633. package/src/quote/edit.js +3 -9
  634. package/src/read-more/README.md +61 -0
  635. package/src/read-more/index.php +2 -2
  636. package/src/rss/README.md +62 -0
  637. package/src/search/README.md +66 -0
  638. package/src/search/index.php +1 -1
  639. package/src/separator/README.md +62 -0
  640. package/src/shortcode/README.md +44 -0
  641. package/src/shortcode/transforms.js +2 -2
  642. package/src/site-logo/README.md +72 -0
  643. package/src/site-tagline/README.md +56 -0
  644. package/src/site-title/README.md +57 -0
  645. package/src/social-link/README.md +64 -0
  646. package/src/social-links/README.md +98 -0
  647. package/src/spacer/README.md +53 -0
  648. package/src/style.scss +1 -2
  649. package/src/tab-list/README.md +81 -0
  650. package/src/tab-list/block.json +34 -21
  651. package/src/tab-list/edit.js +147 -15
  652. package/src/tab-list/editor.scss +13 -6
  653. package/src/tab-list/index.php +23 -30
  654. package/src/tab-list/save.js +39 -4
  655. package/src/{tab → tab-list}/style.scss +1 -1
  656. package/src/tab-panel/README.md +72 -0
  657. package/src/tab-panel/add-tab-toolbar-control.js +24 -11
  658. package/src/tab-panel/block.json +2 -6
  659. package/src/tab-panel/remove-tab-toolbar-control.js +10 -14
  660. package/src/tab-panel/style.scss +0 -17
  661. package/src/tab-panels/README.md +59 -0
  662. package/src/tab-panels/block.json +2 -27
  663. package/src/table/README.md +71 -0
  664. package/src/table-of-contents/README.md +61 -0
  665. package/src/tabs/README.md +77 -0
  666. package/src/tabs/block.json +3 -17
  667. package/src/tabs/edit.js +8 -19
  668. package/src/tabs/index.js +6 -10
  669. package/src/tabs/index.php +0 -13
  670. package/src/tabs/use-tab-list-items-sync.js +49 -0
  671. package/src/tabs/view.js +2 -10
  672. package/src/tag-cloud/README.md +62 -0
  673. package/src/template-part/README.md +48 -0
  674. package/src/term-count/README.md +59 -0
  675. package/src/term-description/README.md +60 -0
  676. package/src/term-name/README.md +65 -0
  677. package/src/term-template/README.md +65 -0
  678. package/src/terms-query/README.md +58 -0
  679. package/src/text-columns/README.md +51 -0
  680. package/src/utils/style-state.js +151 -0
  681. package/src/utils/test/style-state.js +307 -0
  682. package/src/utils/test/waveform-player.js +254 -0
  683. package/src/utils/waveform-player.js +90 -18
  684. package/src/utils/waveform-utils.js +15 -11
  685. package/src/verse/README.md +58 -0
  686. package/src/video/README.md +58 -0
  687. package/src/video/edit-common-settings.js +4 -7
  688. package/babel-plugin.cjs +0 -150
  689. package/build/tab/block.json +0 -56
  690. package/build/tab/controls.cjs +0 -46
  691. package/build/tab/controls.cjs.map +0 -7
  692. package/build/tab/edit.cjs +0 -135
  693. package/build/tab/edit.cjs.map +0 -7
  694. package/build/tab/index.cjs +0 -58
  695. package/build/tab/index.cjs.map +0 -7
  696. package/build/tab/save.cjs.map +0 -7
  697. package/build/tabs/use-tab-list-sync.cjs +0 -190
  698. package/build/tabs/use-tab-list-sync.cjs.map +0 -7
  699. package/build-module/tab/block.json +0 -56
  700. package/build-module/tab/controls.mjs +0 -15
  701. package/build-module/tab/controls.mjs.map +0 -7
  702. package/build-module/tab/edit.mjs +0 -108
  703. package/build-module/tab/edit.mjs.map +0 -7
  704. package/build-module/tab/index.mjs +0 -20
  705. package/build-module/tab/index.mjs.map +0 -7
  706. package/build-module/tab/save.mjs +0 -14
  707. package/build-module/tab/save.mjs.map +0 -7
  708. package/build-module/tabs/use-tab-list-sync.mjs +0 -169
  709. package/build-module/tabs/use-tab-list-sync.mjs.map +0 -7
  710. package/build-style/tab/editor-rtl.css +0 -11
  711. package/build-style/tab/editor.css +0 -11
  712. package/build-style/tab-panels/style-rtl.css +0 -4
  713. package/build-style/tab-panels/style.css +0 -4
  714. package/src/audio/edit.native.js +0 -250
  715. package/src/audio/style.native.scss +0 -13
  716. package/src/audio/test/__snapshots__/edit.native.js.snap +0 -546
  717. package/src/audio/test/__snapshots__/transforms.native.js.snap +0 -25
  718. package/src/audio/test/edit.native.js +0 -132
  719. package/src/audio/test/transforms.native.js +0 -43
  720. package/src/audio/transforms.native.js +0 -12
  721. package/src/block/edit-title.native.js +0 -67
  722. package/src/block/edit.native.js +0 -247
  723. package/src/block/editor.native.scss +0 -125
  724. package/src/block/test/__snapshots__/transforms.native.js.snap +0 -15
  725. package/src/block/test/edit.native.js +0 -262
  726. package/src/block/test/transforms.native.js +0 -40
  727. package/src/button/color-background.native.js +0 -41
  728. package/src/button/edit.native.js +0 -567
  729. package/src/button/editor.native.scss +0 -70
  730. package/src/button/rich-text.android.scss +0 -6
  731. package/src/button/rich-text.ios.scss +0 -6
  732. package/src/buttons/edit.native.js +0 -157
  733. package/src/buttons/editor.native.scss +0 -11
  734. package/src/buttons/test/__snapshots__/edit.native.js.snap +0 -99
  735. package/src/buttons/test/__snapshots__/transforms.native.js.snap +0 -31
  736. package/src/buttons/test/edit.native.js +0 -485
  737. package/src/buttons/test/transforms.native.js +0 -48
  738. package/src/buttons/transforms.native.js +0 -12
  739. package/src/code/edit.native.js +0 -70
  740. package/src/code/test/__snapshots__/edit.native.js.snap +0 -13
  741. package/src/code/test/edit.native.js +0 -65
  742. package/src/code/theme.native.scss +0 -22
  743. package/src/code/transforms.native.js +0 -12
  744. package/src/column/column-preview.native.js +0 -58
  745. package/src/column/edit.native.js +0 -273
  746. package/src/column/editor.native.scss +0 -75
  747. package/src/columns/columnCalculations.native.js +0 -178
  748. package/src/columns/edit.native.js +0 -507
  749. package/src/columns/editor.native.scss +0 -17
  750. package/src/columns/test/__snapshots__/edit.native.js.snap +0 -305
  751. package/src/columns/test/__snapshots__/transforms.native.js.snap +0 -61
  752. package/src/columns/test/edit.native.js +0 -496
  753. package/src/columns/test/transforms.native.js +0 -89
  754. package/src/columns/transforms.native.js +0 -12
  755. package/src/cover/controls.native.js +0 -307
  756. package/src/cover/edit.native.js +0 -708
  757. package/src/cover/focal-point-settings-button.native.js +0 -53
  758. package/src/cover/overlay-color-settings.native.js +0 -106
  759. package/src/cover/style.native.scss +0 -220
  760. package/src/cover/test/__snapshots__/edit.native.js.snap +0 -105
  761. package/src/cover/test/__snapshots__/transforms.native.js.snap +0 -73
  762. package/src/cover/test/edit.native.js +0 -701
  763. package/src/cover/test/transforms.native.js +0 -116
  764. package/src/cover/transforms.native.js +0 -12
  765. package/src/cover/use-cover-is-dark.native.js +0 -51
  766. package/src/embed/edit.native.js +0 -345
  767. package/src/embed/embed-controls.native.js +0 -65
  768. package/src/embed/embed-link-settings.native.js +0 -99
  769. package/src/embed/embed-loading.native.js +0 -29
  770. package/src/embed/embed-no-preview.native.js +0 -230
  771. package/src/embed/embed-placeholder.native.js +0 -178
  772. package/src/embed/embed-preview.native.js +0 -157
  773. package/src/embed/styles.native.scss +0 -196
  774. package/src/embed/test/__snapshots__/index.native.js.snap +0 -191
  775. package/src/embed/test/__snapshots__/transforms.native.js.snap +0 -23
  776. package/src/embed/test/index.native.js +0 -1125
  777. package/src/embed/test/transforms.native.js +0 -44
  778. package/src/embed/transforms.native.js +0 -12
  779. package/src/embed/wp-embed-preview.native.js +0 -80
  780. package/src/file/edit.native.js +0 -605
  781. package/src/file/style.native.scss +0 -79
  782. package/src/file/test/__snapshots__/edit.native.js.snap +0 -580
  783. package/src/file/test/__snapshots__/transforms.native.js.snap +0 -19
  784. package/src/file/test/edit.native.js +0 -93
  785. package/src/file/test/transforms.native.js +0 -43
  786. package/src/file/transforms.native.js +0 -12
  787. package/src/freeform/edit.native.js +0 -13
  788. package/src/freeform/test/__snapshots__/index.native.js.snap +0 -7
  789. package/src/freeform/test/__snapshots__/transforms.native.js.snap +0 -19
  790. package/src/freeform/test/index.native.js +0 -57
  791. package/src/freeform/test/transforms.native.js +0 -39
  792. package/src/gallery/gallery-styles.native.scss +0 -8
  793. package/src/gallery/gallery.native.js +0 -124
  794. package/src/gallery/styles.native.scss +0 -7
  795. package/src/gallery/test/__snapshots__/index.native.js.snap +0 -177
  796. package/src/gallery/test/__snapshots__/transforms.native.js.snap +0 -53
  797. package/src/gallery/test/helpers.native.js +0 -106
  798. package/src/gallery/test/index.native.js +0 -700
  799. package/src/gallery/test/transforms.native.js +0 -53
  800. package/src/gallery/test/use-get-media.native.js +0 -24
  801. package/src/gallery/transforms.native.js +0 -12
  802. package/src/gallery/use-get-media.native.js +0 -49
  803. package/src/group/edit.native.js +0 -137
  804. package/src/group/editor.native.scss +0 -56
  805. package/src/group/test/__snapshots__/edit.native.js.snap +0 -19
  806. package/src/group/test/__snapshots__/transforms.native.js.snap +0 -35
  807. package/src/group/test/edit.native.js +0 -100
  808. package/src/group/test/transforms.native.js +0 -73
  809. package/src/heading/edit.native.js +0 -159
  810. package/src/heading/test/__snapshots__/index.native.js.snap +0 -43
  811. package/src/heading/test/__snapshots__/transforms.native.js.snap +0 -47
  812. package/src/heading/test/index.native.js +0 -257
  813. package/src/heading/test/transforms.native.js +0 -46
  814. package/src/heading/transforms.native.js +0 -12
  815. package/src/html/transforms.native.js +0 -11
  816. package/src/image/edit.native.js +0 -959
  817. package/src/image/styles.native.scss +0 -70
  818. package/src/image/test/__snapshots__/transforms.native.js.snap +0 -49
  819. package/src/image/test/edit.native.js +0 -459
  820. package/src/image/test/transforms.native.js +0 -49
  821. package/src/image/transforms.native.js +0 -12
  822. package/src/index.native.js +0 -274
  823. package/src/latest-posts/edit.native.js +0 -294
  824. package/src/latest-posts/style.native.scss +0 -47
  825. package/src/latest-posts/test/__snapshots__/edit.native.js.snap +0 -3
  826. package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +0 -15
  827. package/src/latest-posts/test/edit.native.js +0 -49
  828. package/src/latest-posts/test/transforms.native.js +0 -61
  829. package/src/list/tag-name.native.js +0 -12
  830. package/src/list/test/__snapshots__/edit.native.js.snap +0 -121
  831. package/src/list/test/__snapshots__/transforms.native.js.snap +0 -85
  832. package/src/list/test/edit.native.js +0 -602
  833. package/src/list/test/transforms.native.js +0 -56
  834. package/src/list/transforms.native.js +0 -12
  835. package/src/list-item/edit.native.js +0 -175
  836. package/src/list-item/hooks/use-enter.native.js +0 -81
  837. package/src/list-item/icons.native.js +0 -34
  838. package/src/list-item/list-style-type.native.js +0 -146
  839. package/src/list-item/style.native.scss +0 -57
  840. package/src/media-text/edit.native.js +0 -417
  841. package/src/media-text/icon-retry.native.js +0 -11
  842. package/src/media-text/media-container.native.js +0 -393
  843. package/src/media-text/style.native.scss +0 -191
  844. package/src/media-text/test/__snapshots__/transforms.native.js.snap +0 -73
  845. package/src/media-text/test/edit.native.js +0 -58
  846. package/src/media-text/test/transforms.native.js +0 -116
  847. package/src/media-text/transforms.native.js +0 -12
  848. package/src/missing/edit.native.js +0 -294
  849. package/src/missing/style.native.scss +0 -79
  850. package/src/missing/test/__snapshots__/edit.native.js.snap +0 -110
  851. package/src/missing/test/edit-integration.native.js +0 -168
  852. package/src/missing/test/edit.native.js +0 -81
  853. package/src/more/edit.native.js +0 -36
  854. package/src/more/editor.native.scss +0 -21
  855. package/src/more/test/__snapshots__/edit.native.js.snap +0 -7
  856. package/src/more/test/__snapshots__/transforms.native.js.snap +0 -19
  857. package/src/more/test/edit.native.js +0 -41
  858. package/src/more/test/transforms.native.js +0 -42
  859. package/src/more/transforms.native.js +0 -12
  860. package/src/navigation-link/shared/build-css-font-sizes.php +0 -43
  861. package/src/nextpage/edit.native.js +0 -58
  862. package/src/nextpage/editor.native.scss +0 -21
  863. package/src/nextpage/test/__snapshots__/transforms.native.js.snap +0 -19
  864. package/src/nextpage/test/transforms.native.js +0 -42
  865. package/src/nextpage/transforms.native.js +0 -12
  866. package/src/paragraph/edit.native.js +0 -116
  867. package/src/paragraph/test/__snapshots__/edit.native.js.snap +0 -88
  868. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +0 -65
  869. package/src/paragraph/test/edit.native.js +0 -999
  870. package/src/paragraph/test/transforms.native.js +0 -51
  871. package/src/paragraph/transforms.native.js +0 -12
  872. package/src/preformatted/edit.native.js +0 -48
  873. package/src/preformatted/styles.native.scss +0 -30
  874. package/src/preformatted/test/__snapshots__/edit.native.js.snap +0 -95
  875. package/src/preformatted/test/__snapshots__/transforms.native.js.snap +0 -37
  876. package/src/preformatted/test/edit.native.js +0 -111
  877. package/src/preformatted/test/transforms.native.js +0 -47
  878. package/src/preformatted/transforms.native.js +0 -12
  879. package/src/pullquote/blockquote.native.js +0 -39
  880. package/src/pullquote/blockquote.native.scss +0 -8
  881. package/src/pullquote/edit.native.js +0 -128
  882. package/src/pullquote/figure.native.js +0 -33
  883. package/src/pullquote/figure.native.scss +0 -16
  884. package/src/pullquote/test/__snapshots__/transforms.native.js.snap +0 -47
  885. package/src/pullquote/test/edit.native.js +0 -73
  886. package/src/pullquote/test/transforms.native.js +0 -46
  887. package/src/pullquote/transforms.native.js +0 -12
  888. package/src/quote/test/__snapshots__/transforms.native.js.snap +0 -49
  889. package/src/quote/test/edit.native.js +0 -94
  890. package/src/quote/test/transforms.native.js +0 -69
  891. package/src/quote/transforms.native.js +0 -12
  892. package/src/search/edit.native.js +0 -486
  893. package/src/search/style.native.scss +0 -99
  894. package/src/search/test/__snapshots__/edit.native.js.snap +0 -827
  895. package/src/search/test/__snapshots__/transforms.native.js.snap +0 -15
  896. package/src/search/test/edit.native.js +0 -170
  897. package/src/search/test/transforms.native.js +0 -40
  898. package/src/separator/separator-settings.native.js +0 -3
  899. package/src/separator/test/__snapshots__/edit.native.js.snap +0 -7
  900. package/src/separator/test/__snapshots__/transforms.native.js.snap +0 -25
  901. package/src/separator/test/edit.native.js +0 -41
  902. package/src/separator/test/transforms.native.js +0 -42
  903. package/src/separator/transforms.native.js +0 -12
  904. package/src/shortcode/edit.native.js +0 -77
  905. package/src/shortcode/style.native.scss +0 -44
  906. package/src/shortcode/test/__snapshots__/edit.native.js.snap +0 -9
  907. package/src/shortcode/test/__snapshots__/transforms.native.js.snap +0 -19
  908. package/src/shortcode/test/edit.native.js +0 -70
  909. package/src/shortcode/test/transforms.native.js +0 -42
  910. package/src/shortcode/transforms.native.js +0 -12
  911. package/src/social-link/edit.native.js +0 -219
  912. package/src/social-link/editor.native.scss +0 -18
  913. package/src/social-links/edit.native.js +0 -147
  914. package/src/social-links/editor.native.scss +0 -25
  915. package/src/social-links/test/__snapshots__/edit.native.js.snap +0 -57
  916. package/src/social-links/test/__snapshots__/transforms.native.js.snap +0 -31
  917. package/src/social-links/test/edit.native.js +0 -266
  918. package/src/social-links/test/transforms.native.js +0 -53
  919. package/src/spacer/controls.native.js +0 -86
  920. package/src/spacer/edit.native.js +0 -110
  921. package/src/spacer/editor.native.scss +0 -18
  922. package/src/spacer/save.native.js +0 -18
  923. package/src/spacer/test/__snapshots__/index.native.js.snap +0 -43
  924. package/src/spacer/test/__snapshots__/transforms.native.js.snap +0 -25
  925. package/src/spacer/test/index.native.js +0 -257
  926. package/src/spacer/test/transforms.native.js +0 -42
  927. package/src/tab/block.json +0 -56
  928. package/src/tab/controls.js +0 -19
  929. package/src/tab/edit.js +0 -141
  930. package/src/tab/editor.scss +0 -14
  931. package/src/tab/index.js +0 -24
  932. package/src/tab/index.php +0 -70
  933. package/src/tab/save.js +0 -13
  934. package/src/tab-panels/style.scss +0 -4
  935. package/src/table/transforms.native.js +0 -11
  936. package/src/tabs/use-tab-list-sync.js +0 -237
  937. package/src/text-columns/transforms.native.js +0 -12
  938. package/src/utils/init-block.native.js +0 -40
  939. package/src/utils/transformation-categories.native.js +0 -47
  940. package/src/verse/test/__snapshots__/edit.native.js.snap +0 -13
  941. package/src/verse/test/__snapshots__/transforms.native.js.snap +0 -31
  942. package/src/verse/test/edit.native.js +0 -118
  943. package/src/verse/test/transforms.native.js +0 -46
  944. package/src/verse/transforms.native.js +0 -12
  945. package/src/video/edit.native.js +0 -406
  946. package/src/video/icon-retry.native.js +0 -11
  947. package/src/video/style.native.scss +0 -81
  948. package/src/video/test/__snapshots__/transforms.native.js.snap +0 -41
  949. package/src/video/test/edit.native.js +0 -53
  950. package/src/video/test/transforms.native.js +0 -49
  951. package/src/video/transforms.native.js +0 -12
@@ -1,1125 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import {
5
- getEditorHtml,
6
- initializeEditor,
7
- fireEvent,
8
- waitFor,
9
- waitForModalVisible,
10
- within,
11
- } from 'test/helpers';
12
- import { Platform } from 'react-native';
13
- import Clipboard from '@react-native-clipboard/clipboard';
14
-
15
- /**
16
- * WordPress dependencies
17
- */
18
- import {
19
- getBlockTypes,
20
- setDefaultBlockName,
21
- unregisterBlockType,
22
- } from '@wordpress/blocks';
23
- import fetchRequest from '@wordpress/api-fetch';
24
- import { store as coreStore } from '@wordpress/core-data';
25
- import { dispatch } from '@wordpress/data';
26
- import { requestPreview } from '@wordpress/react-native-bridge';
27
-
28
- /**
29
- * Internal dependencies
30
- */
31
- import { WebView } from 'react-native-webview';
32
-
33
- import * as paragraph from '../../paragraph';
34
- import * as embed from '..';
35
-
36
- // Override modal mock to prevent unmounting it when is not visible.
37
- // This is required to be able to trigger onClose and onDismiss events when
38
- // the modal is dismissed.
39
- jest.mock( 'react-native-modal', () => {
40
- const mockComponent = require( 'react-native/jest/mockComponent' );
41
- return mockComponent( 'react-native-modal' );
42
- } );
43
-
44
- // Mock debounce to prevent potentially belated state updates.
45
- jest.mock( '@wordpress/compose/src/utils/debounce', () => ( {
46
- debounce: ( fn ) => {
47
- fn.cancel = jest.fn();
48
- return fn;
49
- },
50
- } ) );
51
-
52
- const MODAL_DISMISS_EVENT = Platform.OS === 'ios' ? 'onDismiss' : 'onModalHide';
53
-
54
- // OEmbed response mocks.
55
- const RICH_TEXT_EMBED_SUCCESS_RESPONSE = {
56
- url: 'https://twitter.com/notnownikki',
57
- html: '<p>Mock success response.</p>',
58
- type: 'rich',
59
- provider_name: 'Twitter',
60
- provider_url: 'https://twitter.com',
61
- version: '1.0',
62
- };
63
- const VIDEO_EMBED_SUCCESS_RESPONSE = {
64
- url: 'https://www.youtube.com/watch?v=lXMskKTw3Bc',
65
- html: '<iframe width="16" height="9"></iframe>',
66
- type: 'video',
67
- provider_name: 'YouTube',
68
- provider_url: 'https://youtube.com',
69
- version: '1.0',
70
- };
71
- const MOCK_EMBED_PHOTO_SUCCESS_RESPONSE = {
72
- url: 'https://cloudup.com/cQFlxqtY4ob',
73
- html: '<p>Mock success response.</p>',
74
- type: 'photo',
75
- provider_name: 'Cloudup',
76
- provider_url: 'https://cloudup.com',
77
- version: '1.0',
78
- };
79
- const MOCK_BAD_WORDPRESS_RESPONSE = {
80
- code: 'oembed_invalid_url',
81
- message: 'Not Found',
82
- data: {
83
- status: 404,
84
- },
85
- html: false,
86
- };
87
- const MOCK_BAD_EMBED_PROVIDER_RESPONSE = {
88
- url: 'https://youtu.be/BAD_URL',
89
- html: '<p>Mock bad response.</p>',
90
- provider_name: 'Embed Provider',
91
- version: '1.0',
92
- };
93
- const EMBED_NULL_RESPONSE = null;
94
-
95
- // Embed block HTML examples.
96
- const EMPTY_EMBED_HTML = '<!-- wp:embed /-->';
97
- const RICH_TEXT_EMBED_HTML = `<!-- wp:embed {"url":"https://twitter.com/notnownikki","type":"rich","providerNameSlug":"twitter","responsive":true} -->
98
- <figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
99
- https://twitter.com/notnownikki
100
- </div></figure>
101
- <!-- /wp:embed -->`;
102
- const RICH_TEXT_ERROR_EMBED_HTML = `<!-- wp:embed {"url":"https://twitter.com/testing","type":"rich","providerNameSlug":"twitter","responsive":true} -->
103
- <figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
104
- https://twitter.com/testing
105
- </div></figure>
106
- <!-- /wp:embed -->`;
107
- const PHOTO_EMBED_HTML = `<!-- wp:embed {"url":"https://cloudup.com/cQFlxqtY4ob","type":"photo","providerNameSlug":"cloudup","responsive":true} -->
108
- <figure class="wp-block-embed is-type-photo is-provider-cloudup wp-block-embed-cloudup"><div class="wp-block-embed__wrapper">
109
- https://cloudup.com/cQFlxqtY4ob
110
- </div></figure>
111
- <!-- /wp:embed -->`;
112
- const WP_EMBED_HTML = `<!-- wp:embed {"url":"https://wordpress.org/news/2021/07/tatum/","type":"wp-embed","providerNameSlug":"wordpress-news"} -->
113
- <figure class="wp-block-embed is-type-wp-embed is-provider-wordpress-news wp-block-embed-wordpress-news"><div class="wp-block-embed__wrapper">
114
- https://wordpress.org/news/2021/07/tatum/
115
- </div></figure>
116
- <!-- /wp:embed -->`;
117
-
118
- const EMPTY_PARAGRAPH_HTML =
119
- '<!-- wp:paragraph --><p></p><!-- /wp:paragraph -->';
120
-
121
- const MOST_USED_PROVIDERS = embed.settings.variations.filter( ( { name } ) =>
122
- [ 'youtube', 'twitter', 'wordpress', 'vimeo' ].includes( name )
123
- );
124
-
125
- // Return specified mocked responses for the oembed endpoint.
126
- const mockEmbedResponses = ( mockedResponses ) => {
127
- fetchRequest.mockImplementation( async ( req ) => {
128
- const matchedEmbedResponse = mockedResponses.find(
129
- ( mockedResponse ) =>
130
- req.path ===
131
- `/oembed/1.0/proxy?url=${ encodeURIComponent(
132
- mockedResponse.url
133
- ) }`
134
- );
135
-
136
- return matchedEmbedResponse || mockOtherResponses( req );
137
- } );
138
- };
139
-
140
- async function mockOtherResponses( { path } ) {
141
- if ( path.startsWith( '/wp/v2/themes' ) ) {
142
- return [
143
- {
144
- stylesheet: 'test-theme',
145
- theme_supports: { 'responsive-embeds': true },
146
- },
147
- ];
148
- }
149
-
150
- if ( path.startsWith( '/wp/v2/block-patterns/patterns' ) ) {
151
- return [];
152
- }
153
-
154
- if ( path.startsWith( '/wp/v2/block-patterns/categories' ) ) {
155
- return [];
156
- }
157
-
158
- return {};
159
- }
160
-
161
- const insertEmbedBlock = async ( blockTitle = 'Embed' ) => {
162
- const editor = await initializeEditor( { initialHtml: '' } );
163
-
164
- // Open inserter menu.
165
- fireEvent.press( await editor.findByLabelText( 'Add block' ) );
166
-
167
- // Insert embed block.
168
- fireEvent.press( await editor.findByText( blockTitle ) );
169
-
170
- // Return the embed block.
171
- const [ block ] = await editor.findAllByLabelText( /Embed Block\. Row 1/ );
172
-
173
- return { ...editor, block };
174
- };
175
-
176
- const initializeWithEmbedBlock = async ( initialHtml, selectBlock = true ) => {
177
- const editor = await initializeEditor( { initialHtml } );
178
-
179
- const [ block ] = await editor.findAllByLabelText( /Embed Block\. Row 1/ );
180
-
181
- if ( selectBlock ) {
182
- // Select block.
183
- fireEvent.press( block );
184
- }
185
-
186
- return { ...editor, block };
187
- };
188
-
189
- beforeAll( () => {
190
- // Paragraph block needs to be registered because by default a paragraph
191
- // block is added to empty posts.
192
- paragraph.init();
193
- embed.init();
194
- setDefaultBlockName( paragraph.name );
195
- } );
196
-
197
- beforeEach( () => {
198
- // Invalidate all resolutions of core-data to prevent
199
- // caching embed preview and theme supports requests.
200
- dispatch( coreStore ).invalidateResolutionForStore();
201
-
202
- // Mock embed responses.
203
- mockEmbedResponses( [
204
- RICH_TEXT_EMBED_SUCCESS_RESPONSE,
205
- VIDEO_EMBED_SUCCESS_RESPONSE,
206
- MOCK_EMBED_PHOTO_SUCCESS_RESPONSE,
207
- MOCK_BAD_EMBED_PROVIDER_RESPONSE,
208
- ] );
209
-
210
- // Intentionally suppress the expected console logs to reduce noise in the
211
- // test output.
212
- jest.spyOn( console, 'log' ).mockImplementation( () => {} );
213
- } );
214
-
215
- afterAll( () => {
216
- // Clean up registered blocks.
217
- getBlockTypes().forEach( ( block ) => {
218
- unregisterBlockType( block.name );
219
- } );
220
- } );
221
-
222
- describe( 'Embed block', () => {
223
- describe( 'insertion', () => {
224
- it( 'inserts generic embed block', async () => {
225
- const { block } = await insertEmbedBlock();
226
-
227
- const blockName = within( block ).getByText( 'Embed' );
228
-
229
- expect( blockName ).toBeDefined();
230
- expect( getEditorHtml() ).toMatchSnapshot();
231
- } );
232
-
233
- MOST_USED_PROVIDERS.forEach( ( { title } ) =>
234
- it( `inserts ${ title } block`, async () => {
235
- const { block } = await insertEmbedBlock( title );
236
- const blockName = within( block ).getByText( title );
237
-
238
- expect( blockName ).toBeDefined();
239
- expect( getEditorHtml() ).toMatchSnapshot();
240
- } )
241
- );
242
- } );
243
-
244
- describe( 'set URL upon block insertion', () => {
245
- it( 'sets empty URL when dismissing edit URL modal', async () => {
246
- const editor = await insertEmbedBlock();
247
-
248
- // Wait for edit URL modal to be visible.
249
- const embedEditURLModal = editor.getByTestId(
250
- 'link-settings-navigation'
251
- );
252
- await waitForModalVisible( embedEditURLModal );
253
-
254
- // Dismiss the edit URL modal.
255
- fireEvent( embedEditURLModal, 'backdropPress' );
256
- fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
257
-
258
- expect( getEditorHtml() ).toMatchSnapshot();
259
- } );
260
-
261
- it( 'sets a valid URL when dismissing edit URL modal', async () => {
262
- const expectedURL = 'https://twitter.com/notnownikki';
263
-
264
- const editor = await insertEmbedBlock();
265
-
266
- // Wait for edit URL modal to be visible.
267
- const embedEditURLModal = editor.getByTestId(
268
- 'link-settings-navigation'
269
- );
270
- await waitForModalVisible( embedEditURLModal );
271
-
272
- // Set an URL.
273
- const linkTextInput = editor.getByPlaceholderText( 'Add link' );
274
- fireEvent( linkTextInput, 'focus' );
275
- fireEvent.changeText( linkTextInput, expectedURL );
276
-
277
- // Dismiss the edit URL modal.
278
- fireEvent( embedEditURLModal, 'backdropPress' );
279
- fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
280
-
281
- // Wait until the WebView with the rich preview appears
282
- await waitFor( () => editor.UNSAFE_getByType( WebView ) );
283
- // Wait until responsiveness settings appear, driven by `theme_supports.responsive-embeds`
284
- await editor.findByText( 'Media settings' );
285
-
286
- const blockSettingsModal = await editor.findByTestId(
287
- 'block-settings-modal'
288
- );
289
- // Get Twitter Embed link field.
290
- const twitterLinkField = within(
291
- blockSettingsModal
292
- ).getByLabelText( `Twitter Embed link, ${ expectedURL }` );
293
-
294
- expect( twitterLinkField ).toBeDefined();
295
- expect( getEditorHtml() ).toMatchSnapshot();
296
- } );
297
-
298
- it( 'auto-pastes the URL from clipboard', async () => {
299
- const clipboardURL = 'https://twitter.com/notnownikki';
300
-
301
- // Mock clipboard.
302
- Clipboard.getString.mockResolvedValue( clipboardURL );
303
-
304
- const editor = await insertEmbedBlock();
305
-
306
- // Wait for edit URL modal to be visible.
307
- const embedEditURLModal = editor.getByTestId(
308
- 'link-settings-navigation'
309
- );
310
- await waitForModalVisible( embedEditURLModal );
311
-
312
- // Get embed link with auto-pasted URL.
313
- const autopastedLinkField = await editor.findByText( clipboardURL );
314
-
315
- // Dismiss the edit URL modal.
316
- fireEvent( embedEditURLModal, 'backdropPress' );
317
- fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
318
-
319
- await waitFor( () => editor.UNSAFE_getByType( WebView ) );
320
- await editor.findByText( 'Media settings' );
321
-
322
- const blockSettingsModal = await editor.findByTestId(
323
- 'block-settings-modal'
324
- );
325
- // Get Twitter Embed link field.
326
- const twitterLinkField = within(
327
- blockSettingsModal
328
- ).getByLabelText( `Twitter Embed link, ${ clipboardURL }` );
329
-
330
- expect( autopastedLinkField ).toBeDefined();
331
- expect( twitterLinkField ).toBeDefined();
332
- expect( getEditorHtml() ).toMatchSnapshot();
333
-
334
- Clipboard.getString.mockReset();
335
- } );
336
- } );
337
-
338
- describe( 'set URL when empty block', () => {
339
- it( 'sets empty URL when dismissing edit URL modal', async () => {
340
- const editor = await initializeWithEmbedBlock( EMPTY_EMBED_HTML );
341
-
342
- // Edit URL.
343
- fireEvent.press( await editor.findByText( 'Add link' ) );
344
-
345
- // Wait for edit URL modal to be visible.
346
- const embedEditURLModal = editor.getByTestId(
347
- 'link-settings-navigation'
348
- );
349
- await waitForModalVisible( embedEditURLModal );
350
-
351
- // Dismiss the edit URL modal.
352
- fireEvent( embedEditURLModal, 'backdropPress' );
353
- fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
354
-
355
- expect( getEditorHtml() ).toMatchSnapshot();
356
- } );
357
-
358
- it( 'sets a valid URL when dismissing edit URL modal', async () => {
359
- const expectedURL = 'https://twitter.com/notnownikki';
360
-
361
- const editor = await initializeWithEmbedBlock( EMPTY_EMBED_HTML );
362
-
363
- // Edit URL.
364
- fireEvent.press( editor.getByText( 'Add link' ) );
365
-
366
- // Wait for edit URL modal to be visible.
367
- const embedEditURLModal = editor.getByTestId(
368
- 'link-settings-navigation'
369
- );
370
- await waitForModalVisible( embedEditURLModal );
371
-
372
- // Set an URL.
373
- const linkTextInput = editor.getByPlaceholderText( 'Add link' );
374
- fireEvent( linkTextInput, 'focus' );
375
- fireEvent.changeText( linkTextInput, expectedURL );
376
-
377
- // Dismiss the edit URL modal.
378
- fireEvent( embedEditURLModal, 'backdropPress' );
379
- fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
380
-
381
- await waitFor( () => editor.UNSAFE_getByType( WebView ) );
382
- await editor.findByText( 'Media settings' );
383
-
384
- const blockSettingsModal = await editor.findByTestId(
385
- 'block-settings-modal'
386
- );
387
- // Get Twitter Embed link field.
388
- const twitterLinkField = within(
389
- blockSettingsModal
390
- ).getByLabelText( `Twitter Embed link, ${ expectedURL }` );
391
-
392
- expect( twitterLinkField ).toBeDefined();
393
- expect( getEditorHtml() ).toMatchSnapshot();
394
- } );
395
-
396
- it( 'auto-pastes the URL from clipboard', async () => {
397
- const clipboardURL = 'https://twitter.com/notnownikki';
398
-
399
- // Mock clipboard.
400
- Clipboard.getString.mockResolvedValue( clipboardURL );
401
-
402
- const editor = await initializeWithEmbedBlock( EMPTY_EMBED_HTML );
403
-
404
- // Edit URL.
405
- fireEvent.press( editor.getByText( 'Add link' ) );
406
-
407
- // Wait for edit URL modal to be visible.
408
- const embedEditURLModal = editor.getByTestId(
409
- 'link-settings-navigation'
410
- );
411
- await waitForModalVisible( embedEditURLModal );
412
-
413
- // Get embed link.
414
- const embedLink = await editor.findByText( clipboardURL );
415
-
416
- // Dismiss the edit URL modal.
417
- fireEvent( embedEditURLModal, 'backdropPress' );
418
- fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
419
-
420
- await waitFor( () => editor.UNSAFE_getByType( WebView ) );
421
- await editor.findByText( 'Media settings' );
422
-
423
- const blockSettingsModal = await editor.findByTestId(
424
- 'block-settings-modal'
425
- );
426
- // Get Twitter Embed link field.
427
- const twitterLinkField = within(
428
- blockSettingsModal
429
- ).getByLabelText( `Twitter Embed link, ${ clipboardURL }` );
430
-
431
- expect( embedLink ).toBeDefined();
432
- expect( twitterLinkField ).toBeDefined();
433
- expect( getEditorHtml() ).toMatchSnapshot();
434
-
435
- Clipboard.getString.mockReset();
436
- } );
437
- } );
438
-
439
- describe( 'edit URL', () => {
440
- it( 'keeps the previous URL if no URL is set', async () => {
441
- const editor =
442
- await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
443
-
444
- // Open Block Settings.
445
- fireEvent.press( await editor.findByLabelText( 'Open Settings' ) );
446
-
447
- // Wait for Block Settings to be visible.
448
- const blockSettingsModal = editor.getByTestId(
449
- 'block-settings-modal'
450
- );
451
- await waitForModalVisible( blockSettingsModal );
452
-
453
- // Dismiss the Block Settings modal.
454
- fireEvent( blockSettingsModal, 'backdropPress' );
455
- fireEvent( blockSettingsModal, MODAL_DISMISS_EVENT );
456
-
457
- expect( getEditorHtml() ).toMatchSnapshot();
458
- } );
459
-
460
- it( 'replaces URL', async () => {
461
- const initialURL = 'https://twitter.com/notnownikki';
462
- const expectedURL = 'https://www.youtube.com/watch?v=lXMskKTw3Bc';
463
-
464
- const editor =
465
- await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
466
-
467
- // Open Block Settings.
468
- fireEvent.press( await editor.findByLabelText( 'Open Settings' ) );
469
-
470
- // Wait for Block Settings to be visible.
471
- const blockSettingsModal = editor.getByTestId(
472
- 'block-settings-modal'
473
- );
474
- await waitForModalVisible( blockSettingsModal );
475
-
476
- // Start editing Embed link.
477
- fireEvent.press(
478
- within( blockSettingsModal ).getByLabelText(
479
- `Twitter Embed link, ${ initialURL }`
480
- )
481
- );
482
-
483
- // Replace URL.
484
- const linkTextInput = editor.getByDisplayValue( initialURL );
485
- fireEvent( linkTextInput, 'focus' );
486
- fireEvent.changeText( linkTextInput, expectedURL );
487
-
488
- // Dismiss the Block Settings modal.
489
- fireEvent( blockSettingsModal, 'backdropPress' );
490
- fireEvent( blockSettingsModal, MODAL_DISMISS_EVENT );
491
-
492
- await waitFor( () => editor.UNSAFE_getByType( WebView ) );
493
- await editor.findByText( 'Media settings' );
494
-
495
- // Get YouTube Embed link field.
496
- const youtubeLinkField = await within(
497
- blockSettingsModal
498
- ).findByLabelText( `YouTube Embed link, ${ expectedURL }` );
499
-
500
- expect( youtubeLinkField ).toBeDefined();
501
- expect( getEditorHtml() ).toMatchSnapshot();
502
- } );
503
-
504
- it( 'keeps the previous URL if an invalid URL is set', async () => {
505
- const previousURL = 'https://twitter.com/notnownikki';
506
- const invalidURL = 'http://';
507
-
508
- const editor =
509
- await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
510
-
511
- // Open Block Settings.
512
- fireEvent.press( await editor.findByLabelText( 'Open Settings' ) );
513
-
514
- // Wait for Block Settings to be visible.
515
- const blockSettingsModal = editor.getByTestId(
516
- 'block-settings-modal'
517
- );
518
- await waitForModalVisible( blockSettingsModal );
519
-
520
- // Start editing link.
521
- fireEvent.press(
522
- within( blockSettingsModal ).getByLabelText(
523
- `Twitter Embed link, ${ previousURL }`
524
- )
525
- );
526
-
527
- // Replace URL.
528
- const linkTextInput = editor.getByDisplayValue( previousURL );
529
- fireEvent( linkTextInput, 'focus' );
530
- fireEvent.changeText( linkTextInput, invalidURL );
531
-
532
- // Dismiss the Block Settings modal.
533
- fireEvent( blockSettingsModal, 'backdropPress' );
534
- fireEvent( blockSettingsModal, MODAL_DISMISS_EVENT );
535
-
536
- const errorNotice = await editor.findByText(
537
- 'Invalid URL. Please enter a valid URL.'
538
- );
539
-
540
- expect( errorNotice ).toBeDefined();
541
- expect( getEditorHtml() ).toMatchSnapshot();
542
- } );
543
-
544
- it( 'sets empty state when setting an empty URL', async () => {
545
- const previousURL = 'https://twitter.com/notnownikki';
546
-
547
- const editor =
548
- await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
549
-
550
- // Open Block Settings.
551
- fireEvent.press( await editor.findByLabelText( 'Open Settings' ) );
552
-
553
- // Get Block Settings modal.
554
- const blockSettingsModal = editor.getByTestId(
555
- 'block-settings-modal'
556
- );
557
-
558
- // Start editing link.
559
- fireEvent.press(
560
- within( blockSettingsModal ).getByLabelText(
561
- `Twitter Embed link, ${ previousURL }`
562
- )
563
- );
564
-
565
- // Replace URL with empty value.
566
- const linkTextInput = editor.getByDisplayValue( previousURL );
567
- fireEvent( linkTextInput, 'focus' );
568
- fireEvent.changeText( linkTextInput, '' );
569
-
570
- // Dismiss the Block Settings modal.
571
- fireEvent( blockSettingsModal, 'backdropPress' );
572
- fireEvent( blockSettingsModal, MODAL_DISMISS_EVENT );
573
-
574
- // Get empty embed link.
575
- const emptyLinkTextInput =
576
- await editor.findByPlaceholderText( 'Add link' );
577
-
578
- expect( emptyLinkTextInput ).toBeDefined();
579
- expect( getEditorHtml() ).toMatchSnapshot();
580
- } );
581
-
582
- // This test case covers the bug fixed in PR #35460.
583
- it( 'edits URL after dismissing two times the edit URL bottom sheet with empty value', async () => {
584
- const editor = await insertEmbedBlock();
585
-
586
- // Wait for edit URL modal to be visible.
587
- const embedEditURLModal = editor.getByTestId(
588
- 'link-settings-navigation'
589
- );
590
- await waitForModalVisible( embedEditURLModal );
591
-
592
- // Dismiss the edit URL modal.
593
- fireEvent( embedEditURLModal, 'backdropPress' );
594
- fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
595
-
596
- // Select block.
597
- fireEvent.press( editor.block );
598
-
599
- // Edit URL.
600
- fireEvent.press( editor.getByText( 'Add link' ) );
601
-
602
- // Wait for edit URL modal to be visible.
603
- await waitForModalVisible( embedEditURLModal );
604
-
605
- // Dismiss the edit URL modal.
606
- fireEvent( embedEditURLModal, 'backdropPress' );
607
- fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
608
-
609
- // Edit URL.
610
- fireEvent.press( editor.getByText( 'Add link' ) );
611
-
612
- // Wait for edit URL modal to be visible.
613
- await waitForModalVisible( embedEditURLModal );
614
-
615
- expect( embedEditURLModal.props.isVisible ).toBe( true );
616
- } );
617
-
618
- // This test case covers the bug fixed in PR #35013.
619
- it( 'edits URL when edited after setting a bad URL of a provider', async () => {
620
- const badURL = 'https://youtu.be/BAD_URL';
621
- const expectedURL = 'https://twitter.com/notnownikki';
622
-
623
- const editor = await insertEmbedBlock();
624
-
625
- // Wait for edit URL modal to be visible.
626
- const embedEditURLModal = editor.getByTestId(
627
- 'link-settings-navigation'
628
- );
629
- await waitForModalVisible( embedEditURLModal );
630
-
631
- // Set an bad URL.
632
- let linkTextInput = editor.getByPlaceholderText( 'Add link' );
633
- fireEvent( linkTextInput, 'focus' );
634
- fireEvent.changeText( linkTextInput, badURL );
635
-
636
- // Dismiss the edit URL modal.
637
- fireEvent( embedEditURLModal, 'backdropPress' );
638
- fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
639
-
640
- // Open Block Settings.
641
- fireEvent.press( await editor.findByLabelText( 'Open Settings' ) );
642
-
643
- // Wait for Block Settings to be visible.
644
- const blockSettingsModal = editor.getByTestId(
645
- 'block-settings-modal'
646
- );
647
- await waitForModalVisible( blockSettingsModal );
648
-
649
- // Start editing link.
650
- fireEvent.press(
651
- within( blockSettingsModal ).getByLabelText(
652
- `Embed link, ${ badURL }`
653
- )
654
- );
655
-
656
- // Replace URL.
657
- linkTextInput = editor.getByDisplayValue( badURL );
658
- fireEvent( linkTextInput, 'focus' );
659
- fireEvent.changeText( linkTextInput, expectedURL );
660
-
661
- // Dismiss the Block Settings modal.
662
- fireEvent( blockSettingsModal, 'backdropPress' );
663
- fireEvent( blockSettingsModal, MODAL_DISMISS_EVENT );
664
-
665
- // Get Twitter Embed link field.
666
- const twitterLinkField = await within(
667
- blockSettingsModal
668
- ).findByLabelText( `Twitter Embed link, ${ expectedURL }` );
669
-
670
- expect( twitterLinkField ).toBeDefined();
671
- expect( getEditorHtml() ).toMatchSnapshot();
672
- } );
673
- } );
674
-
675
- describe( 'alignment options', () => {
676
- [
677
- 'Align left',
678
- 'Align center',
679
- 'Align right',
680
- 'Wide width',
681
- 'Full width',
682
- ].forEach( ( alignmentOption ) =>
683
- it( `sets ${ alignmentOption } option`, async () => {
684
- const editor =
685
- await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
686
-
687
- // Open alignment options.
688
- fireEvent.press( await editor.findByLabelText( 'Align' ) );
689
-
690
- // Select alignment option.
691
- fireEvent.press( await editor.findByText( alignmentOption ) );
692
-
693
- expect( getEditorHtml() ).toMatchSnapshot();
694
- } )
695
- );
696
- } );
697
-
698
- describe( 'retry', () => {
699
- it( 'retries loading the preview if initial request failed', async () => {
700
- const expectedURL = 'https://twitter.com/notnownikki';
701
-
702
- // Return bad response for the first request to oembed endpoint
703
- // and success response for the rest of requests.
704
- let isFirstEmbedRequest = true;
705
- fetchRequest.mockImplementation( async ( req ) => {
706
- if ( req.path.startsWith( '/oembed/1.0/proxy' ) ) {
707
- if ( isFirstEmbedRequest ) {
708
- isFirstEmbedRequest = false;
709
- return MOCK_BAD_WORDPRESS_RESPONSE;
710
- }
711
- return RICH_TEXT_EMBED_SUCCESS_RESPONSE;
712
- }
713
-
714
- return mockOtherResponses( req );
715
- } );
716
-
717
- const editor =
718
- await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
719
-
720
- await editor.findByText( 'Unable to embed media' );
721
-
722
- // Retry request.
723
- fireEvent.press( editor.getByText( 'More options' ) );
724
- fireEvent.press( editor.getByText( 'Retry' ) );
725
-
726
- await waitFor( () => editor.UNSAFE_getByType( WebView ) );
727
- await editor.findByText( 'Media settings' );
728
-
729
- const blockSettingsModal = await editor.findByTestId(
730
- 'block-settings-modal'
731
- );
732
- // Get Twitter Embed link field.
733
- const twitterLinkField = within(
734
- blockSettingsModal
735
- ).getByLabelText( `Twitter Embed link, ${ expectedURL }` );
736
-
737
- expect( twitterLinkField ).toBeDefined();
738
- expect( getEditorHtml() ).toMatchSnapshot();
739
- } );
740
-
741
- it( 'converts to link if preview request failed', async () => {
742
- // Return bad response for requests to oembed endpoint.
743
- fetchRequest.mockImplementation( async ( req ) => {
744
- if ( req.path.startsWith( '/oembed/1.0/proxy' ) ) {
745
- return MOCK_BAD_WORDPRESS_RESPONSE;
746
- }
747
-
748
- return mockOtherResponses( req );
749
- } );
750
-
751
- const editor =
752
- await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
753
-
754
- // Convert embed to link.
755
- fireEvent.press( editor.getByText( 'More options' ) );
756
- fireEvent.press( editor.getByText( 'Convert to link' ) );
757
-
758
- // Get paragraph block where the link is created.
759
- const [ paragraphBlock ] = await editor.findAllByLabelText(
760
- /Paragraph Block\. Row 1/
761
- );
762
-
763
- expect( paragraphBlock ).toBeDefined();
764
- expect( getEditorHtml() ).toMatchSnapshot();
765
- } );
766
-
767
- it( 'allows editing link if request failed', async () => {
768
- const failURL = 'https://wordpress.org/news/2021/07/tatum/';
769
- const successURL = 'https://twitter.com/notnownikki';
770
-
771
- // Return bad response for WordPress URL and success for Twitter URL.
772
- fetchRequest.mockImplementation( async ( req ) => {
773
- const matchesPath = ( url ) =>
774
- req.path ===
775
- `/oembed/1.0/proxy?url=${ encodeURIComponent( url ) }`;
776
-
777
- if ( matchesPath( failURL ) ) {
778
- return MOCK_BAD_WORDPRESS_RESPONSE;
779
- }
780
-
781
- if ( matchesPath( successURL ) ) {
782
- return RICH_TEXT_EMBED_SUCCESS_RESPONSE;
783
- }
784
-
785
- return mockOtherResponses( req );
786
- } );
787
-
788
- const editor = await initializeWithEmbedBlock( WP_EMBED_HTML );
789
-
790
- fireEvent.press( editor.getByText( 'More options' ) );
791
- fireEvent.press( editor.getByText( 'Edit link' ) );
792
-
793
- // Start editing link.
794
- fireEvent.press(
795
- editor.getByLabelText( `WordPress link, ${ failURL }` )
796
- );
797
-
798
- // Set an URL.
799
- const linkTextInput = editor.getByDisplayValue( failURL );
800
- fireEvent( linkTextInput, 'focus' );
801
- fireEvent.changeText( linkTextInput, successURL );
802
-
803
- // Dismiss the edit URL modal.
804
- const embedEditURLModal = editor.getByTestId(
805
- 'link-settings-navigation'
806
- );
807
- fireEvent( embedEditURLModal, 'backdropPress' );
808
- fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
809
-
810
- await waitFor( () => editor.UNSAFE_getByType( WebView ) );
811
-
812
- const blockSettingsModal = await editor.findByTestId(
813
- 'block-settings-modal'
814
- );
815
- // Get Twitter embed link field.
816
- const twitterLinkField = within(
817
- blockSettingsModal
818
- ).getByLabelText( `Twitter Embed link, ${ successURL }` );
819
-
820
- expect( twitterLinkField ).toBeDefined();
821
- expect( getEditorHtml() ).toMatchSnapshot();
822
- } );
823
- } );
824
-
825
- describe( 'preview coming soon', () => {
826
- it( 'previews post for providers which embed preview is not available yet', async () => {
827
- const { getByText, getByTestId } =
828
- await initializeWithEmbedBlock( PHOTO_EMBED_HTML );
829
-
830
- // Try to preview the post.
831
- fireEvent.press( getByText( 'PREVIEW POST' ) );
832
-
833
- // Wait for no preview modal to be visible.
834
- const noPreviewModal = getByTestId( 'embed-no-preview-modal' );
835
- await waitForModalVisible( noPreviewModal );
836
-
837
- // Preview post.
838
- fireEvent.press( getByText( 'Preview post' ) );
839
-
840
- // Dismiss the no preview modal.
841
- fireEvent( noPreviewModal, 'backdropPress' );
842
- fireEvent( noPreviewModal, MODAL_DISMISS_EVENT );
843
-
844
- expect( requestPreview ).toHaveBeenCalled();
845
- } );
846
-
847
- it( 'dismisses no preview modal', async () => {
848
- const { getByText, getByTestId } =
849
- await initializeWithEmbedBlock( PHOTO_EMBED_HTML );
850
-
851
- // Try to preview the post.
852
- fireEvent.press( getByText( 'PREVIEW POST' ) );
853
-
854
- // Wait for no preview modal to be visible.
855
- const noPreviewModal = getByTestId( 'embed-no-preview-modal' );
856
- await waitForModalVisible( noPreviewModal );
857
-
858
- // Dismiss modal.
859
- fireEvent.press( getByText( 'Dismiss' ) );
860
-
861
- // Wait for no preview modal to be not visible.
862
- await waitFor( () =>
863
- expect( noPreviewModal.props.isVisible ).toBe( false )
864
- );
865
-
866
- expect( requestPreview ).not.toHaveBeenCalled();
867
- } );
868
- } );
869
-
870
- describe( 'create by pasting URL', () => {
871
- it( 'creates embed block when pasting URL in paragraph block', async () => {
872
- const expectedURL = 'https://www.youtube.com/watch?v=lXMskKTw3Bc';
873
-
874
- const editor = await initializeEditor( {
875
- initialHtml: EMPTY_PARAGRAPH_HTML,
876
- } );
877
-
878
- // Paste URL in paragraph block.
879
- const paragraphText =
880
- editor.getByPlaceholderText( 'Start writing…' );
881
- fireEvent( paragraphText, 'focus' );
882
- fireEvent( paragraphText, 'paste', {
883
- preventDefault: jest.fn(),
884
- nativeEvent: {
885
- eventCount: 1,
886
- target: undefined,
887
- files: [],
888
- pastedHtml: expectedURL,
889
- pastedText: expectedURL,
890
- },
891
- } );
892
-
893
- // Wait for embed handler picker to be visible.
894
- const embedHandlerPicker = editor.getByTestId(
895
- 'embed-handler-picker'
896
- );
897
- await waitForModalVisible( embedHandlerPicker );
898
-
899
- // Select create embed option.
900
- fireEvent.press( editor.getByText( 'Create embed' ) );
901
- expect( console ).toHaveLoggedWith(
902
- 'Processed HTML piece:\n\n',
903
- `<p>${ expectedURL }</p>`
904
- );
905
-
906
- // Get the created embed block.
907
- const [ embedBlock ] =
908
- await editor.findAllByLabelText( /Embed Block\. Row 1/ );
909
-
910
- expect( embedBlock ).toBeDefined();
911
-
912
- await waitFor( () => editor.UNSAFE_getByType( WebView ) );
913
- await editor.findByText( 'Media settings' );
914
-
915
- expect( getEditorHtml() ).toMatchSnapshot();
916
- } );
917
-
918
- it( 'creates link when pasting URL in paragraph block', async () => {
919
- const expectedURL = 'https://www.youtube.com/watch?v=lXMskKTw3Bc';
920
-
921
- const editor = await initializeEditor( {
922
- initialHtml: EMPTY_PARAGRAPH_HTML,
923
- } );
924
-
925
- // Paste URL in paragraph block.
926
- const paragraphText =
927
- editor.getByPlaceholderText( 'Start writing…' );
928
- fireEvent( paragraphText, 'focus' );
929
- fireEvent( paragraphText, 'paste', {
930
- preventDefault: jest.fn(),
931
- nativeEvent: {
932
- eventCount: 1,
933
- target: undefined,
934
- files: [],
935
- pastedHtml: expectedURL,
936
- pastedText: expectedURL,
937
- },
938
- } );
939
-
940
- // Wait for embed handler picker to be visible.
941
- const embedHandlerPicker = editor.getByTestId(
942
- 'embed-handler-picker'
943
- );
944
- await waitForModalVisible( embedHandlerPicker );
945
-
946
- // Select create link option.
947
- fireEvent.press( editor.getByText( 'Create link' ) );
948
- expect( console ).toHaveLoggedWith(
949
- 'Processed HTML piece:\n\n',
950
- `<p>${ expectedURL }</p>`
951
- );
952
-
953
- // Get the link text.
954
- const linkText = await editor.findByDisplayValue(
955
- `<p><a href="${ expectedURL }">${ expectedURL }</a></p>`
956
- );
957
-
958
- expect( linkText ).toBeDefined();
959
- expect( getEditorHtml() ).toMatchSnapshot();
960
- } );
961
- } );
962
-
963
- describe( 'insert via slash inserter', () => {
964
- it( 'insert generic embed block', async () => {
965
- const embedBlockSlashInserter = '/Embed';
966
- const editor = await initializeEditor( {
967
- initialHtml: EMPTY_PARAGRAPH_HTML,
968
- } );
969
-
970
- const paragraphText =
971
- editor.getByPlaceholderText( 'Start writing…' );
972
- fireEvent( paragraphText, 'focus' );
973
- // Trigger onSelectionChange to update both the current text and text selection.
974
- // This event is required by the autocompleter, as it only displays the slash inserter
975
- // if the text selection is located at the end of the text, for this reason,
976
- // the start and end arguments match the text length.
977
- fireEvent(
978
- paragraphText,
979
- 'onSelectionChange',
980
- embedBlockSlashInserter.length,
981
- embedBlockSlashInserter.length,
982
- embedBlockSlashInserter,
983
- {
984
- nativeEvent: {
985
- eventCount: 1,
986
- target: undefined,
987
- text: embedBlockSlashInserter,
988
- },
989
- }
990
- );
991
-
992
- fireEvent.press( await editor.findByText( 'Embed' ) );
993
-
994
- const [ block ] =
995
- await editor.findAllByLabelText( /Embed Block\. Row 1/ );
996
-
997
- const blockName = within( block ).getByText( 'Embed' );
998
-
999
- expect( blockName ).toBeDefined();
1000
- expect( getEditorHtml() ).toMatchSnapshot();
1001
- } );
1002
-
1003
- MOST_USED_PROVIDERS.forEach( ( { title } ) =>
1004
- it( `inserts ${ title } block`, async () => {
1005
- // Get just the first word of the title ("Twitter") as the full title ("Twitter Embed") breaks the test.
1006
- const embedBlockSlashInserter = `/${ title.split( ' ' )[ 0 ] }`;
1007
- const editor = await initializeEditor( {
1008
- initialHtml: EMPTY_PARAGRAPH_HTML,
1009
- } );
1010
-
1011
- const paragraphText =
1012
- editor.getByPlaceholderText( 'Start writing…' );
1013
- fireEvent( paragraphText, 'focus' );
1014
- // Trigger onSelectionChange to update both the current text and text selection.
1015
- // This event is required by the autocompleter, as it only displays the slash inserter
1016
- // if the text selection is located at the end of the text, for this reason,
1017
- // the start and end arguments match the text length.
1018
- fireEvent(
1019
- paragraphText,
1020
- 'onSelectionChange',
1021
- embedBlockSlashInserter.length,
1022
- embedBlockSlashInserter.length,
1023
- embedBlockSlashInserter,
1024
- {
1025
- nativeEvent: {
1026
- eventCount: 1,
1027
- target: undefined,
1028
- text: embedBlockSlashInserter,
1029
- },
1030
- }
1031
- );
1032
-
1033
- fireEvent.press( await editor.findByText( title ) );
1034
-
1035
- const [ block ] =
1036
- await editor.findAllByLabelText( /Embed Block\. Row 1/ );
1037
-
1038
- const blockName = within( block ).getByText( title );
1039
-
1040
- expect( blockName ).toBeDefined();
1041
- expect( getEditorHtml() ).toMatchSnapshot();
1042
- } )
1043
- );
1044
- } );
1045
-
1046
- it( 'sets block caption', async () => {
1047
- const expectedCaption = 'Caption';
1048
-
1049
- const screen = await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
1050
-
1051
- // Set a caption.
1052
- const captionField = screen.getByPlaceholderText( 'Add caption' );
1053
- fireEvent( captionField, 'focus' );
1054
- fireEvent( captionField, 'onChange', {
1055
- nativeEvent: {
1056
- eventCount: 1,
1057
- target: undefined,
1058
- text: expectedCaption,
1059
- },
1060
- } );
1061
-
1062
- // Get current caption.
1063
- const caption = await screen.findByDisplayValue(
1064
- `<p>${ expectedCaption }</p>`
1065
- );
1066
-
1067
- expect( caption ).toBeDefined();
1068
- expect( getEditorHtml() ).toMatchSnapshot();
1069
- } );
1070
-
1071
- it( 'displays cannot embed on the placeholder if preview data is null', async () => {
1072
- // Return null response for requests to oembed endpoint.
1073
- fetchRequest.mockImplementation( async ( req ) => {
1074
- if ( req.path.startsWith( '/oembed/1.0/proxy' ) ) {
1075
- return EMBED_NULL_RESPONSE;
1076
- }
1077
-
1078
- return mockOtherResponses( req );
1079
- } );
1080
-
1081
- const { getByText } = await initializeWithEmbedBlock(
1082
- RICH_TEXT_ERROR_EMBED_HTML
1083
- );
1084
-
1085
- const cannotEmbedText = getByText( 'Unable to embed media' );
1086
-
1087
- expect( cannotEmbedText ).toBeDefined();
1088
- expect( getEditorHtml() ).toMatchSnapshot();
1089
- } );
1090
-
1091
- describe( 'block settings', () => {
1092
- it( 'toggles resize for smaller devices media settings', async () => {
1093
- const screen =
1094
- await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
1095
-
1096
- // Open Block Settings.
1097
- fireEvent.press( await screen.findByLabelText( 'Open Settings' ) );
1098
-
1099
- // Untoggle resize for smaller devices.
1100
- fireEvent.press(
1101
- await screen.findByText( /Resize for smaller devices/ )
1102
- );
1103
-
1104
- expect( getEditorHtml() ).toMatchSnapshot();
1105
- } );
1106
-
1107
- it( 'does not show media settings panel if responsive is not supported', async () => {
1108
- const screen = await initializeWithEmbedBlock( WP_EMBED_HTML );
1109
-
1110
- // Open Block Settings.
1111
- fireEvent.press( await screen.findByLabelText( 'Open Settings' ) );
1112
-
1113
- // Wait for media settings panel.
1114
- let mediaSettingsPanel;
1115
- try {
1116
- mediaSettingsPanel =
1117
- await screen.findByText( 'Media settings' );
1118
- } catch {
1119
- // NOOP.
1120
- }
1121
-
1122
- expect( mediaSettingsPanel ).not.toBeDefined();
1123
- } );
1124
- } );
1125
- } );