@wordpress/block-library 9.48.0 → 10.0.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 (1102) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/build/audio/edit.cjs +8 -1
  3. package/build/audio/edit.cjs.map +2 -2
  4. package/build/breadcrumbs/edit.cjs +1 -2
  5. package/build/breadcrumbs/edit.cjs.map +2 -2
  6. package/build/button/edit.cjs +1 -2
  7. package/build/button/edit.cjs.map +2 -2
  8. package/build/categories/edit.cjs +1 -1
  9. package/build/categories/edit.cjs.map +1 -1
  10. package/build/code/edit.cjs +1 -1
  11. package/build/code/edit.cjs.map +2 -2
  12. package/build/code/index.cjs +1 -1
  13. package/build/code/index.cjs.map +1 -1
  14. package/build/columns/transforms.cjs +65 -0
  15. package/build/columns/transforms.cjs.map +2 -2
  16. package/build/columns/utils.cjs.map +1 -1
  17. package/build/comments/edit/comments-legacy.cjs +1 -1
  18. package/build/comments/edit/comments-legacy.cjs.map +1 -1
  19. package/build/comments/edit/placeholder.cjs +4 -4
  20. package/build/comments/edit/placeholder.cjs.map +1 -1
  21. package/build/comments-pagination-next/edit.cjs +2 -2
  22. package/build/comments-pagination-next/edit.cjs.map +1 -1
  23. package/build/comments-pagination-previous/edit.cjs +2 -2
  24. package/build/comments-pagination-previous/edit.cjs.map +1 -1
  25. package/build/cover/deprecated.cjs +3 -3
  26. package/build/cover/deprecated.cjs.map +2 -2
  27. package/build/cover/edit/block-controls.cjs +13 -0
  28. package/build/cover/edit/block-controls.cjs.map +2 -2
  29. package/build/cover/edit/embed-video-url-input.cjs +0 -1
  30. package/build/cover/edit/embed-video-url-input.cjs.map +2 -2
  31. package/build/cover/edit/index.cjs +61 -2
  32. package/build/cover/edit/index.cjs.map +3 -3
  33. package/build/cover/edit/inspector-controls.cjs +93 -35
  34. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  35. package/build/details/edit.cjs +1 -2
  36. package/build/details/edit.cjs.map +2 -2
  37. package/build/embed/embed-placeholder.cjs +1 -1
  38. package/build/embed/embed-placeholder.cjs.map +2 -2
  39. package/build/file/edit.cjs +3 -11
  40. package/build/file/edit.cjs.map +2 -2
  41. package/build/file/index.cjs +3 -1
  42. package/build/file/index.cjs.map +3 -3
  43. package/build/file/transforms.cjs +11 -32
  44. package/build/file/transforms.cjs.map +2 -2
  45. package/build/{freeform/convert-to-blocks-button.cjs → file/variations.cjs} +16 -18
  46. package/build/file/variations.cjs.map +7 -0
  47. package/build/footnotes/edit.cjs +1 -1
  48. package/build/footnotes/edit.cjs.map +2 -2
  49. package/build/form/edit.cjs +0 -2
  50. package/build/form/edit.cjs.map +2 -2
  51. package/build/form-input/edit.cjs +1 -3
  52. package/build/form-input/edit.cjs.map +2 -2
  53. package/build/freeform/edit.cjs +6 -15
  54. package/build/freeform/edit.cjs.map +3 -3
  55. package/build/freeform/migration-notice.cjs.map +2 -2
  56. package/build/gallery/edit.cjs +212 -331
  57. package/build/gallery/edit.cjs.map +2 -2
  58. package/build/gallery/transforms.cjs +43 -0
  59. package/build/gallery/transforms.cjs.map +2 -2
  60. package/build/heading/edit.cjs +0 -1
  61. package/build/heading/edit.cjs.map +2 -2
  62. package/build/home-link/edit.cjs +1 -2
  63. package/build/home-link/edit.cjs.map +2 -2
  64. package/build/html/index.cjs +1 -1
  65. package/build/html/index.cjs.map +2 -2
  66. package/build/html/modal.cjs +9 -6
  67. package/build/html/modal.cjs.map +2 -2
  68. package/build/icon/block.json +12 -0
  69. package/build/icon/edit.cjs +90 -41
  70. package/build/icon/edit.cjs.map +3 -3
  71. package/build/icon/index.cjs +3 -1
  72. package/build/icon/index.cjs.map +3 -3
  73. package/build/{tab/save.cjs → icon/variations.cjs} +14 -15
  74. package/build/icon/variations.cjs.map +7 -0
  75. package/build/image/block.json +1 -0
  76. package/build/image/edit.cjs +4 -3
  77. package/build/image/edit.cjs.map +2 -2
  78. package/build/image/image.cjs +91 -29
  79. package/build/image/image.cjs.map +2 -2
  80. package/build/image/index.cjs +1 -1
  81. package/build/image/index.cjs.map +2 -2
  82. package/build/image/transforms.cjs +9 -3
  83. package/build/image/transforms.cjs.map +2 -2
  84. package/build/image/use-open-image-media-editor-modal.cjs +5 -25
  85. package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
  86. package/build/index.cjs +1 -3
  87. package/build/index.cjs.map +2 -2
  88. package/build/latest-posts/edit.cjs +1 -1
  89. package/build/latest-posts/edit.cjs.map +1 -1
  90. package/build/list/edit.cjs +1 -8
  91. package/build/list/edit.cjs.map +2 -2
  92. package/build/list/ordered-list-settings.cjs +1 -45
  93. package/build/list/ordered-list-settings.cjs.map +2 -2
  94. package/build/list-item/hooks/use-merge.cjs +47 -24
  95. package/build/list-item/hooks/use-merge.cjs.map +2 -2
  96. package/build/math/edit.cjs +1 -1
  97. package/build/math/index.cjs +1 -1
  98. package/build/math/index.cjs.map +1 -1
  99. package/build/media-text/constants.cjs +1 -1
  100. package/build/media-text/constants.cjs.map +2 -2
  101. package/build/media-text/index.cjs +1 -1
  102. package/build/media-text/index.cjs.map +2 -2
  103. package/build/missing/edit.cjs +2 -2
  104. package/build/missing/edit.cjs.map +1 -1
  105. package/build/navigation/edit/index.cjs +34 -39
  106. package/build/navigation/edit/index.cjs.map +2 -2
  107. package/build/navigation/edit/navigation-menu-name-control.cjs +0 -1
  108. package/build/navigation/edit/navigation-menu-name-control.cjs.map +2 -2
  109. package/build/navigation/edit/navigation-menu-selector.cjs +1 -1
  110. package/build/navigation/edit/navigation-menu-selector.cjs.map +2 -2
  111. package/build/navigation/edit/placeholder/index.cjs +1 -1
  112. package/build/navigation/edit/placeholder/index.cjs.map +2 -2
  113. package/build/navigation-link/block.json +1 -1
  114. package/build/navigation-link/edit.cjs +1 -2
  115. package/build/navigation-link/edit.cjs.map +2 -2
  116. package/build/navigation-link/link-ui/page-creator.cjs +0 -1
  117. package/build/navigation-link/link-ui/page-creator.cjs.map +2 -2
  118. package/build/navigation-link/shared/controls.cjs +0 -2
  119. package/build/navigation-link/shared/controls.cjs.map +2 -2
  120. package/build/navigation-submenu/block.json +7 -0
  121. package/build/navigation-submenu/edit.cjs +3 -2
  122. package/build/navigation-submenu/edit.cjs.map +2 -2
  123. package/build/page-list/block.json +2 -5
  124. package/build/page-list/edit.cjs +1 -11
  125. package/build/page-list/edit.cjs.map +2 -2
  126. package/build/paragraph/deprecated.cjs +1 -0
  127. package/build/paragraph/deprecated.cjs.map +2 -2
  128. package/build/paragraph/edit.cjs +10 -1
  129. package/build/paragraph/edit.cjs.map +3 -3
  130. package/build/playlist/block.json +12 -0
  131. package/build/playlist/edit.cjs +27 -1
  132. package/build/playlist/edit.cjs.map +2 -2
  133. package/build/playlist/save.cjs +8 -1
  134. package/build/playlist/save.cjs.map +2 -2
  135. package/build/playlist/view.cjs +1 -0
  136. package/build/playlist/view.cjs.map +2 -2
  137. package/build/playlist-track/edit.cjs +0 -3
  138. package/build/playlist-track/edit.cjs.map +2 -2
  139. package/build/post-author/edit.cjs +1 -1
  140. package/build/post-author/edit.cjs.map +2 -2
  141. package/build/post-author/utils.cjs +1 -1
  142. package/build/post-author/utils.cjs.map +2 -2
  143. package/build/post-comment/edit.cjs +0 -1
  144. package/build/post-comment/edit.cjs.map +2 -2
  145. package/build/post-date/edit.cjs +2 -2
  146. package/build/post-date/edit.cjs.map +2 -2
  147. package/build/post-excerpt/edit.cjs +2 -2
  148. package/build/post-excerpt/edit.cjs.map +2 -2
  149. package/build/post-featured-image/block.json +1 -0
  150. package/build/post-featured-image/dimension-controls.cjs +90 -178
  151. package/build/post-featured-image/dimension-controls.cjs.map +3 -3
  152. package/build/post-featured-image/edit.cjs +47 -18
  153. package/build/post-featured-image/edit.cjs.map +2 -2
  154. package/build/post-navigation-link/edit.cjs +2 -2
  155. package/build/post-navigation-link/edit.cjs.map +2 -2
  156. package/build/post-terms/edit.cjs +0 -1
  157. package/build/post-terms/edit.cjs.map +2 -2
  158. package/build/post-time-to-read/edit.cjs +1 -1
  159. package/build/post-time-to-read/edit.cjs.map +1 -1
  160. package/build/post-time-to-read/index.cjs +1 -1
  161. package/build/post-time-to-read/index.cjs.map +2 -2
  162. package/build/post-time-to-read/variations.cjs +1 -1
  163. package/build/post-time-to-read/variations.cjs.map +2 -2
  164. package/build/post-title/edit.cjs +0 -1
  165. package/build/post-title/edit.cjs.map +2 -2
  166. package/build/preformatted/edit.cjs +1 -1
  167. package/build/preformatted/edit.cjs.map +2 -2
  168. package/build/pullquote/block.json +1 -3
  169. package/build/pullquote/deprecated.cjs +114 -9
  170. package/build/pullquote/deprecated.cjs.map +3 -3
  171. package/build/pullquote/edit.cjs +43 -66
  172. package/build/pullquote/edit.cjs.map +3 -3
  173. package/build/pullquote/save.cjs +5 -26
  174. package/build/pullquote/save.cjs.map +3 -3
  175. package/build/query/edit/enhanced-pagination-modal.cjs +10 -1
  176. package/build/query/edit/enhanced-pagination-modal.cjs.map +3 -3
  177. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs +1 -1
  178. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs.map +1 -1
  179. package/build/query/edit/inspector-controls/index.cjs +0 -1
  180. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  181. package/build/query/edit/inspector-controls/order-control.cjs +2 -2
  182. package/build/query/edit/inspector-controls/order-control.cjs.map +2 -2
  183. package/build/query/utils.cjs +2 -2
  184. package/build/query/utils.cjs.map +2 -2
  185. package/build/query-pagination-next/edit.cjs +2 -2
  186. package/build/query-pagination-next/edit.cjs.map +1 -1
  187. package/build/query-pagination-previous/edit.cjs +2 -2
  188. package/build/query-pagination-previous/edit.cjs.map +1 -1
  189. package/build/query-title/edit.cjs +1 -1
  190. package/build/query-title/edit.cjs.map +2 -2
  191. package/build/query-total/edit.cjs +1 -1
  192. package/build/query-total/edit.cjs.map +2 -2
  193. package/build/quote/edit.cjs +4 -9
  194. package/build/quote/edit.cjs.map +2 -2
  195. package/build/quote/index.cjs +1 -1
  196. package/build/quote/index.cjs.map +2 -2
  197. package/build/read-more/edit.cjs +1 -1
  198. package/build/read-more/edit.cjs.map +2 -2
  199. package/build/rss/edit.cjs +1 -2
  200. package/build/rss/edit.cjs.map +2 -2
  201. package/build/search/block.json +4 -0
  202. package/build/search/edit.cjs +244 -206
  203. package/build/search/edit.cjs.map +2 -2
  204. package/build/shortcode/edit.cjs +1 -1
  205. package/build/shortcode/edit.cjs.map +2 -2
  206. package/build/shortcode/transforms.cjs +2 -2
  207. package/build/shortcode/transforms.cjs.map +2 -2
  208. package/build/site-logo/edit.cjs +2 -1
  209. package/build/site-logo/edit.cjs.map +2 -2
  210. package/build/site-tagline/edit.cjs +1 -1
  211. package/build/site-tagline/edit.cjs.map +2 -2
  212. package/build/site-title/edit.cjs +1 -1
  213. package/build/site-title/edit.cjs.map +2 -2
  214. package/build/social-link/edit.cjs +0 -3
  215. package/build/social-link/edit.cjs.map +2 -2
  216. package/build/tab-list/block.json +33 -20
  217. package/build/tab-list/edit.cjs +122 -12
  218. package/build/tab-list/edit.cjs.map +3 -3
  219. package/build/tab-list/init.cjs +28 -0
  220. package/build/tab-list/init.cjs.map +7 -0
  221. package/build/tab-list/save.cjs +33 -3
  222. package/build/tab-list/save.cjs.map +3 -3
  223. package/build/tab-panel/add-tab-toolbar-control.cjs +19 -8
  224. package/build/tab-panel/add-tab-toolbar-control.cjs.map +2 -2
  225. package/build/tab-panel/block.json +2 -6
  226. package/build/tab-panel/edit.cjs +0 -9
  227. package/build/tab-panel/edit.cjs.map +2 -2
  228. package/build/tab-panel/remove-tab-toolbar-control.cjs +9 -14
  229. package/build/tab-panel/remove-tab-toolbar-control.cjs.map +2 -2
  230. package/build/tab-panel/save.cjs +2 -1
  231. package/build/tab-panel/save.cjs.map +2 -2
  232. package/build/tab-panels/block.json +2 -28
  233. package/build/tab-panels/init.cjs +28 -0
  234. package/build/tab-panels/init.cjs.map +7 -0
  235. package/build/table/edit.cjs +0 -2
  236. package/build/table/edit.cjs.map +2 -2
  237. package/build/table/index.cjs +1 -1
  238. package/build/table/index.cjs.map +2 -2
  239. package/build/tabs/block.json +3 -17
  240. package/build/tabs/edit.cjs +7 -21
  241. package/build/tabs/edit.cjs.map +3 -3
  242. package/build/tabs/index.cjs +6 -10
  243. package/build/tabs/index.cjs.map +2 -2
  244. package/build/tabs/use-tab-list-items-sync.cjs +53 -0
  245. package/build/tabs/use-tab-list-items-sync.cjs.map +7 -0
  246. package/build/tabs/view.cjs +22 -104
  247. package/build/tabs/view.cjs.map +2 -2
  248. package/build/template-part/edit/advanced-controls.cjs +0 -1
  249. package/build/template-part/edit/advanced-controls.cjs.map +2 -2
  250. package/build/template-part/edit/title-modal.cjs +1 -2
  251. package/build/template-part/edit/title-modal.cjs.map +2 -2
  252. package/build/terms-query/edit/inspector-controls/order-control.cjs +2 -2
  253. package/build/terms-query/edit/inspector-controls/order-control.cjs.map +2 -2
  254. package/build/utils/style-state.cjs +164 -0
  255. package/build/utils/style-state.cjs.map +7 -0
  256. package/build/utils/waveform-player.cjs +42 -9
  257. package/build/utils/waveform-player.cjs.map +2 -2
  258. package/build/utils/waveform-utils.cjs +6 -4
  259. package/build/utils/waveform-utils.cjs.map +2 -2
  260. package/build/verse/edit.cjs +1 -1
  261. package/build/verse/edit.cjs.map +2 -2
  262. package/build/video/edit-common-settings.cjs +3 -6
  263. package/build/video/edit-common-settings.cjs.map +2 -2
  264. package/build/video/edit.cjs +3 -2
  265. package/build/video/edit.cjs.map +2 -2
  266. package/build/video/tracks-editor.cjs +0 -2
  267. package/build/video/tracks-editor.cjs.map +2 -2
  268. package/build-module/audio/edit.mjs +8 -2
  269. package/build-module/audio/edit.mjs.map +2 -2
  270. package/build-module/breadcrumbs/edit.mjs +1 -2
  271. package/build-module/breadcrumbs/edit.mjs.map +2 -2
  272. package/build-module/button/edit.mjs +1 -2
  273. package/build-module/button/edit.mjs.map +2 -2
  274. package/build-module/categories/edit.mjs +1 -1
  275. package/build-module/categories/edit.mjs.map +1 -1
  276. package/build-module/code/edit.mjs +1 -1
  277. package/build-module/code/edit.mjs.map +2 -2
  278. package/build-module/code/index.mjs +1 -1
  279. package/build-module/code/index.mjs.map +1 -1
  280. package/build-module/columns/transforms.mjs +65 -0
  281. package/build-module/columns/transforms.mjs.map +2 -2
  282. package/build-module/columns/utils.mjs.map +1 -1
  283. package/build-module/comments/edit/comments-legacy.mjs +1 -1
  284. package/build-module/comments/edit/comments-legacy.mjs.map +1 -1
  285. package/build-module/comments/edit/placeholder.mjs +4 -4
  286. package/build-module/comments/edit/placeholder.mjs.map +1 -1
  287. package/build-module/comments-pagination-next/edit.mjs +2 -2
  288. package/build-module/comments-pagination-next/edit.mjs.map +1 -1
  289. package/build-module/comments-pagination-previous/edit.mjs +2 -2
  290. package/build-module/comments-pagination-previous/edit.mjs.map +1 -1
  291. package/build-module/cover/deprecated.mjs +3 -3
  292. package/build-module/cover/deprecated.mjs.map +2 -2
  293. package/build-module/cover/edit/block-controls.mjs +15 -2
  294. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  295. package/build-module/cover/edit/embed-video-url-input.mjs +0 -1
  296. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  297. package/build-module/cover/edit/index.mjs +64 -3
  298. package/build-module/cover/edit/index.mjs.map +2 -2
  299. package/build-module/cover/edit/inspector-controls.mjs +98 -35
  300. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  301. package/build-module/details/edit.mjs +1 -2
  302. package/build-module/details/edit.mjs.map +2 -2
  303. package/build-module/embed/embed-placeholder.mjs +1 -1
  304. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  305. package/build-module/file/edit.mjs +5 -13
  306. package/build-module/file/edit.mjs.map +2 -2
  307. package/build-module/file/index.mjs +3 -1
  308. package/build-module/file/index.mjs.map +2 -2
  309. package/build-module/file/transforms.mjs +11 -32
  310. package/build-module/file/transforms.mjs.map +2 -2
  311. package/build-module/file/variations.mjs +17 -0
  312. package/build-module/file/variations.mjs.map +7 -0
  313. package/build-module/footnotes/edit.mjs +1 -1
  314. package/build-module/footnotes/edit.mjs.map +2 -2
  315. package/build-module/form/edit.mjs +0 -2
  316. package/build-module/form/edit.mjs.map +2 -2
  317. package/build-module/form-input/edit.mjs +1 -3
  318. package/build-module/form-input/edit.mjs.map +2 -2
  319. package/build-module/freeform/edit.mjs +6 -15
  320. package/build-module/freeform/edit.mjs.map +2 -2
  321. package/build-module/freeform/migration-notice.mjs.map +2 -2
  322. package/build-module/gallery/edit.mjs +214 -334
  323. package/build-module/gallery/edit.mjs.map +2 -2
  324. package/build-module/gallery/transforms.mjs +43 -0
  325. package/build-module/gallery/transforms.mjs.map +2 -2
  326. package/build-module/heading/edit.mjs +1 -2
  327. package/build-module/heading/edit.mjs.map +2 -2
  328. package/build-module/home-link/edit.mjs +1 -2
  329. package/build-module/home-link/edit.mjs.map +2 -2
  330. package/build-module/html/index.mjs +1 -1
  331. package/build-module/html/index.mjs.map +2 -2
  332. package/build-module/html/modal.mjs +9 -6
  333. package/build-module/html/modal.mjs.map +2 -2
  334. package/build-module/icon/block.json +12 -0
  335. package/build-module/icon/edit.mjs +94 -42
  336. package/build-module/icon/edit.mjs.map +2 -2
  337. package/build-module/icon/index.mjs +3 -1
  338. package/build-module/icon/index.mjs.map +2 -2
  339. package/build-module/icon/variations.mjs +13 -0
  340. package/build-module/icon/variations.mjs.map +7 -0
  341. package/build-module/image/block.json +1 -0
  342. package/build-module/image/edit.mjs +4 -3
  343. package/build-module/image/edit.mjs.map +2 -2
  344. package/build-module/image/image.mjs +96 -29
  345. package/build-module/image/image.mjs.map +2 -2
  346. package/build-module/image/index.mjs +1 -1
  347. package/build-module/image/index.mjs.map +2 -2
  348. package/build-module/image/transforms.mjs +9 -3
  349. package/build-module/image/transforms.mjs.map +2 -2
  350. package/build-module/image/use-open-image-media-editor-modal.mjs +5 -25
  351. package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
  352. package/build-module/index.mjs +1 -3
  353. package/build-module/index.mjs.map +2 -2
  354. package/build-module/latest-posts/edit.mjs +1 -1
  355. package/build-module/latest-posts/edit.mjs.map +1 -1
  356. package/build-module/list/edit.mjs +2 -9
  357. package/build-module/list/edit.mjs.map +2 -2
  358. package/build-module/list/ordered-list-settings.mjs +1 -46
  359. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  360. package/build-module/list-item/hooks/use-merge.mjs +48 -25
  361. package/build-module/list-item/hooks/use-merge.mjs.map +2 -2
  362. package/build-module/math/edit.mjs +1 -1
  363. package/build-module/math/index.mjs +1 -1
  364. package/build-module/math/index.mjs.map +1 -1
  365. package/build-module/media-text/constants.mjs +1 -1
  366. package/build-module/media-text/constants.mjs.map +2 -2
  367. package/build-module/media-text/index.mjs +1 -1
  368. package/build-module/media-text/index.mjs.map +2 -2
  369. package/build-module/missing/edit.mjs +2 -2
  370. package/build-module/missing/edit.mjs.map +1 -1
  371. package/build-module/navigation/edit/index.mjs +35 -46
  372. package/build-module/navigation/edit/index.mjs.map +2 -2
  373. package/build-module/navigation/edit/navigation-menu-name-control.mjs +0 -1
  374. package/build-module/navigation/edit/navigation-menu-name-control.mjs.map +2 -2
  375. package/build-module/navigation/edit/navigation-menu-selector.mjs +1 -1
  376. package/build-module/navigation/edit/navigation-menu-selector.mjs.map +2 -2
  377. package/build-module/navigation/edit/placeholder/index.mjs +1 -1
  378. package/build-module/navigation/edit/placeholder/index.mjs.map +2 -2
  379. package/build-module/navigation-link/block.json +1 -1
  380. package/build-module/navigation-link/edit.mjs +1 -2
  381. package/build-module/navigation-link/edit.mjs.map +2 -2
  382. package/build-module/navigation-link/link-ui/page-creator.mjs +0 -1
  383. package/build-module/navigation-link/link-ui/page-creator.mjs.map +2 -2
  384. package/build-module/navigation-link/shared/controls.mjs +0 -2
  385. package/build-module/navigation-link/shared/controls.mjs.map +2 -2
  386. package/build-module/navigation-submenu/block.json +7 -0
  387. package/build-module/navigation-submenu/edit.mjs +3 -2
  388. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  389. package/build-module/page-list/block.json +2 -5
  390. package/build-module/page-list/edit.mjs +1 -11
  391. package/build-module/page-list/edit.mjs.map +2 -2
  392. package/build-module/paragraph/deprecated.mjs +1 -0
  393. package/build-module/paragraph/deprecated.mjs.map +2 -2
  394. package/build-module/paragraph/edit.mjs +12 -2
  395. package/build-module/paragraph/edit.mjs.map +2 -2
  396. package/build-module/playlist/block.json +12 -0
  397. package/build-module/playlist/edit.mjs +27 -1
  398. package/build-module/playlist/edit.mjs.map +2 -2
  399. package/build-module/playlist/save.mjs +8 -1
  400. package/build-module/playlist/save.mjs.map +2 -2
  401. package/build-module/playlist/view.mjs +1 -0
  402. package/build-module/playlist/view.mjs.map +2 -2
  403. package/build-module/playlist-track/edit.mjs +0 -3
  404. package/build-module/playlist-track/edit.mjs.map +2 -2
  405. package/build-module/post-author/edit.mjs +1 -1
  406. package/build-module/post-author/edit.mjs.map +2 -2
  407. package/build-module/post-author/utils.mjs +1 -1
  408. package/build-module/post-author/utils.mjs.map +2 -2
  409. package/build-module/post-comment/edit.mjs +0 -1
  410. package/build-module/post-comment/edit.mjs.map +2 -2
  411. package/build-module/post-date/edit.mjs +2 -2
  412. package/build-module/post-date/edit.mjs.map +2 -2
  413. package/build-module/post-excerpt/edit.mjs +2 -2
  414. package/build-module/post-excerpt/edit.mjs.map +2 -2
  415. package/build-module/post-featured-image/block.json +1 -0
  416. package/build-module/post-featured-image/dimension-controls.mjs +99 -187
  417. package/build-module/post-featured-image/dimension-controls.mjs.map +2 -2
  418. package/build-module/post-featured-image/edit.mjs +47 -18
  419. package/build-module/post-featured-image/edit.mjs.map +2 -2
  420. package/build-module/post-navigation-link/edit.mjs +2 -2
  421. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  422. package/build-module/post-terms/edit.mjs +0 -1
  423. package/build-module/post-terms/edit.mjs.map +2 -2
  424. package/build-module/post-time-to-read/edit.mjs +1 -1
  425. package/build-module/post-time-to-read/edit.mjs.map +1 -1
  426. package/build-module/post-time-to-read/index.mjs +1 -1
  427. package/build-module/post-time-to-read/index.mjs.map +2 -2
  428. package/build-module/post-time-to-read/variations.mjs +2 -2
  429. package/build-module/post-time-to-read/variations.mjs.map +2 -2
  430. package/build-module/post-title/edit.mjs +0 -1
  431. package/build-module/post-title/edit.mjs.map +2 -2
  432. package/build-module/preformatted/edit.mjs +1 -1
  433. package/build-module/preformatted/edit.mjs.map +2 -2
  434. package/build-module/pullquote/block.json +1 -3
  435. package/build-module/pullquote/deprecated.mjs +114 -9
  436. package/build-module/pullquote/deprecated.mjs.map +2 -2
  437. package/build-module/pullquote/edit.mjs +44 -72
  438. package/build-module/pullquote/edit.mjs.map +2 -2
  439. package/build-module/pullquote/save.mjs +5 -16
  440. package/build-module/pullquote/save.mjs.map +2 -2
  441. package/build-module/query/edit/enhanced-pagination-modal.mjs +10 -1
  442. package/build-module/query/edit/enhanced-pagination-modal.mjs.map +2 -2
  443. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs +1 -1
  444. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs.map +1 -1
  445. package/build-module/query/edit/inspector-controls/index.mjs +0 -1
  446. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  447. package/build-module/query/edit/inspector-controls/order-control.mjs +2 -2
  448. package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
  449. package/build-module/query/utils.mjs +2 -2
  450. package/build-module/query/utils.mjs.map +2 -2
  451. package/build-module/query-pagination-next/edit.mjs +2 -2
  452. package/build-module/query-pagination-next/edit.mjs.map +1 -1
  453. package/build-module/query-pagination-previous/edit.mjs +2 -2
  454. package/build-module/query-pagination-previous/edit.mjs.map +1 -1
  455. package/build-module/query-title/edit.mjs +1 -1
  456. package/build-module/query-title/edit.mjs.map +2 -2
  457. package/build-module/query-total/edit.mjs +1 -1
  458. package/build-module/query-total/edit.mjs.map +2 -2
  459. package/build-module/quote/edit.mjs +5 -10
  460. package/build-module/quote/edit.mjs.map +2 -2
  461. package/build-module/quote/index.mjs +1 -1
  462. package/build-module/quote/index.mjs.map +2 -2
  463. package/build-module/read-more/edit.mjs +1 -1
  464. package/build-module/read-more/edit.mjs.map +2 -2
  465. package/build-module/rss/edit.mjs +1 -2
  466. package/build-module/rss/edit.mjs.map +2 -2
  467. package/build-module/search/block.json +4 -0
  468. package/build-module/search/edit.mjs +244 -206
  469. package/build-module/search/edit.mjs.map +2 -2
  470. package/build-module/shortcode/edit.mjs +1 -1
  471. package/build-module/shortcode/edit.mjs.map +2 -2
  472. package/build-module/shortcode/transforms.mjs +2 -2
  473. package/build-module/shortcode/transforms.mjs.map +2 -2
  474. package/build-module/site-logo/edit.mjs +2 -1
  475. package/build-module/site-logo/edit.mjs.map +2 -2
  476. package/build-module/site-tagline/edit.mjs +1 -1
  477. package/build-module/site-tagline/edit.mjs.map +2 -2
  478. package/build-module/site-title/edit.mjs +1 -1
  479. package/build-module/site-title/edit.mjs.map +2 -2
  480. package/build-module/social-link/edit.mjs +0 -3
  481. package/build-module/social-link/edit.mjs.map +2 -2
  482. package/build-module/tab-list/block.json +33 -20
  483. package/build-module/tab-list/edit.mjs +128 -15
  484. package/build-module/tab-list/edit.mjs.map +2 -2
  485. package/build-module/tab-list/init.mjs +7 -0
  486. package/build-module/tab-list/init.mjs.map +7 -0
  487. package/build-module/tab-list/save.mjs +29 -4
  488. package/build-module/tab-list/save.mjs.map +2 -2
  489. package/build-module/tab-panel/add-tab-toolbar-control.mjs +19 -8
  490. package/build-module/tab-panel/add-tab-toolbar-control.mjs.map +2 -2
  491. package/build-module/tab-panel/block.json +2 -6
  492. package/build-module/tab-panel/edit.mjs +1 -10
  493. package/build-module/tab-panel/edit.mjs.map +2 -2
  494. package/build-module/tab-panel/remove-tab-toolbar-control.mjs +9 -14
  495. package/build-module/tab-panel/remove-tab-toolbar-control.mjs.map +2 -2
  496. package/build-module/tab-panel/save.mjs +2 -1
  497. package/build-module/tab-panel/save.mjs.map +2 -2
  498. package/build-module/tab-panels/block.json +2 -28
  499. package/build-module/tab-panels/init.mjs +7 -0
  500. package/build-module/tab-panels/init.mjs.map +7 -0
  501. package/build-module/table/edit.mjs +0 -2
  502. package/build-module/table/edit.mjs.map +2 -2
  503. package/build-module/table/index.mjs +1 -1
  504. package/build-module/table/index.mjs.map +2 -2
  505. package/build-module/tabs/block.json +3 -17
  506. package/build-module/tabs/edit.mjs +7 -21
  507. package/build-module/tabs/edit.mjs.map +2 -2
  508. package/build-module/tabs/index.mjs +6 -10
  509. package/build-module/tabs/index.mjs.map +2 -2
  510. package/build-module/tabs/use-tab-list-items-sync.mjs +32 -0
  511. package/build-module/tabs/use-tab-list-items-sync.mjs.map +7 -0
  512. package/build-module/tabs/view.mjs +22 -104
  513. package/build-module/tabs/view.mjs.map +2 -2
  514. package/build-module/template-part/edit/advanced-controls.mjs +0 -1
  515. package/build-module/template-part/edit/advanced-controls.mjs.map +2 -2
  516. package/build-module/template-part/edit/title-modal.mjs +1 -2
  517. package/build-module/template-part/edit/title-modal.mjs.map +2 -2
  518. package/build-module/terms-query/edit/inspector-controls/order-control.mjs +2 -2
  519. package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
  520. package/build-module/utils/style-state.mjs +132 -0
  521. package/build-module/utils/style-state.mjs.map +7 -0
  522. package/build-module/utils/waveform-player.mjs +44 -11
  523. package/build-module/utils/waveform-player.mjs.map +2 -2
  524. package/build-module/utils/waveform-utils.mjs +6 -4
  525. package/build-module/utils/waveform-utils.mjs.map +2 -2
  526. package/build-module/verse/edit.mjs +1 -1
  527. package/build-module/verse/edit.mjs.map +2 -2
  528. package/build-module/video/edit-common-settings.mjs +4 -7
  529. package/build-module/video/edit-common-settings.mjs.map +2 -2
  530. package/build-module/video/edit.mjs +3 -3
  531. package/build-module/video/edit.mjs.map +2 -2
  532. package/build-module/video/tracks-editor.mjs +0 -2
  533. package/build-module/video/tracks-editor.mjs.map +2 -2
  534. package/build-style/comment-template/style-rtl.css +1 -0
  535. package/build-style/comment-template/style.css +1 -0
  536. package/build-style/common-rtl.css +30 -10
  537. package/build-style/common.css +30 -10
  538. package/build-style/cover/style-rtl.css +2 -1
  539. package/build-style/cover/style.css +2 -1
  540. package/build-style/editor-rtl.css +22 -30
  541. package/build-style/editor.css +22 -30
  542. package/build-style/form-input/style-rtl.css +2 -0
  543. package/build-style/form-input/style.css +2 -0
  544. package/build-style/gallery/style-rtl.css +4 -2
  545. package/build-style/gallery/style.css +4 -2
  546. package/build-style/icon/style-rtl.css +9 -0
  547. package/build-style/icon/style.css +9 -0
  548. package/build-style/media-text/style-rtl.css +2 -1
  549. package/build-style/media-text/style.css +2 -1
  550. package/build-style/playlist/style-rtl.css +3 -0
  551. package/build-style/playlist/style.css +3 -0
  552. package/build-style/query/editor-rtl.css +8 -4
  553. package/build-style/query/editor.css +8 -4
  554. package/build-style/read-more/style-rtl.css +1 -0
  555. package/build-style/read-more/style.css +1 -0
  556. package/build-style/reset-rtl.css +3 -1
  557. package/build-style/reset.css +3 -1
  558. package/build-style/search/style-rtl.css +3 -1
  559. package/build-style/search/style.css +3 -1
  560. package/build-style/site-logo/editor-rtl.css +2 -1
  561. package/build-style/site-logo/editor.css +2 -1
  562. package/build-style/style-rtl.css +64 -41
  563. package/build-style/style.css +64 -41
  564. package/build-style/{tab → tab-list}/style-rtl.css +5 -3
  565. package/build-style/{tab → tab-list}/style.css +5 -3
  566. package/build-style/tab-panel/style-rtl.css +0 -17
  567. package/build-style/tab-panel/style.css +0 -17
  568. package/build-style/template-part/editor-rtl.css +8 -4
  569. package/build-style/template-part/editor.css +8 -4
  570. package/build-style/video/style-rtl.css +2 -1
  571. package/build-style/video/style.css +2 -1
  572. package/package.json +55 -48
  573. package/src/accordion/README.md +97 -0
  574. package/src/accordion-heading/README.md +81 -0
  575. package/src/accordion-item/README.md +85 -0
  576. package/src/accordion-panel/README.md +74 -0
  577. package/src/archives/README.md +56 -0
  578. package/src/audio/README.md +55 -0
  579. package/src/audio/edit.js +5 -9
  580. package/src/avatar/README.md +74 -0
  581. package/src/avatar/index.php +2 -2
  582. package/src/block/README.md +56 -0
  583. package/src/block/index.php +2 -26
  584. package/src/breadcrumbs/README.md +67 -0
  585. package/src/breadcrumbs/edit.js +0 -1
  586. package/src/button/README.md +93 -0
  587. package/src/button/edit.js +0 -1
  588. package/src/buttons/README.md +80 -0
  589. package/src/calendar/README.md +51 -0
  590. package/src/categories/README.md +69 -0
  591. package/src/code/README.md +55 -0
  592. package/src/column/README.md +72 -0
  593. package/src/columns/README.md +90 -0
  594. package/src/columns/test/transforms.js +164 -0
  595. package/src/columns/transforms.js +74 -0
  596. package/src/comment-author-avatar/README.md +63 -0
  597. package/src/comment-author-avatar/index.php +3 -3
  598. package/src/comment-author-name/README.md +67 -0
  599. package/src/comment-author-name/index.php +1 -1
  600. package/src/comment-content/README.md +61 -0
  601. package/src/comment-date/README.md +67 -0
  602. package/src/comment-date/index.php +1 -1
  603. package/src/comment-edit-link/README.md +67 -0
  604. package/src/comment-reply-link/README.md +63 -0
  605. package/src/comment-template/README.md +60 -0
  606. package/src/comments/README.md +88 -0
  607. package/src/comments-pagination/README.md +77 -0
  608. package/src/comments-pagination-next/README.md +64 -0
  609. package/src/comments-pagination-numbers/README.md +64 -0
  610. package/src/comments-pagination-previous/README.md +64 -0
  611. package/src/comments-title/README.md +70 -0
  612. package/src/common.scss +63 -10
  613. package/src/cover/README.md +111 -0
  614. package/src/cover/edit/block-controls.js +14 -2
  615. package/src/cover/edit/embed-video-url-input.js +0 -1
  616. package/src/cover/edit/index.js +86 -0
  617. package/src/cover/edit/inspector-controls.js +124 -54
  618. package/src/cover/test/edit.js +51 -2
  619. package/src/details/README.md +65 -0
  620. package/src/details/edit.js +0 -1
  621. package/src/editor.scss +0 -2
  622. package/src/embed/README.md +56 -0
  623. package/src/file/README.md +60 -0
  624. package/src/file/edit.js +3 -16
  625. package/src/file/index.js +2 -0
  626. package/src/file/transforms.js +12 -31
  627. package/src/file/variations.js +17 -0
  628. package/src/footnotes/README.md +64 -0
  629. package/src/form/README.md +90 -0
  630. package/src/form/edit.js +0 -2
  631. package/src/form-input/README.md +74 -0
  632. package/src/form-input/edit.js +0 -2
  633. package/src/form-submission-notification/README.md +50 -0
  634. package/src/form-submit-button/README.md +54 -0
  635. package/src/freeform/README.md +49 -0
  636. package/src/freeform/edit.js +6 -29
  637. package/src/freeform/migration-notice.js +2 -4
  638. package/src/gallery/README.md +115 -0
  639. package/src/gallery/edit.js +214 -351
  640. package/src/gallery/test/transforms.js +155 -0
  641. package/src/gallery/transforms.js +47 -0
  642. package/src/group/README.md +80 -0
  643. package/src/heading/README.md +60 -0
  644. package/src/heading/edit.js +1 -2
  645. package/src/home-link/README.md +66 -0
  646. package/src/home-link/edit.js +0 -1
  647. package/src/home-link/index.php +3 -15
  648. package/src/html/README.md +48 -0
  649. package/src/html/modal.js +3 -0
  650. package/src/icon/README.md +66 -0
  651. package/src/icon/block.json +12 -0
  652. package/src/icon/edit.js +85 -37
  653. package/src/icon/index.js +3 -1
  654. package/src/icon/index.php +23 -0
  655. package/src/icon/style.scss +12 -0
  656. package/src/icon/variations.js +9 -0
  657. package/src/image/README.md +103 -0
  658. package/src/image/block.json +1 -0
  659. package/src/image/edit.js +8 -3
  660. package/src/image/image.js +120 -56
  661. package/src/image/index.php +4 -5
  662. package/src/image/test/use-open-image-media-editor-modal.js +20 -26
  663. package/src/image/transforms.js +34 -8
  664. package/src/image/use-open-image-media-editor-modal.js +24 -42
  665. package/src/index.js +4 -11
  666. package/src/latest-comments/README.md +57 -0
  667. package/src/latest-posts/README.md +71 -0
  668. package/src/list/README.md +70 -0
  669. package/src/list/edit.js +2 -9
  670. package/src/list/ordered-list-settings.js +46 -93
  671. package/src/list-item/README.md +71 -0
  672. package/src/list-item/hooks/use-merge.js +53 -46
  673. package/src/loginout/README.md +56 -0
  674. package/src/math/README.md +50 -0
  675. package/src/media-text/README.md +92 -0
  676. package/src/missing/README.md +55 -0
  677. package/src/more/README.md +49 -0
  678. package/src/navigation/README.md +115 -0
  679. package/src/navigation/edit/index.js +35 -46
  680. package/src/navigation/edit/navigation-menu-name-control.js +0 -1
  681. package/src/navigation/index.php +58 -0
  682. package/src/navigation-link/README.md +93 -0
  683. package/src/navigation-link/block.json +1 -1
  684. package/src/navigation-link/edit.js +0 -1
  685. package/src/navigation-link/index.php +1 -15
  686. package/src/navigation-link/link-ui/page-creator.js +0 -1
  687. package/src/navigation-link/shared/controls.js +0 -2
  688. package/src/navigation-link/test/__snapshots__/hooks.js.snap +5 -0
  689. package/src/navigation-overlay-close/README.md +48 -0
  690. package/src/navigation-submenu/README.md +89 -0
  691. package/src/navigation-submenu/block.json +7 -0
  692. package/src/navigation-submenu/edit.js +1 -0
  693. package/src/navigation-submenu/index.php +1 -17
  694. package/src/nextpage/README.md +50 -0
  695. package/src/page-list/README.md +84 -0
  696. package/src/page-list/block.json +2 -5
  697. package/src/page-list/edit.js +0 -11
  698. package/src/page-list/index.php +4 -16
  699. package/src/page-list-item/README.md +77 -0
  700. package/src/paragraph/README.md +70 -0
  701. package/src/paragraph/deprecated.js +1 -0
  702. package/src/paragraph/edit.js +13 -1
  703. package/src/pattern/README.md +45 -0
  704. package/src/playlist/README.md +86 -0
  705. package/src/playlist/block.json +12 -0
  706. package/src/playlist/edit.js +27 -0
  707. package/src/playlist/index.php +10 -3
  708. package/src/playlist/save.js +9 -1
  709. package/src/playlist/style.scss +7 -0
  710. package/src/playlist/view.js +1 -0
  711. package/src/playlist-track/README.md +69 -0
  712. package/src/playlist-track/edit.js +0 -3
  713. package/src/post-author/README.md +78 -0
  714. package/src/post-author-biography/README.md +59 -0
  715. package/src/post-author-name/README.md +63 -0
  716. package/src/post-author-name/index.php +1 -1
  717. package/src/post-comment/README.md +61 -0
  718. package/src/post-comment/edit.js +0 -1
  719. package/src/post-comments-count/README.md +58 -0
  720. package/src/post-comments-form/README.md +59 -0
  721. package/src/post-comments-link/README.md +60 -0
  722. package/src/post-content/README.md +71 -0
  723. package/src/post-date/README.md +65 -0
  724. package/src/post-date/edit.js +2 -2
  725. package/src/post-date/index.php +1 -1
  726. package/src/post-excerpt/README.md +66 -0
  727. package/src/post-featured-image/README.md +86 -0
  728. package/src/post-featured-image/block.json +1 -0
  729. package/src/post-featured-image/dimension-controls.js +105 -184
  730. package/src/post-featured-image/edit.js +53 -22
  731. package/src/post-featured-image/index.php +25 -23
  732. package/src/post-navigation-link/README.md +63 -0
  733. package/src/post-template/README.md +71 -0
  734. package/src/post-terms/README.md +65 -0
  735. package/src/post-terms/edit.js +0 -1
  736. package/src/post-time-to-read/README.md +63 -0
  737. package/src/post-time-to-read/index.js +1 -1
  738. package/src/post-time-to-read/variations.js +2 -2
  739. package/src/post-title/README.md +69 -0
  740. package/src/post-title/edit.js +0 -1
  741. package/src/preformatted/README.md +50 -0
  742. package/src/pullquote/README.md +64 -0
  743. package/src/pullquote/block.json +1 -3
  744. package/src/pullquote/deprecated.js +121 -9
  745. package/src/pullquote/edit.js +8 -38
  746. package/src/pullquote/save.js +2 -13
  747. package/src/query/README.md +64 -0
  748. package/src/query/edit/enhanced-pagination-modal.js +11 -1
  749. package/src/query/edit/inspector-controls/index.js +0 -1
  750. package/src/query-no-results/README.md +65 -0
  751. package/src/query-pagination/README.md +79 -0
  752. package/src/query-pagination-next/README.md +67 -0
  753. package/src/query-pagination-numbers/README.md +65 -0
  754. package/src/query-pagination-previous/README.md +67 -0
  755. package/src/query-title/README.md +65 -0
  756. package/src/query-total/README.md +66 -0
  757. package/src/quote/README.md +75 -0
  758. package/src/quote/edit.js +3 -9
  759. package/src/read-more/README.md +61 -0
  760. package/src/read-more/index.php +2 -2
  761. package/src/rss/README.md +62 -0
  762. package/src/rss/edit.js +0 -1
  763. package/src/search/README.md +67 -0
  764. package/src/search/block.json +4 -0
  765. package/src/search/edit.js +106 -55
  766. package/src/search/index.php +25 -1
  767. package/src/separator/README.md +62 -0
  768. package/src/shortcode/README.md +44 -0
  769. package/src/shortcode/transforms.js +2 -2
  770. package/src/site-logo/README.md +72 -0
  771. package/src/site-logo/edit.js +3 -1
  772. package/src/site-tagline/README.md +56 -0
  773. package/src/site-title/README.md +57 -0
  774. package/src/social-link/README.md +64 -0
  775. package/src/social-link/edit.js +0 -3
  776. package/src/social-links/README.md +98 -0
  777. package/src/spacer/README.md +53 -0
  778. package/src/style.scss +1 -2
  779. package/src/tab-list/README.md +81 -0
  780. package/src/tab-list/block.json +33 -20
  781. package/src/tab-list/edit.js +153 -15
  782. package/src/tab-list/index.php +24 -33
  783. package/src/tab-list/init.js +6 -0
  784. package/src/tab-list/save.js +39 -4
  785. package/src/{tab → tab-list}/style.scss +2 -3
  786. package/src/tab-panel/README.md +72 -0
  787. package/src/tab-panel/add-tab-toolbar-control.js +24 -11
  788. package/src/tab-panel/block.json +2 -6
  789. package/src/tab-panel/edit.js +1 -14
  790. package/src/tab-panel/index.php +2 -25
  791. package/src/tab-panel/remove-tab-toolbar-control.js +10 -14
  792. package/src/tab-panel/save.js +1 -0
  793. package/src/tab-panel/style.scss +0 -17
  794. package/src/tab-panels/README.md +59 -0
  795. package/src/tab-panels/block.json +2 -28
  796. package/src/tab-panels/init.js +6 -0
  797. package/src/table/README.md +71 -0
  798. package/src/table/edit.js +0 -2
  799. package/src/table-of-contents/README.md +61 -0
  800. package/src/tabs/README.md +77 -0
  801. package/src/tabs/block.json +3 -17
  802. package/src/tabs/edit.js +8 -19
  803. package/src/tabs/index.js +6 -10
  804. package/src/tabs/index.php +12 -32
  805. package/src/tabs/use-tab-list-items-sync.js +49 -0
  806. package/src/tabs/view.js +22 -110
  807. package/src/tag-cloud/README.md +62 -0
  808. package/src/template-part/README.md +48 -0
  809. package/src/template-part/edit/advanced-controls.js +0 -1
  810. package/src/template-part/edit/title-modal.js +0 -1
  811. package/src/term-count/README.md +59 -0
  812. package/src/term-description/README.md +60 -0
  813. package/src/term-name/README.md +65 -0
  814. package/src/term-template/README.md +65 -0
  815. package/src/terms-query/README.md +58 -0
  816. package/src/text-columns/README.md +51 -0
  817. package/src/utils/style-state.js +151 -0
  818. package/src/utils/test/style-state.js +307 -0
  819. package/src/utils/test/waveform-player.js +254 -0
  820. package/src/utils/waveform-player.js +90 -18
  821. package/src/utils/waveform-utils.js +15 -11
  822. package/src/verse/README.md +58 -0
  823. package/src/video/README.md +58 -0
  824. package/src/video/edit-common-settings.js +4 -7
  825. package/src/video/edit.js +9 -16
  826. package/src/video/tracks-editor.js +0 -2
  827. package/babel-plugin.cjs +0 -150
  828. package/build/freeform/convert-to-blocks-button.cjs.map +0 -7
  829. package/build/list-item/utils.cjs +0 -57
  830. package/build/list-item/utils.cjs.map +0 -7
  831. package/build/tab/block.json +0 -56
  832. package/build/tab/controls.cjs +0 -46
  833. package/build/tab/controls.cjs.map +0 -7
  834. package/build/tab/edit.cjs +0 -135
  835. package/build/tab/edit.cjs.map +0 -7
  836. package/build/tab/index.cjs +0 -58
  837. package/build/tab/index.cjs.map +0 -7
  838. package/build/tab/save.cjs.map +0 -7
  839. package/build/tabs/use-tab-list-sync.cjs +0 -190
  840. package/build/tabs/use-tab-list-sync.cjs.map +0 -7
  841. package/build-module/freeform/convert-to-blocks-button.mjs +0 -19
  842. package/build-module/freeform/convert-to-blocks-button.mjs.map +0 -7
  843. package/build-module/list-item/utils.mjs +0 -32
  844. package/build-module/list-item/utils.mjs.map +0 -7
  845. package/build-module/tab/block.json +0 -56
  846. package/build-module/tab/controls.mjs +0 -15
  847. package/build-module/tab/controls.mjs.map +0 -7
  848. package/build-module/tab/edit.mjs +0 -108
  849. package/build-module/tab/edit.mjs.map +0 -7
  850. package/build-module/tab/index.mjs +0 -20
  851. package/build-module/tab/index.mjs.map +0 -7
  852. package/build-module/tab/save.mjs +0 -14
  853. package/build-module/tab/save.mjs.map +0 -7
  854. package/build-module/tabs/use-tab-list-sync.mjs +0 -169
  855. package/build-module/tabs/use-tab-list-sync.mjs.map +0 -7
  856. package/build-style/tab/editor-rtl.css +0 -11
  857. package/build-style/tab/editor.css +0 -11
  858. package/build-style/tab-list/editor-rtl.css +0 -6
  859. package/build-style/tab-list/editor.css +0 -6
  860. package/build-style/tab-panels/style-rtl.css +0 -4
  861. package/build-style/tab-panels/style.css +0 -4
  862. package/src/audio/edit.native.js +0 -250
  863. package/src/audio/style.native.scss +0 -13
  864. package/src/audio/test/__snapshots__/edit.native.js.snap +0 -546
  865. package/src/audio/test/__snapshots__/transforms.native.js.snap +0 -25
  866. package/src/audio/test/edit.native.js +0 -132
  867. package/src/audio/test/transforms.native.js +0 -43
  868. package/src/audio/transforms.native.js +0 -12
  869. package/src/block/edit-title.native.js +0 -67
  870. package/src/block/edit.native.js +0 -247
  871. package/src/block/editor.native.scss +0 -125
  872. package/src/block/test/__snapshots__/transforms.native.js.snap +0 -15
  873. package/src/block/test/edit.native.js +0 -262
  874. package/src/block/test/transforms.native.js +0 -40
  875. package/src/button/color-background.native.js +0 -41
  876. package/src/button/edit.native.js +0 -567
  877. package/src/button/editor.native.scss +0 -70
  878. package/src/button/rich-text.android.scss +0 -6
  879. package/src/button/rich-text.ios.scss +0 -6
  880. package/src/buttons/edit.native.js +0 -157
  881. package/src/buttons/editor.native.scss +0 -11
  882. package/src/buttons/test/__snapshots__/edit.native.js.snap +0 -99
  883. package/src/buttons/test/__snapshots__/transforms.native.js.snap +0 -31
  884. package/src/buttons/test/edit.native.js +0 -485
  885. package/src/buttons/test/transforms.native.js +0 -48
  886. package/src/buttons/transforms.native.js +0 -12
  887. package/src/code/edit.native.js +0 -70
  888. package/src/code/test/__snapshots__/edit.native.js.snap +0 -13
  889. package/src/code/test/edit.native.js +0 -65
  890. package/src/code/theme.native.scss +0 -22
  891. package/src/code/transforms.native.js +0 -12
  892. package/src/column/column-preview.native.js +0 -58
  893. package/src/column/edit.native.js +0 -273
  894. package/src/column/editor.native.scss +0 -75
  895. package/src/columns/columnCalculations.native.js +0 -178
  896. package/src/columns/edit.native.js +0 -507
  897. package/src/columns/editor.native.scss +0 -17
  898. package/src/columns/test/__snapshots__/edit.native.js.snap +0 -305
  899. package/src/columns/test/__snapshots__/transforms.native.js.snap +0 -61
  900. package/src/columns/test/edit.native.js +0 -496
  901. package/src/columns/test/transforms.native.js +0 -89
  902. package/src/columns/transforms.native.js +0 -12
  903. package/src/cover/controls.native.js +0 -307
  904. package/src/cover/edit.native.js +0 -708
  905. package/src/cover/focal-point-settings-button.native.js +0 -53
  906. package/src/cover/overlay-color-settings.native.js +0 -106
  907. package/src/cover/style.native.scss +0 -220
  908. package/src/cover/test/__snapshots__/edit.native.js.snap +0 -105
  909. package/src/cover/test/__snapshots__/transforms.native.js.snap +0 -73
  910. package/src/cover/test/edit.native.js +0 -701
  911. package/src/cover/test/transforms.native.js +0 -116
  912. package/src/cover/transforms.native.js +0 -12
  913. package/src/cover/use-cover-is-dark.native.js +0 -51
  914. package/src/embed/edit.native.js +0 -345
  915. package/src/embed/embed-controls.native.js +0 -65
  916. package/src/embed/embed-link-settings.native.js +0 -99
  917. package/src/embed/embed-loading.native.js +0 -29
  918. package/src/embed/embed-no-preview.native.js +0 -230
  919. package/src/embed/embed-placeholder.native.js +0 -178
  920. package/src/embed/embed-preview.native.js +0 -157
  921. package/src/embed/styles.native.scss +0 -196
  922. package/src/embed/test/__snapshots__/index.native.js.snap +0 -191
  923. package/src/embed/test/__snapshots__/transforms.native.js.snap +0 -23
  924. package/src/embed/test/index.native.js +0 -1125
  925. package/src/embed/test/transforms.native.js +0 -44
  926. package/src/embed/transforms.native.js +0 -12
  927. package/src/embed/wp-embed-preview.native.js +0 -80
  928. package/src/file/edit.native.js +0 -605
  929. package/src/file/style.native.scss +0 -79
  930. package/src/file/test/__snapshots__/edit.native.js.snap +0 -580
  931. package/src/file/test/__snapshots__/transforms.native.js.snap +0 -19
  932. package/src/file/test/edit.native.js +0 -93
  933. package/src/file/test/transforms.native.js +0 -43
  934. package/src/file/transforms.native.js +0 -12
  935. package/src/freeform/convert-to-blocks-button.js +0 -18
  936. package/src/freeform/edit.native.js +0 -13
  937. package/src/freeform/test/__snapshots__/index.native.js.snap +0 -7
  938. package/src/freeform/test/__snapshots__/transforms.native.js.snap +0 -19
  939. package/src/freeform/test/index.native.js +0 -57
  940. package/src/freeform/test/transforms.native.js +0 -39
  941. package/src/gallery/gallery-styles.native.scss +0 -8
  942. package/src/gallery/gallery.native.js +0 -124
  943. package/src/gallery/styles.native.scss +0 -7
  944. package/src/gallery/test/__snapshots__/index.native.js.snap +0 -177
  945. package/src/gallery/test/__snapshots__/transforms.native.js.snap +0 -53
  946. package/src/gallery/test/helpers.native.js +0 -106
  947. package/src/gallery/test/index.native.js +0 -700
  948. package/src/gallery/test/transforms.native.js +0 -53
  949. package/src/gallery/test/use-get-media.native.js +0 -24
  950. package/src/gallery/transforms.native.js +0 -12
  951. package/src/gallery/use-get-media.native.js +0 -49
  952. package/src/group/edit.native.js +0 -137
  953. package/src/group/editor.native.scss +0 -56
  954. package/src/group/test/__snapshots__/edit.native.js.snap +0 -19
  955. package/src/group/test/__snapshots__/transforms.native.js.snap +0 -35
  956. package/src/group/test/edit.native.js +0 -100
  957. package/src/group/test/transforms.native.js +0 -73
  958. package/src/heading/edit.native.js +0 -159
  959. package/src/heading/test/__snapshots__/index.native.js.snap +0 -43
  960. package/src/heading/test/__snapshots__/transforms.native.js.snap +0 -47
  961. package/src/heading/test/index.native.js +0 -257
  962. package/src/heading/test/transforms.native.js +0 -46
  963. package/src/heading/transforms.native.js +0 -12
  964. package/src/html/transforms.native.js +0 -11
  965. package/src/image/edit.native.js +0 -959
  966. package/src/image/styles.native.scss +0 -70
  967. package/src/image/test/__snapshots__/transforms.native.js.snap +0 -49
  968. package/src/image/test/edit.native.js +0 -459
  969. package/src/image/test/transforms.native.js +0 -49
  970. package/src/image/transforms.native.js +0 -12
  971. package/src/index.native.js +0 -274
  972. package/src/latest-posts/edit.native.js +0 -294
  973. package/src/latest-posts/style.native.scss +0 -47
  974. package/src/latest-posts/test/__snapshots__/edit.native.js.snap +0 -3
  975. package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +0 -15
  976. package/src/latest-posts/test/edit.native.js +0 -49
  977. package/src/latest-posts/test/transforms.native.js +0 -61
  978. package/src/list/tag-name.native.js +0 -12
  979. package/src/list/test/__snapshots__/edit.native.js.snap +0 -121
  980. package/src/list/test/__snapshots__/transforms.native.js.snap +0 -85
  981. package/src/list/test/edit.native.js +0 -602
  982. package/src/list/test/transforms.native.js +0 -56
  983. package/src/list/transforms.native.js +0 -12
  984. package/src/list-item/edit.native.js +0 -175
  985. package/src/list-item/hooks/use-enter.native.js +0 -81
  986. package/src/list-item/icons.native.js +0 -34
  987. package/src/list-item/list-style-type.native.js +0 -146
  988. package/src/list-item/style.native.scss +0 -57
  989. package/src/list-item/utils.js +0 -34
  990. package/src/media-text/edit.native.js +0 -417
  991. package/src/media-text/icon-retry.native.js +0 -11
  992. package/src/media-text/media-container.native.js +0 -393
  993. package/src/media-text/style.native.scss +0 -191
  994. package/src/media-text/test/__snapshots__/transforms.native.js.snap +0 -73
  995. package/src/media-text/test/edit.native.js +0 -58
  996. package/src/media-text/test/transforms.native.js +0 -116
  997. package/src/media-text/transforms.native.js +0 -12
  998. package/src/missing/edit.native.js +0 -294
  999. package/src/missing/style.native.scss +0 -79
  1000. package/src/missing/test/__snapshots__/edit.native.js.snap +0 -110
  1001. package/src/missing/test/edit-integration.native.js +0 -168
  1002. package/src/missing/test/edit.native.js +0 -81
  1003. package/src/more/edit.native.js +0 -36
  1004. package/src/more/editor.native.scss +0 -21
  1005. package/src/more/test/__snapshots__/edit.native.js.snap +0 -7
  1006. package/src/more/test/__snapshots__/transforms.native.js.snap +0 -19
  1007. package/src/more/test/edit.native.js +0 -41
  1008. package/src/more/test/transforms.native.js +0 -42
  1009. package/src/more/transforms.native.js +0 -12
  1010. package/src/navigation-link/shared/build-css-font-sizes.php +0 -43
  1011. package/src/nextpage/edit.native.js +0 -58
  1012. package/src/nextpage/editor.native.scss +0 -21
  1013. package/src/nextpage/test/__snapshots__/transforms.native.js.snap +0 -19
  1014. package/src/nextpage/test/transforms.native.js +0 -42
  1015. package/src/nextpage/transforms.native.js +0 -12
  1016. package/src/paragraph/edit.native.js +0 -116
  1017. package/src/paragraph/test/__snapshots__/edit.native.js.snap +0 -88
  1018. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +0 -65
  1019. package/src/paragraph/test/edit.native.js +0 -999
  1020. package/src/paragraph/test/transforms.native.js +0 -51
  1021. package/src/paragraph/transforms.native.js +0 -12
  1022. package/src/preformatted/edit.native.js +0 -48
  1023. package/src/preformatted/styles.native.scss +0 -30
  1024. package/src/preformatted/test/__snapshots__/edit.native.js.snap +0 -95
  1025. package/src/preformatted/test/__snapshots__/transforms.native.js.snap +0 -37
  1026. package/src/preformatted/test/edit.native.js +0 -111
  1027. package/src/preformatted/test/transforms.native.js +0 -47
  1028. package/src/preformatted/transforms.native.js +0 -12
  1029. package/src/pullquote/blockquote.native.js +0 -39
  1030. package/src/pullquote/blockquote.native.scss +0 -8
  1031. package/src/pullquote/edit.native.js +0 -128
  1032. package/src/pullquote/figure.native.js +0 -33
  1033. package/src/pullquote/figure.native.scss +0 -16
  1034. package/src/pullquote/test/__snapshots__/transforms.native.js.snap +0 -47
  1035. package/src/pullquote/test/edit.native.js +0 -73
  1036. package/src/pullquote/test/transforms.native.js +0 -46
  1037. package/src/pullquote/transforms.native.js +0 -12
  1038. package/src/quote/test/__snapshots__/transforms.native.js.snap +0 -49
  1039. package/src/quote/test/edit.native.js +0 -94
  1040. package/src/quote/test/transforms.native.js +0 -69
  1041. package/src/quote/transforms.native.js +0 -12
  1042. package/src/search/edit.native.js +0 -486
  1043. package/src/search/style.native.scss +0 -99
  1044. package/src/search/test/__snapshots__/edit.native.js.snap +0 -827
  1045. package/src/search/test/__snapshots__/transforms.native.js.snap +0 -15
  1046. package/src/search/test/edit.native.js +0 -170
  1047. package/src/search/test/transforms.native.js +0 -40
  1048. package/src/separator/separator-settings.native.js +0 -3
  1049. package/src/separator/test/__snapshots__/edit.native.js.snap +0 -7
  1050. package/src/separator/test/__snapshots__/transforms.native.js.snap +0 -25
  1051. package/src/separator/test/edit.native.js +0 -41
  1052. package/src/separator/test/transforms.native.js +0 -42
  1053. package/src/separator/transforms.native.js +0 -12
  1054. package/src/shortcode/edit.native.js +0 -77
  1055. package/src/shortcode/style.native.scss +0 -44
  1056. package/src/shortcode/test/__snapshots__/edit.native.js.snap +0 -9
  1057. package/src/shortcode/test/__snapshots__/transforms.native.js.snap +0 -19
  1058. package/src/shortcode/test/edit.native.js +0 -70
  1059. package/src/shortcode/test/transforms.native.js +0 -42
  1060. package/src/shortcode/transforms.native.js +0 -12
  1061. package/src/social-link/edit.native.js +0 -219
  1062. package/src/social-link/editor.native.scss +0 -18
  1063. package/src/social-links/edit.native.js +0 -147
  1064. package/src/social-links/editor.native.scss +0 -25
  1065. package/src/social-links/test/__snapshots__/edit.native.js.snap +0 -57
  1066. package/src/social-links/test/__snapshots__/transforms.native.js.snap +0 -31
  1067. package/src/social-links/test/edit.native.js +0 -266
  1068. package/src/social-links/test/transforms.native.js +0 -53
  1069. package/src/spacer/controls.native.js +0 -86
  1070. package/src/spacer/edit.native.js +0 -110
  1071. package/src/spacer/editor.native.scss +0 -18
  1072. package/src/spacer/save.native.js +0 -18
  1073. package/src/spacer/test/__snapshots__/index.native.js.snap +0 -43
  1074. package/src/spacer/test/__snapshots__/transforms.native.js.snap +0 -25
  1075. package/src/spacer/test/index.native.js +0 -257
  1076. package/src/spacer/test/transforms.native.js +0 -42
  1077. package/src/tab/block.json +0 -56
  1078. package/src/tab/controls.js +0 -19
  1079. package/src/tab/edit.js +0 -141
  1080. package/src/tab/editor.scss +0 -14
  1081. package/src/tab/index.js +0 -24
  1082. package/src/tab/index.php +0 -70
  1083. package/src/tab/save.js +0 -13
  1084. package/src/tab-list/editor.scss +0 -10
  1085. package/src/tab-panels/style.scss +0 -4
  1086. package/src/table/transforms.native.js +0 -11
  1087. package/src/tabs/use-tab-list-sync.js +0 -237
  1088. package/src/text-columns/transforms.native.js +0 -12
  1089. package/src/utils/init-block.native.js +0 -40
  1090. package/src/utils/transformation-categories.native.js +0 -47
  1091. package/src/verse/test/__snapshots__/edit.native.js.snap +0 -13
  1092. package/src/verse/test/__snapshots__/transforms.native.js.snap +0 -31
  1093. package/src/verse/test/edit.native.js +0 -118
  1094. package/src/verse/test/transforms.native.js +0 -46
  1095. package/src/verse/transforms.native.js +0 -12
  1096. package/src/video/edit.native.js +0 -406
  1097. package/src/video/icon-retry.native.js +0 -11
  1098. package/src/video/style.native.scss +0 -81
  1099. package/src/video/test/__snapshots__/transforms.native.js.snap +0 -41
  1100. package/src/video/test/edit.native.js +0 -53
  1101. package/src/video/test/transforms.native.js +0 -49
  1102. package/src/video/transforms.native.js +0 -12
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/paragraph/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSettings,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { formatLTR } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\nimport useDeprecatedAlign from './deprecated-attributes';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ formatLTR }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction hasDropCapDisabled( align ) {\n\treturn align === ( isRTL() ? 'left' : 'right' ) || align === 'center';\n}\n\nfunction DropCapControl( { clientId, attributes, setAttributes, name } ) {\n\t// Please do not add a useSelect call to the paragraph block unconditionally.\n\t// Every useSelect added to a (frequently used) block will degrade load\n\t// and type performance. By moving it within InspectorControls, the subscription is\n\t// now only added for the selected block(s).\n\tconst [ isDropCapFeatureEnabled ] = useSettings( 'typography.dropCap' );\n\n\tif ( ! isDropCapFeatureEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst { style, dropCap } = attributes;\n\tconst textAlign = style?.typography?.textAlign;\n\n\tlet helpText;\n\tif ( hasDropCapDisabled( textAlign ) ) {\n\t\thelpText = __( 'Not available for aligned text.' );\n\t} else if ( dropCap ) {\n\t\thelpText = __( 'Showing large initial letter.' );\n\t} else {\n\t\thelpText = __( 'Show a large initial letter.' );\n\t}\n\n\tconst isDropCapControlEnabledByDefault = getBlockSupport(\n\t\tname,\n\t\t'typography.defaultControls.dropCap',\n\t\tfalse\n\t);\n\n\treturn (\n\t\t<InspectorControls group=\"typography\">\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\tisShownByDefault={ isDropCapControlEnabledByDefault }\n\t\t\t\tonDeselect={ () => setAttributes( { dropCap: false } ) }\n\t\t\t\tresetAllFilter={ () => ( { dropCap: false } ) }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\tonChange={ () => setAttributes( { dropCap: ! dropCap } ) }\n\t\t\t\t\thelp={ helpText }\n\t\t\t\t\tdisabled={ hasDropCapDisabled( textAlign ) }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</InspectorControls>\n\t);\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n\tisSelected: isSingleSelected,\n\tname,\n} ) {\n\tconst { content, direction, dropCap, placeholder, style } = attributes;\n\tconst textAlign = style?.typography?.textAlign;\n\tuseDeprecatedAlign( attributes.align, style, setAttributes );\n\tconst blockProps = useBlockProps( {\n\t\tref: useOnEnter( { clientId, content } ),\n\t\tclassName: clsx( {\n\t\t\t'has-drop-cap': hasDropCapDisabled( textAlign ) ? false : dropCap,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\t\tdirection={ direction }\n\t\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<DropCapControl\n\t\t\t\t\tname={ name }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\n\t\t\t\t}\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tRichText.isEmpty( content )\n\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Block: Paragraph' )\n\t\t\t\t}\n\t\t\t\tdata-empty={ RichText.isEmpty( content ) }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\tdata-custom-placeholder={ placeholder ? true : undefined }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSettings,\n\tuseBlockEditingMode,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { formatLTR } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\nimport useDeprecatedAlign from './deprecated-attributes';\nimport { unlock } from '../lock-unlock';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ formatLTR }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction hasDropCapDisabled( align ) {\n\treturn align === ( isRTL() ? 'left' : 'right' ) || align === 'center';\n}\n\nfunction DropCapControl( { clientId, attributes, setAttributes, name } ) {\n\t// Please do not add a useSelect call to the paragraph block unconditionally.\n\t// Every useSelect added to a (frequently used) block will degrade load\n\t// and type performance. By moving it within InspectorControls, the subscription is\n\t// now only added for the selected block(s).\n\tconst [ isDropCapFeatureEnabled ] = useSettings( 'typography.dropCap' );\n\tconst hasSelectedStyleState = useSelect(\n\t\t( select ) => {\n\t\t\tconst { hasSelectedStyleState: hasSelectedBlockStyleState } =\n\t\t\t\tunlock( select( blockEditorStore ) );\n\n\t\t\treturn hasSelectedBlockStyleState( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! isDropCapFeatureEnabled || hasSelectedStyleState ) {\n\t\treturn null;\n\t}\n\n\tconst { style, dropCap } = attributes;\n\tconst textAlign = style?.typography?.textAlign;\n\n\tlet helpText;\n\tif ( hasDropCapDisabled( textAlign ) ) {\n\t\thelpText = __( 'Not available for aligned text.' );\n\t} else if ( dropCap ) {\n\t\thelpText = __( 'Showing large initial letter.' );\n\t} else {\n\t\thelpText = __( 'Show a large initial letter.' );\n\t}\n\n\tconst isDropCapControlEnabledByDefault = getBlockSupport(\n\t\tname,\n\t\t'typography.defaultControls.dropCap',\n\t\tfalse\n\t);\n\n\treturn (\n\t\t<InspectorControls group=\"typography\">\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\tisShownByDefault={ isDropCapControlEnabledByDefault }\n\t\t\t\tonDeselect={ () => setAttributes( { dropCap: false } ) }\n\t\t\t\tresetAllFilter={ () => ( { dropCap: false } ) }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\tonChange={ () => setAttributes( { dropCap: ! dropCap } ) }\n\t\t\t\t\thelp={ helpText }\n\t\t\t\t\tdisabled={ hasDropCapDisabled( textAlign ) }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</InspectorControls>\n\t);\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n\tisSelected: isSingleSelected,\n\tname,\n} ) {\n\tconst { content, direction, dropCap, placeholder, style } = attributes;\n\tconst textAlign = style?.typography?.textAlign;\n\tuseDeprecatedAlign( attributes.align, style, setAttributes );\n\tconst blockProps = useBlockProps( {\n\t\tref: useOnEnter( { clientId, content } ),\n\t\tclassName: clsx( {\n\t\t\t'has-drop-cap': hasDropCapDisabled( textAlign ) ? false : dropCap,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\t\tdirection={ direction }\n\t\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<DropCapControl\n\t\t\t\t\tname={ name }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\n\t\t\t\t}\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tRichText.isEmpty( content )\n\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Block: Paragraph' )\n\t\t\t\t}\n\t\t\t\tdata-empty={ RichText.isEmpty( content ) }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\tdata-custom-placeholder={ placeholder ? true : undefined }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -37,6 +37,10 @@
37
37
  "type": "boolean",
38
38
  "default": true
39
39
  },
