@wordpress/block-library 9.47.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 (552) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/columns/transforms.cjs +65 -0
  3. package/build/columns/transforms.cjs.map +2 -2
  4. package/build/comments/edit/placeholder.cjs +1 -1
  5. package/build/comments/edit/placeholder.cjs.map +2 -2
  6. package/build/cover/edit/inspector-controls.cjs +16 -4
  7. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  8. package/build/gallery/edit.cjs +212 -331
  9. package/build/gallery/edit.cjs.map +2 -2
  10. package/build/gallery/transforms.cjs +43 -0
  11. package/build/gallery/transforms.cjs.map +2 -2
  12. package/build/heading/edit.cjs +0 -1
  13. package/build/heading/edit.cjs.map +2 -2
  14. package/build/image/image.cjs +14 -3
  15. package/build/image/image.cjs.map +2 -2
  16. package/build/image/use-open-image-media-editor-modal.cjs +8 -2
  17. package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
  18. package/build/list/edit.cjs +1 -8
  19. package/build/list/edit.cjs.map +2 -2
  20. package/build/list/ordered-list-settings.cjs +1 -44
  21. package/build/list/ordered-list-settings.cjs.map +2 -2
  22. package/build/list-item/hooks/use-merge.cjs +47 -24
  23. package/build/list-item/hooks/use-merge.cjs.map +2 -2
  24. package/build/navigation/edit/index.cjs +15 -26
  25. package/build/navigation/edit/index.cjs.map +2 -2
  26. package/build/navigation-link/edit.cjs +0 -1
  27. package/build/navigation-link/edit.cjs.map +2 -2
  28. package/build/navigation-submenu/edit.cjs +2 -1
  29. package/build/navigation-submenu/edit.cjs.map +2 -2
  30. package/build/paragraph/deprecated.cjs +1 -0
  31. package/build/paragraph/deprecated.cjs.map +2 -2
  32. package/build/paragraph/edit.cjs +10 -1
  33. package/build/paragraph/edit.cjs.map +3 -3
  34. package/build/playlist/block.json +12 -0
  35. package/build/playlist/edit.cjs +27 -1
  36. package/build/playlist/edit.cjs.map +2 -2
  37. package/build/playlist/save.cjs +8 -1
  38. package/build/playlist/save.cjs.map +2 -2
  39. package/build/playlist/view.cjs +1 -0
  40. package/build/playlist/view.cjs.map +2 -2
  41. package/build/post-featured-image/edit.cjs +6 -4
  42. package/build/post-featured-image/edit.cjs.map +2 -2
  43. package/build/post-time-to-read/index.cjs +1 -1
  44. package/build/post-time-to-read/index.cjs.map +2 -2
  45. package/build/post-time-to-read/variations.cjs +1 -1
  46. package/build/post-time-to-read/variations.cjs.map +2 -2
  47. package/build/pullquote/edit.cjs +2 -7
  48. package/build/pullquote/edit.cjs.map +2 -2
  49. package/build/quote/edit.cjs +4 -9
  50. package/build/quote/edit.cjs.map +2 -2
  51. package/build/shortcode/transforms.cjs +2 -2
  52. package/build/shortcode/transforms.cjs.map +2 -2
  53. package/build/site-logo/edit.cjs +4 -1
  54. package/build/site-logo/edit.cjs.map +2 -2
  55. package/build/utils/waveform-player.cjs +42 -9
  56. package/build/utils/waveform-player.cjs.map +2 -2
  57. package/build/utils/waveform-utils.cjs +6 -4
  58. package/build/utils/waveform-utils.cjs.map +2 -2
  59. package/build/video/edit-common-settings.cjs +3 -6
  60. package/build/video/edit-common-settings.cjs.map +2 -2
  61. package/build-module/columns/transforms.mjs +65 -0
  62. package/build-module/columns/transforms.mjs.map +2 -2
  63. package/build-module/comments/edit/placeholder.mjs +1 -1
  64. package/build-module/comments/edit/placeholder.mjs.map +2 -2
  65. package/build-module/cover/edit/inspector-controls.mjs +16 -4
  66. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  67. package/build-module/gallery/edit.mjs +214 -334
  68. package/build-module/gallery/edit.mjs.map +2 -2
  69. package/build-module/gallery/transforms.mjs +43 -0
  70. package/build-module/gallery/transforms.mjs.map +2 -2
  71. package/build-module/heading/edit.mjs +1 -2
  72. package/build-module/heading/edit.mjs.map +2 -2
  73. package/build-module/image/image.mjs +15 -3
  74. package/build-module/image/image.mjs.map +2 -2
  75. package/build-module/image/use-open-image-media-editor-modal.mjs +8 -2
  76. package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
  77. package/build-module/list/edit.mjs +2 -9
  78. package/build-module/list/edit.mjs.map +2 -2
  79. package/build-module/list/ordered-list-settings.mjs +1 -45
  80. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  81. package/build-module/list-item/hooks/use-merge.mjs +48 -25
  82. package/build-module/list-item/hooks/use-merge.mjs.map +2 -2
  83. package/build-module/navigation/edit/index.mjs +16 -33
  84. package/build-module/navigation/edit/index.mjs.map +2 -2
  85. package/build-module/navigation-link/edit.mjs +0 -1
  86. package/build-module/navigation-link/edit.mjs.map +2 -2
  87. package/build-module/navigation-submenu/edit.mjs +2 -1
  88. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  89. package/build-module/paragraph/deprecated.mjs +1 -0
  90. package/build-module/paragraph/deprecated.mjs.map +2 -2
  91. package/build-module/paragraph/edit.mjs +12 -2
  92. package/build-module/paragraph/edit.mjs.map +2 -2
  93. package/build-module/playlist/block.json +12 -0
  94. package/build-module/playlist/edit.mjs +27 -1
  95. package/build-module/playlist/edit.mjs.map +2 -2
  96. package/build-module/playlist/save.mjs +8 -1
  97. package/build-module/playlist/save.mjs.map +2 -2
  98. package/build-module/playlist/view.mjs +1 -0
  99. package/build-module/playlist/view.mjs.map +2 -2
  100. package/build-module/post-featured-image/edit.mjs +6 -4
  101. package/build-module/post-featured-image/edit.mjs.map +2 -2
  102. package/build-module/post-time-to-read/index.mjs +1 -1
  103. package/build-module/post-time-to-read/index.mjs.map +2 -2
  104. package/build-module/post-time-to-read/variations.mjs +2 -2
  105. package/build-module/post-time-to-read/variations.mjs.map +2 -2
  106. package/build-module/pullquote/edit.mjs +2 -7
  107. package/build-module/pullquote/edit.mjs.map +2 -2
  108. package/build-module/quote/edit.mjs +5 -10
  109. package/build-module/quote/edit.mjs.map +2 -2
  110. package/build-module/shortcode/transforms.mjs +2 -2
  111. package/build-module/shortcode/transforms.mjs.map +2 -2
  112. package/build-module/site-logo/edit.mjs +5 -1
  113. package/build-module/site-logo/edit.mjs.map +2 -2
  114. package/build-module/utils/waveform-player.mjs +44 -11
  115. package/build-module/utils/waveform-player.mjs.map +2 -2
  116. package/build-module/utils/waveform-utils.mjs +6 -4
  117. package/build-module/utils/waveform-utils.mjs.map +2 -2
  118. package/build-module/video/edit-common-settings.mjs +4 -7
  119. package/build-module/video/edit-common-settings.mjs.map +2 -2
  120. package/build-style/comment-template/style-rtl.css +1 -0
  121. package/build-style/comment-template/style.css +1 -0
  122. package/build-style/common-rtl.css +30 -10
  123. package/build-style/common.css +30 -10
  124. package/build-style/cover/style-rtl.css +2 -1
  125. package/build-style/cover/style.css +2 -1
  126. package/build-style/editor-rtl.css +22 -11
  127. package/build-style/editor.css +22 -11
  128. package/build-style/form-input/style-rtl.css +2 -0
  129. package/build-style/form-input/style.css +2 -0
  130. package/build-style/gallery/style-rtl.css +4 -2
  131. package/build-style/gallery/style.css +4 -2
  132. package/build-style/media-text/style-rtl.css +2 -1
  133. package/build-style/media-text/style.css +2 -1
  134. package/build-style/playlist/style-rtl.css +3 -0
  135. package/build-style/playlist/style.css +3 -0
  136. package/build-style/query/editor-rtl.css +8 -4
  137. package/build-style/query/editor.css +8 -4
  138. package/build-style/read-more/style-rtl.css +1 -0
  139. package/build-style/read-more/style.css +1 -0
  140. package/build-style/reset-rtl.css +3 -1
  141. package/build-style/reset.css +3 -1
  142. package/build-style/search/style-rtl.css +3 -1
  143. package/build-style/search/style.css +3 -1
  144. package/build-style/site-logo/editor-rtl.css +2 -1
  145. package/build-style/site-logo/editor.css +2 -1
  146. package/build-style/style-rtl.css +53 -17
  147. package/build-style/style.css +53 -17
  148. package/build-style/tab/style-rtl.css +3 -1
  149. package/build-style/tab/style.css +3 -1
  150. package/build-style/template-part/editor-rtl.css +8 -4
  151. package/build-style/template-part/editor.css +8 -4
  152. package/build-style/video/style-rtl.css +2 -1
  153. package/build-style/video/style.css +2 -1
  154. package/package.json +51 -47
  155. package/src/accordion/README.md +97 -0
  156. package/src/accordion-heading/README.md +81 -0
  157. package/src/accordion-item/README.md +85 -0
  158. package/src/accordion-panel/README.md +74 -0
  159. package/src/archives/README.md +56 -0
  160. package/src/audio/README.md +55 -0
  161. package/src/avatar/README.md +74 -0
  162. package/src/block/README.md +56 -0
  163. package/src/breadcrumbs/README.md +67 -0
  164. package/src/button/README.md +93 -0
  165. package/src/buttons/README.md +80 -0
  166. package/src/calendar/README.md +51 -0
  167. package/src/categories/README.md +69 -0
  168. package/src/code/README.md +55 -0
  169. package/src/column/README.md +72 -0
  170. package/src/columns/README.md +90 -0
  171. package/src/columns/test/transforms.js +164 -0
  172. package/src/columns/transforms.js +74 -0
  173. package/src/comment-author-avatar/README.md +63 -0
  174. package/src/comment-author-name/README.md +67 -0
  175. package/src/comment-content/README.md +61 -0
  176. package/src/comment-date/README.md +67 -0
  177. package/src/comment-edit-link/README.md +67 -0
  178. package/src/comment-reply-link/README.md +63 -0
  179. package/src/comment-template/README.md +60 -0
  180. package/src/comments/README.md +88 -0
  181. package/src/comments/edit/placeholder.js +1 -1
  182. package/src/comments-pagination/README.md +77 -0
  183. package/src/comments-pagination-next/README.md +64 -0
  184. package/src/comments-pagination-numbers/README.md +64 -0
  185. package/src/comments-pagination-previous/README.md +64 -0
  186. package/src/comments-title/README.md +70 -0
  187. package/src/common.scss +63 -10
  188. package/src/cover/README.md +111 -0
  189. package/src/cover/edit/inspector-controls.js +61 -45
  190. package/src/cover/test/edit.js +38 -0
  191. package/src/details/README.md +65 -0
  192. package/src/embed/README.md +56 -0
  193. package/src/file/README.md +60 -0
  194. package/src/footnotes/README.md +64 -0
  195. package/src/form/README.md +90 -0
  196. package/src/form-input/README.md +74 -0
  197. package/src/form-submission-notification/README.md +50 -0
  198. package/src/form-submit-button/README.md +54 -0
  199. package/src/freeform/README.md +49 -0
  200. package/src/gallery/README.md +115 -0
  201. package/src/gallery/edit.js +213 -350
  202. package/src/gallery/test/transforms.js +155 -0
  203. package/src/gallery/transforms.js +47 -0
  204. package/src/group/README.md +80 -0
  205. package/src/heading/README.md +60 -0
  206. package/src/heading/edit.js +1 -2
  207. package/src/home-link/README.md +66 -0
  208. package/src/home-link/index.php +3 -15
  209. package/src/html/README.md +48 -0
  210. package/src/icon/README.md +63 -0
  211. package/src/image/README.md +102 -0
  212. package/src/image/image.js +50 -35
  213. package/src/image/index.php +4 -4
  214. package/src/image/test/use-open-image-media-editor-modal.js +41 -0
  215. package/src/image/use-open-image-media-editor-modal.js +7 -1
  216. package/src/latest-comments/README.md +57 -0
  217. package/src/latest-posts/README.md +71 -0
  218. package/src/list/README.md +70 -0
  219. package/src/list/edit.js +2 -9
  220. package/src/list/ordered-list-settings.js +46 -92
  221. package/src/list-item/README.md +71 -0
  222. package/src/list-item/hooks/use-merge.js +53 -46
  223. package/src/loginout/README.md +56 -0
  224. package/src/math/README.md +50 -0
  225. package/src/media-text/README.md +92 -0
  226. package/src/missing/README.md +55 -0
  227. package/src/more/README.md +49 -0
  228. package/src/navigation/README.md +115 -0
  229. package/src/navigation/edit/index.js +10 -30
  230. package/src/navigation-link/README.md +93 -0
  231. package/src/navigation-link/edit.js +0 -1
  232. package/src/navigation-link/index.php +1 -15
  233. package/src/navigation-link/test/__snapshots__/hooks.js.snap +45 -134
  234. package/src/navigation-overlay-close/README.md +48 -0
  235. package/src/navigation-submenu/README.md +84 -0
  236. package/src/navigation-submenu/edit.js +1 -0
  237. package/src/navigation-submenu/index.php +1 -17
  238. package/src/nextpage/README.md +50 -0
  239. package/src/page-list/README.md +84 -0
  240. package/src/page-list/index.php +3 -15
  241. package/src/page-list-item/README.md +77 -0
  242. package/src/paragraph/README.md +70 -0
  243. package/src/paragraph/deprecated.js +1 -0
  244. package/src/paragraph/edit.js +13 -1
  245. package/src/pattern/README.md +45 -0
  246. package/src/playlist/README.md +86 -0
  247. package/src/playlist/block.json +12 -0
  248. package/src/playlist/edit.js +27 -0
  249. package/src/playlist/index.php +10 -3
  250. package/src/playlist/save.js +9 -1
  251. package/src/playlist/style.scss +7 -0
  252. package/src/playlist/view.js +1 -0
  253. package/src/playlist-track/README.md +69 -0
  254. package/src/post-author/README.md +78 -0
  255. package/src/post-author-biography/README.md +59 -0
  256. package/src/post-author-name/README.md +63 -0
  257. package/src/post-author-name/index.php +1 -1
  258. package/src/post-comment/README.md +61 -0
  259. package/src/post-comments-count/README.md +58 -0
  260. package/src/post-comments-form/README.md +59 -0
  261. package/src/post-comments-link/README.md +60 -0
  262. package/src/post-content/README.md +71 -0
  263. package/src/post-date/README.md +65 -0
  264. package/src/post-date/index.php +1 -1
  265. package/src/post-excerpt/README.md +66 -0
  266. package/src/post-featured-image/README.md +85 -0
  267. package/src/post-featured-image/edit.js +15 -10
  268. package/src/post-featured-image/index.php +1 -1
  269. package/src/post-navigation-link/README.md +63 -0
  270. package/src/post-template/README.md +71 -0
  271. package/src/post-terms/README.md +65 -0
  272. package/src/post-time-to-read/README.md +63 -0
  273. package/src/post-time-to-read/index.js +1 -1
  274. package/src/post-time-to-read/variations.js +2 -2
  275. package/src/post-title/README.md +69 -0
  276. package/src/preformatted/README.md +50 -0
  277. package/src/pullquote/README.md +64 -0
  278. package/src/pullquote/edit.js +1 -7
  279. package/src/query/README.md +64 -0
  280. package/src/query-no-results/README.md +65 -0
  281. package/src/query-pagination/README.md +79 -0
  282. package/src/query-pagination-next/README.md +67 -0
  283. package/src/query-pagination-numbers/README.md +65 -0
  284. package/src/query-pagination-previous/README.md +67 -0
  285. package/src/query-title/README.md +65 -0
  286. package/src/query-total/README.md +66 -0
  287. package/src/quote/README.md +75 -0
  288. package/src/quote/edit.js +3 -9
  289. package/src/read-more/README.md +61 -0
  290. package/src/read-more/index.php +2 -2
  291. package/src/rss/README.md +62 -0
  292. package/src/search/README.md +66 -0
  293. package/src/separator/README.md +62 -0
  294. package/src/shortcode/README.md +44 -0
  295. package/src/shortcode/transforms.js +2 -2
  296. package/src/site-logo/README.md +72 -0
  297. package/src/site-logo/edit.js +5 -0
  298. package/src/site-tagline/README.md +56 -0
  299. package/src/site-title/README.md +57 -0
  300. package/src/social-link/README.md +64 -0
  301. package/src/social-links/README.md +98 -0
  302. package/src/spacer/README.md +53 -0
  303. package/src/tab/README.md +69 -0
  304. package/src/tab-list/README.md +79 -0
  305. package/src/tab-panel/README.md +75 -0
  306. package/src/tab-panels/README.md +75 -0
  307. package/src/table/README.md +71 -0
  308. package/src/table-of-contents/README.md +61 -0
  309. package/src/tabs/README.md +83 -0
  310. package/src/tag-cloud/README.md +62 -0
  311. package/src/template-part/README.md +48 -0
  312. package/src/term-count/README.md +59 -0
  313. package/src/term-description/README.md +60 -0
  314. package/src/term-name/README.md +65 -0
  315. package/src/term-template/README.md +65 -0
  316. package/src/terms-query/README.md +58 -0
  317. package/src/text-columns/README.md +51 -0
  318. package/src/utils/test/waveform-player.js +254 -0
  319. package/src/utils/waveform-player.js +90 -18
  320. package/src/utils/waveform-utils.js +15 -11
  321. package/src/verse/README.md +58 -0
  322. package/src/video/README.md +58 -0
  323. package/src/video/edit-common-settings.js +4 -7
  324. package/src/audio/edit.native.js +0 -250
  325. package/src/audio/style.native.scss +0 -13
  326. package/src/audio/test/__snapshots__/edit.native.js.snap +0 -546
  327. package/src/audio/test/__snapshots__/transforms.native.js.snap +0 -25
  328. package/src/audio/test/edit.native.js +0 -132
  329. package/src/audio/test/transforms.native.js +0 -43
  330. package/src/audio/transforms.native.js +0 -12
  331. package/src/block/edit-title.native.js +0 -67
  332. package/src/block/edit.native.js +0 -247
  333. package/src/block/editor.native.scss +0 -125
  334. package/src/block/test/__snapshots__/transforms.native.js.snap +0 -15
  335. package/src/block/test/edit.native.js +0 -262
  336. package/src/block/test/transforms.native.js +0 -40
  337. package/src/button/color-background.native.js +0 -41
  338. package/src/button/edit.native.js +0 -567
  339. package/src/button/editor.native.scss +0 -70
  340. package/src/button/rich-text.android.scss +0 -6
  341. package/src/button/rich-text.ios.scss +0 -6
  342. package/src/buttons/edit.native.js +0 -157
  343. package/src/buttons/editor.native.scss +0 -11
  344. package/src/buttons/test/__snapshots__/edit.native.js.snap +0 -99
  345. package/src/buttons/test/__snapshots__/transforms.native.js.snap +0 -31
  346. package/src/buttons/test/edit.native.js +0 -485
  347. package/src/buttons/test/transforms.native.js +0 -48
  348. package/src/buttons/transforms.native.js +0 -12
  349. package/src/code/edit.native.js +0 -70
  350. package/src/code/test/__snapshots__/edit.native.js.snap +0 -13
  351. package/src/code/test/edit.native.js +0 -65
  352. package/src/code/theme.native.scss +0 -22
  353. package/src/code/transforms.native.js +0 -12
  354. package/src/column/column-preview.native.js +0 -58
  355. package/src/column/edit.native.js +0 -273
  356. package/src/column/editor.native.scss +0 -75
  357. package/src/columns/columnCalculations.native.js +0 -178
  358. package/src/columns/edit.native.js +0 -507
  359. package/src/columns/editor.native.scss +0 -17
  360. package/src/columns/test/__snapshots__/edit.native.js.snap +0 -305
  361. package/src/columns/test/__snapshots__/transforms.native.js.snap +0 -61
  362. package/src/columns/test/edit.native.js +0 -496
  363. package/src/columns/test/transforms.native.js +0 -89
  364. package/src/columns/transforms.native.js +0 -12
  365. package/src/cover/controls.native.js +0 -307
  366. package/src/cover/edit.native.js +0 -708
  367. package/src/cover/focal-point-settings-button.native.js +0 -53
  368. package/src/cover/overlay-color-settings.native.js +0 -106
  369. package/src/cover/style.native.scss +0 -220
  370. package/src/cover/test/__snapshots__/edit.native.js.snap +0 -105
  371. package/src/cover/test/__snapshots__/transforms.native.js.snap +0 -73
  372. package/src/cover/test/edit.native.js +0 -701
  373. package/src/cover/test/transforms.native.js +0 -116
  374. package/src/cover/transforms.native.js +0 -12
  375. package/src/cover/use-cover-is-dark.native.js +0 -51
  376. package/src/embed/edit.native.js +0 -345
  377. package/src/embed/embed-controls.native.js +0 -65
  378. package/src/embed/embed-link-settings.native.js +0 -99
  379. package/src/embed/embed-loading.native.js +0 -29
  380. package/src/embed/embed-no-preview.native.js +0 -230
  381. package/src/embed/embed-placeholder.native.js +0 -178
  382. package/src/embed/embed-preview.native.js +0 -157
  383. package/src/embed/styles.native.scss +0 -196
  384. package/src/embed/test/__snapshots__/index.native.js.snap +0 -191
  385. package/src/embed/test/__snapshots__/transforms.native.js.snap +0 -23
  386. package/src/embed/test/index.native.js +0 -1125
  387. package/src/embed/test/transforms.native.js +0 -44
  388. package/src/embed/transforms.native.js +0 -12
  389. package/src/embed/wp-embed-preview.native.js +0 -80
  390. package/src/file/edit.native.js +0 -605
  391. package/src/file/style.native.scss +0 -79
  392. package/src/file/test/__snapshots__/edit.native.js.snap +0 -580
  393. package/src/file/test/__snapshots__/transforms.native.js.snap +0 -19
  394. package/src/file/test/edit.native.js +0 -93
  395. package/src/file/test/transforms.native.js +0 -43
  396. package/src/file/transforms.native.js +0 -12
  397. package/src/freeform/edit.native.js +0 -13
  398. package/src/freeform/test/__snapshots__/index.native.js.snap +0 -7
  399. package/src/freeform/test/__snapshots__/transforms.native.js.snap +0 -19
  400. package/src/freeform/test/index.native.js +0 -57
  401. package/src/freeform/test/transforms.native.js +0 -39
  402. package/src/gallery/gallery-styles.native.scss +0 -8
  403. package/src/gallery/gallery.native.js +0 -124
  404. package/src/gallery/styles.native.scss +0 -7
  405. package/src/gallery/test/__snapshots__/index.native.js.snap +0 -177
  406. package/src/gallery/test/__snapshots__/transforms.native.js.snap +0 -53
  407. package/src/gallery/test/helpers.native.js +0 -106
  408. package/src/gallery/test/index.native.js +0 -700
  409. package/src/gallery/test/transforms.native.js +0 -53
  410. package/src/gallery/test/use-get-media.native.js +0 -24
  411. package/src/gallery/transforms.native.js +0 -12
  412. package/src/gallery/use-get-media.native.js +0 -49
  413. package/src/group/edit.native.js +0 -137
  414. package/src/group/editor.native.scss +0 -56
  415. package/src/group/test/__snapshots__/edit.native.js.snap +0 -19
  416. package/src/group/test/__snapshots__/transforms.native.js.snap +0 -35
  417. package/src/group/test/edit.native.js +0 -100
  418. package/src/group/test/transforms.native.js +0 -73
  419. package/src/heading/edit.native.js +0 -159
  420. package/src/heading/test/__snapshots__/index.native.js.snap +0 -43
  421. package/src/heading/test/__snapshots__/transforms.native.js.snap +0 -47
  422. package/src/heading/test/index.native.js +0 -257
  423. package/src/heading/test/transforms.native.js +0 -46
  424. package/src/heading/transforms.native.js +0 -12
  425. package/src/html/transforms.native.js +0 -11
  426. package/src/image/edit.native.js +0 -959
  427. package/src/image/styles.native.scss +0 -70
  428. package/src/image/test/__snapshots__/transforms.native.js.snap +0 -49
  429. package/src/image/test/edit.native.js +0 -459
  430. package/src/image/test/transforms.native.js +0 -49
  431. package/src/image/transforms.native.js +0 -12
  432. package/src/index.native.js +0 -274
  433. package/src/latest-posts/edit.native.js +0 -294
  434. package/src/latest-posts/style.native.scss +0 -47
  435. package/src/latest-posts/test/__snapshots__/edit.native.js.snap +0 -3
  436. package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +0 -15
  437. package/src/latest-posts/test/edit.native.js +0 -49
  438. package/src/latest-posts/test/transforms.native.js +0 -61
  439. package/src/list/tag-name.native.js +0 -12
  440. package/src/list/test/__snapshots__/edit.native.js.snap +0 -121
  441. package/src/list/test/__snapshots__/transforms.native.js.snap +0 -85
  442. package/src/list/test/edit.native.js +0 -602
  443. package/src/list/test/transforms.native.js +0 -56
  444. package/src/list/transforms.native.js +0 -12
  445. package/src/list-item/edit.native.js +0 -175
  446. package/src/list-item/hooks/use-enter.native.js +0 -81
  447. package/src/list-item/icons.native.js +0 -34
  448. package/src/list-item/list-style-type.native.js +0 -146
  449. package/src/list-item/style.native.scss +0 -57
  450. package/src/media-text/edit.native.js +0 -417
  451. package/src/media-text/icon-retry.native.js +0 -11
  452. package/src/media-text/media-container.native.js +0 -393
  453. package/src/media-text/style.native.scss +0 -191
  454. package/src/media-text/test/__snapshots__/transforms.native.js.snap +0 -73
  455. package/src/media-text/test/edit.native.js +0 -58
  456. package/src/media-text/test/transforms.native.js +0 -116
  457. package/src/media-text/transforms.native.js +0 -12
  458. package/src/missing/edit.native.js +0 -294
  459. package/src/missing/style.native.scss +0 -79
  460. package/src/missing/test/__snapshots__/edit.native.js.snap +0 -110
  461. package/src/missing/test/edit-integration.native.js +0 -168
  462. package/src/missing/test/edit.native.js +0 -81
  463. package/src/more/edit.native.js +0 -36
  464. package/src/more/editor.native.scss +0 -21
  465. package/src/more/test/__snapshots__/edit.native.js.snap +0 -7
  466. package/src/more/test/__snapshots__/transforms.native.js.snap +0 -19
  467. package/src/more/test/edit.native.js +0 -41
  468. package/src/more/test/transforms.native.js +0 -42
  469. package/src/more/transforms.native.js +0 -12
  470. package/src/navigation-link/shared/build-css-font-sizes.php +0 -43
  471. package/src/nextpage/edit.native.js +0 -58
  472. package/src/nextpage/editor.native.scss +0 -21
  473. package/src/nextpage/test/__snapshots__/transforms.native.js.snap +0 -19
  474. package/src/nextpage/test/transforms.native.js +0 -42
  475. package/src/nextpage/transforms.native.js +0 -12
  476. package/src/paragraph/edit.native.js +0 -116
  477. package/src/paragraph/test/__snapshots__/edit.native.js.snap +0 -88
  478. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +0 -65
  479. package/src/paragraph/test/edit.native.js +0 -999
  480. package/src/paragraph/test/transforms.native.js +0 -51
  481. package/src/paragraph/transforms.native.js +0 -12
  482. package/src/preformatted/edit.native.js +0 -48
  483. package/src/preformatted/styles.native.scss +0 -30
  484. package/src/preformatted/test/__snapshots__/edit.native.js.snap +0 -95
  485. package/src/preformatted/test/__snapshots__/transforms.native.js.snap +0 -37
  486. package/src/preformatted/test/edit.native.js +0 -111
  487. package/src/preformatted/test/transforms.native.js +0 -47
  488. package/src/preformatted/transforms.native.js +0 -12
  489. package/src/pullquote/blockquote.native.js +0 -39
  490. package/src/pullquote/blockquote.native.scss +0 -8
  491. package/src/pullquote/edit.native.js +0 -128
  492. package/src/pullquote/figure.native.js +0 -33
  493. package/src/pullquote/figure.native.scss +0 -16
  494. package/src/pullquote/test/__snapshots__/transforms.native.js.snap +0 -47
  495. package/src/pullquote/test/edit.native.js +0 -73
  496. package/src/pullquote/test/transforms.native.js +0 -46
  497. package/src/pullquote/transforms.native.js +0 -12
  498. package/src/quote/test/__snapshots__/transforms.native.js.snap +0 -49
  499. package/src/quote/test/edit.native.js +0 -94
  500. package/src/quote/test/transforms.native.js +0 -69
  501. package/src/quote/transforms.native.js +0 -12
  502. package/src/search/edit.native.js +0 -486
  503. package/src/search/style.native.scss +0 -99
  504. package/src/search/test/__snapshots__/edit.native.js.snap +0 -827
  505. package/src/search/test/__snapshots__/transforms.native.js.snap +0 -15
  506. package/src/search/test/edit.native.js +0 -170
  507. package/src/search/test/transforms.native.js +0 -40
  508. package/src/separator/separator-settings.native.js +0 -3
  509. package/src/separator/test/__snapshots__/edit.native.js.snap +0 -7
  510. package/src/separator/test/__snapshots__/transforms.native.js.snap +0 -25
  511. package/src/separator/test/edit.native.js +0 -41
  512. package/src/separator/test/transforms.native.js +0 -42
  513. package/src/separator/transforms.native.js +0 -12
  514. package/src/shortcode/edit.native.js +0 -77
  515. package/src/shortcode/style.native.scss +0 -44
  516. package/src/shortcode/test/__snapshots__/edit.native.js.snap +0 -9
  517. package/src/shortcode/test/__snapshots__/transforms.native.js.snap +0 -19
  518. package/src/shortcode/test/edit.native.js +0 -70
  519. package/src/shortcode/test/transforms.native.js +0 -42
  520. package/src/shortcode/transforms.native.js +0 -12
  521. package/src/social-link/edit.native.js +0 -219
  522. package/src/social-link/editor.native.scss +0 -18
  523. package/src/social-links/edit.native.js +0 -147
  524. package/src/social-links/editor.native.scss +0 -25
  525. package/src/social-links/test/__snapshots__/edit.native.js.snap +0 -57
  526. package/src/social-links/test/__snapshots__/transforms.native.js.snap +0 -31
  527. package/src/social-links/test/edit.native.js +0 -266
  528. package/src/social-links/test/transforms.native.js +0 -53
  529. package/src/spacer/controls.native.js +0 -86
  530. package/src/spacer/edit.native.js +0 -110
  531. package/src/spacer/editor.native.scss +0 -18
  532. package/src/spacer/save.native.js +0 -18
  533. package/src/spacer/test/__snapshots__/index.native.js.snap +0 -43
  534. package/src/spacer/test/__snapshots__/transforms.native.js.snap +0 -25
  535. package/src/spacer/test/index.native.js +0 -257
  536. package/src/spacer/test/transforms.native.js +0 -42
  537. package/src/table/transforms.native.js +0 -11
  538. package/src/text-columns/transforms.native.js +0 -12
  539. package/src/utils/init-block.native.js +0 -40
  540. package/src/utils/transformation-categories.native.js +0 -47
  541. package/src/verse/test/__snapshots__/edit.native.js.snap +0 -13
  542. package/src/verse/test/__snapshots__/transforms.native.js.snap +0 -31
  543. package/src/verse/test/edit.native.js +0 -118
  544. package/src/verse/test/transforms.native.js +0 -46
  545. package/src/verse/transforms.native.js +0 -12
  546. package/src/video/edit.native.js +0 -406
  547. package/src/video/icon-retry.native.js +0 -11
  548. package/src/video/style.native.scss +0 -81
  549. package/src/video/test/__snapshots__/transforms.native.js.snap +0 -41
  550. package/src/video/test/edit.native.js +0 -53
  551. package/src/video/test/transforms.native.js +0 -49
  552. 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;