@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,116 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import {
5
- getEditorHtml,
6
- initializeEditor,
7
- setupCoreBlocks,
8
- transformBlock,
9
- getBlockTransformOptions,
10
- } from 'test/helpers';
11
-
12
- const block = 'Cover';
13
- const initialHtmlWithImage = `
14
- <!-- wp:cover {"url":"https://cldup.com/cXyG__fTLN.jpg","id":890,"dimRatio":20,"overlayColor":"luminous-vivid-orange","isUserOverlayColor":true,"focalPoint":{"x":"0.63","y":"0.83"},"minHeight":219} -->
15
- <div class="wp-block-cover" style="min-height:219px"><img class="wp-block-cover__image-background wp-image-890" alt="" src="https://cldup.com/cXyG__fTLN.jpg" style="object-position:63% 83%" data-object-fit="cover" data-object-position="63% 83%"/><span aria-hidden="true" class="wp-block-cover__background has-luminous-vivid-orange-background-color has-background-dim-20 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:paragraph {"align":"center","placeholder":"Write title…","className":"has-text-color has-very-light-gray-color","fontSize":"large"} -->
16
- <p class="has-text-align-center has-text-color has-very-light-gray-color has-large-font-size">Cool cover</p>
17
- <!-- /wp:paragraph --></div></div>
18
- <!-- /wp:cover -->`;
19
- const initialHtmlWithVideo = `
20
- <!-- wp:cover {"url":"https://i.cloudup.com/YtZFJbuQCE.mov","id":891,"dimRatio":20,"overlayColor":"luminous-vivid-orange","isUserOverlayColor":true,"backgroundType":"video","focalPoint":{"x":"0.63","y":"0.83"},"minHeight":219,"isDark":false} -->
21
- <div class="wp-block-cover is-light" style="min-height:219px"><video class="wp-block-cover__video-background intrinsic-ignore" autoplay muted loop playsinline src="https://i.cloudup.com/YtZFJbuQCE.mov" style="object-position:63% 83%" data-object-fit="cover" data-object-position="63% 83%"></video><span aria-hidden="true" class="wp-block-cover__background has-luminous-vivid-orange-background-color has-background-dim-20 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:paragraph {"align":"center","placeholder":"Write title…","className":"has-text-color has-very-light-gray-color","fontSize":"large"} -->
22
- <p class="has-text-align-center has-text-color has-very-light-gray-color has-large-font-size">Cool cover</p>
23
- <!-- /wp:paragraph --></div></div>
24
- <!-- /wp:cover -->`;
25
-
26
- const transformsWithInnerBlocks = [ 'Columns', 'Group' ];
27
- const blockTransformsWithImage = [
28
- 'Image',
29
- 'Media & Text',
30
- ...transformsWithInnerBlocks,
31
- ];
32
- const blockTransformsWithVideo = [
33
- 'Video',
34
- 'Media & Text',
35
- ...transformsWithInnerBlocks,
36
- ];
37
-
38
- setupCoreBlocks();
39
-
40
- describe( `${ block } block transformations`, () => {
41
- describe( 'with Image', () => {
42
- test.each( blockTransformsWithImage )(
43
- 'to %s block',
44
- async ( blockTransform ) => {
45
- const screen = await initializeEditor( {
46
- initialHtml: initialHtmlWithImage,
47
- } );
48
- const newBlock = await transformBlock(
49
- screen,
50
- block,
51
- blockTransform,
52
- {
53
- isMediaBlock: true,
54
- hasInnerBlocks:
55
- transformsWithInnerBlocks.includes(
56
- blockTransform
57
- ),
58
- }
59
- );
60
- expect( newBlock ).toBeVisible();
61
- expect( getEditorHtml() ).toMatchSnapshot();
62
- }
63
- );
64
-
65
- it( 'matches expected transformation options', async () => {
66
- const screen = await initializeEditor( {
67
- initialHtml: initialHtmlWithImage,
68
- } );
69
- const transformOptions = await getBlockTransformOptions(
70
- screen,
71
- block
72
- );
73
- expect( transformOptions ).toHaveLength(
74
- blockTransformsWithImage.length
75
- );
76
- } );
77
- } );
78
-
79
- describe( 'with Video', () => {
80
- test.each( blockTransformsWithVideo )(
81
- 'to %s block',
82
- async ( blockTransform ) => {
83
- const screen = await initializeEditor( {
84
- initialHtml: initialHtmlWithVideo,
85
- } );
86
- const newBlock = await transformBlock(
87
- screen,
88
- block,
89
- blockTransform,
90
- {
91
- isMediaBlock: true,
92
- hasInnerBlocks:
93
- transformsWithInnerBlocks.includes(
94
- blockTransform
95
- ),
96
- }
97
- );
98
- expect( newBlock ).toBeVisible();
99
- expect( getEditorHtml() ).toMatchSnapshot();
100
- }
101
- );
102
-
103
- it( 'matches expected transformation options', async () => {
104
- const screen = await initializeEditor( {
105
- initialHtml: initialHtmlWithVideo,
106
- } );
107
- const transformOptions = await getBlockTransformOptions(
108
- screen,
109
- block
110
- );
111
- expect( transformOptions ).toHaveLength(
112
- blockTransformsWithVideo.length
113
- );
114
- } );
115
- } );
116
- } );
@@ -1,12 +0,0 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import webTransforms from './transforms.js';
5
- import transformationCategories from '../utils/transformation-categories';
6
-
7
- const transforms = {
8
- ...webTransforms,
9
- supportedMobileTransforms: transformationCategories.media,
10
- };
11
-
12
- export default transforms;
@@ -1,51 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
-
5
- import { colord } from 'colord';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import { useEffect, useState } from '@wordpress/element';
11
-
12
- /**
13
- * useCoverIsDark is a hook that returns a boolean variable specifying if the cover
14
- * background is dark or not.
15
- *
16
- * @param {?boolean} initialValue Initial value.
17
- * @param {?string} url Url of the media background.
18
- * @param {?number} dimRatio Transparency of the overlay color. If an image and
19
- * color are set, dimRatio is used to decide what is used
20
- * for background darkness checking purposes.
21
- * @param {?string} overlayColor String containing the overlay color value if one exists.
22
- *
23
- * @return {boolean} True if the cover background is considered "dark" and false otherwise.
24
- */
25
- export default function useCoverIsDark(
26
- initialValue = false,
27
- url,
28
- dimRatio = 50,
29
- overlayColor
30
- ) {
31
- const [ isDark, setIsDark ] = useState( initialValue );
32
- useEffect( () => {
33
- // If opacity is greater than 50 the dominant color is the overlay color,
34
- // so use that color for the dark mode computation.
35
- if ( dimRatio > 50 || ! url ) {
36
- if ( ! overlayColor ) {
37
- // If no overlay color exists the overlay color is black (isDark )
38
- setIsDark( true );
39
- return;
40
- }
41
- setIsDark( colord( overlayColor ).isDark() );
42
- }
43
- }, [ overlayColor, dimRatio > 50 || ! url, setIsDark ] );
44
- useEffect( () => {
45
- if ( ! url && ! overlayColor ) {
46
- // Reset isDark.
47
- setIsDark( false );
48
- }
49
- }, [ ! url && ! overlayColor, setIsDark ] );
50
- return isDark;
51
- }
@@ -1,345 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import clsx from 'clsx';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { _x } from '@wordpress/i18n';
10
- import { useCallback, useState, useEffect } from '@wordpress/element';
11
- import { useDispatch, useSelect } from '@wordpress/data';
12
- import {
13
- useBlockProps,
14
- store as blockEditorStore,
15
- } from '@wordpress/block-editor';
16
- import { store as coreStore } from '@wordpress/core-data';
17
- import { View } from '@wordpress/primitives';
18
- /**
19
- * Internal dependencies
20
- */
21
- import {
22
- createUpgradedEmbedBlock,
23
- findMoreSuitableBlock,
24
- getClassNames,
25
- rewriteXToTwitter,
26
- removeAspectRatioClasses,
27
- fallback,
28
- getEmbedInfoByProvider,
29
- getMergedAttributesWithPreview,
30
- } from './util';
31
- import EmbedControls from './embed-controls';
32
- import { embedContentIcon } from './icons';
33
- import EmbedLoading from './embed-loading';
34
- import EmbedPlaceholder from './embed-placeholder';
35
- import EmbedPreview from './embed-preview';
36
- import EmbedLinkSettings from './embed-link-settings';
37
-
38
- // The inline preview feature will be released progressible, for this reason
39
- // the embed will only be considered previewable for the following providers list.
40
- const PREVIEWABLE_PROVIDERS = [ 'youtube', 'twitter', 'instagram', 'vimeo' ];
41
- // Some providers are rendering the inline preview as a WordPress embed and
42
- // are not supported yet, so we need to disallow them with a fixed providers list.
43
- const NOT_PREVIEWABLE_WP_EMBED_PROVIDERS = [ 'pinterest' ];
44
-
45
- const WP_EMBED_TYPE = 'wp-embed';
46
-
47
- const EmbedEdit = ( props ) => {
48
- const {
49
- attributes: { align, providerNameSlug, previewable, responsive, url },
50
- attributes,
51
- isSelected,
52
- onReplace,
53
- setAttributes,
54
- insertBlocksAfter,
55
- onFocus,
56
- clientId,
57
- } = props;
58
-
59
- const defaultEmbedInfo = {
60
- title: _x( 'Embed', 'block title' ),
61
- icon: embedContentIcon,
62
- };
63
- const embedInfoByProvider = getEmbedInfoByProvider( providerNameSlug );
64
- const { icon, title } = embedInfoByProvider || defaultEmbedInfo;
65
-
66
- const { wasBlockJustInserted } = useSelect(
67
- ( select ) => ( {
68
- wasBlockJustInserted: select(
69
- blockEditorStore
70
- ).wasBlockJustInserted( clientId, 'inserter_menu' ),
71
- } ),
72
- [ clientId ]
73
- );
74
- const [ isEditingURL, setIsEditingURL ] = useState(
75
- isSelected && wasBlockJustInserted && ! url
76
- );
77
- const [ showEmbedBottomSheet, setShowEmbedBottomSheet ] =
78
- useState( isEditingURL );
79
- const { invalidateResolution } = useDispatch( coreStore );
80
- const { __unstableMarkNextChangeAsNotPersistent } =
81
- useDispatch( blockEditorStore );
82
-
83
- const { preview, fetching, themeSupportsResponsive, cannotEmbed } =
84
- useSelect(
85
- ( select ) => {
86
- const {
87
- getEmbedPreview,
88
- hasFinishedResolution,
89
- isPreviewEmbedFallback,
90
- getThemeSupports,
91
- } = select( coreStore );
92
- if ( ! url ) {
93
- return { fetching: false, cannotEmbed: false };
94
- }
95
-
96
- const embedPreview = getEmbedPreview( url );
97
- const hasResolvedEmbedPreview = hasFinishedResolution(
98
- 'getEmbedPreview',
99
- [ url ]
100
- );
101
- const previewIsFallback = isPreviewEmbedFallback( url );
102
-
103
- // The external oEmbed provider does not exist. We got no type info and no html.
104
- const badEmbedProvider =
105
- embedPreview?.html === false &&
106
- embedPreview?.type === undefined;
107
- // Some WordPress URLs that can't be embedded will cause the API to return
108
- // a valid JSON response with no HTML and `code` set to 404, rather
109
- // than generating a fallback response as other embeds do.
110
- const wordpressCantEmbed = embedPreview?.code === '404';
111
- const validPreview =
112
- !! embedPreview &&
113
- ! badEmbedProvider &&
114
- ! wordpressCantEmbed;
115
-
116
- return {
117
- preview: validPreview ? embedPreview : undefined,
118
- fetching: ! hasResolvedEmbedPreview,
119
- themeSupportsResponsive:
120
- getThemeSupports()[ 'responsive-embeds' ],
121
- cannotEmbed: ! validPreview || previewIsFallback,
122
- };
123
- },
124
- [ url ]
125
- );
126
-
127
- /**
128
- * Returns the attributes derived from the preview, merged with the current attributes.
129
- *
130
- * @return {Object} Merged attributes.
131
- */
132
- const getMergedAttributes = () =>
133
- getMergedAttributesWithPreview(
134
- attributes,
135
- preview,
136
- title,
137
- responsive
138
- );
139
-
140
- const toggleResponsive = () => {
141
- const { allowResponsive, className } = attributes;
142
- const { html } = preview;
143
- const newAllowResponsive = ! allowResponsive;
144
-
145
- setAttributes( {
146
- allowResponsive: newAllowResponsive,
147
- className: getClassNames(
148
- html,
149
- className,
150
- responsive && newAllowResponsive
151
- ),
152
- } );
153
- };
154
-
155
- // When the preview can't be embedded, retry without any trailing slash.
156
- useEffect( () => {
157
- if ( ! cannotEmbed || fetching || ! url ) {
158
- return;
159
- }
160
-
161
- const newURL = url.replace( /\/$/, '' );
162
- if ( newURL === url ) {
163
- return;
164
- }
165
-
166
- setIsEditingURL( false );
167
- __unstableMarkNextChangeAsNotPersistent();
168
- setAttributes( { url: newURL } );
169
- }, [
170
- url,
171
- cannotEmbed,
172
- fetching,
173
- setAttributes,
174
- __unstableMarkNextChangeAsNotPersistent,
175
- ] );
176
-
177
- // Apply preview-derived attributes once the preview resolves.
178
- useEffect( () => {
179
- if ( ! preview || isEditingURL ) {
180
- return;
181
- }
182
-
183
- const mergedAttributes = getMergedAttributes();
184
-
185
- if ( onReplace ) {
186
- const upgradedBlock = createUpgradedEmbedBlock(
187
- props,
188
- mergedAttributes
189
- );
190
-
191
- if ( upgradedBlock ) {
192
- // Mutate via setAttributes; onReplace would remount the
193
- // block and clear the URL textbox on undo.
194
- __unstableMarkNextChangeAsNotPersistent();
195
- setAttributes( upgradedBlock.attributes );
196
- return;
197
- }
198
- }
199
-
200
- const hasChanges = Object.keys( mergedAttributes ).some(
201
- ( key ) => mergedAttributes[ key ] !== attributes[ key ]
202
- );
203
-
204
- if ( hasChanges ) {
205
- // Merge into the URL-submit undo level so a single undo
206
- // reverts both the submit and the preview-driven attributes.
207
- __unstableMarkNextChangeAsNotPersistent();
208
- setAttributes( mergedAttributes );
209
- }
210
- }, [ preview, isEditingURL ] );
211
-
212
- useEffect(
213
- () => setShowEmbedBottomSheet( isEditingURL ),
214
- [ isEditingURL ]
215
- );
216
-
217
- const onEditURL = useCallback(
218
- ( value ) => {
219
- const rewrittenURL = rewriteXToTwitter( value );
220
- const urlChanged = attributes.url !== rewrittenURL;
221
-
222
- // The order of the following calls is important, we need to update the URL attribute before changing `isEditingURL`,
223
- // otherwise the side-effect that potentially replaces the block when updating the local state won't use the new URL
224
- // for creating the new block.
225
- setAttributes( {
226
- url: rewrittenURL,
227
- ...findMoreSuitableBlock( rewrittenURL )?.attributes,
228
- // If the embed URL was changed, reset the aspect ratio class so it can be recalculated.
229
- ...( urlChanged && {
230
- className: removeAspectRatioClasses( attributes.className ),
231
- } ),
232
- } );
233
- setIsEditingURL( false );
234
- },
235
- [ attributes, setAttributes ]
236
- );
237
-
238
- const blockProps = useBlockProps();
239
-
240
- if ( fetching ) {
241
- return (
242
- <View { ...blockProps }>
243
- <EmbedLoading />
244
- </View>
245
- );
246
- }
247
-
248
- const showEmbedPlaceholder = ! preview || cannotEmbed;
249
-
250
- // Even though we set attributes that get derived from the preview,
251
- // we don't access them directly because for the initial render,
252
- // the `setAttributes` call will not have taken effect. If we're
253
- // rendering responsive content, setting the responsive classes
254
- // after the preview has been rendered can result in unwanted
255
- // clipping or scrollbars. The `getAttributesFromPreview` function
256
- // that `getMergedAttributes` uses is memoized so that we're not
257
- // calculating them on every render.
258
- const {
259
- type,
260
- allowResponsive,
261
- className: classFromPreview,
262
- } = getMergedAttributes();
263
- const className = clsx( classFromPreview, props.className );
264
-
265
- const isProviderPreviewable =
266
- PREVIEWABLE_PROVIDERS.includes( providerNameSlug ) ||
267
- // For WordPress embeds, we enable the inline preview for all its providers
268
- // except the ones that are not supported yet.
269
- ( WP_EMBED_TYPE === type &&
270
- ! NOT_PREVIEWABLE_WP_EMBED_PROVIDERS.includes( providerNameSlug ) );
271
-
272
- const linkLabel = WP_EMBED_TYPE === type ? 'WordPress' : title;
273
-
274
- return (
275
- <>
276
- { showEmbedPlaceholder ? (
277
- <>
278
- <View { ...blockProps }>
279
- <EmbedPlaceholder
280
- icon={ icon }
281
- isSelected={ isSelected }
282
- label={ title }
283
- onPress={ ( event ) => {
284
- onFocus( event );
285
- setIsEditingURL( true );
286
- } }
287
- cannotEmbed={ cannotEmbed }
288
- fallback={ () => fallback( url, onReplace ) }
289
- tryAgain={ () => {
290
- invalidateResolution( 'getEmbedPreview', [
291
- url,
292
- ] );
293
- } }
294
- openEmbedLinkSettings={ () =>
295
- setShowEmbedBottomSheet( true )
296
- }
297
- />
298
- </View>
299
- </>
300
- ) : (
301
- <>
302
- <EmbedControls
303
- themeSupportsResponsive={ themeSupportsResponsive }
304
- blockSupportsResponsive={ responsive }
305
- allowResponsive={ allowResponsive }
306
- toggleResponsive={ toggleResponsive }
307
- url={ url }
308
- linkLabel={ linkLabel }
309
- onEditURL={ onEditURL }
310
- />
311
- <View { ...blockProps }>
312
- <EmbedPreview
313
- align={ align }
314
- className={ className }
315
- clientId={ clientId }
316
- icon={ icon }
317
- insertBlocksAfter={ insertBlocksAfter }
318
- isSelected={ isSelected }
319
- label={ title }
320
- onFocus={ onFocus }
321
- preview={ preview }
322
- isProviderPreviewable={ isProviderPreviewable }
323
- previewable={ previewable }
324
- type={ type }
325
- url={ url }
326
- isDefaultEmbedInfo={ ! embedInfoByProvider }
327
- />
328
- </View>
329
- </>
330
- ) }
331
- <EmbedLinkSettings
332
- // eslint-disable-next-line jsx-a11y/no-autofocus
333
- autoFocus
334
- value={ url }
335
- label={ linkLabel }
336
- isVisible={ showEmbedBottomSheet }
337
- onClose={ () => setShowEmbedBottomSheet( false ) }
338
- onSubmit={ onEditURL }
339
- withBottomSheet
340
- />
341
- </>
342
- );
343
- };
344
-
345
- export default EmbedEdit;
@@ -1,65 +0,0 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import EmbedLinkSettings from './embed-link-settings';
5
- /**
6
- * WordPress dependencies
7
- */
8
- import { __ } from '@wordpress/i18n';
9
- import { PanelBody, ToggleControl } from '@wordpress/components';
10
- import { InspectorControls } from '@wordpress/block-editor';
11
- import { useDispatch } from '@wordpress/data';
12
- // eslint-disable-next-line no-restricted-imports
13
- import { store as editPostStore } from '@wordpress/edit-post';
14
-
15
- function getResponsiveHelp( checked ) {
16
- return checked
17
- ? __(
18
- 'This embed will preserve its aspect ratio when the browser is resized.'
19
- )
20
- : __(
21
- 'This embed may not preserve its aspect ratio when the browser is resized.'
22
- );
23
- }
24
-
25
- const EmbedControls = ( {
26
- blockSupportsResponsive,
27
- themeSupportsResponsive,
28
- allowResponsive,
29
- toggleResponsive,
30
- url,
31
- linkLabel,
32
- onEditURL,
33
- } ) => {
34
- const { closeGeneralSidebar: closeSettingsBottomSheet } =
35
- useDispatch( editPostStore );
36
-
37
- return (
38
- <>
39
- <InspectorControls>
40
- { themeSupportsResponsive && blockSupportsResponsive && (
41
- <PanelBody title={ __( 'Media settings' ) }>
42
- <ToggleControl
43
- label={ __( 'Resize for smaller devices' ) }
44
- checked={ allowResponsive }
45
- help={ getResponsiveHelp }
46
- onChange={ toggleResponsive }
47
- />
48
- </PanelBody>
49
- ) }
50
- <PanelBody title={ __( 'Link settings' ) }>
51
- <EmbedLinkSettings
52
- value={ url }
53
- label={ linkLabel }
54
- onSubmit={ ( value ) => {
55
- closeSettingsBottomSheet();
56
- onEditURL( value );
57
- } }
58
- />
59
- </PanelBody>
60
- </InspectorControls>
61
- </>
62
- );
63
- };
64
-
65
- export default EmbedControls;
@@ -1,99 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __, sprintf } from '@wordpress/i18n';
5
- import {
6
- LinkSettingsNavigation,
7
- FooterMessageLink,
8
- } from '@wordpress/components';
9
- import { isURL } from '@wordpress/url';
10
- import { useDispatch } from '@wordpress/data';
11
- import { store as noticesStore } from '@wordpress/notices';
12
- import { useCallback, useEffect, useRef, useState } from '@wordpress/element';
13
-
14
- const EmbedLinkSettings = ( {
15
- autoFocus,
16
- value,
17
- label,
18
- isVisible,
19
- onClose,
20
- onSubmit,
21
- withBottomSheet,
22
- } ) => {
23
- const url = useRef( value );
24
- const [ inputURL, setInputURL ] = useState( value );
25
- const { createErrorNotice } = useDispatch( noticesStore );
26
-
27
- const linkSettingsOptions = {
28
- url: {
29
- label: sprintf(
30
- // translators: %s: embed block variant's label e.g: "Twitter".
31
- __( '%s link' ),
32
- label
33
- ),
34
- placeholder: __( 'Add link' ),
35
- autoFocus,
36
- autoFill: true,
37
- },
38
- footer: {
39
- label: (
40
- <FooterMessageLink
41
- href={ __(
42
- 'https://wordpress.org/documentation/article/embeds/'
43
- ) }
44
- value={ __( 'Learn more about embeds' ) }
45
- />
46
- ),
47
- separatorType: 'topFullWidth',
48
- },
49
- };
50
-
51
- const onDismiss = useCallback( () => {
52
- if ( ! isURL( url.current ) && url.current !== '' ) {
53
- createErrorNotice( __( 'Invalid URL. Please enter a valid URL.' ) );
54
- // If the URL was already defined, we submit it to stop showing the embed placeholder.
55
- onSubmit( value );
56
- return;
57
- }
58
- onSubmit( url.current );
59
- }, [ onSubmit, value ] );
60
-
61
- useEffect( () => {
62
- url.current = value;
63
- setInputURL( value );
64
- }, [ value ] );
65
-
66
- /**
67
- * If the Embed Bottom Sheet component does not utilize a bottom sheet then the onDismiss action is not
68
- * called. Here we are wiring the onDismiss to the onClose callback that gets triggered when input is submitted.
69
- */
70
- const performOnCloseOperations = useCallback( () => {
71
- if ( onClose ) {
72
- onClose();
73
- }
74
-
75
- if ( ! withBottomSheet ) {
76
- onDismiss();
77
- }
78
- }, [ onClose ] );
79
-
80
- const onSetAttributes = useCallback( ( attributes ) => {
81
- url.current = attributes.url;
82
- setInputURL( attributes.url );
83
- }, [] );
84
-
85
- return (
86
- <LinkSettingsNavigation
87
- isVisible={ isVisible }
88
- url={ inputURL }
89
- onClose={ performOnCloseOperations }
90
- onDismiss={ onDismiss }
91
- setAttributes={ onSetAttributes }
92
- options={ linkSettingsOptions }
93
- withBottomSheet={ withBottomSheet }
94
- showIcon
95
- />
96
- );
97
- };
98
-
99
- export default EmbedLinkSettings;