40
+ "showTrackLength": {
41
+ "type": "boolean",
42
+ "default": true
43
+ },
40
44
  "caption": {
41
45
  "type": "string"
42
46
  }
@@ -74,6 +78,14 @@
74
78
  "padding": true
75
79
  }
76
80
  },
81
+ "styles": [
82
+ { "name": "bars", "label": "Bars", "isDefault": true },
83
+ { "name": "mirror", "label": "Mirror" },
84
+ { "name": "line", "label": "Line" },
85
+ { "name": "blocks", "label": "Blocks" },
86
+ { "name": "dots", "label": "Dots" },
87
+ { "name": "seekbar", "label": "Seekbar" }
88
+ ],
77
89
  "editorStyle": "wp-block-playlist-editor",
78
90
  "style": "wp-block-playlist"
79
91
  }
@@ -44,8 +44,10 @@ var PlaylistEdit = ({
44
44
  showNumbers,
45
45
  showImages,
46
46
  showArtists,
47
+ showTrackLength,
47
48
  currentTrack
48
49
  } = attributes;
50
+ const waveformStyle = attributes.className?.match(/is-style-([\w-]+)/)?.[1] || "bars";
49
51
  const blockProps = useBlockProps();
50
52
  const { replaceInnerBlocks, __unstableMarkNextChangeAsNotPersistent } = useDispatch(blockEditorStore);
51
53
  const { createErrorNotice } = useDispatch(noticesStore);
@@ -231,6 +233,7 @@ var PlaylistEdit = ({
231
233
  showTracklist: true,
232
234
  showArtists: true,
233
235
  showNumbers: true,
236
+ showTrackLength: true,
234
237
  showImages: true,
235
238
  order: "asc"
236
239
  });
@@ -294,6 +297,27 @@ var PlaylistEdit = ({
294
297
  }
295
298
  )
296
299
  }
