aitu-app 0.6.76 → 0.6.78

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 (223) hide show
  1. package/README.md +3 -3
  2. package/assets/CanvasAudioPlayer-DutgwdiU.js +2 -0
  3. package/assets/ChatDrawer-E6Fog16I.js +11 -0
  4. package/assets/{ChatMessagesArea-CZkiRzmW.js → ChatMessagesArea-Bgwiz_XP.js} +3 -3
  5. package/assets/DeferredAIInputBar-CPkD8Cv9.js +8 -0
  6. package/assets/DeferredAIInputBar-szBPHiNW.css +1 -0
  7. package/assets/DrawnixDeferredFeatures-Cul76-88.js +2 -0
  8. package/assets/{KnowledgeBaseContent-Dan2DUqY.js → KnowledgeBaseContent-DcX5Jofx.js} +6 -6
  9. package/assets/{MVCreator-Dzjl2fXA.js → MVCreator-DllHozYg.js} +8 -8
  10. package/assets/{ModelBenchmarkWorkbench-oy2wue1u.js → ModelBenchmarkWorkbench-Dv9SNYTi.js} +2 -2
  11. package/assets/MusicAnalyzer-CHcQ5t4P.js +1 -0
  12. package/assets/{MusicAnalyzer-BO44f-db.js → MusicAnalyzer-DDeT6g3c.js} +2 -2
  13. package/assets/ResizableDivider-CaG9JQbJ.js +1 -0
  14. package/assets/TaskQueuePanel-BNhNzGp5.js +1 -0
  15. package/assets/{VideoAnalyzer-iiJpoWb6.js → VideoAnalyzer-BSLz1FaI.js} +2 -2
  16. package/assets/ai-generation-preferences-service-BF7QkuJp.js +1 -0
  17. package/assets/arc-BU2KKCa_.js +1 -0
  18. package/assets/arc-DmGoDCEL.js +1 -0
  19. package/assets/{batch-image-generation-B2R0hJW_.js → batch-image-generation-Bg68r_Ql.js} +5 -5
  20. package/assets/{blockDiagram-38ab4fdb-BmWPnNuS.js → blockDiagram-38ab4fdb-BCGEnMME.js} +1 -1
  21. package/assets/{blockDiagram-38ab4fdb-trArAOFP.js → blockDiagram-38ab4fdb-CsZR5uC5.js} +1 -1
  22. package/assets/board-utils-CpAtoKn2.js +1 -0
  23. package/assets/{browser-Dya3c6_X.js → browser-DpICcNby.js} +1 -1
  24. package/assets/{c4Diagram-3d4e48cf-Cvj3RMOv.js → c4Diagram-3d4e48cf-9fuiuFdV.js} +1 -1
  25. package/assets/{c4Diagram-3d4e48cf-CqJrO4Za.js → c4Diagram-3d4e48cf-WM4wd_GR.js} +1 -1
  26. package/assets/{canvas-insertion-Dq3gR9Nw.js → canvas-insertion-CdUQF7IV.js} +3 -3
  27. package/assets/channel-CZjE-WNp.js +1 -0
  28. package/assets/channel-SXZD6bG3.js +1 -0
  29. package/assets/classDiagram-70f12bd4-CBVHTwQu.js +2 -0
  30. package/assets/{classDiagram-70f12bd4-DvrRZ41d.js → classDiagram-70f12bd4-DcYDedz1.js} +2 -2
  31. package/assets/classDiagram-v2-f2320105-CsxWGkSy.js +2 -0
  32. package/assets/classDiagram-v2-f2320105-jpCwaHEd.js +2 -0
  33. package/assets/{clipper-B4i11tN1.js → clipper-jvd5rF5a.js} +1 -1
  34. package/assets/clone-C4mvvMDb.js +1 -0
  35. package/assets/{createText-2e5e7dd3-D7dXlVes.js → createText-2e5e7dd3-CkXS3l7I.js} +2 -2
  36. package/assets/{createText-2e5e7dd3-B8gnT5hD.js → createText-2e5e7dd3-x5lOIwut.js} +1 -1
  37. package/assets/edges-e0da2a9e-CbrF4nbD.js +4 -0
  38. package/assets/{edges-e0da2a9e-CyRAzEMi.js → edges-e0da2a9e-Ch6PBwWs.js} +2 -2
  39. package/assets/{erDiagram-9861fffd-D8yYsjoN.js → erDiagram-9861fffd-Bq07elcI.js} +3 -3
  40. package/assets/{erDiagram-9861fffd-BHbAa_Ka.js → erDiagram-9861fffd-DSlNVuAZ.js} +4 -4
  41. package/assets/{flowDb-956e92f1-DAqb8wjP.js → flowDb-956e92f1-BqPCJlZp.js} +3 -3
  42. package/assets/{flowDb-956e92f1-f30uG4pp.js → flowDb-956e92f1-Ti5YC4Vv.js} +3 -3
  43. package/assets/{flowDiagram-66a62f08-C4Gz9mOM.js → flowDiagram-66a62f08-CPDuG3rY.js} +3 -3
  44. package/assets/{flowDiagram-66a62f08-CBXypoEi.js → flowDiagram-66a62f08-D3GSABFi.js} +1 -1
  45. package/assets/flowDiagram-v2-96b9c2cf-BCcJ-cre.js +1 -0
  46. package/assets/flowDiagram-v2-96b9c2cf-DCVaFEgV.js +1 -0
  47. package/assets/{flowchart-elk-definition-4a651766-CSm5diF6.js → flowchart-elk-definition-4a651766-BH09NeLA.js} +1 -1
  48. package/assets/{flowchart-elk-definition-4a651766-BHB7pRxm.js → flowchart-elk-definition-4a651766-BLaLPCDV.js} +1 -1
  49. package/assets/{ganttDiagram-c361ad54-CU9a9DsJ.js → ganttDiagram-c361ad54-DL9ZeaEc.js} +4 -4
  50. package/assets/ganttDiagram-c361ad54-Sp9M1KHP.js +257 -0
  51. package/assets/{gitGraphDiagram-72cf32ee-B2zj8Xnu.js → gitGraphDiagram-72cf32ee-BSf1fsDV.js} +1 -1
  52. package/assets/{gitGraphDiagram-72cf32ee-BWOgrFeh.js → gitGraphDiagram-72cf32ee-BWwmRKo-.js} +1 -1
  53. package/assets/{graph-Bnmq4jgf.js → graph--nPw8zXQ.js} +1 -1
  54. package/assets/graph-g-2U7grQ.js +1 -0
  55. package/assets/{index-3862675e-CQLKy6RO.js → index-3862675e-BXwbZ2pz.js} +1 -1
  56. package/assets/{index-3862675e-BSxxidV_.js → index-3862675e-D6Zy95zZ.js} +1 -1
  57. package/assets/index-3eqA7Bag.js +1 -0
  58. package/assets/{index-D1ORCZqJ.js → index-7Q-aiwln.js} +2 -2
  59. package/assets/index-B2dttXd7.js +1 -0
  60. package/assets/index-B7V7-Vxz.js +1 -0
  61. package/assets/index-BHPTfCZM.js +1 -0
  62. package/assets/{index-vvV37Q1S.js → index-BP77pG9S.js} +4 -4
  63. package/assets/index-BPR_DyGD.js +1 -0
  64. package/assets/index-BWrcsh8u.js +1 -0
  65. package/assets/{index-D4qm_1m5.js → index-BXzGHPXz.js} +1 -1
  66. package/assets/index-BaCHOxhI.js +1 -0
  67. package/assets/{index-BoglETHF.js → index-Bq8mPedC.js} +2 -2
  68. package/assets/index-BqHZCcen.js +2 -0
  69. package/assets/index-Bti3m-iW.js +1 -0
  70. package/assets/{index-sPNG1_UN.js → index-BwSnJN93.js} +5 -5
  71. package/assets/{index-D5qxbeGT.js → index-C3qD42ws.js} +1 -1
  72. package/assets/{index-VzDb_AHs.js → index-C5eu4uSl.js} +5 -5
  73. package/assets/index-CLJUfzvO.js +1 -0
  74. package/assets/index-CfgvFFx3.js +271 -0
  75. package/assets/index-CmyOpFTN.js +1 -0
  76. package/assets/index-D4pIkh3S.js +1 -0
  77. package/assets/index-D7b5fX1d.js +1 -0
  78. package/assets/index-DH12_HTj.js +13 -0
  79. package/assets/index-DI0OV6F8.js +7 -0
  80. package/assets/index-DIiIUyb-.js +1 -0
  81. package/assets/index-DcZrElEK.js +2 -0
  82. package/assets/index-DllL1sx1.js +1 -0
  83. package/assets/index-DqMndQiP.js +1 -0
  84. package/assets/index-Dz8sghkK.js +1 -0
  85. package/assets/index-QkP3EC02.js +1 -0
  86. package/assets/index-TkfyNewx.js +1 -0
  87. package/assets/index-ZrVeQUWo.js +1 -0
  88. package/assets/index-eZfwJ9bV.js +3 -0
  89. package/assets/{index-VarwiJlL.js → index-gQ7LgvSv.js} +1 -1
  90. package/assets/{infoDiagram-f8f76790-d-BYTW2w.js → infoDiagram-f8f76790-DpFqCCNv.js} +3 -3
  91. package/assets/{infoDiagram-f8f76790-BMsVq8O_.js → infoDiagram-f8f76790-G2JpJJP7.js} +3 -3
  92. package/assets/{journeyDiagram-49397b02-DCtCkoaC.js → journeyDiagram-49397b02-BdESGMrv.js} +1 -1
  93. package/assets/{journeyDiagram-49397b02-CBqb8-ml.js → journeyDiagram-49397b02-DLLTobRM.js} +1 -1
  94. package/assets/{layout-DKqEkE_W.js → layout-CVkuImk4.js} +1 -1
  95. package/assets/layout-WSR0vNPO.js +1 -0
  96. package/assets/line-D3bnG227.js +1 -0
  97. package/assets/line-DQuMJveY.js +1 -0
  98. package/assets/{linear-C6OQYT56.js → linear-CciP-97N.js} +1 -1
  99. package/assets/linear-Z6vFvuwc.js +1 -0
  100. package/assets/{main-i0s2IJTn.css → main-8DNjLY6L.css} +1 -1
  101. package/assets/main-BFEkxCOK.js +56 -0
  102. package/assets/{mermaid.core-CI-VJEiw.js → mermaid.core-CwZQb0ud.js} +5 -5
  103. package/assets/{mindmap-definition-fc14e90a-k_RSypuP.js → mindmap-definition-fc14e90a-BnJ8OOTI.js} +1 -1
  104. package/assets/{mindmap-definition-fc14e90a-DrtlQLES.js → mindmap-definition-fc14e90a-CxQMydCW.js} +1 -1
  105. package/assets/model-benchmark-launcher-Ct3lYXVq.js +1 -0
  106. package/assets/photo-wall-splitter-BZ88W5Zy.js +1 -0
  107. package/assets/{pieDiagram-8a3498a8-CdknGxKY.js → pieDiagram-8a3498a8-BSDdkTeu.js} +5 -5
  108. package/assets/{pieDiagram-8a3498a8-Bpr5V3o5.js → pieDiagram-8a3498a8-D6VtAoja.js} +4 -4
  109. package/assets/ppt-generation-FzjP_rp0.js +48 -0
  110. package/assets/{quadrantDiagram-120e2f19-Dx3qoKDx.js → quadrantDiagram-120e2f19-BbFV0VXY.js} +3 -3
  111. package/assets/{quadrantDiagram-120e2f19-pVIXp9i6.js → quadrantDiagram-120e2f19-C8k2xuBd.js} +3 -3
  112. package/assets/{requirementDiagram-deff3bca-hM4oekUG.js → requirementDiagram-deff3bca-C3xMdzJV.js} +1 -1
  113. package/assets/{requirementDiagram-deff3bca-DD6NY75P.js → requirementDiagram-deff3bca-CpjqKjYZ.js} +1 -1
  114. package/assets/{sankeyDiagram-04a897e0-BsvEG71N.js → sankeyDiagram-04a897e0-BBJJgsFv.js} +5 -5
  115. package/assets/{sankeyDiagram-04a897e0-C9uf1jU5.js → sankeyDiagram-04a897e0-Bjvig9bW.js} +4 -4
  116. package/assets/{sequenceDiagram-704730f1-CNEBmz1G.js → sequenceDiagram-704730f1-DX1MmBN_.js} +4 -4
  117. package/assets/{sequenceDiagram-704730f1-Bpg54z74.js → sequenceDiagram-704730f1-PFC_9IFI.js} +4 -4
  118. package/assets/settings-dialog-CQM4v791.js +1 -0
  119. package/assets/{skill-dsl-parser-DS3VOBFI.js → skill-dsl-parser-syNWYxFu.js} +10 -10
  120. package/assets/{stateDiagram-587899a1-BN2ZP-3x.js → stateDiagram-587899a1-Dc3mI_B_.js} +1 -1
  121. package/assets/stateDiagram-587899a1-SFMUVAam.js +1 -0
  122. package/assets/{stateDiagram-v2-d93cdb3a-BtV1Ziy9.js → stateDiagram-v2-d93cdb3a-DmnBjHpC.js} +1 -1
  123. package/assets/{stateDiagram-v2-d93cdb3a-BLwIM8s1.js → stateDiagram-v2-d93cdb3a-P4Yt2p_j.js} +1 -1
  124. package/assets/{styles-6aaf32cf-aFVlX_lA.js → styles-6aaf32cf-C3jnr3hV.js} +1 -1
  125. package/assets/{styles-6aaf32cf-CGp3i5qu.js → styles-6aaf32cf-b6AdP7fu.js} +1 -1
  126. package/assets/{styles-9a916d00-BK7pejCH.js → styles-9a916d00-BUiD9iBe.js} +4 -4
  127. package/assets/{styles-9a916d00-CSwFWVnr.js → styles-9a916d00-ii0XTdIm.js} +1 -1
  128. package/assets/styles-c10674c1-Bt89Yy8Q.js +116 -0
  129. package/assets/styles-c10674c1-DbTSpy3W.js +116 -0
  130. package/assets/{svgDrawCommon-08f97a94-Cr4rWU-W.js → svgDrawCommon-08f97a94-BK6lD4D6.js} +1 -1
  131. package/assets/{svgDrawCommon-08f97a94-DypvMDvH.js → svgDrawCommon-08f97a94-D4gIV05W.js} +1 -1
  132. package/assets/{timeline-definition-85554ec2-D3-lXEL5.js → timeline-definition-85554ec2-Bl2y548G.js} +1 -1
  133. package/assets/{timeline-definition-85554ec2-DIwHE15c.js → timeline-definition-85554ec2-CWKg_JxG.js} +3 -3
  134. package/assets/{tool-windows-B-a9r3G3.css → tool-windows-CUNbW1Tz.css} +1 -1
  135. package/assets/tool-windows-DOIu9TAD.js +2975 -0
  136. package/assets/ttd-dialog-DI4kQSg8.js +99 -0
  137. package/assets/{useCharacters-DsZ779l-.js → useCharacters-Chv4Ky7x.js} +3 -3
  138. package/assets/useWorkflowSubmission-BizuDmuw.js +70 -0
  139. package/assets/video-analyze-6v3Y-rUE.js +1 -0
  140. package/assets/{video-generation-C7qCz-ZF.js → video-generation-DnmTlWnm.js} +2 -2
  141. package/assets/video-recovery-service-BeRoh0s2.js +1 -0
  142. package/assets/workflow-generation-utils-me381Cax.js +3 -0
  143. package/assets/workflow-submission-service-YOpo7g37.js +4 -0
  144. package/assets/{xychartDiagram-e933f94c-B17Evxfw.js → xychartDiagram-e933f94c-CJX9_9WF.js} +4 -4
  145. package/assets/{xychartDiagram-e933f94c-Dln5PJtU.js → xychartDiagram-e933f94c-Cep8CQEH.js} +3 -3
  146. package/changelog.json +50 -0
  147. package/idle-prefetch-manifest.json +300 -316
  148. package/manifest.json +3 -3
  149. package/package.json +1 -1
  150. package/precache-manifest.json +8 -8
  151. package/sw.js +5 -5
  152. package/version.json +19 -3
  153. package/assets/CanvasAudioPlayer-DwM6PU4W.js +0 -2
  154. package/assets/ChatDrawer-BQTaa6r6.js +0 -11
  155. package/assets/DeferredAIInputBar-BmPgFhXr.css +0 -1
  156. package/assets/DeferredAIInputBar-ObyfJQ0O.js +0 -7
  157. package/assets/DrawnixDeferredFeatures-CFHVLxc5.js +0 -2
  158. package/assets/ModelDropdown-CQTTHEI7.css +0 -1
  159. package/assets/ModelDropdown-DjvIvi8O.js +0 -1
  160. package/assets/MusicAnalyzer-BU5l2wPR.js +0 -1
  161. package/assets/ResizableDivider-CBgTphcS.js +0 -1
  162. package/assets/TaskQueuePanel-CTDuSScf.js +0 -1
  163. package/assets/ai-generation-preferences-service-CqwXb9Cs.js +0 -5
  164. package/assets/arc-BBE0LXa1.js +0 -1
  165. package/assets/arc-h476db6P.js +0 -1
  166. package/assets/channel-DMTz1UNN.js +0 -1
  167. package/assets/channel-DQOY3XLe.js +0 -1
  168. package/assets/classDiagram-70f12bd4-5ACx619h.js +0 -2
  169. package/assets/classDiagram-v2-f2320105-4zQ4jrwi.js +0 -2
  170. package/assets/classDiagram-v2-f2320105-CB4rof84.js +0 -2
  171. package/assets/clone-fuaXEdc-.js +0 -1
  172. package/assets/edges-e0da2a9e-DZalSm7f.js +0 -4
  173. package/assets/flowDiagram-v2-96b9c2cf-C-DFFh54.js +0 -1
  174. package/assets/flowDiagram-v2-96b9c2cf-CWjydvHB.js +0 -1
  175. package/assets/ganttDiagram-c361ad54-DDnbMkWm.js +0 -257
  176. package/assets/graph-BsYIlc-B.js +0 -1
  177. package/assets/index-B10kMZoq.js +0 -1
  178. package/assets/index-B2_XRj3U.js +0 -1
  179. package/assets/index-B4lLv-Sz.js +0 -1
  180. package/assets/index-BFZNUUCR.js +0 -1
  181. package/assets/index-BTSYG2Vy.js +0 -1
  182. package/assets/index-BY5Kvjqg.js +0 -1
  183. package/assets/index-Blf7J5yW.js +0 -1
  184. package/assets/index-BoQA7VaE.js +0 -3
  185. package/assets/index-BzqQ69oU.js +0 -1
  186. package/assets/index-CD2D1BYc.js +0 -2
  187. package/assets/index-CLRs5cWt.js +0 -1
  188. package/assets/index-CLU4LJjR.js +0 -1
  189. package/assets/index-CPDfMZkS.js +0 -1
  190. package/assets/index-CPfhqyDz.js +0 -316
  191. package/assets/index-CU4ySaQE.js +0 -1
  192. package/assets/index-CsCwwmYY.js +0 -1
  193. package/assets/index-Cyz_w8KS.js +0 -7
  194. package/assets/index-D489cJtb.js +0 -1
  195. package/assets/index-D6DebbcI.js +0 -1
  196. package/assets/index-DDtPG6Km.js +0 -1
  197. package/assets/index-DKhTnUBU.js +0 -1
  198. package/assets/index-DMIwLDS8.js +0 -13
  199. package/assets/index-DgsUJgRJ.js +0 -1
  200. package/assets/index-oT8mbA3U.js +0 -2
  201. package/assets/layout-B1ePJO5V.js +0 -1
  202. package/assets/line-C_jmJ6v1.js +0 -1
  203. package/assets/line-DfhCgsyz.js +0 -1
  204. package/assets/linear-ChY5Iu43.js +0 -1
  205. package/assets/main-LCg1nQGB.js +0 -69
  206. package/assets/model-benchmark-launcher-B2MsZXmV.js +0 -1
  207. package/assets/model-benchmark-service-CkIRp-Sq.js +0 -1
  208. package/assets/model-selection-BvdXmVGX.js +0 -1
  209. package/assets/photo-wall-splitter-CVrfkWnh.js +0 -1
  210. package/assets/prompt-optimize-dialog-DLdL2_a1.css +0 -1
  211. package/assets/settings-dialog-CAhU3cfG.js +0 -1
  212. package/assets/stateDiagram-587899a1-CMylUAYu.js +0 -1
  213. package/assets/styles-c10674c1-KfJINP7I.js +0 -116
  214. package/assets/styles-c10674c1-cccyjRUz.js +0 -116
  215. package/assets/tool-windows-CtLXQDGF.js +0 -2847
  216. package/assets/ttd-dialog-BRg3XE5k.js +0 -99
  217. package/assets/use-runtime-models-BH9r4Yc1.js +0 -1
  218. package/assets/use-runtime-models-BgWWl4Ng.css +0 -1
  219. package/assets/useWorkflowSubmission-BeJQ3BuO.js +0 -70
  220. package/assets/video-analyze-aDVIfgUi.js +0 -1
  221. package/assets/video-recovery-service-Dy0xiPr8.js +0 -1
  222. package/assets/workflow-generation-utils-CpMilOwA.js +0 -3
  223. package/assets/workflow-submission-service-CmBBMIis.js +0 -4
