@wordpress/block-library 10.1.1-next.v.202607070741.0 → 10.3.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 (580) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/build/accordion/block.json +1 -0
  3. package/build/accordion-panel/block.json +1 -0
  4. package/build/button/edit.cjs +18 -8
  5. package/build/button/edit.cjs.map +2 -2
  6. package/build/code/edit.cjs +3 -1
  7. package/build/code/edit.cjs.map +2 -2
  8. package/build/cover/block.json +12 -0
  9. package/build/cover/edit/block-controls.cjs +14 -5
  10. package/build/cover/edit/block-controls.cjs.map +2 -2
  11. package/build/cover/edit/embed-video-url-input.cjs +5 -3
  12. package/build/cover/edit/embed-video-url-input.cjs.map +3 -3
  13. package/build/cover/edit/index.cjs +76 -32
  14. package/build/cover/edit/index.cjs.map +2 -2
  15. package/build/cover/embed-video-utils.cjs +17 -7
  16. package/build/cover/embed-video-utils.cjs.map +2 -2
  17. package/build/details/transforms.cjs +1 -3
  18. package/build/details/transforms.cjs.map +2 -2
  19. package/build/embed/edit.cjs +1 -1
  20. package/build/embed/edit.cjs.map +2 -2
  21. package/build/embed/embed-placeholder.cjs +1 -2
  22. package/build/embed/embed-placeholder.cjs.map +2 -2
  23. package/build/file/edit.cjs +4 -3
  24. package/build/file/edit.cjs.map +2 -2
  25. package/build/file/transforms.cjs +25 -60
  26. package/build/file/transforms.cjs.map +2 -2
  27. package/build/gallery/block.json +4 -2
  28. package/build/gallery/dynamic-gallery.cjs +104 -61
  29. package/build/gallery/dynamic-gallery.cjs.map +3 -3
  30. package/build/gallery/edit.cjs +1 -1
  31. package/build/gallery/edit.cjs.map +3 -3
  32. package/build/gallery/gap-styles.cjs +49 -13
  33. package/build/gallery/gap-styles.cjs.map +3 -3
  34. package/build/gallery/use-dynamic-gallery.cjs +15 -8
  35. package/build/gallery/use-dynamic-gallery.cjs.map +2 -2
  36. package/build/group/transforms.cjs +1 -1
  37. package/build/group/transforms.cjs.map +2 -2
  38. package/build/heading/edit.cjs +1 -1
  39. package/build/heading/edit.cjs.map +2 -2
  40. package/build/html/modal.cjs +63 -54
  41. package/build/html/modal.cjs.map +3 -3
  42. package/build/icon/block.json +5 -3
  43. package/build/icon/components/custom-inserter/icon-grid.cjs +25 -12
  44. package/build/icon/components/custom-inserter/icon-grid.cjs.map +2 -2
  45. package/build/icon/components/custom-inserter/index.cjs +100 -31
  46. package/build/icon/components/custom-inserter/index.cjs.map +3 -3
  47. package/build/icon/edit.cjs +11 -12
  48. package/build/icon/edit.cjs.map +2 -2
  49. package/build/image/block.json +1 -1
  50. package/build/image/edit.cjs +1 -35
  51. package/build/image/edit.cjs.map +2 -2
  52. package/build/image/image.cjs +23 -18
  53. package/build/image/image.cjs.map +3 -3
  54. package/build/image/transforms.cjs +78 -0
  55. package/build/image/transforms.cjs.map +3 -3
  56. package/build/image/use-open-image-media-editor-modal.cjs +6 -2
  57. package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
  58. package/build/index.cjs +18 -8
  59. package/build/index.cjs.map +2 -2
  60. package/build/latest-posts/edit.cjs +5 -8
  61. package/build/latest-posts/edit.cjs.map +2 -2
  62. package/build/list-item/edit.cjs +1 -1
  63. package/build/list-item/edit.cjs.map +2 -2
  64. package/build/list-item/hooks/use-enter.cjs +14 -17
  65. package/build/list-item/hooks/use-enter.cjs.map +3 -3
  66. package/build/list-item/hooks/use-indent-list-item.cjs +10 -2
  67. package/build/list-item/hooks/use-indent-list-item.cjs.map +2 -2
  68. package/build/list-item/hooks/use-space.cjs +3 -2
  69. package/build/list-item/hooks/use-space.cjs.map +3 -3
  70. package/build/math/edit.cjs +39 -56
  71. package/build/math/edit.cjs.map +3 -3
  72. package/build/media-text/edit.cjs +2 -1
  73. package/build/media-text/edit.cjs.map +2 -2
  74. package/build/more/edit.cjs +2 -2
  75. package/build/more/edit.cjs.map +2 -2
  76. package/build/navigation/edit/index.cjs +30 -16
  77. package/build/navigation/edit/index.cjs.map +3 -3
  78. package/build/navigation/edit/use-layout-custom-properties.cjs +72 -0
  79. package/build/navigation/edit/use-layout-custom-properties.cjs.map +7 -0
  80. package/build/navigation/view.cjs +9 -6
  81. package/build/navigation/view.cjs.map +2 -2
  82. package/build/navigation-link/edit.cjs +3 -3
  83. package/build/navigation-link/edit.cjs.map +2 -2
  84. package/build/navigation-link/link-ui/index.cjs +2 -2
  85. package/build/navigation-link/link-ui/index.cjs.map +2 -2
  86. package/build/paragraph/edit.cjs +5 -2
  87. package/build/paragraph/edit.cjs.map +3 -3
  88. package/build/paragraph/index.cjs +4 -1
  89. package/build/paragraph/index.cjs.map +2 -2
  90. package/build/paragraph/use-enter.cjs +3 -7
  91. package/build/paragraph/use-enter.cjs.map +3 -3
  92. package/build/playlist/block.json +29 -10
  93. package/build/playlist/context.cjs +2 -1
  94. package/build/playlist/context.cjs.map +2 -2
  95. package/build/playlist/edit.cjs +328 -39
  96. package/build/playlist/edit.cjs.map +3 -3
  97. package/build/playlist/index.cjs +1 -1
  98. package/build/playlist/index.cjs.map +2 -2
  99. package/build/playlist/utils.cjs +37 -8
  100. package/build/playlist/utils.cjs.map +2 -2
  101. package/build/playlist/view.cjs +83 -13
  102. package/build/playlist/view.cjs.map +2 -2
  103. package/build/playlist-track/block.json +4 -2
  104. package/build/playlist-track/edit.cjs +115 -70
  105. package/build/playlist-track/edit.cjs.map +2 -2
  106. package/build/post-content/block.json +1 -0
  107. package/build/post-content/edit.cjs +36 -15
  108. package/build/post-content/edit.cjs.map +2 -2
  109. package/build/post-featured-image/edit.cjs +3 -2
  110. package/build/post-featured-image/edit.cjs.map +2 -2
  111. package/build/post-template/block.json +2 -1
  112. package/build/post-template/edit.cjs +10 -1
  113. package/build/post-template/edit.cjs.map +2 -2
  114. package/build/post-terms/edit.cjs +2 -2
  115. package/build/post-terms/edit.cjs.map +2 -2
  116. package/build/post-title/edit.cjs +2 -2
  117. package/build/post-title/edit.cjs.map +2 -2
  118. package/build/preformatted/edit.cjs +3 -1
  119. package/build/preformatted/edit.cjs.map +2 -2
  120. package/build/pullquote/block.json +3 -1
  121. package/build/pullquote/edit.cjs +5 -3
  122. package/build/pullquote/edit.cjs.map +2 -2
  123. package/build/query/block.json +3 -2
  124. package/build/query/edit/inspector-controls/index.cjs +42 -5
  125. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  126. package/build/query/edit/inspector-controls/offset-controls.cjs +1 -2
  127. package/build/query/edit/inspector-controls/offset-controls.cjs.map +2 -2
  128. package/build/query/edit/inspector-controls/pages-control.cjs +0 -1
  129. package/build/query/edit/inspector-controls/pages-control.cjs.map +2 -2
  130. package/build/query/edit/query-content.cjs +10 -3
  131. package/build/query/edit/query-content.cjs.map +2 -2
  132. package/build/query/index.cjs +2 -1
  133. package/build/query/index.cjs.map +2 -2
  134. package/build/quote/block.json +3 -1
  135. package/build/quote/transforms.cjs +1 -3
  136. package/build/quote/transforms.cjs.map +2 -2
  137. package/build/read-more/edit.cjs +3 -1
  138. package/build/read-more/edit.cjs.map +2 -2
  139. package/build/rss/edit.cjs +0 -1
  140. package/build/rss/edit.cjs.map +2 -2
  141. package/build/site-tagline/edit.cjs +3 -1
  142. package/build/site-tagline/edit.cjs.map +2 -2
  143. package/build/site-title/edit.cjs +3 -1
  144. package/build/site-title/edit.cjs.map +2 -2
  145. package/build/social-links/edit.cjs +11 -4
  146. package/build/social-links/edit.cjs.map +2 -2
  147. package/build/tab-list/block.json +4 -3
  148. package/build/tab-list/edit.cjs +67 -11
  149. package/build/tab-list/edit.cjs.map +3 -3
  150. package/build/tab-list/tab-movers.cjs +87 -0
  151. package/build/tab-list/tab-movers.cjs.map +7 -0
  152. package/build/tab-panel/block.json +1 -6
  153. package/build/tab-panel/edit.cjs +16 -24
  154. package/build/tab-panel/edit.cjs.map +2 -2
  155. package/build/tab-panels/block.json +0 -1
  156. package/build/table/edit.cjs +1 -1
  157. package/build/table/edit.cjs.map +2 -2
  158. package/build/tabs/block.json +0 -5
  159. package/build/tabs/edit.cjs +4 -39
  160. package/build/tabs/edit.cjs.map +3 -3
  161. package/build/tabs/use-tab-actions.cjs +23 -1
  162. package/build/tabs/use-tab-actions.cjs.map +2 -2
  163. package/build/tabs/use-tab-list-items-sync.cjs +19 -1
  164. package/build/tabs/use-tab-list-items-sync.cjs.map +2 -2
  165. package/build/term-name/block.json +1 -3
  166. package/build/term-name/deprecated.cjs +105 -0
  167. package/build/term-name/deprecated.cjs.map +7 -0
  168. package/build/term-name/edit.cjs +11 -37
  169. package/build/term-name/edit.cjs.map +3 -3
  170. package/build/term-name/index.cjs +3 -1
  171. package/build/term-name/index.cjs.map +3 -3
  172. package/build/utils/caption.cjs +2 -2
  173. package/build/utils/caption.cjs.map +2 -2
  174. package/build/utils/waveform-player.cjs +138 -22
  175. package/build/utils/waveform-player.cjs.map +2 -2
  176. package/build/utils/waveform-utils.cjs +315 -17
  177. package/build/utils/waveform-utils.cjs.map +2 -2
  178. package/build/verse/edit.cjs +3 -1
  179. package/build/verse/edit.cjs.map +2 -2
  180. package/build/video/edit.cjs +2 -11
  181. package/build/video/edit.cjs.map +3 -3
  182. package/build/video/tracks-editor.cjs +0 -1
  183. package/build/video/tracks-editor.cjs.map +2 -2
  184. package/build-module/accordion/block.json +1 -0
  185. package/build-module/accordion-panel/block.json +1 -0
  186. package/build-module/button/edit.mjs +19 -14
  187. package/build-module/button/edit.mjs.map +2 -2
  188. package/build-module/code/edit.mjs +3 -1
  189. package/build-module/code/edit.mjs.map +2 -2
  190. package/build-module/cover/block.json +12 -0
  191. package/build-module/cover/edit/block-controls.mjs +14 -5
  192. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  193. package/build-module/cover/edit/embed-video-url-input.mjs +5 -4
  194. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  195. package/build-module/cover/edit/index.mjs +79 -35
  196. package/build-module/cover/edit/index.mjs.map +2 -2
  197. package/build-module/cover/embed-video-utils.mjs +16 -7
  198. package/build-module/cover/embed-video-utils.mjs.map +2 -2
  199. package/build-module/details/transforms.mjs +2 -7
  200. package/build-module/details/transforms.mjs.map +2 -2
  201. package/build-module/embed/edit.mjs +1 -1
  202. package/build-module/embed/edit.mjs.map +2 -2
  203. package/build-module/embed/embed-placeholder.mjs +1 -2
  204. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  205. package/build-module/file/edit.mjs +4 -3
  206. package/build-module/file/edit.mjs.map +2 -2
  207. package/build-module/file/transforms.mjs +25 -60
  208. package/build-module/file/transforms.mjs.map +2 -2
  209. package/build-module/gallery/block.json +4 -2
  210. package/build-module/gallery/dynamic-gallery.mjs +104 -61
  211. package/build-module/gallery/dynamic-gallery.mjs.map +2 -2
  212. package/build-module/gallery/edit.mjs +3 -3
  213. package/build-module/gallery/edit.mjs.map +2 -2
  214. package/build-module/gallery/gap-styles.mjs +53 -14
  215. package/build-module/gallery/gap-styles.mjs.map +2 -2
  216. package/build-module/gallery/use-dynamic-gallery.mjs +16 -9
  217. package/build-module/gallery/use-dynamic-gallery.mjs.map +2 -2
  218. package/build-module/group/transforms.mjs +2 -5
  219. package/build-module/group/transforms.mjs.map +2 -2
  220. package/build-module/heading/edit.mjs +1 -1
  221. package/build-module/heading/edit.mjs.map +2 -2
  222. package/build-module/html/modal.mjs +68 -55
  223. package/build-module/html/modal.mjs.map +2 -2
  224. package/build-module/icon/block.json +5 -3
  225. package/build-module/icon/components/custom-inserter/icon-grid.mjs +25 -12
  226. package/build-module/icon/components/custom-inserter/icon-grid.mjs.map +2 -2
  227. package/build-module/icon/components/custom-inserter/index.mjs +102 -33
  228. package/build-module/icon/components/custom-inserter/index.mjs.map +2 -2
  229. package/build-module/icon/edit.mjs +11 -12
  230. package/build-module/icon/edit.mjs.map +2 -2
  231. package/build-module/image/block.json +1 -1
  232. package/build-module/image/edit.mjs +1 -35
  233. package/build-module/image/edit.mjs.map +2 -2
  234. package/build-module/image/image.mjs +23 -18
  235. package/build-module/image/image.mjs.map +2 -2
  236. package/build-module/image/transforms.mjs +78 -0
  237. package/build-module/image/transforms.mjs.map +2 -2
  238. package/build-module/image/use-open-image-media-editor-modal.mjs +6 -2
  239. package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
  240. package/build-module/index.mjs +18 -8
  241. package/build-module/index.mjs.map +2 -2
  242. package/build-module/latest-posts/edit.mjs +5 -8
  243. package/build-module/latest-posts/edit.mjs.map +2 -2
  244. package/build-module/list-item/edit.mjs +1 -1
  245. package/build-module/list-item/edit.mjs.map +2 -2
  246. package/build-module/list-item/hooks/use-enter.mjs +15 -21
  247. package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
  248. package/build-module/list-item/hooks/use-indent-list-item.mjs +10 -2
  249. package/build-module/list-item/hooks/use-indent-list-item.mjs.map +2 -2
  250. package/build-module/list-item/hooks/use-space.mjs +4 -6
  251. package/build-module/list-item/hooks/use-space.mjs.map +2 -2
  252. package/build-module/math/edit.mjs +41 -60
  253. package/build-module/math/edit.mjs.map +2 -2
  254. package/build-module/media-text/edit.mjs +2 -1
  255. package/build-module/media-text/edit.mjs.map +2 -2
  256. package/build-module/more/edit.mjs +2 -2
  257. package/build-module/more/edit.mjs.map +2 -2
  258. package/build-module/navigation/edit/index.mjs +30 -16
  259. package/build-module/navigation/edit/index.mjs.map +2 -2
  260. package/build-module/navigation/edit/use-layout-custom-properties.mjs +51 -0
  261. package/build-module/navigation/edit/use-layout-custom-properties.mjs.map +7 -0
  262. package/build-module/navigation/view.mjs +9 -6
  263. package/build-module/navigation/view.mjs.map +2 -2
  264. package/build-module/navigation-link/edit.mjs +3 -3
  265. package/build-module/navigation-link/edit.mjs.map +2 -2
  266. package/build-module/navigation-link/link-ui/index.mjs +2 -2
  267. package/build-module/navigation-link/link-ui/index.mjs.map +2 -2
  268. package/build-module/paragraph/edit.mjs +6 -2
  269. package/build-module/paragraph/edit.mjs.map +2 -2
  270. package/build-module/paragraph/index.mjs +4 -1
  271. package/build-module/paragraph/index.mjs.map +2 -2
  272. package/build-module/paragraph/use-enter.mjs +4 -11
  273. package/build-module/paragraph/use-enter.mjs.map +2 -2
  274. package/build-module/playlist/block.json +29 -10
  275. package/build-module/playlist/context.mjs +2 -1
  276. package/build-module/playlist/context.mjs.map +2 -2
  277. package/build-module/playlist/edit.mjs +331 -41
  278. package/build-module/playlist/edit.mjs.map +2 -2
  279. package/build-module/playlist/index.mjs +1 -1
  280. package/build-module/playlist/index.mjs.map +2 -2
  281. package/build-module/playlist/utils.mjs +35 -7
  282. package/build-module/playlist/utils.mjs.map +2 -2
  283. package/build-module/playlist/view.mjs +89 -14
  284. package/build-module/playlist/view.mjs.map +2 -2
  285. package/build-module/playlist-track/block.json +4 -2
  286. package/build-module/playlist-track/edit.mjs +117 -71
  287. package/build-module/playlist-track/edit.mjs.map +2 -2
  288. package/build-module/post-content/block.json +1 -0
  289. package/build-module/post-content/edit.mjs +37 -15
  290. package/build-module/post-content/edit.mjs.map +2 -2
  291. package/build-module/post-featured-image/edit.mjs +3 -2
  292. package/build-module/post-featured-image/edit.mjs.map +2 -2
  293. package/build-module/post-template/block.json +2 -1
  294. package/build-module/post-template/edit.mjs +10 -1
  295. package/build-module/post-template/edit.mjs.map +2 -2
  296. package/build-module/post-terms/edit.mjs +2 -2
  297. package/build-module/post-terms/edit.mjs.map +2 -2
  298. package/build-module/post-title/edit.mjs +2 -2
  299. package/build-module/post-title/edit.mjs.map +2 -2
  300. package/build-module/preformatted/edit.mjs +3 -1
  301. package/build-module/preformatted/edit.mjs.map +2 -2
  302. package/build-module/pullquote/block.json +3 -1
  303. package/build-module/pullquote/edit.mjs +5 -3
  304. package/build-module/pullquote/edit.mjs.map +2 -2
  305. package/build-module/query/block.json +3 -2
  306. package/build-module/query/edit/inspector-controls/index.mjs +44 -6
  307. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  308. package/build-module/query/edit/inspector-controls/offset-controls.mjs +2 -3
  309. package/build-module/query/edit/inspector-controls/offset-controls.mjs.map +2 -2
  310. package/build-module/query/edit/inspector-controls/pages-control.mjs +0 -1
  311. package/build-module/query/edit/inspector-controls/pages-control.mjs.map +2 -2
  312. package/build-module/query/edit/query-content.mjs +10 -3
  313. package/build-module/query/edit/query-content.mjs.map +2 -2
  314. package/build-module/query/index.mjs +2 -1
  315. package/build-module/query/index.mjs.map +2 -2
  316. package/build-module/quote/block.json +3 -1
  317. package/build-module/quote/transforms.mjs +2 -4
  318. package/build-module/quote/transforms.mjs.map +2 -2
  319. package/build-module/read-more/edit.mjs +3 -1
  320. package/build-module/read-more/edit.mjs.map +2 -2
  321. package/build-module/rss/edit.mjs +0 -1
  322. package/build-module/rss/edit.mjs.map +2 -2
  323. package/build-module/site-tagline/edit.mjs +3 -1
  324. package/build-module/site-tagline/edit.mjs.map +2 -2
  325. package/build-module/site-title/edit.mjs +3 -1
  326. package/build-module/site-title/edit.mjs.map +2 -2
  327. package/build-module/social-links/edit.mjs +11 -4
  328. package/build-module/social-links/edit.mjs.map +2 -2
  329. package/build-module/tab-list/block.json +4 -3
  330. package/build-module/tab-list/edit.mjs +74 -13
  331. package/build-module/tab-list/edit.mjs.map +2 -2
  332. package/build-module/tab-list/tab-movers.mjs +59 -0
  333. package/build-module/tab-list/tab-movers.mjs.map +7 -0
  334. package/build-module/tab-panel/block.json +1 -6
  335. package/build-module/tab-panel/edit.mjs +17 -25
  336. package/build-module/tab-panel/edit.mjs.map +2 -2
  337. package/build-module/tab-panels/block.json +0 -1
  338. package/build-module/table/edit.mjs +1 -1
  339. package/build-module/table/edit.mjs.map +2 -2
  340. package/build-module/tabs/block.json +0 -5
  341. package/build-module/tabs/edit.mjs +5 -45
  342. package/build-module/tabs/edit.mjs.map +2 -2
  343. package/build-module/tabs/use-tab-actions.mjs +23 -1
  344. package/build-module/tabs/use-tab-actions.mjs.map +2 -2
  345. package/build-module/tabs/use-tab-list-items-sync.mjs +19 -1
  346. package/build-module/tabs/use-tab-list-items-sync.mjs.map +2 -2
  347. package/build-module/term-name/block.json +1 -3
  348. package/build-module/term-name/deprecated.mjs +74 -0
  349. package/build-module/term-name/deprecated.mjs.map +7 -0
  350. package/build-module/term-name/edit.mjs +11 -28
  351. package/build-module/term-name/edit.mjs.map +2 -2
  352. package/build-module/term-name/index.mjs +3 -1
  353. package/build-module/term-name/index.mjs.map +2 -2
  354. package/build-module/utils/caption.mjs +2 -2
  355. package/build-module/utils/caption.mjs.map +2 -2
  356. package/build-module/utils/waveform-player.mjs +144 -23
  357. package/build-module/utils/waveform-player.mjs.map +2 -2
  358. package/build-module/utils/waveform-utils.mjs +310 -16
  359. package/build-module/utils/waveform-utils.mjs.map +2 -2
  360. package/build-module/verse/edit.mjs +3 -1
  361. package/build-module/verse/edit.mjs.map +2 -2
  362. package/build-module/video/edit.mjs +2 -11
  363. package/build-module/video/edit.mjs.map +2 -2
  364. package/build-module/video/tracks-editor.mjs +0 -1
  365. package/build-module/video/tracks-editor.mjs.map +2 -2
  366. package/build-style/cover/editor-rtl.css +3 -0
  367. package/build-style/cover/editor.css +3 -0
  368. package/build-style/editor-rtl.css +61 -59
  369. package/build-style/editor.css +61 -59
  370. package/build-style/icon/editor-rtl.css +80 -10
  371. package/build-style/icon/editor.css +80 -10
  372. package/build-style/image/editor-rtl.css +3 -32
  373. package/build-style/image/editor.css +3 -32
  374. package/build-style/more/editor-rtl.css +2 -2
  375. package/build-style/more/editor.css +2 -2
  376. package/build-style/navigation/editor-rtl.css +3 -4
  377. package/build-style/navigation/editor.css +3 -4
  378. package/build-style/navigation-link/editor-rtl.css +1 -1
  379. package/build-style/navigation-link/editor.css +1 -1
  380. package/build-style/nextpage/editor-rtl.css +2 -2
  381. package/build-style/nextpage/editor.css +2 -2
  382. package/build-style/playlist/editor-rtl.css +4 -3
  383. package/build-style/playlist/editor.css +4 -3
  384. package/build-style/playlist/style-rtl.css +81 -5
  385. package/build-style/playlist/style.css +81 -5
  386. package/build-style/playlist-track/style-rtl.css +10 -0
  387. package/build-style/playlist-track/style.css +10 -0
  388. package/build-style/pullquote/editor-rtl.css +4 -0
  389. package/build-style/pullquote/editor.css +4 -0
  390. package/build-style/style-rtl.css +91 -5
  391. package/build-style/style.css +91 -5
  392. package/build-style/tab-list/editor-rtl.css +101 -0
  393. package/build-style/tab-list/editor.css +101 -0
  394. package/build-style/video/editor-rtl.css +1 -1
  395. package/build-style/video/editor.css +1 -1
  396. package/build-types/table-of-contents/list.d.ts +1 -1
  397. package/build-types/table-of-contents/list.d.ts.map +1 -1
  398. package/package.json +47 -45
  399. package/src/accordion/README.md +1 -0
  400. package/src/accordion/block.json +1 -0
  401. package/src/accordion-panel/block.json +1 -0
  402. package/src/breadcrumbs/index.php +3 -1
  403. package/src/button/edit.js +21 -15
  404. package/src/button/index.php +1 -1
  405. package/src/code/edit.js +7 -2
  406. package/src/cover/README.md +60 -0
  407. package/src/cover/block.json +12 -0
  408. package/src/cover/edit/block-controls.js +26 -11
  409. package/src/cover/edit/embed-video-url-input.js +5 -4
  410. package/src/cover/edit/index.js +109 -46
  411. package/src/cover/editor.scss +6 -0
  412. package/src/cover/embed-video-utils.js +38 -13
  413. package/src/cover/index.php +9 -2
  414. package/src/details/transforms.js +2 -7
  415. package/src/editor.scss +1 -0
  416. package/src/embed/edit.js +3 -1
  417. package/src/embed/embed-placeholder.js +9 -8
  418. package/src/file/edit.js +8 -8
  419. package/src/file/transforms.js +28 -60
  420. package/src/form/index.php +6 -4
  421. package/src/gallery/README.md +1 -1
  422. package/src/gallery/block.json +4 -2
  423. package/src/gallery/dynamic-gallery.js +133 -74
  424. package/src/gallery/edit.js +3 -3
  425. package/src/gallery/gap-styles.js +79 -20
  426. package/src/gallery/index.php +103 -43
  427. package/src/gallery/use-dynamic-gallery.js +27 -12
  428. package/src/group/transforms.js +2 -5
  429. package/src/heading/edit.js +1 -1
  430. package/src/html/modal.js +13 -2
  431. package/src/icon/README.md +1 -3
  432. package/src/icon/block.json +5 -3
  433. package/src/icon/components/custom-inserter/icon-grid.js +40 -11
  434. package/src/icon/components/custom-inserter/index.js +98 -25
  435. package/src/icon/edit.js +11 -17
  436. package/src/icon/editor.scss +33 -11
  437. package/src/image/README.md +1 -1
  438. package/src/image/block.json +1 -1
  439. package/src/image/edit.js +1 -57
  440. package/src/image/editor.scss +6 -44
  441. package/src/image/image.js +56 -27
  442. package/src/image/test/use-open-image-media-editor-modal.js +37 -1
  443. package/src/image/transforms.js +128 -0
  444. package/src/image/use-open-image-media-editor-modal.js +8 -1
  445. package/src/index.js +19 -7
  446. package/src/latest-posts/edit.js +5 -8
  447. package/src/latest-posts/index.php +49 -18
  448. package/src/list-item/edit.js +1 -1
  449. package/src/list-item/hooks/use-enter.js +15 -22
  450. package/src/list-item/hooks/use-indent-list-item.js +10 -1
  451. package/src/list-item/hooks/use-space.js +4 -6
  452. package/src/math/edit.js +42 -59
  453. package/src/media-text/edit.js +1 -0
  454. package/src/media-text/editor.scss +1 -0
  455. package/src/media-text/index.php +11 -2
  456. package/src/more/edit.js +7 -4
  457. package/src/more/editor.scss +1 -1
  458. package/src/navigation/edit/index.js +52 -36
  459. package/src/navigation/edit/test/layout-custom-properties.js +138 -0
  460. package/src/navigation/edit/use-layout-custom-properties.js +84 -0
  461. package/src/navigation/editor.scss +1 -2
  462. package/src/navigation/index.php +123 -12
  463. package/src/navigation/test/view.js +51 -0
  464. package/src/navigation/view.js +15 -14
  465. package/src/navigation-link/edit.js +11 -7
  466. package/src/navigation-link/editor.scss +1 -1
  467. package/src/navigation-link/index.php +70 -3
  468. package/src/navigation-link/link-ui/index.js +2 -1
  469. package/src/navigation-link/test/__snapshots__/hooks.js.snap +1 -1
  470. package/src/navigation-submenu/index.php +6 -3
  471. package/src/nextpage/editor.scss +1 -1
  472. package/src/page-list/index.php +4 -3
  473. package/src/paragraph/edit.js +9 -2
  474. package/src/paragraph/index.js +4 -1
  475. package/src/paragraph/use-enter.js +4 -11
  476. package/src/pattern/index.php +5 -5
  477. package/src/playlist/README.md +17 -18
  478. package/src/playlist/block.json +29 -10
  479. package/src/playlist/context.js +1 -0
  480. package/src/playlist/edit.js +395 -59
  481. package/src/playlist/editor.scss +4 -5
  482. package/src/playlist/index.js +1 -1
  483. package/src/playlist/index.php +71 -22
  484. package/src/playlist/style.scss +54 -1
  485. package/src/playlist/test/edit-component.js +139 -0
  486. package/src/playlist/test/edit.js +43 -2
  487. package/src/playlist/utils.js +49 -10
  488. package/src/playlist/view.js +97 -16
  489. package/src/playlist-track/README.md +3 -3
  490. package/src/playlist-track/block.json +4 -2
  491. package/src/playlist-track/edit.js +116 -75
  492. package/src/playlist-track/index.php +26 -11
  493. package/src/playlist-track/style.scss +10 -0
  494. package/src/playlist-track/test/edit.js +253 -0
  495. package/src/post-content/README.md +1 -0
  496. package/src/post-content/block.json +1 -0
  497. package/src/post-content/edit.js +45 -16
  498. package/src/post-excerpt/index.php +4 -1
  499. package/src/post-featured-image/edit.js +3 -2
  500. package/src/post-featured-image/index.php +4 -1
  501. package/src/post-template/README.md +1 -0
  502. package/src/post-template/block.json +2 -1
  503. package/src/post-template/edit.js +9 -0
  504. package/src/post-terms/edit.js +7 -4
  505. package/src/post-title/edit.js +5 -3
  506. package/src/preformatted/edit.js +7 -2
  507. package/src/pullquote/README.md +1 -0
  508. package/src/pullquote/block.json +3 -1
  509. package/src/pullquote/edit.js +9 -4
  510. package/src/pullquote/editor.scss +6 -0
  511. package/src/query/README.md +2 -1
  512. package/src/query/block.json +3 -2
  513. package/src/query/edit/inspector-controls/index.js +47 -4
  514. package/src/query/edit/inspector-controls/offset-controls.js +2 -3
  515. package/src/query/edit/inspector-controls/pages-control.js +0 -1
  516. package/src/query/edit/query-content.js +19 -3
  517. package/src/query/index.js +1 -0
  518. package/src/quote/README.md +1 -0
  519. package/src/quote/block.json +3 -1
  520. package/src/quote/transforms.js +2 -4
  521. package/src/read-more/edit.js +7 -2
  522. package/src/rss/edit.js +0 -1
  523. package/src/rss/index.php +10 -4
  524. package/src/site-tagline/edit.js +7 -2
  525. package/src/site-title/edit.js +7 -2
  526. package/src/social-link/index.php +19 -9
  527. package/src/social-links/edit.js +21 -12
  528. package/src/tab-list/README.md +4 -5
  529. package/src/tab-list/block.json +4 -3
  530. package/src/tab-list/edit.js +92 -28
  531. package/src/tab-list/editor.scss +9 -0
  532. package/src/tab-list/index.php +9 -4
  533. package/src/tab-list/tab-movers.js +72 -0
  534. package/src/tab-panel/README.md +4 -6
  535. package/src/tab-panel/block.json +1 -6
  536. package/src/tab-panel/edit.js +20 -33
  537. package/src/tab-panels/README.md +5 -3
  538. package/src/tab-panels/block.json +0 -1
  539. package/src/table/edit.js +1 -1
  540. package/src/table-of-contents/index.php +386 -1
  541. package/src/tabs/README.md +18 -9
  542. package/src/tabs/block.json +0 -5
  543. package/src/tabs/edit.js +7 -64
  544. package/src/tabs/use-tab-actions.js +32 -3
  545. package/src/tabs/use-tab-list-items-sync.js +24 -4
  546. package/src/tag-cloud/index.php +3 -2
  547. package/src/template-part/index.php +3 -17
  548. package/src/term-name/README.md +1 -1
  549. package/src/term-name/block.json +1 -3
  550. package/src/term-name/deprecated.js +74 -0
  551. package/src/term-name/edit.js +2 -18
  552. package/src/term-name/index.js +2 -0
  553. package/src/utils/caption.js +7 -4
  554. package/src/utils/media-control.scss +1 -5
  555. package/src/utils/test/waveform-player.js +297 -34
  556. package/src/utils/test/waveform-utils.js +473 -5
  557. package/src/utils/waveform-player.js +189 -59
  558. package/src/utils/waveform-utils.js +443 -40
  559. package/src/verse/edit.js +7 -2
  560. package/src/video/edit.js +0 -8
  561. package/src/video/editor.scss +1 -1
  562. package/src/video/index.php +2 -2
  563. package/src/video/tracks-editor.js +0 -1
  564. package/build/image/animated-gif-convert-control.cjs +0 -105
  565. package/build/image/animated-gif-convert-control.cjs.map +0 -7
  566. package/build/utils/gif-conversion-attributes.cjs +0 -40
  567. package/build/utils/gif-conversion-attributes.cjs.map +0 -7
  568. package/build/video/gif-restore-control.cjs +0 -73
  569. package/build/video/gif-restore-control.cjs.map +0 -7
  570. package/build-module/image/animated-gif-convert-control.mjs +0 -87
  571. package/build-module/image/animated-gif-convert-control.mjs.map +0 -7
  572. package/build-module/utils/gif-conversion-attributes.mjs +0 -15
  573. package/build-module/utils/gif-conversion-attributes.mjs.map +0 -7
  574. package/build-module/video/gif-restore-control.mjs +0 -55
  575. package/build-module/video/gif-restore-control.mjs.map +0 -7
  576. package/src/image/animated-gif-convert-control.js +0 -135
  577. package/src/image/test/animated-gif-convert-control.js +0 -276
  578. package/src/utils/gif-conversion-attributes.js +0 -30
  579. package/src/utils/test/gif-conversion-attributes.js +0 -60
  580. package/src/video/gif-restore-control.js +0 -92