300
+ ),
301
+ /* @__PURE__ */ jsx(
302
+ ToolsPanelItem,
303
+ {
304
+ label: __("Show track length in Tracklist"),
305
+ isShownByDefault: true,
306
+ hasValue: () => showTrackLength !== true,
307
+ onDeselect: () => setAttributes({ showTrackLength: true }),
308
+ children: /* @__PURE__ */ jsx(
309
+ ToggleControl,
310
+ {
311
+ label: __(
312
+ "Show track length in Tracklist"
313
+ ),
314
+ onChange: toggleAttribute(
315
+ "showTrackLength"
316
+ ),
317
+ checked: showTrackLength
318
+ }
319
+ )
320
+ }
297
321
  )
298
322
  ] }),
299
323
  /* @__PURE__ */ jsx(
@@ -346,6 +370,7 @@ var PlaylistEdit = ({
346
370
  title: currentTrackData?.title,
347
371
  artist: currentTrackData?.artist,
348
372
  image: currentTrackData?.image,
373
+ waveformStyle,
349
374
  onEnded: onTrackEnded
350
375
  }
351
376
  ) }),
@@ -353,7 +378,8 @@ var PlaylistEdit = ({
353
378
  "ol",
354
379
  {
355
380
  className: clsx("wp-block-playlist__tracklist", {
356
- "wp-block-playlist__tracklist-show-numbers": showNumbers
381
+ "wp-block-playlist__tracklist-show-numbers": showNumbers,
382
+ "wp-block-playlist__tracklist-length-is-hidden": !showTrackLength
357
383
  }),
358
384
  children: innerBlocksProps.children
359
385
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/playlist/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect } from '@wordpress/element';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tBlockIcon,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tInspectorControls,\n\tInnerBlocks,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tDisabled,\n\tSelectControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __ } from '@wordpress/i18n';\nimport { audio as icon } from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { Caption } from '../utils/caption';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { WaveformPlayer } from '../utils/waveform-player';\nimport { getTrackAttributes } from './utils';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nconst PlaylistEdit = ( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tclientId,\n} ) => {\n\tconst {\n\t\torder,\n\t\tshowTracklist,\n\t\tshowNumbers,\n\t\tshowImages,\n\t\tshowArtists,\n\t\tcurrentTrack,\n\t} = attributes;\n\tconst blockProps = useBlockProps();\n\tconst { replaceInnerBlocks, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst { innerBlockTracks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock: _getBlock } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tinnerBlockTracks: _getBlock( clientId )?.innerBlocks ?? [],\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Ensure that each inner block has a unique ID,\n\t// even if a track is duplicated.\n\tuseEffect( () => {\n\t\tconst seen = new Set();\n\t\tlet hasDuplicates = false;\n\t\tconst updatedBlocks = innerBlockTracks.map( ( block ) => {\n\t\t\tif ( seen.has( block.attributes.uniqueId ) ) {\n\t\t\t\thasDuplicates = true;\n\t\t\t\treturn {\n\t\t\t\t\t...block,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t...block.attributes,\n\t\t\t\t\t\tuniqueId: uuid(),\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\tseen.add( block.attributes.uniqueId );\n\t\t\treturn block;\n\t\t} );\n\t\tif ( hasDuplicates ) {\n\t\t\treplaceInnerBlocks( clientId, updatedBlocks );\n\t\t}\n\t}, [ innerBlockTracks, clientId, replaceInnerBlocks ] );\n\n\t// Create a list of tracks from the inner blocks,\n\t// but skip blocks that do not have a uniqueId attribute, such as the media placeholder.\n\tconst validTracks = innerBlockTracks.filter(\n\t\t( block ) => !! block.attributes.uniqueId\n\t);\n\tconst tracks = validTracks.map( ( block ) => block.attributes );\n\tconst firstTrackId = validTracks[ 0 ]?.attributes?.uniqueId;\n\n\t// updateBlockAttributes is used to force updating the parent playlist block\n\t// when the currentTrack changes. Using setAttributes directly does not update\n\t// the currentTrack when multiple tracks are moved at the same time.\n\tuseEffect( () => {\n\t\tif ( tracks.length === 0 ) {\n\t\t\t// If there are no tracks but currentTrack is set, set it to null.\n\t\t\tif ( currentTrack !== null ) {\n\t\t\t\tupdateBlockAttributes( clientId, { currentTrack: null } );\n\t\t\t}\n\t\t} else if (\n\t\t\t// If the currentTrack is not the first track, update it to the first track.\n\t\t\tfirstTrackId &&\n\t\t\tfirstTrackId !== currentTrack\n\t\t) {\n\t\t\tupdateBlockAttributes( clientId, { currentTrack: firstTrackId } );\n\t\t}\n\t}, [\n\t\ttracks,\n\t\tcurrentTrack,\n\t\tfirstTrackId,\n\t\tclientId,\n\t\tupdateBlockAttributes,\n\t] );\n\n\tconst onSelectTracks = useCallback(\n\t\t( media ) => {\n\t\t\tif ( ! media ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ! Array.isArray( media ) ) {\n\t\t\t\tmedia = [ media ];\n\t\t\t}\n\n\t\t\tconst trackList = media.map( getTrackAttributes );\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tcurrentTrack:\n\t\t\t\t\ttrackList.length > 0 ? trackList[ 0 ].uniqueId : null,\n\t\t\t} );\n\n\t\t\tconst newBlocks = trackList.map( ( track ) =>\n\t\t\t\tcreateBlock( 'core/playlist-track', track )\n\t\t\t);\n\t\t\t// Replace the inner blocks with the new tracks.\n\t\t\treplaceInnerBlocks( clientId, newBlocks );\n\t\t},\n\t\t[\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t\tsetAttributes,\n\t\t\treplaceInnerBlocks,\n\t\t\tclientId,\n\t\t]\n\t);\n\n\t// Get current track data by finding the track with matching uniqueId.\n\tconst currentTrackData = tracks.find(\n\t\t( track ) => track.uniqueId === currentTrack\n\t);\n\n\t// Handle track end - advance to next track or loop to first.\n\tconst onTrackEnded = useCallback( () => {\n\t\tconst currentIndex = tracks.findIndex(\n\t\t\t( track ) => track.uniqueId === currentTrack\n\t\t);\n\t\tconst nextTrack = tracks[ currentIndex + 1 ] || tracks[ 0 ];\n\t\tif ( nextTrack?.uniqueId ) {\n\t\t\tsetAttributes( { currentTrack: nextTrack.uniqueId } );\n\t\t}\n\t}, [ currentTrack, tracks, setAttributes ] );\n\n\tconst onChangeOrder = useCallback(\n\t\t( trackOrder ) => {\n\t\t\tconst sortedBlocks = [ ...innerBlockTracks ].sort( ( a, b ) => {\n\t\t\t\tconst titleA = a.attributes.title || '';\n\t\t\t\tconst titleB = b.attributes.title || '';\n\n\t\t\t\tif ( trackOrder === 'asc' ) {\n\t\t\t\t\treturn titleA.localeCompare( titleB );\n\t\t\t\t}\n\t\t\t\treturn titleB.localeCompare( titleA );\n\t\t\t} );\n\t\t\tconst firstUniqueId = sortedBlocks[ 0 ]?.attributes?.uniqueId;\n\t\t\treplaceInnerBlocks( clientId, sortedBlocks );\n\t\t\tsetAttributes( {\n\t\t\t\torder: trackOrder,\n\t\t\t\tcurrentTrack:\n\t\t\t\t\tfirstUniqueId && firstUniqueId !== currentTrack\n\t\t\t\t\t\t? firstUniqueId\n\t\t\t\t\t\t: currentTrack,\n\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tcurrentTrack,\n\t\t\tinnerBlockTracks,\n\t\t\treplaceInnerBlocks,\n\t\t\tsetAttributes,\n\t\t]\n\t);\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tconst hasSelectedChild = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).hasSelectedInnerBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\n\tconst hasAnySelected = isSelected || hasSelectedChild;\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\t__experimentalAppenderTagName: 'li',\n\t\trenderAppender: hasAnySelected && InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\tif ( tracks.length === 0 ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( 'is-placeholder', blockProps.className ) }\n\t\t\t>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'Playlist' ),\n\t\t\t\t\t\tinstructions: __(\n\t\t\t\t\t\t\t'Upload an audio file or pick one from your media library.'\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ onSelectTracks }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tmultiple\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\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<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tname={ __( 'Edit' ) }\n\t\t\t\t\tonSelect={ onSelectTracks }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tmultiple\n\t\t\t\t\tmediaIds={ tracks\n\t\t\t\t\t\t.filter( ( track ) => track.id )\n\t\t\t\t\t\t.map( ( track ) => track.id ) }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</BlockControls>\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\tshowTracklist: true,\n\t\t\t\t\t\t\tshowArtists: true,\n\t\t\t\t\t\t\tshowNumbers: true,\n\t\t\t\t\t\t\tshowImages: true,\n\t\t\t\t\t\t\torder: 'asc',\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<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show Tracklist' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => showTracklist !== true }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showTracklist: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show Tracklist' ) }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showTracklist' ) }\n\t\t\t\t\t\t\tchecked={ showTracklist }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ showTracklist && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Show artist name in Tracklist' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => showArtists !== true }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { showArtists: true } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Show artist name in Tracklist'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonChange={ toggleAttribute(\n\t\t\t\t\t\t\t\t\t\t'showArtists'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tchecked={ showArtists }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Show number in Tracklist' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => showNumbers !== true }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { showNumbers: true } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show number in Tracklist' ) }\n\t\t\t\t\t\t\t\t\tonChange={ toggleAttribute(\n\t\t\t\t\t\t\t\t\t\t'showNumbers'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tchecked={ showNumbers }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show images' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => showImages !== true }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showImages: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show images' ) }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showImages' ) }\n\t\t\t\t\t\t\tchecked={ showImages }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Order' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => order !== 'asc' }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { order: 'asc' } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Order' ) }\n\t\t\t\t\t\t\tvalue={ order }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ label: __( 'Descending' ), value: 'desc' },\n\t\t\t\t\t\t\t\t{ label: __( 'Ascending' ), value: 'asc' },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonChange={ ( value ) => onChangeOrder( value ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t<Disabled isDisabled={ ! isSelected }>\n\t\t\t\t\t<WaveformPlayer\n\t\t\t\t\t\tsrc={ currentTrackData?.src }\n\t\t\t\t\t\ttitle={ currentTrackData?.title }\n\t\t\t\t\t\tartist={ currentTrackData?.artist }\n\t\t\t\t\t\timage={ currentTrackData?.image }\n\t\t\t\t\t\tonEnded={ onTrackEnded }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t\t{ showTracklist && (\n\t\t\t\t\t<ol\n\t\t\t\t\t\tclassName={ clsx( 'wp-block-playlist__tracklist', {\n\t\t\t\t\t\t\t'wp-block-playlist__tracklist-show-numbers':\n\t\t\t\t\t\t\t\tshowNumbers,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t\t</ol>\n\t\t\t\t) }\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={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Playlist caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSelected }\n\t\t\t\t\tstyle={ { marginTop: 16 } }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n};\n\nexport default PlaylistEdit;\n"],
5
- "mappings": ";AAGA,OAAO,UAAU;AACjB,SAAS,MAAM,YAAY;AAK3B,SAAS,aAAa,iBAAiB;AACvC;AAAA,EACC,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA,4BAA4B;AAAA,EAC5B,gCAAgC;AAAA,OAC1B;AACP,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,oBAAoB;AACtC,SAAS,UAAU;AACnB,SAAS,SAAS,YAAY;AAC9B,SAAS,mBAAmB;AAK5B,SAAS,eAAe;AACxB,SAAS,sCAAsC;AAC/C,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAsMvB,SA6DN,UA7DM,KA6DN,YA7DM;AApMZ,IAAM,sBAAsB,CAAE,OAAQ;AAEtC,IAAM,eAAe,CAAE;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAO;AACN,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AACJ,QAAM,aAAa,cAAc;AACjC,QAAM,EAAE,oBAAoB,wCAAwC,IACnE,YAAa,gBAAiB;AAC/B,QAAM,EAAE,kBAAkB,IAAI,YAAa,YAAa;AACxD,QAAM,oBAAoB,+BAA+B;AACzD,WAAS,cAAe,SAAU;AACjC,sBAAmB,SAAS,EAAE,MAAM,WAAW,CAAE;AAAA,EAClD;AACA,QAAM,EAAE,sBAAsB,IAAI,YAAa,gBAAiB;AAEhE,QAAM,EAAE,iBAAiB,IAAI;AAAA,IAC5B,CAAE,WAAY;AACb,YAAM,EAAE,UAAU,UAAU,IAAI,OAAQ,gBAAiB;AACzD,aAAO;AAAA,QACN,kBAAkB,UAAW,QAAS,GAAG,eAAe,CAAC;AAAA,MAC1D;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAIA,YAAW,MAAM;AAChB,UAAM,OAAO,oBAAI,IAAI;AACrB,QAAI,gBAAgB;AACpB,UAAM,gBAAgB,iBAAiB,IAAK,CAAE,UAAW;AACxD,UAAK,KAAK,IAAK,MAAM,WAAW,QAAS,GAAI;AAC5C,wBAAgB;AAChB,eAAO;AAAA,UACN,GAAG;AAAA,UACH,YAAY;AAAA,YACX,GAAG,MAAM;AAAA,YACT,UAAU,KAAK;AAAA,UAChB;AAAA,QACD;AAAA,MACD;AACA,WAAK,IAAK,MAAM,WAAW,QAAS;AACpC,aAAO;AAAA,IACR,CAAE;AACF,QAAK,eAAgB;AACpB,yBAAoB,UAAU,aAAc;AAAA,IAC7C;AAAA,EACD,GAAG,CAAE,kBAAkB,UAAU,kBAAmB,CAAE;AAItD,QAAM,cAAc,iBAAiB;AAAA,IACpC,CAAE,UAAW,CAAC,CAAE,MAAM,WAAW;AAAA,EAClC;AACA,QAAM,SAAS,YAAY,IAAK,CAAE,UAAW,MAAM,UAAW;AAC9D,QAAM,eAAe,YAAa,CAAE,GAAG,YAAY;AAKnD,YAAW,MAAM;AAChB,QAAK,OAAO,WAAW,GAAI;AAE1B,UAAK,iBAAiB,MAAO;AAC5B,8BAAuB,UAAU,EAAE,cAAc,KAAK,CAAE;AAAA,MACzD;AAAA,IACD;AAAA;AAAA,MAEC,gBACA,iBAAiB;AAAA,MAChB;AACD,4BAAuB,UAAU,EAAE,cAAc,aAAa,CAAE;AAAA,IACjE;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAEF,QAAM,iBAAiB;AAAA,IACtB,CAAE,UAAW;AACZ,UAAK,CAAE,OAAQ;AACd;AAAA,MACD;AAEA,UAAK,CAAE,MAAM,QAAS,KAAM,GAAI;AAC/B,gBAAQ,CAAE,KAAM;AAAA,MACjB;AAEA,YAAM,YAAY,MAAM,IAAK,kBAAmB;AAChD,8CAAwC;AACxC,oBAAe;AAAA,QACd,cACC,UAAU,SAAS,IAAI,UAAW,CAAE,EAAE,WAAW;AAAA,MACnD,CAAE;AAEF,YAAM,YAAY,UAAU;AAAA,QAAK,CAAE,UAClC,YAAa,uBAAuB,KAAM;AAAA,MAC3C;AAEA,yBAAoB,UAAU,SAAU;AAAA,IACzC;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAGA,QAAM,mBAAmB,OAAO;AAAA,IAC/B,CAAE,UAAW,MAAM,aAAa;AAAA,EACjC;AAGA,QAAM,eAAe,YAAa,MAAM;AACvC,UAAM,eAAe,OAAO;AAAA,MAC3B,CAAE,UAAW,MAAM,aAAa;AAAA,IACjC;AACA,UAAM,YAAY,OAAQ,eAAe,CAAE,KAAK,OAAQ,CAAE;AAC1D,QAAK,WAAW,UAAW;AAC1B,oBAAe,EAAE,cAAc,UAAU,SAAS,CAAE;AAAA,IACrD;AAAA,EACD,GAAG,CAAE,cAAc,QAAQ,aAAc,CAAE;AAE3C,QAAM,gBAAgB;AAAA,IACrB,CAAE,eAAgB;AACjB,YAAM,eAAe,CAAE,GAAG,gBAAiB,EAAE,KAAM,CAAE,GAAG,MAAO;AAC9D,cAAM,SAAS,EAAE,WAAW,SAAS;AACrC,cAAM,SAAS,EAAE,WAAW,SAAS;AAErC,YAAK,eAAe,OAAQ;AAC3B,iBAAO,OAAO,cAAe,MAAO;AAAA,QACrC;AACA,eAAO,OAAO,cAAe,MAAO;AAAA,MACrC,CAAE;AACF,YAAM,gBAAgB,aAAc,CAAE,GAAG,YAAY;AACrD,yBAAoB,UAAU,YAAa;AAC3C,oBAAe;AAAA,QACd,OAAO;AAAA,QACP,cACC,iBAAiB,kBAAkB,eAChC,gBACA;AAAA,MACL,CAAE;AAAA,IACH;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,WAAS,gBAAiB,WAAY;AACrC,WAAO,CAAE,aAAc;AACtB,oBAAe,EAAE,CAAE,SAAU,GAAG,SAAS,CAAE;AAAA,IAC5C;AAAA,EACD;AAEA,QAAM,mBAAmB;AAAA,IACxB,CAAE,WACD,OAAQ,gBAAiB,EAAE,sBAAuB,QAAS;AAAA,IAC5D,CAAE,QAAS;AAAA,EACZ;AAEA,QAAM,iBAAiB,cAAc;AAErC,QAAM,mBAAmB,oBAAqB,YAAY;AAAA,IACzD,+BAA+B;AAAA,IAC/B,gBAAgB,kBAAkB,YAAY;AAAA,EAC/C,CAAE;AAEF,MAAK,OAAO,WAAW,GAAI;AAC1B,WACC;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACL,WAAY,KAAM,kBAAkB,WAAW,SAAU;AAAA,QAEzD;AAAA,UAAC;AAAA;AAAA,YACA,MAAO,oBAAC,aAAU,MAAc;AAAA,YAChC,QAAS;AAAA,cACR,OAAO,GAAI,UAAW;AAAA,cACtB,cAAc;AAAA,gBACb;AAAA,cACD;AAAA,YACD;AAAA,YACA,UAAW;AAAA,YACX,QAAO;AAAA,YACP,UAAQ;AAAA,YACR,cAAe;AAAA,YACf,SAAU;AAAA;AAAA,QACX;AAAA;AAAA,IACD;AAAA,EAEF;AAEA,SACC,iCACC;AAAA,wBAAC,iBAAc,OAAM,SACpB;AAAA,MAAC;AAAA;AAAA,QACA,MAAO,GAAI,MAAO;AAAA,QAClB,UAAW;AAAA,QACX,QAAO;AAAA,QACP,UAAQ;AAAA,QACR,UAAW,OACT,OAAQ,CAAE,UAAW,MAAM,EAAG,EAC9B,IAAK,CAAE,UAAW,MAAM,EAAG;AAAA,QAC7B,cAAe;AAAA,QACf,SAAU;AAAA;AAAA,IACX,GACD;AAAA,IACA,oBAAC,qBACA;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ,GAAI,UAAW;AAAA,QACvB,UAAW,MAAM;AAChB,wBAAe;AAAA,YACd,eAAe;AAAA,YACf,aAAa;AAAA,YACb,aAAa;AAAA,YACb,YAAY;AAAA,YACZ,OAAO;AAAA,UACR,CAAE;AAAA,QACH;AAAA,QACA;AAAA,QAEA;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,OAAQ,GAAI,gBAAiB;AAAA,cAC7B,kBAAgB;AAAA,cAChB,UAAW,MAAM,kBAAkB;AAAA,cACnC,YAAa,MACZ,cAAe,EAAE,eAAe,KAAK,CAAE;AAAA,cAGxC;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ,GAAI,gBAAiB;AAAA,kBAC7B,UAAW,gBAAiB,eAAgB;AAAA,kBAC5C,SAAU;AAAA;AAAA,cACX;AAAA;AAAA,UACD;AAAA,UACE,iBACD,iCACC;AAAA;AAAA,cAAC;AAAA;AAAA,gBACA,OAAQ,GAAI,+BAAgC;AAAA,gBAC5C,kBAAgB;AAAA,gBAChB,UAAW,MAAM,gBAAgB;AAAA,gBACjC,YAAa,MACZ,cAAe,EAAE,aAAa,KAAK,CAAE;AAAA,gBAGtC;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAQ;AAAA,sBACP;AAAA,oBACD;AAAA,oBACA,UAAW;AAAA,sBACV;AAAA,oBACD;AAAA,oBACA,SAAU;AAAA;AAAA,gBACX;AAAA;AAAA,YACD;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACA,OAAQ,GAAI,0BAA2B;AAAA,gBACvC,kBAAgB;AAAA,gBAChB,UAAW,MAAM,gBAAgB;AAAA,gBACjC,YAAa,MACZ,cAAe,EAAE,aAAa,KAAK,CAAE;AAAA,gBAGtC;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAQ,GAAI,0BAA2B;AAAA,oBACvC,UAAW;AAAA,sBACV;AAAA,oBACD;AAAA,oBACA,SAAU;AAAA;AAAA,gBACX;AAAA;AAAA,YACD;AAAA,aACD;AAAA,UAED;AAAA,YAAC;AAAA;AAAA,cACA,OAAQ,GAAI,aAAc;AAAA,cAC1B,kBAAgB;AAAA,cAChB,UAAW,MAAM,eAAe;AAAA,cAChC,YAAa,MACZ,cAAe,EAAE,YAAY,KAAK,CAAE;AAAA,cAGrC;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ,GAAI,aAAc;AAAA,kBAC1B,UAAW,gBAAiB,YAAa;AAAA,kBACzC,SAAU;AAAA;AAAA,cACX;AAAA;AAAA,UACD;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,OAAQ,GAAI,OAAQ;AAAA,cACpB,kBAAgB;AAAA,cAChB,UAAW,MAAM,UAAU;AAAA,cAC3B,YAAa,MAAM,cAAe,EAAE,OAAO,MAAM,CAAE;AAAA,cAEnD;AAAA,gBAAC;AAAA;AAAA,kBACA,uBAAqB;AAAA,kBACrB,OAAQ,GAAI,OAAQ;AAAA,kBACpB,OAAQ;AAAA,kBACR,SAAU;AAAA,oBACT,EAAE,OAAO,GAAI,YAAa,GAAG,OAAO,OAAO;AAAA,oBAC3C,EAAE,OAAO,GAAI,WAAY,GAAG,OAAO,MAAM;AAAA,kBAC1C;AAAA,kBACA,UAAW,CAAE,UAAW,cAAe,KAAM;AAAA;AAAA,cAC9C;AAAA;AAAA,UACD;AAAA;AAAA;AAAA,IACD,GACD;AAAA,IACA,qBAAC,YAAS,GAAG,YACZ;AAAA,0BAAC,YAAS,YAAa,CAAE,YACxB;AAAA,QAAC;AAAA;AAAA,UACA,KAAM,kBAAkB;AAAA,UACxB,OAAQ,kBAAkB;AAAA,UAC1B,QAAS,kBAAkB;AAAA,UAC3B,OAAQ,kBAAkB;AAAA,UAC1B,SAAU;AAAA;AAAA,MACX,GACD;AAAA,MACE,iBACD;AAAA,QAAC;AAAA;AAAA,UACA,WAAY,KAAM,gCAAgC;AAAA,YACjD,6CACC;AAAA,UACF,CAAE;AAAA,UAEA,2BAAiB;AAAA;AAAA,MACpB;AAAA,MAED;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAQ,GAAI,uBAAwB;AAAA,UACpC,mBAAoB;AAAA,UACpB,OAAQ,EAAE,WAAW,GAAG;AAAA;AAAA,MACzB;AAAA,OACD;AAAA,KACD;AAEF;AAEA,IAAO,eAAQ;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect } from '@wordpress/element';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tBlockIcon,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tInspectorControls,\n\tInnerBlocks,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tDisabled,\n\tSelectControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __ } from '@wordpress/i18n';\nimport { audio as icon } from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { Caption } from '../utils/caption';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { WaveformPlayer } from '../utils/waveform-player';\nimport { getTrackAttributes } from './utils';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nconst PlaylistEdit = ( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tclientId,\n} ) => {\n\tconst {\n\t\torder,\n\t\tshowTracklist,\n\t\tshowNumbers,\n\t\tshowImages,\n\t\tshowArtists,\n\t\tshowTrackLength,\n\t\tcurrentTrack,\n\t} = attributes;\n\n\t// Extract the waveform style from the block style variation class.\n\tconst waveformStyle =\n\t\tattributes.className?.match( /is-style-([\\w-]+)/ )?.[ 1 ] || 'bars';\n\tconst blockProps = useBlockProps();\n\tconst { replaceInnerBlocks, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst { innerBlockTracks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock: _getBlock } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tinnerBlockTracks: _getBlock( clientId )?.innerBlocks ?? [],\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Ensure that each inner block has a unique ID,\n\t// even if a track is duplicated.\n\tuseEffect( () => {\n\t\tconst seen = new Set();\n\t\tlet hasDuplicates = false;\n\t\tconst updatedBlocks = innerBlockTracks.map( ( block ) => {\n\t\t\tif ( seen.has( block.attributes.uniqueId ) ) {\n\t\t\t\thasDuplicates = true;\n\t\t\t\treturn {\n\t\t\t\t\t...block,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t...block.attributes,\n\t\t\t\t\t\tuniqueId: uuid(),\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\tseen.add( block.attributes.uniqueId );\n\t\t\treturn block;\n\t\t} );\n\t\tif ( hasDuplicates ) {\n\t\t\treplaceInnerBlocks( clientId, updatedBlocks );\n\t\t}\n\t}, [ innerBlockTracks, clientId, replaceInnerBlocks ] );\n\n\t// Create a list of tracks from the inner blocks,\n\t// but skip blocks that do not have a uniqueId attribute, such as the media placeholder.\n\tconst validTracks = innerBlockTracks.filter(\n\t\t( block ) => !! block.attributes.uniqueId\n\t);\n\tconst tracks = validTracks.map( ( block ) => block.attributes );\n\tconst firstTrackId = validTracks[ 0 ]?.attributes?.uniqueId;\n\n\t// updateBlockAttributes is used to force updating the parent playlist block\n\t// when the currentTrack changes. Using setAttributes directly does not update\n\t// the currentTrack when multiple tracks are moved at the same time.\n\tuseEffect( () => {\n\t\tif ( tracks.length === 0 ) {\n\t\t\t// If there are no tracks but currentTrack is set, set it to null.\n\t\t\tif ( currentTrack !== null ) {\n\t\t\t\tupdateBlockAttributes( clientId, { currentTrack: null } );\n\t\t\t}\n\t\t} else if (\n\t\t\t// If the currentTrack is not the first track, update it to the first track.\n\t\t\tfirstTrackId &&\n\t\t\tfirstTrackId !== currentTrack\n\t\t) {\n\t\t\tupdateBlockAttributes( clientId, { currentTrack: firstTrackId } );\n\t\t}\n\t}, [\n\t\ttracks,\n\t\tcurrentTrack,\n\t\tfirstTrackId,\n\t\tclientId,\n\t\tupdateBlockAttributes,\n\t] );\n\n\tconst onSelectTracks = useCallback(\n\t\t( media ) => {\n\t\t\tif ( ! media ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ! Array.isArray( media ) ) {\n\t\t\t\tmedia = [ media ];\n\t\t\t}\n\n\t\t\tconst trackList = media.map( getTrackAttributes );\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tcurrentTrack:\n\t\t\t\t\ttrackList.length > 0 ? trackList[ 0 ].uniqueId : null,\n\t\t\t} );\n\n\t\t\tconst newBlocks = trackList.map( ( track ) =>\n\t\t\t\tcreateBlock( 'core/playlist-track', track )\n\t\t\t);\n\t\t\t// Replace the inner blocks with the new tracks.\n\t\t\treplaceInnerBlocks( clientId, newBlocks );\n\t\t},\n\t\t[\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t\tsetAttributes,\n\t\t\treplaceInnerBlocks,\n\t\t\tclientId,\n\t\t]\n\t);\n\n\t// Get current track data by finding the track with matching uniqueId.\n\tconst currentTrackData = tracks.find(\n\t\t( track ) => track.uniqueId === currentTrack\n\t);\n\n\t// Handle track end - advance to next track or loop to first.\n\tconst onTrackEnded = useCallback( () => {\n\t\tconst currentIndex = tracks.findIndex(\n\t\t\t( track ) => track.uniqueId === currentTrack\n\t\t);\n\t\tconst nextTrack = tracks[ currentIndex + 1 ] || tracks[ 0 ];\n\t\tif ( nextTrack?.uniqueId ) {\n\t\t\tsetAttributes( { currentTrack: nextTrack.uniqueId } );\n\t\t}\n\t}, [ currentTrack, tracks, setAttributes ] );\n\n\tconst onChangeOrder = useCallback(\n\t\t( trackOrder ) => {\n\t\t\tconst sortedBlocks = [ ...innerBlockTracks ].sort( ( a, b ) => {\n\t\t\t\tconst titleA = a.attributes.title || '';\n\t\t\t\tconst titleB = b.attributes.title || '';\n\n\t\t\t\tif ( trackOrder === 'asc' ) {\n\t\t\t\t\treturn titleA.localeCompare( titleB );\n\t\t\t\t}\n\t\t\t\treturn titleB.localeCompare( titleA );\n\t\t\t} );\n\t\t\tconst firstUniqueId = sortedBlocks[ 0 ]?.attributes?.uniqueId;\n\t\t\treplaceInnerBlocks( clientId, sortedBlocks );\n\t\t\tsetAttributes( {\n\t\t\t\torder: trackOrder,\n\t\t\t\tcurrentTrack:\n\t\t\t\t\tfirstUniqueId && firstUniqueId !== currentTrack\n\t\t\t\t\t\t? firstUniqueId\n\t\t\t\t\t\t: currentTrack,\n\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tcurrentTrack,\n\t\t\tinnerBlockTracks,\n\t\t\treplaceInnerBlocks,\n\t\t\tsetAttributes,\n\t\t]\n\t);\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tconst hasSelectedChild = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).hasSelectedInnerBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\n\tconst hasAnySelected = isSelected || hasSelectedChild;\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\t__experimentalAppenderTagName: 'li',\n\t\trenderAppender: hasAnySelected && InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\tif ( tracks.length === 0 ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( 'is-placeholder', blockProps.className ) }\n\t\t\t>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'Playlist' ),\n\t\t\t\t\t\tinstructions: __(\n\t\t\t\t\t\t\t'Upload an audio file or pick one from your media library.'\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ onSelectTracks }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tmultiple\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\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<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tname={ __( 'Edit' ) }\n\t\t\t\t\tonSelect={ onSelectTracks }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tmultiple\n\t\t\t\t\tmediaIds={ tracks\n\t\t\t\t\t\t.filter( ( track ) => track.id )\n\t\t\t\t\t\t.map( ( track ) => track.id ) }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</BlockControls>\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\tshowTracklist: true,\n\t\t\t\t\t\t\tshowArtists: true,\n\t\t\t\t\t\t\tshowNumbers: true,\n\t\t\t\t\t\t\tshowTrackLength: true,\n\t\t\t\t\t\t\tshowImages: true,\n\t\t\t\t\t\t\torder: 'asc',\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<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show Tracklist' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => showTracklist !== true }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showTracklist: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show Tracklist' ) }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showTracklist' ) }\n\t\t\t\t\t\t\tchecked={ showTracklist }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ showTracklist && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Show artist name in Tracklist' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => showArtists !== true }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { showArtists: true } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Show artist name in Tracklist'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonChange={ toggleAttribute(\n\t\t\t\t\t\t\t\t\t\t'showArtists'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tchecked={ showArtists }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Show number in Tracklist' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => showNumbers !== true }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { showNumbers: true } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show number in Tracklist' ) }\n\t\t\t\t\t\t\t\t\tonChange={ toggleAttribute(\n\t\t\t\t\t\t\t\t\t\t'showNumbers'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tchecked={ showNumbers }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Show track length in Tracklist' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => showTrackLength !== true }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { showTrackLength: true } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Show track length in Tracklist'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonChange={ toggleAttribute(\n\t\t\t\t\t\t\t\t\t\t'showTrackLength'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tchecked={ showTrackLength }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show images' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => showImages !== true }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showImages: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show images' ) }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showImages' ) }\n\t\t\t\t\t\t\tchecked={ showImages }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Order' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => order !== 'asc' }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { order: 'asc' } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Order' ) }\n\t\t\t\t\t\t\tvalue={ order }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ label: __( 'Descending' ), value: 'desc' },\n\t\t\t\t\t\t\t\t{ label: __( 'Ascending' ), value: 'asc' },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonChange={ ( value ) => onChangeOrder( value ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t<Disabled isDisabled={ ! isSelected }>\n\t\t\t\t\t<WaveformPlayer\n\t\t\t\t\t\tsrc={ currentTrackData?.src }\n\t\t\t\t\t\ttitle={ currentTrackData?.title }\n\t\t\t\t\t\tartist={ currentTrackData?.artist }\n\t\t\t\t\t\timage={ currentTrackData?.image }\n\t\t\t\t\t\twaveformStyle={ waveformStyle }\n\t\t\t\t\t\tonEnded={ onTrackEnded }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t\t{ showTracklist && (\n\t\t\t\t\t<ol\n\t\t\t\t\t\tclassName={ clsx( 'wp-block-playlist__tracklist', {\n\t\t\t\t\t\t\t'wp-block-playlist__tracklist-show-numbers':\n\t\t\t\t\t\t\t\tshowNumbers,\n\t\t\t\t\t\t\t'wp-block-playlist__tracklist-length-is-hidden':\n\t\t\t\t\t\t\t\t! showTrackLength,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t\t</ol>\n\t\t\t\t) }\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={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Playlist caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSelected }\n\t\t\t\t\tstyle={ { marginTop: 16 } }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n};\n\nexport default PlaylistEdit;\n"],
5
+ "mappings": ";AAGA,OAAO,UAAU;AACjB,SAAS,MAAM,YAAY;AAK3B,SAAS,aAAa,iBAAiB;AACvC;AAAA,EACC,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA,4BAA4B;AAAA,EAC5B,gCAAgC;AAAA,OAC1B;AACP,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,oBAAoB;AACtC,SAAS,UAAU;AACnB,SAAS,SAAS,YAAY;AAC9B,SAAS,mBAAmB;AAK5B,SAAS,eAAe;AACxB,SAAS,sCAAsC;AAC/C,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AA2MvB,SA8DN,UA9DM,KA8DN,YA9DM;AAzMZ,IAAM,sBAAsB,CAAE,OAAQ;AAEtC,IAAM,eAAe,CAAE;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAO;AACN,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAGJ,QAAM,gBACL,WAAW,WAAW,MAAO,mBAAoB,IAAK,CAAE,KAAK;AAC9D,QAAM,aAAa,cAAc;AACjC,QAAM,EAAE,oBAAoB,wCAAwC,IACnE,YAAa,gBAAiB;AAC/B,QAAM,EAAE,kBAAkB,IAAI,YAAa,YAAa;AACxD,QAAM,oBAAoB,+BAA+B;AACzD,WAAS,cAAe,SAAU;AACjC,sBAAmB,SAAS,EAAE,MAAM,WAAW,CAAE;AAAA,EAClD;AACA,QAAM,EAAE,sBAAsB,IAAI,YAAa,gBAAiB;AAEhE,QAAM,EAAE,iBAAiB,IAAI;AAAA,IAC5B,CAAE,WAAY;AACb,YAAM,EAAE,UAAU,UAAU,IAAI,OAAQ,gBAAiB;AACzD,aAAO;AAAA,QACN,kBAAkB,UAAW,QAAS,GAAG,eAAe,CAAC;AAAA,MAC1D;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAIA,YAAW,MAAM;AAChB,UAAM,OAAO,oBAAI,IAAI;AACrB,QAAI,gBAAgB;AACpB,UAAM,gBAAgB,iBAAiB,IAAK,CAAE,UAAW;AACxD,UAAK,KAAK,IAAK,MAAM,WAAW,QAAS,GAAI;AAC5C,wBAAgB;AAChB,eAAO;AAAA,UACN,GAAG;AAAA,UACH,YAAY;AAAA,YACX,GAAG,MAAM;AAAA,YACT,UAAU,KAAK;AAAA,UAChB;AAAA,QACD;AAAA,MACD;AACA,WAAK,IAAK,MAAM,WAAW,QAAS;AACpC,aAAO;AAAA,IACR,CAAE;AACF,QAAK,eAAgB;AACpB,yBAAoB,UAAU,aAAc;AAAA,IAC7C;AAAA,EACD,GAAG,CAAE,kBAAkB,UAAU,kBAAmB,CAAE;AAItD,QAAM,cAAc,iBAAiB;AAAA,IACpC,CAAE,UAAW,CAAC,CAAE,MAAM,WAAW;AAAA,EAClC;AACA,QAAM,SAAS,YAAY,IAAK,CAAE,UAAW,MAAM,UAAW;AAC9D,QAAM,eAAe,YAAa,CAAE,GAAG,YAAY;AAKnD,YAAW,MAAM;AAChB,QAAK,OAAO,WAAW,GAAI;AAE1B,UAAK,iBAAiB,MAAO;AAC5B,8BAAuB,UAAU,EAAE,cAAc,KAAK,CAAE;AAAA,MACzD;AAAA,IACD;AAAA;AAAA,MAEC,gBACA,iBAAiB;AAAA,MAChB;AACD,4BAAuB,UAAU,EAAE,cAAc,aAAa,CAAE;AAAA,IACjE;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAEF,QAAM,iBAAiB;AAAA,IACtB,CAAE,UAAW;AACZ,UAAK,CAAE,OAAQ;AACd;AAAA,MACD;AAEA,UAAK,CAAE,MAAM,QAAS,KAAM,GAAI;AAC/B,gBAAQ,CAAE,KAAM;AAAA,MACjB;AAEA,YAAM,YAAY,MAAM,IAAK,kBAAmB;AAChD,8CAAwC;AACxC,oBAAe;AAAA,QACd,cACC,UAAU,SAAS,IAAI,UAAW,CAAE,EAAE,WAAW;AAAA,MACnD,CAAE;AAEF,YAAM,YAAY,UAAU;AAAA,QAAK,CAAE,UAClC,YAAa,uBAAuB,KAAM;AAAA,MAC3C;AAEA,yBAAoB,UAAU,SAAU;AAAA,IACzC;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAGA,QAAM,mBAAmB,OAAO;AAAA,IAC/B,CAAE,UAAW,MAAM,aAAa;AAAA,EACjC;AAGA,QAAM,eAAe,YAAa,MAAM;AACvC,UAAM,eAAe,OAAO;AAAA,MAC3B,CAAE,UAAW,MAAM,aAAa;AAAA,IACjC;AACA,UAAM,YAAY,OAAQ,eAAe,CAAE,KAAK,OAAQ,CAAE;AAC1D,QAAK,WAAW,UAAW;AAC1B,oBAAe,EAAE,cAAc,UAAU,SAAS,CAAE;AAAA,IACrD;AAAA,EACD,GAAG,CAAE,cAAc,QAAQ,aAAc,CAAE;AAE3C,QAAM,gBAAgB;AAAA,IACrB,CAAE,eAAgB;AACjB,YAAM,eAAe,CAAE,GAAG,gBAAiB,EAAE,KAAM,CAAE,GAAG,MAAO;AAC9D,cAAM,SAAS,EAAE,WAAW,SAAS;AACrC,cAAM,SAAS,EAAE,WAAW,SAAS;AAErC,YAAK,eAAe,OAAQ;AAC3B,iBAAO,OAAO,cAAe,MAAO;AAAA,QACrC;AACA,eAAO,OAAO,cAAe,MAAO;AAAA,MACrC,CAAE;AACF,YAAM,gBAAgB,aAAc,CAAE,GAAG,YAAY;AACrD,yBAAoB,UAAU,YAAa;AAC3C,oBAAe;AAAA,QACd,OAAO;AAAA,QACP,cACC,iBAAiB,kBAAkB,eAChC,gBACA;AAAA,MACL,CAAE;AAAA,IACH;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,WAAS,gBAAiB,WAAY;AACrC,WAAO,CAAE,aAAc;AACtB,oBAAe,EAAE,CAAE,SAAU,GAAG,SAAS,CAAE;AAAA,IAC5C;AAAA,EACD;AAEA,QAAM,mBAAmB;AAAA,IACxB,CAAE,WACD,OAAQ,gBAAiB,EAAE,sBAAuB,QAAS;AAAA,IAC5D,CAAE,QAAS;AAAA,EACZ;AAEA,QAAM,iBAAiB,cAAc;AAErC,QAAM,mBAAmB,oBAAqB,YAAY;AAAA,IACzD,+BAA+B;AAAA,IAC/B,gBAAgB,kBAAkB,YAAY;AAAA,EAC/C,CAAE;AAEF,MAAK,OAAO,WAAW,GAAI;AAC1B,WACC;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACL,WAAY,KAAM,kBAAkB,WAAW,SAAU;AAAA,QAEzD;AAAA,UAAC;AAAA;AAAA,YACA,MAAO,oBAAC,aAAU,MAAc;AAAA,YAChC,QAAS;AAAA,cACR,OAAO,GAAI,UAAW;AAAA,cACtB,cAAc;AAAA,gBACb;AAAA,cACD;AAAA,YACD;AAAA,YACA,UAAW;AAAA,YACX,QAAO;AAAA,YACP,UAAQ;AAAA,YACR,cAAe;AAAA,YACf,SAAU;AAAA;AAAA,QACX;AAAA;AAAA,IACD;AAAA,EAEF;AAEA,SACC,iCACC;AAAA,wBAAC,iBAAc,OAAM,SACpB;AAAA,MAAC;AAAA;AAAA,QACA,MAAO,GAAI,MAAO;AAAA,QAClB,UAAW;AAAA,QACX,QAAO;AAAA,QACP,UAAQ;AAAA,QACR,UAAW,OACT,OAAQ,CAAE,UAAW,MAAM,EAAG,EAC9B,IAAK,CAAE,UAAW,MAAM,EAAG;AAAA,QAC7B,cAAe;AAAA,QACf,SAAU;AAAA;AAAA,IACX,GACD;AAAA,IACA,oBAAC,qBACA;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ,GAAI,UAAW;AAAA,QACvB,UAAW,MAAM;AAChB,wBAAe;AAAA,YACd,eAAe;AAAA,YACf,aAAa;AAAA,YACb,aAAa;AAAA,YACb,iBAAiB;AAAA,YACjB,YAAY;AAAA,YACZ,OAAO;AAAA,UACR,CAAE;AAAA,QACH;AAAA,QACA;AAAA,QAEA;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,OAAQ,GAAI,gBAAiB;AAAA,cAC7B,kBAAgB;AAAA,cAChB,UAAW,MAAM,kBAAkB;AAAA,cACnC,YAAa,MACZ,cAAe,EAAE,eAAe,KAAK,CAAE;AAAA,cAGxC;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ,GAAI,gBAAiB;AAAA,kBAC7B,UAAW,gBAAiB,eAAgB;AAAA,kBAC5C,SAAU;AAAA;AAAA,cACX;AAAA;AAAA,UACD;AAAA,UACE,iBACD,iCACC;AAAA;AAAA,cAAC;AAAA;AAAA,gBACA,OAAQ,GAAI,+BAAgC;AAAA,gBAC5C,kBAAgB;AAAA,gBAChB,UAAW,MAAM,gBAAgB;AAAA,gBACjC,YAAa,MACZ,cAAe,EAAE,aAAa,KAAK,CAAE;AAAA,gBAGtC;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAQ;AAAA,sBACP;AAAA,oBACD;AAAA,oBACA,UAAW;AAAA,sBACV;AAAA,oBACD;AAAA,oBACA,SAAU;AAAA;AAAA,gBACX;AAAA;AAAA,YACD;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACA,OAAQ,GAAI,0BAA2B;AAAA,gBACvC,kBAAgB;AAAA,gBAChB,UAAW,MAAM,gBAAgB;AAAA,gBACjC,YAAa,MACZ,cAAe,EAAE,aAAa,KAAK,CAAE;AAAA,gBAGtC;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAQ,GAAI,0BAA2B;AAAA,oBACvC,UAAW;AAAA,sBACV;AAAA,oBACD;AAAA,oBACA,SAAU;AAAA;AAAA,gBACX;AAAA;AAAA,YACD;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACA,OAAQ,GAAI,gCAAiC;AAAA,gBAC7C,kBAAgB;AAAA,gBAChB,UAAW,MAAM,oBAAoB;AAAA,gBACrC,YAAa,MACZ,cAAe,EAAE,iBAAiB,KAAK,CAAE;AAAA,gBAG1C;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAQ;AAAA,sBACP;AAAA,oBACD;AAAA,oBACA,UAAW;AAAA,sBACV;AAAA,oBACD;AAAA,oBACA,SAAU;AAAA;AAAA,gBACX;AAAA;AAAA,YACD;AAAA,aACD;AAAA,UAED;AAAA,YAAC;AAAA;AAAA,cACA,OAAQ,GAAI,aAAc;AAAA,cAC1B,kBAAgB;AAAA,cAChB,UAAW,MAAM,eAAe;AAAA,cAChC,YAAa,MACZ,cAAe,EAAE,YAAY,KAAK,CAAE;AAAA,cAGrC;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ,GAAI,aAAc;AAAA,kBAC1B,UAAW,gBAAiB,YAAa;AAAA,kBACzC,SAAU;AAAA;AAAA,cACX;AAAA;AAAA,UACD;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,OAAQ,GAAI,OAAQ;AAAA,cACpB,kBAAgB;AAAA,cAChB,UAAW,MAAM,UAAU;AAAA,cAC3B,YAAa,MAAM,cAAe,EAAE,OAAO,MAAM,CAAE;AAAA,cAEnD;AAAA,gBAAC;AAAA;AAAA,kBACA,uBAAqB;AAAA,kBACrB,OAAQ,GAAI,OAAQ;AAAA,kBACpB,OAAQ;AAAA,kBACR,SAAU;AAAA,oBACT,EAAE,OAAO,GAAI,YAAa,GAAG,OAAO,OAAO;AAAA,oBAC3C,EAAE,OAAO,GAAI,WAAY,GAAG,OAAO,MAAM;AAAA,kBAC1C;AAAA,kBACA,UAAW,CAAE,UAAW,cAAe,KAAM;AAAA;AAAA,cAC9C;AAAA;AAAA,UACD;AAAA;AAAA;AAAA,IACD,GACD;AAAA,IACA,qBAAC,YAAS,GAAG,YACZ;AAAA,0BAAC,YAAS,YAAa,CAAE,YACxB;AAAA,QAAC;AAAA;AAAA,UACA,KAAM,kBAAkB;AAAA,UACxB,OAAQ,kBAAkB;AAAA,UAC1B,QAAS,kBAAkB;AAAA,UAC3B,OAAQ,kBAAkB;AAAA,UAC1B;AAAA,UACA,SAAU;AAAA;AAAA,MACX,GACD;AAAA,MACE,iBACD;AAAA,QAAC;AAAA;AAAA,UACA,WAAY,KAAM,gCAAgC;AAAA,YACjD,6CACC;AAAA,YACD,iDACC,CAAE;AAAA,UACJ,CAAE;AAAA,UAEA,2BAAiB;AAAA;AAAA,MACpB;AAAA,MAED;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAQ,GAAI,uBAAwB;AAAA,UACpC,mBAAoB;AAAA,UACpB,OAAQ,EAAE,WAAW,GAAG;AAAA;AAAA,MACzB;AAAA,OACD;AAAA,KACD;AAEF;AAEA,IAAO,eAAQ;",
6
6
  "names": []
7
7
  }
