@wordpress/block-library 9.48.0 → 9.48.1

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 (519) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/build/columns/transforms.cjs +65 -0
  3. package/build/columns/transforms.cjs.map +2 -2
  4. package/build/gallery/edit.cjs +212 -331
  5. package/build/gallery/edit.cjs.map +2 -2
  6. package/build/gallery/transforms.cjs +43 -0
  7. package/build/gallery/transforms.cjs.map +2 -2
  8. package/build/heading/edit.cjs +0 -1
  9. package/build/heading/edit.cjs.map +2 -2
  10. package/build/list/edit.cjs +1 -8
  11. package/build/list/edit.cjs.map +2 -2
  12. package/build/list/ordered-list-settings.cjs +1 -44
  13. package/build/list/ordered-list-settings.cjs.map +2 -2
  14. package/build/list-item/hooks/use-merge.cjs +47 -24
  15. package/build/list-item/hooks/use-merge.cjs.map +2 -2
  16. package/build/navigation/edit/index.cjs +15 -26
  17. package/build/navigation/edit/index.cjs.map +2 -2
  18. package/build/navigation-link/edit.cjs +0 -1
  19. package/build/navigation-link/edit.cjs.map +2 -2
  20. package/build/navigation-submenu/edit.cjs +2 -1
  21. package/build/navigation-submenu/edit.cjs.map +2 -2
  22. package/build/paragraph/deprecated.cjs +1 -0
  23. package/build/paragraph/deprecated.cjs.map +2 -2
  24. package/build/paragraph/edit.cjs +10 -1
  25. package/build/paragraph/edit.cjs.map +3 -3
  26. package/build/playlist/block.json +12 -0
  27. package/build/playlist/edit.cjs +27 -1
  28. package/build/playlist/edit.cjs.map +2 -2
  29. package/build/playlist/save.cjs +8 -1
  30. package/build/playlist/save.cjs.map +2 -2
  31. package/build/playlist/view.cjs +1 -0
  32. package/build/playlist/view.cjs.map +2 -2
  33. package/build/post-time-to-read/index.cjs +1 -1
  34. package/build/post-time-to-read/index.cjs.map +2 -2
  35. package/build/post-time-to-read/variations.cjs +1 -1
  36. package/build/post-time-to-read/variations.cjs.map +2 -2
  37. package/build/pullquote/edit.cjs +2 -7
  38. package/build/pullquote/edit.cjs.map +2 -2
  39. package/build/quote/edit.cjs +4 -9
  40. package/build/quote/edit.cjs.map +2 -2
  41. package/build/shortcode/transforms.cjs +2 -2
  42. package/build/shortcode/transforms.cjs.map +2 -2
  43. package/build/utils/waveform-player.cjs +42 -9
  44. package/build/utils/waveform-player.cjs.map +2 -2
  45. package/build/utils/waveform-utils.cjs +6 -4
  46. package/build/utils/waveform-utils.cjs.map +2 -2
  47. package/build/video/edit-common-settings.cjs +3 -6
  48. package/build/video/edit-common-settings.cjs.map +2 -2
  49. package/build-module/columns/transforms.mjs +65 -0
  50. package/build-module/columns/transforms.mjs.map +2 -2
  51. package/build-module/gallery/edit.mjs +214 -334
  52. package/build-module/gallery/edit.mjs.map +2 -2
  53. package/build-module/gallery/transforms.mjs +43 -0
  54. package/build-module/gallery/transforms.mjs.map +2 -2
  55. package/build-module/heading/edit.mjs +1 -2
  56. package/build-module/heading/edit.mjs.map +2 -2
  57. package/build-module/list/edit.mjs +2 -9
  58. package/build-module/list/edit.mjs.map +2 -2
  59. package/build-module/list/ordered-list-settings.mjs +1 -45
  60. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  61. package/build-module/list-item/hooks/use-merge.mjs +48 -25
  62. package/build-module/list-item/hooks/use-merge.mjs.map +2 -2
  63. package/build-module/navigation/edit/index.mjs +16 -33
  64. package/build-module/navigation/edit/index.mjs.map +2 -2
  65. package/build-module/navigation-link/edit.mjs +0 -1
  66. package/build-module/navigation-link/edit.mjs.map +2 -2
  67. package/build-module/navigation-submenu/edit.mjs +2 -1
  68. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  69. package/build-module/paragraph/deprecated.mjs +1 -0
  70. package/build-module/paragraph/deprecated.mjs.map +2 -2
  71. package/build-module/paragraph/edit.mjs +12 -2
  72. package/build-module/paragraph/edit.mjs.map +2 -2
  73. package/build-module/playlist/block.json +12 -0
  74. package/build-module/playlist/edit.mjs +27 -1
  75. package/build-module/playlist/edit.mjs.map +2 -2
  76. package/build-module/playlist/save.mjs +8 -1
  77. package/build-module/playlist/save.mjs.map +2 -2
  78. package/build-module/playlist/view.mjs +1 -0
  79. package/build-module/playlist/view.mjs.map +2 -2
  80. package/build-module/post-time-to-read/index.mjs +1 -1
  81. package/build-module/post-time-to-read/index.mjs.map +2 -2
  82. package/build-module/post-time-to-read/variations.mjs +2 -2
  83. package/build-module/post-time-to-read/variations.mjs.map +2 -2
  84. package/build-module/pullquote/edit.mjs +2 -7
  85. package/build-module/pullquote/edit.mjs.map +2 -2
  86. package/build-module/quote/edit.mjs +5 -10
  87. package/build-module/quote/edit.mjs.map +2 -2
  88. package/build-module/shortcode/transforms.mjs +2 -2
  89. package/build-module/shortcode/transforms.mjs.map +2 -2
  90. package/build-module/utils/waveform-player.mjs +44 -11
  91. package/build-module/utils/waveform-player.mjs.map +2 -2
  92. package/build-module/utils/waveform-utils.mjs +6 -4
  93. package/build-module/utils/waveform-utils.mjs.map +2 -2
  94. package/build-module/video/edit-common-settings.mjs +4 -7
  95. package/build-module/video/edit-common-settings.mjs.map +2 -2
  96. package/build-style/comment-template/style-rtl.css +1 -0
  97. package/build-style/comment-template/style.css +1 -0
  98. package/build-style/common-rtl.css +30 -10
  99. package/build-style/common.css +30 -10
  100. package/build-style/cover/style-rtl.css +2 -1
  101. package/build-style/cover/style.css +2 -1
  102. package/build-style/editor-rtl.css +22 -11
  103. package/build-style/editor.css +22 -11
  104. package/build-style/form-input/style-rtl.css +2 -0
  105. package/build-style/form-input/style.css +2 -0
  106. package/build-style/gallery/style-rtl.css +4 -2
  107. package/build-style/gallery/style.css +4 -2
  108. package/build-style/media-text/style-rtl.css +2 -1
  109. package/build-style/media-text/style.css +2 -1
  110. package/build-style/playlist/style-rtl.css +3 -0
  111. package/build-style/playlist/style.css +3 -0
  112. package/build-style/query/editor-rtl.css +8 -4
  113. package/build-style/query/editor.css +8 -4
  114. package/build-style/read-more/style-rtl.css +1 -0
  115. package/build-style/read-more/style.css +1 -0
  116. package/build-style/reset-rtl.css +3 -1
  117. package/build-style/reset.css +3 -1
  118. package/build-style/search/style-rtl.css +3 -1
  119. package/build-style/search/style.css +3 -1
  120. package/build-style/site-logo/editor-rtl.css +2 -1
  121. package/build-style/site-logo/editor.css +2 -1
  122. package/build-style/style-rtl.css +53 -17
  123. package/build-style/style.css +53 -17
  124. package/build-style/tab/style-rtl.css +3 -1
  125. package/build-style/tab/style.css +3 -1
  126. package/build-style/template-part/editor-rtl.css +8 -4
  127. package/build-style/template-part/editor.css +8 -4
  128. package/build-style/video/style-rtl.css +2 -1
  129. package/build-style/video/style.css +2 -1
  130. package/package.json +49 -45
  131. package/src/accordion/README.md +97 -0
  132. package/src/accordion-heading/README.md +81 -0
  133. package/src/accordion-item/README.md +85 -0
  134. package/src/accordion-panel/README.md +74 -0
  135. package/src/archives/README.md +56 -0
  136. package/src/audio/README.md +55 -0
  137. package/src/avatar/README.md +74 -0
  138. package/src/block/README.md +56 -0
  139. package/src/breadcrumbs/README.md +67 -0
  140. package/src/button/README.md +93 -0
  141. package/src/buttons/README.md +80 -0
  142. package/src/calendar/README.md +51 -0
  143. package/src/categories/README.md +69 -0
  144. package/src/code/README.md +55 -0
  145. package/src/column/README.md +72 -0
  146. package/src/columns/README.md +90 -0
  147. package/src/columns/test/transforms.js +164 -0
  148. package/src/columns/transforms.js +74 -0
  149. package/src/comment-author-avatar/README.md +63 -0
  150. package/src/comment-author-name/README.md +67 -0
  151. package/src/comment-content/README.md +61 -0
  152. package/src/comment-date/README.md +67 -0
  153. package/src/comment-edit-link/README.md +67 -0
  154. package/src/comment-reply-link/README.md +63 -0
  155. package/src/comment-template/README.md +60 -0
  156. package/src/comments/README.md +88 -0
  157. package/src/comments-pagination/README.md +77 -0
  158. package/src/comments-pagination-next/README.md +64 -0
  159. package/src/comments-pagination-numbers/README.md +64 -0
  160. package/src/comments-pagination-previous/README.md +64 -0
  161. package/src/comments-title/README.md +70 -0
  162. package/src/common.scss +63 -10
  163. package/src/cover/README.md +111 -0
  164. package/src/details/README.md +65 -0
  165. package/src/embed/README.md +56 -0
  166. package/src/file/README.md +60 -0
  167. package/src/footnotes/README.md +64 -0
  168. package/src/form/README.md +90 -0
  169. package/src/form-input/README.md +74 -0
  170. package/src/form-submission-notification/README.md +50 -0
  171. package/src/form-submit-button/README.md +54 -0
  172. package/src/freeform/README.md +49 -0
  173. package/src/gallery/README.md +115 -0
  174. package/src/gallery/edit.js +213 -350
  175. package/src/gallery/test/transforms.js +155 -0
  176. package/src/gallery/transforms.js +47 -0
  177. package/src/group/README.md +80 -0
  178. package/src/heading/README.md +60 -0
  179. package/src/heading/edit.js +1 -2
  180. package/src/home-link/README.md +66 -0
  181. package/src/home-link/index.php +3 -15
  182. package/src/html/README.md +48 -0
  183. package/src/icon/README.md +63 -0
  184. package/src/image/README.md +102 -0
  185. package/src/image/index.php +4 -4
  186. package/src/latest-comments/README.md +57 -0
  187. package/src/latest-posts/README.md +71 -0
  188. package/src/list/README.md +70 -0
  189. package/src/list/edit.js +2 -9
  190. package/src/list/ordered-list-settings.js +46 -92
  191. package/src/list-item/README.md +71 -0
  192. package/src/list-item/hooks/use-merge.js +53 -46
  193. package/src/loginout/README.md +56 -0
  194. package/src/math/README.md +50 -0
  195. package/src/media-text/README.md +92 -0
  196. package/src/missing/README.md +55 -0
  197. package/src/more/README.md +49 -0
  198. package/src/navigation/README.md +115 -0
  199. package/src/navigation/edit/index.js +10 -30
  200. package/src/navigation-link/README.md +93 -0
  201. package/src/navigation-link/edit.js +0 -1
  202. package/src/navigation-link/index.php +1 -15
  203. package/src/navigation-overlay-close/README.md +48 -0
  204. package/src/navigation-submenu/README.md +84 -0
  205. package/src/navigation-submenu/edit.js +1 -0
  206. package/src/navigation-submenu/index.php +1 -17
  207. package/src/nextpage/README.md +50 -0
  208. package/src/page-list/README.md +84 -0
  209. package/src/page-list/index.php +3 -15
  210. package/src/page-list-item/README.md +77 -0
  211. package/src/paragraph/README.md +70 -0
  212. package/src/paragraph/deprecated.js +1 -0
  213. package/src/paragraph/edit.js +13 -1
  214. package/src/pattern/README.md +45 -0
  215. package/src/playlist/README.md +86 -0
  216. package/src/playlist/block.json +12 -0
  217. package/src/playlist/edit.js +27 -0
  218. package/src/playlist/index.php +10 -3
  219. package/src/playlist/save.js +9 -1
  220. package/src/playlist/style.scss +7 -0
  221. package/src/playlist/view.js +1 -0
  222. package/src/playlist-track/README.md +69 -0
  223. package/src/post-author/README.md +78 -0
  224. package/src/post-author-biography/README.md +59 -0
  225. package/src/post-author-name/README.md +63 -0
  226. package/src/post-author-name/index.php +1 -1
  227. package/src/post-comment/README.md +61 -0
  228. package/src/post-comments-count/README.md +58 -0
  229. package/src/post-comments-form/README.md +59 -0
  230. package/src/post-comments-link/README.md +60 -0
  231. package/src/post-content/README.md +71 -0
  232. package/src/post-date/README.md +65 -0
  233. package/src/post-date/index.php +1 -1
  234. package/src/post-excerpt/README.md +66 -0
  235. package/src/post-featured-image/README.md +85 -0
  236. package/src/post-featured-image/index.php +1 -1
  237. package/src/post-navigation-link/README.md +63 -0
  238. package/src/post-template/README.md +71 -0
  239. package/src/post-terms/README.md +65 -0
  240. package/src/post-time-to-read/README.md +63 -0
  241. package/src/post-time-to-read/index.js +1 -1
  242. package/src/post-time-to-read/variations.js +2 -2
  243. package/src/post-title/README.md +69 -0
  244. package/src/preformatted/README.md +50 -0
  245. package/src/pullquote/README.md +64 -0
  246. package/src/pullquote/edit.js +1 -7
  247. package/src/query/README.md +64 -0
  248. package/src/query-no-results/README.md +65 -0
  249. package/src/query-pagination/README.md +79 -0
  250. package/src/query-pagination-next/README.md +67 -0
  251. package/src/query-pagination-numbers/README.md +65 -0
  252. package/src/query-pagination-previous/README.md +67 -0
  253. package/src/query-title/README.md +65 -0
  254. package/src/query-total/README.md +66 -0
  255. package/src/quote/README.md +75 -0
  256. package/src/quote/edit.js +3 -9
  257. package/src/read-more/README.md +61 -0
  258. package/src/read-more/index.php +2 -2
  259. package/src/rss/README.md +62 -0
  260. package/src/search/README.md +66 -0
  261. package/src/separator/README.md +62 -0
  262. package/src/shortcode/README.md +44 -0
  263. package/src/shortcode/transforms.js +2 -2
  264. package/src/site-logo/README.md +72 -0
  265. package/src/site-tagline/README.md +56 -0
  266. package/src/site-title/README.md +57 -0
  267. package/src/social-link/README.md +64 -0
  268. package/src/social-links/README.md +98 -0
  269. package/src/spacer/README.md +53 -0
  270. package/src/tab/README.md +69 -0
  271. package/src/tab-list/README.md +79 -0
  272. package/src/tab-panel/README.md +75 -0
  273. package/src/tab-panels/README.md +75 -0
  274. package/src/table/README.md +71 -0
  275. package/src/table-of-contents/README.md +61 -0
  276. package/src/tabs/README.md +83 -0
  277. package/src/tag-cloud/README.md +62 -0
  278. package/src/template-part/README.md +48 -0
  279. package/src/term-count/README.md +59 -0
  280. package/src/term-description/README.md +60 -0
  281. package/src/term-name/README.md +65 -0
  282. package/src/term-template/README.md +65 -0
  283. package/src/terms-query/README.md +58 -0
  284. package/src/text-columns/README.md +51 -0
  285. package/src/utils/test/waveform-player.js +254 -0
  286. package/src/utils/waveform-player.js +90 -18
  287. package/src/utils/waveform-utils.js +15 -11
  288. package/src/verse/README.md +58 -0
  289. package/src/video/README.md +58 -0
  290. package/src/video/edit-common-settings.js +4 -7
  291. package/src/audio/edit.native.js +0 -250
  292. package/src/audio/style.native.scss +0 -13
  293. package/src/audio/test/__snapshots__/edit.native.js.snap +0 -546
  294. package/src/audio/test/__snapshots__/transforms.native.js.snap +0 -25
  295. package/src/audio/test/edit.native.js +0 -132
  296. package/src/audio/test/transforms.native.js +0 -43
  297. package/src/audio/transforms.native.js +0 -12
  298. package/src/block/edit-title.native.js +0 -67
  299. package/src/block/edit.native.js +0 -247
  300. package/src/block/editor.native.scss +0 -125
  301. package/src/block/test/__snapshots__/transforms.native.js.snap +0 -15
  302. package/src/block/test/edit.native.js +0 -262
  303. package/src/block/test/transforms.native.js +0 -40
  304. package/src/button/color-background.native.js +0 -41
  305. package/src/button/edit.native.js +0 -567
  306. package/src/button/editor.native.scss +0 -70
  307. package/src/button/rich-text.android.scss +0 -6
  308. package/src/button/rich-text.ios.scss +0 -6
  309. package/src/buttons/edit.native.js +0 -157
  310. package/src/buttons/editor.native.scss +0 -11
  311. package/src/buttons/test/__snapshots__/edit.native.js.snap +0 -99
  312. package/src/buttons/test/__snapshots__/transforms.native.js.snap +0 -31
  313. package/src/buttons/test/edit.native.js +0 -485
  314. package/src/buttons/test/transforms.native.js +0 -48
  315. package/src/buttons/transforms.native.js +0 -12
  316. package/src/code/edit.native.js +0 -70
  317. package/src/code/test/__snapshots__/edit.native.js.snap +0 -13
  318. package/src/code/test/edit.native.js +0 -65
  319. package/src/code/theme.native.scss +0 -22
  320. package/src/code/transforms.native.js +0 -12
  321. package/src/column/column-preview.native.js +0 -58
  322. package/src/column/edit.native.js +0 -273
  323. package/src/column/editor.native.scss +0 -75
  324. package/src/columns/columnCalculations.native.js +0 -178
  325. package/src/columns/edit.native.js +0 -507
  326. package/src/columns/editor.native.scss +0 -17
  327. package/src/columns/test/__snapshots__/edit.native.js.snap +0 -305
  328. package/src/columns/test/__snapshots__/transforms.native.js.snap +0 -61
  329. package/src/columns/test/edit.native.js +0 -496
  330. package/src/columns/test/transforms.native.js +0 -89
  331. package/src/columns/transforms.native.js +0 -12
  332. package/src/cover/controls.native.js +0 -307
  333. package/src/cover/edit.native.js +0 -708
  334. package/src/cover/focal-point-settings-button.native.js +0 -53
  335. package/src/cover/overlay-color-settings.native.js +0 -106
  336. package/src/cover/style.native.scss +0 -220
  337. package/src/cover/test/__snapshots__/edit.native.js.snap +0 -105
  338. package/src/cover/test/__snapshots__/transforms.native.js.snap +0 -73
  339. package/src/cover/test/edit.native.js +0 -701
  340. package/src/cover/test/transforms.native.js +0 -116
  341. package/src/cover/transforms.native.js +0 -12
  342. package/src/cover/use-cover-is-dark.native.js +0 -51
  343. package/src/embed/edit.native.js +0 -345
  344. package/src/embed/embed-controls.native.js +0 -65
  345. package/src/embed/embed-link-settings.native.js +0 -99
  346. package/src/embed/embed-loading.native.js +0 -29
  347. package/src/embed/embed-no-preview.native.js +0 -230
  348. package/src/embed/embed-placeholder.native.js +0 -178
  349. package/src/embed/embed-preview.native.js +0 -157
  350. package/src/embed/styles.native.scss +0 -196
  351. package/src/embed/test/__snapshots__/index.native.js.snap +0 -191
  352. package/src/embed/test/__snapshots__/transforms.native.js.snap +0 -23
  353. package/src/embed/test/index.native.js +0 -1125
  354. package/src/embed/test/transforms.native.js +0 -44
  355. package/src/embed/transforms.native.js +0 -12
  356. package/src/embed/wp-embed-preview.native.js +0 -80
  357. package/src/file/edit.native.js +0 -605
  358. package/src/file/style.native.scss +0 -79
  359. package/src/file/test/__snapshots__/edit.native.js.snap +0 -580
  360. package/src/file/test/__snapshots__/transforms.native.js.snap +0 -19
  361. package/src/file/test/edit.native.js +0 -93
  362. package/src/file/test/transforms.native.js +0 -43
  363. package/src/file/transforms.native.js +0 -12
  364. package/src/freeform/edit.native.js +0 -13
  365. package/src/freeform/test/__snapshots__/index.native.js.snap +0 -7
  366. package/src/freeform/test/__snapshots__/transforms.native.js.snap +0 -19
  367. package/src/freeform/test/index.native.js +0 -57
  368. package/src/freeform/test/transforms.native.js +0 -39
  369. package/src/gallery/gallery-styles.native.scss +0 -8
  370. package/src/gallery/gallery.native.js +0 -124
  371. package/src/gallery/styles.native.scss +0 -7
  372. package/src/gallery/test/__snapshots__/index.native.js.snap +0 -177
  373. package/src/gallery/test/__snapshots__/transforms.native.js.snap +0 -53
  374. package/src/gallery/test/helpers.native.js +0 -106
  375. package/src/gallery/test/index.native.js +0 -700
  376. package/src/gallery/test/transforms.native.js +0 -53
  377. package/src/gallery/test/use-get-media.native.js +0 -24
  378. package/src/gallery/transforms.native.js +0 -12
  379. package/src/gallery/use-get-media.native.js +0 -49
  380. package/src/group/edit.native.js +0 -137
  381. package/src/group/editor.native.scss +0 -56
  382. package/src/group/test/__snapshots__/edit.native.js.snap +0 -19
  383. package/src/group/test/__snapshots__/transforms.native.js.snap +0 -35
  384. package/src/group/test/edit.native.js +0 -100
  385. package/src/group/test/transforms.native.js +0 -73
  386. package/src/heading/edit.native.js +0 -159
  387. package/src/heading/test/__snapshots__/index.native.js.snap +0 -43
  388. package/src/heading/test/__snapshots__/transforms.native.js.snap +0 -47
  389. package/src/heading/test/index.native.js +0 -257
  390. package/src/heading/test/transforms.native.js +0 -46
  391. package/src/heading/transforms.native.js +0 -12
  392. package/src/html/transforms.native.js +0 -11
  393. package/src/image/edit.native.js +0 -959
  394. package/src/image/styles.native.scss +0 -70
  395. package/src/image/test/__snapshots__/transforms.native.js.snap +0 -49
  396. package/src/image/test/edit.native.js +0 -459
  397. package/src/image/test/transforms.native.js +0 -49
  398. package/src/image/transforms.native.js +0 -12
  399. package/src/index.native.js +0 -274
  400. package/src/latest-posts/edit.native.js +0 -294
  401. package/src/latest-posts/style.native.scss +0 -47
  402. package/src/latest-posts/test/__snapshots__/edit.native.js.snap +0 -3
  403. package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +0 -15
  404. package/src/latest-posts/test/edit.native.js +0 -49
  405. package/src/latest-posts/test/transforms.native.js +0 -61
  406. package/src/list/tag-name.native.js +0 -12
  407. package/src/list/test/__snapshots__/edit.native.js.snap +0 -121
  408. package/src/list/test/__snapshots__/transforms.native.js.snap +0 -85
  409. package/src/list/test/edit.native.js +0 -602
  410. package/src/list/test/transforms.native.js +0 -56
  411. package/src/list/transforms.native.js +0 -12
  412. package/src/list-item/edit.native.js +0 -175
  413. package/src/list-item/hooks/use-enter.native.js +0 -81
  414. package/src/list-item/icons.native.js +0 -34
  415. package/src/list-item/list-style-type.native.js +0 -146
  416. package/src/list-item/style.native.scss +0 -57
  417. package/src/media-text/edit.native.js +0 -417
  418. package/src/media-text/icon-retry.native.js +0 -11
  419. package/src/media-text/media-container.native.js +0 -393
  420. package/src/media-text/style.native.scss +0 -191
  421. package/src/media-text/test/__snapshots__/transforms.native.js.snap +0 -73
  422. package/src/media-text/test/edit.native.js +0 -58
  423. package/src/media-text/test/transforms.native.js +0 -116
  424. package/src/media-text/transforms.native.js +0 -12
  425. package/src/missing/edit.native.js +0 -294
  426. package/src/missing/style.native.scss +0 -79
  427. package/src/missing/test/__snapshots__/edit.native.js.snap +0 -110
  428. package/src/missing/test/edit-integration.native.js +0 -168
  429. package/src/missing/test/edit.native.js +0 -81
  430. package/src/more/edit.native.js +0 -36
  431. package/src/more/editor.native.scss +0 -21
  432. package/src/more/test/__snapshots__/edit.native.js.snap +0 -7
  433. package/src/more/test/__snapshots__/transforms.native.js.snap +0 -19
  434. package/src/more/test/edit.native.js +0 -41
  435. package/src/more/test/transforms.native.js +0 -42
  436. package/src/more/transforms.native.js +0 -12
  437. package/src/navigation-link/shared/build-css-font-sizes.php +0 -43
  438. package/src/nextpage/edit.native.js +0 -58
  439. package/src/nextpage/editor.native.scss +0 -21
  440. package/src/nextpage/test/__snapshots__/transforms.native.js.snap +0 -19
  441. package/src/nextpage/test/transforms.native.js +0 -42
  442. package/src/nextpage/transforms.native.js +0 -12
  443. package/src/paragraph/edit.native.js +0 -116
  444. package/src/paragraph/test/__snapshots__/edit.native.js.snap +0 -88
  445. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +0 -65
  446. package/src/paragraph/test/edit.native.js +0 -999
  447. package/src/paragraph/test/transforms.native.js +0 -51
  448. package/src/paragraph/transforms.native.js +0 -12
  449. package/src/preformatted/edit.native.js +0 -48
  450. package/src/preformatted/styles.native.scss +0 -30
  451. package/src/preformatted/test/__snapshots__/edit.native.js.snap +0 -95
  452. package/src/preformatted/test/__snapshots__/transforms.native.js.snap +0 -37
  453. package/src/preformatted/test/edit.native.js +0 -111
  454. package/src/preformatted/test/transforms.native.js +0 -47
  455. package/src/preformatted/transforms.native.js +0 -12
  456. package/src/pullquote/blockquote.native.js +0 -39
  457. package/src/pullquote/blockquote.native.scss +0 -8
  458. package/src/pullquote/edit.native.js +0 -128
  459. package/src/pullquote/figure.native.js +0 -33
  460. package/src/pullquote/figure.native.scss +0 -16
  461. package/src/pullquote/test/__snapshots__/transforms.native.js.snap +0 -47
  462. package/src/pullquote/test/edit.native.js +0 -73
  463. package/src/pullquote/test/transforms.native.js +0 -46
  464. package/src/pullquote/transforms.native.js +0 -12
  465. package/src/quote/test/__snapshots__/transforms.native.js.snap +0 -49
  466. package/src/quote/test/edit.native.js +0 -94
  467. package/src/quote/test/transforms.native.js +0 -69
  468. package/src/quote/transforms.native.js +0 -12
  469. package/src/search/edit.native.js +0 -486
  470. package/src/search/style.native.scss +0 -99
  471. package/src/search/test/__snapshots__/edit.native.js.snap +0 -827
  472. package/src/search/test/__snapshots__/transforms.native.js.snap +0 -15
  473. package/src/search/test/edit.native.js +0 -170
  474. package/src/search/test/transforms.native.js +0 -40
  475. package/src/separator/separator-settings.native.js +0 -3
  476. package/src/separator/test/__snapshots__/edit.native.js.snap +0 -7
  477. package/src/separator/test/__snapshots__/transforms.native.js.snap +0 -25
  478. package/src/separator/test/edit.native.js +0 -41
  479. package/src/separator/test/transforms.native.js +0 -42
  480. package/src/separator/transforms.native.js +0 -12
  481. package/src/shortcode/edit.native.js +0 -77
  482. package/src/shortcode/style.native.scss +0 -44
  483. package/src/shortcode/test/__snapshots__/edit.native.js.snap +0 -9
  484. package/src/shortcode/test/__snapshots__/transforms.native.js.snap +0 -19
  485. package/src/shortcode/test/edit.native.js +0 -70
  486. package/src/shortcode/test/transforms.native.js +0 -42
  487. package/src/shortcode/transforms.native.js +0 -12
  488. package/src/social-link/edit.native.js +0 -219
  489. package/src/social-link/editor.native.scss +0 -18
  490. package/src/social-links/edit.native.js +0 -147
  491. package/src/social-links/editor.native.scss +0 -25
  492. package/src/social-links/test/__snapshots__/edit.native.js.snap +0 -57
  493. package/src/social-links/test/__snapshots__/transforms.native.js.snap +0 -31
  494. package/src/social-links/test/edit.native.js +0 -266
  495. package/src/social-links/test/transforms.native.js +0 -53
  496. package/src/spacer/controls.native.js +0 -86
  497. package/src/spacer/edit.native.js +0 -110
  498. package/src/spacer/editor.native.scss +0 -18
  499. package/src/spacer/save.native.js +0 -18
  500. package/src/spacer/test/__snapshots__/index.native.js.snap +0 -43
  501. package/src/spacer/test/__snapshots__/transforms.native.js.snap +0 -25
  502. package/src/spacer/test/index.native.js +0 -257
  503. package/src/spacer/test/transforms.native.js +0 -42
  504. package/src/table/transforms.native.js +0 -11
  505. package/src/text-columns/transforms.native.js +0 -12
  506. package/src/utils/init-block.native.js +0 -40
  507. package/src/utils/transformation-categories.native.js +0 -47
  508. package/src/verse/test/__snapshots__/edit.native.js.snap +0 -13
  509. package/src/verse/test/__snapshots__/transforms.native.js.snap +0 -31
  510. package/src/verse/test/edit.native.js +0 -118
  511. package/src/verse/test/transforms.native.js +0 -46
  512. package/src/verse/transforms.native.js +0 -12
  513. package/src/video/edit.native.js +0 -406
  514. package/src/video/icon-retry.native.js +0 -11
  515. package/src/video/style.native.scss +0 -81
  516. package/src/video/test/__snapshots__/transforms.native.js.snap +0 -41
  517. package/src/video/test/edit.native.js +0 -53
  518. package/src/video/test/transforms.native.js +0 -49
  519. package/src/video/transforms.native.js +0 -12
