@wordpress/block-library 10.0.1 → 10.1.1-next.v.202607070741.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (722) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/build/accordion/edit.cjs +0 -1
  3. package/build/accordion/edit.cjs.map +2 -2
  4. package/build/accordion/view.cjs +23 -0
  5. package/build/accordion/view.cjs.map +2 -2
  6. package/build/accordion-heading/deprecated.cjs +121 -1
  7. package/build/accordion-heading/deprecated.cjs.map +2 -2
  8. package/build/accordion-heading/edit.cjs +18 -1
  9. package/build/accordion-heading/edit.cjs.map +3 -3
  10. package/build/accordion-heading/save.cjs +18 -1
  11. package/build/accordion-heading/save.cjs.map +3 -3
  12. package/build/accordion-panel/edit.cjs +1 -1
  13. package/build/accordion-panel/edit.cjs.map +2 -2
  14. package/build/archives/edit.cjs +0 -1
  15. package/build/archives/edit.cjs.map +2 -2
  16. package/build/audio/edit.cjs +0 -1
  17. package/build/audio/edit.cjs.map +2 -2
  18. package/build/avatar/edit.cjs +0 -1
  19. package/build/avatar/edit.cjs.map +2 -2
  20. package/build/avatar/user-control.cjs +0 -1
  21. package/build/avatar/user-control.cjs.map +2 -2
  22. package/build/categories/edit.cjs +0 -1
  23. package/build/categories/edit.cjs.map +2 -2
  24. package/build/code/transforms.cjs +5 -3
  25. package/build/code/transforms.cjs.map +2 -2
  26. package/build/column/edit.cjs +0 -1
  27. package/build/column/edit.cjs.map +2 -2
  28. package/build/columns/edit.cjs +0 -1
  29. package/build/columns/edit.cjs.map +2 -2
  30. package/build/columns/transforms.cjs +9 -2
  31. package/build/columns/transforms.cjs.map +2 -2
  32. package/build/comment-author-avatar/edit.cjs +0 -1
  33. package/build/comment-author-avatar/edit.cjs.map +2 -2
  34. package/build/comments-pagination/comments-pagination-arrow-controls.cjs +0 -1
  35. package/build/comments-pagination/comments-pagination-arrow-controls.cjs.map +2 -2
  36. package/build/cover/edit/inspector-controls.cjs +1 -3
  37. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  38. package/build/details/transforms.cjs +3 -1
  39. package/build/details/transforms.cjs.map +2 -2
  40. package/build/embed/edit.cjs +2 -3
  41. package/build/embed/edit.cjs.map +2 -2
  42. package/build/embed/embed-placeholder.cjs +20 -20
  43. package/build/embed/embed-placeholder.cjs.map +3 -3
  44. package/build/file/inspector.cjs +0 -2
  45. package/build/file/inspector.cjs.map +2 -2
  46. package/build/form/edit.cjs +0 -2
  47. package/build/form/edit.cjs.map +2 -2
  48. package/build/freeform/convert-to-blocks-button.cjs +52 -0
  49. package/build/freeform/convert-to-blocks-button.cjs.map +7 -0
  50. package/build/freeform/edit.cjs +14 -33
  51. package/build/freeform/edit.cjs.map +3 -3
  52. package/build/freeform/index.cjs +1 -7
  53. package/build/freeform/index.cjs.map +3 -3
  54. package/build/gallery/block.json +4 -1
  55. package/build/gallery/dynamic-gallery.cjs +263 -0
  56. package/build/gallery/dynamic-gallery.cjs.map +7 -0
  57. package/build/gallery/dynamic-source.cjs +85 -0
  58. package/build/gallery/dynamic-source.cjs.map +7 -0
  59. package/build/gallery/edit.cjs +285 -205
  60. package/build/gallery/edit.cjs.map +3 -3
  61. package/build/gallery/gallery.cjs +0 -3
  62. package/build/gallery/gallery.cjs.map +2 -2
  63. package/build/gallery/index.cjs +2 -0
  64. package/build/gallery/index.cjs.map +3 -3
  65. package/build/gallery/save.cjs +16 -12
  66. package/build/gallery/save.cjs.map +2 -2
  67. package/build/gallery/use-dynamic-gallery.cjs +181 -0
  68. package/build/gallery/use-dynamic-gallery.cjs.map +7 -0
  69. package/build/gallery/variations.cjs +54 -0
  70. package/build/gallery/variations.cjs.map +7 -0
  71. package/build/group/edit.cjs +1 -2
  72. package/build/group/edit.cjs.map +2 -2
  73. package/build/group/transforms.cjs +3 -7
  74. package/build/group/transforms.cjs.map +2 -2
  75. package/build/heading/edit.cjs +10 -3
  76. package/build/heading/edit.cjs.map +2 -2
  77. package/build/html/block.json +2 -2
  78. package/build/html/edit.cjs +65 -23
  79. package/build/html/edit.cjs.map +3 -3
  80. package/build/html/index.cjs +3 -3
  81. package/build/html/index.cjs.map +2 -2
  82. package/build/html/modal.cjs +4 -8
  83. package/build/html/modal.cjs.map +2 -2
  84. package/build/html/save.cjs +2 -4
  85. package/build/html/save.cjs.map +2 -2
  86. package/build/html/transforms.cjs +7 -5
  87. package/build/html/transforms.cjs.map +2 -2
  88. package/build/image/animated-gif-convert-control.cjs +105 -0
  89. package/build/image/animated-gif-convert-control.cjs.map +7 -0
  90. package/build/image/edit.cjs +34 -0
  91. package/build/image/edit.cjs.map +2 -2
  92. package/build/image/image.cjs +38 -66
  93. package/build/image/image.cjs.map +3 -3
  94. package/build/index.cjs.map +2 -2
  95. package/build/latest-comments/edit.cjs +0 -2
  96. package/build/latest-comments/edit.cjs.map +2 -2
  97. package/build/latest-posts/block.json +8 -9
  98. package/build/latest-posts/constants.cjs +0 -3
  99. package/build/latest-posts/constants.cjs.map +2 -2
  100. package/build/latest-posts/deprecated.cjs +100 -8
  101. package/build/latest-posts/deprecated.cjs.map +2 -2
  102. package/build/latest-posts/edit.cjs +62 -76
  103. package/build/latest-posts/edit.cjs.map +2 -2
  104. package/build/list/ordered-list-settings.cjs +0 -1
  105. package/build/list/ordered-list-settings.cjs.map +2 -2
  106. package/build/media-text/edit.cjs +0 -1
  107. package/build/media-text/edit.cjs.map +2 -2
  108. package/build/missing/edit.cjs +1 -3
  109. package/build/missing/edit.cjs.map +2 -2
  110. package/build/navigation/edit/index.cjs +0 -1
  111. package/build/navigation/edit/index.cjs.map +2 -2
  112. package/build/navigation/edit/overlay-menu-preview-controls.cjs +0 -1
  113. package/build/navigation/edit/overlay-menu-preview-controls.cjs.map +2 -2
  114. package/build/navigation/edit/overlay-menu-preview.cjs +0 -1
  115. package/build/navigation/edit/overlay-menu-preview.cjs.map +2 -2
  116. package/build/navigation/edit/overlay-template-part-selector.cjs +0 -1
  117. package/build/navigation/edit/overlay-template-part-selector.cjs.map +2 -2
  118. package/build/navigation/edit/overlay-visibility-control.cjs +0 -1
  119. package/build/navigation/edit/overlay-visibility-control.cjs.map +2 -2
  120. package/build/navigation-link/shared/use-link-preview.cjs +11 -1
  121. package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
  122. package/build/navigation-overlay-close/edit.cjs +0 -1
  123. package/build/navigation-overlay-close/edit.cjs.map +2 -2
  124. package/build/page-list/edit.cjs +0 -1
  125. package/build/page-list/edit.cjs.map +2 -2
  126. package/build/playlist/block.json +1 -7
  127. package/build/playlist/context.cjs +36 -0
  128. package/build/playlist/context.cjs.map +7 -0
  129. package/build/playlist/edit.cjs +43 -69
  130. package/build/playlist/edit.cjs.map +3 -3
  131. package/build/playlist/utils.cjs +0 -3
  132. package/build/playlist/utils.cjs.map +3 -3
  133. package/build/playlist/view.cjs +4 -4
  134. package/build/playlist/view.cjs.map +2 -2
  135. package/build/playlist-track/block.json +1 -4
  136. package/build/playlist-track/edit.cjs +22 -8
  137. package/build/playlist-track/edit.cjs.map +3 -3
  138. package/build/post-author/edit.cjs +0 -2
  139. package/build/post-author/edit.cjs.map +2 -2
  140. package/build/post-excerpt/edit.cjs +0 -1
  141. package/build/post-excerpt/edit.cjs.map +2 -2
  142. package/build/post-featured-image/overlay-controls.cjs +1 -2
  143. package/build/post-featured-image/overlay-controls.cjs.map +2 -2
  144. package/build/post-navigation-link/edit.cjs +0 -2
  145. package/build/post-navigation-link/edit.cjs.map +2 -2
  146. package/build/query/edit/inspector-controls/author-control.cjs +1 -2
  147. package/build/query/edit/inspector-controls/author-control.cjs.map +2 -2
  148. package/build/query/edit/inspector-controls/format-controls.cjs +1 -2
  149. package/build/query/edit/inspector-controls/format-controls.cjs.map +2 -2
  150. package/build/query/edit/inspector-controls/index.cjs +0 -3
  151. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  152. package/build/query/edit/inspector-controls/order-control.cjs +0 -1
  153. package/build/query/edit/inspector-controls/order-control.cjs.map +2 -2
  154. package/build/query/edit/inspector-controls/parent-control.cjs +0 -1
  155. package/build/query/edit/inspector-controls/parent-control.cjs.map +2 -2
  156. package/build/query/edit/inspector-controls/per-page-control.cjs +0 -1
  157. package/build/query/edit/inspector-controls/per-page-control.cjs.map +2 -2
  158. package/build/query/edit/inspector-controls/sticky-control.cjs +0 -1
  159. package/build/query/edit/inspector-controls/sticky-control.cjs.map +2 -2
  160. package/build/query/edit/inspector-controls/taxonomy-controls.cjs +1 -2
  161. package/build/query/edit/inspector-controls/taxonomy-controls.cjs.map +2 -2
  162. package/build/query-pagination/query-pagination-arrow-controls.cjs +0 -1
  163. package/build/query-pagination/query-pagination-arrow-controls.cjs.map +2 -2
  164. package/build/query-pagination-numbers/edit.cjs +0 -1
  165. package/build/query-pagination-numbers/edit.cjs.map +2 -2
  166. package/build/quote/transforms.cjs +1 -5
  167. package/build/quote/transforms.cjs.map +2 -2
  168. package/build/rss/edit.cjs +0 -3
  169. package/build/rss/edit.cjs.map +2 -2
  170. package/build/search/edit.cjs +0 -4
  171. package/build/search/edit.cjs.map +2 -2
  172. package/build/separator/edit.cjs +1 -2
  173. package/build/separator/edit.cjs.map +2 -2
  174. package/build/site-logo/edit.cjs +34 -63
  175. package/build/site-logo/edit.cjs.map +3 -3
  176. package/build/social-links/edit.cjs +0 -1
  177. package/build/social-links/edit.cjs.map +2 -2
  178. package/build/spacer/controls.cjs +2 -4
  179. package/build/spacer/controls.cjs.map +2 -2
  180. package/build/spacer/edit.cjs +1 -2
  181. package/build/spacer/edit.cjs.map +2 -2
  182. package/build/tab-list/block.json +3 -2
  183. package/build/tab-list/edit.cjs +38 -51
  184. package/build/tab-list/edit.cjs.map +3 -3
  185. package/build/tab-list/save.cjs +4 -3
  186. package/build/tab-list/save.cjs.map +2 -2
  187. package/build/tab-panel/controls.cjs +2 -4
  188. package/build/tab-panel/controls.cjs.map +3 -3
  189. package/build/tab-panels/edit.cjs +2 -4
  190. package/build/tab-panels/edit.cjs.map +3 -3
  191. package/build/table-of-contents/edit.cjs +0 -1
  192. package/build/table-of-contents/edit.cjs.map +2 -2
  193. package/build/tabs/edit.cjs +2 -2
  194. package/build/tabs/edit.cjs.map +3 -3
  195. package/build/tabs/tab-toolbar-controls.cjs +74 -0
  196. package/build/tabs/tab-toolbar-controls.cjs.map +7 -0
  197. package/build/tabs/use-tab-actions.cjs +87 -0
  198. package/build/tabs/use-tab-actions.cjs.map +7 -0
  199. package/build/tabs/use-tab-list-items-sync.cjs +4 -4
  200. package/build/tabs/use-tab-list-items-sync.cjs.map +2 -2
  201. package/build/tag-cloud/edit.cjs +2 -6
  202. package/build/tag-cloud/edit.cjs.map +2 -2
  203. package/build/template-part/edit/advanced-controls.cjs +0 -1
  204. package/build/template-part/edit/advanced-controls.cjs.map +2 -2
  205. package/build/template-part/edit/import-controls.cjs +1 -2
  206. package/build/template-part/edit/import-controls.cjs.map +2 -2
  207. package/build/terms-query/edit/inspector-controls/include-control.cjs +0 -1
  208. package/build/terms-query/edit/inspector-controls/include-control.cjs.map +2 -2
  209. package/build/terms-query/edit/inspector-controls/inherit-control.cjs +0 -1
  210. package/build/terms-query/edit/inspector-controls/inherit-control.cjs.map +2 -2
  211. package/build/terms-query/edit/inspector-controls/max-terms-control.cjs +0 -1
  212. package/build/terms-query/edit/inspector-controls/max-terms-control.cjs.map +2 -2
  213. package/build/terms-query/edit/inspector-controls/order-control.cjs +0 -1
  214. package/build/terms-query/edit/inspector-controls/order-control.cjs.map +2 -2
  215. package/build/terms-query/edit/inspector-controls/taxonomy-control.cjs +0 -1
  216. package/build/terms-query/edit/inspector-controls/taxonomy-control.cjs.map +2 -2
  217. package/build/text-columns/edit.cjs +0 -1
  218. package/build/text-columns/edit.cjs.map +2 -2
  219. package/build/utils/gif-conversion-attributes.cjs +40 -0
  220. package/build/utils/gif-conversion-attributes.cjs.map +7 -0
  221. package/build/verse/block.json +3 -1
  222. package/build/video/block.json +6 -0
  223. package/build/video/edit-common-settings.cjs +0 -1
  224. package/build/video/edit-common-settings.cjs.map +2 -2
  225. package/build/video/edit.cjs +28 -3
  226. package/build/video/edit.cjs.map +3 -3
  227. package/build/video/gif-restore-control.cjs +73 -0
  228. package/build/video/gif-restore-control.cjs.map +7 -0
  229. package/build/video/index.cjs +2 -0
  230. package/build/video/index.cjs.map +3 -3
  231. package/build/video/save.cjs +7 -1
  232. package/build/video/save.cjs.map +2 -2
  233. package/build/video/tracks-editor.cjs +0 -1
  234. package/build/video/tracks-editor.cjs.map +2 -2
  235. package/build/video/variations.cjs +75 -0
  236. package/build/video/variations.cjs.map +7 -0
  237. package/build-module/accordion/edit.mjs +0 -1
  238. package/build-module/accordion/edit.mjs.map +2 -2
  239. package/build-module/accordion/view.mjs +23 -0
  240. package/build-module/accordion/view.mjs.map +2 -2
  241. package/build-module/accordion-heading/deprecated.mjs +121 -1
  242. package/build-module/accordion-heading/deprecated.mjs.map +2 -2
  243. package/build-module/accordion-heading/edit.mjs +8 -1
  244. package/build-module/accordion-heading/edit.mjs.map +2 -2
  245. package/build-module/accordion-heading/save.mjs +8 -1
  246. package/build-module/accordion-heading/save.mjs.map +2 -2
  247. package/build-module/accordion-panel/edit.mjs +1 -1
  248. package/build-module/accordion-panel/edit.mjs.map +2 -2
  249. package/build-module/archives/edit.mjs +0 -1
  250. package/build-module/archives/edit.mjs.map +2 -2
  251. package/build-module/audio/edit.mjs +0 -1
  252. package/build-module/audio/edit.mjs.map +2 -2
  253. package/build-module/avatar/edit.mjs +0 -1
  254. package/build-module/avatar/edit.mjs.map +2 -2
  255. package/build-module/avatar/user-control.mjs +0 -1
  256. package/build-module/avatar/user-control.mjs.map +2 -2
  257. package/build-module/categories/edit.mjs +0 -1
  258. package/build-module/categories/edit.mjs.map +2 -2
  259. package/build-module/code/transforms.mjs +6 -4
  260. package/build-module/code/transforms.mjs.map +2 -2
  261. package/build-module/column/edit.mjs +0 -1
  262. package/build-module/column/edit.mjs.map +2 -2
  263. package/build-module/columns/edit.mjs +0 -1
  264. package/build-module/columns/edit.mjs.map +2 -2
  265. package/build-module/columns/transforms.mjs +9 -2
  266. package/build-module/columns/transforms.mjs.map +2 -2
  267. package/build-module/comment-author-avatar/edit.mjs +0 -1
  268. package/build-module/comment-author-avatar/edit.mjs.map +2 -2
  269. package/build-module/comments-pagination/comments-pagination-arrow-controls.mjs +0 -1
  270. package/build-module/comments-pagination/comments-pagination-arrow-controls.mjs.map +2 -2
  271. package/build-module/cover/edit/inspector-controls.mjs +1 -3
  272. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  273. package/build-module/details/transforms.mjs +7 -2
  274. package/build-module/details/transforms.mjs.map +2 -2
  275. package/build-module/embed/edit.mjs +2 -3
  276. package/build-module/embed/edit.mjs.map +2 -2
  277. package/build-module/embed/embed-placeholder.mjs +20 -23
  278. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  279. package/build-module/file/inspector.mjs +0 -2
  280. package/build-module/file/inspector.mjs.map +2 -2
  281. package/build-module/form/edit.mjs +0 -2
  282. package/build-module/form/edit.mjs.map +2 -2
  283. package/build-module/freeform/convert-to-blocks-button.mjs +31 -0
  284. package/build-module/freeform/convert-to-blocks-button.mjs.map +7 -0
  285. package/build-module/freeform/edit.mjs +15 -34
  286. package/build-module/freeform/edit.mjs.map +2 -2
  287. package/build-module/freeform/index.mjs +1 -7
  288. package/build-module/freeform/index.mjs.map +2 -2
  289. package/build-module/gallery/block.json +4 -1
  290. package/build-module/gallery/dynamic-gallery.mjs +253 -0
  291. package/build-module/gallery/dynamic-gallery.mjs.map +7 -0
  292. package/build-module/gallery/dynamic-source.mjs +55 -0
  293. package/build-module/gallery/dynamic-source.mjs.map +7 -0
  294. package/build-module/gallery/edit.mjs +288 -206
  295. package/build-module/gallery/edit.mjs.map +2 -2
  296. package/build-module/gallery/gallery.mjs +0 -3
  297. package/build-module/gallery/gallery.mjs.map +2 -2
  298. package/build-module/gallery/index.mjs +2 -0
  299. package/build-module/gallery/index.mjs.map +2 -2
  300. package/build-module/gallery/save.mjs +16 -12
  301. package/build-module/gallery/save.mjs.map +2 -2
  302. package/build-module/gallery/use-dynamic-gallery.mjs +167 -0
  303. package/build-module/gallery/use-dynamic-gallery.mjs.map +7 -0
  304. package/build-module/gallery/variations.mjs +33 -0
  305. package/build-module/gallery/variations.mjs.map +7 -0
  306. package/build-module/group/edit.mjs +1 -2
  307. package/build-module/group/edit.mjs.map +2 -2
  308. package/build-module/group/transforms.mjs +7 -8
  309. package/build-module/group/transforms.mjs.map +2 -2
  310. package/build-module/heading/edit.mjs +11 -4
  311. package/build-module/heading/edit.mjs.map +2 -2
  312. package/build-module/html/block.json +2 -2
  313. package/build-module/html/edit.mjs +69 -25
  314. package/build-module/html/edit.mjs.map +2 -2
  315. package/build-module/html/index.mjs +3 -3
  316. package/build-module/html/index.mjs.map +2 -2
  317. package/build-module/html/modal.mjs +4 -8
  318. package/build-module/html/modal.mjs.map +2 -2
  319. package/build-module/html/save.mjs +2 -4
  320. package/build-module/html/save.mjs.map +2 -2
  321. package/build-module/html/transforms.mjs +8 -6
  322. package/build-module/html/transforms.mjs.map +2 -2
  323. package/build-module/image/animated-gif-convert-control.mjs +87 -0
  324. package/build-module/image/animated-gif-convert-control.mjs.map +7 -0
  325. package/build-module/image/edit.mjs +34 -0
  326. package/build-module/image/edit.mjs.map +2 -2
  327. package/build-module/image/image.mjs +28 -67
  328. package/build-module/image/image.mjs.map +2 -2
  329. package/build-module/index.mjs.map +2 -2
  330. package/build-module/latest-comments/edit.mjs +0 -2
  331. package/build-module/latest-comments/edit.mjs.map +2 -2
  332. package/build-module/latest-posts/block.json +8 -9
  333. package/build-module/latest-posts/constants.mjs +0 -2
  334. package/build-module/latest-posts/constants.mjs.map +2 -2
  335. package/build-module/latest-posts/deprecated.mjs +100 -8
  336. package/build-module/latest-posts/deprecated.mjs.map +2 -2
  337. package/build-module/latest-posts/edit.mjs +62 -77
  338. package/build-module/latest-posts/edit.mjs.map +2 -2
  339. package/build-module/list/ordered-list-settings.mjs +0 -1
  340. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  341. package/build-module/media-text/edit.mjs +0 -1
  342. package/build-module/media-text/edit.mjs.map +2 -2
  343. package/build-module/missing/edit.mjs +1 -3
  344. package/build-module/missing/edit.mjs.map +2 -2
  345. package/build-module/navigation/edit/index.mjs +0 -1
  346. package/build-module/navigation/edit/index.mjs.map +2 -2
  347. package/build-module/navigation/edit/overlay-menu-preview-controls.mjs +0 -1
  348. package/build-module/navigation/edit/overlay-menu-preview-controls.mjs.map +2 -2
  349. package/build-module/navigation/edit/overlay-menu-preview.mjs +0 -1
  350. package/build-module/navigation/edit/overlay-menu-preview.mjs.map +2 -2
  351. package/build-module/navigation/edit/overlay-template-part-selector.mjs +0 -1
  352. package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +2 -2
  353. package/build-module/navigation/edit/overlay-visibility-control.mjs +0 -1
  354. package/build-module/navigation/edit/overlay-visibility-control.mjs.map +2 -2
  355. package/build-module/navigation-link/shared/use-link-preview.mjs +11 -1
  356. package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
  357. package/build-module/navigation-overlay-close/edit.mjs +0 -1
  358. package/build-module/navigation-overlay-close/edit.mjs.map +2 -2
  359. package/build-module/page-list/edit.mjs +0 -1
  360. package/build-module/page-list/edit.mjs.map +2 -2
  361. package/build-module/playlist/block.json +1 -7
  362. package/build-module/playlist/context.mjs +11 -0
  363. package/build-module/playlist/context.mjs.map +7 -0
  364. package/build-module/playlist/edit.mjs +44 -70
  365. package/build-module/playlist/edit.mjs.map +2 -2
  366. package/build-module/playlist/utils.mjs +0 -3
  367. package/build-module/playlist/utils.mjs.map +2 -2
  368. package/build-module/playlist/view.mjs +4 -4
  369. package/build-module/playlist/view.mjs.map +2 -2
  370. package/build-module/playlist-track/block.json +1 -4
  371. package/build-module/playlist-track/edit.mjs +23 -9
  372. package/build-module/playlist-track/edit.mjs.map +2 -2
  373. package/build-module/post-author/edit.mjs +0 -2
  374. package/build-module/post-author/edit.mjs.map +2 -2
  375. package/build-module/post-excerpt/edit.mjs +0 -1
  376. package/build-module/post-excerpt/edit.mjs.map +2 -2
  377. package/build-module/post-featured-image/overlay-controls.mjs +1 -2
  378. package/build-module/post-featured-image/overlay-controls.mjs.map +2 -2
  379. package/build-module/post-navigation-link/edit.mjs +0 -2
  380. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  381. package/build-module/query/edit/inspector-controls/author-control.mjs +1 -2
  382. package/build-module/query/edit/inspector-controls/author-control.mjs.map +2 -2
  383. package/build-module/query/edit/inspector-controls/format-controls.mjs +1 -2
  384. package/build-module/query/edit/inspector-controls/format-controls.mjs.map +2 -2
  385. package/build-module/query/edit/inspector-controls/index.mjs +0 -3
  386. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  387. package/build-module/query/edit/inspector-controls/order-control.mjs +0 -1
  388. package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
  389. package/build-module/query/edit/inspector-controls/parent-control.mjs +0 -1
  390. package/build-module/query/edit/inspector-controls/parent-control.mjs.map +2 -2
  391. package/build-module/query/edit/inspector-controls/per-page-control.mjs +0 -1
  392. package/build-module/query/edit/inspector-controls/per-page-control.mjs.map +2 -2
  393. package/build-module/query/edit/inspector-controls/sticky-control.mjs +0 -1
  394. package/build-module/query/edit/inspector-controls/sticky-control.mjs.map +2 -2
  395. package/build-module/query/edit/inspector-controls/taxonomy-controls.mjs +1 -2
  396. package/build-module/query/edit/inspector-controls/taxonomy-controls.mjs.map +2 -2
  397. package/build-module/query-pagination/query-pagination-arrow-controls.mjs +0 -1
  398. package/build-module/query-pagination/query-pagination-arrow-controls.mjs.map +2 -2
  399. package/build-module/query-pagination-numbers/edit.mjs +0 -1
  400. package/build-module/query-pagination-numbers/edit.mjs.map +2 -2
  401. package/build-module/quote/transforms.mjs +6 -6
  402. package/build-module/quote/transforms.mjs.map +2 -2
  403. package/build-module/rss/edit.mjs +0 -3
  404. package/build-module/rss/edit.mjs.map +2 -2
  405. package/build-module/search/edit.mjs +0 -4
  406. package/build-module/search/edit.mjs.map +2 -2
  407. package/build-module/separator/edit.mjs +1 -2
  408. package/build-module/separator/edit.mjs.map +2 -2
  409. package/build-module/site-logo/edit.mjs +34 -64
  410. package/build-module/site-logo/edit.mjs.map +2 -2
  411. package/build-module/social-links/edit.mjs +0 -1
  412. package/build-module/social-links/edit.mjs.map +2 -2
  413. package/build-module/spacer/controls.mjs +2 -4
  414. package/build-module/spacer/controls.mjs.map +2 -2
  415. package/build-module/spacer/edit.mjs +1 -2
  416. package/build-module/spacer/edit.mjs.map +2 -2
  417. package/build-module/tab-list/block.json +3 -2
  418. package/build-module/tab-list/edit.mjs +39 -52
  419. package/build-module/tab-list/edit.mjs.map +2 -2
  420. package/build-module/tab-list/save.mjs +5 -3
  421. package/build-module/tab-list/save.mjs.map +2 -2
  422. package/build-module/tab-panel/controls.mjs +2 -4
  423. package/build-module/tab-panel/controls.mjs.map +2 -2
  424. package/build-module/tab-panels/edit.mjs +2 -4
  425. package/build-module/tab-panels/edit.mjs.map +2 -2
  426. package/build-module/table-of-contents/edit.mjs +0 -1
  427. package/build-module/table-of-contents/edit.mjs.map +2 -2
  428. package/build-module/tabs/edit.mjs +2 -2
  429. package/build-module/tabs/edit.mjs.map +2 -2
  430. package/build-module/tabs/tab-toolbar-controls.mjs +46 -0
  431. package/build-module/tabs/tab-toolbar-controls.mjs.map +7 -0
  432. package/build-module/tabs/use-tab-actions.mjs +66 -0
  433. package/build-module/tabs/use-tab-actions.mjs.map +7 -0
  434. package/build-module/tabs/use-tab-list-items-sync.mjs +6 -6
  435. package/build-module/tabs/use-tab-list-items-sync.mjs.map +2 -2
  436. package/build-module/tag-cloud/edit.mjs +2 -6
  437. package/build-module/tag-cloud/edit.mjs.map +2 -2
  438. package/build-module/template-part/edit/advanced-controls.mjs +0 -1
  439. package/build-module/template-part/edit/advanced-controls.mjs.map +2 -2
  440. package/build-module/template-part/edit/import-controls.mjs +1 -2
  441. package/build-module/template-part/edit/import-controls.mjs.map +2 -2
  442. package/build-module/terms-query/edit/inspector-controls/include-control.mjs +0 -1
  443. package/build-module/terms-query/edit/inspector-controls/include-control.mjs.map +2 -2
  444. package/build-module/terms-query/edit/inspector-controls/inherit-control.mjs +0 -1
  445. package/build-module/terms-query/edit/inspector-controls/inherit-control.mjs.map +2 -2
  446. package/build-module/terms-query/edit/inspector-controls/max-terms-control.mjs +0 -1
  447. package/build-module/terms-query/edit/inspector-controls/max-terms-control.mjs.map +2 -2
  448. package/build-module/terms-query/edit/inspector-controls/order-control.mjs +0 -1
  449. package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
  450. package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs +0 -1
  451. package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs.map +2 -2
  452. package/build-module/text-columns/edit.mjs +0 -1
  453. package/build-module/text-columns/edit.mjs.map +2 -2
  454. package/build-module/utils/gif-conversion-attributes.mjs +15 -0
  455. package/build-module/utils/gif-conversion-attributes.mjs.map +7 -0
  456. package/build-module/verse/block.json +3 -1
  457. package/build-module/video/block.json +6 -0
  458. package/build-module/video/edit-common-settings.mjs +0 -1
  459. package/build-module/video/edit-common-settings.mjs.map +2 -2
  460. package/build-module/video/edit.mjs +28 -3
  461. package/build-module/video/edit.mjs.map +2 -2
  462. package/build-module/video/gif-restore-control.mjs +55 -0
  463. package/build-module/video/gif-restore-control.mjs.map +7 -0
  464. package/build-module/video/index.mjs +2 -0
  465. package/build-module/video/index.mjs.map +2 -2
  466. package/build-module/video/save.mjs +7 -1
  467. package/build-module/video/save.mjs.map +2 -2
  468. package/build-module/video/tracks-editor.mjs +0 -1
  469. package/build-module/video/tracks-editor.mjs.map +2 -2
  470. package/build-module/video/variations.mjs +50 -0
  471. package/build-module/video/variations.mjs.map +7 -0
  472. package/build-style/accordion-panel/style-rtl.css +1 -2
  473. package/build-style/accordion-panel/style.css +1 -2
  474. package/build-style/audio/style-rtl.css +6 -0
  475. package/build-style/audio/style.css +6 -0
  476. package/build-style/audio/theme-rtl.css +6 -0
  477. package/build-style/audio/theme.css +6 -0
  478. package/build-style/columns/style-rtl.css +6 -0
  479. package/build-style/columns/style.css +6 -0
  480. package/build-style/common-rtl.css +6 -4
  481. package/build-style/common.css +6 -4
  482. package/build-style/editor-rtl.css +38 -3
  483. package/build-style/editor.css +38 -3
  484. package/build-style/embed/style-rtl.css +6 -0
  485. package/build-style/embed/style.css +6 -0
  486. package/build-style/embed/theme-rtl.css +6 -0
  487. package/build-style/embed/theme.css +6 -0
  488. package/build-style/freeform/editor-rtl.css +6 -0
  489. package/build-style/freeform/editor.css +6 -0
  490. package/build-style/gallery/editor-rtl.css +27 -3
  491. package/build-style/gallery/editor.css +27 -3
  492. package/build-style/gallery/style-rtl.css +6 -0
  493. package/build-style/gallery/style.css +6 -0
  494. package/build-style/gallery/theme-rtl.css +6 -0
  495. package/build-style/gallery/theme.css +6 -0
  496. package/build-style/html/editor-rtl.css +13 -0
  497. package/build-style/html/editor.css +13 -0
  498. package/build-style/image/editor-rtl.css +10 -0
  499. package/build-style/image/editor.css +10 -0
  500. package/build-style/image/style-rtl.css +6 -1
  501. package/build-style/image/style.css +6 -1
  502. package/build-style/image/theme-rtl.css +6 -0
  503. package/build-style/image/theme.css +6 -0
  504. package/build-style/latest-posts/style-rtl.css +26 -15
  505. package/build-style/latest-posts/style.css +26 -15
  506. package/build-style/navigation/editor-rtl.css +6 -0
  507. package/build-style/navigation/editor.css +6 -0
  508. package/build-style/navigation/style-rtl.css +6 -0
  509. package/build-style/navigation/style.css +6 -0
  510. package/build-style/navigation-submenu/editor-rtl.css +6 -0
  511. package/build-style/navigation-submenu/editor.css +6 -0
  512. package/build-style/page-list/editor-rtl.css +6 -0
  513. package/build-style/page-list/editor.css +6 -0
  514. package/build-style/playlist/style-rtl.css +121 -19
  515. package/build-style/playlist/style.css +121 -19
  516. package/build-style/post-template/style-rtl.css +6 -0
  517. package/build-style/post-template/style.css +6 -0
  518. package/build-style/query/editor-rtl.css +6 -0
  519. package/build-style/query/editor.css +6 -0
  520. package/build-style/rss/style-rtl.css +6 -0
  521. package/build-style/rss/style.css +6 -0
  522. package/build-style/shortcode/editor-rtl.css +6 -0
  523. package/build-style/shortcode/editor.css +6 -0
  524. package/build-style/style-rtl.css +145 -38
  525. package/build-style/style.css +145 -38
  526. package/build-style/table/editor-rtl.css +6 -0
  527. package/build-style/table/editor.css +6 -0
  528. package/build-style/table/theme-rtl.css +6 -0
  529. package/build-style/table/theme.css +6 -0
  530. package/build-style/template-part/editor-rtl.css +6 -0
  531. package/build-style/template-part/editor.css +6 -0
  532. package/build-style/theme-rtl.css +6 -0
  533. package/build-style/theme.css +6 -0
  534. package/build-style/video/style-rtl.css +6 -0
  535. package/build-style/video/style.css +6 -0
  536. package/build-style/video/theme-rtl.css +6 -0
  537. package/build-style/video/theme.css +6 -0
  538. package/package.json +43 -41
  539. package/src/accordion/README.md +1 -1
  540. package/src/accordion/edit.js +0 -1
  541. package/src/accordion/view.js +24 -0
  542. package/src/accordion-heading/README.md +1 -1
  543. package/src/accordion-heading/deprecated.js +122 -1
  544. package/src/accordion-heading/edit.js +12 -1
  545. package/src/accordion-heading/save.js +12 -1
  546. package/src/accordion-item/README.md +1 -1
  547. package/src/accordion-item/index.php +2 -1
  548. package/src/accordion-panel/edit.js +1 -1
  549. package/src/accordion-panel/style.scss +1 -4
  550. package/src/archives/edit.js +0 -1
  551. package/src/audio/edit.js +0 -1
  552. package/src/avatar/edit.js +0 -1
  553. package/src/avatar/user-control.js +0 -1
  554. package/src/categories/edit.js +0 -1
  555. package/src/code/transforms.js +6 -4
  556. package/src/column/edit.js +0 -1
  557. package/src/columns/edit.js +0 -1
  558. package/src/columns/transforms.js +9 -2
  559. package/src/comment-author-avatar/edit.js +0 -1
  560. package/src/comments-pagination/comments-pagination-arrow-controls.js +0 -1
  561. package/src/common.scss +0 -4
  562. package/src/cover/edit/inspector-controls.js +0 -2
  563. package/src/cover/test/edit.js +4 -42
  564. package/src/details/transforms.js +7 -2
  565. package/src/embed/edit.js +4 -5
  566. package/src/embed/embed-placeholder.js +16 -19
  567. package/src/file/inspector.js +0 -2
  568. package/src/form/edit.js +0 -2
  569. package/src/freeform/convert-to-blocks-button.js +33 -0
  570. package/src/freeform/edit.js +11 -21
  571. package/src/freeform/index.js +1 -9
  572. package/src/gallery/README.md +3 -0
  573. package/src/gallery/block.json +4 -1
  574. package/src/gallery/dynamic-gallery.js +384 -0
  575. package/src/gallery/dynamic-source.js +117 -0
  576. package/src/gallery/edit.js +152 -46
  577. package/src/gallery/editor.scss +32 -4
  578. package/src/gallery/gallery.js +0 -7
  579. package/src/gallery/index.js +2 -0
  580. package/src/gallery/index.php +277 -0
  581. package/src/gallery/save.js +22 -11
  582. package/src/gallery/test/dynamic-source.js +90 -0
  583. package/src/gallery/use-dynamic-gallery.js +275 -0
  584. package/src/gallery/variations.js +37 -0
  585. package/src/group/edit.js +2 -3
  586. package/src/group/transforms.js +7 -8
  587. package/src/heading/edit.js +19 -14
  588. package/src/home-link/index.php +1 -1
  589. package/src/html/README.md +2 -1
  590. package/src/html/block.json +2 -2
  591. package/src/html/edit.js +86 -14
  592. package/src/html/editor.scss +10 -0
  593. package/src/html/index.js +3 -4
  594. package/src/html/modal.js +5 -9
  595. package/src/html/save.js +4 -7
  596. package/src/html/test/index.js +143 -0
  597. package/src/html/transforms.js +11 -6
  598. package/src/icon/index.php +38 -45
  599. package/src/image/animated-gif-convert-control.js +135 -0
  600. package/src/image/edit.js +52 -0
  601. package/src/image/editor.scss +9 -0
  602. package/src/image/image.js +121 -180
  603. package/src/image/style.scss +0 -1
  604. package/src/image/test/animated-gif-convert-control.js +276 -0
  605. package/src/image/test/use-open-image-media-editor-modal.js +19 -4
  606. package/src/index.js +0 -2
  607. package/src/latest-comments/edit.js +0 -2
  608. package/src/latest-posts/README.md +2 -2
  609. package/src/latest-posts/block.json +8 -9
  610. package/src/latest-posts/constants.js +0 -1
  611. package/src/latest-posts/deprecated.js +112 -9
  612. package/src/latest-posts/edit.js +33 -45
  613. package/src/latest-posts/index.php +14 -3
  614. package/src/latest-posts/style.scss +12 -2
  615. package/src/latest-posts/test/deprecated.js +153 -0
  616. package/src/list/ordered-list-settings.js +0 -1
  617. package/src/media-text/edit.js +0 -1
  618. package/src/missing/edit.js +1 -3
  619. package/src/navigation/edit/index.js +0 -1
  620. package/src/navigation/edit/overlay-menu-preview-controls.js +0 -1
  621. package/src/navigation/edit/overlay-menu-preview.js +0 -1
  622. package/src/navigation/edit/overlay-template-part-selector.js +0 -1
  623. package/src/navigation/edit/overlay-visibility-control.js +0 -1
  624. package/src/navigation-link/shared/test/controls.js +0 -4
  625. package/src/navigation-link/shared/test/use-entity-binding.js +8 -12
  626. package/src/navigation-link/shared/test/use-handle-link-change.test.js +0 -4
  627. package/src/navigation-link/shared/test/use-link-preview.test.js +17 -4
  628. package/src/navigation-link/shared/use-link-preview.js +24 -4
  629. package/src/navigation-overlay-close/edit.js +0 -1
  630. package/src/page-list/edit.js +0 -1
  631. package/src/page-list/index.php +1 -1
  632. package/src/playlist/README.md +0 -2
  633. package/src/playlist/block.json +1 -7
  634. package/src/playlist/context.js +9 -0
  635. package/src/playlist/edit.js +51 -82
  636. package/src/playlist/index.php +37 -26
  637. package/src/playlist/style.scss +0 -5
  638. package/src/playlist/test/edit.js +0 -10
  639. package/src/playlist/utils.js +0 -6
  640. package/src/playlist/view.js +4 -4
  641. package/src/playlist-track/README.md +0 -2
  642. package/src/playlist-track/block.json +1 -4
  643. package/src/playlist-track/edit.js +25 -16
  644. package/src/playlist-track/index.php +4 -11
  645. package/src/post-author/edit.js +0 -2
  646. package/src/post-excerpt/edit.js +0 -1
  647. package/src/post-featured-image/overlay-controls.js +0 -1
  648. package/src/post-navigation-link/edit.js +0 -2
  649. package/src/query/edit/inspector-controls/author-control.js +0 -1
  650. package/src/query/edit/inspector-controls/format-controls.js +0 -1
  651. package/src/query/edit/inspector-controls/index.js +0 -3
  652. package/src/query/edit/inspector-controls/order-control.js +0 -1
  653. package/src/query/edit/inspector-controls/parent-control.js +0 -1
  654. package/src/query/edit/inspector-controls/per-page-control.js +0 -1
  655. package/src/query/edit/inspector-controls/sticky-control.js +0 -1
  656. package/src/query/edit/inspector-controls/taxonomy-controls.js +0 -1
  657. package/src/query-pagination/query-pagination-arrow-controls.js +0 -1
  658. package/src/query-pagination-numbers/edit.js +0 -1
  659. package/src/quote/transforms.js +6 -6
  660. package/src/rss/edit.js +0 -3
  661. package/src/search/edit.js +0 -4
  662. package/src/separator/edit.js +0 -1
  663. package/src/site-logo/edit.js +38 -78
  664. package/src/social-links/edit.js +0 -1
  665. package/src/spacer/controls.js +2 -4
  666. package/src/spacer/edit.js +2 -3
  667. package/src/tab-list/block.json +3 -2
  668. package/src/tab-list/edit.js +53 -55
  669. package/src/tab-list/save.js +5 -4
  670. package/src/tab-panel/controls.js +2 -4
  671. package/src/tab-panels/edit.js +2 -4
  672. package/src/table-of-contents/edit.js +0 -1
  673. package/src/tabs/edit.js +2 -2
  674. package/src/tabs/tab-toolbar-controls.js +58 -0
  675. package/src/tabs/use-tab-actions.js +102 -0
  676. package/src/tabs/use-tab-list-items-sync.js +7 -8
  677. package/src/tag-cloud/edit.js +0 -4
  678. package/src/tag-cloud/index.php +1 -1
  679. package/src/template-part/edit/advanced-controls.js +0 -1
  680. package/src/template-part/edit/import-controls.js +0 -1
  681. package/src/terms-query/edit/inspector-controls/include-control.js +0 -1
  682. package/src/terms-query/edit/inspector-controls/inherit-control.js +0 -1
  683. package/src/terms-query/edit/inspector-controls/max-terms-control.js +0 -1
  684. package/src/terms-query/edit/inspector-controls/order-control.js +0 -1
  685. package/src/terms-query/edit/inspector-controls/taxonomy-control.js +0 -1
  686. package/src/text-columns/edit.js +0 -1
  687. package/src/utils/gif-conversion-attributes.js +30 -0
  688. package/src/utils/test/gif-conversion-attributes.js +60 -0
  689. package/src/utils/test/waveform-player.js +0 -4
  690. package/src/utils/test/waveform-utils.js +0 -4
  691. package/src/verse/README.md +1 -0
  692. package/src/verse/block.json +3 -1
  693. package/src/video/README.md +2 -0
  694. package/src/video/block.json +6 -0
  695. package/src/video/edit-common-settings.js +0 -1
  696. package/src/video/edit.js +38 -1
  697. package/src/video/gif-restore-control.js +92 -0
  698. package/src/video/index.js +2 -0
  699. package/src/video/save.js +12 -0
  700. package/src/video/test/variations.js +65 -0
  701. package/src/video/tracks-editor.js +0 -1
  702. package/src/video/variations.js +65 -0
  703. package/build/freeform/migration-notice.cjs +0 -58
  704. package/build/freeform/migration-notice.cjs.map +0 -7
  705. package/build/tab-panel/add-tab-toolbar-control.cjs +0 -90
  706. package/build/tab-panel/add-tab-toolbar-control.cjs.map +0 -7
  707. package/build/tab-panel/remove-tab-toolbar-control.cjs +0 -99
  708. package/build/tab-panel/remove-tab-toolbar-control.cjs.map +0 -7
  709. package/build/tabs/controls.cjs +0 -45
  710. package/build/tabs/controls.cjs.map +0 -7
  711. package/build-module/freeform/migration-notice.mjs +0 -37
  712. package/build-module/freeform/migration-notice.mjs.map +0 -7
  713. package/build-module/tab-panel/add-tab-toolbar-control.mjs +0 -72
  714. package/build-module/tab-panel/add-tab-toolbar-control.mjs.map +0 -7
  715. package/build-module/tab-panel/remove-tab-toolbar-control.mjs +0 -81
  716. package/build-module/tab-panel/remove-tab-toolbar-control.mjs.map +0 -7
  717. package/build-module/tabs/controls.mjs +0 -14
  718. package/build-module/tabs/controls.mjs.map +0 -7
  719. package/src/freeform/migration-notice.js +0 -49
  720. package/src/tab-panel/add-tab-toolbar-control.js +0 -90
  721. package/src/tab-panel/remove-tab-toolbar-control.js +0 -110
  722. package/src/tabs/controls.js +0 -14