@@ -8,7 +8,13 @@ import {
8
8
  } from "@wordpress/block-editor";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
10
  function saveWithInnerBlocks({ attributes }) {
11
- const { caption, showNumbers, showTracklist, showArtists } = attributes;
11
+ const {
12
+ caption,
13
+ showNumbers,
14
+ showTracklist,
15
+ showArtists,
16
+ showTrackLength
17
+ } = attributes;
12
18
  const blockProps = useBlockProps.save();
13
19
  const innerBlocksProps = useInnerBlocksProps.save(blockProps);
14
20
  return /* @__PURE__ */ jsxs("figure", { ...innerBlocksProps, children: [
@@ -18,6 +24,7 @@ function saveWithInnerBlocks({ attributes }) {
18
24
  className: clsx("wp-block-playlist__tracklist", {
19
25
  "wp-block-playlist__tracklist-is-hidden": !showTracklist,
20
26
  "wp-block-playlist__tracklist-artist-is-hidden": !showArtists,
27
+ "wp-block-playlist__tracklist-length-is-hidden": !showTrackLength,
21
28
  "wp-block-playlist__tracklist-show-numbers": showNumbers
22
29
  }),
23
30
  children: innerBlocksProps.children
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/playlist/save.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function saveWithInnerBlocks( { attributes } ) {\n\tconst { caption, showNumbers, showTracklist, showArtists } = attributes;\n\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\treturn (\n\t\t<figure { ...innerBlocksProps }>\n\t\t\t<ol\n\t\t\t\tclassName={ clsx( 'wp-block-playlist__tracklist', {\n\t\t\t\t\t'wp-block-playlist__tracklist-is-hidden': ! showTracklist,\n\t\t\t\t\t'wp-block-playlist__tracklist-artist-is-hidden':\n\t\t\t\t\t\t! showArtists,\n\t\t\t\t\t'wp-block-playlist__tracklist-show-numbers': showNumbers,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</ol>\n\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\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": ";AAGA,OAAO,UAAU;AAKjB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAQL,SACC,KADD;AANa,SAAR,oBAAsC,EAAE,WAAW,GAAI;AAC7D,QAAM,EAAE,SAAS,aAAa,eAAe,YAAY,IAAI;AAE7D,QAAM,aAAa,cAAc,KAAK;AACtC,QAAM,mBAAmB,oBAAoB,KAAM,UAAW;AAC9D,SACC,qBAAC,YAAS,GAAG,kBACZ;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,WAAY,KAAM,gCAAgC;AAAA,UACjD,0CAA0C,CAAE;AAAA,UAC5C,iDACC,CAAE;AAAA,UACH,6CAA6C;AAAA,QAC9C,CAAE;AAAA,QAEA,2BAAiB;AAAA;AAAA,IACpB;AAAA,IACE,CAAE,SAAS,QAAS,OAAQ,KAC7B;AAAA,MAAC,SAAS;AAAA,MAAT;AAAA,QACA,SAAQ;AAAA,QACR,WAAY,kCAAmC,SAAU;AAAA,QACzD,OAAQ;AAAA;AAAA,IACT;AAAA,KAEF;AAEF;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function saveWithInnerBlocks( { attributes } ) {\n\tconst {\n\t\tcaption,\n\t\tshowNumbers,\n\t\tshowTracklist,\n\t\tshowArtists,\n\t\tshowTrackLength,\n\t} = attributes;\n\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\treturn (\n\t\t<figure { ...innerBlocksProps }>\n\t\t\t<ol\n\t\t\t\tclassName={ clsx( 'wp-block-playlist__tracklist', {\n\t\t\t\t\t'wp-block-playlist__tracklist-is-hidden': ! showTracklist,\n\t\t\t\t\t'wp-block-playlist__tracklist-artist-is-hidden':\n\t\t\t\t\t\t! showArtists,\n\t\t\t\t\t'wp-block-playlist__tracklist-length-is-hidden':\n\t\t\t\t\t\t! showTrackLength,\n\t\t\t\t\t'wp-block-playlist__tracklist-show-numbers': showNumbers,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</ol>\n\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\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": ";AAGA,OAAO,UAAU;AAKjB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAcL,SACC,KADD;AAZa,SAAR,oBAAsC,EAAE,WAAW,GAAI;AAC7D,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAEJ,QAAM,aAAa,cAAc,KAAK;AACtC,QAAM,mBAAmB,oBAAoB,KAAM,UAAW;AAC9D,SACC,qBAAC,YAAS,GAAG,kBACZ;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,WAAY,KAAM,gCAAgC;AAAA,UACjD,0CAA0C,CAAE;AAAA,UAC5C,iDACC,CAAE;AAAA,UACH,iDACC,CAAE;AAAA,UACH,6CAA6C;AAAA,QAC9C,CAAE;AAAA,QAEA,2BAAiB;AAAA;AAAA,IACpB;AAAA,IACE,CAAE,SAAS,QAAS,OAAQ,KAC7B;AAAA,MAAC,SAAS;AAAA,MAAT;AAAA,QACA,SAAQ;AAAA,QACR,WAAY,kCAAmC,SAAU;AAAA,QACzD,OAAQ;AAAA;AAAA,IACT;AAAA,KAEF;AAEF;",
6
6
  "names": []
7
7
  }
@@ -64,6 +64,7 @@ function initPlayer(ref, track, shouldAutoPlay, context) {
64
64
  image: track.image,
65
65
  autoPlay: shouldAutoPlay,
66
66
  labels,
67
+ waveformStyle: context.waveformStyle,
67
68
  onEnded: () => {
68
69
  const currentIndex = context.tracks.findIndex(
69
70
  (uniqueId) => uniqueId === context.currentId
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/playlist/view.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store, getContext, getElement } from '@wordpress/interactivity';\n\n/**\n * Internal dependencies\n */\nimport { initWaveformPlayer, logPlayError } from '../utils/waveform-utils';\n\n/**\n * Store player state for each element.\n */\nconst playerState = new WeakMap();\n\nconst { state } = store(\n\t'core/playlist',\n\t{\n\t\tstate: {\n\t\t\tplaylists: {},\n\t\t\tget isCurrentTrack() {\n\t\t\t\tconst { currentId, uniqueId } = getContext();\n\t\t\t\treturn currentId === uniqueId;\n\t\t\t},\n\t\t},\n\t\tactions: {\n\t\t\tchangeTrack() {\n\t\t\t\tconst context = getContext();\n\t\t\t\tcontext.currentId = context.uniqueId;\n\t\t\t},\n\t\t},\n\t\tcallbacks: {\n\t\t\tinitWaveformPlayer() {\n\t\t\t\tconst context = getContext();\n\t\t\t\tconst { ref } = getElement();\n\n\t\t\t\tif ( ! context.currentId || ! ref ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst track =\n\t\t\t\t\tstate.playlists[ context.playlistId ]?.tracks[\n\t\t\t\t\t\tcontext.currentId\n\t\t\t\t\t];\n\t\t\t\tif ( ! track?.url ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst existing = playerState.get( ref );\n\n\t\t\t\t// Skip if we already initialized with this exact URL.\n\t\t\t\tif ( existing?.url === track.url ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Autoplay if we're switching from a different track (user action),\n\t\t\t\t// but not on initial page load (when existing has no URL).\n\t\t\t\tconst shouldAutoPlay = !! existing?.url;\n\n\t\t\t\tinitPlayer( ref, track, shouldAutoPlay, context );\n\t\t\t},\n\t\t},\n\t},\n\t{ lock: true }\n);\n\n/**\n * Initialize the waveform player for a given element.\n *\n * @param {Element} ref - The container element.\n * @param {Object} track - The track data.\n * @param {boolean} shouldAutoPlay - Whether to auto-play after initialization.\n * @param {Object} context - The Interactivity API context.\n */\nfunction initPlayer( ref, track, shouldAutoPlay, context ) {\n\tconst existing = playerState.get( ref );\n\n\t// If a player already exists, load the new track without recreating.\n\tif ( existing?.instance ) {\n\t\texisting.instance\n\t\t\t.loadTrack( track.url, track.title, track.artist, {\n\t\t\t\tartwork: track.image,\n\t\t\t} )\n\t\t\t.then( () => {\n\t\t\t\texisting.url = track.url;\n\t\t\t\tif ( shouldAutoPlay ) {\n\t\t\t\t\texisting.instance.play()?.catch( logPlayError );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( logPlayError );\n\t\treturn;\n\t}\n\n\t// Read translated labels from server-rendered data attributes.\n\tconst labels = {\n\t\tplay: ref.dataset.labelPlay,\n\t\tpause: ref.dataset.labelPause,\n\t};\n\n\t// Initialize using the shared core.\n\tconst player = initWaveformPlayer( ref, {\n\t\tsrc: track.url,\n\t\ttitle: track.title,\n\t\tartist: track.artist,\n\t\timage: track.image,\n\t\tautoPlay: shouldAutoPlay,\n\t\tlabels,\n\t\tonEnded: () => {\n\t\t\t// Advance to next track (autoPlay handles playback).\n\t\t\tconst currentIndex = context.tracks.findIndex(\n\t\t\t\t( uniqueId ) => uniqueId === context.currentId\n\t\t\t);\n\t\t\tconst nextTrack = context.tracks[ currentIndex + 1 ];\n\t\t\tif ( nextTrack ) {\n\t\t\t\tcontext.currentId = nextTrack;\n\t\t\t}\n\t\t},\n\t} );\n\n\t// Store state for cleanup, including instance for loadTrack reuse.\n\tplayerState.set( ref, {\n\t\turl: track.url,\n\t\tinstance: player.instance,\n\t\tdestroy: player.destroy,\n\t} );\n}\n"],
5
- "mappings": ";AAGA,SAAS,OAAO,YAAY,kBAAkB;AAK9C,SAAS,oBAAoB,oBAAoB;AAKjD,IAAM,cAAc,oBAAI,QAAQ;AAEhC,IAAM,EAAE,MAAM,IAAI;AAAA,EACjB;AAAA,EACA;AAAA,IACC,OAAO;AAAA,MACN,WAAW,CAAC;AAAA,MACZ,IAAI,iBAAiB;AACpB,cAAM,EAAE,WAAW,SAAS,IAAI,WAAW;AAC3C,eAAO,cAAc;AAAA,MACtB;AAAA,IACD;AAAA,IACA,SAAS;AAAA,MACR,cAAc;AACb,cAAM,UAAU,WAAW;AAC3B,gBAAQ,YAAY,QAAQ;AAAA,MAC7B;AAAA,IACD;AAAA,IACA,WAAW;AAAA,MACV,qBAAqB;AACpB,cAAM,UAAU,WAAW;AAC3B,cAAM,EAAE,IAAI,IAAI,WAAW;AAE3B,YAAK,CAAE,QAAQ,aAAa,CAAE,KAAM;AACnC;AAAA,QACD;AAEA,cAAM,QACL,MAAM,UAAW,QAAQ,UAAW,GAAG,OACtC,QAAQ,SACT;AACD,YAAK,CAAE,OAAO,KAAM;AACnB;AAAA,QACD;AAEA,cAAM,WAAW,YAAY,IAAK,GAAI;AAGtC,YAAK,UAAU,QAAQ,MAAM,KAAM;AAClC;AAAA,QACD;AAIA,cAAM,iBAAiB,CAAC,CAAE,UAAU;AAEpC,mBAAY,KAAK,OAAO,gBAAgB,OAAQ;AAAA,MACjD;AAAA,IACD;AAAA,EACD;AAAA,EACA,EAAE,MAAM,KAAK;AACd;AAUA,SAAS,WAAY,KAAK,OAAO,gBAAgB,SAAU;AAC1D,QAAM,WAAW,YAAY,IAAK,GAAI;AAGtC,MAAK,UAAU,UAAW;AACzB,aAAS,SACP,UAAW,MAAM,KAAK,MAAM,OAAO,MAAM,QAAQ;AAAA,MACjD,SAAS,MAAM;AAAA,IAChB,CAAE,EACD,KAAM,MAAM;AACZ,eAAS,MAAM,MAAM;AACrB,UAAK,gBAAiB;AACrB,iBAAS,SAAS,KAAK,GAAG,MAAO,YAAa;AAAA,MAC/C;AAAA,IACD,CAAE,EACD,MAAO,YAAa;AACtB;AAAA,EACD;AAGA,QAAM,SAAS;AAAA,IACd,MAAM,IAAI,QAAQ;AAAA,IAClB,OAAO,IAAI,QAAQ;AAAA,EACpB;AAGA,QAAM,SAAS,mBAAoB,KAAK;AAAA,IACvC,KAAK,MAAM;AAAA,IACX,OAAO,MAAM;AAAA,IACb,QAAQ,MAAM;AAAA,IACd,OAAO,MAAM;AAAA,IACb,UAAU;AAAA,IACV;AAAA,IACA,SAAS,MAAM;AAEd,YAAM,eAAe,QAAQ,OAAO;AAAA,QACnC,CAAE,aAAc,aAAa,QAAQ;AAAA,MACtC;AACA,YAAM,YAAY,QAAQ,OAAQ,eAAe,CAAE;AACnD,UAAK,WAAY;AAChB,gBAAQ,YAAY;AAAA,MACrB;AAAA,IACD;AAAA,EACD,CAAE;AAGF,cAAY,IAAK,KAAK;AAAA,IACrB,KAAK,MAAM;AAAA,IACX,UAAU,OAAO;AAAA,IACjB,SAAS,OAAO;AAAA,EACjB,CAAE;AACH;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store, getContext, getElement } from '@wordpress/interactivity';\n\n/**\n * Internal dependencies\n */\nimport { initWaveformPlayer, logPlayError } from '../utils/waveform-utils';\n\n/**\n * Store player state for each element.\n */\nconst playerState = new WeakMap();\n\nconst { state } = store(\n\t'core/playlist',\n\t{\n\t\tstate: {\n\t\t\tplaylists: {},\n\t\t\tget isCurrentTrack() {\n\t\t\t\tconst { currentId, uniqueId } = getContext();\n\t\t\t\treturn currentId === uniqueId;\n\t\t\t},\n\t\t},\n\t\tactions: {\n\t\t\tchangeTrack() {\n\t\t\t\tconst context = getContext();\n\t\t\t\tcontext.currentId = context.uniqueId;\n\t\t\t},\n\t\t},\n\t\tcallbacks: {\n\t\t\tinitWaveformPlayer() {\n\t\t\t\tconst context = getContext();\n\t\t\t\tconst { ref } = getElement();\n\n\t\t\t\tif ( ! context.currentId || ! ref ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst track =\n\t\t\t\t\tstate.playlists[ context.playlistId ]?.tracks[\n\t\t\t\t\t\tcontext.currentId\n\t\t\t\t\t];\n\t\t\t\tif ( ! track?.url ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst existing = playerState.get( ref );\n\n\t\t\t\t// Skip if we already initialized with this exact URL.\n\t\t\t\tif ( existing?.url === track.url ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Autoplay if we're switching from a different track (user action),\n\t\t\t\t// but not on initial page load (when existing has no URL).\n\t\t\t\tconst shouldAutoPlay = !! existing?.url;\n\n\t\t\t\tinitPlayer( ref, track, shouldAutoPlay, context );\n\t\t\t},\n\t\t},\n\t},\n\t{ lock: true }\n);\n\n/**\n * Initialize the waveform player for a given element.\n *\n * @param {Element} ref - The container element.\n * @param {Object} track - The track data.\n * @param {boolean} shouldAutoPlay - Whether to auto-play after initialization.\n * @param {Object} context - The Interactivity API context.\n */\nfunction initPlayer( ref, track, shouldAutoPlay, context ) {\n\tconst existing = playerState.get( ref );\n\n\t// If a player already exists, load the new track without recreating.\n\tif ( existing?.instance ) {\n\t\texisting.instance\n\t\t\t.loadTrack( track.url, track.title, track.artist, {\n\t\t\t\tartwork: track.image,\n\t\t\t} )\n\t\t\t.then( () => {\n\t\t\t\texisting.url = track.url;\n\t\t\t\tif ( shouldAutoPlay ) {\n\t\t\t\t\texisting.instance.play()?.catch( logPlayError );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( logPlayError );\n\t\treturn;\n\t}\n\n\t// Read translated labels from server-rendered data attributes.\n\tconst labels = {\n\t\tplay: ref.dataset.labelPlay,\n\t\tpause: ref.dataset.labelPause,\n\t};\n\n\t// Initialize using the shared core.\n\tconst player = initWaveformPlayer( ref, {\n\t\tsrc: track.url,\n\t\ttitle: track.title,\n\t\tartist: track.artist,\n\t\timage: track.image,\n\t\tautoPlay: shouldAutoPlay,\n\t\tlabels,\n\t\twaveformStyle: context.waveformStyle,\n\t\tonEnded: () => {\n\t\t\t// Advance to next track (autoPlay handles playback).\n\t\t\tconst currentIndex = context.tracks.findIndex(\n\t\t\t\t( uniqueId ) => uniqueId === context.currentId\n\t\t\t);\n\t\t\tconst nextTrack = context.tracks[ currentIndex + 1 ];\n\t\t\tif ( nextTrack ) {\n\t\t\t\tcontext.currentId = nextTrack;\n\t\t\t}\n\t\t},\n\t} );\n\n\t// Store state for cleanup, including instance for loadTrack reuse.\n\tplayerState.set( ref, {\n\t\turl: track.url,\n\t\tinstance: player.instance,\n\t\tdestroy: player.destroy,\n\t} );\n}\n"],
5
+ "mappings": ";AAGA,SAAS,OAAO,YAAY,kBAAkB;AAK9C,SAAS,oBAAoB,oBAAoB;AAKjD,IAAM,cAAc,oBAAI,QAAQ;AAEhC,IAAM,EAAE,MAAM,IAAI;AAAA,EACjB;AAAA,EACA;AAAA,IACC,OAAO;AAAA,MACN,WAAW,CAAC;AAAA,MACZ,IAAI,iBAAiB;AACpB,cAAM,EAAE,WAAW,SAAS,IAAI,WAAW;AAC3C,eAAO,cAAc;AAAA,MACtB;AAAA,IACD;AAAA,IACA,SAAS;AAAA,MACR,cAAc;AACb,cAAM,UAAU,WAAW;AAC3B,gBAAQ,YAAY,QAAQ;AAAA,MAC7B;AAAA,IACD;AAAA,IACA,WAAW;AAAA,MACV,qBAAqB;AACpB,cAAM,UAAU,WAAW;AAC3B,cAAM,EAAE,IAAI,IAAI,WAAW;AAE3B,YAAK,CAAE,QAAQ,aAAa,CAAE,KAAM;AACnC;AAAA,QACD;AAEA,cAAM,QACL,MAAM,UAAW,QAAQ,UAAW,GAAG,OACtC,QAAQ,SACT;AACD,YAAK,CAAE,OAAO,KAAM;AACnB;AAAA,QACD;AAEA,cAAM,WAAW,YAAY,IAAK,GAAI;AAGtC,YAAK,UAAU,QAAQ,MAAM,KAAM;AAClC;AAAA,QACD;AAIA,cAAM,iBAAiB,CAAC,CAAE,UAAU;AAEpC,mBAAY,KAAK,OAAO,gBAAgB,OAAQ;AAAA,MACjD;AAAA,IACD;AAAA,EACD;AAAA,EACA,EAAE,MAAM,KAAK;AACd;AAUA,SAAS,WAAY,KAAK,OAAO,gBAAgB,SAAU;AAC1D,QAAM,WAAW,YAAY,IAAK,GAAI;AAGtC,MAAK,UAAU,UAAW;AACzB,aAAS,SACP,UAAW,MAAM,KAAK,MAAM,OAAO,MAAM,QAAQ;AAAA,MACjD,SAAS,MAAM;AAAA,IAChB,CAAE,EACD,KAAM,MAAM;AACZ,eAAS,MAAM,MAAM;AACrB,UAAK,gBAAiB;AACrB,iBAAS,SAAS,KAAK,GAAG,MAAO,YAAa;AAAA,MAC/C;AAAA,IACD,CAAE,EACD,MAAO,YAAa;AACtB;AAAA,EACD;AAGA,QAAM,SAAS;AAAA,IACd,MAAM,IAAI,QAAQ;AAAA,IAClB,OAAO,IAAI,QAAQ;AAAA,EACpB;AAGA,QAAM,SAAS,mBAAoB,KAAK;AAAA,IACvC,KAAK,MAAM;AAAA,IACX,OAAO,MAAM;AAAA,IACb,QAAQ,MAAM;AAAA,IACd,OAAO,MAAM;AAAA,IACb,UAAU;AAAA,IACV;AAAA,IACA,eAAe,QAAQ;AAAA,IACvB,SAAS,MAAM;AAEd,YAAM,eAAe,QAAQ,OAAO;AAAA,QACnC,CAAE,aAAc,aAAa,QAAQ;AAAA,MACtC;AACA,YAAM,YAAY,QAAQ,OAAQ,eAAe,CAAE;AACnD,UAAK,WAAY;AAChB,gBAAQ,YAAY;AAAA,MACrB;AAAA,IACD;AAAA,EACD,CAAE;AAGF,cAAY,IAAK,KAAK;AAAA,IACrB,KAAK,MAAM;AAAA,IACX,UAAU,OAAO;AAAA,IACjB,SAAS,OAAO;AAAA,EACjB,CAAE;AACH;",
6
6
  "names": []
7
7
  }
@@ -123,7 +123,6 @@ var PlaylistTrackEdit = ({ attributes, setAttributes, context }) => {
123
123
  /* @__PURE__ */ jsx(
124
124
  TextControl,
125
125
  {
126
- __next40pxDefaultSize: true,
127
126
  label: __("Artist"),
128
127
  value: artist ? stripHTML(artist) : "",
129
128
  onChange: (artistValue) => {
@@ -134,7 +133,6 @@ var PlaylistTrackEdit = ({ attributes, setAttributes, context }) => {
134
133
  /* @__PURE__ */ jsx(
135
134
  TextControl,
136
135
  {
137
- __next40pxDefaultSize: true,
138
136
  label: __("Album"),
139
137
  value: album ? stripHTML(album) : "",
140
138
  onChange: (albumValue) => {
@@ -145,7 +143,6 @@ var PlaylistTrackEdit = ({ attributes, setAttributes, context }) => {
145
143
  /* @__PURE__ */ jsx(
146
144
  TextControl,
147
145
  {
148
- __next40pxDefaultSize: true,
149
146
  label: __("Title"),
150
147
  value: title ? stripHTML(title) : "",
151
148
  onChange: (titleValue) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/playlist-track/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { useRef, useState } from '@wordpress/element';\nimport {\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tBlockIcon,\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tPanelBody,\n\tTextControl,\n\tBaseControl,\n\tSpinner,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __ } from '@wordpress/i18n';\nimport { audio as icon } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\nconst ALBUM_COVER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PlaylistTrackEdit = ( { attributes, setAttributes, context } ) => {\n\t// Note that 'id' is the media attachment ID, while 'uniqueId' is a unique identifier.\n\t// This is to make sure that the same media can be used in more than one track.\n\tconst { id, uniqueId, src, album, artist, image, length, title } =\n\t\tattributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst showArtists = context?.showArtists;\n\tconst currentTrack = context?.currentTrack;\n\tconst imageButton = useRef();\n\tconst blockProps = useBlockProps();\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\tsrc: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectTrack,\n\t\tonError: onUploadError,\n\t} );\n\n\tfunction onSelectTrack( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tuniqueId: undefined,\n\t\t\t\tartist: undefined,\n\t\t\t\talbum: undefined,\n\t\t\t\timage: undefined,\n\t\t\t\tlength: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\turl: 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\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tid: media.id,\n\t\t\tuniqueId: uuid(),\n\t\t\tsrc: media.url,\n\t\t\tartist:\n\t\t\t\tmedia.artist ||\n\t\t\t\tmedia?.meta?.artist ||\n\t\t\t\tmedia?.media_details?.artist ||\n\t\t\t\t__( 'Unknown artist' ),\n\t\t\talbum:\n\t\t\t\tmedia.album ||\n\t\t\t\tmedia?.meta?.album ||\n\t\t\t\tmedia?.media_details?.album ||\n\t\t\t\t__( 'Unknown album' ),\n\t\t\t// Prevent using the default media attachment icon as the track image.\n\t\t\timage:\n\t\t\t\tmedia?.image?.src &&\n\t\t\t\tmedia?.image?.src.endsWith( '/images/media/audio.svg' )\n\t\t\t\t\t? ''\n\t\t\t\t\t: media?.image?.src,\n\t\t\tlength: media?.fileLength || media?.media_details?.length_formatted,\n\t\t\ttitle: media.title,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectAlbumCoverImage( coverImage ) {\n\t\tsetAttributes( { image: coverImage.url } );\n\t}\n\n\tfunction onRemoveAlbumCoverImage() {\n\t\tsetAttributes( { image: undefined } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\timageButton.current.focus();\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\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'Track' ),\n\t\t\t\t\t\tinstructions: __(\n\t\t\t\t\t\t\t'Upload an audio file or pick one from your media library.'\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ onSelectTrack }\n\t\t\t\t\taccept=\"audio/*\"\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/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tname={ __( 'Replace' ) }\n\t\t\t\t\tonSelect={ onSelectTrack }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Artist' ) }\n\t\t\t\t\t\tvalue={ artist ? stripHTML( artist ) : '' }\n\t\t\t\t\t\tonChange={ ( artistValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { artist: artistValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Album' ) }\n\t\t\t\t\t\tvalue={ album ? stripHTML( album ) : '' }\n\t\t\t\t\t\tonChange={ ( albumValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { album: albumValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tvalue={ title ? stripHTML( title ) : '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<div className=\"editor-video-poster-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Album cover image' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t{ !! image && (\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\tsrc={ image }\n\t\t\t\t\t\t\t\t\talt={ __(\n\t\t\t\t\t\t\t\t\t\t'Preview of the album cover image'\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) }\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={ __( 'Select image' ) }\n\t\t\t\t\t\t\t\tonSelect={ onSelectAlbumCoverImage }\n\t\t\t\t\t\t\t\tallowedTypes={ ALBUM_COVER_ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tref={ imageButton }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ ! image\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Select' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Replace' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ !! image && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tonClick={ onRemoveAlbumCoverImage }\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<li { ...blockProps }>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"wp-block-playlist-track__button\"\n\t\t\t\t\tdata-wp-context={ JSON.stringify( { uniqueId } ) }\n\t\t\t\t\taria-current={\n\t\t\t\t\t\tcurrentTrack === uniqueId ? 'true' : 'false'\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<span className=\"wp-block-playlist-track__content\">\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\t\tclassName=\"wp-block-playlist-track__title\"\n\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\tplaceholder={ __( 'Add title' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { title: value } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tallowedFormats={ [] }\n\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ showArtists && (\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\t\t\tclassName=\"wp-block-playlist-track__artist\"\n\t\t\t\t\t\t\t\tvalue={ artist }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Add artist' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { artist: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tallowedFormats={ [] }\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"wp-block-playlist-track__length\">\n\t\t\t\t\t\t{ length && (\n\t\t\t\t\t\t\t<span className=\"screen-reader-text\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t/* translators: %s: Visually hidden label for the track length (screen reader text). */\n\t\t\t\t\t\t\t\t\t__( 'Length:' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ length }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"screen-reader-text\">\n\t\t\t\t\t\t{ __( 'Select to play this track' ) }\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default PlaylistTrackEdit;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { useRef, useState } from '@wordpress/element';\nimport {\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tBlockIcon,\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tPanelBody,\n\tTextControl,\n\tBaseControl,\n\tSpinner,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __ } from '@wordpress/i18n';\nimport { audio as icon } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\nconst ALBUM_COVER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PlaylistTrackEdit = ( { attributes, setAttributes, context } ) => {\n\t// Note that 'id' is the media attachment ID, while 'uniqueId' is a unique identifier.\n\t// This is to make sure that the same media can be used in more than one track.\n\tconst { id, uniqueId, src, album, artist, image, length, title } =\n\t\tattributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst showArtists = context?.showArtists;\n\tconst currentTrack = context?.currentTrack;\n\tconst imageButton = useRef();\n\tconst blockProps = useBlockProps();\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\tsrc: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectTrack,\n\t\tonError: onUploadError,\n\t} );\n\n\tfunction onSelectTrack( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tuniqueId: undefined,\n\t\t\t\tartist: undefined,\n\t\t\t\talbum: undefined,\n\t\t\t\timage: undefined,\n\t\t\t\tlength: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\turl: 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\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tid: media.id,\n\t\t\tuniqueId: uuid(),\n\t\t\tsrc: media.url,\n\t\t\tartist:\n\t\t\t\tmedia.artist ||\n\t\t\t\tmedia?.meta?.artist ||\n\t\t\t\tmedia?.media_details?.artist ||\n\t\t\t\t__( 'Unknown artist' ),\n\t\t\talbum:\n\t\t\t\tmedia.album ||\n\t\t\t\tmedia?.meta?.album ||\n\t\t\t\tmedia?.media_details?.album ||\n\t\t\t\t__( 'Unknown album' ),\n\t\t\t// Prevent using the default media attachment icon as the track image.\n\t\t\timage:\n\t\t\t\tmedia?.image?.src &&\n\t\t\t\tmedia?.image?.src.endsWith( '/images/media/audio.svg' )\n\t\t\t\t\t? ''\n\t\t\t\t\t: media?.image?.src,\n\t\t\tlength: media?.fileLength || media?.media_details?.length_formatted,\n\t\t\ttitle: media.title,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectAlbumCoverImage( coverImage ) {\n\t\tsetAttributes( { image: coverImage.url } );\n\t}\n\n\tfunction onRemoveAlbumCoverImage() {\n\t\tsetAttributes( { image: undefined } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\timageButton.current.focus();\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\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'Track' ),\n\t\t\t\t\t\tinstructions: __(\n\t\t\t\t\t\t\t'Upload an audio file or pick one from your media library.'\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ onSelectTrack }\n\t\t\t\t\taccept=\"audio/*\"\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/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tname={ __( 'Replace' ) }\n\t\t\t\t\tonSelect={ onSelectTrack }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Artist' ) }\n\t\t\t\t\t\tvalue={ artist ? stripHTML( artist ) : '' }\n\t\t\t\t\t\tonChange={ ( artistValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { artist: artistValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Album' ) }\n\t\t\t\t\t\tvalue={ album ? stripHTML( album ) : '' }\n\t\t\t\t\t\tonChange={ ( albumValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { album: albumValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tvalue={ title ? stripHTML( title ) : '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<div className=\"editor-video-poster-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Album cover image' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t{ !! image && (\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\tsrc={ image }\n\t\t\t\t\t\t\t\t\talt={ __(\n\t\t\t\t\t\t\t\t\t\t'Preview of the album cover image'\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) }\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={ __( 'Select image' ) }\n\t\t\t\t\t\t\t\tonSelect={ onSelectAlbumCoverImage }\n\t\t\t\t\t\t\t\tallowedTypes={ ALBUM_COVER_ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tref={ imageButton }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ ! image\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Select' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Replace' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ !! image && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tonClick={ onRemoveAlbumCoverImage }\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<li { ...blockProps }>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"wp-block-playlist-track__button\"\n\t\t\t\t\tdata-wp-context={ JSON.stringify( { uniqueId } ) }\n\t\t\t\t\taria-current={\n\t\t\t\t\t\tcurrentTrack === uniqueId ? 'true' : 'false'\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<span className=\"wp-block-playlist-track__content\">\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\t\tclassName=\"wp-block-playlist-track__title\"\n\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\tplaceholder={ __( 'Add title' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { title: value } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tallowedFormats={ [] }\n\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ showArtists && (\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\t\t\tclassName=\"wp-block-playlist-track__artist\"\n\t\t\t\t\t\t\t\tvalue={ artist }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Add artist' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { artist: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tallowedFormats={ [] }\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"wp-block-playlist-track__length\">\n\t\t\t\t\t\t{ length && (\n\t\t\t\t\t\t\t<span className=\"screen-reader-text\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t/* translators: %s: Visually hidden label for the track length (screen reader text). */\n\t\t\t\t\t\t\t\t\t__( 'Length:' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ length }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"screen-reader-text\">\n\t\t\t\t\t\t{ __( 'Select to play this track' ) }\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default PlaylistTrackEdit;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -344,7 +344,7 @@ function PostAuthorEdit({
344
344
  identifier: "byline",
345
345
  className: "wp-block-post-author__byline",
346
346
  "aria-label": __("Post author byline text"),
347
- placeholder: __("Write byline\u2026"),
347
+ placeholder: __("Write byline"),
348
348
  value: byline,
349
349
  onChange: (value) => setAttributes({ byline: value })
350
350
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/post-author/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tComboboxControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalText as WCText,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { recreateWithRecommendedBlocks } from './utils';\nimport {\n\tuseDefaultAvatar,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\n\nconst { InspectorControlsLastItem } = unlock( blockEditorPrivateApis );\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: 100,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nfunction AuthorCombobox( { value, onChange } ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst { authors, isLoading } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUsers, isResolving } = select( coreStore );\n\n\t\t\tconst query = { ...AUTHORS_QUERY };\n\t\t\tif ( filterValue ) {\n\t\t\t\tquery.search = filterValue;\n\t\t\t\tquery.search_columns = [ 'name' ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tauthors: getUsers( query ),\n\t\t\t\tisLoading: isResolving( 'getUsers', [ query ] ),\n\t\t\t};\n\t\t},\n\t\t[ filterValue ]\n\t);\n\n\tconst authorOptions = useMemo( () => {\n\t\tconst fetchedAuthors = ( authors ?? [] ).map( ( author ) => {\n\t\t\treturn {\n\t\t\t\tvalue: author.id,\n\t\t\t\tlabel: decodeEntities( author.name ),\n\t\t\t};\n\t\t} );\n\n\t\t// Ensure the current author is included in the list.\n\t\tconst foundAuthor = fetchedAuthors.findIndex(\n\t\t\t( fetchedAuthor ) => value?.id === fetchedAuthor.value\n\t\t);\n\n\t\tlet currentAuthor = [];\n\t\tif ( foundAuthor < 0 && value ) {\n\t\t\tcurrentAuthor = [\n\t\t\t\t{\n\t\t\t\t\tvalue: value.id,\n\t\t\t\t\tlabel: decodeEntities( value.name ),\n\t\t\t\t},\n\t\t\t];\n\t\t} else if ( foundAuthor < 0 && ! value ) {\n\t\t\tcurrentAuthor = [\n\t\t\t\t{\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\tlabel: __( '(No author)' ),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn [ ...currentAuthor, ...fetchedAuthors ];\n\t}, [ authors, value ] );\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Author' ) }\n\t\t\toptions={ authorOptions }\n\t\t\tvalue={ value?.id }\n\t\t\tonFilterValueChange={ debounce( setFilterValue, 300 ) }\n\t\t\tonChange={ onChange }\n\t\t\tallowReset={ false }\n\t\t\tisLoading={ isLoading }\n\t\t/>\n\t);\n}\n\nfunction PostAuthorEdit( {\n\tisSelected,\n\tcontext: { postType, postId, queryId },\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst defaultAvatar = useDefaultAvatar();\n\n\tconst { authorDetails, canAssignAuthor, supportsAuthor } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getPostType } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst currentPost = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst authorId = currentPost?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorDetails: authorId\n\t\t\t\t\t? getUser( authorId, { context: 'view' } )\n\t\t\t\t\t: null,\n\t\t\t\tsupportsAuthor:\n\t\t\t\t\tgetPostType( postType )?.supports?.author ?? false,\n\t\t\t\tcanAssignAuthor: currentPost?._links?.[\n\t\t\t\t\t'wp:action-assign-author'\n\t\t\t\t]\n\t\t\t\t\t? true\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst {\n\t\ttextAlign,\n\t\tshowAvatar,\n\t\tshowBio,\n\t\tbyline,\n\t\tisLink,\n\t\tlinkTarget,\n\t\tavatarSize,\n\t} = attributes;\n\tconst avatarSizes = [];\n\tconst authorName = authorDetails?.name || __( 'Post Author' );\n\tif ( authorDetails?.avatar_urls ) {\n\t\tObject.keys( authorDetails.avatar_urls ).forEach( ( size ) => {\n\t\t\tavatarSizes.push( {\n\t\t\t\tvalue: size,\n\t\t\t\tlabel: `${ size } x ${ size }`,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst handleSelect = ( nextAuthorId ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tauthor: nextAuthorId,\n\t\t} );\n\t};\n\n\tconst showAuthorControl =\n\t\t!! postId && ! isDescendentOfQueryLoop && canAssignAuthor;\n\n\tif ( ! supportsAuthor && postType !== undefined ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t__( 'This post type (%s) does not support the author.' ),\n\t\t\t\t\tpostType\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction transformBlock() {\n\t\treplaceBlock(\n\t\t\tclientId,\n\t\t\trecreateWithRecommendedBlocks( attributes, blockTypes )\n\t\t);\n\t}\n\n\treturn (\n\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\tavatarSize: 48,\n\t\t\t\t\t\t\tshowAvatar: true,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\tlinkTarget: '_self',\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{ showAuthorControl && (\n\t\t\t\t\t\t<div style={ { gridColumn: '1 / -1' } }>\n\t\t\t\t\t\t\t<AuthorCombobox\n\t\t\t\t\t\t\t\tvalue={ authorDetails }\n\t\t\t\t\t\t\t\tonChange={ handleSelect }\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\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showAvatar }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showAvatar: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\t\tchecked={ showAvatar }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowAvatar: ! showAvatar,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ showAvatar && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => avatarSize !== 48 }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { avatarSize: 48 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\t\tvalue={ avatarSize }\n\t\t\t\t\t\t\t\toptions={ avatarSizes }\n\t\t\t\t\t\t\t\tonChange={ ( size ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tavatarSize: Number( size ),\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/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! showBio }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showBio: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\t\tchecked={ !! showBio }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showBio: ! showBio } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! isLink }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Link target' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ blockTypes.some(\n\t\t\t\t( blockType ) => blockType.name === 'core/group'\n\t\t\t) && (\n\t\t\t\t<InspectorControlsLastItem>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"wp-block-post-author__transform\"\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<WCText as=\"p\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'This block is no longer supported. Recreate its design with the Avatar, Author Name and Author Biography blocks.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ transformBlock }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Recreate' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</VStack>\n\t\t\t\t</InspectorControlsLastItem>\n\t\t\t) }\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ showAvatar && (\n\t\t\t\t\t<div className=\"wp-block-post-author__avatar\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\twidth={ avatarSize }\n\t\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\t\tauthorDetails?.avatar_urls?.[ avatarSize ] ||\n\t\t\t\t\t\t\t\tdefaultAvatar\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\talt={\n\t\t\t\t\t\t\t\tauthorDetails?.name || __( 'Default Avatar' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-post-author__content\">\n\t\t\t\t\t{ ( ! RichText.isEmpty( byline ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tidentifier=\"byline\"\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__byline\"\n\t\t\t\t\t\t\taria-label={ __( 'Post author byline text' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write byline\u2026' ) }\n\t\t\t\t\t\t\tvalue={ byline }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { byline: value } )\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\t<p className=\"wp-block-post-author__name\">\n\t\t\t\t\t\t{ isLink ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"#post-author-pseudo-link\"\n\t\t\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ authorName }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tauthorName\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ showBio && (\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__bio\"\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t__html: authorDetails?.description,\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</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorEdit;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tComboboxControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalText as WCText,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { recreateWithRecommendedBlocks } from './utils';\nimport {\n\tuseDefaultAvatar,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\n\nconst { InspectorControlsLastItem } = unlock( blockEditorPrivateApis );\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: 100,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nfunction AuthorCombobox( { value, onChange } ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst { authors, isLoading } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUsers, isResolving } = select( coreStore );\n\n\t\t\tconst query = { ...AUTHORS_QUERY };\n\t\t\tif ( filterValue ) {\n\t\t\t\tquery.search = filterValue;\n\t\t\t\tquery.search_columns = [ 'name' ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tauthors: getUsers( query ),\n\t\t\t\tisLoading: isResolving( 'getUsers', [ query ] ),\n\t\t\t};\n\t\t},\n\t\t[ filterValue ]\n\t);\n\n\tconst authorOptions = useMemo( () => {\n\t\tconst fetchedAuthors = ( authors ?? [] ).map( ( author ) => {\n\t\t\treturn {\n\t\t\t\tvalue: author.id,\n\t\t\t\tlabel: decodeEntities( author.name ),\n\t\t\t};\n\t\t} );\n\n\t\t// Ensure the current author is included in the list.\n\t\tconst foundAuthor = fetchedAuthors.findIndex(\n\t\t\t( fetchedAuthor ) => value?.id === fetchedAuthor.value\n\t\t);\n\n\t\tlet currentAuthor = [];\n\t\tif ( foundAuthor < 0 && value ) {\n\t\t\tcurrentAuthor = [\n\t\t\t\t{\n\t\t\t\t\tvalue: value.id,\n\t\t\t\t\tlabel: decodeEntities( value.name ),\n\t\t\t\t},\n\t\t\t];\n\t\t} else if ( foundAuthor < 0 && ! value ) {\n\t\t\tcurrentAuthor = [\n\t\t\t\t{\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\tlabel: __( '(No author)' ),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn [ ...currentAuthor, ...fetchedAuthors ];\n\t}, [ authors, value ] );\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Author' ) }\n\t\t\toptions={ authorOptions }\n\t\t\tvalue={ value?.id }\n\t\t\tonFilterValueChange={ debounce( setFilterValue, 300 ) }\n\t\t\tonChange={ onChange }\n\t\t\tallowReset={ false }\n\t\t\tisLoading={ isLoading }\n\t\t/>\n\t);\n}\n\nfunction PostAuthorEdit( {\n\tisSelected,\n\tcontext: { postType, postId, queryId },\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst defaultAvatar = useDefaultAvatar();\n\n\tconst { authorDetails, canAssignAuthor, supportsAuthor } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getPostType } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst currentPost = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst authorId = currentPost?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorDetails: authorId\n\t\t\t\t\t? getUser( authorId, { context: 'view' } )\n\t\t\t\t\t: null,\n\t\t\t\tsupportsAuthor:\n\t\t\t\t\tgetPostType( postType )?.supports?.author ?? false,\n\t\t\t\tcanAssignAuthor: currentPost?._links?.[\n\t\t\t\t\t'wp:action-assign-author'\n\t\t\t\t]\n\t\t\t\t\t? true\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst {\n\t\ttextAlign,\n\t\tshowAvatar,\n\t\tshowBio,\n\t\tbyline,\n\t\tisLink,\n\t\tlinkTarget,\n\t\tavatarSize,\n\t} = attributes;\n\tconst avatarSizes = [];\n\tconst authorName = authorDetails?.name || __( 'Post Author' );\n\tif ( authorDetails?.avatar_urls ) {\n\t\tObject.keys( authorDetails.avatar_urls ).forEach( ( size ) => {\n\t\t\tavatarSizes.push( {\n\t\t\t\tvalue: size,\n\t\t\t\tlabel: `${ size } x ${ size }`,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst handleSelect = ( nextAuthorId ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tauthor: nextAuthorId,\n\t\t} );\n\t};\n\n\tconst showAuthorControl =\n\t\t!! postId && ! isDescendentOfQueryLoop && canAssignAuthor;\n\n\tif ( ! supportsAuthor && postType !== undefined ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t__( 'This post type (%s) does not support the author.' ),\n\t\t\t\t\tpostType\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction transformBlock() {\n\t\treplaceBlock(\n\t\t\tclientId,\n\t\t\trecreateWithRecommendedBlocks( attributes, blockTypes )\n\t\t);\n\t}\n\n\treturn (\n\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\tavatarSize: 48,\n\t\t\t\t\t\t\tshowAvatar: true,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\tlinkTarget: '_self',\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{ showAuthorControl && (\n\t\t\t\t\t\t<div style={ { gridColumn: '1 / -1' } }>\n\t\t\t\t\t\t\t<AuthorCombobox\n\t\t\t\t\t\t\t\tvalue={ authorDetails }\n\t\t\t\t\t\t\t\tonChange={ handleSelect }\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\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showAvatar }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showAvatar: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\t\tchecked={ showAvatar }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowAvatar: ! showAvatar,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ showAvatar && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => avatarSize !== 48 }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { avatarSize: 48 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\t\tvalue={ avatarSize }\n\t\t\t\t\t\t\t\toptions={ avatarSizes }\n\t\t\t\t\t\t\t\tonChange={ ( size ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tavatarSize: Number( size ),\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/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! showBio }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showBio: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\t\tchecked={ !! showBio }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showBio: ! showBio } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! isLink }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Link target' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ blockTypes.some(\n\t\t\t\t( blockType ) => blockType.name === 'core/group'\n\t\t\t) && (\n\t\t\t\t<InspectorControlsLastItem>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"wp-block-post-author__transform\"\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<WCText as=\"p\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'This block is no longer supported. Recreate its design with the Avatar, Author Name and Author Biography blocks.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ transformBlock }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Recreate' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</VStack>\n\t\t\t\t</InspectorControlsLastItem>\n\t\t\t) }\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ showAvatar && (\n\t\t\t\t\t<div className=\"wp-block-post-author__avatar\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\twidth={ avatarSize }\n\t\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\t\tauthorDetails?.avatar_urls?.[ avatarSize ] ||\n\t\t\t\t\t\t\t\tdefaultAvatar\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\talt={\n\t\t\t\t\t\t\t\tauthorDetails?.name || __( 'Default Avatar' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-post-author__content\">\n\t\t\t\t\t{ ( ! RichText.isEmpty( byline ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tidentifier=\"byline\"\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__byline\"\n\t\t\t\t\t\t\taria-label={ __( 'Post author byline text' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write byline…' ) }\n\t\t\t\t\t\t\tvalue={ byline }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { byline: value } )\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\t<p className=\"wp-block-post-author__name\">\n\t\t\t\t\t\t{ isLink ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"#post-author-pseudo-link\"\n\t\t\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ authorName }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tauthorName\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ showBio && (\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__bio\"\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t__html: authorDetails?.description,\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</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorEdit;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -79,7 +79,7 @@ function recreateWithRecommendedBlocks(attributes, blockTypes) {
79
79
  [
80
80
  shouldInsertParagraphBlock && createBlock("core/paragraph", {
81
81
  content: byline,
82
- placeholder: __("Write byline\u2026"),
82
+ placeholder: __("Write byline"),
83
83
  style: {
84
84
  typography: {
85
85
  fontSize: "0.5em",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/post-author/utils.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\n/**\n * Generate Author-related blocks based on block attributes.\n *\n * @param {Object} attributes Block's attributes.\n * @param {Object} blockTypes Block types.\n * @return {Object} Generated block.\n */\nexport function recreateWithRecommendedBlocks( attributes, blockTypes ) {\n\tconst {\n\t\tavatarSize,\n\t\tbyline,\n\t\tshowAvatar,\n\t\tshowBio,\n\t\tisLink,\n\t\tlinkTarget,\n\t\ttextAlign,\n\t\tstyle,\n\t\t...restAttributes\n\t} = attributes;\n\n\tconst shouldInsertAvatarBlock =\n\t\tshowAvatar &&\n\t\tblockTypes.some( ( blockType ) => blockType.name === 'core/avatar' );\n\tconst shouldInsertParagraphBlock =\n\t\tbyline &&\n\t\tblockTypes.some( ( blockType ) => blockType.name === 'core/paragraph' );\n\tconst shouldInsertPostAuthorNameBlock = blockTypes.some(\n\t\t( blockType ) => blockType.name === 'core/post-author-name'\n\t);\n\tconst shouldInsertPostAuthorBiographyBlock =\n\t\tshowBio &&\n\t\tblockTypes.some(\n\t\t\t( blockType ) => blockType.name === 'core/post-author-biography'\n\t\t);\n\n\treturn createBlock(\n\t\t'core/group',\n\t\t{\n\t\t\t...restAttributes,\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\tspacing: {\n\t\t\t\t\t...style?.spacing,\n\t\t\t\t\tblockGap: '1em',\n\t\t\t\t},\n\t\t\t\tcolor: {\n\t\t\t\t\t...style?.color,\n\t\t\t\t\t// Duotone must be applied to the avatar block.\n\t\t\t\t\tduotone: undefined,\n\t\t\t\t},\n\t\t\t} ),\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\tflexWrap: 'nowrap',\n\t\t\t\tverticalAlignment: 'top',\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\tshouldInsertAvatarBlock &&\n\t\t\t\tcreateBlock( 'core/avatar', {\n\t\t\t\t\tsize: avatarSize,\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\tborder: {\n\t\t\t\t\t\t\tradius: '0px',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\tduotone: style?.color?.duotone,\n\t\t\t\t\t\t},\n\t\t\t\t\t} ),\n\t\t\t\t} ),\n\t\t\tcreateBlock(\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\tselfStretch: 'fill',\n\t\t\t\t\t\t\tflexSize: null,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\tblockGap: '0',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'flex',\n\t\t\t\t\t\torientation: 'vertical',\n\t\t\t\t\t\tjustifyContent: 'stretch',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\tshouldInsertParagraphBlock &&\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: byline,\n\t\t\t\t\t\t\tplaceholder: __( 'Write byline\u2026' ),\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t\tfontSize: '0.5em',\n\t\t\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ),\n\t\t\t\t\tshouldInsertPostAuthorNameBlock &&\n\t\t\t\t\t\tcreateBlock( 'core/post-author-name', {\n\t\t\t\t\t\t\tisLink,\n\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t\tfontSize: '1em',\n\t\t\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ),\n\t\t\t\t\tshouldInsertPostAuthorBiographyBlock &&\n\t\t\t\t\t\tcreateBlock( 'core/post-author-biography', {\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t\tfontSize: '0.7em',\n\t\t\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ),\n\t\t\t\t].filter( Boolean )\n\t\t\t),\n\t\t].filter( Boolean )\n\t);\n}\n"],
5
- "mappings": ";AAGA,SAAS,mBAAmB;AAC5B,SAAS,UAAU;AACnB,SAAS,eAAe,8BAA8B;AAKtD,SAAS,cAAc;AAEvB,IAAM,EAAE,iBAAiB,IAAI,OAAQ,sBAAuB;AASrD,SAAS,8BAA+B,YAAY,YAAa;AACvE,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACJ,IAAI;AAEJ,QAAM,0BACL,cACA,WAAW,KAAM,CAAE,cAAe,UAAU,SAAS,aAAc;AACpE,QAAM,6BACL,UACA,WAAW,KAAM,CAAE,cAAe,UAAU,SAAS,gBAAiB;AACvE,QAAM,kCAAkC,WAAW;AAAA,IAClD,CAAE,cAAe,UAAU,SAAS;AAAA,EACrC;AACA,QAAM,uCACL,WACA,WAAW;AAAA,IACV,CAAE,cAAe,UAAU,SAAS;AAAA,EACrC;AAED,SAAO;AAAA,IACN;AAAA,IACA;AAAA,MACC,GAAG;AAAA,MACH,OAAO,iBAAkB;AAAA,QACxB,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,QACX;AAAA,QACA,OAAO;AAAA,UACN,GAAG,OAAO;AAAA;AAAA,UAEV,SAAS;AAAA,QACV;AAAA,MACD,CAAE;AAAA,MACF,QAAQ;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,mBAAmB;AAAA,MACpB;AAAA,IACD;AAAA,IACA;AAAA,MACC,2BACC,YAAa,eAAe;AAAA,QAC3B,MAAM;AAAA,QACN,OAAO,iBAAkB;AAAA,UACxB,QAAQ;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,UACA,OAAO;AAAA,YACN,SAAS,OAAO,OAAO;AAAA,UACxB;AAAA,QACD,CAAE;AAAA,MACH,CAAE;AAAA,MACH;AAAA,QACC;AAAA,QACA;AAAA,UACC,OAAO;AAAA,YACN,QAAQ;AAAA,cACP,aAAa;AAAA,cACb,UAAU;AAAA,YACX;AAAA,YACA,SAAS;AAAA,cACR,UAAU;AAAA,YACX;AAAA,UACD;AAAA,UACA,QAAQ;AAAA,YACP,MAAM;AAAA,YACN,aAAa;AAAA,YACb,gBAAgB;AAAA,UACjB;AAAA,QACD;AAAA,QACA;AAAA,UACC,8BACC,YAAa,kBAAkB;AAAA,YAC9B,SAAS;AAAA,YACT,aAAa,GAAI,oBAAgB;AAAA,YACjC,OAAO;AAAA,cACN,YAAY;AAAA,gBACX,UAAU;AAAA,gBACV;AAAA,cACD;AAAA,YACD;AAAA,UACD,CAAE;AAAA,UACH,mCACC,YAAa,yBAAyB;AAAA,YACrC;AAAA,YACA;AAAA,YACA,OAAO;AAAA,cACN,YAAY;AAAA,gBACX,UAAU;AAAA,gBACV;AAAA,cACD;AAAA,YACD;AAAA,UACD,CAAE;AAAA,UACH,wCACC,YAAa,8BAA8B;AAAA,YAC1C,OAAO;AAAA,cACN,YAAY;AAAA,gBACX,UAAU;AAAA,gBACV;AAAA,cACD;AAAA,YACD;AAAA,UACD,CAAE;AAAA,QACJ,EAAE,OAAQ,OAAQ;AAAA,MACnB;AAAA,IACD,EAAE,OAAQ,OAAQ;AAAA,EACnB;AACD;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\n/**\n * Generate Author-related blocks based on block attributes.\n *\n * @param {Object} attributes Block's attributes.\n * @param {Object} blockTypes Block types.\n * @return {Object} Generated block.\n */\nexport function recreateWithRecommendedBlocks( attributes, blockTypes ) {\n\tconst {\n\t\tavatarSize,\n\t\tbyline,\n\t\tshowAvatar,\n\t\tshowBio,\n\t\tisLink,\n\t\tlinkTarget,\n\t\ttextAlign,\n\t\tstyle,\n\t\t...restAttributes\n\t} = attributes;\n\n\tconst shouldInsertAvatarBlock =\n\t\tshowAvatar &&\n\t\tblockTypes.some( ( blockType ) => blockType.name === 'core/avatar' );\n\tconst shouldInsertParagraphBlock =\n\t\tbyline &&\n\t\tblockTypes.some( ( blockType ) => blockType.name === 'core/paragraph' );\n\tconst shouldInsertPostAuthorNameBlock = blockTypes.some(\n\t\t( blockType ) => blockType.name === 'core/post-author-name'\n\t);\n\tconst shouldInsertPostAuthorBiographyBlock =\n\t\tshowBio &&\n\t\tblockTypes.some(\n\t\t\t( blockType ) => blockType.name === 'core/post-author-biography'\n\t\t);\n\n\treturn createBlock(\n\t\t'core/group',\n\t\t{\n\t\t\t...restAttributes,\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\tspacing: {\n\t\t\t\t\t...style?.spacing,\n\t\t\t\t\tblockGap: '1em',\n\t\t\t\t},\n\t\t\t\tcolor: {\n\t\t\t\t\t...style?.color,\n\t\t\t\t\t// Duotone must be applied to the avatar block.\n\t\t\t\t\tduotone: undefined,\n\t\t\t\t},\n\t\t\t} ),\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\tflexWrap: 'nowrap',\n\t\t\t\tverticalAlignment: 'top',\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\tshouldInsertAvatarBlock &&\n\t\t\t\tcreateBlock( 'core/avatar', {\n\t\t\t\t\tsize: avatarSize,\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\tborder: {\n\t\t\t\t\t\t\tradius: '0px',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\tduotone: style?.color?.duotone,\n\t\t\t\t\t\t},\n\t\t\t\t\t} ),\n\t\t\t\t} ),\n\t\t\tcreateBlock(\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\tselfStretch: 'fill',\n\t\t\t\t\t\t\tflexSize: null,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\tblockGap: '0',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'flex',\n\t\t\t\t\t\torientation: 'vertical',\n\t\t\t\t\t\tjustifyContent: 'stretch',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\tshouldInsertParagraphBlock &&\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: byline,\n\t\t\t\t\t\t\tplaceholder: __( 'Write byline' ),\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t\tfontSize: '0.5em',\n\t\t\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ),\n\t\t\t\t\tshouldInsertPostAuthorNameBlock &&\n\t\t\t\t\t\tcreateBlock( 'core/post-author-name', {\n\t\t\t\t\t\t\tisLink,\n\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t\tfontSize: '1em',\n\t\t\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ),\n\t\t\t\t\tshouldInsertPostAuthorBiographyBlock &&\n\t\t\t\t\t\tcreateBlock( 'core/post-author-biography', {\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t\tfontSize: '0.7em',\n\t\t\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ),\n\t\t\t\t].filter( Boolean )\n\t\t\t),\n\t\t].filter( Boolean )\n\t);\n}\n"],
5
+ "mappings": ";AAGA,SAAS,mBAAmB;AAC5B,SAAS,UAAU;AACnB,SAAS,eAAe,8BAA8B;AAKtD,SAAS,cAAc;AAEvB,IAAM,EAAE,iBAAiB,IAAI,OAAQ,sBAAuB;AASrD,SAAS,8BAA+B,YAAY,YAAa;AACvE,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACJ,IAAI;AAEJ,QAAM,0BACL,cACA,WAAW,KAAM,CAAE,cAAe,UAAU,SAAS,aAAc;AACpE,QAAM,6BACL,UACA,WAAW,KAAM,CAAE,cAAe,UAAU,SAAS,gBAAiB;AACvE,QAAM,kCAAkC,WAAW;AAAA,IAClD,CAAE,cAAe,UAAU,SAAS;AAAA,EACrC;AACA,QAAM,uCACL,WACA,WAAW;AAAA,IACV,CAAE,cAAe,UAAU,SAAS;AAAA,EACrC;AAED,SAAO;AAAA,IACN;AAAA,IACA;AAAA,MACC,GAAG;AAAA,MACH,OAAO,iBAAkB;AAAA,QACxB,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,QACX;AAAA,QACA,OAAO;AAAA,UACN,GAAG,OAAO;AAAA;AAAA,UAEV,SAAS;AAAA,QACV;AAAA,MACD,CAAE;AAAA,MACF,QAAQ;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,mBAAmB;AAAA,MACpB;AAAA,IACD;AAAA,IACA;AAAA,MACC,2BACC,YAAa,eAAe;AAAA,QAC3B,MAAM;AAAA,QACN,OAAO,iBAAkB;AAAA,UACxB,QAAQ;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,UACA,OAAO;AAAA,YACN,SAAS,OAAO,OAAO;AAAA,UACxB;AAAA,QACD,CAAE;AAAA,MACH,CAAE;AAAA,MACH;AAAA,QACC;AAAA,QACA;AAAA,UACC,OAAO;AAAA,YACN,QAAQ;AAAA,cACP,aAAa;AAAA,cACb,UAAU;AAAA,YACX;AAAA,YACA,SAAS;AAAA,cACR,UAAU;AAAA,YACX;AAAA,UACD;AAAA,UACA,QAAQ;AAAA,YACP,MAAM;AAAA,YACN,aAAa;AAAA,YACb,gBAAgB;AAAA,UACjB;AAAA,QACD;AAAA,QACA;AAAA,UACC,8BACC,YAAa,kBAAkB;AAAA,YAC9B,SAAS;AAAA,YACT,aAAa,GAAI,eAAgB;AAAA,YACjC,OAAO;AAAA,cACN,YAAY;AAAA,gBACX,UAAU;AAAA,gBACV;AAAA,cACD;AAAA,YACD;AAAA,UACD,CAAE;AAAA,UACH,mCACC,YAAa,yBAAyB;AAAA,YACrC;AAAA,YACA;AAAA,YACA,OAAO;AAAA,cACN,YAAY;AAAA,gBACX,UAAU;AAAA,gBACV;AAAA,cACD;AAAA,YACD;AAAA,UACD,CAAE;AAAA,UACH,wCACC,YAAa,8BAA8B;AAAA,YAC1C,OAAO;AAAA,cACN,YAAY;AAAA,gBACX,UAAU;AAAA,gBACV;AAAA,cACD;AAAA,YACD;AAAA,UACD,CAAE;AAAA,QACJ,EAAE,OAAQ,OAAQ;AAAA,MACnB;AAAA,IACD,EAAE,OAAQ,OAAQ;AAAA,EACnB;AACD;",
6
6
  "names": []
7
7
  }
@@ -32,7 +32,6 @@ function Edit({ attributes: { commentId }, setAttributes }) {
32
32
  /* @__PURE__ */ jsx(
33
33
  TextControl,
34
34
  {
35
- __next40pxDefaultSize: true,
36
35
  value: commentId,
37
36
  onChange: (val) => setCommentIdInput(parseInt(val))
38
37
  }