@@ -1,6 +1,6 @@
1
- import{y as e,aI as Ke,at as Le,r as s,na as ue,nb as ge,nc as se,nd as $e,ne as qe,fy as pe,h0 as _,lu as Ye,h2 as F,lL as Re,nf as He,ng as Oe,nh as We,ni as Qe,hg as Ne,nj as Se,nk as Ce,nl as Je,nm as Xe,hA as Ze,ic as ea,nn as be,no as aa,np as sa,nq as ia,j1 as na,fQ as ra,h1 as ie,bV as ua,nr as la}from"./tool-windows-CtLXQDGF.js";import{M as ye}from"./ModelDropdown-DjvIvi8O.js";import{u as fe}from"./use-runtime-models-BH9r4Yc1.js";import{a as xe}from"./model-selection-BvdXmVGX.js";import{quickInsert as Fe}from"./canvas-insertion-Dq3gR9Nw.js";import{s as Ve,i as ta,g as ca,a as da}from"./MusicAnalyzer-BU5l2wPR.js";/* empty css */import"./model-benchmark-service-CkIRp-Sq.js";const Ie=[{id:"create",label:"创作"},{id:"lyrics",label:"歌词"},{id:"generate",label:"生成"}],oa=({current:a,onNavigate:n,hasRecord:u})=>{const v=Ie.findIndex(c=>c.id===a);return e.jsxDEV("div",{className:"va-step-bar",children:Ie.map((c,b)=>{const g=c.id===a,k=b<v,N=!u&&b>0;return e.jsxDEV(Ke.Fragment,{children:[b>0&&e.jsxDEV("span",{className:"va-step-arrow",children:"→"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:32,columnNumber:27},void 0),e.jsxDEV("button",{className:`va-step ${g?"active":""} ${k?"past":""}`,onClick:()=>!N&&n(c.id),disabled:N,children:[e.jsxDEV("span",{className:"va-step-num",children:b+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:38,columnNumber:15},void 0),c.label]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:33,columnNumber:13},void 0)]},c.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:31,columnNumber:11},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:24,columnNumber:5},void 0)};function Te(a){return(a||"").trim().toLowerCase().replace(/[^a-z0-9]/g,"")||"mp3"}function ma(a){const n=a.name.split(".").pop();return n&&n.length<=8?Te(n):Te(a.type.split("/")[1])}async function pa(a,n){const u=ma(a),c=`/__aitu_cache__/audio/${`music-analyzer-source-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}.${u}`;return await Le.cacheMediaFromBlob(c,a,"audio",{metadata:{source:"music-analyzer-input",fileName:a.name,mimeType:a.type||"audio/mpeg",size:a.size}}),{type:"upload",cacheUrl:c,fileName:a.name||`music-source.${u}`,mimeType:a.type||"audio/mpeg",size:a.size}}async function fa(a){if(!a||a.type!=="upload")return null;const n=await Le.getCachedBlob(a.cacheUrl);return n?new File([n],a.fileName||"music-source.mp3",{type:a.mimeType||n.type||"audio/mpeg",lastModified:Date.now()}):null}const je="gemini-2.5-pro",ve="music-analyzer:model",ke="music-analyzer:lyrics-model",Ue="music-analyzer:creation-prompt";function ga(a){return`${(a/1024/1024).toFixed(1)}MB`}function Na(){try{return sessionStorage.getItem(Ue)||""}catch{return""}}function Ae(a){try{if(a){sessionStorage.setItem(Ue,a);return}sessionStorage.removeItem(Ue)}catch{}}const ya=({existingRecord:a,onComplete:n,onRecordsChange:u,onCreateNew:v,onNext:c,onLyricsReady:b})=>{const[g,k]=s.useState((a==null?void 0:a.source)==="upload"?"reference":"scratch"),[N,S]=s.useState(()=>(a==null?void 0:a.creationPrompt)||Na()),[w,A]=s.useState(()=>(a==null?void 0:a.pendingLyricsGenTaskId)||null),[z,C]=s.useState(""),[m,P]=s.useState(null),[t,y]=s.useState(null),[d,j]=s.useState(""),[o,f]=s.useState(!0),[B,ee]=s.useState(""),[L,le]=s.useState(""),[K,ne]=s.useState(""),re=s.useRef(null),M=s.useRef(null),Q=s.useRef(),[D,U]=s.useState(""),[$,ce]=s.useState(()=>(a==null?void 0:a.analysisModel)||ue(ve,je).modelId),[J,te]=s.useState(()=>(a==null?void 0:a.analysisModelRef)||ue(ve,je).modelRef),[V,X]=s.useState(()=>ue(ke,Ne()).modelId),[H,I]=s.useState(()=>ue(ke,Ne()).modelRef),l=s.useCallback((r,x)=>{ce(r),te(x||null),ge(ve,r,x)},[]),h=s.useCallback((r,x)=>{X(r),I(x||null),ge(ke,r,x)},[]),q=s.useMemo(()=>{if(M.current&&URL.revokeObjectURL(M.current),!m)return M.current=null,null;const r=URL.createObjectURL(m);return M.current=r,r},[m]);s.useEffect(()=>()=>{M.current&&URL.revokeObjectURL(M.current)},[]),s.useEffect(()=>{let r=!1;return(async()=>{if(!a){!t&&!w&&(P(null),U(""));return}ce(a.analysisModel||je),te(a.analysisModelRef||null),S(a.creationPrompt||"");const p=a.analysis?qe(a.analysis):null;if(ee(a.title||(p==null?void 0:p.sunoTitle)||""),le((a.styleTags||(p==null?void 0:p.sunoStyleTags)||(p==null?void 0:p.genreTags)||[]).join(", ")),ne(a.lyricsDraft||(p==null?void 0:p.sunoLyricsDraft)||""),U(""),a.source==="upload"){const T=await fa(a.sourceSnapshot);if(r)return;P(T),T||U("原上传音频缓存已失效,无法自动回填音频")}})(),()=>{r=!0}},[a,t,w]),s.useEffect(()=>{if((a==null?void 0:a.source)==="scratch"){Ae(a.creationPrompt||"");return}a||Ae(N)},[N,a]),s.useEffect(()=>{if(!(!a||g!=="reference"))return clearTimeout(Q.current),Q.current=setTimeout(async()=>{const r=L.split(",").map(T=>T.trim()).filter(Boolean),x=await se(a.id,{title:B.trim(),styleTags:r,lyricsDraft:K});u(x);const p=x.find(T=>T.id===a.id);p&&n(p)},400),()=>clearTimeout(Q.current)},[K,L,B,a,g,n,u]);const R=fe("text"),O=s.useMemo(()=>R.filter(r=>/^gemini/i.test(r.id)),[R]),i=fe("audio"),G=s.useMemo(()=>$e(R,i),[R,i]),E=s.useMemo(()=>a!=null&&a.analysis?qe(a.analysis):null,[a==null?void 0:a.analysis]),ae=s.useCallback(r=>{var p;const x=(p=r.target.files)==null?void 0:p[0];x!=null&&x.type.startsWith("audio/")?(P(x),U("")):U("请选择音频文件")},[]),Y=s.useCallback(r=>{r.preventDefault();const x=r.dataTransfer.files[0];x!=null&&x.type.startsWith("audio/")?(P(x),U("")):U("请选择音频文件")},[]),W=s.useCallback(async()=>{if(!m){U("请先上传音频");return}pe.trackUIInteraction({area:"popular_music_tool",action:"audio_analysis_started",control:"analyze_audio",source:"music_analyzer_create_page",metadata:{fileSizeBytes:m.size,hasModelRef:!!J}}),U(""),j("缓存音频...");try{const r=await pa(m),x=_.createTask({prompt:`分析音频:${m.name||"本地音频"}`,model:$,modelRef:J,mimeType:r.mimeType,audioCacheUrl:r.cacheUrl,musicAnalyzerAction:"analyze",musicAnalyzerPrompt:Ye,musicAnalyzerSource:"upload",musicAnalyzerSourceLabel:r.fileName,musicAnalyzerSourceSnapshot:r,autoInsertToCanvas:!1},F.CHAT);y(x.id),j("音频分析中 0%")}catch(r){U(r.message||"音频分析失败")}},[m,$,J]),de=s.useCallback(async()=>{if(!N.trim()){U("请先描述你想创作的歌曲");return}const r=He(V);pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_generation_started",control:"generate_lyrics",source:"music_analyzer_create_page",metadata:{engine:r?"suno":"text_model",promptLength:N.trim().length,hasModelRef:!!H}}),U(""),C(r?"歌词生成中...":"歌词草稿生成中 0%");try{const x={id:Re(),createdAt:Date.now(),source:"scratch",sourceLabel:N.slice(0,30)||"从零创作",creationPrompt:N,starred:!1},p=r?_.createTask({prompt:N,model:V,modelRef:H,sunoAction:"lyrics",musicAnalyzerAction:"lyrics-gen",musicAnalyzerRecordId:x.id,autoInsertToCanvas:!1},F.AUDIO):_.createTask({prompt:`从零创作歌词:${x.sourceLabel}`,model:V,modelRef:H,musicAnalyzerAction:"lyrics-gen",musicAnalyzerPrompt:Oe({userPrompt:N,mode:"create"}),musicAnalyzerRecordId:x.id,autoInsertToCanvas:!1},F.CHAT);x.pendingLyricsGenTaskId=p.id;const T=await We(x);u(T),n(x),A(p.id)}catch(x){U(x.message||"歌词生成失败"),C("")}},[N,n,u,V,H]);s.useEffect(()=>{if(!t)return;const r=_.getTask(t);typeof(r==null?void 0:r.progress)=="number"&&j(`音频分析中 ${Math.round(r.progress)}%`);const x=_.observeTaskUpdates().subscribe(p=>{var T;if(p.task.id===t){if(p.task.status==="failed"){y(null),j(""),U(((T=p.task.error)==null?void 0:T.message)||"音频分析失败");return}if(p.task.status==="completed"){Ve(p.task).then(Z=>{Z&&(u(Z.records),n(Z.record))}).catch(Z=>U(Z.message||"分析结果同步失败")).finally(()=>{y(null),j("")});return}typeof p.task.progress=="number"&&j(`音频分析中 ${Math.round(p.task.progress)}%`)}});return()=>x.unsubscribe()},[t,n,u]),s.useEffect(()=>{if(!w)return;const r=_.getTask(w);if(typeof(r==null?void 0:r.progress)=="number"){const p=r.type===F.CHAT?"歌词草稿生成中":"歌词生成中";C(`${p} ${Math.round(r.progress)}%`)}const x=_.observeTaskUpdates().subscribe(p=>{var T;if(p.task.id===w){if(p.task.status==="failed"){const Z=String(p.task.params.musicAnalyzerRecordId||"").trim();A(null),C(""),U(((T=p.task.error)==null?void 0:T.message)||"歌词生成失败"),Z&&se(Z,{pendingLyricsGenTaskId:null}).then(u);return}if(p.task.status==="completed"){A(null),C(""),b==null||b();return}if(typeof p.task.progress=="number"){const Z=p.task.type===F.CHAT?"歌词草稿生成中":"歌词生成中";C(`${Z} ${Math.round(p.task.progress)}%`)}}});return()=>x.unsubscribe()},[b,u,w]);const he=s.useCallback(async()=>{E&&(await Fe("text",Qe(E)),pe.trackUIInteraction({area:"popular_music_tool",action:"analysis_inserted_to_canvas",control:"insert_analysis",source:"music_analyzer_create_page",metadata:{hasSunoTitle:!!E.sunoTitle,tagsCount:E.sunoStyleTags.length}}))},[E]);return e.jsxDEV("div",{className:"ma-create-page",children:[e.jsxDEV("div",{className:"ma-mode-toggle",children:[e.jsxDEV("button",{className:`ma-mode-btn ${g==="scratch"?"active":""}`,onClick:()=>k("scratch"),children:"从零创作"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:488,columnNumber:9},void 0),e.jsxDEV("button",{className:`ma-mode-btn ${g==="reference"?"active":""}`,onClick:()=>k("reference"),children:"参考音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:494,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:487,columnNumber:7},void 0),e.jsxDEV("div",{className:"va-page",children:[g==="scratch"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"歌词草稿模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:508,columnNumber:15},void 0),e.jsxDEV("span",{className:"ma-muted",children:"文本模型会补齐 Suno 所需标题/标签/歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:509,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:507,columnNumber:13},void 0),e.jsxDEV(ye,{selectedModel:V,selectedSelectionKey:xe(V,H),onSelect:h,models:G,variant:"form",placement:"down",placeholder:"选择歌词草稿模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:511,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:506,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"描述你想创作的歌曲"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:524,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:523,columnNumber:13},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:N,onChange:r=>S(r.target.value),rows:6,placeholder:"例如:一首关于夏天海边的轻快流行歌,女声,带有吉他和电子节拍"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:526,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:522,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:505,columnNumber:9},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"上传音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:539,columnNumber:15},void 0),m&&e.jsxDEV("span",{className:"ma-muted",children:ga(m.size)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:540,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:538,columnNumber:13},void 0),e.jsxDEV("div",{className:"va-dropzone ma-dropzone",onClick:()=>{var r;return(r=re.current)==null?void 0:r.click()},onDragOver:r=>r.preventDefault(),onDrop:Y,children:m?e.jsxDEV("div",{className:"ma-audio-preview",children:[e.jsxDEV("div",{className:"ma-audio-preview__meta",children:[e.jsxDEV("strong",{children:m.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:551,columnNumber:21},void 0),e.jsxDEV("button",{className:"va-nav-btn",onClick:r=>{r.stopPropagation(),P(null),U(""),re.current&&(re.current.value="")},children:"清空"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:552,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:550,columnNumber:19},void 0),q&&e.jsxDEV("audio",{controls:!0,src:q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:564,columnNumber:39},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:549,columnNumber:17},void 0):e.jsxDEV("div",{className:"ma-dropzone__placeholder",children:[e.jsxDEV("span",{children:"点击或拖拽上传本地音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:568,columnNumber:19},void 0),e.jsxDEV("small",{children:"支持 mp3、wav、m4a 等常见格式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:569,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:567,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:542,columnNumber:13},void 0),e.jsxDEV("input",{ref:re,type:"file",accept:"audio/*",hidden:!0,onChange:ae},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:573,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:537,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"分析模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:584,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:583,columnNumber:13},void 0),e.jsxDEV(ye,{selectedModel:$,selectedSelectionKey:xe($,J),onSelect:l,models:O,variant:"form",placement:"down",placeholder:"选择 Gemini 分析模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:586,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:582,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:536,columnNumber:9},void 0),E&&g==="reference"&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("button",{className:"ma-section-toggle",onClick:()=>f(r=>!r),children:[e.jsxDEV("span",{children:"分析摘要"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:606,columnNumber:13},void 0),e.jsxDEV("span",{children:o?"收起":"展开"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:607,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:602,columnNumber:11},void 0),o&&e.jsxDEV("div",{className:"ma-analysis-summary",children:[e.jsxDEV("p",{children:E.summary},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:611,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-chip-row",children:[e.jsxDEV("span",{className:"ma-chip",children:E.language||"未知语言"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:613,columnNumber:17},void 0),e.jsxDEV("span",{className:"ma-chip",children:E.mood||"未知情绪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:614,columnNumber:17},void 0),E.genreTags.map(r=>e.jsxDEV("span",{className:"ma-chip ma-chip--accent",children:r},r,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:616,columnNumber:19},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:612,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-tag-row",children:E.structure.map(r=>e.jsxDEV("code",{children:r},r,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:621,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:619,columnNumber:15},void 0),E.titleSuggestions.length>0&&e.jsxDEV("div",{className:"ma-suggestions",children:["推荐标题:",E.titleSuggestions.join(" / ")]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:625,columnNumber:17},void 0),(E.sunoTitle||E.sunoStyleTags.length>0||E.sunoLyricsDraft)&&e.jsxDEV("div",{className:"ma-suno-summary",children:[e.jsxDEV("div",{className:"ma-suno-summary__title",children:"Suno 生成草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:633,columnNumber:19},void 0),e.jsxDEV("div",{className:"ma-suno-summary__form",children:[e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:636,columnNumber:23},void 0),e.jsxDEV("input",{className:"ma-input",value:B,onChange:r=>ee(r.target.value),placeholder:"可直接用于 Suno 的标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:637,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:635,columnNumber:21},void 0),e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"Suno 风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:645,columnNumber:23},void 0),e.jsxDEV("input",{className:"ma-input",value:L,onChange:r=>le(r.target.value),placeholder:"逗号分隔的风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:646,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:644,columnNumber:21},void 0),e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"带 Suno 标签的歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:654,columnNumber:23},void 0),e.jsxDEV("textarea",{className:"ma-textarea",rows:12,value:K,onChange:r=>ne(r.target.value),placeholder:"分析阶段整理出的可用歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:655,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:653,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:634,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:632,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:610,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:601,columnNumber:9},void 0),(D||d||z)&&e.jsxDEV("div",{className:"ma-status-stack",children:[D&&e.jsxDEV("div",{className:"ma-error",children:D},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:673,columnNumber:21},void 0),d&&e.jsxDEV("div",{className:"ma-progress",children:d},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:674,columnNumber:24},void 0),z&&e.jsxDEV("div",{className:"ma-progress",children:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:675,columnNumber:33},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:672,columnNumber:9},void 0),e.jsxDEV("div",{className:"va-page-actions",children:g==="scratch"?e.jsxDEV("button",{className:"va-btn-primary",onClick:de,disabled:!N.trim()||!!w,children:"生成歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:681,columnNumber:11},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{onClick:v,children:"新建"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:690,columnNumber:13},void 0),e.jsxDEV("button",{onClick:he,disabled:!(a!=null&&a.analysis),children:"插入分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:691,columnNumber:13},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:W,disabled:!m||!!t,children:"开始分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:694,columnNumber:13},void 0),e.jsxDEV("button",{onClick:c,disabled:!a,children:"下一步"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:701,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:689,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:679,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:502,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:485,columnNumber:5},void 0)},we="music-analyzer:model",Me="gemini-2.5-pro",xa=({record:a,onRecordUpdate:n,onRecordsChange:u,onNext:v})=>{var V,X,H,I;const[c,b]=s.useState(()=>Se(a)),[g,k]=s.useState(a.lyricsDraft||""),[N,S]=s.useState(a.title||((X=(V=a.analysis)==null?void 0:V.titleSuggestions)==null?void 0:X[0])||""),[w,A]=s.useState((a.styleTags||((H=a.analysis)==null?void 0:H.genreTags)||[]).join(", ")),[z,C]=s.useState(()=>a.pendingRewriteTaskId||null),[m,P]=s.useState(""),[t,y]=s.useState(""),[d,j]=s.useState(()=>a.analysisModel||ue(we,Me).modelId),[o,f]=s.useState(()=>a.analysisModelRef||ue(we,Me).modelRef),[B,ee]=s.useState(!1),L=s.useRef(),le=s.useCallback((l,h)=>{j(l),f(h||null),ge(we,l,h)},[]);s.useEffect(()=>{var l,h,q;b(Se(a)),k(a.lyricsDraft||""),S(a.title||((h=(l=a.analysis)==null?void 0:l.titleSuggestions)==null?void 0:h[0])||""),A((a.styleTags||((q=a.analysis)==null?void 0:q.genreTags)||[]).join(", ")),C(a.pendingRewriteTaskId||null)},[a]),s.useEffect(()=>(clearTimeout(L.current),L.current=setTimeout(async()=>{const l=w.split(",").map(q=>q.trim()).filter(Boolean),h=await se(a.id,{rewritePrompt:c,lyricsDraft:g,title:N,styleTags:l,pendingRewriteTaskId:z});u(h),n({...a,rewritePrompt:c,lyricsDraft:g,title:N,styleTags:l,pendingRewriteTaskId:z})},400),()=>clearTimeout(L.current)),[g,n,u,z,a.id,c,w,N]);const K=fe("text"),ne=fe("audio"),re=s.useMemo(()=>$e(K,ne),[K,ne]),M=s.useMemo(()=>He(d),[d]),Q=s.useMemo(()=>{const l=[{id:Ce,label:"原始版本"}];for(const h of a.lyricsVersions||[])l.push({id:h.id,label:h.label});return l},[a.lyricsVersions]),D=a.activeVersionId||Ce,U=Q.length>1,$=String(a.creationPrompt||"").trim(),ce=s.useCallback(async l=>{const h=Je(a,l);if(!h)return;const q=await se(a.id,h);u(q),n({...a,...h}),ee(!1)},[n,u,a]),J=s.useCallback(async()=>{y(""),P(M?"歌词生成中...":"歌词改写中 0%"),pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_rewrite_started",control:"rewrite_lyrics",source:"music_analyzer_lyrics_page",metadata:{engine:M?"suno":"text_model",hasRewritePrompt:!!c.trim(),lyricsLength:g.trim().length}});try{let l;if(M){const R=[c.trim()?`本轮改写要求:
1
+ import{ai as e,aH as Ke,a4 as Le,aj as s,es as ue,et as ge,be as se,bl as fe,eu as $e,bd as qe,cb as pe,W as _,ev as Ye,T as F,b0 as We,ew as He,ex as Oe,b1 as Re,ey as Qe,bH as Ne,bx as ye,de as xe,ez as Se,eA as Ce,eB as Je,eC as Xe,cW as Ze,eD as ea,eE as he,eF as aa,eG as sa,eH as ia,d_ as na,bY as ra,bz as ie,aO as ua,a$ as la}from"./tool-windows-DOIu9TAD.js";import{quickInsert as Fe}from"./canvas-insertion-CdUQF7IV.js";import{s as Ve,i as ta,g as ca,a as da}from"./MusicAnalyzer-CHcQ5t4P.js";/* empty css */const Ie=[{id:"create",label:"创作"},{id:"lyrics",label:"歌词"},{id:"generate",label:"生成"}],oa=({current:a,onNavigate:n,hasRecord:u})=>{const v=Ie.findIndex(c=>c.id===a);return e.jsxDEV("div",{className:"va-step-bar",children:Ie.map((c,h)=>{const g=c.id===a,k=h<v,N=!u&&h>0;return e.jsxDEV(Ke.Fragment,{children:[h>0&&e.jsxDEV("span",{className:"va-step-arrow",children:"→"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:32,columnNumber:27},void 0),e.jsxDEV("button",{className:`va-step ${g?"active":""} ${k?"past":""}`,onClick:()=>!N&&n(c.id),disabled:N,children:[e.jsxDEV("span",{className:"va-step-num",children:h+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:38,columnNumber:15},void 0),c.label]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:33,columnNumber:13},void 0)]},c.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:31,columnNumber:11},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:24,columnNumber:5},void 0)};function Te(a){return(a||"").trim().toLowerCase().replace(/[^a-z0-9]/g,"")||"mp3"}function ma(a){const n=a.name.split(".").pop();return n&&n.length<=8?Te(n):Te(a.type.split("/")[1])}async function pa(a,n){const u=ma(a),c=`/__aitu_cache__/audio/${`music-analyzer-source-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}.${u}`;return await Le.cacheMediaFromBlob(c,a,"audio",{metadata:{source:"music-analyzer-input",fileName:a.name,mimeType:a.type||"audio/mpeg",size:a.size}}),{type:"upload",cacheUrl:c,fileName:a.name||`music-source.${u}`,mimeType:a.type||"audio/mpeg",size:a.size}}async function fa(a){if(!a||a.type!=="upload")return null;const n=await Le.getCachedBlob(a.cacheUrl);return n?new File([n],a.fileName||"music-source.mp3",{type:a.mimeType||n.type||"audio/mpeg",lastModified:Date.now()}):null}const je="gemini-2.5-pro",ve="music-analyzer:model",ke="music-analyzer:lyrics-model",Ue="music-analyzer:creation-prompt";function ga(a){return`${(a/1024/1024).toFixed(1)}MB`}function Na(){try{return sessionStorage.getItem(Ue)||""}catch{return""}}function Ae(a){try{if(a){sessionStorage.setItem(Ue,a);return}sessionStorage.removeItem(Ue)}catch{}}const ya=({existingRecord:a,onComplete:n,onRecordsChange:u,onCreateNew:v,onNext:c,onLyricsReady:h})=>{const[g,k]=s.useState((a==null?void 0:a.source)==="upload"?"reference":"scratch"),[N,S]=s.useState(()=>(a==null?void 0:a.creationPrompt)||Na()),[w,A]=s.useState(()=>(a==null?void 0:a.pendingLyricsGenTaskId)||null),[z,C]=s.useState(""),[m,P]=s.useState(null),[t,y]=s.useState(null),[d,j]=s.useState(""),[o,f]=s.useState(!0),[B,ee]=s.useState(""),[L,le]=s.useState(""),[K,ne]=s.useState(""),re=s.useRef(null),M=s.useRef(null),Q=s.useRef(),[D,U]=s.useState(""),[$,ce]=s.useState(()=>(a==null?void 0:a.analysisModel)||ue(ve,je).modelId),[J,te]=s.useState(()=>(a==null?void 0:a.analysisModelRef)||ue(ve,je).modelRef),[V,X]=s.useState(()=>ue(ke,xe()).modelId),[H,I]=s.useState(()=>ue(ke,xe()).modelRef),l=s.useCallback((r,x)=>{ce(r),te(x||null),ge(ve,r,x)},[]),b=s.useCallback((r,x)=>{X(r),I(x||null),ge(ke,r,x)},[]),q=s.useMemo(()=>{if(M.current&&URL.revokeObjectURL(M.current),!m)return M.current=null,null;const r=URL.createObjectURL(m);return M.current=r,r},[m]);s.useEffect(()=>()=>{M.current&&URL.revokeObjectURL(M.current)},[]),s.useEffect(()=>{let r=!1;return(async()=>{if(!a){!t&&!w&&(P(null),U(""));return}ce(a.analysisModel||je),te(a.analysisModelRef||null),S(a.creationPrompt||"");const p=a.analysis?qe(a.analysis):null;if(ee(a.title||(p==null?void 0:p.sunoTitle)||""),le((a.styleTags||(p==null?void 0:p.sunoStyleTags)||(p==null?void 0:p.genreTags)||[]).join(", ")),ne(a.lyricsDraft||(p==null?void 0:p.sunoLyricsDraft)||""),U(""),a.source==="upload"){const T=await fa(a.sourceSnapshot);if(r)return;P(T),T||U("原上传音频缓存已失效,无法自动回填音频")}})(),()=>{r=!0}},[a,t,w]),s.useEffect(()=>{if((a==null?void 0:a.source)==="scratch"){Ae(a.creationPrompt||"");return}a||Ae(N)},[N,a]),s.useEffect(()=>{if(!(!a||g!=="reference"))return clearTimeout(Q.current),Q.current=setTimeout(async()=>{const r=L.split(",").map(T=>T.trim()).filter(Boolean),x=await se(a.id,{title:B.trim(),styleTags:r,lyricsDraft:K});u(x);const p=x.find(T=>T.id===a.id);p&&n(p)},400),()=>clearTimeout(Q.current)},[K,L,B,a,g,n,u]);const W=fe("text"),O=s.useMemo(()=>W.filter(r=>/^gemini/i.test(r.id)),[W]),i=fe("audio"),G=s.useMemo(()=>$e(W,i),[W,i]),E=s.useMemo(()=>a!=null&&a.analysis?qe(a.analysis):null,[a==null?void 0:a.analysis]),ae=s.useCallback(r=>{var p;const x=(p=r.target.files)==null?void 0:p[0];x!=null&&x.type.startsWith("audio/")?(P(x),U("")):U("请选择音频文件")},[]),Y=s.useCallback(r=>{r.preventDefault();const x=r.dataTransfer.files[0];x!=null&&x.type.startsWith("audio/")?(P(x),U("")):U("请选择音频文件")},[]),R=s.useCallback(async()=>{if(!m){U("请先上传音频");return}pe.trackUIInteraction({area:"popular_music_tool",action:"audio_analysis_started",control:"analyze_audio",source:"music_analyzer_create_page",metadata:{fileSizeBytes:m.size,hasModelRef:!!J}}),U(""),j("缓存音频...");try{const r=await pa(m),x=_.createTask({prompt:`分析音频:${m.name||"本地音频"}`,model:$,modelRef:J,mimeType:r.mimeType,audioCacheUrl:r.cacheUrl,musicAnalyzerAction:"analyze",musicAnalyzerPrompt:Ye,musicAnalyzerSource:"upload",musicAnalyzerSourceLabel:r.fileName,musicAnalyzerSourceSnapshot:r,autoInsertToCanvas:!1},F.CHAT);y(x.id),j("音频分析中 0%")}catch(r){U(r.message||"音频分析失败")}},[m,$,J]),de=s.useCallback(async()=>{if(!N.trim()){U("请先描述你想创作的歌曲");return}const r=He(V);pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_generation_started",control:"generate_lyrics",source:"music_analyzer_create_page",metadata:{engine:r?"suno":"text_model",promptLength:N.trim().length,hasModelRef:!!H}}),U(""),C(r?"歌词生成中...":"歌词草稿生成中 0%");try{const x={id:We(),createdAt:Date.now(),source:"scratch",sourceLabel:N.slice(0,30)||"从零创作",creationPrompt:N,starred:!1},p=r?_.createTask({prompt:N,model:V,modelRef:H,sunoAction:"lyrics",musicAnalyzerAction:"lyrics-gen",musicAnalyzerRecordId:x.id,autoInsertToCanvas:!1},F.AUDIO):_.createTask({prompt:`从零创作歌词:${x.sourceLabel}`,model:V,modelRef:H,musicAnalyzerAction:"lyrics-gen",musicAnalyzerPrompt:Oe({userPrompt:N,mode:"create"}),musicAnalyzerRecordId:x.id,autoInsertToCanvas:!1},F.CHAT);x.pendingLyricsGenTaskId=p.id;const T=await Re(x);u(T),n(x),A(p.id)}catch(x){U(x.message||"歌词生成失败"),C("")}},[N,n,u,V,H]);s.useEffect(()=>{if(!t)return;const r=_.getTask(t);typeof(r==null?void 0:r.progress)=="number"&&j(`音频分析中 ${Math.round(r.progress)}%`);const x=_.observeTaskUpdates().subscribe(p=>{var T;if(p.task.id===t){if(p.task.status==="failed"){y(null),j(""),U(((T=p.task.error)==null?void 0:T.message)||"音频分析失败");return}if(p.task.status==="completed"){Ve(p.task).then(Z=>{Z&&(u(Z.records),n(Z.record))}).catch(Z=>U(Z.message||"分析结果同步失败")).finally(()=>{y(null),j("")});return}typeof p.task.progress=="number"&&j(`音频分析中 ${Math.round(p.task.progress)}%`)}});return()=>x.unsubscribe()},[t,n,u]),s.useEffect(()=>{if(!w)return;const r=_.getTask(w);if(typeof(r==null?void 0:r.progress)=="number"){const p=r.type===F.CHAT?"歌词草稿生成中":"歌词生成中";C(`${p} ${Math.round(r.progress)}%`)}const x=_.observeTaskUpdates().subscribe(p=>{var T;if(p.task.id===w){if(p.task.status==="failed"){const Z=String(p.task.params.musicAnalyzerRecordId||"").trim();A(null),C(""),U(((T=p.task.error)==null?void 0:T.message)||"歌词生成失败"),Z&&se(Z,{pendingLyricsGenTaskId:null}).then(u);return}if(p.task.status==="completed"){A(null),C(""),h==null||h();return}if(typeof p.task.progress=="number"){const Z=p.task.type===F.CHAT?"歌词草稿生成中":"歌词生成中";C(`${Z} ${Math.round(p.task.progress)}%`)}}});return()=>x.unsubscribe()},[h,u,w]);const be=s.useCallback(async()=>{E&&(await Fe("text",Qe(E)),pe.trackUIInteraction({area:"popular_music_tool",action:"analysis_inserted_to_canvas",control:"insert_analysis",source:"music_analyzer_create_page",metadata:{hasSunoTitle:!!E.sunoTitle,tagsCount:E.sunoStyleTags.length}}))},[E]);return e.jsxDEV("div",{className:"ma-create-page",children:[e.jsxDEV("div",{className:"ma-mode-toggle",children:[e.jsxDEV("button",{className:`ma-mode-btn ${g==="scratch"?"active":""}`,onClick:()=>k("scratch"),children:"从零创作"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:488,columnNumber:9},void 0),e.jsxDEV("button",{className:`ma-mode-btn ${g==="reference"?"active":""}`,onClick:()=>k("reference"),children:"参考音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:494,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:487,columnNumber:7},void 0),e.jsxDEV("div",{className:"va-page",children:[g==="scratch"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"歌词草稿模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:508,columnNumber:15},void 0),e.jsxDEV("span",{className:"ma-muted",children:"文本模型会补齐 Suno 所需标题/标签/歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:509,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:507,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:V,selectedSelectionKey:ye(V,H),onSelect:b,models:G,variant:"form",placement:"down",placeholder:"选择歌词草稿模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:511,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:506,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"描述你想创作的歌曲"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:524,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:523,columnNumber:13},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:N,onChange:r=>S(r.target.value),rows:6,placeholder:"例如:一首关于夏天海边的轻快流行歌,女声,带有吉他和电子节拍"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:526,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:522,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:505,columnNumber:9},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"上传音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:539,columnNumber:15},void 0),m&&e.jsxDEV("span",{className:"ma-muted",children:ga(m.size)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:540,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:538,columnNumber:13},void 0),e.jsxDEV("div",{className:"va-dropzone ma-dropzone",onClick:()=>{var r;return(r=re.current)==null?void 0:r.click()},onDragOver:r=>r.preventDefault(),onDrop:Y,children:m?e.jsxDEV("div",{className:"ma-audio-preview",children:[e.jsxDEV("div",{className:"ma-audio-preview__meta",children:[e.jsxDEV("strong",{children:m.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:551,columnNumber:21},void 0),e.jsxDEV("button",{className:"va-nav-btn",onClick:r=>{r.stopPropagation(),P(null),U(""),re.current&&(re.current.value="")},children:"清空"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:552,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:550,columnNumber:19},void 0),q&&e.jsxDEV("audio",{controls:!0,src:q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:564,columnNumber:39},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:549,columnNumber:17},void 0):e.jsxDEV("div",{className:"ma-dropzone__placeholder",children:[e.jsxDEV("span",{children:"点击或拖拽上传本地音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:568,columnNumber:19},void 0),e.jsxDEV("small",{children:"支持 mp3、wav、m4a 等常见格式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:569,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:567,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:542,columnNumber:13},void 0),e.jsxDEV("input",{ref:re,type:"file",accept:"audio/*",hidden:!0,onChange:ae},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:573,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:537,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"分析模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:584,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:583,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:$,selectedSelectionKey:ye($,J),onSelect:l,models:O,variant:"form",placement:"down",placeholder:"选择 Gemini 分析模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:586,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:582,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:536,columnNumber:9},void 0),E&&g==="reference"&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("button",{className:"ma-section-toggle",onClick:()=>f(r=>!r),children:[e.jsxDEV("span",{children:"分析摘要"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:606,columnNumber:13},void 0),e.jsxDEV("span",{children:o?"收起":"展开"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:607,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:602,columnNumber:11},void 0),o&&e.jsxDEV("div",{className:"ma-analysis-summary",children:[e.jsxDEV("p",{children:E.summary},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:611,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-chip-row",children:[e.jsxDEV("span",{className:"ma-chip",children:E.language||"未知语言"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:613,columnNumber:17},void 0),e.jsxDEV("span",{className:"ma-chip",children:E.mood||"未知情绪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:614,columnNumber:17},void 0),E.genreTags.map(r=>e.jsxDEV("span",{className:"ma-chip ma-chip--accent",children:r},r,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:616,columnNumber:19},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:612,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-tag-row",children:E.structure.map(r=>e.jsxDEV("code",{children:r},r,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:621,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:619,columnNumber:15},void 0),E.titleSuggestions.length>0&&e.jsxDEV("div",{className:"ma-suggestions",children:["推荐标题:",E.titleSuggestions.join(" / ")]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:625,columnNumber:17},void 0),(E.sunoTitle||E.sunoStyleTags.length>0||E.sunoLyricsDraft)&&e.jsxDEV("div",{className:"ma-suno-summary",children:[e.jsxDEV("div",{className:"ma-suno-summary__title",children:"Suno 生成草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:633,columnNumber:19},void 0),e.jsxDEV("div",{className:"ma-suno-summary__form",children:[e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:636,columnNumber:23},void 0),e.jsxDEV("input",{className:"ma-input",value:B,onChange:r=>ee(r.target.value),placeholder:"可直接用于 Suno 的标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:637,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:635,columnNumber:21},void 0),e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"Suno 风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:645,columnNumber:23},void 0),e.jsxDEV("input",{className:"ma-input",value:L,onChange:r=>le(r.target.value),placeholder:"逗号分隔的风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:646,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:644,columnNumber:21},void 0),e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"带 Suno 标签的歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:654,columnNumber:23},void 0),e.jsxDEV("textarea",{className:"ma-textarea",rows:12,value:K,onChange:r=>ne(r.target.value),placeholder:"分析阶段整理出的可用歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:655,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:653,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:634,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:632,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:610,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:601,columnNumber:9},void 0),(D||d||z)&&e.jsxDEV("div",{className:"ma-status-stack",children:[D&&e.jsxDEV("div",{className:"ma-error",children:D},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:673,columnNumber:21},void 0),d&&e.jsxDEV("div",{className:"ma-progress",children:d},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:674,columnNumber:24},void 0),z&&e.jsxDEV("div",{className:"ma-progress",children:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:675,columnNumber:33},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:672,columnNumber:9},void 0),e.jsxDEV("div",{className:"va-page-actions",children:g==="scratch"?e.jsxDEV("button",{className:"va-btn-primary",onClick:de,disabled:!N.trim()||!!w,children:"生成歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:681,columnNumber:11},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{onClick:v,children:"新建"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:690,columnNumber:13},void 0),e.jsxDEV("button",{onClick:be,disabled:!(a!=null&&a.analysis),children:"插入分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:691,columnNumber:13},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:R,disabled:!m||!!t,children:"开始分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:694,columnNumber:13},void 0),e.jsxDEV("button",{onClick:c,disabled:!a,children:"下一步"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:701,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:689,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:679,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:502,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:485,columnNumber:5},void 0)},we="music-analyzer:model",Me="gemini-2.5-pro",xa=({record:a,onRecordUpdate:n,onRecordsChange:u,onNext:v})=>{var V,X,H,I;const[c,h]=s.useState(()=>Se(a)),[g,k]=s.useState(a.lyricsDraft||""),[N,S]=s.useState(a.title||((X=(V=a.analysis)==null?void 0:V.titleSuggestions)==null?void 0:X[0])||""),[w,A]=s.useState((a.styleTags||((H=a.analysis)==null?void 0:H.genreTags)||[]).join(", ")),[z,C]=s.useState(()=>a.pendingRewriteTaskId||null),[m,P]=s.useState(""),[t,y]=s.useState(""),[d,j]=s.useState(()=>a.analysisModel||ue(we,Me).modelId),[o,f]=s.useState(()=>a.analysisModelRef||ue(we,Me).modelRef),[B,ee]=s.useState(!1),L=s.useRef(),le=s.useCallback((l,b)=>{j(l),f(b||null),ge(we,l,b)},[]);s.useEffect(()=>{var l,b,q;h(Se(a)),k(a.lyricsDraft||""),S(a.title||((b=(l=a.analysis)==null?void 0:l.titleSuggestions)==null?void 0:b[0])||""),A((a.styleTags||((q=a.analysis)==null?void 0:q.genreTags)||[]).join(", ")),C(a.pendingRewriteTaskId||null)},[a]),s.useEffect(()=>(clearTimeout(L.current),L.current=setTimeout(async()=>{const l=w.split(",").map(q=>q.trim()).filter(Boolean),b=await se(a.id,{rewritePrompt:c,lyricsDraft:g,title:N,styleTags:l,pendingRewriteTaskId:z});u(b),n({...a,rewritePrompt:c,lyricsDraft:g,title:N,styleTags:l,pendingRewriteTaskId:z})},400),()=>clearTimeout(L.current)),[g,n,u,z,a.id,c,w,N]);const K=fe("text"),ne=fe("audio"),re=s.useMemo(()=>$e(K,ne),[K,ne]),M=s.useMemo(()=>He(d),[d]),Q=s.useMemo(()=>{const l=[{id:Ce,label:"原始版本"}];for(const b of a.lyricsVersions||[])l.push({id:b.id,label:b.label});return l},[a.lyricsVersions]),D=a.activeVersionId||Ce,U=Q.length>1,$=String(a.creationPrompt||"").trim(),ce=s.useCallback(async l=>{const b=Je(a,l);if(!b)return;const q=await se(a.id,b);u(q),n({...a,...b}),ee(!1)},[n,u,a]),J=s.useCallback(async()=>{y(""),P(M?"歌词生成中...":"歌词改写中 0%"),pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_rewrite_started",control:"rewrite_lyrics",source:"music_analyzer_lyrics_page",metadata:{engine:M?"suno":"text_model",hasRewritePrompt:!!c.trim(),lyricsLength:g.trim().length}});try{let l;if(M){const W=[c.trim()?`本轮改写要求:
2
2
  ${c.trim()}`:"",$&&$!==c.trim()?`第一步创作提示词:
3
3
  ${$}`:"",g.trim()?`当前歌词草稿:
4
4
  ${g.trim()}`:""].filter(Boolean).join(`
5
5
 
6
- `)||c||g||a.sourceLabel;l=_.createTask({prompt:R,model:d,modelRef:o||null,sunoAction:"lyrics",musicAnalyzerAction:"lyrics-gen",musicAnalyzerRecordId:a.id,autoInsertToCanvas:!1},F.AUDIO)}else l=_.createTask({prompt:`改写歌词:${a.sourceLabel}`,model:d,modelRef:o||null,musicAnalyzerAction:"rewrite",musicAnalyzerPrompt:Oe({analysis:a.analysis,userPrompt:c,originalPrompt:$,currentLyrics:g}),musicAnalyzerRecordId:a.id,autoInsertToCanvas:!1},F.CHAT);C(l.id);const h=await se(a.id,{rewritePrompt:c,pendingRewriteTaskId:l.id});u(h),n({...a,rewritePrompt:c,pendingRewriteTaskId:l.id})}catch(l){y(l.message||"歌词改写失败"),P("")}},[g,n,u,a,c,d,o,M]);s.useEffect(()=>{if(!z)return;const l=_.getTask(z);typeof(l==null?void 0:l.progress)=="number"&&P(`歌词改写中 ${Math.round(l.progress)}%`);const h=_.observeTaskUpdates().subscribe(q=>{var R;if(q.task.id===z){if(q.task.status==="failed"){C(null),P(""),y(((R=q.task.error)==null?void 0:R.message)||"歌词改写失败"),se(a.id,{pendingRewriteTaskId:null}).then(u);return}if(q.task.status==="completed"){Ve(q.task).then(O=>{O&&(u(O.records),n(O.record),k(O.record.lyricsDraft||""),S(O.record.title||""),A((O.record.styleTags||[]).join(", ")))}).catch(O=>{y(O.message||"改写结果同步失败")}).finally(()=>{C(null),P("")});return}typeof q.task.progress=="number"&&P(`歌词改写中 ${Math.round(q.task.progress)}%`)}});return()=>h.unsubscribe()},[n,u,z,a.id]);const te=s.useCallback(async()=>{const l=await Fe("text",Xe({title:N,styleTags:w.split(",").map(h=>h.trim()).filter(Boolean),lyricsDraft:g}));if(!l.success){y(l.error||"插入失败,请确认画布已打开");return}pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_inserted_to_canvas",control:"insert_lyrics",source:"music_analyzer_lyrics_page",metadata:{lyricsLength:g.trim().length,tagsCount:w.split(",").filter(h=>h.trim()).length}})},[g,w,N]);return e.jsxDEV("div",{className:"va-page",children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"歌词模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:311,columnNumber:11},void 0),U&&e.jsxDEV("div",{className:"ma-version-dropdown",children:[e.jsxDEV("button",{className:"ma-version-btn",onClick:()=>ee(l=>!l),children:[((I=Q.find(l=>l.id===D))==null?void 0:I.label)||"原始版本",e.jsxDEV("span",{className:"ma-version-arrow",children:B?"▲":"▼"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:320,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:315,columnNumber:15},void 0),B&&e.jsxDEV("div",{className:"ma-version-menu",children:Q.map(l=>e.jsxDEV("button",{className:`ma-version-menu-item ${l.id===D?"active":""}`,onClick:()=>ce(l.id),children:l.label},l.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:325,columnNumber:21},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:323,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:314,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:310,columnNumber:9},void 0),e.jsxDEV(ye,{selectedModel:d,selectedSelectionKey:xe(d,o),onSelect:le,models:re,variant:"form",placement:"down",placeholder:"选择歌词模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:338,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:309,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"改写要求"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:351,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:350,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:c,onChange:l=>b(l.target.value),rows:4,placeholder:"告诉 AI 要保留什么、强化什么、改成什么风格"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:353,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary ma-rewrite-submit",onClick:J,children:M?"Suno 生成歌词":"AI 改写"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:360,columnNumber:9},void 0),m&&e.jsxDEV("div",{className:"ma-progress",children:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:363,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:349,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:368,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:367,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:N,onChange:l=>S(l.target.value),placeholder:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:370,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:366,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:380,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:379,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:w,onChange:l=>A(l.target.value),placeholder:"例如 cinematic pop, female vocal, uplifting"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:382,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:378,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:392,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:391,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:g,onChange:l=>k(l.target.value),rows:14,placeholder:"AI 改写结果会出现在这里,可继续手改"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:394,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:390,columnNumber:7},void 0),t&&e.jsxDEV("div",{className:"ma-error",children:t},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:403,columnNumber:17},void 0),e.jsxDEV("div",{className:"va-page-actions",children:[e.jsxDEV("button",{onClick:te,disabled:!g.trim(),children:"插入歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:406,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:v,disabled:!g.trim(),children:"下一步"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:405,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:308,columnNumber:5},void 0)},ze="music-analyzer:audio-model",Pe=[{id:"generate",label:"新生成",hint:"从零生成完整音乐"},{id:"continue",label:"续写",hint:"从已有片段继续创作"},{id:"infill",label:"Infill",hint:"局部重绘指定时间窗口"}];function oe(a){const n=a.trim();if(!n)return null;const u=Number(n);return Number.isFinite(u)?u:null}function me(a){return typeof a=="number"&&Number.isFinite(a)?String(a):""}function Ee(a){return a.split(",").map(n=>n.trim()).filter(Boolean)}function Ge(a){var n;return((n=Pe.find(u=>u.id===a))==null?void 0:n.label)||"新生成"}function ha(a){return typeof a.duration=="number"&&Number.isFinite(a.duration)?String(Math.max(0,Math.round(a.duration))):""}function _e(a){const n=a.title||"未命名片段",u=a.duration!=null?` · ${Be(a.duration)}`:"",v=a.clipId?` · ${a.clipId.slice(0,8)}`:"";return`${n}${u}${v}`}const ba=({record:a,onRecordUpdate:n,onRecordsChange:u,onRestart:v})=>{var O;const[c,b]=s.useState(a.title||""),[g,k]=s.useState((a.styleTags||[]).join(", ")),[N,S]=s.useState(a.lyricsDraft||""),[w,A]=s.useState("chirp-v5-5"),[z,C]=s.useState(1),[m,P]=s.useState(()=>ue(ze,Ne()).modelId),[t,y]=s.useState(()=>ue(ze,Ne()).modelRef),[d,j]=s.useState(a.musicEditAction||"generate"),[o,f]=s.useState(a.continueFromClipId||""),[B,ee]=s.useState(me(a.continueAt)),[L,le]=s.useState(me(a.infillStartS)),[K,ne]=s.useState(me(a.infillEndS)),[re,M]=s.useState(!1),[Q,D]=s.useState(""),U=s.useRef(),$=s.useRef(!1),ce=s.useCallback((i,G)=>{P(i),y(G||null),ge(ze,i,G)},[]);s.useEffect(()=>{b(a.title||""),k((a.styleTags||[]).join(", ")),S(a.lyricsDraft||""),j(a.musicEditAction||"generate"),f(a.continueFromClipId||""),ee(me(a.continueAt)),le(me(a.infillStartS)),ne(me(a.infillEndS))},[a]),s.useEffect(()=>(clearTimeout(U.current),U.current=setTimeout(async()=>{const i=Ee(g),G=oe(B),E=oe(L),ae=oe(K),Y={title:c,styleTags:i,lyricsDraft:N,musicEditAction:d,continueFromClipId:o||null,continueAt:G,infillStartS:E,infillEndS:ae},W=await se(a.id,Y);u(W),n({...a,...Y})},400),()=>clearTimeout(U.current)),[d,B,o,K,L,n,u,N,a.id,g,c]);const J=fe("audio"),te=s.useMemo(()=>J.filter(i=>{const G=Array.isArray(i.tags)?i.tags.join(" "):"";return/suno/i.test(i.id)||/suno/i.test(G)}),[J]),V=s.useMemo(()=>Ze(m).find(i=>i.id==="mv"),[m]);s.useEffect(()=>{V!=null&&V.defaultValue&&A(i=>i||String(V.defaultValue))},[V==null?void 0:V.defaultValue]);const X=a.generatedClips||[],H=s.useMemo(()=>X.filter(i=>!!String(i.clipId||"").trim()),[X]),I=s.useMemo(()=>H.find(i=>i.clipId===o)||null,[o,H]),l=d!=="generate",h=d==="infill",q=s.useCallback((i,G)=>{if(!i.clipId){D("该片段尚未拿到真实 clip_id,暂时不能继续创作");return}j(G),f(i.clipId),ee(E=>E||ha(i)),D(G==="continue"?`已带入片段「${i.title||i.clipId.slice(0,8)}」用于续写`:`已带入片段「${i.title||i.clipId.slice(0,8)}」用于 Infill`)},[]),R=s.useCallback(async()=>{const i=N.trim(),G=c.trim(),E=g.trim(),ae=oe(B),Y=oe(L),W=oe(K);if(!i){D("请先准备歌词或生成提示词");return}if(l&&!o){D("请先选择要续写的片段");return}if(l&&!(I!=null&&I.taskId)){D("当前片段缺少来源 task_id,请先重新同步或重新生成一次片段");return}if(l&&ae==null){D("请填写续写起点秒数");return}if(ae!=null&&ae<0){D("续写起点秒数不能小于 0");return}if(h&&Y==null){D("请填写 Infill 开始秒数");return}if(h&&W==null){D("请填写 Infill 结束秒数");return}if(Y!=null&&Y<0){D("Infill 开始秒数不能小于 0");return}if(W!=null&&W<0){D("Infill 结束秒数不能小于 0");return}if(h&&Y!=null&&W!=null&&Y>=W){D("Infill 开始秒数必须小于结束秒数");return}if(!$.current){$.current=!0,pe.trackUIInteraction({area:"popular_music_tool",action:"music_generation_started",control:"generate_music",source:"music_analyzer_generate_page",metadata:{editAction:d,batchCount:z,promptLength:i.length,hasTitle:!!G,tagsCount:Ee(E).length,hasMv:!!w,hasModelRef:!!t}}),M(!0),D("");try{const de=[],he=d==="generate"?"gen":d;for(let p=0;p<z;p+=1){const T=_.createTask({prompt:i,model:m,modelRef:t,sunoAction:"music",title:G,tags:E,mv:w,continueClipId:l?o:void 0,continueTaskId:l?I==null?void 0:I.taskId:void 0,continueAt:l?ae??void 0:void 0,infillStartS:h?Y??void 0:void 0,infillEndS:h?W??void 0:void 0,batchId:`ma_${a.id}_${he}_${p}`,batchIndex:p,batchTotal:z,autoInsertToCanvas:!0},F.AUDIO);de.push(T.id)}const r={generateTaskIds:[...a.generateTaskIds||[],...de],title:G,styleTags:Ee(E),lyricsDraft:i,musicEditAction:d,continueFromClipId:o||null,continueAt:ae,infillStartS:Y,infillEndS:W},x=await se(a.id,r);u(x),n({...a,...r}),D(`已提交 ${z} 次${Ge(d)}任务到 Suno 队列`)}catch(de){D(de.message||"提交生成任务失败")}finally{M(!1),$.current=!1}}},[d,z,B,o,K,L,w,n,u,N,a,l,h,I==null?void 0:I.taskId,m,t,g,c]);return e.jsxDEV("div",{className:"va-page",children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"创作动作"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:372,columnNumber:11},void 0),e.jsxDEV("span",{className:"ma-muted",children:(O=Pe.find(i=>i.id===d))==null?void 0:O.hint},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:373,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:371,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-action-toggle",children:Pe.map(i=>e.jsxDEV("button",{className:`ma-action-btn ${d===i.id?"active":""}`,onClick:()=>j(i.id),children:i.label},i.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:379,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:377,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:370,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:392,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:391,columnNumber:9},void 0),e.jsxDEV(ye,{selectedModel:m,selectedSelectionKey:xe(m,t),onSelect:ce,models:te.length>0?te:J,variant:"form",placement:"down",placeholder:"选择音频生成模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:394,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:390,columnNumber:7},void 0),(V==null?void 0:V.options)&&V.options.length>0&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 版本"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:408,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:407,columnNumber:11},void 0),e.jsxDEV("select",{className:"ma-select",value:w,onChange:i=>A(i.target.value),children:V.options.map(i=>e.jsxDEV("option",{value:String(i.value),children:i.label},i.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:416,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:410,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:406,columnNumber:9},void 0),l&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"目标片段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:427,columnNumber:13},void 0),e.jsxDEV("span",{className:"ma-muted",children:"自动使用轮询得到的真实 clip_id"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:428,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:426,columnNumber:11},void 0),H.length>0?e.jsxDEV("select",{className:"ma-select",value:o,onChange:i=>f(i.target.value),children:[e.jsxDEV("option",{value:"",children:"请选择已生成片段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:436,columnNumber:15},void 0),H.map(i=>e.jsxDEV("option",{value:i.clipId,children:_e(i)},i.clipId,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:438,columnNumber:17},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:431,columnNumber:13},void 0):e.jsxDEV("div",{className:"ma-hint",children:"先生成至少一个片段,才能使用续写或 Infill。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:444,columnNumber:13},void 0),I&&e.jsxDEV("div",{className:"ma-hint",children:["当前片段:",_e(I)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:447,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:425,columnNumber:9},void 0),l&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"编辑参数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:457,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:456,columnNumber:11},void 0),e.jsxDEV("div",{className:`ma-fields-grid ${h?"ma-fields-grid--triple":""}`,children:[e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"续写起点秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:461,columnNumber:15},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:B,onChange:i=>ee(i.target.value),placeholder:"例如 30"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:462,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:460,columnNumber:13},void 0),h&&e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"Infill 开始秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:474,columnNumber:17},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:L,onChange:i=>le(i.target.value),placeholder:"例如 8"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:475,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:473,columnNumber:15},void 0),h&&e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"Infill 结束秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:488,columnNumber:17},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:K,onChange:i=>ne(i.target.value),placeholder:"例如 16"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:489,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:487,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:459,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:455,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:506,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:505,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:c,onChange:i=>b(i.target.value),placeholder:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:508,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:504,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:518,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:517,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:g,onChange:i=>k(i.target.value),placeholder:"逗号分隔,例如 edm, intense, female vocal"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:520,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:516,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"提交给 Suno 的歌词/提示词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:530,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:529,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",rows:10,value:N,onChange:i=>S(i.target.value),placeholder:"这里的内容会直接作为 prompt 提交给 Suno"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:532,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:528,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"调用次数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:543,columnNumber:11},void 0),e.jsxDEV("span",{className:"ma-muted",children:"每次返回 2 首"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:544,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:542,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-batch-selector",children:[1,2,3,4].map(i=>e.jsxDEV("button",{className:`ma-batch-btn ${z===i?"active":""}`,onClick:()=>C(i),children:[i," 次"]},i,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:548,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:546,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:541,columnNumber:7},void 0),X.length>0&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:["已生成片段 (",X.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:562,columnNumber:13},void 0),e.jsxDEV("span",{className:"ma-muted",children:"可直接带入续写或 Infill"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:563,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:561,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-clips-gallery",children:X.map(i=>e.jsxDEV(ja,{clip:i,selected:l&&!!i.clipId&&o===i.clipId,onContinue:()=>q(i,"continue"),onInfill:()=>q(i,"infill")},`${i.taskId}:${i.clipId||i.audioUrl}`,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:567,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:565,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:560,columnNumber:9},void 0),Q&&e.jsxDEV("div",{className:"ma-progress",children:Q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:583,columnNumber:19},void 0),e.jsxDEV("div",{className:"va-page-actions",children:[e.jsxDEV("button",{onClick:v,children:"重新开始"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:586,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:R,disabled:re,children:[Ge(d)," ",z," 次"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:587,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:585,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:369,columnNumber:5},void 0)},ja=({clip:a,selected:n,onContinue:u,onInfill:v})=>{const c=!!String(a.clipId||"").trim();return e.jsxDEV("div",{className:`ma-clip-row ${n?"is-selected":""}`,children:[a.imageUrl?e.jsxDEV("img",{className:"ma-clip-thumb",src:a.imageUrl,alt:"",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:610,columnNumber:9},void 0):e.jsxDEV("div",{className:"ma-clip-thumb ma-clip-thumb--placeholder",children:"♪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:617,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-clip-meta",children:[e.jsxDEV("span",{className:"ma-clip-title",children:a.title||"未命名"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:620,columnNumber:9},void 0),a.duration!=null&&e.jsxDEV("span",{className:"ma-clip-duration",children:Be(a.duration)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:622,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:619,columnNumber:7},void 0),e.jsxDEV("audio",{controls:!0,src:a.audioUrl,className:"ma-clip-player",preload:"metadata"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:625,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-clip-actions",children:[e.jsxDEV("button",{className:"ma-clip-action-btn",onClick:u,disabled:!c,children:"续写"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:627,columnNumber:9},void 0),e.jsxDEV("button",{className:"ma-clip-action-btn",onClick:v,disabled:!c,children:"Infill"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:634,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:626,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:608,columnNumber:5},void 0)};function Be(a){const n=Math.floor(a/60),u=Math.round(a%60);return`${n}:${String(u).padStart(2,"0")}`}function va(a){switch(a){case ie.COMPLETED:return"已完成";case ie.PROCESSING:return"进行中";case ie.PENDING:return"等待中";case ie.FAILED:return"失败";default:return""}}function ka(a){switch(a){case ie.COMPLETED:return"completed";case ie.PROCESSING:return"processing";case ie.PENDING:return"pending";case ie.FAILED:return"failed";default:return"pending"}}function wa(a){const n=new Date(a);return`${n.getMonth()+1}/${n.getDate()} ${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function za(a){var v,c,b,g;const n=a.params.musicAnalyzerAction;if(n==="rewrite"){const k=(v=a.result)!=null&&v.analysisData&&typeof a.result.analysisData=="object"?a.result.analysisData:null,N=typeof(k==null?void 0:k.title)=="string"&&k.title.trim()?k.title.trim():"";if(N)return N}if(n==="lyrics-gen"){const k=(c=a.result)!=null&&c.analysisData&&typeof a.result.analysisData=="object"?a.result.analysisData:null,N=typeof(k==null?void 0:k.title)=="string"&&k.title.trim()?k.title.trim():"";if(N)return N;const S=typeof((b=a.result)==null?void 0:b.lyricsTitle)=="string"&&a.result.lyricsTitle.trim()?a.result.lyricsTitle.trim():typeof((g=a.result)==null?void 0:g.title)=="string"&&a.result.title.trim()?a.result.title.trim():"";if(S)return S}const u=String(a.params.prompt||"");return u.length>40?`${u.slice(0,40)}…`:u}const Ea=({records:a,onSelect:n,onRecordsChange:u,showStarredOnly:v=!1,onSelectLyrics:c})=>{const b=v?a.filter(t=>t.starred):a,[g,k]=s.useState(null),[N,S]=s.useState(null),{tasks:w}=ea(),A=s.useMemo(()=>{const t=new Map,y=new Set(a.map(j=>j.id)),d=()=>({rewrite:[],lyricsGen:[],audio:[]});for(const j of w){const o=j.params;if(j.type===F.CHAT&&o.musicAnalyzerAction==="rewrite"&&typeof o.musicAnalyzerRecordId=="string"&&y.has(o.musicAnalyzerRecordId)){const f=o.musicAnalyzerRecordId;be(t,f,"rewrite",j,d);continue}if((j.type===F.AUDIO||j.type===F.CHAT)&&o.musicAnalyzerAction==="lyrics-gen"&&typeof o.musicAnalyzerRecordId=="string"&&y.has(o.musicAnalyzerRecordId)){const f=o.musicAnalyzerRecordId;be(t,f,"lyricsGen",j,d);continue}if(j.type===F.AUDIO&&typeof o.batchId=="string"&&o.batchId.startsWith("ma_")){const f=aa(o.batchId,"ma_",y);f&&be(t,f,"audio",j,d)}}return sa(t)},[w,a]),z=s.useCallback(async(t,y)=>{t.stopPropagation();const d=await se(y.id,{starred:!y.starred});u(d)},[u]),C=s.useCallback((t,y)=>{t.stopPropagation(),S(y)},[]),m=s.useCallback(async()=>{if(!N)return;const t=await ia(N);u(t),S(null)},[u,N]),P=s.useCallback((t,y)=>{t.stopPropagation(),k(d=>d===y?null:y)},[]);return b.length===0?e.jsxDEV("div",{className:"va-page va-empty",children:e.jsxDEV("span",{children:v?"暂无收藏":"暂无分析记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:195,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:194,columnNumber:7},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"va-page",children:e.jsxDEV("div",{className:"va-history-list",children:b.map(t=>{var o;const y=A.get(t.id),d=!!(y&&y.rewrite.length+y.lyricsGen.length+y.audio.length>0),j=g===t.id;return e.jsxDEV("div",{className:"va-history-item",onClick:()=>n(t),children:[e.jsxDEV("div",{className:"va-history-header",children:[e.jsxDEV("span",{className:"va-history-source",children:[e.jsxDEV("span",{role:"img","aria-label":"audio",children:t.source==="scratch"?"✨":"🎵"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:215,columnNumber:19},void 0)," ",t.sourceLabel]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:214,columnNumber:17},void 0),e.jsxDEV("button",{className:`va-star-btn ${t.starred?"starred":""}`,onClick:f=>z(f,t),children:t.starred?"★":"☆"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:220,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:213,columnNumber:15},void 0),e.jsxDEV("div",{className:"va-history-meta",children:[d&&e.jsxDEV("button",{className:`va-history-expand-btn ${j?"expanded":""}`,onClick:f=>P(f,t.id),children:[e.jsxDEV(na,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:233,columnNumber:21},void 0),e.jsxDEV("span",{children:j?"收起":"关联任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:234,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:229,columnNumber:19},void 0),e.jsxDEV("span",{children:new Date(t.createdAt).toLocaleString()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:237,columnNumber:17},void 0),e.jsxDEV("span",{children:t.analysisModel||t.source},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:238,columnNumber:17},void 0),e.jsxDEV("button",{className:"va-history-delete",onClick:f=>C(f,t.id),children:"删除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:239,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:227,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-history-title",children:t.title||"未命名歌曲"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:246,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-history-summary",children:((o=t.analysis)==null?void 0:o.summary)||t.creationPrompt||"暂无摘要"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:247,columnNumber:15},void 0),t.generatedClips&&t.generatedClips.length>0&&e.jsxDEV("div",{className:"ma-history-clips-count",children:[t.generatedClips.length," 首已生成"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:251,columnNumber:17},void 0),j&&y&&e.jsxDEV("div",{className:"va-history-related",onClick:f=>f.stopPropagation(),children:[y.lyricsGen.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["歌词生成 (",y.lyricsGen.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:259,columnNumber:23},void 0),y.lyricsGen.map(f=>e.jsxDEV(De,{task:f,onClick:()=>c==null?void 0:c(t)},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:263,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:258,columnNumber:21},void 0),y.rewrite.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["歌词改写 (",y.rewrite.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:273,columnNumber:23},void 0),y.rewrite.map(f=>e.jsxDEV(De,{task:f,onClick:()=>c==null?void 0:c(t)},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:277,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:272,columnNumber:21},void 0),y.audio.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["音乐生成 (",y.audio.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:287,columnNumber:23},void 0),y.audio.map(f=>e.jsxDEV(De,{task:f},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:291,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:286,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:256,columnNumber:17},void 0)]},t.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:212,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:203,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:202,columnNumber:7},void 0),e.jsxDEV(ra,{open:N!==null,title:"确认删除",description:"确定要删除这条音乐分析记录吗?此操作不可撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:t=>{t||S(null)},onConfirm:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:303,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:201,columnNumber:5},void 0)},De=({task:a,onClick:n})=>{var c;const u=a.status===ie.COMPLETED,v=u&&((c=a.result)==null?void 0:c.url)||"";return e.jsxDEV(ua,{content:va(a.status),showArrow:!1,children:e.jsxDEV("div",{className:"va-history-related-task",onClick:n,style:n?{cursor:"pointer"}:void 0,children:[e.jsxDEV("span",{className:`va-history-related-task-status ${ka(a.status)}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:332,columnNumber:9},void 0),e.jsxDEV("span",{className:"va-history-related-task-prompt",children:za(a)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:335,columnNumber:9},void 0),e.jsxDEV("span",{className:"va-history-related-task-time",children:wa(a.createdAt)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:338,columnNumber:9},void 0),u&&v&&a.type===F.AUDIO&&e.jsxDEV("audio",{controls:!0,src:v,preload:"metadata",className:"ma-related-task-audio",onClick:b=>b.stopPropagation()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:342,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:327,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:326,columnNumber:5},void 0)},Ta=()=>{const[a,n]=s.useState("create"),[u,v]=s.useState(null),[c,b]=s.useState([]),[g,k]=s.useState(!1);s.useEffect(()=>{la().then(b)},[]),s.useEffect(()=>{let m=!1;const P=new Set,t=async d=>{if(P.has(d.id))return;if(ta(d)){P.add(d.id);try{const o=await Ve(d);if(!o||m)return;b(o.records),v(f=>(f==null?void 0:f.id)===o.record.id||!f?o.record:f)}catch(o){console.error("[MusicAnalyzer] Failed to sync task result:",o)}finally{P.delete(d.id)}return}const j=ca(d);if(j){P.add(d.id);try{const o=await da(d,j);if(!o||m)return;b(o.records),v(f=>(f==null?void 0:f.id)===o.record.id?o.record:f)}catch(o){console.error("[MusicAnalyzer] Failed to sync generation task:",o)}finally{P.delete(d.id)}}};_.getAllTasks().forEach(d=>{d.status==="completed"&&t(d)});const y=_.observeTaskUpdates().subscribe(d=>{d.task.status==="completed"&&t(d.task)});return()=>{m=!0,y.unsubscribe()}},[]);const N=s.useCallback(m=>{v(m)},[]),S=s.useCallback(m=>{v(m),n("create")},[]),w=s.useCallback(m=>{v(m),n("lyrics")},[]),A=s.useCallback(m=>{v(m)},[]),z=s.useCallback(()=>{v(null),n("create")},[]),C=s.useCallback(m=>{n(m)},[]);return e.jsxDEV("div",{className:"video-analyzer music-analyzer",children:[e.jsxDEV("div",{className:"va-nav",children:a==="history"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{className:"va-nav-back",onClick:()=>n("create"),children:"←"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:124,columnNumber:13},void 0),e.jsxDEV("span",{className:"va-nav-title",children:g?"收藏":"历史记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:127,columnNumber:13},void 0),e.jsxDEV("button",{className:`va-nav-btn ${g?"active":""}`,onClick:()=>k(m=>!m),children:g?"★ 收藏":"☆ 全部"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:128,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:123,columnNumber:11},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV(oa,{current:a,onNavigate:C,hasRecord:!!u},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:137,columnNumber:13},void 0),e.jsxDEV("div",{className:"va-nav-actions",children:[e.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!1),n("history")},children:[e.jsxDEV("span",{role:"img","aria-label":"history",children:"📋"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:146,columnNumber:17},void 0),c.length>0&&e.jsxDEV("span",{className:"va-nav-count",children:c.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:149,columnNumber:40},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:139,columnNumber:15},void 0),e.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!0),n("history")},children:[e.jsxDEV("span",{role:"img","aria-label":"starred",children:"⭐"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:158,columnNumber:17},void 0),c.filter(m=>m.starred).length>0&&e.jsxDEV("span",{className:"va-nav-count",children:c.filter(m=>m.starred).length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:162,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:151,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:138,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:136,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:121,columnNumber:7},void 0),a==="create"&&e.jsxDEV(ya,{existingRecord:u,onComplete:N,onRecordsChange:b,onCreateNew:z,onNext:u?()=>n("lyrics"):void 0,onLyricsReady:()=>n("lyrics")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:173,columnNumber:9},void 0),a==="lyrics"&&u&&e.jsxDEV(xa,{record:u,onRecordUpdate:A,onRecordsChange:b,onNext:()=>n("generate")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:183,columnNumber:9},void 0),a==="generate"&&u&&e.jsxDEV(ba,{record:u,onRecordUpdate:A,onRecordsChange:b,onRestart:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:191,columnNumber:9},void 0),a==="history"&&e.jsxDEV(Ea,{records:c,onSelect:S,onRecordsChange:b,showStarredOnly:g,onSelectLyrics:w},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:199,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:120,columnNumber:5},void 0)};export{Ta as default};
6
+ `)||c||g||a.sourceLabel;l=_.createTask({prompt:W,model:d,modelRef:o||null,sunoAction:"lyrics",musicAnalyzerAction:"lyrics-gen",musicAnalyzerRecordId:a.id,autoInsertToCanvas:!1},F.AUDIO)}else l=_.createTask({prompt:`改写歌词:${a.sourceLabel}`,model:d,modelRef:o||null,musicAnalyzerAction:"rewrite",musicAnalyzerPrompt:Oe({analysis:a.analysis,userPrompt:c,originalPrompt:$,currentLyrics:g}),musicAnalyzerRecordId:a.id,autoInsertToCanvas:!1},F.CHAT);C(l.id);const b=await se(a.id,{rewritePrompt:c,pendingRewriteTaskId:l.id});u(b),n({...a,rewritePrompt:c,pendingRewriteTaskId:l.id})}catch(l){y(l.message||"歌词改写失败"),P("")}},[g,n,u,a,c,d,o,M]);s.useEffect(()=>{if(!z)return;const l=_.getTask(z);typeof(l==null?void 0:l.progress)=="number"&&P(`歌词改写中 ${Math.round(l.progress)}%`);const b=_.observeTaskUpdates().subscribe(q=>{var W;if(q.task.id===z){if(q.task.status==="failed"){C(null),P(""),y(((W=q.task.error)==null?void 0:W.message)||"歌词改写失败"),se(a.id,{pendingRewriteTaskId:null}).then(u);return}if(q.task.status==="completed"){Ve(q.task).then(O=>{O&&(u(O.records),n(O.record),k(O.record.lyricsDraft||""),S(O.record.title||""),A((O.record.styleTags||[]).join(", ")))}).catch(O=>{y(O.message||"改写结果同步失败")}).finally(()=>{C(null),P("")});return}typeof q.task.progress=="number"&&P(`歌词改写中 ${Math.round(q.task.progress)}%`)}});return()=>b.unsubscribe()},[n,u,z,a.id]);const te=s.useCallback(async()=>{const l=await Fe("text",Xe({title:N,styleTags:w.split(",").map(b=>b.trim()).filter(Boolean),lyricsDraft:g}));if(!l.success){y(l.error||"插入失败,请确认画布已打开");return}pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_inserted_to_canvas",control:"insert_lyrics",source:"music_analyzer_lyrics_page",metadata:{lyricsLength:g.trim().length,tagsCount:w.split(",").filter(b=>b.trim()).length}})},[g,w,N]);return e.jsxDEV("div",{className:"va-page",children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"歌词模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:311,columnNumber:11},void 0),U&&e.jsxDEV("div",{className:"ma-version-dropdown",children:[e.jsxDEV("button",{className:"ma-version-btn",onClick:()=>ee(l=>!l),children:[((I=Q.find(l=>l.id===D))==null?void 0:I.label)||"原始版本",e.jsxDEV("span",{className:"ma-version-arrow",children:B?"▲":"▼"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:320,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:315,columnNumber:15},void 0),B&&e.jsxDEV("div",{className:"ma-version-menu",children:Q.map(l=>e.jsxDEV("button",{className:`ma-version-menu-item ${l.id===D?"active":""}`,onClick:()=>ce(l.id),children:l.label},l.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:325,columnNumber:21},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:323,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:314,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:310,columnNumber:9},void 0),e.jsxDEV(Ne,{selectedModel:d,selectedSelectionKey:ye(d,o),onSelect:le,models:re,variant:"form",placement:"down",placeholder:"选择歌词模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:338,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:309,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"改写要求"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:351,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:350,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:c,onChange:l=>h(l.target.value),rows:4,placeholder:"告诉 AI 要保留什么、强化什么、改成什么风格"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:353,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary ma-rewrite-submit",onClick:J,children:M?"Suno 生成歌词":"AI 改写"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:360,columnNumber:9},void 0),m&&e.jsxDEV("div",{className:"ma-progress",children:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:363,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:349,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:368,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:367,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:N,onChange:l=>S(l.target.value),placeholder:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:370,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:366,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:380,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:379,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:w,onChange:l=>A(l.target.value),placeholder:"例如 cinematic pop, female vocal, uplifting"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:382,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:378,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:392,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:391,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:g,onChange:l=>k(l.target.value),rows:14,placeholder:"AI 改写结果会出现在这里,可继续手改"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:394,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:390,columnNumber:7},void 0),t&&e.jsxDEV("div",{className:"ma-error",children:t},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:403,columnNumber:17},void 0),e.jsxDEV("div",{className:"va-page-actions",children:[e.jsxDEV("button",{onClick:te,disabled:!g.trim(),children:"插入歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:406,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:v,disabled:!g.trim(),children:"下一步"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:405,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:308,columnNumber:5},void 0)},ze="music-analyzer:audio-model",Pe=[{id:"generate",label:"新生成",hint:"从零生成完整音乐"},{id:"continue",label:"续写",hint:"从已有片段继续创作"},{id:"infill",label:"Infill",hint:"局部重绘指定时间窗口"}];function oe(a){const n=a.trim();if(!n)return null;const u=Number(n);return Number.isFinite(u)?u:null}function me(a){return typeof a=="number"&&Number.isFinite(a)?String(a):""}function Ee(a){return a.split(",").map(n=>n.trim()).filter(Boolean)}function Ge(a){var n;return((n=Pe.find(u=>u.id===a))==null?void 0:n.label)||"新生成"}function ba(a){return typeof a.duration=="number"&&Number.isFinite(a.duration)?String(Math.max(0,Math.round(a.duration))):""}function _e(a){const n=a.title||"未命名片段",u=a.duration!=null?` · ${Be(a.duration)}`:"",v=a.clipId?` · ${a.clipId.slice(0,8)}`:"";return`${n}${u}${v}`}const ha=({record:a,onRecordUpdate:n,onRecordsChange:u,onRestart:v})=>{var O;const[c,h]=s.useState(a.title||""),[g,k]=s.useState((a.styleTags||[]).join(", ")),[N,S]=s.useState(a.lyricsDraft||""),[w,A]=s.useState("chirp-v5-5"),[z,C]=s.useState(1),[m,P]=s.useState(()=>ue(ze,xe()).modelId),[t,y]=s.useState(()=>ue(ze,xe()).modelRef),[d,j]=s.useState(a.musicEditAction||"generate"),[o,f]=s.useState(a.continueFromClipId||""),[B,ee]=s.useState(me(a.continueAt)),[L,le]=s.useState(me(a.infillStartS)),[K,ne]=s.useState(me(a.infillEndS)),[re,M]=s.useState(!1),[Q,D]=s.useState(""),U=s.useRef(),$=s.useRef(!1),ce=s.useCallback((i,G)=>{P(i),y(G||null),ge(ze,i,G)},[]);s.useEffect(()=>{h(a.title||""),k((a.styleTags||[]).join(", ")),S(a.lyricsDraft||""),j(a.musicEditAction||"generate"),f(a.continueFromClipId||""),ee(me(a.continueAt)),le(me(a.infillStartS)),ne(me(a.infillEndS))},[a]),s.useEffect(()=>(clearTimeout(U.current),U.current=setTimeout(async()=>{const i=Ee(g),G=oe(B),E=oe(L),ae=oe(K),Y={title:c,styleTags:i,lyricsDraft:N,musicEditAction:d,continueFromClipId:o||null,continueAt:G,infillStartS:E,infillEndS:ae},R=await se(a.id,Y);u(R),n({...a,...Y})},400),()=>clearTimeout(U.current)),[d,B,o,K,L,n,u,N,a.id,g,c]);const J=fe("audio"),te=s.useMemo(()=>J.filter(i=>{const G=Array.isArray(i.tags)?i.tags.join(" "):"";return/suno/i.test(i.id)||/suno/i.test(G)}),[J]),V=s.useMemo(()=>Ze(m).find(i=>i.id==="mv"),[m]);s.useEffect(()=>{V!=null&&V.defaultValue&&A(i=>i||String(V.defaultValue))},[V==null?void 0:V.defaultValue]);const X=a.generatedClips||[],H=s.useMemo(()=>X.filter(i=>!!String(i.clipId||"").trim()),[X]),I=s.useMemo(()=>H.find(i=>i.clipId===o)||null,[o,H]),l=d!=="generate",b=d==="infill",q=s.useCallback((i,G)=>{if(!i.clipId){D("该片段尚未拿到真实 clip_id,暂时不能继续创作");return}j(G),f(i.clipId),ee(E=>E||ba(i)),D(G==="continue"?`已带入片段「${i.title||i.clipId.slice(0,8)}」用于续写`:`已带入片段「${i.title||i.clipId.slice(0,8)}」用于 Infill`)},[]),W=s.useCallback(async()=>{const i=N.trim(),G=c.trim(),E=g.trim(),ae=oe(B),Y=oe(L),R=oe(K);if(!i){D("请先准备歌词或生成提示词");return}if(l&&!o){D("请先选择要续写的片段");return}if(l&&!(I!=null&&I.taskId)){D("当前片段缺少来源 task_id,请先重新同步或重新生成一次片段");return}if(l&&ae==null){D("请填写续写起点秒数");return}if(ae!=null&&ae<0){D("续写起点秒数不能小于 0");return}if(b&&Y==null){D("请填写 Infill 开始秒数");return}if(b&&R==null){D("请填写 Infill 结束秒数");return}if(Y!=null&&Y<0){D("Infill 开始秒数不能小于 0");return}if(R!=null&&R<0){D("Infill 结束秒数不能小于 0");return}if(b&&Y!=null&&R!=null&&Y>=R){D("Infill 开始秒数必须小于结束秒数");return}if(!$.current){$.current=!0,pe.trackUIInteraction({area:"popular_music_tool",action:"music_generation_started",control:"generate_music",source:"music_analyzer_generate_page",metadata:{editAction:d,batchCount:z,promptLength:i.length,hasTitle:!!G,tagsCount:Ee(E).length,hasMv:!!w,hasModelRef:!!t}}),M(!0),D("");try{const de=[],be=d==="generate"?"gen":d;for(let p=0;p<z;p+=1){const T=_.createTask({prompt:i,model:m,modelRef:t,sunoAction:"music",title:G,tags:E,mv:w,continueClipId:l?o:void 0,continueTaskId:l?I==null?void 0:I.taskId:void 0,continueAt:l?ae??void 0:void 0,infillStartS:b?Y??void 0:void 0,infillEndS:b?R??void 0:void 0,batchId:`ma_${a.id}_${be}_${p}`,batchIndex:p,batchTotal:z,autoInsertToCanvas:!0},F.AUDIO);de.push(T.id)}const r={generateTaskIds:[...a.generateTaskIds||[],...de],title:G,styleTags:Ee(E),lyricsDraft:i,musicEditAction:d,continueFromClipId:o||null,continueAt:ae,infillStartS:Y,infillEndS:R},x=await se(a.id,r);u(x),n({...a,...r}),D(`已提交 ${z} 次${Ge(d)}任务到 Suno 队列`)}catch(de){D(de.message||"提交生成任务失败")}finally{M(!1),$.current=!1}}},[d,z,B,o,K,L,w,n,u,N,a,l,b,I==null?void 0:I.taskId,m,t,g,c]);return e.jsxDEV("div",{className:"va-page",children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"创作动作"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:372,columnNumber:11},void 0),e.jsxDEV("span",{className:"ma-muted",children:(O=Pe.find(i=>i.id===d))==null?void 0:O.hint},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:373,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:371,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-action-toggle",children:Pe.map(i=>e.jsxDEV("button",{className:`ma-action-btn ${d===i.id?"active":""}`,onClick:()=>j(i.id),children:i.label},i.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:379,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:377,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:370,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:392,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:391,columnNumber:9},void 0),e.jsxDEV(Ne,{selectedModel:m,selectedSelectionKey:ye(m,t),onSelect:ce,models:te.length>0?te:J,variant:"form",placement:"down",placeholder:"选择音频生成模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:394,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:390,columnNumber:7},void 0),(V==null?void 0:V.options)&&V.options.length>0&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 版本"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:408,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:407,columnNumber:11},void 0),e.jsxDEV("select",{className:"ma-select",value:w,onChange:i=>A(i.target.value),children:V.options.map(i=>e.jsxDEV("option",{value:String(i.value),children:i.label},i.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:416,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:410,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:406,columnNumber:9},void 0),l&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"目标片段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:427,columnNumber:13},void 0),e.jsxDEV("span",{className:"ma-muted",children:"自动使用轮询得到的真实 clip_id"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:428,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:426,columnNumber:11},void 0),H.length>0?e.jsxDEV("select",{className:"ma-select",value:o,onChange:i=>f(i.target.value),children:[e.jsxDEV("option",{value:"",children:"请选择已生成片段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:436,columnNumber:15},void 0),H.map(i=>e.jsxDEV("option",{value:i.clipId,children:_e(i)},i.clipId,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:438,columnNumber:17},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:431,columnNumber:13},void 0):e.jsxDEV("div",{className:"ma-hint",children:"先生成至少一个片段,才能使用续写或 Infill。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:444,columnNumber:13},void 0),I&&e.jsxDEV("div",{className:"ma-hint",children:["当前片段:",_e(I)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:447,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:425,columnNumber:9},void 0),l&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"编辑参数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:457,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:456,columnNumber:11},void 0),e.jsxDEV("div",{className:`ma-fields-grid ${b?"ma-fields-grid--triple":""}`,children:[e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"续写起点秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:461,columnNumber:15},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:B,onChange:i=>ee(i.target.value),placeholder:"例如 30"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:462,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:460,columnNumber:13},void 0),b&&e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"Infill 开始秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:474,columnNumber:17},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:L,onChange:i=>le(i.target.value),placeholder:"例如 8"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:475,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:473,columnNumber:15},void 0),b&&e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"Infill 结束秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:488,columnNumber:17},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:K,onChange:i=>ne(i.target.value),placeholder:"例如 16"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:489,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:487,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:459,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:455,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:506,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:505,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:c,onChange:i=>h(i.target.value),placeholder:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:508,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:504,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:518,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:517,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:g,onChange:i=>k(i.target.value),placeholder:"逗号分隔,例如 edm, intense, female vocal"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:520,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:516,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"提交给 Suno 的歌词/提示词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:530,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:529,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",rows:10,value:N,onChange:i=>S(i.target.value),placeholder:"这里的内容会直接作为 prompt 提交给 Suno"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:532,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:528,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"调用次数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:543,columnNumber:11},void 0),e.jsxDEV("span",{className:"ma-muted",children:"每次返回 2 首"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:544,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:542,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-batch-selector",children:[1,2,3,4].map(i=>e.jsxDEV("button",{className:`ma-batch-btn ${z===i?"active":""}`,onClick:()=>C(i),children:[i," 次"]},i,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:548,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:546,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:541,columnNumber:7},void 0),X.length>0&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:["已生成片段 (",X.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:562,columnNumber:13},void 0),e.jsxDEV("span",{className:"ma-muted",children:"可直接带入续写或 Infill"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:563,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:561,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-clips-gallery",children:X.map(i=>e.jsxDEV(ja,{clip:i,selected:l&&!!i.clipId&&o===i.clipId,onContinue:()=>q(i,"continue"),onInfill:()=>q(i,"infill")},`${i.taskId}:${i.clipId||i.audioUrl}`,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:567,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:565,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:560,columnNumber:9},void 0),Q&&e.jsxDEV("div",{className:"ma-progress",children:Q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:583,columnNumber:19},void 0),e.jsxDEV("div",{className:"va-page-actions",children:[e.jsxDEV("button",{onClick:v,children:"重新开始"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:586,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:W,disabled:re,children:[Ge(d)," ",z," 次"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:587,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:585,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:369,columnNumber:5},void 0)},ja=({clip:a,selected:n,onContinue:u,onInfill:v})=>{const c=!!String(a.clipId||"").trim();return e.jsxDEV("div",{className:`ma-clip-row ${n?"is-selected":""}`,children:[a.imageUrl?e.jsxDEV("img",{className:"ma-clip-thumb",src:a.imageUrl,alt:"",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:610,columnNumber:9},void 0):e.jsxDEV("div",{className:"ma-clip-thumb ma-clip-thumb--placeholder",children:"♪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:617,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-clip-meta",children:[e.jsxDEV("span",{className:"ma-clip-title",children:a.title||"未命名"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:620,columnNumber:9},void 0),a.duration!=null&&e.jsxDEV("span",{className:"ma-clip-duration",children:Be(a.duration)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:622,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:619,columnNumber:7},void 0),e.jsxDEV("audio",{controls:!0,src:a.audioUrl,className:"ma-clip-player",preload:"metadata"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:625,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-clip-actions",children:[e.jsxDEV("button",{className:"ma-clip-action-btn",onClick:u,disabled:!c,children:"续写"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:627,columnNumber:9},void 0),e.jsxDEV("button",{className:"ma-clip-action-btn",onClick:v,disabled:!c,children:"Infill"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:634,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:626,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:608,columnNumber:5},void 0)};function Be(a){const n=Math.floor(a/60),u=Math.round(a%60);return`${n}:${String(u).padStart(2,"0")}`}function va(a){switch(a){case ie.COMPLETED:return"已完成";case ie.PROCESSING:return"进行中";case ie.PENDING:return"等待中";case ie.FAILED:return"失败";default:return""}}function ka(a){switch(a){case ie.COMPLETED:return"completed";case ie.PROCESSING:return"processing";case ie.PENDING:return"pending";case ie.FAILED:return"failed";default:return"pending"}}function wa(a){const n=new Date(a);return`${n.getMonth()+1}/${n.getDate()} ${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function za(a){var v,c,h,g;const n=a.params.musicAnalyzerAction;if(n==="rewrite"){const k=(v=a.result)!=null&&v.analysisData&&typeof a.result.analysisData=="object"?a.result.analysisData:null,N=typeof(k==null?void 0:k.title)=="string"&&k.title.trim()?k.title.trim():"";if(N)return N}if(n==="lyrics-gen"){const k=(c=a.result)!=null&&c.analysisData&&typeof a.result.analysisData=="object"?a.result.analysisData:null,N=typeof(k==null?void 0:k.title)=="string"&&k.title.trim()?k.title.trim():"";if(N)return N;const S=typeof((h=a.result)==null?void 0:h.lyricsTitle)=="string"&&a.result.lyricsTitle.trim()?a.result.lyricsTitle.trim():typeof((g=a.result)==null?void 0:g.title)=="string"&&a.result.title.trim()?a.result.title.trim():"";if(S)return S}const u=String(a.params.prompt||"");return u.length>40?`${u.slice(0,40)}…`:u}const Ea=({records:a,onSelect:n,onRecordsChange:u,showStarredOnly:v=!1,onSelectLyrics:c})=>{const h=v?a.filter(t=>t.starred):a,[g,k]=s.useState(null),[N,S]=s.useState(null),{tasks:w}=ea(),A=s.useMemo(()=>{const t=new Map,y=new Set(a.map(j=>j.id)),d=()=>({rewrite:[],lyricsGen:[],audio:[]});for(const j of w){const o=j.params;if(j.type===F.CHAT&&o.musicAnalyzerAction==="rewrite"&&typeof o.musicAnalyzerRecordId=="string"&&y.has(o.musicAnalyzerRecordId)){const f=o.musicAnalyzerRecordId;he(t,f,"rewrite",j,d);continue}if((j.type===F.AUDIO||j.type===F.CHAT)&&o.musicAnalyzerAction==="lyrics-gen"&&typeof o.musicAnalyzerRecordId=="string"&&y.has(o.musicAnalyzerRecordId)){const f=o.musicAnalyzerRecordId;he(t,f,"lyricsGen",j,d);continue}if(j.type===F.AUDIO&&typeof o.batchId=="string"&&o.batchId.startsWith("ma_")){const f=aa(o.batchId,"ma_",y);f&&he(t,f,"audio",j,d)}}return sa(t)},[w,a]),z=s.useCallback(async(t,y)=>{t.stopPropagation();const d=await se(y.id,{starred:!y.starred});u(d)},[u]),C=s.useCallback((t,y)=>{t.stopPropagation(),S(y)},[]),m=s.useCallback(async()=>{if(!N)return;const t=await ia(N);u(t),S(null)},[u,N]),P=s.useCallback((t,y)=>{t.stopPropagation(),k(d=>d===y?null:y)},[]);return h.length===0?e.jsxDEV("div",{className:"va-page va-empty",children:e.jsxDEV("span",{children:v?"暂无收藏":"暂无分析记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:195,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:194,columnNumber:7},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"va-page",children:e.jsxDEV("div",{className:"va-history-list",children:h.map(t=>{var o;const y=A.get(t.id),d=!!(y&&y.rewrite.length+y.lyricsGen.length+y.audio.length>0),j=g===t.id;return e.jsxDEV("div",{className:"va-history-item",onClick:()=>n(t),children:[e.jsxDEV("div",{className:"va-history-header",children:[e.jsxDEV("span",{className:"va-history-source",children:[e.jsxDEV("span",{role:"img","aria-label":"audio",children:t.source==="scratch"?"✨":"🎵"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:215,columnNumber:19},void 0)," ",t.sourceLabel]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:214,columnNumber:17},void 0),e.jsxDEV("button",{className:`va-star-btn ${t.starred?"starred":""}`,onClick:f=>z(f,t),children:t.starred?"★":"☆"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:220,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:213,columnNumber:15},void 0),e.jsxDEV("div",{className:"va-history-meta",children:[d&&e.jsxDEV("button",{className:`va-history-expand-btn ${j?"expanded":""}`,onClick:f=>P(f,t.id),children:[e.jsxDEV(na,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:233,columnNumber:21},void 0),e.jsxDEV("span",{children:j?"收起":"关联任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:234,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:229,columnNumber:19},void 0),e.jsxDEV("span",{children:new Date(t.createdAt).toLocaleString()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:237,columnNumber:17},void 0),e.jsxDEV("span",{children:t.analysisModel||t.source},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:238,columnNumber:17},void 0),e.jsxDEV("button",{className:"va-history-delete",onClick:f=>C(f,t.id),children:"删除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:239,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:227,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-history-title",children:t.title||"未命名歌曲"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:246,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-history-summary",children:((o=t.analysis)==null?void 0:o.summary)||t.creationPrompt||"暂无摘要"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:247,columnNumber:15},void 0),t.generatedClips&&t.generatedClips.length>0&&e.jsxDEV("div",{className:"ma-history-clips-count",children:[t.generatedClips.length," 首已生成"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:251,columnNumber:17},void 0),j&&y&&e.jsxDEV("div",{className:"va-history-related",onClick:f=>f.stopPropagation(),children:[y.lyricsGen.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["歌词生成 (",y.lyricsGen.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:259,columnNumber:23},void 0),y.lyricsGen.map(f=>e.jsxDEV(De,{task:f,onClick:()=>c==null?void 0:c(t)},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:263,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:258,columnNumber:21},void 0),y.rewrite.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["歌词改写 (",y.rewrite.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:273,columnNumber:23},void 0),y.rewrite.map(f=>e.jsxDEV(De,{task:f,onClick:()=>c==null?void 0:c(t)},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:277,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:272,columnNumber:21},void 0),y.audio.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["音乐生成 (",y.audio.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:287,columnNumber:23},void 0),y.audio.map(f=>e.jsxDEV(De,{task:f},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:291,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:286,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:256,columnNumber:17},void 0)]},t.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:212,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:203,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:202,columnNumber:7},void 0),e.jsxDEV(ra,{open:N!==null,title:"确认删除",description:"确定要删除这条音乐分析记录吗?此操作不可撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:t=>{t||S(null)},onConfirm:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:303,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:201,columnNumber:5},void 0)},De=({task:a,onClick:n})=>{var c;const u=a.status===ie.COMPLETED,v=u&&((c=a.result)==null?void 0:c.url)||"";return e.jsxDEV(ua,{content:va(a.status),showArrow:!1,children:e.jsxDEV("div",{className:"va-history-related-task",onClick:n,style:n?{cursor:"pointer"}:void 0,children:[e.jsxDEV("span",{className:`va-history-related-task-status ${ka(a.status)}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:332,columnNumber:9},void 0),e.jsxDEV("span",{className:"va-history-related-task-prompt",children:za(a)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:335,columnNumber:9},void 0),e.jsxDEV("span",{className:"va-history-related-task-time",children:wa(a.createdAt)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:338,columnNumber:9},void 0),u&&v&&a.type===F.AUDIO&&e.jsxDEV("audio",{controls:!0,src:v,preload:"metadata",className:"ma-related-task-audio",onClick:h=>h.stopPropagation()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:342,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:327,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:326,columnNumber:5},void 0)},qa=()=>{const[a,n]=s.useState("create"),[u,v]=s.useState(null),[c,h]=s.useState([]),[g,k]=s.useState(!1);s.useEffect(()=>{la().then(h)},[]),s.useEffect(()=>{let m=!1;const P=new Set,t=async d=>{if(P.has(d.id))return;if(ta(d)){P.add(d.id);try{const o=await Ve(d);if(!o||m)return;h(o.records),v(f=>(f==null?void 0:f.id)===o.record.id||!f?o.record:f)}catch(o){console.error("[MusicAnalyzer] Failed to sync task result:",o)}finally{P.delete(d.id)}return}const j=ca(d);if(j){P.add(d.id);try{const o=await da(d,j);if(!o||m)return;h(o.records),v(f=>(f==null?void 0:f.id)===o.record.id?o.record:f)}catch(o){console.error("[MusicAnalyzer] Failed to sync generation task:",o)}finally{P.delete(d.id)}}};_.getAllTasks().forEach(d=>{d.status==="completed"&&t(d)});const y=_.observeTaskUpdates().subscribe(d=>{d.task.status==="completed"&&t(d.task)});return()=>{m=!0,y.unsubscribe()}},[]);const N=s.useCallback(m=>{v(m)},[]),S=s.useCallback(m=>{v(m),n("create")},[]),w=s.useCallback(m=>{v(m),n("lyrics")},[]),A=s.useCallback(m=>{v(m)},[]),z=s.useCallback(()=>{v(null),n("create")},[]),C=s.useCallback(m=>{n(m)},[]);return e.jsxDEV("div",{className:"video-analyzer music-analyzer",children:[e.jsxDEV("div",{className:"va-nav",children:a==="history"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{className:"va-nav-back",onClick:()=>n("create"),children:"←"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:124,columnNumber:13},void 0),e.jsxDEV("span",{className:"va-nav-title",children:g?"收藏":"历史记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:127,columnNumber:13},void 0),e.jsxDEV("button",{className:`va-nav-btn ${g?"active":""}`,onClick:()=>k(m=>!m),children:g?"★ 收藏":"☆ 全部"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:128,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:123,columnNumber:11},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV(oa,{current:a,onNavigate:C,hasRecord:!!u},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:137,columnNumber:13},void 0),e.jsxDEV("div",{className:"va-nav-actions",children:[e.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!1),n("history")},children:[e.jsxDEV("span",{role:"img","aria-label":"history",children:"📋"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:146,columnNumber:17},void 0),c.length>0&&e.jsxDEV("span",{className:"va-nav-count",children:c.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:149,columnNumber:40},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:139,columnNumber:15},void 0),e.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!0),n("history")},children:[e.jsxDEV("span",{role:"img","aria-label":"starred",children:"⭐"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:158,columnNumber:17},void 0),c.filter(m=>m.starred).length>0&&e.jsxDEV("span",{className:"va-nav-count",children:c.filter(m=>m.starred).length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:162,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:151,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:138,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:136,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:121,columnNumber:7},void 0),a==="create"&&e.jsxDEV(ya,{existingRecord:u,onComplete:N,onRecordsChange:h,onCreateNew:z,onNext:u?()=>n("lyrics"):void 0,onLyricsReady:()=>n("lyrics")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:173,columnNumber:9},void 0),a==="lyrics"&&u&&e.jsxDEV(xa,{record:u,onRecordUpdate:A,onRecordsChange:h,onNext:()=>n("generate")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:183,columnNumber:9},void 0),a==="generate"&&u&&e.jsxDEV(ha,{record:u,onRecordUpdate:A,onRecordsChange:h,onRestart:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:191,columnNumber:9},void 0),a==="history"&&e.jsxDEV(Ea,{records:c,onSelect:S,onRecordsChange:h,showStarredOnly:g,onSelectLyrics:w},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:199,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:120,columnNumber:5},void 0)};export{qa as default};
@@ -0,0 +1 @@
1
+ import{aj as l,bn as ne,aU as x,eI as re,eJ as le,ar as X,av as te,ai as s,eK as de,ax as oe,bN as ce,ao as R,aq as Y,ap as W,cP as ue}from"./tool-windows-DOIu9TAD.js";const pe=({images:o,onImagesChange:p,language:U="zh",disabled:m=!1,multiple:g=!0,maxCount:h=10,label:V,slotLabels:f,onError:t})=>{const[q,y]=l.useState(!1),[C,I]=l.useState(!1),[_,z]=l.useState(0),[j,w]=l.useState(null),F=l.useRef(null),B=l.useRef(null),{addAsset:S}=ne(),u={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 25MB",someFilesInvalid:"部分文件格式不支持或超过25MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 25MB",someFilesInvalid:"Some files are not supported or exceed 25MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[U],E=l.useCallback(e=>e.type.startsWith("image/")?e.size>25*1024*1024?(x.error(u.fileTooLarge),!1):!0:(x.error(u.invalidFile),!1),[u]),A=l.useCallback((e,a)=>new Promise((i,r)=>{const d=new FileReader;d.onload=()=>{i({url:d.result,name:a,file:(e instanceof File,e)})},d.onerror=r,d.readAsDataURL(e)}),[]),b=l.useCallback(async(e,a)=>{const r=Array.from(e).filter(E);if(r.length===0)return;g&&o.length+r.length>h&&(x.warning(u.maxCountReached.replace("{count}",String(h))),r.splice(h-o.length));const d=[];for(const n of r)try{let c=n;if(n.size>10*1024*1024){const N=re(n.size/1048576),v=x.loading({content:U==="zh"?`正在压缩图片 (${(n.size/1024/1024).toFixed(1)}MB)...`:`Compressing image (${(n.size/1024/1024).toFixed(1)}MB)...`,duration:0,placement:"top"});try{c=await le(n,N.targetSizeMB),x.close(v),x.success({content:U==="zh"?`压缩完成: ${(n.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`:`Compressed: ${(n.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`,duration:2})}catch(k){x.close(v),console.error("[ReferenceImageUpload] Compression failed:",k),t==null||t(U==="zh"?"图片压缩失败":"Image compression failed");continue}}d.push({blob:c,name:n.name})}catch(c){console.error("[ReferenceImageUpload] Error processing file:",c),t==null||t(u.loadFailed);continue}if(d.length!==0){d.forEach(({blob:n,name:c})=>{S(n,X.IMAGE,te.LOCAL,c).catch(N=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",N)})});try{const n=await Promise.all(d.map(({blob:c,name:N})=>A(c,N)));if(f&&a!==void 0){const c=[...o];c[a]=n[0],p(c.filter(Boolean))}else p(g?[...o,...n]:n.slice(0,1));t==null||t(null)}catch(n){console.error("[ReferenceImageUpload] Failed to process files:",n),t==null||t(u.loadFailed)}}},[o,g,h,f,U,E,A,S,p,t,u]),J=l.useCallback(e=>{const a=e.target.files;a&&a.length>0&&b(a,f?_:void 0),e.target.value=""},[b,f,_]),K=l.useCallback(async e=>{try{const i=await(await fetch(e.url)).blob(),r=new FileReader;r.onload=()=>{const d={url:r.result,name:e.name};if(f){const n=[...o];n[_]=d,p(n.filter(Boolean))}else if(g){if(o.length>=h){x.warning(u.maxCountReached.replace("{count}",String(h)));return}p([...o,d])}else p([d]);y(!1),t==null||t(null)},r.readAsDataURL(i)}catch(a){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",a),t==null||t(u.loadFailed),y(!1)}},[o,g,h,f,_,p,t,u]),P=l.useCallback(e=>{e.preventDefault(),e.stopPropagation(),m||I(!0)},[m]),L=l.useCallback(e=>{var i;e.preventDefault(),e.stopPropagation();const a=(i=F.current)==null?void 0:i.getBoundingClientRect();if(a){const{clientX:r,clientY:d}=e;(r<a.left||r>a.right||d<a.top||d>a.bottom)&&I(!1)}},[]),$=l.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),T=l.useCallback((e,a)=>{if(e.preventDefault(),e.stopPropagation(),I(!1),m)return;const i=e.dataTransfer.files;i&&i.length>0&&b(i,a)},[m,b]);l.useEffect(()=>{const e=async a=>{var N;if(m)return;const i=document.activeElement,r=F.current;if(!r||!(r.contains(i)||i===document.body||(i==null?void 0:i.tagName)==="BODY"))return;const n=(N=a.clipboardData)==null?void 0:N.items;if(!n)return;const c=[];for(let v=0;v<n.length;v++){const k=n[v];if(k.type.startsWith("image/")){const G=k.getAsFile();G&&c.push(G)}}c.length>0&&(a.preventDefault(),b(c))};return document.addEventListener("paste",e),()=>{document.removeEventListener("paste",e)}},[m,b]);const Q=l.useCallback(e=>{const a=o.filter((i,r)=>r!==e);w(null),p(a)},[o,p]),O=l.useCallback(e=>{var a;e!==void 0&&z(e),(a=B.current)==null||a.click()},[]),H=l.useCallback(e=>{e!==void 0&&z(e),y(!0)},[]),Z=l.useCallback((e,a)=>{const i=a.currentTarget.getBoundingClientRect(),r=i.left+i.width/2,d=i.top-10;w({url:e,x:r,y:d})},[]),ee=l.useCallback(()=>{w(null)},[]),D=e=>s.jsxDEV("div",{className:`reference-image-upload__placeholder ${C?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:$,onDrop:a=>T(a,e),children:s.jsxDEV("div",{className:"reference-image-upload__buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:401,columnNumber:17},void 0),onClick:()=>O(e),disabled:m,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:399,columnNumber:9},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(W,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:411,columnNumber:17},void 0),onClick:()=>H(e),disabled:m,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:398,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:391,columnNumber:5},void 0),M=(e,a)=>s.jsxDEV("div",{className:"reference-image-upload__preview",onMouseEnter:i=>Z(e.url,i),onMouseLeave:ee,children:[s.jsxDEV("img",{src:e.url,alt:e.name,className:"reference-image-upload__image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:431,columnNumber:7},void 0),s.jsxDEV("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>Q(a),disabled:m,"data-track":"reference_image_upload_remove",children:s.jsxDEV(ue,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:443,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:436,columnNumber:7},void 0),f&&f[a]&&s.jsxDEV("div",{className:"reference-image-upload__slot-label",children:f[a]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:446,columnNumber:9},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:425,columnNumber:5},void 0),ae=()=>f?s.jsxDEV("div",{className:"reference-image-upload__slots",children:f.map((e,a)=>{const i=o[a];return s.jsxDEV("div",{className:"reference-image-upload__slot",children:[s.jsxDEV("div",{className:"reference-image-upload__slot-title",children:e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:463,columnNumber:15},void 0),i?M(i,a):s.jsxDEV("div",{className:`reference-image-upload__slot-placeholder ${C?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:$,onDrop:r=>T(r,a),children:s.jsxDEV("div",{className:"reference-image-upload__slot-buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:477,columnNumber:29},void 0),onClick:()=>O(a),disabled:m,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:475,columnNumber:21},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(W,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:487,columnNumber:29},void 0),onClick:()=>H(a),disabled:m,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:485,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:474,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:467,columnNumber:17},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:462,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:458,columnNumber:7},void 0):null,se=()=>{const e=g&&o.length<h;return s.jsxDEV("div",{className:"reference-image-upload__grid",children:[o.map((a,i)=>M(a,i)),e&&D(),o.length===0&&!e&&D()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:510,columnNumber:7},void 0)},ie=()=>o.length>0?s.jsxDEV("div",{className:"reference-image-upload__single",children:[M(o[0],0),s.jsxDEV("div",{className:"reference-image-upload__replace",children:D()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:524,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:522,columnNumber:9},void 0):D();return s.jsxDEV(s.Fragment,{children:[j&&de.createPortal(s.jsxDEV("div",{className:"reference-image-upload__hover-preview",style:{left:`${j.x}px`,top:`${j.y}px`,transform:"translate(-50%, -100%)"},children:s.jsxDEV("img",{src:j.url,alt:"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:545,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:537,columnNumber:9},void 0),document.body),s.jsxDEV("div",{ref:F,className:`reference-image-upload ${m?"reference-image-upload--disabled":""}`,tabIndex:0,children:[V&&s.jsxDEV("div",{className:"reference-image-upload__label",children:V},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:556,columnNumber:11},void 0),s.jsxDEV("input",{ref:B,type:"file",accept:"image/*",multiple:g&&!f,onChange:J,className:"reference-image-upload__input",disabled:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:559,columnNumber:9},void 0),f?ae():g?se():ie(),q&&s.jsxDEV(oe,{isOpen:q,onClose:()=>y(!1),mode:ce.SELECT,filterType:X.IMAGE,onSelect:K},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:572,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:550,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:534,columnNumber:5},void 0)};export{pe as R};