@@ -10,7 +10,8 @@ import {
10
10
  useInnerBlocksProps,
11
11
  BlockControls,
12
12
  InspectorControls,
13
- InnerBlocks
13
+ __experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,
14
+ __experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients
14
15
  } from "@wordpress/block-editor";
15
16
  import {
16
17
  ToggleControl,
@@ -21,9 +22,10 @@ import {
21
22
  } from "@wordpress/components";
22
23
  import { useSelect, useDispatch } from "@wordpress/data";
23
24
  import { store as noticesStore } from "@wordpress/notices";
24
- import { __ } from "@wordpress/i18n";
25
- import { audio as icon } from "@wordpress/icons";
25
+ import { __, _x } from "@wordpress/i18n";
26
+ import { playlist as icon } from "@wordpress/icons";
26
27
  import { createBlock } from "@wordpress/blocks";
28
+ import { createBlobURL } from "@wordpress/blob";
27
29
  import { Caption } from "../utils/caption.mjs";
28
30
  import { useToolsPanelDropdownMenuProps } from "../utils/hooks.mjs";
29
31
  import { WaveformPlayer } from "../utils/waveform-player.mjs";
@@ -31,6 +33,26 @@ import { PlaylistContext } from "./context.mjs";
31
33
  import { getTrackAttributes } from "./utils.mjs";
32
34
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
33
35
  var ALLOWED_MEDIA_TYPES = ["audio"];
36
+ var AUDIO_FILE_EXTENSION = /\.(aac|aif|aiff|flac|m4a|m4b|mp3|oga|ogg|opus|wav|weba)$/i;
37
+ var DEFAULT_WAVEFORM_STYLE = "bars";
38
+ var FILE_LIST_OBJECT_NAME = "[object FileList]";
39
+ var WAVEFORM_STYLE_OPTIONS = [
40
+ { label: _x("Bars", "waveform style option"), value: "bars" },
41
+ { label: _x("Mirror", "waveform style option"), value: "mirror" },
42
+ { label: _x("Line", "waveform style option"), value: "line" },
43
+ { label: _x("Blocks", "waveform style option"), value: "blocks" },
44
+ { label: _x("Dots", "waveform style option"), value: "dots" },
45
+ { label: _x("Seekbar", "waveform style option"), value: "seekbar" }
46
+ ];
47
+ function isFile(value) {
48
+ return Object.prototype.toString.call(value) === "[object File]" || typeof File !== "undefined" && value instanceof File;
49
+ }
50
+ function isAudioFile(file) {
51
+ return file.type ? file.type.startsWith("audio/") : AUDIO_FILE_EXTENSION.test(file.name);
52
+ }
53
+ function getTrackIdentifier(track) {
54
+ return track.id ?? track.src ?? track.blob;
55
+ }
34
56
  var PlaylistEdit = ({
35
57
  attributes,
36
58
  setAttributes,
@@ -43,17 +65,45 @@ var PlaylistEdit = ({
43
65
  showTracklist,
44
66
  showNumbers,
45
67
  showImages,
68
+ showPlayButtonArtwork,
46
69
  showArtists,
47
- showTrackLength
70
+ showTrackLength,
71
+ waveformStyle = DEFAULT_WAVEFORM_STYLE,
72
+ waveformColor,
73
+ waveformGradient,
74
+ waveformBackgroundColor,
75
+ waveformBackgroundGradient
48
76
  } = attributes;
49
- const waveformStyle = attributes.className?.match(/is-style-([\w-]+)/)?.[1] || "bars";
50
77
  const blockProps = useBlockProps();
51
- const { replaceInnerBlocks } = useDispatch(blockEditorStore);
78
+ const waveformPanelId = `${clientId}-waveform`;
79
+ const { replaceInnerBlocks, selectBlock } = useDispatch(blockEditorStore);
52
80
  const { createErrorNotice } = useDispatch(noticesStore);
53
81
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
54
- function onUploadError(message) {
55
- createErrorNotice(message, { type: "snackbar" });
56
- }
82
+ const colorGradientSettings = useMultipleOriginColorsAndGradients();
83
+ const colors = useMemo(
84
+ () => colorGradientSettings.colors.flatMap(
85
+ (origin) => origin?.colors ?? []
86
+ ),
87
+ [colorGradientSettings.colors]
88
+ );
89
+ const gradients = useMemo(
90
+ () => colorGradientSettings.gradients.flatMap(
91
+ (origin) => origin?.gradients ?? []
92
+ ),
93
+ [colorGradientSettings.gradients]
94
+ );
95
+ const hasColors = colors.length > 0 || !colorGradientSettings.disableCustomColors;
96
+ const hasGradients = gradients.length > 0 || !colorGradientSettings.disableCustomGradients;
97
+ const waveformGradientValue = waveformGradient;
98
+ const waveformBackgroundGradientValue = waveformBackgroundGradient;
99
+ let waveformColorGradientChange;
100
+ let waveformBackgroundColorGradientChange;
101
+ const onUploadError = useCallback(
102
+ (message) => {
103
+ createErrorNotice(message, { type: "snackbar" });
104
+ },
105
+ [createErrorNotice]
106
+ );
57
107
  const [currentTrackClientId, setCurrentTrackClientId] = useState(null);
58
108
  const { innerBlockTracks } = useSelect(
59
109
  (select) => {
@@ -91,26 +141,89 @@ var PlaylistEdit = ({
91
141
  setCurrentTrackClientId(validTracks[0].clientId);
92
142
  }
93
143
  }, [currentTrackClientId, setCurrentTrackClientId, validTracks]);
94
- const playlistContext = useMemo(
95
- () => ({ currentTrackClientId, setCurrentTrackClientId }),
96
- [currentTrackClientId, setCurrentTrackClientId]
144
+ const createTrackBlocks = useCallback(
145
+ (media) => {
146
+ if (!media) {
147
+ return [];
148
+ }
149
+ let mediaItems = [media];
150
+ if (Object.prototype.toString.call(media) === FILE_LIST_OBJECT_NAME) {
151
+ mediaItems = Array.from(media);
152
+ } else if (Array.isArray(media)) {
153
+ mediaItems = media;
154
+ }
155
+ let hasInvalidFile = false;
156
+ const blocks = mediaItems.map((mediaItem) => {
157
+ if (isFile(mediaItem)) {
158
+ if (!isAudioFile(mediaItem)) {
159
+ hasInvalidFile = true;
160
+ return null;
161
+ }
162
+ return createBlock("core/playlist-track", {
163
+ blob: createBlobURL(mediaItem),
164
+ title: mediaItem.name
165
+ });
166
+ }
167
+ const track = getTrackAttributes(mediaItem);
168
+ return track.src ? createBlock("core/playlist-track", track) : null;
169
+ }).filter(Boolean);
170
+ if (hasInvalidFile) {
171
+ onUploadError(
172
+ __("Only audio files can be added to a playlist.")
173
+ );
174
+ }
175
+ return blocks;
176
+ },
177
+ [onUploadError]
97
178
  );
98
179
  const onSelectTracks = useCallback(
99
180
  (media) => {
100
- if (!media) {
181
+ const newBlocks = createTrackBlocks(media);
182
+ if (newBlocks.length === 0) {
101
183
  return;
102
184
  }
103
- if (!Array.isArray(media)) {
104
- media = [media];
105
- }
106
- const trackList = media.map(getTrackAttributes);
107
- const newBlocks = trackList.map(
108
- (track) => createBlock("core/playlist-track", track)
109
- );
110
185
  setCurrentTrackClientId(newBlocks[0]?.clientId ?? null);
111
186
  replaceInnerBlocks(clientId, newBlocks);
112
187
  },
113
- [replaceInnerBlocks, clientId, setCurrentTrackClientId]
188
+ [
189
+ clientId,
190
+ createTrackBlocks,
191
+ replaceInnerBlocks,
192
+ setCurrentTrackClientId
193
+ ]
194
+ );
195
+ const onAddTracks = useCallback(
196
+ (media) => {
197
+ const existingIds = new Set(
198
+ validTracks.map((block) => getTrackIdentifier(block.attributes)).filter(Boolean)
199
+ );
200
+ const newBlocks = createTrackBlocks(media).filter(
201
+ (block) => !existingIds.has(getTrackIdentifier(block.attributes))
202
+ );
203
+ if (newBlocks.length === 0) {
204
+ return;
205
+ }
206
+ const nextBlocks = [...validTracks, ...newBlocks];
207
+ setCurrentTrackClientId(newBlocks[0].clientId);
208
+ replaceInnerBlocks(clientId, nextBlocks);
209
+ selectBlock(newBlocks[0].clientId);
210
+ },
211
+ [
212
+ clientId,
213
+ createTrackBlocks,
214
+ replaceInnerBlocks,
215
+ selectBlock,
216
+ setCurrentTrackClientId,
217
+ validTracks
218
+ ]
219
+ );
220
+ const playlistContext = useMemo(
221
+ () => ({
222
+ currentTrackClientId,
223
+ setCurrentTrackClientId,
224
+ addTracks: onAddTracks
225
+ }),
226
+ [currentTrackClientId, onAddTracks, setCurrentTrackClientId]
114
227
  );
115
228
  const currentTrackData = tracks.find((track) => track.clientId === currentTrackClientId) ?? tracks[0];
116
229
  const onTrackEnded = useCallback(() => {
@@ -151,14 +264,98 @@ var PlaylistEdit = ({
151
264
  setAttributes({ [attribute]: newValue });
152
265
  };
153
266
  }
154
- const hasSelectedChild = useSelect(
155
- (select) => select(blockEditorStore).hasSelectedInnerBlock(clientId),
156
- [clientId]
267
+ const onChangeWaveformStyle = useCallback(
268
+ (newWaveformStyle) => {
269
+ setAttributes({
270
+ waveformStyle: newWaveformStyle === DEFAULT_WAVEFORM_STYLE ? void 0 : newWaveformStyle
271
+ });
272
+ },
273
+ [setAttributes]
157
274
  );
158
- const hasAnySelected = isSelected || hasSelectedChild;
275
+ function updateWaveformColor(colorValue) {
276
+ const isSettingColor = colorValue !== void 0;
277
+ if (!isSettingColor && waveformColorGradientChange === "gradient") {
278
+ waveformColorGradientChange = void 0;
279
+ return;
280
+ }
281
+ waveformColorGradientChange = "color";
282
+ setAttributes({
283
+ waveformColor: colorValue,
284
+ waveformGradient: void 0
285
+ });
286
+ }
287
+ function updateWaveformGradient(gradientValue) {
288
+ const isSettingGradient = gradientValue !== void 0;
289
+ if (!isSettingGradient && waveformColorGradientChange === "color") {
290
+ waveformColorGradientChange = void 0;
291
+ return;
292
+ }
293
+ waveformColorGradientChange = "gradient";
294
+ setAttributes({
295
+ waveformGradient: gradientValue,
296
+ waveformColor: void 0
297
+ });
298
+ }
299
+ function updateWaveformBackgroundColor(colorValue) {
300
+ const isSettingColor = colorValue !== void 0;
301
+ if (!isSettingColor && waveformBackgroundColorGradientChange === "gradient") {
302
+ waveformBackgroundColorGradientChange = void 0;
303
+ return;
304
+ }
305
+ waveformBackgroundColorGradientChange = "color";
306
+ setAttributes({
307
+ waveformBackgroundColor: colorValue,
308
+ waveformBackgroundGradient: void 0
309
+ });
310
+ }
311
+ function updateWaveformBackgroundGradient(gradientValue) {
312
+ const isSettingGradient = gradientValue !== void 0;
313
+ if (!isSettingGradient && waveformBackgroundColorGradientChange === "color") {
314
+ waveformBackgroundColorGradientChange = void 0;
315
+ return;
316
+ }
317
+ waveformBackgroundColorGradientChange = "gradient";
318
+ setAttributes({
319
+ waveformBackgroundGradient: gradientValue,
320
+ waveformBackgroundColor: void 0
321
+ });
322
+ }
323
+ const colorSettings = [];
324
+ if (hasColors || hasGradients) {
325
+ colorSettings.push(
326
+ {
327
+ colorValue: hasColors ? waveformColor : void 0,
328
+ gradientValue: hasGradients ? waveformGradientValue : void 0,
329
+ label: __("Waveform & Play button"),
330
+ onColorChange: hasColors ? updateWaveformColor : void 0,
331
+ onGradientChange: hasGradients ? updateWaveformGradient : void 0,
332
+ isShownByDefault: true,
333
+ clearable: true,
334
+ enableAlpha: true,
335
+ resetAllFilter: () => ({
336
+ waveformColor: void 0,
337
+ waveformGradient: void 0
338
+ })
339
+ },
340
+ {
341
+ colorValue: hasColors ? waveformBackgroundColor : void 0,
342
+ gradientValue: hasGradients ? waveformBackgroundGradientValue : void 0,
343
+ label: __("Waveform background"),
344
+ onColorChange: hasColors ? updateWaveformBackgroundColor : void 0,
345
+ onGradientChange: hasGradients ? updateWaveformBackgroundGradient : void 0,
346
+ isShownByDefault: true,
347
+ clearable: true,
348
+ enableAlpha: true,
349
+ resetAllFilter: () => ({
350
+ waveformBackgroundColor: void 0,
351
+ waveformBackgroundGradient: void 0
352
+ })
353
+ }
354
+ );
355
+ }
159
356
  const innerBlocksProps = useInnerBlocksProps(blockProps, {
160
357
  __experimentalAppenderTagName: "li",
161
- renderAppender: hasAnySelected && InnerBlocks.ButtonBlockAppender
358
+ renderAppender: false
162
359
  });
163
360
  if (tracks.length === 0) {
164
361
  return /* @__PURE__ */ jsx(
@@ -179,6 +376,7 @@ var PlaylistEdit = ({
179
376
  onSelect: onSelectTracks,
180
377
  accept: "audio/*",
181
378
  multiple: true,
379
+ handleUpload: false,
182
380
  allowedTypes: ALLOWED_MEDIA_TYPES,
183
381
  onError: onUploadError
184
382
  }
@@ -190,11 +388,11 @@ var PlaylistEdit = ({
190
388
  /* @__PURE__ */ jsx(BlockControls, { group: "other", children: /* @__PURE__ */ jsx(
191
389
  MediaReplaceFlow,
192
390
  {
193
- name: __("Edit"),
194
- onSelect: onSelectTracks,
391
+ name: __("Add"),
392
+ onSelect: onAddTracks,
195
393
  accept: "audio/*",
196
394
  multiple: true,
197
- mediaIds: tracks.filter((track) => track.id).map((track) => track.id),
395
+ handleUpload: false,
198
396
  allowedTypes: ALLOWED_MEDIA_TYPES,
199
397
  onError: onUploadError
200
398
  }
@@ -210,6 +408,7 @@ var PlaylistEdit = ({
210
408
  showNumbers: true,
211
409
  showTrackLength: true,
212
410
  showImages: true,
411
+ showPlayButtonArtwork: false,
213
412
  order: "asc"
214
413
  });
215
414
  },
@@ -218,14 +417,14 @@ var PlaylistEdit = ({
218
417
  /* @__PURE__ */ jsx(
219
418
  ToolsPanelItem,
220
419
  {
221
- label: __("Show Tracklist"),
420
+ label: __("Show tracklist"),
222
421
  isShownByDefault: true,
223
422
  hasValue: () => showTracklist !== true,
224
423
  onDeselect: () => setAttributes({ showTracklist: true }),
225
424
  children: /* @__PURE__ */ jsx(
226
425
  ToggleControl,
227
426
  {
228
- label: __("Show Tracklist"),
427
+ label: __("Show tracklist"),
229
428
  onChange: toggleAttribute("showTracklist"),
230
429
  checked: showTracklist
231
430
  }
@@ -236,7 +435,7 @@ var PlaylistEdit = ({
236
435
  /* @__PURE__ */ jsx(
237
436
  ToolsPanelItem,
238
437
  {
239
- label: __("Show artist name in Tracklist"),
438
+ label: __("Show artist name in tracklist"),
240
439
  isShownByDefault: true,
241
440
  hasValue: () => showArtists !== true,
242
441
  onDeselect: () => setAttributes({ showArtists: true }),
@@ -244,7 +443,7 @@ var PlaylistEdit = ({
244
443
  ToggleControl,
245
444
  {
246
445
  label: __(
247
- "Show artist name in Tracklist"
446
+ "Show artist name in tracklist"
248
447
  ),
249
448
  onChange: toggleAttribute(
250
449
  "showArtists"
@@ -257,14 +456,18 @@ var PlaylistEdit = ({
257
456
  /* @__PURE__ */ jsx(
258
457
  ToolsPanelItem,
259
458
  {
260
- label: __("Show number in Tracklist"),
459
+ label: __(
460
+ "Show track numbers in tracklist"
461
+ ),
261
462
  isShownByDefault: true,
262
463
  hasValue: () => showNumbers !== true,
263
464
  onDeselect: () => setAttributes({ showNumbers: true }),
264
465
  children: /* @__PURE__ */ jsx(
265
466
  ToggleControl,
266
467
  {
267
- label: __("Show number in Tracklist"),
468
+ label: __(
469
+ "Show track numbers in tracklist"
470
+ ),
268
471
  onChange: toggleAttribute(
269
472
  "showNumbers"
270
473
  ),
@@ -276,7 +479,9 @@ var PlaylistEdit = ({
276
479
  /* @__PURE__ */ jsx(
277
480
  ToolsPanelItem,
278
481
  {
279
- label: __("Show track length in Tracklist"),
482
+ label: __(
483
+ "Show track duration in tracklist"
484
+ ),
280
485
  isShownByDefault: true,
281
486
  hasValue: () => showTrackLength !== true,
282
487
  onDeselect: () => setAttributes({ showTrackLength: true }),
@@ -284,7 +489,7 @@ var PlaylistEdit = ({
284
489
  ToggleControl,
285
490
  {
286
491
  label: __(
287
- "Show track length in Tracklist"
492
+ "Show track duration in tracklist"
288
493
  ),
289
494
  onChange: toggleAttribute(
290
495
  "showTrackLength"
@@ -298,20 +503,39 @@ var PlaylistEdit = ({
298
503
  /* @__PURE__ */ jsx(
299
504
  ToolsPanelItem,
300
505
  {
301
- label: __("Show images"),
506
+ label: __("Show tracklist images"),
302
507
  isShownByDefault: true,
303
508
  hasValue: () => showImages !== true,
304
509
  onDeselect: () => setAttributes({ showImages: true }),
305
510
  children: /* @__PURE__ */ jsx(
306
511
  ToggleControl,
307
512
  {
308
- label: __("Show images"),
513
+ label: __("Show tracklist images"),
309
514
  onChange: toggleAttribute("showImages"),
310
515
  checked: showImages
311
516
  }
312
517
  )
313
518
  }
314
519
  ),
520
+ /* @__PURE__ */ jsx(
521
+ ToolsPanelItem,
522
+ {
523
+ label: __("Show track image on play button"),
524
+ isShownByDefault: true,
525
+ hasValue: () => showPlayButtonArtwork === true,
526
+ onDeselect: () => setAttributes({ showPlayButtonArtwork: false }),
527
+ children: /* @__PURE__ */ jsx(
528
+ ToggleControl,
529
+ {
530
+ label: __("Show track image on play button"),
531
+ onChange: toggleAttribute(
532
+ "showPlayButtonArtwork"
533
+ ),
534
+ checked: showPlayButtonArtwork === true
535
+ }
536
+ )
537
+ }
538
+ ),
315
539
  /* @__PURE__ */ jsx(
316
540
  ToolsPanelItem,
317
541
  {
@@ -336,7 +560,66 @@ var PlaylistEdit = ({
336
560
  ]
337
561
  }
338
562
  ) }),
563
+ /* @__PURE__ */ jsx(InspectorControls, { group: "styles", children: /* @__PURE__ */ jsxs(
564
+ ToolsPanel,
565
+ {
566
+ label: __("Waveform"),
567
+ resetAll: () => {
568
+ setAttributes({
569
+ waveformStyle: void 0,
570
+ waveformColor: void 0,
571
+ waveformGradient: void 0,
572
+ waveformBackgroundColor: void 0,
573
+ waveformBackgroundGradient: void 0
574
+ });
575
+ },
576
+ panelId: waveformPanelId,
577
+ dropdownMenuProps,
578
+ children: [
579
+ colorSettings.length > 0 && /* @__PURE__ */ jsx("div", { className: "wp-block-playlist__waveform-color-controls", children: /* @__PURE__ */ jsx(
580
+ ColorGradientSettingsDropdown,
581
+ {
582
+ __experimentalIsRenderedInSidebar: true,
583
+ settings: colorSettings,
584
+ panelId: waveformPanelId,
585
+ ...colorGradientSettings
586
+ }
587
+ ) }),
588
+ /* @__PURE__ */ jsx(
589
+ ToolsPanelItem,
590
+ {
591
+ label: __("Shape"),
592
+ isShownByDefault: true,
593
+ hasValue: () => waveformStyle !== DEFAULT_WAVEFORM_STYLE,
594
+ onDeselect: () => onChangeWaveformStyle(DEFAULT_WAVEFORM_STYLE),
595
+ panelId: waveformPanelId,
596
+ children: /* @__PURE__ */ jsx(
597
+ SelectControl,
598
+ {
599
+ label: __("Shape"),
600
+ value: waveformStyle,
601
+ options: WAVEFORM_STYLE_OPTIONS,
602
+ onChange: onChangeWaveformStyle
603
+ }
604
+ )
605
+ }
606
+ )
607
+ ]
608
+ }
609
+ ) }),
339
610
  /* @__PURE__ */ jsxs("figure", { ...blockProps, children: [
611
+ /* @__PURE__ */ jsx(
612
+ MediaPlaceholder,
613
+ {
614
+ onSelect: onAddTracks,
615
+ accept: "audio/*",
616
+ multiple: true,
617
+ handleUpload: false,
618
+ disableMediaButtons: true,
619
+ allowedTypes: ALLOWED_MEDIA_TYPES,
620
+ onError: onUploadError
621
+ }
622
+ ),
340
623
  /* @__PURE__ */ jsx(Disabled, { isDisabled: !isSelected, children: /* @__PURE__ */ jsx(
341
624
  WaveformPlayer,
342
625
  {
@@ -344,14 +627,21 @@ var PlaylistEdit = ({
344
627
  title: currentTrackData?.title,
345
628
  artist: currentTrackData?.artist,
346
629
  image: currentTrackData?.image,
630
+ imageAlt: currentTrackData?.imageAlt,
347
631
  waveformStyle,
348
- onEnded: onTrackEnded
632
+ color: waveformColor,
633
+ gradient: waveformGradientValue,
634
+ backgroundColor: waveformBackgroundColor,
635
+ backgroundGradient: waveformBackgroundGradientValue,
636
+ onEnded: onTrackEnded,
637
+ showPlayButtonArtwork: showPlayButtonArtwork === true
349
638
  }
350
639
  ) }),
351
- showTracklist && /* @__PURE__ */ jsx(
640
+ /* @__PURE__ */ jsx(
352
641
  "ol",
353
642
  {
354
643
  className: clsx("wp-block-playlist__tracklist", {
644
+ "wp-block-playlist__tracklist-is-hidden": !showTracklist,
355
645
  "wp-block-playlist__tracklist-show-numbers": showNumbers,
356
646
  "wp-block-playlist__tracklist-length-is-hidden": !showTrackLength
357
647
  }),