@@ -1,999 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import {
5
- act,
6
- addBlock,
7
- dismissModal,
8
- getBlock,
9
- typeInRichText,
10
- fireEvent,
11
- getEditorHtml,
12
- initializeEditor,
13
- render,
14
- setupCoreBlocks,
15
- triggerBlockListLayout,
16
- waitFor,
17
- within,
18
- withFakeTimers,
19
- waitForElementToBeRemoved,
20
- waitForModalVisible,
21
- } from 'test/helpers';
22
- import Clipboard from '@react-native-clipboard/clipboard';
23
- import TextInputState from 'react-native/Libraries/Components/TextInput/TextInputState';
24
-
25
- /**
26
- * WordPress dependencies
27
- */
28
- import { BACKSPACE, ENTER } from '@wordpress/keycodes';
29
-
30
- /**
31
- * Internal dependencies
32
- */
33
- import Paragraph from '../edit';
34
-
35
- // Mock debounce to prevent potentially belated state updates.
36
- jest.mock( '@wordpress/compose/src/utils/debounce', () => ( {
37
- debounce: ( fn ) => {
38
- fn.cancel = jest.fn();
39
- return fn;
40
- },
41
- } ) );
42
- // Mock link suggestions that are fetched by the link picker
43
- // when typing a search query.
44
- jest.mock( '@wordpress/core-data/src/fetch', () => ( {
45
- __experimentalFetchLinkSuggestions: jest.fn().mockResolvedValue( [ {} ] ),
46
- } ) );
47
-
48
- setupCoreBlocks();
49
-
50
- const getTestComponentWithContent = ( content ) => {
51
- return render(
52
- <Paragraph
53
- attributes={ { content } }
54
- setAttributes={ jest.fn() }
55
- onReplace={ jest.fn() }
56
- insertBlocksAfter={ jest.fn() }
57
- />
58
- );
59
- };
60
-
61
- describe( 'Paragraph block', () => {
62
- it( 'should render without crashing and match snapshot', () => {
63
- const screen = getTestComponentWithContent( '' );
64
- expect( screen.toJSON() ).toMatchSnapshot();
65
- } );
66
-
67
- it( 'should prevent deleting the first Paragraph block when pressing backspace at the start', async () => {
68
- // Arrange
69
- const screen = await initializeEditor();
70
- await addBlock( screen, 'Paragraph' );
71
-
72
- // Act
73
- const paragraphBlock = getBlock( screen, 'Paragraph' );
74
- fireEvent.press( paragraphBlock );
75
- const paragraphTextInput =
76
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
77
- typeInRichText(
78
- paragraphTextInput,
79
- 'A quick brown fox jumps over the lazy dog.',
80
- { finalSelectionStart: 0, finalSelectionEnd: 0 }
81
- );
82
-
83
- fireEvent( paragraphTextInput, 'onKeyDown', {
84
- nativeEvent: {},
85
- preventDefault() {},
86
- keyCode: BACKSPACE,
87
- } );
88
-
89
- // Assert
90
- expect( getEditorHtml() ).toMatchSnapshot();
91
- } );
92
-
93
- it( 'should be able to use a prefix to create a Heading block', async () => {
94
- const screen = await initializeEditor();
95
- await addBlock( screen, 'Paragraph' );
96
- const text = '# ';
97
-
98
- const paragraphBlock = getBlock( screen, 'Paragraph' );
99
- fireEvent.press( paragraphBlock );
100
- const paragraphTextInput =
101
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
102
- typeInRichText( paragraphTextInput, text, {
103
- finalSelectionStart: 1,
104
- finalSelectionEnd: 1,
105
- } );
106
-
107
- fireEvent( paragraphTextInput, 'onChange', {
108
- nativeEvent: { text },
109
- preventDefault() {},
110
- } );
111
-
112
- const headingBlock = getBlock( screen, 'Heading' );
113
- expect( headingBlock ).toBeVisible();
114
- expect( getEditorHtml() ).toMatchSnapshot();
115
- } );
116
-
117
- it( 'should be able to use a prefix to create a Quote block', async () => {
118
- const screen = await initializeEditor();
119
- await addBlock( screen, 'Paragraph' );
120
- const text = '> ';
121
-
122
- const paragraphBlock = getBlock( screen, 'Paragraph' );
123
- fireEvent.press( paragraphBlock );
124
- const paragraphTextInput =
125
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
126
- typeInRichText( paragraphTextInput, text, {
127
- finalSelectionStart: 1,
128
- finalSelectionEnd: 1,
129
- } );
130
-
131
- fireEvent( paragraphTextInput, 'onChange', {
132
- nativeEvent: { text },
133
- preventDefault() {},
134
- } );
135
- const quoteBlock = getBlock( screen, 'Quote' );
136
- await triggerBlockListLayout( quoteBlock );
137
-
138
- expect( quoteBlock ).toBeVisible();
139
- expect( getEditorHtml() ).toMatchSnapshot();
140
- } );
141
-
142
- it( 'should be able to use a prefix to create a List block', async () => {
143
- const screen = await initializeEditor();
144
- await addBlock( screen, 'Paragraph' );
145
- const text = '- ';
146
-
147
- const paragraphBlock = getBlock( screen, 'Paragraph' );
148
- fireEvent.press( paragraphBlock );
149
- const paragraphTextInput =
150
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
151
- typeInRichText( paragraphTextInput, text, {
152
- finalSelectionStart: 1,
153
- finalSelectionEnd: 1,
154
- } );
155
-
156
- fireEvent( paragraphTextInput, 'onChange', {
157
- nativeEvent: { text },
158
- preventDefault() {},
159
- } );
160
- const listBlock = getBlock( screen, 'List' );
161
- await triggerBlockListLayout( listBlock );
162
-
163
- expect( listBlock ).toBeVisible();
164
- expect( getEditorHtml() ).toMatchSnapshot();
165
- } );
166
-
167
- it( 'should be able to use a prefix to create a numbered List block', async () => {
168
- const screen = await initializeEditor();
169
- await addBlock( screen, 'Paragraph' );
170
- const text = '1. ';
171
-
172
- const paragraphBlock = getBlock( screen, 'Paragraph' );
173
- fireEvent.press( paragraphBlock );
174
- const paragraphTextInput =
175
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
176
- typeInRichText( paragraphTextInput, text, {
177
- finalSelectionStart: 2,
178
- finalSelectionEnd: 2,
179
- } );
180
-
181
- fireEvent( paragraphTextInput, 'onChange', {
182
- nativeEvent: { text },
183
- preventDefault() {},
184
- } );
185
- const listBlock = getBlock( screen, 'List' );
186
- await triggerBlockListLayout( listBlock );
187
-
188
- expect( listBlock ).toBeVisible();
189
- expect( getEditorHtml() ).toMatchSnapshot();
190
- } );
191
-
192
- it( 'should bold text', async () => {
193
- // Arrange
194
- const screen = await initializeEditor();
195
- await addBlock( screen, 'Paragraph' );
196
-
197
- // Act
198
- const paragraphBlock = getBlock( screen, 'Paragraph' );
199
- fireEvent.press( paragraphBlock );
200
- const paragraphTextInput =
201
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
202
- typeInRichText(
203
- paragraphTextInput,
204
- 'A quick brown fox jumps over the lazy dog.',
205
- { finalSelectionStart: 2, finalSelectionEnd: 7 }
206
- );
207
- fireEvent.press( screen.getByLabelText( 'Bold' ) );
208
-
209
- // Assert
210
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
211
- "<!-- wp:paragraph -->
212
- <p>A <strong>quick</strong> brown fox jumps over the lazy dog.</p>
213
- <!-- /wp:paragraph -->"
214
- ` );
215
- } );
216
-
217
- it( 'should italicize text', async () => {
218
- // Arrange
219
- const screen = await initializeEditor();
220
- await addBlock( screen, 'Paragraph' );
221
-
222
- // Act
223
- const paragraphBlock = getBlock( screen, 'Paragraph' );
224
- fireEvent.press( paragraphBlock );
225
- const paragraphTextInput =
226
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
227
- typeInRichText(
228
- paragraphTextInput,
229
- 'A quick brown fox jumps over the lazy dog.',
230
- { finalSelectionStart: 2, finalSelectionEnd: 7 }
231
- );
232
- fireEvent.press( screen.getByLabelText( 'Italic' ) );
233
-
234
- // Assert
235
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
236
- "<!-- wp:paragraph -->
237
- <p>A <em>quick</em> brown fox jumps over the lazy dog.</p>
238
- <!-- /wp:paragraph -->"
239
- ` );
240
- } );
241
-
242
- it( 'should strikethrough text', async () => {
243
- // Arrange
244
- const screen = await initializeEditor();
245
- await addBlock( screen, 'Paragraph' );
246
-
247
- // Act
248
- const paragraphBlock = getBlock( screen, 'Paragraph' );
249
- fireEvent.press( paragraphBlock );
250
- const paragraphTextInput =
251
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
252
- typeInRichText(
253
- paragraphTextInput,
254
- 'A quick brown fox jumps over the lazy dog.',
255
- { finalSelectionStart: 2, finalSelectionEnd: 7 }
256
- );
257
- fireEvent.press( screen.getByLabelText( 'Strikethrough' ) );
258
-
259
- // Assert
260
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
261
- "<!-- wp:paragraph -->
262
- <p>A <s>quick</s> brown fox jumps over the lazy dog.</p>
263
- <!-- /wp:paragraph -->"
264
- ` );
265
- } );
266
-
267
- it( 'should left align text', async () => {
268
- // Arrange
269
- const screen = await initializeEditor();
270
- await addBlock( screen, 'Paragraph' );
271
-
272
- // Act
273
- const paragraphBlock = getBlock( screen, 'Paragraph' );
274
- fireEvent.press( paragraphBlock );
275
- const paragraphTextInput =
276
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
277
- typeInRichText(
278
- paragraphTextInput,
279
- 'A quick brown fox jumps over the lazy dog.'
280
- );
281
- fireEvent.press( screen.getByLabelText( 'Align text' ) );
282
- fireEvent.press( screen.getByLabelText( 'Align text left' ) );
283
-
284
- // Assert
285
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
286
- "<!-- wp:paragraph {"style":{"typography":{"textAlign":"left"}}} -->
287
- <p class="has-text-align-left">A quick brown fox jumps over the lazy dog.</p>
288
- <!-- /wp:paragraph -->"
289
- ` );
290
- } );
291
-
292
- it( 'should center align text', async () => {
293
- // Arrange
294
- const screen = await initializeEditor();
295
- await addBlock( screen, 'Paragraph' );
296
-
297
- // Act
298
- const paragraphBlock = getBlock( screen, 'Paragraph' );
299
- fireEvent.press( paragraphBlock );
300
- const paragraphTextInput =
301
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
302
- typeInRichText(
303
- paragraphTextInput,
304
- 'A quick brown fox jumps over the lazy dog.'
305
- );
306
- fireEvent.press( screen.getByLabelText( 'Align text' ) );
307
- fireEvent.press( screen.getByLabelText( 'Align text center' ) );
308
-
309
- // Assert
310
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
311
- "<!-- wp:paragraph {"style":{"typography":{"textAlign":"center"}}} -->
312
- <p class="has-text-align-center">A quick brown fox jumps over the lazy dog.</p>
313
- <!-- /wp:paragraph -->"
314
- ` );
315
- } );
316
-
317
- it( 'should right align text', async () => {
318
- // Arrange
319
- const screen = await initializeEditor();
320
- await addBlock( screen, 'Paragraph' );
321
-
322
- // Act
323
- const paragraphBlock = getBlock( screen, 'Paragraph' );
324
- fireEvent.press( paragraphBlock );
325
- const paragraphTextInput =
326
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
327
- typeInRichText(
328
- paragraphTextInput,
329
- 'A quick brown fox jumps over the lazy dog.'
330
- );
331
- fireEvent.press( screen.getByLabelText( 'Align text' ) );
332
- fireEvent.press( screen.getByLabelText( 'Align text right' ) );
333
-
334
- // Assert
335
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
336
- "<!-- wp:paragraph {"style":{"typography":{"textAlign":"right"}}} -->
337
- <p class="has-text-align-right">A quick brown fox jumps over the lazy dog.</p>
338
- <!-- /wp:paragraph -->"
339
- ` );
340
- } );
341
-
342
- it( 'should inherit parent alignment', async () => {
343
- // Arrange
344
- const screen = await initializeEditor();
345
- await addBlock( screen, 'Quote' );
346
- await triggerBlockListLayout( getBlock( screen, 'Quote' ) );
347
-
348
- // Act
349
- const paragraphBlock = getBlock( screen, 'Paragraph' );
350
- fireEvent.press( paragraphBlock );
351
- const paragraphTextInput =
352
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
353
- typeInRichText(
354
- paragraphTextInput,
355
- 'A quick brown fox jumps over the lazy dog.'
356
- );
357
- fireEvent.press( screen.getByLabelText( 'Navigate Up' ) );
358
- fireEvent.press( screen.getByLabelText( 'Align text' ) );
359
- fireEvent.press( screen.getByLabelText( 'Align text right' ) );
360
-
361
- // Assert
362
- // This not an ideal assertion, as it relies implementation details of the
363
- // component: prop names. However, the only aspect we can assert is the prop
364
- // passed to Aztec, the native module controlling visual alignment. A less
365
- // brittle alternative might be snapshotting, but RNTL does not yet support
366
- // focused snapshots, which means the snapshot would be huge.
367
- // https://github.com/facebook/react/pull/25329
368
- expect(
369
- screen.UNSAFE_queryAllByProps( {
370
- value: '<p>A quick brown fox jumps over the lazy dog.</p>',
371
- placeholder: 'Start writing…',
372
- textAlign: 'right',
373
- } ).length
374
- ).toBe( 2 ); // One for Aztec mock, one for the TextInput.
375
- } );
376
-
377
- it( 'should preserve alignment when split', async () => {
378
- // Arrange
379
- const screen = await initializeEditor();
380
- await addBlock( screen, 'Paragraph' );
381
-
382
- // Act
383
- const paragraphBlock = getBlock( screen, 'Paragraph' );
384
- fireEvent.press( paragraphBlock );
385
- fireEvent.press( screen.getByLabelText( 'Align text' ) );
386
- fireEvent.press( screen.getByLabelText( 'Align text center' ) );
387
- const paragraphTextInput =
388
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
389
- const string = 'A quick brown fox jumps over the lazy dog.';
390
- typeInRichText( paragraphTextInput, string, {
391
- finalSelectionStart: string.length / 2,
392
- finalSelectionEnd: string.length / 2,
393
- } );
394
- fireEvent( paragraphTextInput, 'onKeyDown', {
395
- nativeEvent: {},
396
- preventDefault() {},
397
- keyCode: ENTER,
398
- } );
399
-
400
- // Assert
401
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
402
- "<!-- wp:paragraph {"style":{"typography":{"textAlign":"center"}}} -->
403
- <p class="has-text-align-center">A quick brown fox jum</p>
404
- <!-- /wp:paragraph -->
405
-
406
- <!-- wp:paragraph {"style":{"typography":{"textAlign":"center"}}} -->
407
- <p class="has-text-align-center">ps over the lazy dog.</p>
408
- <!-- /wp:paragraph -->"
409
- ` );
410
- } );
411
-
412
- it( 'should link text without selection', async () => {
413
- // Arrange
414
- const screen = await initializeEditor();
415
- await addBlock( screen, 'Paragraph' );
416
-
417
- // Act
418
- const paragraphBlock = getBlock( screen, 'Paragraph' );
419
- fireEvent.press( paragraphBlock );
420
- fireEvent.press( screen.getByLabelText( 'Link' ) );
421
-
422
- fireEvent.changeText(
423
- screen.getByPlaceholderText( 'Add link text' ),
424
- 'WordPress'
425
- );
426
- fireEvent.press(
427
- screen.getByLabelText( 'Link to, Search or type URL' )
428
- );
429
- const typeURLInput = await waitFor( () =>
430
- screen.getByPlaceholderText( 'Search or type URL' )
431
- );
432
- fireEvent.changeText( typeURLInput, 'wordpress.org' );
433
- await waitForElementToBeRemoved( () =>
434
- screen.getByTestId( 'link-picker-loading' )
435
- );
436
- // Back navigation from link picker uses `setTimeout`
437
- await withFakeTimers( () => {
438
- fireEvent.press( screen.getByLabelText( 'Apply' ) );
439
- act( () => jest.runOnlyPendingTimers() );
440
- } );
441
-
442
- // Assert
443
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
444
- "<!-- wp:paragraph -->
445
- <p><a href="http://wordpress.org">WordPress</a></p>
446
- <!-- /wp:paragraph -->"
447
- ` );
448
- } );
449
-
450
- it( 'should link text with selection', async () => {
451
- // Arrange
452
- const screen = await initializeEditor();
453
- await addBlock( screen, 'Paragraph' );
454
-
455
- // Act
456
- const paragraphBlock = getBlock( screen, 'Paragraph' );
457
- fireEvent.press( paragraphBlock );
458
- const paragraphTextInput =
459
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
460
- typeInRichText(
461
- paragraphTextInput,
462
- 'A quick brown fox jumps over the lazy dog.',
463
- {
464
- finalSelectionStart: 2,
465
- finalSelectionEnd: 7,
466
- }
467
- );
468
- fireEvent.press( screen.getByLabelText( 'Link' ) );
469
- fireEvent.press(
470
- screen.getByLabelText( 'Link to, Search or type URL' )
471
- );
472
- const typeURLInput = await waitFor( () =>
473
- screen.getByPlaceholderText( 'Search or type URL' )
474
- );
475
- fireEvent.changeText( typeURLInput, 'wordpress.org' );
476
- await waitForElementToBeRemoved( () =>
477
- screen.getByTestId( 'link-picker-loading' )
478
- );
479
- // Back navigation from link picker uses `setTimeout`
480
- await withFakeTimers( () => {
481
- fireEvent.press( screen.getByLabelText( 'Apply' ) );
482
- act( () => jest.runOnlyPendingTimers() );
483
- } );
484
-
485
- // Assert
486
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
487
- "<!-- wp:paragraph -->
488
- <p>A <a href="http://wordpress.org">quick</a> brown fox jumps over the lazy dog.</p>
489
- <!-- /wp:paragraph -->"
490
- ` );
491
- } );
492
-
493
- it( 'should link text with clipboard contents', async () => {
494
- // Arrange
495
- Clipboard.getString.mockResolvedValue( 'https://wordpress.org' );
496
- const screen = await initializeEditor();
497
- await addBlock( screen, 'Paragraph' );
498
-
499
- // Act
500
- const paragraphBlock = getBlock( screen, 'Paragraph' );
501
- fireEvent.press( paragraphBlock );
502
- const paragraphTextInput =
503
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
504
- typeInRichText(
505
- paragraphTextInput,
506
- 'A quick brown fox jumps over the lazy dog.',
507
- {
508
- finalSelectionStart: 2,
509
- finalSelectionEnd: 7,
510
- }
511
- );
512
- // Await React Navigation: https://github.com/WordPress/gutenberg/issues/35685#issuecomment-961919931
513
- await act( () => fireEvent.press( screen.getByLabelText( 'Link' ) ) );
514
- // Await React Navigation: https://github.com/WordPress/gutenberg/issues/35685#issuecomment-961919931
515
- await act( () =>
516
- fireEvent.press(
517
- screen.getByLabelText( 'Link to, Search or type URL' )
518
- )
519
- );
520
-
521
- // Assert
522
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
523
- "<!-- wp:paragraph -->
524
- <p>A <a href="https://wordpress.org">quick</a> brown fox jumps over the lazy dog.</p>
525
- <!-- /wp:paragraph -->"
526
- ` );
527
-
528
- Clipboard.getString.mockReset();
529
- } );
530
-
531
- it( 'should not remove leading or trailing whitespace when formatting', async () => {
532
- // Arrange
533
- const screen = await initializeEditor();
534
- await addBlock( screen, 'Paragraph' );
535
-
536
- // Act
537
- const paragraphBlock = getBlock( screen, 'Paragraph' );
538
- fireEvent.press( paragraphBlock );
539
- const paragraphTextInput =
540
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
541
- typeInRichText( paragraphTextInput, ' some text ', {
542
- finalSelectionStart: 5,
543
- finalSelectionEnd: 14,
544
- } );
545
- fireEvent.press( screen.getByLabelText( 'Italic' ) );
546
-
547
- // Assert
548
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
549
- "<!-- wp:paragraph -->
550
- <p> <em>some text</em> </p>
551
- <!-- /wp:paragraph -->"
552
- ` );
553
- } );
554
-
555
- it( 'should set a text color', async () => {
556
- // Arrange
557
- const screen = await initializeEditor();
558
- await addBlock( screen, 'Paragraph' );
559
-
560
- // Act
561
- const paragraphBlock = getBlock( screen, 'Paragraph' );
562
- fireEvent.press( paragraphBlock );
563
- const paragraphTextInput =
564
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
565
- typeInRichText(
566
- paragraphTextInput,
567
- 'A quick brown fox jumps over the lazy dog.'
568
- );
569
- // Open Block Settings.
570
- fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
571
-
572
- // Wait for Block Settings to be visible.
573
- const blockSettingsModal = screen.getByTestId( 'block-settings-modal' );
574
- await waitFor( () => blockSettingsModal.props.isVisible );
575
-
576
- // Open Text color settings
577
- fireEvent.press( screen.getByLabelText( 'Text, Default' ) );
578
-
579
- // Tap one color
580
- fireEvent.press( screen.getByLabelText( 'Pale pink' ) );
581
- // TODO(jest-console): Fix the warning and remove the expect below.
582
- expect( console ).toHaveWarnedWith(
583
- `Non-serializable values were found in the navigation state. Check:\n\nColor > params.onColorChange (Function)\n\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`
584
- );
585
-
586
- // Dismiss the Block Settings modal.
587
- fireEvent( blockSettingsModal, 'backdropPress' );
588
-
589
- // Assert
590
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
591
- "<!-- wp:paragraph {"textColor":"pale-pink"} -->
592
- <p class="has-pale-pink-color has-text-color">A quick brown fox jumps over the lazy dog.</p>
593
- <!-- /wp:paragraph -->"
594
- ` );
595
- } );
596
-
597
- it( 'should set a background color', async () => {
598
- // Arrange
599
- const screen = await initializeEditor();
600
- await addBlock( screen, 'Paragraph' );
601
-
602
- // Act
603
- const paragraphBlock = getBlock( screen, 'Paragraph' );
604
- fireEvent.press( paragraphBlock );
605
- const paragraphTextInput =
606
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
607
- typeInRichText(
608
- paragraphTextInput,
609
- 'A quick brown fox jumps over the lazy dog.'
610
- );
611
- // Open Block Settings.
612
- fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
613
-
614
- // Wait for Block Settings to be visible.
615
- const blockSettingsModal = screen.getByTestId( 'block-settings-modal' );
616
- await waitFor( () => blockSettingsModal.props.isVisible );
617
-
618
- // Open Background color settings
619
- fireEvent.press( screen.getByLabelText( 'Background, Default' ) );
620
-
621
- // Tap one color
622
- fireEvent.press( screen.getByLabelText( 'Luminous vivid orange' ) );
623
-
624
- // Dismiss the Block Settings modal.
625
- fireEvent( blockSettingsModal, 'backdropPress' );
626
-
627
- // Assert
628
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
629
- "<!-- wp:paragraph {"backgroundColor":"luminous-vivid-orange"} -->
630
- <p class="has-luminous-vivid-orange-background-color has-background">A quick brown fox jumps over the lazy dog.</p>
631
- <!-- /wp:paragraph -->"
632
- ` );
633
- } );
634
-
635
- it( 'should set a text and background color', async () => {
636
- // Arrange
637
- const screen = await initializeEditor();
638
- await addBlock( screen, 'Paragraph' );
639
-
640
- // Act
641
- const paragraphBlock = getBlock( screen, 'Paragraph' );
642
- fireEvent.press( paragraphBlock );
643
- const paragraphTextInput =
644
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
645
- typeInRichText(
646
- paragraphTextInput,
647
- 'A quick brown fox jumps over the lazy dog.'
648
- );
649
- // Open Block Settings.
650
- fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
651
-
652
- // Wait for Block Settings to be visible.
653
- const blockSettingsModal = screen.getByTestId( 'block-settings-modal' );
654
- await waitFor( () => blockSettingsModal.props.isVisible );
655
-
656
- // Open Text color settings
657
- fireEvent.press( screen.getByLabelText( 'Text, Default' ) );
658
-
659
- // Tap one color
660
- fireEvent.press( screen.getByLabelText( 'White' ) );
661
-
662
- // Go back to the settings menu
663
- fireEvent.press( screen.getByLabelText( 'Go back' ) );
664
-
665
- // Open Background color settings
666
- fireEvent.press( screen.getByLabelText( 'Background, Default' ) );
667
-
668
- // Tap one color
669
- fireEvent.press( screen.getByLabelText( 'Luminous vivid orange' ) );
670
-
671
- // Dismiss the Block Settings modal.
672
- fireEvent( blockSettingsModal, 'backdropPress' );
673
-
674
- // Assert
675
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
676
- "<!-- wp:paragraph {"backgroundColor":"luminous-vivid-orange","textColor":"white"} -->
677
- <p class="has-white-color has-luminous-vivid-orange-background-color has-text-color has-background">A quick brown fox jumps over the lazy dog.</p>
678
- <!-- /wp:paragraph -->"
679
- ` );
680
- } );
681
-
682
- it( 'should remove text and background colors', async () => {
683
- // Arrange
684
- const screen = await initializeEditor( {
685
- initialHtml: `<!-- wp:paragraph {"backgroundColor":"luminous-vivid-orange","textColor":"white"} -->
686
- <p class="has-white-color has-luminous-vivid-orange-background-color has-text-color has-background">A quick brown fox jumps over the lazy dog.</p>
687
- <!-- /wp:paragraph -->`,
688
- } );
689
-
690
- // Act
691
- const paragraphBlock = getBlock( screen, 'Paragraph' );
692
- fireEvent.press( paragraphBlock );
693
-
694
- // Open Block Settings.
695
- fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
696
-
697
- // Wait for Block Settings to be visible.
698
- const blockSettingsModal = screen.getByTestId( 'block-settings-modal' );
699
- await waitFor( () => blockSettingsModal.props.isVisible );
700
-
701
- // Open Text color settings
702
- fireEvent.press( screen.getByLabelText( 'Text. Empty' ) );
703
-
704
- // Reset color
705
- fireEvent.press( await screen.findByText( 'Reset' ) );
706
-
707
- // Go back to the settings menu
708
- fireEvent.press( screen.getByLabelText( 'Go back' ) );
709
-
710
- // Open Background color settings
711
- fireEvent.press( screen.getByLabelText( 'Background. Empty' ) );
712
-
713
- // Reset color
714
- fireEvent.press( await screen.findByText( 'Reset' ) );
715
-
716
- // Dismiss the Block Settings modal.
717
- fireEvent( blockSettingsModal, 'backdropPress' );
718
-
719
- // Assert
720
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
721
- "<!-- wp:paragraph -->
722
- <p>A quick brown fox jumps over the lazy dog.</p>
723
- <!-- /wp:paragraph -->"
724
- ` );
725
- } );
726
-
727
- it( 'should not have a gradient background color option', async () => {
728
- // Arrange
729
- const screen = await initializeEditor();
730
- await addBlock( screen, 'Paragraph' );
731
-
732
- // Act
733
- const paragraphBlock = getBlock( screen, 'Paragraph' );
734
- fireEvent.press( paragraphBlock );
735
- const paragraphTextInput =
736
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
737
- typeInRichText(
738
- paragraphTextInput,
739
- 'A quick brown fox jumps over the lazy dog.'
740
- );
741
- // Open Block Settings.
742
- fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
743
-
744
- // Wait for Block Settings to be visible.
745
- const blockSettingsModal = screen.getByTestId( 'block-settings-modal' );
746
- await waitFor( () => blockSettingsModal.props.isVisible );
747
-
748
- // Open Background color settings
749
- fireEvent.press( screen.getByLabelText( 'Background, Default' ) );
750
-
751
- // Assert
752
- const colorButton = screen.getByLabelText( 'Luminous vivid orange' );
753
- expect( colorButton ).toBeDefined();
754
-
755
- const gradientButton = screen.queryByLabelText( 'Gradient' );
756
- expect( gradientButton ).toBeNull();
757
- } );
758
-
759
- it( 'should set a theme text color', async () => {
760
- // Arrange
761
- const screen = await initializeEditor( { withGlobalStyles: true } );
762
- await addBlock( screen, 'Paragraph' );
763
-
764
- // Act
765
- const paragraphBlock = getBlock( screen, 'Paragraph' );
766
- fireEvent.press( paragraphBlock );
767
- const paragraphTextInput =
768
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
769
- typeInRichText(
770
- paragraphTextInput,
771
- 'A quick brown fox jumps over the lazy dog.'
772
- );
773
- // Open Block Settings.
774
- fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
775
-
776
- // Wait for Block Settings to be visible.
777
- const blockSettingsModal = screen.getByTestId( 'block-settings-modal' );
778
- await waitFor( () => blockSettingsModal.props.isVisible );
779
-
780
- // Open Text color settings
781
- fireEvent.press( screen.getByLabelText( 'Text, Default' ) );
782
-
783
- // Tap one color
784
- fireEvent.press( screen.getByLabelText( 'Tertiary' ) );
785
-
786
- // Dismiss the Block Settings modal.
787
- fireEvent( blockSettingsModal, 'backdropPress' );
788
-
789
- // Assert
790
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
791
- "<!-- wp:paragraph {"textColor":"tertiary"} -->
792
- <p class="has-tertiary-color has-text-color">A quick brown fox jumps over the lazy dog.</p>
793
- <!-- /wp:paragraph -->"
794
- ` );
795
- } );
796
-
797
- it( 'should show the contrast check warning', async () => {
798
- // Arrange
799
- const screen = await initializeEditor( {
800
- initialHtml: `<!-- wp:paragraph {"backgroundColor":"white","textColor":"white"} -->
801
- <p class="has-white-color has-white-background-color has-text-color has-background">A quick brown fox jumps over the lazy dog.</p>
802
- <!-- /wp:paragraph -->`,
803
- } );
804
-
805
- // Act
806
- const paragraphBlock = getBlock( screen, 'Paragraph' );
807
- fireEvent.press( paragraphBlock );
808
-
809
- // Open Block Settings.
810
- fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
811
-
812
- // Wait for Block Settings to be visible.
813
- const blockSettingsModal = screen.getByTestId( 'block-settings-modal' );
814
- await waitFor( () => blockSettingsModal.props.isVisible );
815
-
816
- // Assert
817
- const contrastCheckElement = screen.getByText(
818
- /This color combination/
819
- );
820
- expect( contrastCheckElement ).toBeDefined();
821
- } );
822
-
823
- it( 'should highlight text with selection', async () => {
824
- // Arrange
825
- const screen = await initializeEditor( { withGlobalStyles: true } );
826
- await addBlock( screen, 'Paragraph' );
827
-
828
- // Act
829
- const paragraphBlock = getBlock( screen, 'Paragraph' );
830
- fireEvent.press( paragraphBlock );
831
- const paragraphTextInput =
832
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
833
- typeInRichText(
834
- paragraphTextInput,
835
- 'A quick brown fox jumps over the lazy dog.',
836
- { finalSelectionStart: 2, finalSelectionEnd: 7 }
837
- );
838
- fireEvent.press( screen.getByLabelText( 'Text color' ) );
839
- fireEvent.press( await screen.findByLabelText( 'Tertiary' ) );
840
- // TODO(jest-console): Fix the warning and remove the expect below.
841
- expect( console ).toHaveWarnedWith(
842
- `Non-serializable values were found in the navigation state. Check:\n\ntext-color > Palette > params.onColorChange (Function)\n\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`
843
- );
844
-
845
- // Assert
846
- expect( getEditorHtml() ).toMatchInlineSnapshot( `
847
- "<!-- wp:paragraph -->
848
- <p>A <mark style="background-color:rgba(0, 0, 0, 0);color:#2411a4" class="has-inline-color has-tertiary-color">quick</mark> brown fox jumps over the lazy dog.</p>
849
- <!-- /wp:paragraph -->"
850
- ` );
851
- } );
852
-
853
- it( 'should show the expected font sizes values', async () => {
854
- // Arrange
855
- const screen = await initializeEditor( { withGlobalStyles: true } );
856
- await addBlock( screen, 'Paragraph' );
857
-
858
- // Act
859
- const paragraphBlock = getBlock( screen, 'Paragraph' );
860
- fireEvent.press( paragraphBlock );
861
- const paragraphTextInput =
862
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
863
- typeInRichText(
864
- paragraphTextInput,
865
- 'A quick brown fox jumps over the lazy dog.'
866
- );
867
- // Open Block Settings.
868
- fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
869
-
870
- // Wait for Block Settings to be visible.
871
- const blockSettingsModal = screen.getByTestId( 'block-settings-modal' );
872
- await waitForModalVisible( blockSettingsModal );
873
-
874
- // Open Font size settings
875
- fireEvent.press( screen.getByLabelText( 'Font Size, Custom' ) );
876
- await waitFor( () => screen.getByLabelText( 'Selected: Default' ) );
877
-
878
- // Assert
879
- const modalContent = within( blockSettingsModal );
880
- expect( modalContent.getByLabelText( 'Small' ) ).toBeVisible();
881
- expect( modalContent.getByText( '14px' ) ).toBeVisible();
882
- expect( modalContent.getByLabelText( 'Medium' ) ).toBeVisible();
883
- expect( modalContent.getByText( '17px' ) ).toBeVisible();
884
- expect( modalContent.getByLabelText( 'Large' ) ).toBeVisible();
885
- expect( modalContent.getByText( '30px' ) ).toBeVisible();
886
- expect( modalContent.getByLabelText( 'Extra Large' ) ).toBeVisible();
887
- expect( modalContent.getByText( '40px' ) ).toBeVisible();
888
- expect(
889
- modalContent.getByLabelText( 'Extra Extra Large' )
890
- ).toBeVisible();
891
- expect( modalContent.getByText( '52px' ) ).toBeVisible();
892
- } );
893
-
894
- it( 'should set a font size value', async () => {
895
- // Arrange
896
- const screen = await initializeEditor( { withGlobalStyles: true } );
897
- await addBlock( screen, 'Paragraph' );
898
-
899
- // Act
900
- const paragraphBlock = getBlock( screen, 'Paragraph' );
901
- fireEvent.press( paragraphBlock );
902
- const paragraphTextInput =
903
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
904
- typeInRichText(
905
- paragraphTextInput,
906
- 'A quick brown fox jumps over the lazy dog.'
907
- );
908
- // Open Block Settings.
909
- fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
910
-
911
- // Wait for Block Settings to be visible.
912
- const blockSettingsModal = screen.getByTestId( 'block-settings-modal' );
913
- await waitForModalVisible( blockSettingsModal );
914
-
915
- // Open Font size settings
916
- fireEvent.press( screen.getByLabelText( 'Font Size, Custom' ) );
917
-
918
- // Tap one font size
919
- fireEvent.press( screen.getByLabelText( 'Large' ) );
920
-
921
- // Dismiss the Block Settings modal.
922
- await dismissModal( blockSettingsModal );
923
-
924
- // Assert
925
- expect( getEditorHtml() ).toMatchSnapshot();
926
- } );
927
-
928
- it( 'should set a line height value', async () => {
929
- // Arrange
930
- const screen = await initializeEditor( { withGlobalStyles: true } );
931
- await addBlock( screen, 'Paragraph' );
932
-
933
- // Act
934
- const paragraphBlock = getBlock( screen, 'Paragraph' );
935
- fireEvent.press( paragraphBlock );
936
- const paragraphTextInput =
937
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
938
- typeInRichText(
939
- paragraphTextInput,
940
- 'A quick brown fox jumps over the lazy dog.'
941
- );
942
- // Open Block Settings.
943
- fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
944
-
945
- // Wait for Block Settings to be visible.
946
- const blockSettingsModal = screen.getByTestId( 'block-settings-modal' );
947
- await waitForModalVisible( blockSettingsModal );
948
-
949
- const lineHeightControl = screen.getByLabelText( /Line Height/ );
950
- fireEvent.press(
951
- within( lineHeightControl ).getByText( '1.5', { hidden: true } )
952
- );
953
- const lineHeightTextInput = within(
954
- lineHeightControl
955
- ).getByDisplayValue( '1.5', { hidden: true } );
956
- fireEvent.changeText( lineHeightTextInput, '1.8' );
957
-
958
- // Dismiss the Block Settings modal.
959
- await dismissModal( blockSettingsModal );
960
-
961
- // Assert
962
- expect( getEditorHtml() ).toMatchSnapshot();
963
- } );
964
-
965
- it( 'should focus on the previous Paragraph block when backspacing in an empty Paragraph block', async () => {
966
- // Arrange
967
- const screen = await initializeEditor();
968
- await addBlock( screen, 'Paragraph' );
969
-
970
- // Act
971
- const paragraphBlock = getBlock( screen, 'Paragraph' );
972
- fireEvent.press( paragraphBlock );
973
- const paragraphTextInput =
974
- within( paragraphBlock ).getByPlaceholderText( 'Start writing…' );
975
- typeInRichText( paragraphTextInput, 'A quick brown fox jumps' );
976
-
977
- await addBlock( screen, 'Paragraph' );
978
- const secondParagraphBlock = getBlock( screen, 'Paragraph', {
979
- rowIndex: 2,
980
- } );
981
- fireEvent.press( secondParagraphBlock );
982
-
983
- // Clear mock history
984
- TextInputState.focusTextInput.mockClear();
985
-
986
- const secondParagraphTextInput =
987
- within( secondParagraphBlock ).getByPlaceholderText(
988
- 'Start writing…'
989
- );
990
- fireEvent( secondParagraphTextInput, 'onKeyDown', {
991
- nativeEvent: {},
992
- preventDefault() {},
993
- keyCode: BACKSPACE,
994
- } );
995
-
996
- // Assert
997
- expect( TextInputState.focusTextInput ).toHaveBeenCalled();
998
- } );
999
- } );