@@ -35,7 +35,6 @@ function TaxonomyControl({ value, onChange, ...props }) {
35
35
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
36
36
  import_components.SelectControl,
37
37
  {
38
- __next40pxDefaultSize: true,
39
38
  options: taxonomyOptions,
40
39
  value,
41
40
  onChange,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/terms-query/edit/inspector-controls/taxonomy-control.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { usePublicTaxonomies } from '../../utils';\n\nexport default function TaxonomyControl( { value, onChange, ...props } ) {\n\tconst taxonomies = usePublicTaxonomies();\n\tconst taxonomyOptions = taxonomies.map( ( taxonomy ) => ( {\n\t\tlabel: taxonomy.name,\n\t\tvalue: taxonomy.slug,\n\t} ) );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__next40pxDefaultSize\n\t\t\toptions={ taxonomyOptions }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA8B;AAK9B,mBAAoC;AAUlC;AARa,SAAR,gBAAkC,EAAE,OAAO,UAAU,GAAG,MAAM,GAAI;AACxE,QAAM,iBAAa,kCAAoB;AACvC,QAAM,kBAAkB,WAAW,IAAK,CAAE,cAAgB;AAAA,IACzD,OAAO,SAAS;AAAA,IAChB,OAAO,SAAS;AAAA,EACjB,EAAI;AAEJ,SACC;AAAA,IAAC;AAAA;AAAA,MACA,uBAAqB;AAAA,MACrB,SAAU;AAAA,MACV;AAAA,MACA;AAAA,MACE,GAAG;AAAA;AAAA,EACN;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { usePublicTaxonomies } from '../../utils';\n\nexport default function TaxonomyControl( { value, onChange, ...props } ) {\n\tconst taxonomies = usePublicTaxonomies();\n\tconst taxonomyOptions = taxonomies.map( ( taxonomy ) => ( {\n\t\tlabel: taxonomy.name,\n\t\tvalue: taxonomy.slug,\n\t} ) );\n\n\treturn (\n\t\t<SelectControl\n\t\t\toptions={ taxonomyOptions }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA8B;AAK9B,mBAAoC;AAUlC;AARa,SAAR,gBAAkC,EAAE,OAAO,UAAU,GAAG,MAAM,GAAI;AACxE,QAAM,iBAAa,kCAAoB;AACvC,QAAM,kBAAkB,WAAW,IAAK,CAAE,cAAgB;AAAA,IACzD,OAAO,SAAS;AAAA,IAChB,OAAO,SAAS;AAAA,EACjB,EAAI;AAEJ,SACC;AAAA,IAAC;AAAA;AAAA,MACA,SAAU;AAAA,MACV;AAAA,MACA;AAAA,MACE,GAAG;AAAA;AAAA,EACN;AAEF;",
6
6
  "names": []
7
7
  }
@@ -56,7 +56,6 @@ function TextColumnsEdit({ attributes, setAttributes }) {
56
56
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.InspectorControls, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.PanelBody, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
57
57
  import_components.RangeControl,
58
58
  {
59
- __next40pxDefaultSize: true,
60
59
  label: (0, import_i18n.__)("Columns"),
61
60
  value: columns,
62
61
  onChange: (value) => setAttributes({ columns: value }),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/text-columns/edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { PanelBody, RangeControl } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockAlignmentToolbar,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport deprecated from '@wordpress/deprecated';\n\nexport default function TextColumnsEdit( { attributes, setAttributes } ) {\n\tconst { width, content, columns } = attributes;\n\n\tdeprecated( 'The Text Columns block', {\n\t\tsince: '5.3',\n\t\talternative: 'the Columns block',\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\tvalue={ width }\n\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\tsetAttributes( { width: nextWidth } )\n\t\t\t\t\t}\n\t\t\t\t\tcontrols={ [ 'center', 'wide', 'full' ] }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={ 4 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tclassName: `align${ width } columns-${ columns }`,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ Array.from( { length: columns } ).map( ( _, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"wp-block-column\"\n\t\t\t\t\t\t\tkey={ `column-${ index }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\tvalue={ content?.[ index ]?.children }\n\t\t\t\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t\t\t\t\t...content.slice( 0, index ),\n\t\t\t\t\t\t\t\t\t\t\t{ children: nextContent },\n\t\t\t\t\t\t\t\t\t\t\t...content.slice( index + 1 ),\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %d: column index (starting with 1)\n\t\t\t\t\t\t\t\t\t__( 'Column %d text' ),\n\t\t\t\t\t\t\t\t\tindex + 1\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'New Column' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA4B;AAC5B,wBAAwC;AACxC,0BAMO;AACP,wBAAuB;AAWrB;AATa,SAAR,gBAAkC,EAAE,YAAY,cAAc,GAAI;AACxE,QAAM,EAAE,OAAO,SAAS,QAAQ,IAAI;AAEpC,wBAAAA,SAAY,0BAA0B;AAAA,IACrC,OAAO;AAAA,IACP,aAAa;AAAA,EACd,CAAE;AAEF,SACC,4EACC;AAAA,gDAAC,qCACA;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ;AAAA,QACR,UAAW,CAAE,cACZ,cAAe,EAAE,OAAO,UAAU,CAAE;AAAA,QAErC,UAAW,CAAE,UAAU,QAAQ,MAAO;AAAA;AAAA,IACvC,GACD;AAAA,IACA,4CAAC,yCACA,sDAAC,+BACA;AAAA,MAAC;AAAA;AAAA,QACA,uBAAqB;AAAA,QACrB,WAAQ,gBAAI,SAAU;AAAA,QACtB,OAAQ;AAAA,QACR,UAAW,CAAE,UACZ,cAAe,EAAE,SAAS,MAAM,CAAE;AAAA,QAEnC,KAAM;AAAA,QACN,KAAM;AAAA,QACN,UAAQ;AAAA;AAAA,IACT,GACD,GACD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACE,OAAG,mCAAe;AAAA,UACnB,WAAW,QAAS,KAAM,YAAa,OAAQ;AAAA,QAChD,CAAE;AAAA,QAEA,gBAAM,KAAM,EAAE,QAAQ,QAAQ,CAAE,EAAE,IAAK,CAAE,GAAG,UAAW;AACxD,iBACC;AAAA,YAAC;AAAA;AAAA,cACA,WAAU;AAAA,cAGV;AAAA,gBAAC;AAAA;AAAA,kBACA,SAAQ;AAAA,kBACR,OAAQ,UAAW,KAAM,GAAG;AAAA,kBAC5B,UAAW,CAAE,gBAAiB;AAC7B,kCAAe;AAAA,sBACd,SAAS;AAAA,wBACR,GAAG,QAAQ,MAAO,GAAG,KAAM;AAAA,wBAC3B,EAAE,UAAU,YAAY;AAAA,wBACxB,GAAG,QAAQ,MAAO,QAAQ,CAAE;AAAA,sBAC7B;AAAA,oBACD,CAAE;AAAA,kBACH;AAAA,kBACA,kBAAa;AAAA;AAAA,wBAEZ,gBAAI,gBAAiB;AAAA,oBACrB,QAAQ;AAAA,kBACT;AAAA,kBACA,iBAAc,gBAAI,YAAa;AAAA;AAAA,cAChC;AAAA;AAAA,YApBM,UAAW,KAAM;AAAA,UAqBxB;AAAA,QAEF,CAAE;AAAA;AAAA,IACH;AAAA,KACD;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { PanelBody, RangeControl } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockAlignmentToolbar,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport deprecated from '@wordpress/deprecated';\n\nexport default function TextColumnsEdit( { attributes, setAttributes } ) {\n\tconst { width, content, columns } = attributes;\n\n\tdeprecated( 'The Text Columns block', {\n\t\tsince: '5.3',\n\t\talternative: 'the Columns block',\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\tvalue={ width }\n\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\tsetAttributes( { width: nextWidth } )\n\t\t\t\t\t}\n\t\t\t\t\tcontrols={ [ 'center', 'wide', 'full' ] }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={ 4 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tclassName: `align${ width } columns-${ columns }`,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ Array.from( { length: columns } ).map( ( _, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"wp-block-column\"\n\t\t\t\t\t\t\tkey={ `column-${ index }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\tvalue={ content?.[ index ]?.children }\n\t\t\t\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t\t\t\t\t...content.slice( 0, index ),\n\t\t\t\t\t\t\t\t\t\t\t{ children: nextContent },\n\t\t\t\t\t\t\t\t\t\t\t...content.slice( index + 1 ),\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %d: column index (starting with 1)\n\t\t\t\t\t\t\t\t\t__( 'Column %d text' ),\n\t\t\t\t\t\t\t\t\tindex + 1\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'New Column' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA4B;AAC5B,wBAAwC;AACxC,0BAMO;AACP,wBAAuB;AAWrB;AATa,SAAR,gBAAkC,EAAE,YAAY,cAAc,GAAI;AACxE,QAAM,EAAE,OAAO,SAAS,QAAQ,IAAI;AAEpC,wBAAAA,SAAY,0BAA0B;AAAA,IACrC,OAAO;AAAA,IACP,aAAa;AAAA,EACd,CAAE;AAEF,SACC,4EACC;AAAA,gDAAC,qCACA;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ;AAAA,QACR,UAAW,CAAE,cACZ,cAAe,EAAE,OAAO,UAAU,CAAE;AAAA,QAErC,UAAW,CAAE,UAAU,QAAQ,MAAO;AAAA;AAAA,IACvC,GACD;AAAA,IACA,4CAAC,yCACA,sDAAC,+BACA;AAAA,MAAC;AAAA;AAAA,QACA,WAAQ,gBAAI,SAAU;AAAA,QACtB,OAAQ;AAAA,QACR,UAAW,CAAE,UACZ,cAAe,EAAE,SAAS,MAAM,CAAE;AAAA,QAEnC,KAAM;AAAA,QACN,KAAM;AAAA,QACN,UAAQ;AAAA;AAAA,IACT,GACD,GACD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACE,OAAG,mCAAe;AAAA,UACnB,WAAW,QAAS,KAAM,YAAa,OAAQ;AAAA,QAChD,CAAE;AAAA,QAEA,gBAAM,KAAM,EAAE,QAAQ,QAAQ,CAAE,EAAE,IAAK,CAAE,GAAG,UAAW;AACxD,iBACC;AAAA,YAAC;AAAA;AAAA,cACA,WAAU;AAAA,cAGV;AAAA,gBAAC;AAAA;AAAA,kBACA,SAAQ;AAAA,kBACR,OAAQ,UAAW,KAAM,GAAG;AAAA,kBAC5B,UAAW,CAAE,gBAAiB;AAC7B,kCAAe;AAAA,sBACd,SAAS;AAAA,wBACR,GAAG,QAAQ,MAAO,GAAG,KAAM;AAAA,wBAC3B,EAAE,UAAU,YAAY;AAAA,wBACxB,GAAG,QAAQ,MAAO,QAAQ,CAAE;AAAA,sBAC7B;AAAA,oBACD,CAAE;AAAA,kBACH;AAAA,kBACA,kBAAa;AAAA;AAAA,wBAEZ,gBAAI,gBAAiB;AAAA,oBACrB,QAAQ;AAAA,kBACT;AAAA,kBACA,iBAAc,gBAAI,YAAa;AAAA;AAAA,cAChC;AAAA;AAAA,YApBM,UAAW,KAAM;AAAA,UAqBxB;AAAA,QAEF,CAAE;AAAA;AAAA,IACH;AAAA,KACD;AAEF;",
6
6
  "names": ["deprecated"]
7
7
  }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/block-library/src/utils/gif-conversion-attributes.js
21
+ var gif_conversion_attributes_exports = {};
22
+ __export(gif_conversion_attributes_exports, {
23
+ getCarriedGifConversionAttributes: () => getCarriedGifConversionAttributes
24
+ });
25
+ module.exports = __toCommonJS(gif_conversion_attributes_exports);
26
+ function getCarriedGifConversionAttributes(attributes) {
27
+ const { align, anchor, className, style } = attributes;
28
+ const margin = style?.spacing?.margin;
29
+ return {
30
+ ...align && { align },
31
+ ...anchor && { anchor },
32
+ ...className && { className },
33
+ ...margin && { style: { spacing: { margin } } }
34
+ };
35
+ }
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ getCarriedGifConversionAttributes
39
+ });
40
+ //# sourceMappingURL=gif-conversion-attributes.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/gif-conversion-attributes.js"],
4
+ "sourcesContent": ["/**\n * Returns the subset of block attributes that should be carried over when\n * converting between the animated-GIF Image block and its converted Video\n * block (in either direction).\n *\n * The conversion swaps one block for another via `createBlock`, which would\n * otherwise drop everything the author set on the original block. This carries\n * the attributes both blocks support, so the conversion (and its reverse) keeps\n * them: block alignment, the HTML anchor, custom class names, and margin\n * spacing.\n *\n * Image-only attributes such as links (`href`/`linkDestination`), sizing\n * (`sizeSlug`/`scale`), and `border`/`shadow` styles are intentionally not\n * carried: the Video block has no equivalent, so copying them would leave\n * attributes the target block cannot represent.\n *\n * @param {Object} attributes Source block attributes.\n * @return {Object} Attributes to spread into the converted block.\n */\nexport function getCarriedGifConversionAttributes( attributes ) {\n\tconst { align, anchor, className, style } = attributes;\n\tconst margin = style?.spacing?.margin;\n\n\treturn {\n\t\t...( align && { align } ),\n\t\t...( anchor && { anchor } ),\n\t\t...( className && { className } ),\n\t\t...( margin && { style: { spacing: { margin } } } ),\n\t};\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBO,SAAS,kCAAmC,YAAa;AAC/D,QAAM,EAAE,OAAO,QAAQ,WAAW,MAAM,IAAI;AAC5C,QAAM,SAAS,OAAO,SAAS;AAE/B,SAAO;AAAA,IACN,GAAK,SAAS,EAAE,MAAM;AAAA,IACtB,GAAK,UAAU,EAAE,OAAO;AAAA,IACxB,GAAK,aAAa,EAAE,UAAU;AAAA,IAC9B,GAAK,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;AAAA,EACjD;AACD;",
6
+ "names": []
7
+ }
@@ -21,8 +21,10 @@
21
21
  "background": {
22
22
  "backgroundImage": true,
23
23
  "backgroundSize": true,
24
+ "gradient": true,
24
25
  "__experimentalDefaultControls": {
25
- "backgroundImage": true
26
+ "backgroundImage": true,
27
+ "gradient": true
26
28
  }
27
29
  },
28
30
  "color": {
@@ -67,6 +67,12 @@
67
67
  "attribute": "src",
68
68
  "role": "content"
69
69
  },
70
+ "width": {
71
+ "type": "number"
72
+ },
73
+ "height": {
74
+ "type": "number"
75
+ },
70
76
  "playsInline": {
71
77
  "type": "boolean",
72
78
  "source": "attribute",
@@ -180,7 +180,6 @@ var VideoSettings = ({ setAttributes, attributes }) => {
180
180
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
181
181
  import_components.SelectControl,
182
182
  {
183
- __next40pxDefaultSize: true,
184
183
  label: (0, import_i18n.__)("Preload"),
185
184
  value: preload,
186
185
  onChange: onChangePreload,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/video/edit-common-settings.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tToggleControl,\n\tSelectControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useMemo, useCallback } from '@wordpress/element';\n\nconst options = [\n\t{ value: 'auto', label: __( 'Auto' ) },\n\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t{ value: 'none', label: _x( 'None', 'Preload value' ) },\n];\n\nconst VideoSettings = ( { setAttributes, attributes } ) => {\n\tconst { autoplay, controls, loop, muted, playsInline, preload } =\n\t\tattributes;\n\n\tconst autoPlayHelpText = __(\n\t\t'Autoplay may cause usability issues for some users.'\n\t);\n\n\tconst getAutoplayHelp = useCallback( ( checked ) => {\n\t\treturn checked ? autoPlayHelpText : null;\n\t}, [] );\n\n\tconst toggleFactory = useMemo( () => {\n\t\tconst toggleAttribute = ( attribute ) => {\n\t\t\treturn ( newValue ) => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t[ attribute ]: newValue,\n\t\t\t\t\t// Set muted and playsInLine when autoplay changes\n\t\t\t\t\t// playsInline is set to true when autoplay is true to support iOS devices\n\t\t\t\t\t...( attribute === 'autoplay' && {\n\t\t\t\t\t\tmuted: newValue,\n\t\t\t\t\t\tplaysInline: newValue,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t};\n\t\t};\n\n\t\treturn {\n\t\t\tautoplay: toggleAttribute( 'autoplay' ),\n\t\t\tloop: toggleAttribute( 'loop' ),\n\t\t\tmuted: toggleAttribute( 'muted' ),\n\t\t\tcontrols: toggleAttribute( 'controls' ),\n\t\t\tplaysInline: toggleAttribute( 'playsInline' ),\n\t\t};\n\t}, [] );\n\n\tconst onChangePreload = useCallback( ( value ) => {\n\t\tsetAttributes( { preload: value } );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! autoplay }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { autoplay: false, muted: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\tonChange={ toggleFactory.autoplay }\n\t\t\t\t\tchecked={ !! autoplay }\n\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! loop }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { loop: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\tonChange={ toggleFactory.loop }\n\t\t\t\t\tchecked={ !! loop }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! muted }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { muted: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\t\tonChange={ toggleFactory.muted }\n\t\t\t\t\tchecked={ !! muted }\n\t\t\t\t\tdisabled={ autoplay }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tautoplay ? __( 'Muted because of Autoplay.' ) : null\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => ! controls }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { controls: true } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\t\tonChange={ toggleFactory.controls }\n\t\t\t\t\tchecked={ !! controls }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! playsInline }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { playsInline: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t/* translators: Setting to play videos within the webpage on mobile browsers rather than opening in a fullscreen player. */\n\t\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\t\tonChange={ toggleFactory.playsInline }\n\t\t\t\t\tchecked={ !! playsInline }\n\t\t\t\t\tdisabled={ autoplay }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tautoplay\n\t\t\t\t\t\t\t? __( 'Play inline enabled because of Autoplay.' )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'When enabled, videos will play directly within the webpage on mobile browsers, instead of opening in a fullscreen player.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => preload !== 'metadata' }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { preload: 'metadata' } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\t\tvalue={ preload }\n\t\t\t\t\tonChange={ onChangePreload }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</>\n\t);\n};\n\nexport default VideoSettings;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tToggleControl,\n\tSelectControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useMemo, useCallback } from '@wordpress/element';\n\nconst options = [\n\t{ value: 'auto', label: __( 'Auto' ) },\n\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t{ value: 'none', label: _x( 'None', 'Preload value' ) },\n];\n\nconst VideoSettings = ( { setAttributes, attributes } ) => {\n\tconst { autoplay, controls, loop, muted, playsInline, preload } =\n\t\tattributes;\n\n\tconst autoPlayHelpText = __(\n\t\t'Autoplay may cause usability issues for some users.'\n\t);\n\n\tconst getAutoplayHelp = useCallback( ( checked ) => {\n\t\treturn checked ? autoPlayHelpText : null;\n\t}, [] );\n\n\tconst toggleFactory = useMemo( () => {\n\t\tconst toggleAttribute = ( attribute ) => {\n\t\t\treturn ( newValue ) => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t[ attribute ]: newValue,\n\t\t\t\t\t// Set muted and playsInLine when autoplay changes\n\t\t\t\t\t// playsInline is set to true when autoplay is true to support iOS devices\n\t\t\t\t\t...( attribute === 'autoplay' && {\n\t\t\t\t\t\tmuted: newValue,\n\t\t\t\t\t\tplaysInline: newValue,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t};\n\t\t};\n\n\t\treturn {\n\t\t\tautoplay: toggleAttribute( 'autoplay' ),\n\t\t\tloop: toggleAttribute( 'loop' ),\n\t\t\tmuted: toggleAttribute( 'muted' ),\n\t\t\tcontrols: toggleAttribute( 'controls' ),\n\t\t\tplaysInline: toggleAttribute( 'playsInline' ),\n\t\t};\n\t}, [] );\n\n\tconst onChangePreload = useCallback( ( value ) => {\n\t\tsetAttributes( { preload: value } );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! autoplay }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { autoplay: false, muted: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\tonChange={ toggleFactory.autoplay }\n\t\t\t\t\tchecked={ !! autoplay }\n\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! loop }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { loop: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\tonChange={ toggleFactory.loop }\n\t\t\t\t\tchecked={ !! loop }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! muted }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { muted: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\t\tonChange={ toggleFactory.muted }\n\t\t\t\t\tchecked={ !! muted }\n\t\t\t\t\tdisabled={ autoplay }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tautoplay ? __( 'Muted because of Autoplay.' ) : null\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => ! controls }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { controls: true } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\t\tonChange={ toggleFactory.controls }\n\t\t\t\t\tchecked={ !! controls }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! playsInline }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { playsInline: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t/* translators: Setting to play videos within the webpage on mobile browsers rather than opening in a fullscreen player. */\n\t\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\t\tonChange={ toggleFactory.playsInline }\n\t\t\t\t\tchecked={ !! playsInline }\n\t\t\t\t\tdisabled={ autoplay }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tautoplay\n\t\t\t\t\t\t\t? __( 'Play inline enabled because of Autoplay.' )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'When enabled, videos will play directly within the webpage on mobile browsers, instead of opening in a fullscreen player.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => preload !== 'metadata' }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { preload: 'metadata' } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\t\tvalue={ preload }\n\t\t\t\t\tonChange={ onChangePreload }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</>\n\t);\n};\n\nexport default VideoSettings;\n"],
5
+ "mappings": "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",
6
6
  "names": ["ToolsPanelItem"]
7
7
  }
@@ -50,6 +50,8 @@ var import_tracks_editor = __toESM(require("./tracks-editor.cjs"));
50
50
  var import_tracks = __toESM(require("./tracks.cjs"));
51
51
  var import_caption = require("../utils/caption.cjs");
52
52
  var import_poster_image = __toESM(require("../utils/poster-image.cjs"));
53
+ var import_variations = require("./variations.cjs");
54
+ var import_gif_restore_control = __toESM(require("./gif-restore-control.cjs"));
53
55
  var import_jsx_runtime = require("react/jsx-runtime");
54
56
  var ALLOWED_MEDIA_TYPES = ["video"];
55
57
  function VideoEdit({
@@ -58,10 +60,13 @@ function VideoEdit({
58
60
  className,
59
61
  setAttributes,
60
62
  insertBlocksAfter,
61
- onReplace
63
+ onReplace,
64
+ clientId
62
65
  }) {
63
66
  const videoPlayer = (0, import_element.useRef)();
64
- const { id, controls, poster, src, tracks } = attributes;
67
+ const { id, controls, poster, src, tracks, width, height } = attributes;
68
+ const isGif = (0, import_variations.isGifVariation)(attributes);
69
+ const aspectRatio = width && height ? `${width} / ${height}` : void 0;
65
70
  const [temporaryURL, setTemporaryURL] = (0, import_element.useState)(attributes.blob);
66
71
  const dropdownMenuProps = (0, import_hooks.useToolsPanelDropdownMenuProps)();
67
72
  const blockEditingMode = (0, import_block_editor.useBlockEditingMode)();
@@ -77,6 +82,12 @@ function VideoEdit({
77
82
  videoPlayer.current.load();
78
83
  }
79
84
  }, [poster]);
85
+ (0, import_element.useEffect)(() => {
86
+ if (isGif) {
87
+ videoPlayer.current?.play().catch(() => {
88
+ });
89
+ }
90
+ }, [isGif, src, poster]);
80
91
  function onSelectVideo(media) {
81
92
  if (!media || !media.url) {
82
93
  setAttributes({
@@ -185,7 +196,14 @@ function VideoEdit({
185
196
  onReset: () => onSelectVideo(void 0),
186
197
  variant: "toolbar"
187
198
  }
188
- ) })
199
+ ) }),
200
+ isGif && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
201
+ import_gif_restore_control.default,
202
+ {
203
+ attributes,
204
+ clientId
205
+ }
206
+ )
189
207
  ] }),
190
208
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.InspectorControls, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
191
209
  import_components.__experimentalToolsPanel,
@@ -232,6 +250,13 @@ function VideoEdit({
232
250
  poster,
233
251
  src: src || temporaryURL,
234
252
  ref: videoPlayer,
253
+ autoPlay: isGif,
254
+ loop: isGif,
255
+ muted: isGif,
256
+ playsInline: isGif,
257
+ width,
258
+ height,
259
+ style: aspectRatio ? { aspectRatio } : void 0,
235
260
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tracks.default, { tracks })
236
261
  }
237
262
  ),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/video/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tSpinner,\n\tPlaceholder,\n\t__experimentalToolsPanel as ToolsPanel,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { prependHTTPS } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport {\n\tuseUploadMediaFromBlobURL,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\nimport PosterImage from '../utils/poster-image';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst videoPlayer = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectVideo,\n\t\tonError: onUploadError,\n\t} );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\t// TODO: Whether the video was obtained from the media library or was provided by URL, obtain the `videoWidth` and `videoHeight` of the video once its metadata has loaded and persist in the block attributes.\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\tconst url = prependHTTPS( newSrc );\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tsrc: url,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\t\twithIllustration={ ! isSingleSelected }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Video' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\tonReset={ () => onSelectVideo( undefined ) }\n\t\t\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoplay: false,\n\t\t\t\t\t\t\tcontrols: true,\n\t\t\t\t\t\t\tloop: false,\n\t\t\t\t\t\t\tmuted: false,\n\t\t\t\t\t\t\tplaysInline: false,\n\t\t\t\t\t\t\tpreload: 'metadata',\n\t\t\t\t\t\t\tposter: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<PosterImage\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tonChange={ ( posterImage ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tposter: posterImage?.url,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t<video\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\tinert={ ! isSingleSelected ? 'true' : undefined }\n\t\t\t\t\tposter={ poster }\n\t\t\t\t\tsrc={ src || temporaryURL }\n\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t>\n\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t</video>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={\n\t\t\t\t\t\tisSingleSelected && hasNonContentControls\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],
5
- "mappings": "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",
6
- "names": ["noticesStore", "icon", "clsx", "TracksEditor", "ToolsPanel", "VideoCommonSettings", "PosterImage", "Tracks"]
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tSpinner,\n\tPlaceholder,\n\t__experimentalToolsPanel as ToolsPanel,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { prependHTTPS } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport {\n\tuseUploadMediaFromBlobURL,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\nimport PosterImage from '../utils/poster-image';\nimport { isGifVariation } from './variations';\nimport GifRestoreControl from './gif-restore-control';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n\tclientId,\n} ) {\n\tconst videoPlayer = useRef();\n\tconst { id, controls, poster, src, tracks, width, height } = attributes;\n\tconst isGif = isGifVariation( attributes );\n\t// Give the <video> an explicit (non-`auto`) aspect ratio derived from the\n\t// stored dimensions. The width/height attributes alone only yield\n\t// `aspect-ratio: auto W/H`, whose `auto` keyword defers to the element's\n\t// natural ratio while the poster/metadata load - during which Chrome briefly\n\t// computes a runaway height (tens of thousands of pixels) before settling.\n\t// That spike is what reads as a duplicated image during the GIF-to-video\n\t// swap. A non-`auto` ratio governs the box height throughout the load.\n\tconst aspectRatio =\n\t\twidth && height ? `${ width } / ${ height }` : undefined;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectVideo,\n\t\tonError: onUploadError,\n\t} );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\t// The GIF variation plays like an animated GIF in the editor (the playback\n\t// attributes are applied to the preview <video> below). Regular videos do\n\t// not autoplay in the editor, so only nudge GIFs into playing after a\n\t// source change in case the muted autoplay did not start on its own.\n\tuseEffect( () => {\n\t\tif ( isGif ) {\n\t\t\t// Browsers allow muted videos to be played programmatically.\n\t\t\tvideoPlayer.current?.play().catch( () => {} );\n\t\t}\n\t}, [ isGif, src, poster ] );\n\n\t// TODO: Whether the video was obtained from the media library or was provided by URL, obtain the `videoWidth` and `videoHeight` of the video once its metadata has loaded and persist in the block attributes.\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\tconst url = prependHTTPS( newSrc );\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tsrc: url,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\t\twithIllustration={ ! isSingleSelected }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Video' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\tonReset={ () => onSelectVideo( undefined ) }\n\t\t\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t{ isGif && (\n\t\t\t\t\t\t<GifRestoreControl\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoplay: false,\n\t\t\t\t\t\t\tcontrols: true,\n\t\t\t\t\t\t\tloop: false,\n\t\t\t\t\t\t\tmuted: false,\n\t\t\t\t\t\t\tplaysInline: false,\n\t\t\t\t\t\t\tpreload: 'metadata',\n\t\t\t\t\t\t\tposter: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<PosterImage\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tonChange={ ( posterImage ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tposter: posterImage?.url,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t<video\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\tinert={ ! isSingleSelected ? 'true' : undefined }\n\t\t\t\t\tposter={ poster }\n\t\t\t\t\tsrc={ src || temporaryURL }\n\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\tautoPlay={ isGif }\n\t\t\t\t\tloop={ isGif }\n\t\t\t\t\tmuted={ isGif }\n\t\t\t\t\tplaysInline={ isGif }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t\tstyle={ aspectRatio ? { aspectRatio } : undefined }\n\t\t\t\t>\n\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t</video>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={\n\t\t\t\t\t\tisSingleSelected && hasNonContentControls\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],
5
+ "mappings": "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",
6
+ "names": ["noticesStore", "icon", "clsx", "TracksEditor", "GifRestoreControl", "ToolsPanel", "VideoCommonSettings", "PosterImage", "Tracks"]
7
7
  }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/block-library/src/video/gif-restore-control.js
21
+ var gif_restore_control_exports = {};
22
+ __export(gif_restore_control_exports, {
23
+ default: () => GifRestoreControl
24
+ });
25
+ module.exports = __toCommonJS(gif_restore_control_exports);
26
+ var import_components = require("@wordpress/components");
27
+ var import_block_editor = require("@wordpress/block-editor");
28
+ var import_core_data = require("@wordpress/core-data");
29
+ var import_blocks = require("@wordpress/blocks");
30
+ var import_data = require("@wordpress/data");
31
+ var import_icons = require("@wordpress/icons");
32
+ var import_i18n = require("@wordpress/i18n");
33
+ var import_gif_conversion_attributes = require("../utils/gif-conversion-attributes.cjs");
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ function GifRestoreControl({ attributes, clientId }) {
36
+ const { id, caption } = attributes;
37
+ const { replaceBlocks } = (0, import_data.useDispatch)(import_block_editor.store);
38
+ const gif = (0, import_data.useSelect)(
39
+ (select) => {
40
+ if (!id) {
41
+ return null;
42
+ }
43
+ const record = select(import_core_data.store).getEntityRecord(
44
+ "postType",
45
+ "attachment",
46
+ id,
47
+ { context: "view" }
48
+ );
49
+ if (!record?.mime_type?.startsWith("image/")) {
50
+ return null;
51
+ }
52
+ return record;
53
+ },
54
+ [id]
55
+ );
56
+ if (!gif?.source_url) {
57
+ return null;
58
+ }
59
+ function restoreToImage() {
60
+ replaceBlocks(
61
+ clientId,
62
+ (0, import_blocks.createBlock)("core/image", {
63
+ ...(0, import_gif_conversion_attributes.getCarriedGifConversionAttributes)(attributes),
64
+ id,
65
+ url: gif.source_url,
66
+ alt: gif.alt_text || "",
67
+ caption
68
+ })
69
+ );
70
+ }
71
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockControls, { group: "other", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ToolbarGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ToolbarButton, { icon: import_icons.image, onClick: restoreToImage, children: (0, import_i18n.__)("Display as GIF") }) }) });
72
+ }
73
+ //# sourceMappingURL=gif-restore-control.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/video/gif-restore-control.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { createBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { image as imageIcon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getCarriedGifConversionAttributes } from '../utils/gif-conversion-attributes';\n\n/**\n * Toolbar control that turns a converted GIF video block back into the original\n * animated GIF Image block.\n *\n * An animated GIF uploaded through the editor is converted to a muted, looping\n * video and presented as the Video block's \"GIF\" variation, while the original\n * GIF stays the underlying image attachment. This control switches the block\n * back to a `core/image` pointing at that GIF and opts the image out of being\n * re-converted.\n *\n * It only renders when the block's media is an image attachment (i.e. an\n * editor-converted GIF), so it never appears on regular videos that happen to\n * be muted and looping.\n *\n * @param {Object} props Component props.\n * @param {Object} props.attributes Video block attributes.\n * @param {string} props.clientId Block client ID.\n *\n * @return {Component|null} The control, or null when restoring does not apply.\n */\nexport default function GifRestoreControl( { attributes, clientId } ) {\n\tconst { id, caption } = attributes;\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\n\t// The original GIF is the underlying image attachment. Only offer the\n\t// restore when the media resolves to an image (an editor-converted GIF),\n\t// not when a regular video has simply been set to loop/autoplay/mute.\n\tconst gif = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! id ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst record = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'attachment',\n\t\t\t\tid,\n\t\t\t\t{ context: 'view' }\n\t\t\t);\n\t\t\tif ( ! record?.mime_type?.startsWith( 'image/' ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn record;\n\t\t},\n\t\t[ id ]\n\t);\n\n\tif ( ! gif?.source_url ) {\n\t\treturn null;\n\t}\n\n\tfunction restoreToImage() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t...getCarriedGifConversionAttributes( attributes ),\n\t\t\t\tid,\n\t\t\t\turl: gif.source_url,\n\t\t\t\talt: gif.alt_text || '',\n\t\t\t\tcaption,\n\t\t\t} )\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton icon={ imageIcon } onClick={ restoreToImage }>\n\t\t\t\t\t{ __( 'Display as GIF' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA4C;AAC5C,0BAGO;AACP,uBAAmC;AACnC,oBAA4B;AAC5B,kBAAuC;AACvC,mBAAmC;AACnC,kBAAmB;AAKnB,uCAAkD;AAoE9C;AA9CW,SAAR,kBAAoC,EAAE,YAAY,SAAS,GAAI;AACrE,QAAM,EAAE,IAAI,QAAQ,IAAI;AACxB,QAAM,EAAE,cAAc,QAAI,yBAAa,oBAAAA,KAAiB;AAKxD,QAAM,UAAM;AAAA,IACX,CAAE,WAAY;AACb,UAAK,CAAE,IAAK;AACX,eAAO;AAAA,MACR;AACA,YAAM,SAAS,OAAQ,iBAAAC,KAAU,EAAE;AAAA,QAClC;AAAA,QACA;AAAA,QACA;AAAA,QACA,EAAE,SAAS,OAAO;AAAA,MACnB;AACA,UAAK,CAAE,QAAQ,WAAW,WAAY,QAAS,GAAI;AAClD,eAAO;AAAA,MACR;AACA,aAAO;AAAA,IACR;AAAA,IACA,CAAE,EAAG;AAAA,EACN;AAEA,MAAK,CAAE,KAAK,YAAa;AACxB,WAAO;AAAA,EACR;AAEA,WAAS,iBAAiB;AACzB;AAAA,MACC;AAAA,UACA,2BAAa,cAAc;AAAA,QAC1B,OAAG,oEAAmC,UAAW;AAAA,QACjD;AAAA,QACA,KAAK,IAAI;AAAA,QACT,KAAK,IAAI,YAAY;AAAA,QACrB;AAAA,MACD,CAAE;AAAA,IACH;AAAA,EACD;AAEA,SACC,4CAAC,qCAAc,OAAM,SACpB,sDAAC,kCACA,sDAAC,mCAAc,MAAO,aAAAC,OAAY,SAAU,gBACzC,8BAAI,gBAAiB,GACxB,GACD,GACD;AAEF;",
6
+ "names": ["blockEditorStore", "coreStore", "imageIcon"]
7
+ }
@@ -45,6 +45,7 @@ var import_edit = __toESM(require("./edit.cjs"));
45
45
  var import_block = __toESM(require("./block.json"));
46
46
  var import_save = __toESM(require("./save.cjs"));
47
47
  var import_transforms = __toESM(require("./transforms.cjs"));
48
+ var import_variations = __toESM(require("./variations.cjs"));
48
49
  var import_lock_unlock = require("../lock-unlock.cjs");
49
50
  var { fieldsKey, formKey } = (0, import_lock_unlock.unlock)(import_blocks.privateApis);
50
51
  var { name } = import_block.default;
@@ -58,6 +59,7 @@ var settings = {
58
59
  }
59
60
  },
60
61
  transforms: import_transforms.default,
62
+ variations: import_variations.default,
61
63
  deprecated: import_deprecated.default,
62
64
  edit: import_edit.default,
63
65
  save: import_save.default
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/video/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { video as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsrc: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Wood_thrush_in_Central_Park_switch_sides_%2816510%29.webm',\n\t\t\t// translators: Caption accompanying a video of the wood thrush singing, which serves as an example for the Video block.\n\t\t\tcaption: __( 'Wood thrush singing in Central Park, NYC.' ),\n\t\t},\n\t},\n\ttransforms,\n\tdeprecated,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'video',\n\t\t\tlabel: __( 'Video' ),\n\t\t\ttype: 'media',\n\t\t\tEdit: {\n\t\t\t\tcontrol: 'media', // TODO: replace with custom component\n\t\t\t\tallowedTypes: [ 'video' ],\n\t\t\t\tmultiple: false,\n\t\t\t},\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\tid: item.id,\n\t\t\t\turl: item.src,\n\t\t\t\tcaption: item.caption,\n\t\t\t\tposter: item.poster,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\tid: value.id,\n\t\t\t\tsrc: value.url,\n\t\t\t\tcaption: value.caption,\n\t\t\t\tposter: value.poster,\n\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\tid: 'caption',\n\t\t\tlabel: __( 'Caption' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'video', 'caption' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,+BAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,mBAA8B;AAC9B,oBAAiD;AAKjD,wBAAsB;AACtB,wBAAuB;AACvB,kBAAiB;AACjB,mBAAqB;AACrB,kBAAiB;AACjB,wBAAuB;AACvB,yBAAuB;AAEvB,IAAM,EAAE,WAAW,QAAQ,QAAI,2BAAQ,cAAAC,WAAkB;AAEzD,IAAM,EAAE,KAAK,IAAI,aAAAD;AAIV,IAAM,WAAW;AAAA,EACvB,mBAAAE;AAAA,EACA,SAAS;AAAA,IACR,YAAY;AAAA,MACX,KAAK;AAAA;AAAA,MAEL,aAAS,gBAAI,2CAA4C;AAAA,IAC1D;AAAA,EACD;AAAA,EACA,8BAAAC;AAAA,EACA,8BAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AACD;AAEA,IAAK,OAAO,0CAA2C;AACtD,WAAU,SAAU,IAAI;AAAA,IACvB;AAAA,MACC,IAAI;AAAA,MACJ,WAAO,gBAAI,OAAQ;AAAA,MACnB,MAAM;AAAA,MACN,MAAM;AAAA,QACL,SAAS;AAAA;AAAA,QACT,cAAc,CAAE,OAAQ;AAAA,QACxB,UAAU;AAAA,MACX;AAAA,MACA,UAAU,CAAE,EAAE,KAAK,OAAS;AAAA,QAC3B,IAAI,KAAK;AAAA,QACT,KAAK,KAAK;AAAA,QACV,SAAS,KAAK;AAAA,QACd,QAAQ,KAAK;AAAA,MACd;AAAA,MACA,UAAU,CAAE,EAAE,MAAM,OAAS;AAAA,QAC5B,IAAI,MAAM;AAAA,QACV,KAAK,MAAM;AAAA,QACX,SAAS,MAAM;AAAA,QACf,QAAQ,MAAM;AAAA,MACf;AAAA,IACD;AAAA,IACA;AAAA,MACC,IAAI;AAAA,MACJ,WAAO,gBAAI,SAAU;AAAA,MACrB,MAAM;AAAA,MACN,MAAM;AAAA;AAAA,IACP;AAAA,EACD;AACA,WAAU,OAAQ,IAAI;AAAA,IACrB,QAAQ,CAAE,SAAS,SAAU;AAAA,EAC9B;AACD;AAEO,IAAM,OAAO,UAAM,kBAAAC,SAAW,EAAE,MAAM,uBAAAC,SAAU,SAAS,CAAE;",
6
- "names": ["metadata", "blocksPrivateApis", "icon", "transforms", "deprecated", "edit", "save", "initBlock", "metadata"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { video as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsrc: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Wood_thrush_in_Central_Park_switch_sides_%2816510%29.webm',\n\t\t\t// translators: Caption accompanying a video of the wood thrush singing, which serves as an example for the Video block.\n\t\t\tcaption: __( 'Wood thrush singing in Central Park, NYC.' ),\n\t\t},\n\t},\n\ttransforms,\n\tvariations,\n\tdeprecated,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'video',\n\t\t\tlabel: __( 'Video' ),\n\t\t\ttype: 'media',\n\t\t\tEdit: {\n\t\t\t\tcontrol: 'media', // TODO: replace with custom component\n\t\t\t\tallowedTypes: [ 'video' ],\n\t\t\t\tmultiple: false,\n\t\t\t},\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\tid: item.id,\n\t\t\t\turl: item.src,\n\t\t\t\tcaption: item.caption,\n\t\t\t\tposter: item.poster,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\tid: value.id,\n\t\t\t\tsrc: value.url,\n\t\t\t\tcaption: value.caption,\n\t\t\t\tposter: value.poster,\n\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\tid: 'caption',\n\t\t\tlabel: __( 'Caption' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'video', 'caption' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,+BAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,mBAA8B;AAC9B,oBAAiD;AAKjD,wBAAsB;AACtB,wBAAuB;AACvB,kBAAiB;AACjB,mBAAqB;AACrB,kBAAiB;AACjB,wBAAuB;AACvB,wBAAuB;AACvB,yBAAuB;AAEvB,IAAM,EAAE,WAAW,QAAQ,QAAI,2BAAQ,cAAAC,WAAkB;AAEzD,IAAM,EAAE,KAAK,IAAI,aAAAD;AAIV,IAAM,WAAW;AAAA,EACvB,mBAAAE;AAAA,EACA,SAAS;AAAA,IACR,YAAY;AAAA,MACX,KAAK;AAAA;AAAA,MAEL,aAAS,gBAAI,2CAA4C;AAAA,IAC1D;AAAA,EACD;AAAA,EACA,8BAAAC;AAAA,EACA,8BAAAC;AAAA,EACA,8BAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AACD;AAEA,IAAK,OAAO,0CAA2C;AACtD,WAAU,SAAU,IAAI;AAAA,IACvB;AAAA,MACC,IAAI;AAAA,MACJ,WAAO,gBAAI,OAAQ;AAAA,MACnB,MAAM;AAAA,MACN,MAAM;AAAA,QACL,SAAS;AAAA;AAAA,QACT,cAAc,CAAE,OAAQ;AAAA,QACxB,UAAU;AAAA,MACX;AAAA,MACA,UAAU,CAAE,EAAE,KAAK,OAAS;AAAA,QAC3B,IAAI,KAAK;AAAA,QACT,KAAK,KAAK;AAAA,QACV,SAAS,KAAK;AAAA,QACd,QAAQ,KAAK;AAAA,MACd;AAAA,MACA,UAAU,CAAE,EAAE,MAAM,OAAS;AAAA,QAC5B,IAAI,MAAM;AAAA,QACV,KAAK,MAAM;AAAA,QACX,SAAS,MAAM;AAAA,QACf,QAAQ,MAAM;AAAA,MACf;AAAA,IACD;AAAA,IACA;AAAA,MACC,IAAI;AAAA,MACJ,WAAO,gBAAI,SAAU;AAAA,MACrB,MAAM;AAAA,MACN,MAAM;AAAA;AAAA,IACP;AAAA,EACD;AACA,WAAU,OAAQ,IAAI;AAAA,IACrB,QAAQ,CAAE,SAAS,SAAU;AAAA,EAC9B;AACD;AAEO,IAAM,OAAO,UAAM,kBAAAC,SAAW,EAAE,MAAM,uBAAAC,SAAU,SAAS,CAAE;",
6
+ "names": ["metadata", "blocksPrivateApis", "icon", "transforms", "variations", "deprecated", "edit", "save", "initBlock", "metadata"]
7
7
  }
@@ -47,8 +47,11 @@ function save({ attributes }) {
47
47
  preload,
48
48
  src,
49
49
  playsInline,
50
- tracks
50
+ tracks,
51
+ width,
52
+ height
51
53
  } = attributes;
54
+ const aspectRatio = width && height ? `${width} / ${height}` : void 0;
52
55
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("figure", { ...import_block_editor.useBlockProps.save(), children: [
53
56
  src && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54
57
  "video",
@@ -61,6 +64,9 @@ function save({ attributes }) {
61
64
  preload: preload !== "metadata" ? preload : void 0,
62
65
  src,
63
66
  playsInline,
67
+ width,
68
+ height,
69
+ style: aspectRatio ? { aspectRatio } : void 0,
64
70
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tracks.default, { tracks })
65
71
  }
66
72
  ),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/video/save.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport Tracks from './tracks';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\tautoplay,\n\t\tcaption,\n\t\tcontrols,\n\t\tloop,\n\t\tmuted,\n\t\tposter,\n\t\tpreload,\n\t\tsrc,\n\t\tplaysInline,\n\t\ttracks,\n\t} = attributes;\n\treturn (\n\t\t<figure { ...useBlockProps.save() }>\n\t\t\t{ src && (\n\t\t\t\t<video\n\t\t\t\t\tautoPlay={ autoplay }\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\tloop={ loop }\n\t\t\t\t\tmuted={ muted }\n\t\t\t\t\tposter={ poster }\n\t\t\t\t\tpreload={ preload !== 'metadata' ? preload : undefined }\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tplaysInline={ playsInline }\n\t\t\t\t>\n\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t</video>\n\t\t\t) }\n\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAIO;AAKP,oBAAmB;AAgBjB;AAda,SAAR,KAAuB,EAAE,WAAW,GAAI;AAC9C,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AACJ,SACC,6CAAC,YAAS,GAAG,kCAAc,KAAK,GAC7B;AAAA,WACD;AAAA,MAAC;AAAA;AAAA,QACA,UAAW;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAU,YAAY,aAAa,UAAU;AAAA,QAC7C;AAAA,QACA;AAAA,QAEA,sDAAC,cAAAA,SAAA,EAAO,QAAkB;AAAA;AAAA,IAC3B;AAAA,IAEC,CAAE,6BAAS,QAAS,OAAQ,KAC7B;AAAA,MAAC,6BAAS;AAAA,MAAT;AAAA,QACA,eAAY,uDAAmC,SAAU;AAAA,QACzD,SAAQ;AAAA,QACR,OAAQ;AAAA;AAAA,IACT;AAAA,KAEF;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport Tracks from './tracks';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\tautoplay,\n\t\tcaption,\n\t\tcontrols,\n\t\tloop,\n\t\tmuted,\n\t\tposter,\n\t\tpreload,\n\t\tsrc,\n\t\tplaysInline,\n\t\ttracks,\n\t\twidth,\n\t\theight,\n\t} = attributes;\n\t// Match the editor: an explicit (non-`auto`) aspect ratio keeps the\n\t// converted GIF video from briefly blowing up to a runaway height while the\n\t// poster/metadata load, which would otherwise flash on the front end and\n\t// cause layout shift. The width/height attributes only yield\n\t// `aspect-ratio: auto W/H`, whose `auto` keyword is unreliable during load.\n\tconst aspectRatio =\n\t\twidth && height ? `${ width } / ${ height }` : undefined;\n\treturn (\n\t\t<figure { ...useBlockProps.save() }>\n\t\t\t{ src && (\n\t\t\t\t<video\n\t\t\t\t\tautoPlay={ autoplay }\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\tloop={ loop }\n\t\t\t\t\tmuted={ muted }\n\t\t\t\t\tposter={ poster }\n\t\t\t\t\tpreload={ preload !== 'metadata' ? preload : undefined }\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tplaysInline={ playsInline }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t\tstyle={ aspectRatio ? { aspectRatio } : undefined }\n\t\t\t\t>\n\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t</video>\n\t\t\t) }\n\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAIO;AAKP,oBAAmB;AAyBjB;AAvBa,SAAR,KAAuB,EAAE,WAAW,GAAI;AAC9C,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAMJ,QAAM,cACL,SAAS,SAAS,GAAI,KAAM,MAAO,MAAO,KAAK;AAChD,SACC,6CAAC,YAAS,GAAG,kCAAc,KAAK,GAC7B;AAAA,WACD;AAAA,MAAC;AAAA;AAAA,QACA,UAAW;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAU,YAAY,aAAa,UAAU;AAAA,QAC7C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAQ,cAAc,EAAE,YAAY,IAAI;AAAA,QAExC,sDAAC,cAAAA,SAAA,EAAO,QAAkB;AAAA;AAAA,IAC3B;AAAA,IAEC,CAAE,6BAAS,QAAS,OAAQ,KAC7B;AAAA,MAAC,6BAAS;AAAA,MAAT;AAAA,QACA,eAAY,uDAAmC,SAAU;AAAA,QACzD,SAAQ;AAAA,QACR,OAAQ;AAAA;AAAA,IACT;AAAA,KAEF;AAEF;",
6
6
  "names": ["Tracks"]
7
7
  }
@@ -143,7 +143,6 @@ function SingleTrackEditor({
143
143
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
144
144
  import_components.SelectControl,
145
145
  {
146
- __next40pxDefaultSize: true,
147
146
  className: "block-library-video-tracks-editor__single-track-editor-kind-select",
148
147
  options: KIND_OPTIONS,
149
148
  value: kind,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/video/tracks-editor.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tNavigableMenu,\n\tMenuItem,\n\tFormFileUpload,\n\tMenuGroup,\n\tToolbarGroup,\n\tToolbarButton,\n\tDropdown,\n\tButton,\n\tTextControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { upload, media } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { Badge: WCBadge } = unlock( componentsPrivateApis );\n\nconst ALLOWED_TYPES = [ 'text/vtt' ];\n\nconst DEFAULT_KIND = 'subtitles';\n\nconst KIND_OPTIONS = [\n\t{ label: __( 'Subtitles' ), value: 'subtitles' },\n\t{ label: __( 'Captions' ), value: 'captions' },\n\t{ label: __( 'Descriptions' ), value: 'descriptions' },\n\t{ label: __( 'Chapters' ), value: 'chapters' },\n\t{ label: __( 'Metadata' ), value: 'metadata' },\n];\n\nconst DEFAULT_TRACK = {\n\tsrc: '',\n\tlabel: '',\n\tsrcLang: 'en',\n\tkind: DEFAULT_KIND,\n\tdefault: false,\n};\n\nfunction TrackList( { tracks, onEditPress } ) {\n\tconst content = tracks.map( ( track, index ) => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tkey={ track.id ?? track.src }\n\t\t\t\tclassName=\"block-library-video-tracks-editor__track-list-track\"\n\t\t\t>\n\t\t\t\t<span>{ track.label }</span>\n\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t{ track.default && <WCBadge>{ __( 'Default' ) }</WCBadge> }\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onEditPress( index ) }\n\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the video text track e.g: \"French subtitles\". */\n\t\t\t\t\t\t\t_x( 'Edit %s', 'text tracks' ),\n\t\t\t\t\t\t\ttrack.label\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<MenuGroup\n\t\t\tlabel={ __( 'Text tracks' ) }\n\t\t\tclassName=\"block-library-video-tracks-editor__track-list\"\n\t\t>\n\t\t\t{ content }\n\t\t</MenuGroup>\n\t);\n}\n\nfunction SingleTrackEditor( {\n\ttrack,\n\tonChange,\n\tonClose,\n\tonRemove,\n\tallowSettingDefault,\n} ) {\n\tconst [ trackState, setTrackState ] = useState( {\n\t\t...DEFAULT_TRACK,\n\t\t...track,\n\t} );\n\n\tconst { src, label, srcLang, kind, default: isDefaultTrack } = trackState;\n\tconst fileName = src.startsWith( 'blob:' ) ? '' : getFilename( src ) || '';\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor\"\n\t\t\tspacing=\"4\"\n\t\t>\n\t\t\t<span className=\"block-library-video-tracks-editor__single-track-editor-edit-track-label\">\n\t\t\t\t{ __( 'Edit track' ) }\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t{ __( 'File' ) }: <b>{ fileName }</b>\n\t\t\t</span>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<TextControl\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\thelp={ __( 'Title of track' ) }\n\t\t\t\t/>\n\t\t\t\t<TextControl\n\t\t\t\t\tonChange={ ( newSrcLang ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tsrcLang: newSrcLang,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Source language' ) }\n\t\t\t\t\tvalue={ srcLang }\n\t\t\t\t\thelp={ __( 'Language tag (en, fr, etc.)' ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t<VStack spacing=\"4\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor-kind-select\"\n\t\t\t\t\toptions={ KIND_OPTIONS }\n\t\t\t\t\tvalue={ kind }\n\t\t\t\t\tlabel={ __( 'Kind' ) }\n\t\t\t\t\tonChange={ ( newKind ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tkind: newKind,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Set as default track' ) }\n\t\t\t\t\tchecked={ isDefaultTrack }\n\t\t\t\t\tdisabled={ ! allowSettingDefault }\n\t\t\t\t\tonChange={ ( defaultTrack ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tdefault: defaultTrack,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"block-library-video-tracks-editor__single-track-editor-buttons-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove track' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( trackState );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function TracksEditor( { tracks = [], onChange } ) {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst [ trackBeingEdited, setTrackBeingEdited ] = useState( null );\n\tconst dropdownPopoverRef = useRef();\n\n\tconst handleTrackSelect = ( selectedTracks = [], appendTracks = false ) => {\n\t\tconst existingTracksMap = new Map(\n\t\t\ttracks.map( ( track ) => [ track.id, track ] )\n\t\t);\n\t\tconst tracksToAdd = selectedTracks.map( ( { id, title, url } ) => {\n\t\t\t// Reuse existing tracks to preserve user-configured metadata.\n\t\t\tif ( existingTracksMap.has( id ) ) {\n\t\t\t\treturn existingTracksMap.get( id );\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...DEFAULT_TRACK,\n\t\t\t\tid,\n\t\t\t\tlabel: title || '',\n\t\t\t\tsrc: url,\n\t\t\t};\n\t\t} );\n\n\t\tif ( tracksToAdd.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( [ ...( appendTracks ? tracks : [] ), ...tracksToAdd ] );\n\t};\n\n\tfunction uploadFiles( event ) {\n\t\tconst files = event.target.files;\n\t\tmediaUpload( {\n\t\t\tallowedTypes: ALLOWED_TYPES,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( selectedTracks ) => {\n\t\t\t\tif ( ! Array.isArray( selectedTracks ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Wait until the track has been uploaded.\n\t\t\t\tconst uploadedTracks = selectedTracks.filter(\n\t\t\t\t\t( track ) => !! track?.id\n\t\t\t\t);\n\n\t\t\t\tif ( ! uploadedTracks.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\thandleTrackSelect( uploadedTracks, true );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tdropdownPopoverRef.current?.focus();\n\t}, [ trackBeingEdited ] );\n\n\tif ( ! mediaUpload ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"block-library-video-tracks-editor\"\n\t\t\tfocusOnMount\n\t\t\tpopoverProps={ {\n\t\t\t\tref: dropdownPopoverRef,\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst handleOnToggle = () => {\n\t\t\t\t\tif ( ! isOpen ) {\n\t\t\t\t\t\t// When the Popover opens make sure the initial view is\n\t\t\t\t\t\t// always the track list rather than the edit track UI.\n\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t}\n\t\t\t\t\tonToggle();\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\tonClick={ handleOnToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => {\n\t\t\t\tif ( trackBeingEdited !== null ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SingleTrackEditor\n\t\t\t\t\t\t\ttrack={ tracks[ trackBeingEdited ] }\n\t\t\t\t\t\t\tonChange={ ( newTrack ) => {\n\t\t\t\t\t\t\t\tconst newTracks = [ ...tracks ];\n\t\t\t\t\t\t\t\tnewTracks[ trackBeingEdited ] = newTrack;\n\t\t\t\t\t\t\t\tonChange( newTracks );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClose={ () => setTrackBeingEdited( null ) }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\ttracks.filter(\n\t\t\t\t\t\t\t\t\t\t( _track, index ) =>\n\t\t\t\t\t\t\t\t\t\t\tindex !== trackBeingEdited\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tallowSettingDefault={\n\t\t\t\t\t\t\t\t! tracks.some( ( track ) => track.default ) ||\n\t\t\t\t\t\t\t\ttracks[ trackBeingEdited ].default\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ tracks.length === 0 && (\n\t\t\t\t\t\t\t<div className=\"block-library-video-tracks-editor__tracks-informative-message\">\n\t\t\t\t\t\t\t\t<h2 className=\"block-library-video-tracks-editor__tracks-informative-message-title\">\n\t\t\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t<p className=\"block-library-video-tracks-editor__tracks-informative-message-description\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t<TrackList\n\t\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\t\tonEditPress={ setTrackBeingEdited }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<MenuGroup\n\t\t\t\t\t\t\t\tclassName=\"block-library-video-tracks-editor__add-tracks-container\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Add tracks' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\t\tonSelect={ handleTrackSelect }\n\t\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_TYPES }\n\t\t\t\t\t\t\t\t\t\tvalue={ tracks.map( ( { id } ) => id ) }\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ media }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\t\t\tonChange={ uploadFiles }\n\t\t\t\t\t\t\t\t\t\taccept=\".vtt,text/vtt\"\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ _x( 'Upload', 'verb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tNavigableMenu,\n\tMenuItem,\n\tFormFileUpload,\n\tMenuGroup,\n\tToolbarGroup,\n\tToolbarButton,\n\tDropdown,\n\tButton,\n\tTextControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { upload, media } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { Badge: WCBadge } = unlock( componentsPrivateApis );\n\nconst ALLOWED_TYPES = [ 'text/vtt' ];\n\nconst DEFAULT_KIND = 'subtitles';\n\nconst KIND_OPTIONS = [\n\t{ label: __( 'Subtitles' ), value: 'subtitles' },\n\t{ label: __( 'Captions' ), value: 'captions' },\n\t{ label: __( 'Descriptions' ), value: 'descriptions' },\n\t{ label: __( 'Chapters' ), value: 'chapters' },\n\t{ label: __( 'Metadata' ), value: 'metadata' },\n];\n\nconst DEFAULT_TRACK = {\n\tsrc: '',\n\tlabel: '',\n\tsrcLang: 'en',\n\tkind: DEFAULT_KIND,\n\tdefault: false,\n};\n\nfunction TrackList( { tracks, onEditPress } ) {\n\tconst content = tracks.map( ( track, index ) => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tkey={ track.id ?? track.src }\n\t\t\t\tclassName=\"block-library-video-tracks-editor__track-list-track\"\n\t\t\t>\n\t\t\t\t<span>{ track.label }</span>\n\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t{ track.default && <WCBadge>{ __( 'Default' ) }</WCBadge> }\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onEditPress( index ) }\n\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the video text track e.g: \"French subtitles\". */\n\t\t\t\t\t\t\t_x( 'Edit %s', 'text tracks' ),\n\t\t\t\t\t\t\ttrack.label\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<MenuGroup\n\t\t\tlabel={ __( 'Text tracks' ) }\n\t\t\tclassName=\"block-library-video-tracks-editor__track-list\"\n\t\t>\n\t\t\t{ content }\n\t\t</MenuGroup>\n\t);\n}\n\nfunction SingleTrackEditor( {\n\ttrack,\n\tonChange,\n\tonClose,\n\tonRemove,\n\tallowSettingDefault,\n} ) {\n\tconst [ trackState, setTrackState ] = useState( {\n\t\t...DEFAULT_TRACK,\n\t\t...track,\n\t} );\n\n\tconst { src, label, srcLang, kind, default: isDefaultTrack } = trackState;\n\tconst fileName = src.startsWith( 'blob:' ) ? '' : getFilename( src ) || '';\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor\"\n\t\t\tspacing=\"4\"\n\t\t>\n\t\t\t<span className=\"block-library-video-tracks-editor__single-track-editor-edit-track-label\">\n\t\t\t\t{ __( 'Edit track' ) }\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t{ __( 'File' ) }: <b>{ fileName }</b>\n\t\t\t</span>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<TextControl\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\thelp={ __( 'Title of track' ) }\n\t\t\t\t/>\n\t\t\t\t<TextControl\n\t\t\t\t\tonChange={ ( newSrcLang ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tsrcLang: newSrcLang,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Source language' ) }\n\t\t\t\t\tvalue={ srcLang }\n\t\t\t\t\thelp={ __( 'Language tag (en, fr, etc.)' ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t<VStack spacing=\"4\">\n\t\t\t\t<SelectControl\n\t\t\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor-kind-select\"\n\t\t\t\t\toptions={ KIND_OPTIONS }\n\t\t\t\t\tvalue={ kind }\n\t\t\t\t\tlabel={ __( 'Kind' ) }\n\t\t\t\t\tonChange={ ( newKind ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tkind: newKind,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Set as default track' ) }\n\t\t\t\t\tchecked={ isDefaultTrack }\n\t\t\t\t\tdisabled={ ! allowSettingDefault }\n\t\t\t\t\tonChange={ ( defaultTrack ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tdefault: defaultTrack,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"block-library-video-tracks-editor__single-track-editor-buttons-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove track' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( trackState );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function TracksEditor( { tracks = [], onChange } ) {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst [ trackBeingEdited, setTrackBeingEdited ] = useState( null );\n\tconst dropdownPopoverRef = useRef();\n\n\tconst handleTrackSelect = ( selectedTracks = [], appendTracks = false ) => {\n\t\tconst existingTracksMap = new Map(\n\t\t\ttracks.map( ( track ) => [ track.id, track ] )\n\t\t);\n\t\tconst tracksToAdd = selectedTracks.map( ( { id, title, url } ) => {\n\t\t\t// Reuse existing tracks to preserve user-configured metadata.\n\t\t\tif ( existingTracksMap.has( id ) ) {\n\t\t\t\treturn existingTracksMap.get( id );\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...DEFAULT_TRACK,\n\t\t\t\tid,\n\t\t\t\tlabel: title || '',\n\t\t\t\tsrc: url,\n\t\t\t};\n\t\t} );\n\n\t\tif ( tracksToAdd.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( [ ...( appendTracks ? tracks : [] ), ...tracksToAdd ] );\n\t};\n\n\tfunction uploadFiles( event ) {\n\t\tconst files = event.target.files;\n\t\tmediaUpload( {\n\t\t\tallowedTypes: ALLOWED_TYPES,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( selectedTracks ) => {\n\t\t\t\tif ( ! Array.isArray( selectedTracks ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Wait until the track has been uploaded.\n\t\t\t\tconst uploadedTracks = selectedTracks.filter(\n\t\t\t\t\t( track ) => !! track?.id\n\t\t\t\t);\n\n\t\t\t\tif ( ! uploadedTracks.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\thandleTrackSelect( uploadedTracks, true );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tdropdownPopoverRef.current?.focus();\n\t}, [ trackBeingEdited ] );\n\n\tif ( ! mediaUpload ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"block-library-video-tracks-editor\"\n\t\t\tfocusOnMount\n\t\t\tpopoverProps={ {\n\t\t\t\tref: dropdownPopoverRef,\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst handleOnToggle = () => {\n\t\t\t\t\tif ( ! isOpen ) {\n\t\t\t\t\t\t// When the Popover opens make sure the initial view is\n\t\t\t\t\t\t// always the track list rather than the edit track UI.\n\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t}\n\t\t\t\t\tonToggle();\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\tonClick={ handleOnToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => {\n\t\t\t\tif ( trackBeingEdited !== null ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SingleTrackEditor\n\t\t\t\t\t\t\ttrack={ tracks[ trackBeingEdited ] }\n\t\t\t\t\t\t\tonChange={ ( newTrack ) => {\n\t\t\t\t\t\t\t\tconst newTracks = [ ...tracks ];\n\t\t\t\t\t\t\t\tnewTracks[ trackBeingEdited ] = newTrack;\n\t\t\t\t\t\t\t\tonChange( newTracks );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClose={ () => setTrackBeingEdited( null ) }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\ttracks.filter(\n\t\t\t\t\t\t\t\t\t\t( _track, index ) =>\n\t\t\t\t\t\t\t\t\t\t\tindex !== trackBeingEdited\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tallowSettingDefault={\n\t\t\t\t\t\t\t\t! tracks.some( ( track ) => track.default ) ||\n\t\t\t\t\t\t\t\ttracks[ trackBeingEdited ].default\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ tracks.length === 0 && (\n\t\t\t\t\t\t\t<div className=\"block-library-video-tracks-editor__tracks-informative-message\">\n\t\t\t\t\t\t\t\t<h2 className=\"block-library-video-tracks-editor__tracks-informative-message-title\">\n\t\t\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t<p className=\"block-library-video-tracks-editor__tracks-informative-message-description\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t<TrackList\n\t\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\t\tonEditPress={ setTrackBeingEdited }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<MenuGroup\n\t\t\t\t\t\t\t\tclassName=\"block-library-video-tracks-editor__add-tracks-container\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Add tracks' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\t\tonSelect={ handleTrackSelect }\n\t\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_TYPES }\n\t\t\t\t\t\t\t\t\t\tvalue={ tracks.map( ( { id } ) => id ) }\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ media }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\t\t\tonChange={ uploadFiles }\n\t\t\t\t\t\t\t\t\t\taccept=\".vtt,text/vtt\"\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ _x( 'Upload', 'verb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["componentsPrivateApis", "HStack", "VStack", "Grid", "blockEditorStore"]
7
7
  }