aitu-app 0.6.48 → 0.6.49

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 (318) hide show
  1. package/README.md +3 -3
  2. package/assets/CanvasAudioPlayer-DITqjh6L.js +2 -0
  3. package/assets/CanvasAudioPlayer-mm7y75Ol.css +1 -0
  4. package/assets/ChatMessagesArea-D9jmGx5a.js +250 -0
  5. package/assets/ChatMessagesArea-DyR_wHFQ.css +1 -0
  6. package/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  7. package/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  8. package/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  9. package/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  10. package/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  11. package/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  12. package/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  13. package/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  14. package/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  15. package/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  16. package/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  17. package/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  18. package/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  19. package/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  20. package/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  21. package/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  22. package/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  23. package/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  24. package/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  25. package/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  26. package/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  27. package/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  28. package/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  29. package/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  30. package/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  31. package/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  32. package/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  33. package/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  34. package/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  35. package/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  36. package/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  37. package/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  38. package/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  39. package/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  40. package/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  41. package/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  42. package/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  43. package/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  44. package/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  45. package/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  46. package/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  47. package/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  48. package/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  49. package/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  50. package/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  51. package/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  52. package/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  53. package/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  54. package/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  55. package/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  56. package/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  57. package/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  58. package/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  59. package/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  60. package/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  61. package/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  62. package/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  63. package/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  64. package/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  65. package/assets/KnowledgeBaseContent-C_BAVG2b.css +1 -0
  66. package/assets/KnowledgeBaseContent-za__rOJH.js +53 -0
  67. package/assets/MVCreator-CTG316DL.js +152 -0
  68. package/assets/MVCreator-D2l2Gm4W.css +1 -0
  69. package/assets/MediaLibrarySidebar-CNCXXhfY.css +1 -0
  70. package/assets/ModelBenchmarkWorkbench-CAF7qCOz.css +1 -0
  71. package/assets/ModelBenchmarkWorkbench-JCQglDx0.js +2 -0
  72. package/assets/MusicAnalyzer-DE_rzhdo.js +1 -0
  73. package/assets/MusicAnalyzer-DhtRGpAp.css +1 -0
  74. package/assets/MusicAnalyzer-QQf3iMVf.js +6 -0
  75. package/assets/ResizableDivider-CNJfwuMZ.js +1 -0
  76. package/assets/ResizableDivider-ClzYJk-6.css +1 -0
  77. package/assets/Tableau10-B-NsZVaP.js +1 -0
  78. package/assets/Tableau10-Dnlau_Wv.js +1 -0
  79. package/assets/TaskQueuePanel-CcKV6Mtu.js +1 -0
  80. package/assets/VideoAnalyzer-4jAswALN.js +2 -0
  81. package/assets/VideoAnalyzer-BNHBu5xL.css +1 -0
  82. package/assets/__vite-browser-external-UePf-KSV.js +1 -0
  83. package/assets/apl-B4CMkyY2.js +1 -0
  84. package/assets/arc-CUJYo2bm.js +1 -0
  85. package/assets/arc-Do7iheP0.js +1 -0
  86. package/assets/array-B5oSNiGi.js +1 -0
  87. package/assets/array-BKyUJesY.js +1 -0
  88. package/assets/asciiarmor-Df11BRmG.js +1 -0
  89. package/assets/asn1-EdZsLKOL.js +1 -0
  90. package/assets/asterisk-B-8jnY81.js +1 -0
  91. package/assets/batch-image-generation-BcGzhZc6.js +6 -0
  92. package/assets/batch-image-generation-BePygpHd.css +1 -0
  93. package/assets/blockDiagram-38ab4fdb-7dWD8NFK.js +118 -0
  94. package/assets/blockDiagram-38ab4fdb-CQhYv8hA.js +118 -0
  95. package/assets/brainfuck-C4LP7Hcl.js +1 -0
  96. package/assets/browser-Dlc7rtso.js +1 -0
  97. package/assets/c4Diagram-3d4e48cf-DcDSmMC1.js +10 -0
  98. package/assets/c4Diagram-3d4e48cf-YiNiIQMx.js +10 -0
  99. package/assets/channel-CbiJkWzq.js +1 -0
  100. package/assets/channel-CmPwOS9o.js +1 -0
  101. package/assets/character-Bo9jcTNu.css +1 -0
  102. package/assets/classDiagram-70f12bd4--vcKyE3X.js +2 -0
  103. package/assets/classDiagram-70f12bd4-uRbi4Ob8.js +2 -0
  104. package/assets/classDiagram-v2-f2320105-CJVRZ6AN.js +2 -0
  105. package/assets/classDiagram-v2-f2320105-vzjVMHkr.js +2 -0
  106. package/assets/clike-B9uivgTg.js +1 -0
  107. package/assets/clipper-DOGfacWv.js +1 -0
  108. package/assets/clojure-BMjYHr_A.js +1 -0
  109. package/assets/clone-D79TnM4U.js +1 -0
  110. package/assets/cmake-BQqOBYOt.js +1 -0
  111. package/assets/cobol-CWcv1MsR.js +1 -0
  112. package/assets/coffeescript-S37ZYGWr.js +1 -0
  113. package/assets/commonlisp-DBKNyK5s.js +1 -0
  114. package/assets/createText-2e5e7dd3-BwZkEiuo.js +8 -0
  115. package/assets/createText-2e5e7dd3-Caeqt6QH.js +5 -0
  116. package/assets/crystal-SjHAIU92.js +1 -0
  117. package/assets/css-BnMrqG3P.js +1 -0
  118. package/assets/cypher-C_CwsFkJ.js +1 -0
  119. package/assets/d-pRatUO7H.js +1 -0
  120. package/assets/diff-DbItnlRl.js +1 -0
  121. package/assets/dockerfile-BKs6k2Af.js +1 -0
  122. package/assets/dtd-DF_7sFjM.js +1 -0
  123. package/assets/dylan-DwRh75JA.js +1 -0
  124. package/assets/ebnf-CDyGwa7X.js +1 -0
  125. package/assets/ecl-Cabwm37j.js +1 -0
  126. package/assets/edges-e0da2a9e-C0phcDTf.js +4 -0
  127. package/assets/edges-e0da2a9e-izyAbn2P.js +4 -0
  128. package/assets/eiffel-CnydiIhH.js +1 -0
  129. package/assets/elm-vLlmbW-K.js +1 -0
  130. package/assets/erDiagram-9861fffd-2xZLFO3_.js +51 -0
  131. package/assets/erDiagram-9861fffd-CbdcBVpG.js +51 -0
  132. package/assets/erlang-BNw1qcRV.js +1 -0
  133. package/assets/external-skills-BcV6ATYi.js +1 -0
  134. package/assets/factor-kuTfRLto.js +1 -0
  135. package/assets/fcl-Kvtd6kyn.js +1 -0
  136. package/assets/flowDb-956e92f1-CKDRVial.js +10 -0
  137. package/assets/flowDb-956e92f1-X_4p-qaU.js +10 -0
  138. package/assets/flowDiagram-66a62f08-CujQt6CJ.js +4 -0
  139. package/assets/flowDiagram-66a62f08-DBi4rRPf.js +4 -0
  140. package/assets/flowDiagram-v2-96b9c2cf-BLkw2ciq.js +1 -0
  141. package/assets/flowDiagram-v2-96b9c2cf-DVKQK2hY.js +1 -0
  142. package/assets/flowchart-elk-definition-4a651766-Uf06y1Ck.js +139 -0
  143. package/assets/flowchart-elk-definition-4a651766-wpAztAJn.js +139 -0
  144. package/assets/forth-Ffai-XNe.js +1 -0
  145. package/assets/fortran-DYz_wnZ1.js +1 -0
  146. package/assets/ganttDiagram-c361ad54-B3JxRUoo.js +257 -0
  147. package/assets/ganttDiagram-c361ad54-CIb_MFVi.js +257 -0
  148. package/assets/gas-Bneqetm1.js +1 -0
  149. package/assets/gherkin-heZmZLOM.js +1 -0
  150. package/assets/gitGraphDiagram-72cf32ee-PuJBoZww.js +70 -0
  151. package/assets/gitGraphDiagram-72cf32ee-i6oLazGK.js +70 -0
  152. package/assets/graph-CbDG5PTO.js +1 -0
  153. package/assets/graph-DUQ4GGpV.js +1 -0
  154. package/assets/groovy-D9Dt4D0W.js +1 -0
  155. package/assets/haskell-Cw1EW3IL.js +1 -0
  156. package/assets/haxe-H-WmDvRZ.js +1 -0
  157. package/assets/http-DBlCnlav.js +1 -0
  158. package/assets/idl-BEugSyMb.js +1 -0
  159. package/assets/index-04BPVAKr.js +1 -0
  160. package/assets/index-3862675e-CLvnWYyN.js +1 -0
  161. package/assets/index-3862675e-CxQdmW6r.js +1 -0
  162. package/assets/index-3K3oLjal.js +1 -0
  163. package/assets/index-Ayt_kr_j.js +1 -0
  164. package/assets/index-B0aeak-l.js +1 -0
  165. package/assets/index-BAeTUD9a.js +1 -0
  166. package/assets/index-BECtRsXJ.js +6 -0
  167. package/assets/index-BScFd-2h.js +4 -0
  168. package/assets/index-BUB5I7zd.js +1 -0
  169. package/assets/index-BWokxWXg.js +1 -0
  170. package/assets/index-BYAyLEaG.js +1 -0
  171. package/assets/index-BZS4gNhO.js +7 -0
  172. package/assets/index-Bc75bQXQ.js +2 -0
  173. package/assets/index-BjxNPKa3.js +1 -0
  174. package/assets/index-BkvYpt-1.js +1 -0
  175. package/assets/index-Bnb0fjWR.js +1 -0
  176. package/assets/index-CGq-gcht.js +12 -0
  177. package/assets/index-CJ7peDFP.css +1 -0
  178. package/assets/index-CJCAjGj3.js +2 -0
  179. package/assets/index-CdYUDSvm.js +1 -0
  180. package/assets/index-CxEkGLrr.js +686 -0
  181. package/assets/index-DHQdBbnC.js +3 -0
  182. package/assets/index-DYdelMnT.js +1 -0
  183. package/assets/index-Dk5t_-56.js +99 -0
  184. package/assets/index-DlZybecc.js +1 -0
  185. package/assets/index-DmWG413C.js +1 -0
  186. package/assets/index-DzlsyVkU.js +1 -0
  187. package/assets/index-EYhL1Kgt.js +1 -0
  188. package/assets/index-c441JIOr.js +13 -0
  189. package/assets/index-fqJaUvT1.js +1 -0
  190. package/assets/index-hGrN05cs.js +1 -0
  191. package/assets/index-zV_AIntM.js +2 -0
  192. package/assets/infoDiagram-f8f76790-BYO9kBqO.js +7 -0
  193. package/assets/infoDiagram-f8f76790-D_TYtc3S.js +7 -0
  194. package/assets/init-A0kIFD9x.js +1 -0
  195. package/assets/init-Gi6I4Gst.js +1 -0
  196. package/assets/javascript-iXu5QeM3.js +1 -0
  197. package/assets/journeyDiagram-49397b02-DWfiJTLK.js +139 -0
  198. package/assets/journeyDiagram-49397b02-Dv5EEshV.js +139 -0
  199. package/assets/julia-DuME0IfC.js +1 -0
  200. package/assets/katex-Cu_Erd72.js +261 -0
  201. package/assets/layout-Bc2296BZ.js +1 -0
  202. package/assets/layout-Dm28IvOg.js +1 -0
  203. package/assets/line-C3mpslQb.js +1 -0
  204. package/assets/line-DTTPRZLU.js +1 -0
  205. package/assets/linear-YwuGF1HZ.js +1 -0
  206. package/assets/linear-g8AgbOem.js +1 -0
  207. package/assets/livescript-BwQOo05w.js +1 -0
  208. package/assets/lua-BgMRiT3U.js +1 -0
  209. package/assets/main-DlDiDA_U.css +9 -0
  210. package/assets/main-sSl0uAQQ.js +564 -0
  211. package/assets/mathematica-DTrFuWx2.js +1 -0
  212. package/assets/mbox-CNhZ1qSd.js +1 -0
  213. package/assets/mermaid.core-GIkiJOrg.js +91 -0
  214. package/assets/mindmap-definition-fc14e90a-Chuh4Ixc.js +425 -0
  215. package/assets/mindmap-definition-fc14e90a-D_ZKvIES.js +425 -0
  216. package/assets/mirc-CjQqDB4T.js +1 -0
  217. package/assets/mllike-CXdrOF99.js +1 -0
  218. package/assets/modelica-Dc1JOy9r.js +1 -0
  219. package/assets/mscgen-BA5vi2Kp.js +1 -0
  220. package/assets/mumps-BT43cFF4.js +1 -0
  221. package/assets/nginx-DdIZxoE0.js +1 -0
  222. package/assets/nsis-LdVXkNf5.js +1 -0
  223. package/assets/ntriples-BfvgReVJ.js +1 -0
  224. package/assets/octave-Ck1zUtKM.js +1 -0
  225. package/assets/ordinal-BRr1uYdk.js +1 -0
  226. package/assets/ordinal-Cboi1Yqb.js +1 -0
  227. package/assets/oz-BzwKVEFT.js +1 -0
  228. package/assets/pascal--L3eBynH.js +1 -0
  229. package/assets/path-CY0bYimO.js +1 -0
  230. package/assets/path-CbwjOpE9.js +1 -0
  231. package/assets/perl-CdXCOZ3F.js +1 -0
  232. package/assets/photo-wall-splitter-CY0T_wNE.js +1 -0
  233. package/assets/pieDiagram-8a3498a8-DRsICc_f.js +35 -0
  234. package/assets/pieDiagram-8a3498a8-Dah8ahbr.js +35 -0
  235. package/assets/pig-CevX1Tat.js +1 -0
  236. package/assets/powershell-CFHJl5sT.js +1 -0
  237. package/assets/properties-C78fOPTZ.js +1 -0
  238. package/assets/protobuf-ChK-085T.js +1 -0
  239. package/assets/pug-DeIclll2.js +1 -0
  240. package/assets/puppet-DMA9R1ak.js +1 -0
  241. package/assets/python-BuPzkPfP.js +1 -0
  242. package/assets/q-pXgVlZs6.js +1 -0
  243. package/assets/quadrantDiagram-120e2f19-Fh6InPVY.js +7 -0
  244. package/assets/quadrantDiagram-120e2f19-gL-_zV58.js +7 -0
  245. package/assets/r-B6wPVr8A.js +1 -0
  246. package/assets/requirementDiagram-deff3bca-CNSkJJCh.js +52 -0
  247. package/assets/requirementDiagram-deff3bca-CfDffyTL.js +52 -0
  248. package/assets/rpm-CTu-6PCP.js +1 -0
  249. package/assets/ruby-B2Rjki9n.js +1 -0
  250. package/assets/sankeyDiagram-04a897e0-Bk-KjkRU.js +8 -0
  251. package/assets/sankeyDiagram-04a897e0-JvhHugQc.js +8 -0
  252. package/assets/sas-B4kiWyti.js +1 -0
  253. package/assets/scheme-C41bIUwD.js +1 -0
  254. package/assets/sequenceDiagram-704730f1-DtYYZkJD.js +122 -0
  255. package/assets/sequenceDiagram-704730f1-Hcr6n9p8.js +122 -0
  256. package/assets/shell-CjFT_Tl9.js +1 -0
  257. package/assets/sieve-C3Gn_uJK.js +1 -0
  258. package/assets/simple-mode-GW_nhZxv.js +1 -0
  259. package/assets/smalltalk-CnHTOXQT.js +1 -0
  260. package/assets/solr-DehyRSwq.js +1 -0
  261. package/assets/sparql-DkYu6x3z.js +1 -0
  262. package/assets/spreadsheet-BCZA_wO0.js +1 -0
  263. package/assets/sql-D0XecflT.js +1 -0
  264. package/assets/stateDiagram-587899a1-BBe_EhAD.js +1 -0
  265. package/assets/stateDiagram-587899a1-DqdI8yJY.js +1 -0
  266. package/assets/stateDiagram-v2-d93cdb3a-BFy9jG1p.js +1 -0
  267. package/assets/stateDiagram-v2-d93cdb3a-CR8nQq3k.js +1 -0
  268. package/assets/stex-C3f8Ysf7.js +1 -0
  269. package/assets/styles-6aaf32cf-B3jetBAL.js +207 -0
  270. package/assets/styles-6aaf32cf-CtTk65AO.js +207 -0
  271. package/assets/styles-9a916d00-BzAmphe7.js +160 -0
  272. package/assets/styles-9a916d00-CC9GaYxg.js +160 -0
  273. package/assets/styles-c10674c1-CNAwL7Ic.js +116 -0
  274. package/assets/styles-c10674c1-Db2Kd6RJ.js +116 -0
  275. package/assets/stylus-B533Al4x.js +1 -0
  276. package/assets/svgDrawCommon-08f97a94-C5qlB1eZ.js +1 -0
  277. package/assets/svgDrawCommon-08f97a94-JdKl-BWQ.js +1 -0
  278. package/assets/swift-BzpIVaGY.js +1 -0
  279. package/assets/tcl-DVfN8rqt.js +1 -0
  280. package/assets/textile-CnDTJFAw.js +1 -0
  281. package/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  282. package/assets/tiki-DGYXhP31.js +1 -0
  283. package/assets/timeline-definition-85554ec2-DOdYNzv7.js +61 -0
  284. package/assets/timeline-definition-85554ec2-o-R8VXA5.js +61 -0
  285. package/assets/toml-Bm5Em-hy.js +1 -0
  286. package/assets/tool-windows-Cuh0TRgJ.css +1 -0
  287. package/assets/tool-windows-DWUG3k_L.js +2846 -0
  288. package/assets/troff-wAsdV37c.js +1 -0
  289. package/assets/ttcn-CfJYG6tj.js +1 -0
  290. package/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  291. package/assets/ttd-dialog-BQiy0hwR.js +99 -0
  292. package/assets/ttd-dialog-BlUvpMr5.css +1 -0
  293. package/assets/turtle-B1tBg_DP.js +1 -0
  294. package/assets/useCharacters-BJLEgDAP.css +1 -0
  295. package/assets/useCharacters-BxKzeyv4.js +6 -0
  296. package/assets/vb-CmGdzxic.js +1 -0
  297. package/assets/vbscript-BuJXcnF6.js +1 -0
  298. package/assets/velocity-D8B20fx6.js +1 -0
  299. package/assets/verilog-C6RDOZhf.js +1 -0
  300. package/assets/version-update-prompt-HA-CqLZW.js +1 -0
  301. package/assets/version-update-prompt-P9Rd5ve2.css +1 -0
  302. package/assets/vhdl-lSbBsy5d.js +1 -0
  303. package/assets/video-recovery-service-C0PZsfFC.js +1 -0
  304. package/assets/web-vitals-DcvjKPr-.js +1 -0
  305. package/assets/webidl-ZXfAyPTL.js +1 -0
  306. package/assets/winbox.bundle.min-CoRPjCs5.js +1 -0
  307. package/assets/workflow-generation-utils-DspPdLxa.js +3 -0
  308. package/assets/xlsx-CkFp8p6R.js +105 -0
  309. package/assets/xquery-DzFWVndE.js +1 -0
  310. package/assets/xychartDiagram-e933f94c-D13oeSTj.js +7 -0
  311. package/assets/xychartDiagram-e933f94c-DwikDAhJ.js +7 -0
  312. package/assets/yacas-BJ4BC0dw.js +1 -0
  313. package/assets/z80-Hz9HOZM7.js +1 -0
  314. package/idle-prefetch-manifest.json +18 -4
  315. package/package.json +1 -1
  316. package/precache-manifest.json +1015 -3
  317. package/sw.js +1 -1
  318. package/version.json +2 -2
@@ -0,0 +1,2 @@
1
+ import{bm as us,eJ as hs,r as c,md as _,me as A,aI as bs,mf as P,mg as we,mh as ps,mi as De,y as s,iB as ks,iC as fs,bV as je,iw as Ns,jM as ee,mj as xs,mk as _e,ml as vs,mm as gs,al as Me,_ as ws,mn as js,iT as _s,kz as Ms,kA as Es,hH as ys,mo as Ds}from"./tool-windows-DWUG3k_L.js";const se={text:"文本",image:"图片",video:"视频",audio:"音频"},oe={"cross-provider":"跨供应商对比","cross-model":"多模型批测",custom:"自定义测试"},Bs={"cross-provider":"锁定一个模型,横向比较不同供应商的稳定性、速度和效果差异。","cross-model":"锁定一个供应商,一次跑完同类模型,快速筛掉慢和差的型号。",custom:"手动编排供应商与模型组合,适合做定向复测和候选名单对比。"},Vs={speed:"速度优先",cost:"成本优先",balanced:"综合平衡","value-for-money":"性价比"},Ee={draft:"待启动",running:"测试中",completed:"已完成",partial:"部分失败",failed:"全部失败"},he={pending:"待测",running:"测试中",completed:"已完成",failed:"失败"},qs=6,Ss=8,Fe=32e3;function re(r){return r?new Date(r).toLocaleString("zh-CN",{hour12:!1}):""}function Qe(r){return r.length>Fe?`${r.slice(0,Fe-8)}...[截断]`:r}function F(r){return r?r.startsWith("data:")?"[内嵌数据已省略]":Qe(r):""}function Us(r){return r!=null&&r.length?Qe(r.map(l=>F(l)).join(`
2
+ `)):""}function Oe(r){return r?"是":"否"}function be(r){let l=0,n=0;return r.forEach(m=>{typeof m=="number"&&Number.isFinite(m)&&(l+=m,n+=1)}),n>0?Number((l/n).toFixed(2)):null}function Ws(r=new Date){const l=`${r.getFullYear()}${String(r.getMonth()+1).padStart(2,"0")}${String(r.getDate()).padStart(2,"0")}`,n=`${String(r.getHours()).padStart(2,"0")}${String(r.getMinutes()).padStart(2,"0")}${String(r.getSeconds()).padStart(2,"0")}`;return`model-benchmark-history_${l}_${n}.xlsx`}function ye(r){return r!==null}function Is(r){return r.trim().toLowerCase().split(/\s+/).filter(Boolean)}function pe(r,l){const n=Is(r);if(n.length===0)return!0;const m=l.filter(Boolean).join(" ").toLowerCase();return n.every(u=>m.includes(u))}function Cs(r){return r==="text"?"supportsText":r==="image"?"supportsImage":r==="video"?"supportsVideo":"supportsAudio"}function Ge(r,l){const n=Cs(l);return r.filter(m=>m.enabled&&(m.id===vs||m.capabilities[n]))}function As(){const[r,l]=c.useState(0);return c.useEffect(()=>De.subscribe(()=>{l(n=>n+1)}),[]),r}function Ls(){const[r,l]=c.useState(()=>_e.get());return c.useEffect(()=>{const n=m=>{l(m)};return _e.addListener(n),()=>{_e.removeListener(n)}},[]),r}function ke(r){return!r||r<0?"--":r<1e3?`${r}ms`:`${(r/1e3).toFixed(r>=1e4?1:2)}s`}function Rs(r){const l=new Map;r.entries.forEach(m=>{var ne,b;const u=(ne=m.modelId)==null?void 0:ne.trim(),N=(b=m.modelLabel)==null?void 0:b.trim();u&&N&&!l.has(u)&&l.set(u,{modelId:u,modelLabel:N})});const n=new Map;return l.forEach(({modelLabel:m})=>{n.set(m,(n.get(m)||0)+1)}),Array.from(l.values()).map(({modelId:m,modelLabel:u})=>(n.get(u)||0)>1?`${u} · ${m}`:u)}function ze(r){return r?r.entries.reduce((l,n)=>(l.total+=1,n.status==="completed"&&(l.completed+=1),n.status==="failed"&&(l.failed+=1),n.status==="running"&&(l.running+=1),l),{total:0,completed:0,failed:0,running:0}):{total:0,completed:0,failed:0,running:0}}function M(r,l){const n=De.getState(r).models.filter(u=>u.type===l),m=new Map;return n.forEach(u=>{m.has(u.id)||m.set(u.id,u)}),Array.from(m.values())}function He(r){return r.shortLabel||r.label||r.id}function Xe(r){const l=He(r);return l===r.id?l:`${l} · ${r.id}`}function Ts(r,l){return`${r}::${l}`}function Fs({}){const{confirm:r,confirmDialog:l}=us(),n=hs(gs),m=Ls(),u=As(),[N,ne]=c.useState(()=>_.getState()),[b,Be]=c.useState("text"),[f,Ve]=c.useState("cross-provider"),[v,ae]=c.useState(""),[L,ie]=c.useState(""),[O,R]=c.useState([]),[G,z]=c.useState([]),[X,Q]=c.useState([]),[$,Ps]=c.useState(""),[K,$s]=c.useState(!1),[Je,qe]=c.useState(A("text").id),[ce,fe]=c.useState(A("text").prompt),[Se,Ye]=c.useState(2),[Ne,Ue]=c.useState(!1),[xe,Ze]=c.useState("speed"),[ve,es]=c.useState(""),[le,ss]=c.useState("all"),We=c.useRef(""),q=c.useRef(!1),te=c.useRef(null);c.useRef({}),c.useEffect(()=>{const e=_.observe().subscribe(o=>{c.startTransition(()=>{ne(o)})});return()=>e.unsubscribe()},[]);const j=c.useMemo(()=>Ge(m,b),[b,m]),H=c.useMemo(()=>new Map(j.map(e=>[e.id,e])),[j]),D=v&&H.get(v)||null,os=bs.useCallback(async e=>{await r({title:"确认删除会话",description:`确定要删除会话「${e.title||"未命名会话"}」吗?此操作不可撤销。`,confirmText:"删除",cancelText:"取消",danger:!0})&&_.removeSession(e.id)},[r]),S=c.useMemo(()=>v?M(v,b):[],[u,b,v]),ge=c.useMemo(()=>{const e=new Map;return j.forEach(o=>{M(o.id,b).forEach(t=>{e.has(t.id)||e.set(t.id,t)})}),Array.from(e.values())},[j,u,b]),U=c.useMemo(()=>j.flatMap(e=>M(e.id,b).map(o=>P(e.id,e.name,o))),[j,u,b]);c.useEffect(()=>{if(q.current){console.debug("[Benchmark] reconcile profile/prompt: skipped (launchGuard)");return}if(!j.length){ae("");return}const e=A(b);qe(e.id),fe(o=>o===A("text").prompt||o===A("image").prompt||o===A("video").prompt||o===A("audio").prompt?e.prompt:o),(!v||!H.has(v))&&ae(j[0].id)},[j,b,H,v]),c.useEffect(()=>{if(q.current){console.debug("[Benchmark] reconcile modelIds: skipped (launchGuard)");return}const e=S.map(o=>o.id);if(e.length===0){R([]);return}R(o=>{const t=we(o,e,{fallback:"all"});return t!==o&&console.debug("[Benchmark] reconcile modelIds: changed",{from:o,to:t}),t})},[S]),c.useEffect(()=>{if(q.current){console.debug("[Benchmark] reconcile selectedModelId: skipped (launchGuard)");return}const e=ge.map(o=>o.id);if(e.length===0){ie("");return}e.includes(L)||ie(e[0])},[ge,L]);const T=c.useMemo(()=>L?j.map(e=>{const o=M(e.id,b).find(t=>t.id===L);return o?P(e.id,e.name,o):null}).filter(ye):[],[j,b,L]);c.useEffect(()=>{if(q.current){console.debug("[Benchmark] reconcile providerIds: skipped (launchGuard)");return}z(e=>we(e,T.map(o=>o.profileId),{fallback:"all"}))},[T]),c.useEffect(()=>{if(q.current){console.debug("[Benchmark] reconcile customKeys: skipped (launchGuard)");return}Q(e=>we(e,U.map(o=>o.selectionKey),{fallback:"first",limit:qs}))},[U]);const p=c.useMemo(()=>N.sessions.find(e=>e.id===N.activeSessionId)||null,[N.activeSessionId,N.sessions]),Ie=c.useMemo(()=>N.sessions.filter(e=>le!=="all"&&e.modality!==le?!1:pe(ve,[e.title,e.prompt,oe[e.compareMode],se[e.modality],...e.entries.flatMap(o=>[o.profileName,o.profileId,o.modelLabel,o.modelId,o.vendor])])),[le,ve,N.sessions]);c.useEffect(()=>{p&&Ze(p.rankingMode)},[p]);const rs=c.useMemo(()=>ze(p),[p]),ns=c.useMemo(()=>p?ps(p.entries,p.rankingMode):[],[p]),W=c.useMemo(()=>{if(f==="cross-provider")return T.filter(e=>G.includes(e.profileId));if(f==="cross-model"){if(!v)return[];const e=H.get(v);return e?S.filter(o=>O.includes(o.id)).map(o=>P(e.id,e.name,o)):[]}return U.filter(e=>X.includes(e.selectionKey))},[S,f,T,U,H,X,O,v,G]),Ce=c.useMemo(()=>{if(!p||p.modality!==b||p.compareMode!==f)return!1;const e=W.map(t=>t.selectionKey);if(e.length===0||p.entries.length!==e.length)return!1;const o=new Set(e);return p.entries.every(t=>o.has(t.selectionKey))},[p,f,b,W]),Ae=c.useMemo(()=>p&&Ce?p.entries.map(e=>({key:e.selectionKey,modelLabel:e.modelLabel,profileName:e.profileName,badgeLabel:he[e.status]||he.pending})):W.map(e=>({key:e.selectionKey,modelLabel:e.modelLabel,profileName:e.profileName,badgeLabel:he.pending})),[p,Ce,W]),x=p,J=x?rs:ze(null),Le=x?ns:[];Ae.length,Ae.slice(0,Ss);const E=Le.find(e=>e.status==="completed")||null,Re=c.useMemo(()=>S.filter(e=>{const o=O.includes(e.id);return K&&!o?!1:pe($,[He(e),e.id,D==null?void 0:D.name])}),[D==null?void 0:D.name,S,$,O,K]),Te=c.useMemo(()=>T.filter(e=>{const o=G.includes(e.profileId);return K&&!o?!1:pe($,[e.profileName,e.modelLabel,e.modelId,e.profileId])}),[T,$,G,K]),Pe=c.useMemo(()=>U.filter(e=>{const o=X.includes(e.selectionKey);return K&&!o?!1:pe($,[e.profileName,e.modelLabel,e.modelId,e.profileId])}),[U,$,X,K]),me=c.useMemo(()=>f==="cross-model"?Re.map(e=>e.id):f==="cross-provider"?Te.map(e=>e.profileId):Pe.map(e=>e.selectionKey),[f,Re,Te,Pe]);c.useEffect(()=>{if(me.length===0){te.current=null;return}te.current&&me.includes(te.current)||(te.current=me[0])},[me]),c.useEffect(()=>{var Ke;if(!n){console.debug("[Benchmark] useEffect: no initialRequest, skip");return}if(!N.ready){console.debug("[Benchmark] useEffect: storeState not ready, waiting...");return}const e=JSON.stringify(n);if(We.current===e){console.debug("[Benchmark] useEffect: same signature, skip",{signature:e});return}const o=n.modality||"text",t=Ge(m,o),B=n.profileId||"",I=n.modelId||"",C=B?De.getState(B):null,de=B&&I?M(B,o):[],ue=!I||de.some(k=>k.id===I);if(C&&I&&!ue&&(C.status==="idle"||C.status==="loading")){console.debug("[Benchmark] useEffect: waiting for requested model discovery",{signature:e,requestedProfileId:B,requestedModelId:I,status:C.status,discoveryVersion:u});return}q.current=!0,We.current=e;const Y=n.compareMode||(n.modelId?"cross-provider":"cross-model");let w=Y,i=[];const a=n.profileId&&n.modelId?Ts(n.profileId,n.modelId):"";Y==="cross-provider"&&n.modelId&&(i=t.filter(k=>M(k.id,o).some(Z=>Z.id===n.modelId)).map(k=>k.id),i.length<=1&&(w="custom",console.debug("[Benchmark] cross-provider → custom downgrade",{modelId:n.modelId,matchingProviderIds:i}))),console.debug("[Benchmark] useEffect: applying initialRequest",{nextModality:o,nextCompareMode:w,requestedCompareMode:Y,profileId:n.profileId,modelId:n.modelId,profileCount:t.length,matchingProviderIds:i});const y=A(o);Be(o),Ve(w),qe(y.id),fe(y.prompt);const d=n.profileId||i[0]||((Ke=t[0])==null?void 0:Ke.id)||"";if(d&&ae(d),w==="cross-provider"&&n.modelId)ie(n.modelId),z(i);else if(w==="cross-model"&&n.modelId)R([n.modelId]);else if(w==="cross-model"&&!n.modelId&&d){const k=M(d,o);R(k.map(Z=>Z.id))}else w==="custom"&&a&&Q([a]);const ms=window.setTimeout(()=>{let k;if(w==="cross-provider"&&n.modelId)k=t.map(h=>{const g=M(h.id,o).find(V=>V.id===n.modelId);return g?P(h.id,h.name,g):null}).filter(ye);else if(w==="cross-model"&&n.modelId){const h=t.find(g=>g.id===d);if(h){const g=M(h.id,o).find(V=>V.id===n.modelId);k=g?[P(h.id,h.name,g)]:[]}else k=[]}else if(w==="custom"){const h=t.find(g=>g.id===(n.profileId||d));if(h&&n.modelId){const g=M(h.id,o).find(V=>V.id===n.modelId);k=g?[P(h.id,h.name,g)]:[]}else k=[]}else{const h=d||v;h?k=M(h,o).map(g=>{const V=t.find(ds=>ds.id===h);return V?P(V.id,V.name,g):null}).filter(ye):k=[]}if(!k.length){console.debug("[Benchmark] setTimeout: no targets built, abort");return}if(console.debug("[Benchmark] setTimeout: creating session",{targetCount:k.length,targets:k.map(h=>`${h.profileName}/${h.modelId}`),autoRun:n.autoRun}),!n.autoRun){requestAnimationFrame(()=>{setTimeout(()=>{q.current=!1,console.debug("[Benchmark] guard released without autoRun")},0)});return}const Z=_.createSession({modality:o,compareMode:w,promptPresetId:y.id,prompt:y.prompt,rankingMode:xe,targets:k,source:"shortcut"});_.runSession(Z.id),requestAnimationFrame(()=>{setTimeout(()=>{q.current=!1,console.debug("[Benchmark] guard released")},0)})},120);return()=>{window.clearTimeout(ms)}},[u,n,m,xe,v,N.ready]);const as=async()=>{if(W.length===0||!ce.trim())return;const e=_.createSession({modality:b,compareMode:f,promptPresetId:Je,prompt:ce,rankingMode:xe,targets:W,source:"manual"});await _.runSession(e.id,Se)},is=async()=>{if(Ne)return;const e=N.sessions;if(e.length===0){Me.warning("暂无历史会话可导出");return}Ue(!0);try{const o=await ws(()=>import("./xlsx-CkFp8p6R.js"),[],import.meta.url),t=e.flatMap(i=>i.entries.map(a=>({会话标题:i.title,会话ID:i.id,会话创建时间:re(i.createdAt),模态:se[i.modality],对比方式:oe[i.compareMode],会话状态:Ee[i.status],提示词预设:i.promptPresetId,提示词:F(i.prompt),供应商配置:a.profileName,供应商ID:a.profileId,模型名称:a.modelLabel,模型ID:a.modelId,厂商:a.vendor,选择Key:a.selectionKey,结果ID:a.id,结果状态:he[a.status],开始时间:re(a.startedAt),首响时间:re(a.firstResponseAt),完成时间:re(a.completedAt),首响ms:a.firstResponseMs,总耗时ms:a.totalDurationMs,预估成本:a.estimatedCost,用户评分:a.userScore,已收藏:Oe(a.favorite),已淘汰:Oe(a.rejected),错误摘要:F(a.errorSummary),预览文本:F(a.preview.text),预览链接:F(a.preview.url),预览链接列表:Us(a.preview.urls),预览格式:a.preview.format||"",预览时长:a.preview.duration??"",预览标题:F(a.preview.title)}))),B=new Map;e.forEach(i=>{i.entries.forEach(a=>{const y=`${i.modality}::${a.selectionKey}`,d=B.get(y)||{profileName:a.profileName,profileId:a.profileId,modelLabel:a.modelLabel,modelId:a.modelId,vendor:a.vendor,modality:se[i.modality],selectionKey:a.selectionKey,sessionIds:new Set,count:0,completedCount:0,failedCount:0,runningCount:0,pendingCount:0,favoriteCount:0,rejectedCount:0,firstResponseValues:[],totalDurationValues:[],costValues:[],scoreValues:[],latestAt:0};d.sessionIds.add(i.id),d.count+=1,a.status==="completed"&&(d.completedCount+=1),a.status==="failed"&&(d.failedCount+=1),a.status==="running"&&(d.runningCount+=1),a.status==="pending"&&(d.pendingCount+=1),a.favorite&&(d.favoriteCount+=1),a.rejected&&(d.rejectedCount+=1),typeof a.firstResponseMs=="number"&&d.firstResponseValues.push(a.firstResponseMs),typeof a.totalDurationMs=="number"&&d.totalDurationValues.push(a.totalDurationMs),typeof a.estimatedCost=="number"&&d.costValues.push(a.estimatedCost),typeof a.userScore=="number"&&d.scoreValues.push(a.userScore),d.latestAt=Math.max(d.latestAt,a.completedAt||a.startedAt||i.updatedAt||i.createdAt),B.set(y,d)})});const I=Array.from(B.values()).map(i=>({供应商配置:i.profileName,供应商ID:i.profileId,模型名称:i.modelLabel,模型ID:i.modelId,厂商:i.vendor,模态:i.modality,选择Key:i.selectionKey,测试次数:i.count,涉及会话数:i.sessionIds.size,完成次数:i.completedCount,失败次数:i.failedCount,运行中次数:i.runningCount,待测次数:i.pendingCount,收藏次数:i.favoriteCount,淘汰次数:i.rejectedCount,平均首响ms:be(i.firstResponseValues),最快首响ms:i.firstResponseValues.length>0?Math.min(...i.firstResponseValues):null,平均总耗时ms:be(i.totalDurationValues),最快总耗时ms:i.totalDurationValues.length>0?Math.min(...i.totalDurationValues):null,平均成本:be(i.costValues),平均评分:be(i.scoreValues),最近测试时间:re(i.latestAt)})).sort((i,a)=>{const y=(a.平均评分??-1)-(i.平均评分??-1);if(y!==0)return y;const d=(i.平均首响ms??Number.MAX_SAFE_INTEGER)-(a.平均首响ms??Number.MAX_SAFE_INTEGER);return d!==0?d:(i.平均成本??Number.MAX_SAFE_INTEGER)-(a.平均成本??Number.MAX_SAFE_INTEGER)}),C=o.utils.book_new(),de=o.utils.json_to_sheet(I),ue=o.utils.json_to_sheet(t);de["!cols"]=[{wch:18},{wch:22},{wch:24},{wch:32},{wch:14},{wch:10},{wch:32},{wch:8},{wch:10},{wch:8},{wch:8},{wch:10},{wch:8},{wch:8},{wch:8},{wch:18},{wch:18},{wch:12},{wch:18},{wch:12},{wch:12},{wch:12},{wch:20}],ue["!cols"]=[{wch:28},{wch:24},{wch:20},{wch:10},{wch:14},{wch:10},{wch:18},{wch:60},{wch:18},{wch:22},{wch:24},{wch:32},{wch:14},{wch:32},{wch:24},{wch:10},{wch:20},{wch:20},{wch:20},{wch:12},{wch:12},{wch:12},{wch:10},{wch:8},{wch:8},{wch:36},{wch:60},{wch:60},{wch:80},{wch:12},{wch:10},{wch:28}],o.utils.book_append_sheet(C,de,"模型汇总"),o.utils.book_append_sheet(C,ue,"原始结果");const Y=o.write(C,{bookType:"xlsx",type:"array"}),w=new Blob([Y],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});js(w,Ws()),Me.success(`已导出 ${I.length} 个模型结果`)}catch(o){console.error("[ModelBenchmark] Excel export failed:",o),Me.error("导出 Excel 失败,请稍后重试")}finally{Ue(!1)}},cs=e=>{const o=e.preview.rawData?s.jsxDEV("details",{className:"model-benchmark__raw-data",children:[s.jsxDEV("summary",{children:"原始数据 (JSON)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1454,columnNumber:9},this),s.jsxDEV("pre",{children:JSON.stringify(e.preview.rawData,null,2)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1455,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1453,columnNumber:7},this):null;return e.modality==="text"?s.jsxDEV("div",{className:"model-benchmark__preview-content",children:[s.jsxDEV("pre",{className:"model-benchmark__preview-text",children:e.preview.text||"暂无返回"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1462,columnNumber:11},this),o]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1461,columnNumber:9},this):e.modality==="image"&&e.preview.url?s.jsxDEV("div",{className:"model-benchmark__preview-content",children:[s.jsxDEV("img",{className:"model-benchmark__preview-image",src:e.preview.url,alt:e.modelLabel,loading:"lazy"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1473,columnNumber:11},this),o]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1472,columnNumber:9},this):e.modality==="video"&&e.preview.url?s.jsxDEV("div",{className:"model-benchmark__preview-content",children:[s.jsxDEV("video",{className:"model-benchmark__preview-video",src:e.preview.url,controls:!0,preload:"metadata"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1487,columnNumber:11},this),o]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1486,columnNumber:9},this):e.modality==="audio"&&e.preview.url?s.jsxDEV("div",{className:"model-benchmark__preview-content",children:[s.jsxDEV("div",{className:"model-benchmark__preview-audio-shell",children:[s.jsxDEV("audio",{controls:!0,preload:"none",src:e.preview.url},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1502,columnNumber:13},this),e.preview.text?s.jsxDEV("pre",{className:"model-benchmark__preview-text",children:e.preview.text},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1504,columnNumber:15},this):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1501,columnNumber:11},this),o]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1500,columnNumber:9},this):s.jsxDEV("div",{className:"model-benchmark__preview-empty",children:[e.status==="failed"?"加载失败":"暂无预览",o]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1515,columnNumber:7},this)};f==="cross-model"?`${(D==null?void 0:D.name)||"未选择"}`:f==="cross-provider"&&`${L||"未选择"}`;const ls=ge.map(e=>({label:Xe(e),value:e.id})),$e=T.map(e=>({label:`${e.profileName} · ${e.modelLabel}`,value:e.profileId})),ts=[{label:"全部",value:"all",icon:s.jsxDEV(_s,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1553,columnNumber:40},this)},{label:"图片",value:"image",icon:s.jsxDEV(Ms,{size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1554,columnNumber:42},this)},{label:"视频",value:"video",icon:s.jsxDEV(Es,{size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1555,columnNumber:42},this)},{label:"音频",value:"audio",icon:s.jsxDEV(ys,{size:14,strokeWidth:1.9},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1559,columnNumber:13},this)},{label:"文本",value:"text",icon:s.jsxDEV(Ds,{size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1561,columnNumber:41},this)}];return s.jsxDEV("div",{className:"model-benchmark",children:[s.jsxDEV("aside",{className:"model-benchmark__sidebar",children:[s.jsxDEV("div",{className:"model-benchmark__sidebar-head",children:[s.jsxDEV("div",{className:"model-benchmark__panel-title",children:"历史会话"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1568,columnNumber:11},this),s.jsxDEV("button",{type:"button",className:"model-benchmark__ghost-button",onClick:is,disabled:N.sessions.length===0||Ne,children:Ne?"导出中...":"导出 Excel"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1569,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1567,columnNumber:9},this),s.jsxDEV("div",{className:"model-benchmark__sidebar-filters",children:[s.jsxDEV(ks,{value:ve,onChange:es,placeholder:"搜索会话 / 模型 / 供应商",prefixIcon:s.jsxDEV(fs,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1583,columnNumber:25},this),size:"small",clearable:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1579,columnNumber:11},this),s.jsxDEV("div",{className:"model-benchmark__sidebar-tabs",children:ts.map(e=>s.jsxDEV(je,{content:e.label,children:s.jsxDEV("button",{type:"button",className:le===e.value?"model-benchmark__sidebar-tab model-benchmark__sidebar-tab--active":"model-benchmark__sidebar-tab",onClick:()=>ss(e.value),"aria-label":e.label,title:e.label,children:e.icon},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1590,columnNumber:17},this)},e.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1589,columnNumber:15},this))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1587,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1578,columnNumber:9},this),s.jsxDEV("div",{className:"model-benchmark__session-list",children:Ie.length>0?Ie.map(e=>{const o=Rs(e);return s.jsxDEV("div",{className:"model-benchmark__session-row",children:[s.jsxDEV("button",{type:"button",className:`model-benchmark__session-item ${e.id===N.activeSessionId?"model-benchmark__session-item--active":""}`,onClick:()=>_.setActiveSession(e.id),children:[s.jsxDEV("span",{className:"model-benchmark__session-title",children:e.title},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1624,columnNumber:21},this),s.jsxDEV("span",{className:"model-benchmark__session-models",children:o.length>0?o.join(" / "):"暂无模型信息"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1627,columnNumber:21},this),s.jsxDEV("span",{className:"model-benchmark__session-meta",children:[oe[e.compareMode]," ·"," ",e.entries.length," 个目标 ·"," ",Ee[e.status]]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1632,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1613,columnNumber:19},this),s.jsxDEV("button",{type:"button",className:"model-benchmark__session-delete",onClick:()=>void os(e),"aria-label":`删除会话 ${e.title}`,children:s.jsxDEV(je,{content:"删除会话",showArrow:!1,children:s.jsxDEV("span",{children:s.jsxDEV(Ns,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1646,columnNumber:25},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1645,columnNumber:23},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1644,columnNumber:21},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1638,columnNumber:19},this)]},e.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1612,columnNumber:17},this)}):s.jsxDEV("div",{className:"model-benchmark__session-empty",children:N.sessions.length===0?"暂无历史会话":"没有匹配的历史会话"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1654,columnNumber:13},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1607,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1566,columnNumber:7},this),s.jsxDEV("main",{className:"model-benchmark__main",children:s.jsxDEV("div",{className:"model-benchmark__main-shell",children:[s.jsxDEV("section",{className:"model-benchmark__config-dashboard",children:[s.jsxDEV("div",{className:"model-benchmark__config-row model-benchmark__config-row--top",children:[s.jsxDEV("div",{className:"model-benchmark__modality-tabs",children:Object.keys(se).map(e=>s.jsxDEV("button",{type:"button",className:b===e?"active":"",onClick:()=>Be(e),children:se[e]},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1670,columnNumber:21},this))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1667,columnNumber:15},this),s.jsxDEV("div",{className:"model-benchmark__mode-selector",children:Object.entries(oe).map(([e,o])=>s.jsxDEV(je,{content:Bs[e],placement:"top",children:s.jsxDEV("button",{type:"button",className:f===e?"active":"",onClick:()=>Ve(e),children:o},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1690,columnNumber:23},this)},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1685,columnNumber:21},this))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1682,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1666,columnNumber:13},this),s.jsxDEV("div",{className:"model-benchmark__config-main",children:[s.jsxDEV("div",{className:"model-benchmark__config-controls",children:[s.jsxDEV("div",{className:"model-benchmark__primary-select-row",children:[f==="cross-model"?s.jsxDEV(ee,{className:"model-benchmark__select",label:"目标供应商: ",value:v,onChange:e=>ae(e),options:j.map(e=>({label:e.name,value:e.id}))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1709,columnNumber:21},this):null,f==="cross-provider"?s.jsxDEV(ee,{filterable:!0,className:"model-benchmark__select",label:"对比模型: ",value:L,options:ls,placeholder:"搜索并选择要横向对比的模型",onChange:e=>ie(e||"")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1724,columnNumber:21},this):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1707,columnNumber:17},this),s.jsxDEV("div",{className:"model-benchmark__secondary-select-row",children:[f==="cross-provider"?s.jsxDEV(ee,{multiple:!0,filterable:!0,minCollapsedNum:3,popupProps:{overlayClassName:"model-benchmark__select-popup"},panelTopContent:s.jsxDEV("div",{className:"model-benchmark__select-actions",children:[s.jsxDEV("button",{type:"button",onClick:()=>z($e.map(e=>e.value)),children:"全选"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1749,columnNumber:27},this),s.jsxDEV("button",{type:"button",onClick:()=>z([]),children:"清除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1761,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1748,columnNumber:25},this),className:"model-benchmark__multi-select",label:"参测供应商: ",value:G,options:$e,placeholder:"多选要参与对比的供应商 (已选即为批测队列)",onChange:e=>z(Array.isArray(e)?e:[])},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1740,columnNumber:21},this):null,f==="cross-model"?s.jsxDEV(ee,{multiple:!0,filterable:!0,minCollapsedNum:3,popupProps:{overlayClassName:"model-benchmark__select-popup"},panelTopContent:s.jsxDEV("div",{className:"model-benchmark__select-actions",children:[s.jsxDEV("button",{type:"button",onClick:()=>R(S.map(e=>e.id)),children:"全选"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1792,columnNumber:27},this),s.jsxDEV("button",{type:"button",onClick:()=>R([]),children:"清除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1802,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1791,columnNumber:25},this),className:"model-benchmark__multi-select",label:"参测模型: ",value:O,options:S.map(e=>({label:Xe(e),value:e.id})),placeholder:"多选要测试的模型 (已选即为批测队列)",onChange:e=>R(Array.isArray(e)?e:[])},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1783,columnNumber:21},this):null,f==="custom"?s.jsxDEV(ee,{multiple:!0,filterable:!0,minCollapsedNum:3,popupProps:{overlayClassName:"model-benchmark__select-popup"},panelTopContent:s.jsxDEV("div",{className:"model-benchmark__select-actions",children:[s.jsxDEV("button",{type:"button",onClick:()=>Q(U.map(e=>e.selectionKey)),children:"全选"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1836,columnNumber:27},this),s.jsxDEV("button",{type:"button",onClick:()=>Q([]),children:"清除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1846,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1835,columnNumber:25},this),className:"model-benchmark__multi-select",label:"目标组合: ",value:X,options:U.map(e=>({label:`${e.profileName} · ${e.modelLabel}`,value:e.selectionKey})),placeholder:"手动编排供应商与模型组合",onChange:e=>Q(Array.isArray(e)?e:[])},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1827,columnNumber:21},this):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1738,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1706,columnNumber:15},this),s.jsxDEV("div",{className:"model-benchmark__config-actions",children:[s.jsxDEV("div",{className:"model-benchmark__prompt-area",children:s.jsxDEV("textarea",{value:ce,onChange:e=>fe(e.target.value),placeholder:"在此输入测试提示词..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1874,columnNumber:19},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1873,columnNumber:17},this),s.jsxDEV("div",{className:"model-benchmark__action-row-inline",children:[s.jsxDEV("div",{className:"model-benchmark__concurrency",children:[s.jsxDEV("span",{children:"最大并发:"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1882,columnNumber:21},this),s.jsxDEV("input",{type:"text",inputMode:"numeric","aria-label":"最大并发",value:Se,onChange:e=>{const o=e.target.value.replace(/\D/g,""),t=Number(o);Ye(Math.min(10,Math.max(1,t||1)))}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1883,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1881,columnNumber:19},this),s.jsxDEV("button",{type:"button",className:"model-benchmark__primary-button",onClick:as,disabled:!N.ready||W.length===0||!ce.trim(),children:["开始测试 (",W.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1900,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1880,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1872,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1705,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1665,columnNumber:11},this),s.jsxDEV("div",{className:"model-benchmark__main-head",children:s.jsxDEV("div",{children:[s.jsxDEV("div",{className:"model-benchmark__eyebrow",children:x?oe[x.compareMode]:"Result Board"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1919,columnNumber:15},this),s.jsxDEV("h3",{children:x?x.title:"还没有测试结果"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1924,columnNumber:15},this),x?s.jsxDEV("p",{className:"model-benchmark__main-desc",children:[J.total," 个目标",J.completed>0?`,${J.completed} 成功`:"",J.failed>0?`,${J.failed} 失败`:""," · ",Ee[x.status]," · ",Vs[x.rankingMode]]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1928,columnNumber:17},this):s.jsxDEV("p",{className:"model-benchmark__main-desc",children:"请先在上方明确范围,或点击历史会话查看以往结果。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1942,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1918,columnNumber:13},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1917,columnNumber:11},this),x?s.jsxDEV(s.Fragment,{children:[E?s.jsxDEV("section",{className:"model-benchmark__spotlight",children:[s.jsxDEV("div",{className:"model-benchmark__spotlight-copy",children:[s.jsxDEV("div",{className:"model-benchmark__eyebrow",children:"当前第一名"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1954,columnNumber:21},this),s.jsxDEV("h4",{children:x.compareMode==="cross-provider"?E.profileName:E.modelLabel},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1955,columnNumber:21},this),s.jsxDEV("p",{children:[x.compareMode==="cross-provider"?`${E.modelLabel},`:`来自 ${E.profileName},`,"首响 ",ke(E.firstResponseMs),",总耗时 ",ke(E.totalDurationMs)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1960,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1953,columnNumber:19},this),s.jsxDEV("div",{className:"model-benchmark__spotlight-meta",children:[E.userScore?s.jsxDEV("span",{children:[E.userScore," 分"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1970,columnNumber:23},this):null,E.favorite?s.jsxDEV("span",{children:"已收藏"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1972,columnNumber:42},this):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1968,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1952,columnNumber:17},this):null,s.jsxDEV("div",{className:"model-benchmark__result-grid",children:Le.map((e,o)=>s.jsxDEV("article",{className:`model-benchmark__result-card model-benchmark__result-card--${e.status}`,children:[s.jsxDEV("header",{className:"model-benchmark__result-head",children:[s.jsxDEV("div",{className:"model-benchmark__result-rank",children:["#",o+1]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1984,columnNumber:23},this),s.jsxDEV("div",{className:"model-benchmark__result-heading",children:[s.jsxDEV("div",{className:"model-benchmark__result-title",children:e.modelLabel},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1988,columnNumber:25},this),s.jsxDEV("div",{className:"model-benchmark__result-subtitle",children:e.profileName},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1991,columnNumber:25},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1987,columnNumber:23},this),s.jsxDEV("span",{className:`model-benchmark__status model-benchmark__status--${e.status}`,children:e.status==="completed"?"完成":e.status==="failed"?"失败":e.status==="running"?"测试中":"等待中"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1995,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1983,columnNumber:21},this),s.jsxDEV("div",{className:"model-benchmark__result-metrics",children:[s.jsxDEV("span",{children:["首响 ",ke(e.firstResponseMs)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2009,columnNumber:23},this),s.jsxDEV("span",{children:["总耗时 ",ke(e.totalDurationMs)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2010,columnNumber:23},this),s.jsxDEV("span",{children:["成本"," ",e.estimatedCost===null?"未知":`¥${e.estimatedCost.toFixed(4)}`]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2013,columnNumber:23},this),s.jsxDEV("span",{children:["性价比"," ",(()=>{const t=xs(e);return t===null?"—":`${t}/10`})()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2019,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2008,columnNumber:21},this),s.jsxDEV("div",{className:"model-benchmark__preview",children:cs(e)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2028,columnNumber:21},this),e.errorSummary?s.jsxDEV("div",{className:"model-benchmark__error",children:e.errorSummary},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2033,columnNumber:23},this):null,s.jsxDEV("div",{className:"model-benchmark__feedback",children:[s.jsxDEV("div",{className:"model-benchmark__score-row",children:[1,2,3,4,5].map(t=>s.jsxDEV("button",{type:"button",className:`model-benchmark__score-chip ${e.userScore===t?"model-benchmark__score-chip--active":""}`,onClick:()=>_.setEntryFeedback(x.id,e.id,{userScore:e.userScore===t?null:t}),children:[t,"分"]},t,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2041,columnNumber:27},this))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2039,columnNumber:23},this),s.jsxDEV("div",{className:"model-benchmark__action-row",children:[s.jsxDEV("button",{type:"button",className:`model-benchmark__ghost-button ${e.favorite?"model-benchmark__ghost-button--active":""}`,onClick:()=>_.setEntryFeedback(x.id,e.id,{favorite:!e.favorite}),children:"收藏"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2065,columnNumber:25},this),s.jsxDEV("button",{type:"button",className:`model-benchmark__ghost-button ${e.rejected?"model-benchmark__ghost-button--danger":""}`,onClick:()=>_.setEntryFeedback(x.id,e.id,{rejected:!e.rejected}),children:"淘汰"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2084,columnNumber:25},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2064,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2038,columnNumber:21},this)]},e.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1979,columnNumber:19},this))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1977,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1950,columnNumber:13},this):s.jsxDEV("div",{className:"model-benchmark__empty",children:"先在左侧选定“同供应商多模型”或“同模型跨供应商”,把批测目标编满后再开跑。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:2110,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1664,columnNumber:9},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1663,columnNumber:7},this),l]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1565,columnNumber:5},this)}export{Fs as default};
@@ -0,0 +1 @@
1
+ import{n3 as g,iI as M,mV as G,n4 as S,n5 as D,n6 as R,gK as h,n7 as I,n8 as w,n9 as x,na as b,nb as P,nc as v,nd as V,ne as B,mS as F,mQ as A}from"./tool-windows-DWUG3k_L.js";function z(t){return V(t,"musicAnalyzerAction",["analyze","rewrite","lyrics-gen"])}function U(t){return B(t,{missingMessage:"分析任务缺少结果内容",fromStructured:r=>F(r)})}function O(t){const r=t.params.musicAnalyzerSourceSnapshot;return(r==null?void 0:r.type)==="upload"?r:null}function L(t){var i;const r=(i=t.result)==null?void 0:i.analysisData;return!r||typeof r!="object"||typeof r.lyricsDraft!="string"&&typeof r.title!="string"&&!Array.isArray(r.styleTags)?null:{title:String(r.title||"").trim(),styleTags:Array.isArray(r.styleTags)?r.styleTags.map(u=>String(u||"").trim()).filter(Boolean):[],lyricsDraft:String(r.lyricsDraft||"").trim()}}async function H(t){if(t.status!=="completed")return null;const r=z(t);if(!r)return null;if(r==="analyze"){const l=await g(),p=l.find(m=>m.analyzeTaskId===t.id);if(p)return{records:l,record:p};const e=U(t),n=O(t),c=String(t.params.musicAnalyzerSourceLabel||(n==null?void 0:n.fileName)||"本地音频").trim(),o={id:M(),createdAt:Date.now(),source:"upload",sourceLabel:c,sourceSnapshot:n,analysisModel:String(t.params.model||""),analysisModelRef:t.params.modelRef||null,analysis:e,styleTags:e.sunoStyleTags.length>0?e.sunoStyleTags:e.genreTags,title:e.sunoTitle||e.titleSuggestions[0]||c.replace(/\.[^.]+$/,""),lyricsDraft:e.sunoLyricsDraft||"",analyzeTaskId:t.id,starred:!1};return{records:await G(o),record:o}}if(r==="lyrics-gen"){const l=S(t,"musicAnalyzerRecordId");if(!l)return null;const e=(await g()).find(C=>C.id===l);if(!e||e.pendingLyricsGenTaskId!==t.id)return null;const n=$(t),c=(n==null?void 0:n.title)||e.title||"",o=n&&n.styleTags.length>0?n.styleTags:e.styleTags||[],d=(n==null?void 0:n.lyricsDraft)||e.lyricsDraft||"",m=n?D({...e,title:c,styleTags:o,lyricsDraft:d},R({...e,title:c,styleTags:o,lyricsDraft:d},t.type===h.CHAT?"AI 草稿":"Suno 歌词",e.creationPrompt)):{};return I(e,{title:c,styleTags:o,lyricsDraft:d,...m,pendingLyricsGenTaskId:null},A)}const i=S(t,"musicAnalyzerRecordId");if(!i)return null;const s=(await g()).find(l=>l.id===i);if(!s||s.pendingRewriteTaskId!==t.id)return null;const a=L(t)||w(x(t)),y=(s.lyricsVersions||[]).length,f=R({...s,title:a.title||s.title,styleTags:a.styleTags.length>0?a.styleTags:s.styleTags,lyricsDraft:a.lyricsDraft||s.lyricsDraft},`AI 改写 #${y+1}`,s.rewritePrompt),T=D(s,f);return I(s,{title:a.title||s.title,styleTags:a.styleTags.length>0?a.styleTags:s.styleTags,lyricsDraft:a.lyricsDraft||s.lyricsDraft,pendingRewriteTaskId:null,...T},A)}function $(t){const r=t.result;if(!r)return null;const i=L(t);if(i)return i;const u=x(t);if(u)try{return w(u)}catch{}const s=r.lyricsText||"",a=r.lyricsTitle||r.title||"",y=r.lyricsTags;if(!s&&!a)return null;const f=Array.isArray(y)?y.map(T=>String(T||"").trim()).filter(Boolean):[];return{title:String(a).trim(),styleTags:f,lyricsDraft:String(s).trim()}}function J(t){return v(t)}async function K(t,r){return P(t,r,{loadRecords:g,updateRecord:A})}function N(t){return z(t)!==null}function Q(t){if(t.type!==h.AUDIO)return null;const r=t.params.batchId;return r?b(r,{prefix:"ma_"}):null}export{K as a,J as e,Q as g,N as i,H as s};
@@ -0,0 +1 @@
1
+ .music-analyzer .ma-card{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:10px;background:#fafafa;border:1px solid rgba(0,0,0,.05)}.music-analyzer .ma-card--grow{flex:1;min-height:0}.music-analyzer .ma-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:600;color:#333}.music-analyzer .ma-muted{color:#999;font-weight:400;font-size:12px}.music-analyzer .ma-dropzone{min-height:140px;padding:12px}.music-analyzer .ma-dropzone__placeholder{display:flex;flex-direction:column;gap:6px;align-items:center;color:#666}.music-analyzer .ma-audio-preview{width:100%;display:flex;flex-direction:column;gap:10px}.music-analyzer .ma-audio-preview__meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.music-analyzer .ma-input,.music-analyzer .ma-select,.music-analyzer .ma-textarea{width:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.08);border-radius:8px;background:#fff;color:#333;padding:10px 12px;font-size:13px;line-height:1.5}.music-analyzer .ma-textarea{resize:vertical;min-height:120px}.music-analyzer .ma-textarea--grow{flex:1;min-height:220px}.music-analyzer .ma-rewrite-submit{width:100%;padding:8px 6px;border:none;border-radius:8px;background:linear-gradient(135deg,#f8b24a,#ee8f34);color:#fff;font-size:11px;line-height:1.2;font-weight:600;letter-spacing:0;cursor:pointer;box-shadow:0 2px 8px #eb7d1a1a;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,opacity .16s ease}.music-analyzer .ma-rewrite-submit:hover{filter:brightness(1.005);box-shadow:0 3px 10px #eb7d1a1f;transform:translateY(-1px)}.music-analyzer .ma-rewrite-submit:active{transform:translateY(0);box-shadow:0 1px 6px #eb7d1a1a}.music-analyzer .ma-progress,.music-analyzer .ma-error{padding:10px 12px;border-radius:8px;font-size:12px;white-space:pre-wrap;word-break:break-word}.music-analyzer .ma-status-stack{display:flex;flex-direction:column;gap:8px}.music-analyzer .ma-progress{background:#f39c1214;color:#c97d0a}.music-analyzer .ma-error{background:#e74c3c14;color:#c0392b}.music-analyzer .ma-analysis-summary{display:flex;flex-direction:column;gap:10px}.music-analyzer .ma-analysis-summary p{margin:0;line-height:1.6;color:#444}.music-analyzer .ma-chip-row,.music-analyzer .ma-tag-row{display:flex;flex-wrap:wrap;gap:8px}.music-analyzer .ma-chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#f0f0f0;color:#666;font-size:12px}.music-analyzer .ma-chip--accent{background:#f39c1224;color:#c97d0a}.music-analyzer .ma-tag-row code{padding:4px 8px;border-radius:6px;background:#fff;border:1px solid rgba(0,0,0,.06)}.music-analyzer .ma-section-toggle{display:flex;align-items:center;justify-content:space-between;border:none;background:transparent;padding:0;cursor:pointer;font-weight:600;color:#333}.music-analyzer .ma-suggestions,.music-analyzer .ma-history-summary{color:#666;line-height:1.5}.music-analyzer .ma-suno-summary{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:8px;background:#f39c120f;border:1px solid rgba(243,156,18,.14)}.music-analyzer .ma-suno-summary__title{font-weight:600;color:#c97d0a}.music-analyzer .ma-suno-summary__form{display:flex;flex-direction:column;gap:10px}.music-analyzer .ma-suno-summary__field{display:flex;flex-direction:column;gap:6px;color:#555}.music-analyzer .ma-suno-summary__field>span{font-size:12px;font-weight:600}.music-analyzer .ma-suno-summary .ma-textarea{min-height:220px}.music-analyzer .ma-history-title{font-weight:600;color:#333}.music-analyzer .ma-history-clips-count{font-size:12px;color:#c97d0a;margin-top:2px}.music-analyzer .ma-create-page{display:flex;flex-direction:column;flex:1;min-height:0}.music-analyzer .ma-create-page>.va-page{flex:1;min-height:0}.music-analyzer .ma-mode-toggle{display:flex;gap:0;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.08);flex-shrink:0;margin:0 16px}.music-analyzer .ma-mode-btn{flex:1;padding:8px 12px;border:none;background:#fafafa;color:#666;cursor:pointer;font-size:13px;transition:background .15s,color .15s}.music-analyzer .ma-mode-btn.active{background:#f39c121f;color:#c97d0a;font-weight:600}.music-analyzer .ma-version-dropdown{position:relative}.music-analyzer .ma-version-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid rgba(0,0,0,.08);border-radius:6px;background:#fff;color:#666;font-size:12px;cursor:pointer}.music-analyzer .ma-version-arrow{font-size:10px}.music-analyzer .ma-version-menu{position:absolute;top:100%;right:0;z-index:10;margin-top:4px;min-width:140px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:8px;box-shadow:0 4px 12px #00000014;overflow:hidden}.music-analyzer .ma-version-menu-item{display:block;width:100%;padding:8px 12px;border:none;background:transparent;text-align:left;font-size:12px;color:#333;cursor:pointer}.music-analyzer .ma-version-menu-item:hover{background:#f5f5f5}.music-analyzer .ma-version-menu-item.active{color:#c97d0a;font-weight:600}.music-analyzer .ma-batch-selector{display:flex;gap:8px}.music-analyzer .ma-action-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.music-analyzer .ma-action-btn{padding:8px 12px;border:1px solid rgba(0,0,0,.08);border-radius:8px;background:#fff;color:#666;cursor:pointer;font-size:13px;transition:background .15s,color .15s,border-color .15s}.music-analyzer .ma-action-btn.active{background:#f39c121f;color:#c97d0a;font-weight:600;border-color:#f39c124d}.music-analyzer .ma-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.music-analyzer .ma-fields-grid--triple{grid-template-columns:repeat(3,minmax(0,1fr))}.music-analyzer .ma-field{display:flex;flex-direction:column;gap:6px}.music-analyzer .ma-field>span{font-size:12px;font-weight:600;color:#555}.music-analyzer .ma-hint{padding:10px 12px;border-radius:8px;background:#f39c1214;color:#a86507;font-size:12px;line-height:1.5}.music-analyzer .ma-batch-btn{flex:1;padding:8px;border:1px solid rgba(0,0,0,.08);border-radius:8px;background:#fff;color:#666;cursor:pointer;font-size:13px;transition:background .15s,color .15s}.music-analyzer .ma-batch-btn.active{background:#f39c121f;color:#c97d0a;font-weight:600;border-color:#f39c124d}.music-analyzer .ma-clips-gallery{display:flex;flex-direction:column;gap:6px}.music-analyzer .ma-clip-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:6px 8px;border-radius:8px;background:#fff;border:1px solid rgba(0,0,0,.06)}.music-analyzer .ma-clip-row.is-selected{border-color:#f39c1252;box-shadow:inset 0 0 0 1px #f39c122e}.music-analyzer .ma-clip-thumb{width:36px;height:36px;border-radius:6px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.music-analyzer .ma-clip-thumb--placeholder{display:flex;align-items:center;justify-content:center;background:#f39c121a;color:#c97d0a;font-size:16px}.music-analyzer .ma-clip-meta{display:flex;flex-direction:column;gap:2px;min-width:60px;flex-shrink:0}.music-analyzer .ma-clip-title{font-size:12px;font-weight:500;color:#333;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-analyzer .ma-clip-duration{font-size:11px;color:#999}.music-analyzer .ma-clip-player{flex:1;min-width:200px;height:28px}.music-analyzer .ma-clip-actions{display:flex;gap:6px;flex-shrink:0}.music-analyzer .ma-clip-action-btn{padding:6px 10px;border:1px solid rgba(243,156,18,.24);border-radius:8px;background:#f39c1214;color:#c97d0a;cursor:pointer;font-size:12px;white-space:nowrap}.music-analyzer .ma-clip-action-btn:disabled{opacity:.5;cursor:not-allowed}.music-analyzer .ma-continue-section{display:flex;flex-direction:column;gap:10px;padding-top:8px}.music-analyzer .ma-continue-at{display:flex;align-items:center;gap:8px}.music-analyzer .ma-continue-at label{font-size:12px;color:#666;white-space:nowrap}.music-analyzer .ma-continue-at input{width:80px}.music-analyzer .ma-related-task-audio{width:120px;height:24px;flex-shrink:0}@media(max-width:900px){.music-analyzer .ma-fields-grid,.music-analyzer .ma-fields-grid--triple{grid-template-columns:1fr}.music-analyzer .ma-clip-row{align-items:flex-start;flex-wrap:wrap}.music-analyzer .ma-clip-player{width:100%;flex:none}.music-analyzer .ma-clip-actions{width:100%}}
@@ -0,0 +1,6 @@
1
+ import{y as e,aI as Be,at as Le,r as s,mO as ue,mP as fe,mQ as se,hL as pe,mR as $e,mS as Ue,eK as L,hq as Ke,gK as O,iI as Ye,mT as _e,mU as He,mV as We,mW as Qe,hS as Ne,gR as ge,mX as Ve,mY as qe,mZ as Re,m_ as Xe,gy as Ze,m$ as be,n0 as Je,n1 as ea,n2 as aa,mq as sa,fW as ia,eO as ie,bV as na,n3 as ra}from"./tool-windows-DWUG3k_L.js";import{A as Oe,j as ye,d as ua}from"./main-sSl0uAQQ.js";import{s as Pe,i as la,g as ta,a as ca}from"./MusicAnalyzer-DE_rzhdo.js";/* empty css */const Se=[{id:"create",label:"创作"},{id:"lyrics",label:"歌词"},{id:"generate",label:"生成"}],da=({current:a,onNavigate:n,hasRecord:u})=>{const v=Se.findIndex(c=>c.id===a);return e.jsxDEV("div",{className:"va-step-bar",children:Se.map((c,h)=>{const g=c.id===a,k=h<v,y=!u&&h>0;return e.jsxDEV(Be.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:()=>!y&&n(c.id),disabled:y,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 Ce(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?Ce(n):Ce(a.type.split("/")[1])}async function oa(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 pa(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 he="gemini-2.5-pro",je="music-analyzer:model",ve="music-analyzer:lyrics-model",Ee="music-analyzer:creation-prompt";function fa(a){return`${(a/1024/1024).toFixed(1)}MB`}function Na(){try{return sessionStorage.getItem(Ee)||""}catch{return""}}function Ie(a){try{if(a){sessionStorage.setItem(Ee,a);return}sessionStorage.removeItem(Ee)}catch{}}const ga=({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"),[y,S]=s.useState(()=>(a==null?void 0:a.creationPrompt)||Na()),[D,A]=s.useState(()=>(a==null?void 0:a.pendingLyricsGenTaskId)||null),[w,C]=s.useState(""),[p,P]=s.useState(null),[t,N]=s.useState(null),[d,j]=s.useState(""),[m,f]=s.useState(!0),[F,J]=s.useState(""),[$,le]=s.useState(""),[B,ne]=s.useState(""),re=s.useRef(null),M=s.useRef(null),R=s.useRef(),[z,E]=s.useState(""),[_,ce]=s.useState(()=>(a==null?void 0:a.analysisModel)||ue(je,he).modelId),[ee,te]=s.useState(()=>(a==null?void 0:a.analysisModelRef)||ue(je,he).modelRef),[U,X]=s.useState(()=>ue(ve,ge()).modelId),[K,I]=s.useState(()=>ue(ve,ge()).modelRef),l=s.useCallback((r,x)=>{ce(r),te(x||null),fe(je,r,x)},[]),b=s.useCallback((r,x)=>{X(r),I(x||null),fe(ve,r,x)},[]),V=s.useMemo(()=>{if(M.current&&URL.revokeObjectURL(M.current),!p)return M.current=null,null;const r=URL.createObjectURL(p);return M.current=r,r},[p]);s.useEffect(()=>()=>{M.current&&URL.revokeObjectURL(M.current)},[]),s.useEffect(()=>{let r=!1;return(async()=>{if(!a){!t&&!D&&(P(null),E(""));return}ce(a.analysisModel||he),te(a.analysisModelRef||null),S(a.creationPrompt||"");const o=a.analysis?Ue(a.analysis):null;if(J(a.title||(o==null?void 0:o.sunoTitle)||""),le((a.styleTags||(o==null?void 0:o.sunoStyleTags)||(o==null?void 0:o.genreTags)||[]).join(", ")),ne(a.lyricsDraft||(o==null?void 0:o.sunoLyricsDraft)||""),E(""),a.source==="upload"){const T=await pa(a.sourceSnapshot);if(r)return;P(T),T||E("原上传音频缓存已失效,无法自动回填音频")}})(),()=>{r=!0}},[a,t,D]),s.useEffect(()=>{if((a==null?void 0:a.source)==="scratch"){Ie(a.creationPrompt||"");return}a||Ie(y)},[y,a]),s.useEffect(()=>{if(!(!a||g!=="reference"))return clearTimeout(R.current),R.current=setTimeout(async()=>{const r=$.split(",").map(T=>T.trim()).filter(Boolean),x=await se(a.id,{title:F.trim(),styleTags:r,lyricsDraft:B});u(x);const o=x.find(T=>T.id===a.id);o&&n(o)},400),()=>clearTimeout(R.current)},[B,$,F,a,g,n,u]);const W=pe("text"),H=s.useMemo(()=>W.filter(r=>/^gemini/i.test(r.id)),[W]),i=pe("audio"),G=s.useMemo(()=>$e(W,i),[W,i]),q=s.useMemo(()=>a!=null&&a.analysis?Ue(a.analysis):null,[a==null?void 0:a.analysis]),ae=s.useCallback(r=>{var o;const x=(o=r.target.files)==null?void 0:o[0];x!=null&&x.type.startsWith("audio/")?(P(x),E("")):E("请选择音频文件")},[]),Y=s.useCallback(r=>{r.preventDefault();const x=r.dataTransfer.files[0];x!=null&&x.type.startsWith("audio/")?(P(x),E("")):E("请选择音频文件")},[]),Q=s.useCallback(async()=>{if(!p){E("请先上传音频");return}E(""),j("缓存音频...");try{const r=await oa(p),x=L.createTask({prompt:`分析音频:${p.name||"本地音频"}`,model:_,modelRef:ee,mimeType:r.mimeType,audioCacheUrl:r.cacheUrl,musicAnalyzerAction:"analyze",musicAnalyzerPrompt:Ke,musicAnalyzerSource:"upload",musicAnalyzerSourceLabel:r.fileName,musicAnalyzerSourceSnapshot:r,autoInsertToCanvas:!1},O.CHAT);N(x.id),j("音频分析中 0%")}catch(r){E(r.message||"音频分析失败")}},[p,_,ee]),de=s.useCallback(async()=>{if(!y.trim()){E("请先描述你想创作的歌曲");return}const r=_e(U);E(""),C(r?"歌词生成中...":"歌词草稿生成中 0%");try{const x={id:Ye(),createdAt:Date.now(),source:"scratch",sourceLabel:y.slice(0,30)||"从零创作",creationPrompt:y,starred:!1},o=r?L.createTask({prompt:y,model:U,modelRef:K,sunoAction:"lyrics",musicAnalyzerAction:"lyrics-gen",musicAnalyzerRecordId:x.id,autoInsertToCanvas:!1},O.AUDIO):L.createTask({prompt:`从零创作歌词:${x.sourceLabel}`,model:U,modelRef:K,musicAnalyzerAction:"lyrics-gen",musicAnalyzerPrompt:He({userPrompt:y,mode:"create"}),musicAnalyzerRecordId:x.id,autoInsertToCanvas:!1},O.CHAT);x.pendingLyricsGenTaskId=o.id;const T=await We(x);u(T),n(x),A(o.id)}catch(x){E(x.message||"歌词生成失败"),C("")}},[y,n,u,U,K]);s.useEffect(()=>{if(!t)return;const r=L.getTask(t);typeof(r==null?void 0:r.progress)=="number"&&j(`音频分析中 ${Math.round(r.progress)}%`);const x=L.observeTaskUpdates().subscribe(o=>{var T;if(o.task.id===t){if(o.task.status==="failed"){N(null),j(""),E(((T=o.task.error)==null?void 0:T.message)||"音频分析失败");return}if(o.task.status==="completed"){Pe(o.task).then(Z=>{Z&&(u(Z.records),n(Z.record))}).catch(Z=>E(Z.message||"分析结果同步失败")).finally(()=>{N(null),j("")});return}typeof o.task.progress=="number"&&j(`音频分析中 ${Math.round(o.task.progress)}%`)}});return()=>x.unsubscribe()},[t,n,u]),s.useEffect(()=>{if(!D)return;const r=L.getTask(D);if(typeof(r==null?void 0:r.progress)=="number"){const o=r.type===O.CHAT?"歌词草稿生成中":"歌词生成中";C(`${o} ${Math.round(r.progress)}%`)}const x=L.observeTaskUpdates().subscribe(o=>{var T;if(o.task.id===D){if(o.task.status==="failed"){const Z=String(o.task.params.musicAnalyzerRecordId||"").trim();A(null),C(""),E(((T=o.task.error)==null?void 0:T.message)||"歌词生成失败"),Z&&se(Z,{pendingLyricsGenTaskId:null}).then(u);return}if(o.task.status==="completed"){A(null),C(""),h==null||h();return}if(typeof o.task.progress=="number"){const Z=o.task.type===O.CHAT?"歌词草稿生成中":"歌词生成中";C(`${Z} ${Math.round(o.task.progress)}%`)}}});return()=>x.unsubscribe()},[h,u,D]);const xe=s.useCallback(async()=>{q&&await Oe("text",Qe(q))},[q]);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:456,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:462,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:455,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:476,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:477,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:475,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:U,selectedSelectionKey:ye(U,K),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:479,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:474,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:492,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:491,columnNumber:13},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:y,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:494,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:490,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:473,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:507,columnNumber:15},void 0),p&&e.jsxDEV("span",{className:"ma-muted",children:fa(p.size)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:508,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:506,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:p?e.jsxDEV("div",{className:"ma-audio-preview",children:[e.jsxDEV("div",{className:"ma-audio-preview__meta",children:[e.jsxDEV("strong",{children:p.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:519,columnNumber:21},void 0),e.jsxDEV("button",{className:"va-nav-btn",onClick:r=>{r.stopPropagation(),P(null),E(""),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:520,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:518,columnNumber:19},void 0),V&&e.jsxDEV("audio",{controls:!0,src:V},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:532,columnNumber:39},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:517,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:536,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:537,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:535,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:510,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:541,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:505,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:552,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:551,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:_,selectedSelectionKey:ye(_,ee),onSelect:l,models:H,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:554,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:550,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:504,columnNumber:9},void 0),q&&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:574,columnNumber:13},void 0),e.jsxDEV("span",{children:m?"收起":"展开"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:575,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:570,columnNumber:11},void 0),m&&e.jsxDEV("div",{className:"ma-analysis-summary",children:[e.jsxDEV("p",{children:q.summary},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:579,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-chip-row",children:[e.jsxDEV("span",{className:"ma-chip",children:q.language||"未知语言"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:581,columnNumber:17},void 0),e.jsxDEV("span",{className:"ma-chip",children:q.mood||"未知情绪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:582,columnNumber:17},void 0),q.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:584,columnNumber:19},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:580,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-tag-row",children:q.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:589,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:587,columnNumber:15},void 0),q.titleSuggestions.length>0&&e.jsxDEV("div",{className:"ma-suggestions",children:["推荐标题:",q.titleSuggestions.join(" / ")]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:593,columnNumber:17},void 0),(q.sunoTitle||q.sunoStyleTags.length>0||q.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:601,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:604,columnNumber:23},void 0),e.jsxDEV("input",{className:"ma-input",value:F,onChange:r=>J(r.target.value),placeholder:"可直接用于 Suno 的标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:605,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:603,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:613,columnNumber:23},void 0),e.jsxDEV("input",{className:"ma-input",value:$,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:614,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:612,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:622,columnNumber:23},void 0),e.jsxDEV("textarea",{className:"ma-textarea",rows:12,value:B,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:623,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:621,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:602,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:600,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:578,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:569,columnNumber:9},void 0),(z||d||w)&&e.jsxDEV("div",{className:"ma-status-stack",children:[z&&e.jsxDEV("div",{className:"ma-error",children:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:641,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:642,columnNumber:24},void 0),w&&e.jsxDEV("div",{className:"ma-progress",children:w},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:643,columnNumber:33},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:640,columnNumber:9},void 0),e.jsxDEV("div",{className:"va-page-actions",children:g==="scratch"?e.jsxDEV("button",{className:"va-btn-primary",onClick:de,disabled:!y.trim()||!!D,children:"生成歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:649,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:658,columnNumber:13},void 0),e.jsxDEV("button",{onClick:xe,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:659,columnNumber:13},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:Q,disabled:!p||!!t,children:"开始分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:662,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:669,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:657,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:647,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:470,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:453,columnNumber:5},void 0)},ke="music-analyzer:model",Te="gemini-2.5-pro",ya=({record:a,onRecordUpdate:n,onRecordsChange:u,onNext:v})=>{var U,X,K,I;const[c,h]=s.useState(()=>Ve(a)),[g,k]=s.useState(a.lyricsDraft||""),[y,S]=s.useState(a.title||((X=(U=a.analysis)==null?void 0:U.titleSuggestions)==null?void 0:X[0])||""),[D,A]=s.useState((a.styleTags||((K=a.analysis)==null?void 0:K.genreTags)||[]).join(", ")),[w,C]=s.useState(()=>a.pendingRewriteTaskId||null),[p,P]=s.useState(""),[t,N]=s.useState(""),[d,j]=s.useState(()=>a.analysisModel||ue(ke,Te).modelId),[m,f]=s.useState(()=>a.analysisModelRef||ue(ke,Te).modelRef),[F,J]=s.useState(!1),$=s.useRef(),le=s.useCallback((l,b)=>{j(l),f(b||null),fe(ke,l,b)},[]);s.useEffect(()=>{var l,b,V;h(Ve(a)),k(a.lyricsDraft||""),S(a.title||((b=(l=a.analysis)==null?void 0:l.titleSuggestions)==null?void 0:b[0])||""),A((a.styleTags||((V=a.analysis)==null?void 0:V.genreTags)||[]).join(", ")),C(a.pendingRewriteTaskId||null)},[a]),s.useEffect(()=>(clearTimeout($.current),$.current=setTimeout(async()=>{const l=D.split(",").map(V=>V.trim()).filter(Boolean),b=await se(a.id,{rewritePrompt:c,lyricsDraft:g,title:y,styleTags:l,pendingRewriteTaskId:w});u(b),n({...a,rewritePrompt:c,lyricsDraft:g,title:y,styleTags:l,pendingRewriteTaskId:w})},400),()=>clearTimeout($.current)),[g,n,u,w,a.id,c,D,y]);const B=pe("text"),ne=pe("audio"),re=s.useMemo(()=>$e(B,ne),[B,ne]),M=s.useMemo(()=>_e(d),[d]),R=s.useMemo(()=>{const l=[{id:qe,label:"原始版本"}];for(const b of a.lyricsVersions||[])l.push({id:b.id,label:b.label});return l},[a.lyricsVersions]),z=a.activeVersionId||qe,E=R.length>1,_=String(a.creationPrompt||"").trim(),ce=s.useCallback(async l=>{const b=Re(a,l);if(!b)return;const V=await se(a.id,b);u(V),n({...a,...b}),J(!1)},[n,u,a]),ee=s.useCallback(async()=>{N(""),P(M?"歌词生成中...":"歌词改写中 0%");try{let l;if(M){const W=[c.trim()?`本轮改写要求:
2
+ ${c.trim()}`:"",_&&_!==c.trim()?`第一步创作提示词:
3
+ ${_}`:"",g.trim()?`当前歌词草稿:
4
+ ${g.trim()}`:""].filter(Boolean).join(`
5
+
6
+ `)||c||g||a.sourceLabel;l=L.createTask({prompt:W,model:d,modelRef:m||null,sunoAction:"lyrics",musicAnalyzerAction:"lyrics-gen",musicAnalyzerRecordId:a.id,autoInsertToCanvas:!1},O.AUDIO)}else l=L.createTask({prompt:`改写歌词:${a.sourceLabel}`,model:d,modelRef:m||null,musicAnalyzerAction:"rewrite",musicAnalyzerPrompt:He({analysis:a.analysis,userPrompt:c,originalPrompt:_,currentLyrics:g}),musicAnalyzerRecordId:a.id,autoInsertToCanvas:!1},O.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){N(l.message||"歌词改写失败"),P("")}},[g,n,u,a,c,d,m,M]);s.useEffect(()=>{if(!w)return;const l=L.getTask(w);typeof(l==null?void 0:l.progress)=="number"&&P(`歌词改写中 ${Math.round(l.progress)}%`);const b=L.observeTaskUpdates().subscribe(V=>{var W;if(V.task.id===w){if(V.task.status==="failed"){C(null),P(""),N(((W=V.task.error)==null?void 0:W.message)||"歌词改写失败"),se(a.id,{pendingRewriteTaskId:null}).then(u);return}if(V.task.status==="completed"){Pe(V.task).then(H=>{H&&(u(H.records),n(H.record),k(H.record.lyricsDraft||""),S(H.record.title||""),A((H.record.styleTags||[]).join(", ")))}).catch(H=>{N(H.message||"改写结果同步失败")}).finally(()=>{C(null),P("")});return}typeof V.task.progress=="number"&&P(`歌词改写中 ${Math.round(V.task.progress)}%`)}});return()=>b.unsubscribe()},[n,u,w,a.id]);const te=s.useCallback(async()=>{const l=await Oe("text",Xe({title:y,styleTags:D.split(",").map(b=>b.trim()).filter(Boolean),lyricsDraft:g}));l.success||N(l.error||"插入失败,请确认画布已打开")},[g,D,y]);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:288,columnNumber:11},void 0),E&&e.jsxDEV("div",{className:"ma-version-dropdown",children:[e.jsxDEV("button",{className:"ma-version-btn",onClick:()=>J(l=>!l),children:[((I=R.find(l=>l.id===z))==null?void 0:I.label)||"原始版本",e.jsxDEV("span",{className:"ma-version-arrow",children:F?"▲":"▼"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:297,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:292,columnNumber:15},void 0),F&&e.jsxDEV("div",{className:"ma-version-menu",children:R.map(l=>e.jsxDEV("button",{className:`ma-version-menu-item ${l.id===z?"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:302,columnNumber:21},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:300,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:291,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:287,columnNumber:9},void 0),e.jsxDEV(Ne,{selectedModel:d,selectedSelectionKey:ye(d,m),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:315,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:286,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:328,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:327,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:330,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary ma-rewrite-submit",onClick:ee,children:M?"Suno 生成歌词":"AI 改写"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:337,columnNumber:9},void 0),p&&e.jsxDEV("div",{className:"ma-progress",children:p},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:340,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:326,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:345,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:344,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:y,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:347,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:343,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:357,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:356,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:D,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:359,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:355,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:369,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:368,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:371,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:367,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:380,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:383,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:386,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:382,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:285,columnNumber:5},void 0)},we="music-analyzer:audio-model",De=[{id:"generate",label:"新生成",hint:"从零生成完整音乐"},{id:"continue",label:"续写",hint:"从已有片段继续创作"},{id:"infill",label:"Infill",hint:"局部重绘指定时间窗口"}];function me(a){const n=a.trim();if(!n)return null;const u=Number(n);return Number.isFinite(u)?u:null}function oe(a){return typeof a=="number"&&Number.isFinite(a)?String(a):""}function Ae(a){return a.split(",").map(n=>n.trim()).filter(Boolean)}function Me(a){var n;return((n=De.find(u=>u.id===a))==null?void 0:n.label)||"新生成"}function xa(a){return typeof a.duration=="number"&&Number.isFinite(a.duration)?String(Math.max(0,Math.round(a.duration))):""}function Ge(a){const n=a.title||"未命名片段",u=a.duration!=null?` · ${Fe(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 H;const[c,h]=s.useState(a.title||""),[g,k]=s.useState((a.styleTags||[]).join(", ")),[y,S]=s.useState(a.lyricsDraft||""),[D,A]=s.useState("chirp-v5-5"),[w,C]=s.useState(1),[p,P]=s.useState(()=>ue(we,ge()).modelId),[t,N]=s.useState(()=>ue(we,ge()).modelRef),[d,j]=s.useState(a.musicEditAction||"generate"),[m,f]=s.useState(a.continueFromClipId||""),[F,J]=s.useState(oe(a.continueAt)),[$,le]=s.useState(oe(a.infillStartS)),[B,ne]=s.useState(oe(a.infillEndS)),[re,M]=s.useState(!1),[R,z]=s.useState(""),E=s.useRef(),_=s.useRef(!1),ce=s.useCallback((i,G)=>{P(i),N(G||null),fe(we,i,G)},[]);s.useEffect(()=>{h(a.title||""),k((a.styleTags||[]).join(", ")),S(a.lyricsDraft||""),j(a.musicEditAction||"generate"),f(a.continueFromClipId||""),J(oe(a.continueAt)),le(oe(a.infillStartS)),ne(oe(a.infillEndS))},[a]),s.useEffect(()=>(clearTimeout(E.current),E.current=setTimeout(async()=>{const i=Ae(g),G=me(F),q=me($),ae=me(B),Y={title:c,styleTags:i,lyricsDraft:y,musicEditAction:d,continueFromClipId:m||null,continueAt:G,infillStartS:q,infillEndS:ae},Q=await se(a.id,Y);u(Q),n({...a,...Y})},400),()=>clearTimeout(E.current)),[d,F,m,B,$,n,u,y,a.id,g,c]);const ee=pe("audio"),te=s.useMemo(()=>ee.filter(i=>{const G=Array.isArray(i.tags)?i.tags.join(" "):"";return/suno/i.test(i.id)||/suno/i.test(G)}),[ee]),U=s.useMemo(()=>Ze(p).find(i=>i.id==="mv"),[p]);s.useEffect(()=>{U!=null&&U.defaultValue&&A(i=>i||String(U.defaultValue))},[U==null?void 0:U.defaultValue]);const X=a.generatedClips||[],K=s.useMemo(()=>X.filter(i=>!!String(i.clipId||"").trim()),[X]),I=s.useMemo(()=>K.find(i=>i.clipId===m)||null,[m,K]),l=d!=="generate",b=d==="infill",V=s.useCallback((i,G)=>{if(!i.clipId){z("该片段尚未拿到真实 clip_id,暂时不能继续创作");return}j(G),f(i.clipId),J(q=>q||xa(i)),z(G==="continue"?`已带入片段「${i.title||i.clipId.slice(0,8)}」用于续写`:`已带入片段「${i.title||i.clipId.slice(0,8)}」用于 Infill`)},[]),W=s.useCallback(async()=>{const i=y.trim(),G=c.trim(),q=g.trim(),ae=me(F),Y=me($),Q=me(B);if(!i){z("请先准备歌词或生成提示词");return}if(l&&!m){z("请先选择要续写的片段");return}if(l&&!(I!=null&&I.taskId)){z("当前片段缺少来源 task_id,请先重新同步或重新生成一次片段");return}if(l&&ae==null){z("请填写续写起点秒数");return}if(ae!=null&&ae<0){z("续写起点秒数不能小于 0");return}if(b&&Y==null){z("请填写 Infill 开始秒数");return}if(b&&Q==null){z("请填写 Infill 结束秒数");return}if(Y!=null&&Y<0){z("Infill 开始秒数不能小于 0");return}if(Q!=null&&Q<0){z("Infill 结束秒数不能小于 0");return}if(b&&Y!=null&&Q!=null&&Y>=Q){z("Infill 开始秒数必须小于结束秒数");return}if(!_.current){_.current=!0,M(!0),z("");try{const de=[],xe=d==="generate"?"gen":d;for(let o=0;o<w;o+=1){const T=L.createTask({prompt:i,model:p,modelRef:t,sunoAction:"music",title:G,tags:q,mv:D,continueClipId:l?m: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?Q??void 0:void 0,batchId:`ma_${a.id}_${xe}_${o}`,batchIndex:o,batchTotal:w,autoInsertToCanvas:!0},O.AUDIO);de.push(T.id)}const r={generateTaskIds:[...a.generateTaskIds||[],...de],title:G,styleTags:Ae(q),lyricsDraft:i,musicEditAction:d,continueFromClipId:m||null,continueAt:ae,infillStartS:Y,infillEndS:Q},x=await se(a.id,r);u(x),n({...a,...r}),z(`已提交 ${w} 次${Me(d)}任务到 Suno 队列`)}catch(de){z(de.message||"提交生成任务失败")}finally{M(!1),_.current=!1}}},[d,w,F,m,B,$,D,n,u,y,a,l,b,I==null?void 0:I.taskId,p,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:355,columnNumber:11},void 0),e.jsxDEV("span",{className:"ma-muted",children:(H=De.find(i=>i.id===d))==null?void 0:H.hint},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:356,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:354,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-action-toggle",children:De.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:362,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:360,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:353,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:375,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:374,columnNumber:9},void 0),e.jsxDEV(Ne,{selectedModel:p,selectedSelectionKey:ye(p,t),onSelect:ce,models:te.length>0?te:ee,variant:"form",placement:"down",placeholder:"选择音频生成模型"},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:373,columnNumber:7},void 0),(U==null?void 0:U.options)&&U.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:391,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:390,columnNumber:11},void 0),e.jsxDEV("select",{className:"ma-select",value:D,onChange:i=>A(i.target.value),children:U.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:399,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:393,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:389,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:410,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:411,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:409,columnNumber:11},void 0),K.length>0?e.jsxDEV("select",{className:"ma-select",value:m,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:419,columnNumber:15},void 0),K.map(i=>e.jsxDEV("option",{value:i.clipId,children:Ge(i)},i.clipId,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:421,columnNumber:17},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:414,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:427,columnNumber:13},void 0),I&&e.jsxDEV("div",{className:"ma-hint",children:["当前片段:",Ge(I)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:430,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:408,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:440,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:439,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:444,columnNumber:15},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:F,onChange:i=>J(i.target.value),placeholder:"例如 30"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:445,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:443,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:457,columnNumber:17},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:$,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:458,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:456,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:471,columnNumber:17},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:B,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:472,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:470,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:442,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:438,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:489,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:488,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:491,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:487,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:501,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:500,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:503,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:499,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:513,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:512,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",rows:10,value:y,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:515,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:511,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:526,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:527,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:525,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 ${w===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:531,columnNumber:13},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)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:524,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:545,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:546,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:544,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-clips-gallery",children:X.map(i=>e.jsxDEV(ha,{clip:i,selected:l&&!!i.clipId&&m===i.clipId,onContinue:()=>V(i,"continue"),onInfill:()=>V(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:550,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:548,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:543,columnNumber:9},void 0),R&&e.jsxDEV("div",{className:"ma-progress",children:R},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:566,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:569,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:W,disabled:re,children:[Me(d)," ",w," 次"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:570,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:568,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:352,columnNumber:5},void 0)},ha=({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:593,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:600,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:603,columnNumber:9},void 0),a.duration!=null&&e.jsxDEV("span",{className:"ma-clip-duration",children:Fe(a.duration)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:605,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:602,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:608,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:610,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:617,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:609,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:591,columnNumber:5},void 0)};function Fe(a){const n=Math.floor(a/60),u=Math.round(a%60);return`${n}:${String(u).padStart(2,"0")}`}function ja(a){switch(a){case ie.COMPLETED:return"已完成";case ie.PROCESSING:return"进行中";case ie.PENDING:return"等待中";case ie.FAILED:return"失败";default:return""}}function va(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 ka(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 wa(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,y=typeof(k==null?void 0:k.title)=="string"&&k.title.trim()?k.title.trim():"";if(y)return y}if(n==="lyrics-gen"){const k=(c=a.result)!=null&&c.analysisData&&typeof a.result.analysisData=="object"?a.result.analysisData:null,y=typeof(k==null?void 0:k.title)=="string"&&k.title.trim()?k.title.trim():"";if(y)return y;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 za=({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),[y,S]=s.useState(null),{tasks:D}=ua(),A=s.useMemo(()=>{const t=new Map,N=new Set(a.map(j=>j.id)),d=()=>({rewrite:[],lyricsGen:[],audio:[]});for(const j of D){const m=j.params;if(j.type===O.CHAT&&m.musicAnalyzerAction==="rewrite"&&typeof m.musicAnalyzerRecordId=="string"&&N.has(m.musicAnalyzerRecordId)){const f=m.musicAnalyzerRecordId;be(t,f,"rewrite",j,d);continue}if((j.type===O.AUDIO||j.type===O.CHAT)&&m.musicAnalyzerAction==="lyrics-gen"&&typeof m.musicAnalyzerRecordId=="string"&&N.has(m.musicAnalyzerRecordId)){const f=m.musicAnalyzerRecordId;be(t,f,"lyricsGen",j,d);continue}if(j.type===O.AUDIO&&typeof m.batchId=="string"&&m.batchId.startsWith("ma_")){const f=Je(m.batchId,"ma_",N);f&&be(t,f,"audio",j,d)}}return ea(t)},[D,a]),w=s.useCallback(async(t,N)=>{t.stopPropagation();const d=await se(N.id,{starred:!N.starred});u(d)},[u]),C=s.useCallback((t,N)=>{t.stopPropagation(),S(N)},[]),p=s.useCallback(async()=>{if(!y)return;const t=await aa(y);u(t),S(null)},[u,y]),P=s.useCallback((t,N)=>{t.stopPropagation(),k(d=>d===N?null:N)},[]);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 m;const N=A.get(t.id),d=!!(N&&N.rewrite.length+N.lyricsGen.length+N.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=>w(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(sa,{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:((m=t.analysis)==null?void 0:m.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&&N&&e.jsxDEV("div",{className:"va-history-related",onClick:f=>f.stopPropagation(),children:[N.lyricsGen.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["歌词生成 (",N.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),N.lyricsGen.map(f=>e.jsxDEV(ze,{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),N.rewrite.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["歌词改写 (",N.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),N.rewrite.map(f=>e.jsxDEV(ze,{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),N.audio.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["音乐生成 (",N.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),N.audio.map(f=>e.jsxDEV(ze,{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(ia,{open:y!==null,title:"确认删除",description:"确定要删除这条音乐分析记录吗?此操作不可撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:t=>{t||S(null)},onConfirm:p},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)},ze=({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(na,{content:ja(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 ${va(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:wa(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:ka(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===O.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)},Va=()=>{const[a,n]=s.useState("create"),[u,v]=s.useState(null),[c,h]=s.useState([]),[g,k]=s.useState(!1);s.useEffect(()=>{ra().then(h)},[]),s.useEffect(()=>{let p=!1;const P=new Set,t=async d=>{if(P.has(d.id))return;if(la(d)){P.add(d.id);try{const m=await Pe(d);if(!m||p)return;h(m.records),v(f=>(f==null?void 0:f.id)===m.record.id||!f?m.record:f)}catch(m){console.error("[MusicAnalyzer] Failed to sync task result:",m)}finally{P.delete(d.id)}return}const j=ta(d);if(j){P.add(d.id);try{const m=await ca(d,j);if(!m||p)return;h(m.records),v(f=>(f==null?void 0:f.id)===m.record.id?m.record:f)}catch(m){console.error("[MusicAnalyzer] Failed to sync generation task:",m)}finally{P.delete(d.id)}}};L.getAllTasks().forEach(d=>{d.status==="completed"&&t(d)});const N=L.observeTaskUpdates().subscribe(d=>{d.task.status==="completed"&&t(d.task)});return()=>{p=!0,N.unsubscribe()}},[]);const y=s.useCallback(p=>{v(p)},[]),S=s.useCallback(p=>{v(p),n("create")},[]),D=s.useCallback(p=>{v(p),n("lyrics")},[]),A=s.useCallback(p=>{v(p)},[]),w=s.useCallback(()=>{v(null),n("create")},[]),C=s.useCallback(p=>{n(p)},[]);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(p=>!p),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(da,{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(p=>p.starred).length>0&&e.jsxDEV("span",{className:"va-nav-count",children:c.filter(p=>p.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(ga,{existingRecord:u,onComplete:y,onRecordsChange:h,onCreateNew:w,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(ya,{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(ba,{record:u,onRecordUpdate:A,onRecordsChange:h,onRestart:w},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(za,{records:c,onSelect:S,onRecordsChange:h,showStarredOnly:g,onSelectLyrics:D},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{Va as default};
@@ -0,0 +1 @@
1
+ import{r as l,ig as ne,al as x,br as re,bs as le,as as W,ar as te,y as s,gv as de,ir as oe,bx as ce,fM as R,bu as X,bt as Y,bW as ue}from"./tool-windows-DWUG3k_L.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,W.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(X,{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(Y,{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(X,{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(Y,{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:W.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};
@@ -0,0 +1 @@
1
+ .prompt-textarea-wrapper{position:relative;display:flex;flex:1 1 auto;overflow:visible}.prompt-textarea-wrapper .form-textarea{padding-right:64px;padding-bottom:56px}.prompt-optimize-button{position:absolute;right:6px;bottom:6px;width:32px;height:32px;border:1px solid var(--color-border, #d9d9d9);border-radius:10px;background:#fffffff5;color:var(--color-text-placeholder, #999);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0f172a14;transition:all .2s ease;z-index:3;pointer-events:auto}.prompt-optimize-button:hover:not(:disabled){color:#f39c12;border-color:#f39c128c;box-shadow:0 4px 12px #f39c122e}.prompt-optimize-button:disabled{opacity:.55;cursor:not-allowed}@media(max-width:768px){.prompt-optimize-button{right:4px;bottom:4px}}.video-model-options{display:flex;flex-direction:column;gap:12px}.video-model-options__row{display:flex;align-items:center;gap:12px}.video-model-options__label{font-size:13px;font-weight:500;color:var(--td-text-color-primary, #000000);min-width:40px;flex-shrink:0}.video-model-options__control{flex:1;display:flex;align-items:center}.video-model-options__fixed-value{font-size:13px;color:var(--td-text-color-secondary, #666666);padding:2px 12px;background:var(--td-bg-color-component, #f3f3f3);border-radius:4px}.video-model-options .t-radio-group{gap:8px;flex-wrap:wrap}.video-model-options .t-radio-button{font-size:12px;padding:0 12px;height:28px;line-height:28px}.multi-image-upload__header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.multi-image-upload__title{font-size:13px;font-weight:500;color:var(--td-text-color-primary, #000000)}.multi-image-upload__hint{font-size:12px;color:var(--td-text-color-placeholder, #999999)}.multi-image-upload__slots{display:flex;gap:12px;flex-wrap:wrap}.multi-image-upload__slot{display:flex;flex-direction:column;gap:6px}.multi-image-upload__slot-label{font-size:12px;color:var(--td-text-color-secondary, #666666);text-align:center}.multi-image-upload__preview{position:relative;width:100px;height:100px;border-radius:8px;overflow:hidden;border:1px solid var(--td-component-border, #e7e7e7)}.multi-image-upload__preview:hover .multi-image-upload__overlay{opacity:1}.multi-image-upload__image{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.multi-image-upload__hover-preview{position:fixed;z-index:10000;pointer-events:none;max-width:300px;max-height:300px;padding:4px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #0003;border:1px solid #e7e7e7}.multi-image-upload__hover-preview img{display:block;max-width:100%;max-height:292px;border-radius:4px;-o-object-fit:contain;object-fit:contain}.multi-image-upload__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}.multi-image-upload__placeholder{width:100px;height:100px;border:2px dashed var(--td-component-border, #dcdcdc);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:all .2s ease;background:var(--td-bg-color-container, #ffffff)}.multi-image-upload__placeholder:hover{border-color:var(--td-brand-color, #0052d9);background:var(--td-bg-color-container-hover, #f9f9f9)}.multi-image-upload__placeholder-container{display:flex;flex-direction:column;gap:6px;align-items:center}.multi-image-upload__library-btn{font-size:11px;padding:2px 6px;height:auto;min-width:auto}.multi-image-upload__add-icon{font-size:24px;color:var(--td-text-color-placeholder, #999999)}.multi-image-upload__add-text{font-size:11px;color:var(--td-text-color-placeholder, #999999)}.multi-image-upload .t-upload{display:block}.multi-image-upload .t-upload__dragger{padding:0;border:none;background:transparent}.aspect-ratio-selector{display:flex;flex-direction:column;gap:8px}.aspect-ratio-selector__label{font-size:14px;font-weight:500;color:#333}.aspect-ratio-selector__options{display:flex;flex-wrap:wrap;gap:8px}.aspect-ratio-selector__option{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:56px;padding:8px 12px;border:1px solid #dcdcdc;border-radius:6px;background-color:#fff;cursor:pointer;transition:all .2s ease}.aspect-ratio-selector__option:hover{border-color:#f39c12;background-color:#fff9f0}.aspect-ratio-selector__option--selected{border-color:#f39c12;background-color:#fff9f0;box-shadow:0 0 0 1px #f39c12}.aspect-ratio-selector__option-ratio{font-size:13px;font-weight:500;color:#333}.aspect-ratio-selector__option-desc{font-size:10px;color:#999;margin-top:2px}.aspect-ratio-selector--compact{display:flex;align-items:center;gap:0;position:relative}.aspect-ratio-selector--compact .aspect-ratio-selector__label{display:none}.aspect-ratio-selector__trigger{display:flex;align-items:center;gap:6px;padding:6px 10px;min-width:60px;border:1px solid #dcdcdc;border-radius:6px;background-color:#fff;cursor:pointer;transition:all .2s ease;height:36px}.aspect-ratio-selector__trigger:hover{border-color:#f39c12;background-color:#fff9f0}.aspect-ratio-selector__trigger--open{border-color:#f39c12;background-color:#fff9f0;box-shadow:0 0 0 1px #f39c12}.aspect-ratio-selector__trigger-value{font-size:13px;font-weight:500;color:#333;flex:1}.aspect-ratio-selector__trigger-icon{font-size:10px;color:#999;transition:transform .2s ease}.aspect-ratio-selector__trigger-icon--open{transform:rotate(180deg)}.aspect-ratio-selector__dropdown{position:absolute;bottom:100%;left:0;margin-bottom:8px;padding:8px;background:#fff;border:1px solid #e8e8e8;border-radius:8px;box-shadow:0 -8px 24px #0000001f;z-index:1000;min-width:200px;animation:dropdownFadeInUp .15s ease}.aspect-ratio-selector__dropdown-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.aspect-ratio-selector__dropdown-item{display:flex;align-items:center;justify-content:center;padding:8px 6px;font-size:13px;font-weight:600;color:#333;background:#f5f5f5;border:1px solid #e8e8e8;border-radius:6px;cursor:pointer;transition:all .15s ease;min-width:42px;white-space:nowrap}.aspect-ratio-selector__dropdown-item:hover{background:#fff9f0;border-color:#f39c12;color:#e67e22}.aspect-ratio-selector__dropdown-item--selected{background:#fff9f0;border-color:#f39c12;color:#e67e22;font-weight:600}@keyframes dropdownFadeInUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.aspect-ratio-selector__dropdown{min-width:180px;padding:6px;bottom:auto;top:100%;margin-top:8px;margin-bottom:0;box-shadow:0 8px 24px #0000001f;animation:dropdownFadeInDown .15s ease}.aspect-ratio-selector__dropdown-grid{grid-template-columns:repeat(4,1fr);gap:4px}.aspect-ratio-selector__dropdown-item{padding:6px 4px;font-size:12px;min-width:36px}@keyframes dropdownFadeInDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}}@media(max-width:480px){.aspect-ratio-selector--compact{gap:4px}.aspect-ratio-selector--compact .aspect-ratio-selector__label{font-size:12px}.aspect-ratio-selector__trigger{padding:4px 8px;min-width:60px}.aspect-ratio-selector__trigger-value{font-size:12px}.aspect-ratio-selector__trigger-icon{font-size:8px}.aspect-ratio-selector__dropdown{min-width:160px;max-width:calc(100vw - 40px);padding:6px;left:0;right:auto;bottom:auto;top:100%;margin-top:6px}.aspect-ratio-selector__dropdown-grid{grid-template-columns:repeat(3,1fr);gap:4px}.aspect-ratio-selector__dropdown-item{padding:8px 4px;font-size:12px;min-width:40px;border-radius:4px}}.aspect-ratio-selector__preview{display:flex;align-items:center;gap:12px;margin-top:4px;padding:8px 12px;background-color:#f9f9f9;border-radius:6px}.aspect-ratio-selector__preview-box{display:flex;align-items:center;justify-content:center;width:48px;height:48px}.aspect-ratio-selector__preview-box-inner{background-color:#f39c12;border-radius:2px;opacity:.8}.aspect-ratio-selector__preview-info{display:flex;flex-direction:column;gap:2px}.aspect-ratio-selector__preview-info-ratio{font-size:14px;font-weight:500;color:#333}.aspect-ratio-selector__preview-info-desc{font-size:12px;color:#666}.storyboard-editor{display:flex;flex-direction:column;gap:16px;padding:16px;background:var(--td-bg-color-container, #ffffff);border:1px solid var(--td-component-stroke, #e7e7e7);border-radius:12px}.storyboard-editor__header{display:flex;align-items:flex-start;justify-content:space-between}.storyboard-editor__toggle{display:flex;align-items:flex-start;gap:12px}.storyboard-editor__toggle .t-switch{margin-top:2px}.storyboard-editor__title{display:flex;flex-direction:column;gap:2px}.storyboard-editor__title-text{font-size:14px;font-weight:600;color:var(--td-text-color-primary, #000000)}.storyboard-editor__title-desc{font-size:12px;color:var(--td-text-color-secondary, #666666)}.storyboard-editor__new-badge{font-size:10px;font-weight:600;color:#f59e0b;background:#fef3c7;padding:2px 6px;border-radius:4px;letter-spacing:.5px}.storyboard-editor__content{display:flex;flex-direction:column;gap:12px}.storyboard-editor__section-header{display:flex;align-items:center;justify-content:space-between}.storyboard-editor__section-title{font-size:14px;font-weight:600;color:var(--td-text-color-primary, #000000)}.storyboard-editor__section-hint{font-size:12px;color:var(--td-text-color-placeholder, #999999)}.storyboard-editor__scenes{display:flex;flex-direction:column;gap:0;position:relative;width:100%;display:block}.storyboard-editor__scene-wrapper{display:flex;align-items:flex-start;position:relative;padding-left:32px;min-height:44px;transition:all .2s ease;box-sizing:border-box;width:100%;max-width:100%}.storyboard-editor__scene-wrapper.is-selected .storyboard-editor__scene--expanded{animation:sceneExpand .25s ease-out}.storyboard-editor__timeline-line{position:absolute;left:11px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--td-component-stroke, #e7e7e7) 0%,var(--td-component-stroke, #e7e7e7) 100%)}.storyboard-editor__timeline-line.is-last{bottom:50%}.storyboard-editor__timeline-node{position:absolute;left:4px;top:14px;width:16px;height:16px;border-radius:50%;background:var(--td-bg-color-container, #ffffff);border:2px solid var(--td-component-stroke, #dcdcdc);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:transparent;transition:all .2s ease;z-index:1}.storyboard-editor__timeline-node.is-selected{width:20px;height:20px;left:2px;top:12px;border-color:var(--td-brand-color, #f39c12);background:var(--td-brand-color, #f39c12);color:#fff;box-shadow:0 2px 8px #f39c124d}.storyboard-editor__scene{flex:1;min-width:0;display:flex;flex-direction:column;border-radius:8px;border:none;transition:all .2s ease;margin-bottom:8px;overflow:hidden}.storyboard-editor__scene--compact{display:grid;grid-template-columns:20px 1fr auto auto;align-items:center;gap:10px;padding:10px 12px;background:var(--td-bg-color-secondarycontainer, #f9f9f9);cursor:pointer}.storyboard-editor__scene--compact:hover{background:var(--td-bg-color-secondarycontainer-hover, #f3f3f3)}.storyboard-editor__scene-index{width:20px;height:20px;border-radius:50%;background:var(--td-component-stroke, #e7e7e7);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--td-text-color-secondary, #666666)}.storyboard-editor__scene-preview{min-width:0;overflow:hidden}.storyboard-editor__scene-preview-text{font-size:13px;color:var(--td-text-color-primary, #333333);margin:0;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.storyboard-editor__scene-duration-badge{display:flex;align-items:center;gap:3px;padding:2px 6px;background:#0000000a;border-radius:4px;font-size:11px;color:var(--td-text-color-secondary, #666666);white-space:nowrap}.storyboard-editor__scene-arrow{color:var(--td-text-color-placeholder, #999999);transition:transform .2s ease}.storyboard-editor__scene--compact:hover .storyboard-editor__scene-arrow{transform:translate(2px)}.storyboard-editor__scene--expanded{padding:14px;background:var(--td-bg-color-container, #ffffff);border:1px solid var(--td-brand-color, #f39c12);box-shadow:0 4px 16px #f39c121f;gap:12px}.storyboard-editor__scene-header{display:flex;align-items:center;justify-content:space-between}.storyboard-editor__scene-info{display:flex;align-items:center;gap:10px}.storyboard-editor__scene-label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--td-text-color-primary, #1a1a1a)}.storyboard-editor__active-indicator{width:6px;height:6px;border-radius:50%;background:var(--td-brand-color, #f39c12);animation:pulse 1.5s ease-in-out infinite}.storyboard-editor__scene-controls{display:flex;align-items:center;gap:4px}.storyboard-editor__time-icon{font-size:14px;color:var(--td-text-color-placeholder, #999999)}.storyboard-editor__duration-select{width:90px!important}.storyboard-editor__duration-select .t-input{font-size:13px;font-weight:500;text-align:center}.storyboard-editor__duration-select .t-input__inner{text-align:center}.storyboard-editor__duration-popup{max-height:120px}.storyboard-editor__duration-popup .t-select-option{font-size:12px;text-align:center;justify-content:center;padding:2px 8px;min-height:24px;line-height:20px}.storyboard-editor__scene-delete{opacity:.4;transition:opacity .15s ease,color .15s ease;margin-left:4px;padding:4px}.storyboard-editor__scene-delete:hover{opacity:1;color:var(--td-error-color, #e34d59)}.storyboard-editor__scene-prompt{width:100%}.storyboard-editor__add-btn{margin-top:4px;margin-left:32px;width:calc(100% - 32px)!important;border:1px dashed var(--td-component-stroke, #dcdcdc)!important;color:var(--td-text-color-secondary, #666666)!important;background:transparent!important;transition:all .2s ease!important}.storyboard-editor__add-btn:hover{border-color:var(--td-brand-color, #f39c12)!important;color:var(--td-brand-color, #f39c12)!important;background:#f39c120a!important}.storyboard-editor__add-btn:active{background:#f39c1214!important}.storyboard-editor .t-switch{flex-shrink:0}.scene-prompt-input{position:relative;width:100%}.scene-prompt-input__textarea{width:100%;min-height:72px;padding:10px 12px;font-size:13px;line-height:1.6;color:var(--td-text-color-primary, #000000);background:var(--td-bg-color-secondarycontainer, #f9f9f9);border:1px solid var(--td-component-stroke, #e7e7e7);border-radius:8px;resize:none;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;box-sizing:border-box}.scene-prompt-input__textarea:hover:not(:disabled){border-color:var(--td-text-color-placeholder, #b8b8b8)}.scene-prompt-input__textarea:focus{border-color:var(--td-brand-color, #f39c12);box-shadow:0 0 0 2px #f39c121a;background:var(--td-bg-color-container, #ffffff)}.scene-prompt-input__textarea::-moz-placeholder{color:var(--td-text-color-placeholder, #b8b8b8)}.scene-prompt-input__textarea::placeholder{color:var(--td-text-color-placeholder, #b8b8b8)}.scene-prompt-input__textarea:disabled{opacity:.6;cursor:not-allowed}@keyframes sceneExpand{0%{opacity:.8;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.9)}}.reference-image-upload{outline:none;max-width:400px}.reference-image-upload--disabled{opacity:.6;pointer-events:none}.reference-image-upload__label{font-size:14px;font-weight:500;color:var(--td-text-color-primary, #333);margin-bottom:8px}.reference-image-upload__input{display:none}.reference-image-upload__placeholder{display:flex;align-items:center;justify-content:center;min-height:100px;padding:16px;border:2px dashed var(--td-component-border, #dcdcdc);border-radius:8px;background:var(--td-bg-color-container, #fff);transition:all .2s ease;cursor:default}.reference-image-upload__placeholder:hover{border-color:var(--td-brand-color-hover, #4787f0);background:var(--td-bg-color-container-hover, #f9f9f9)}.reference-image-upload__placeholder--dragging{border-color:var(--td-brand-color, #0052d9);background:var(--td-brand-color-light, #e6f4ff);border-style:solid}.reference-image-upload__buttons{display:flex;flex-direction:column;gap:8px;width:100%;max-width:120px}.reference-image-upload__btn,.reference-image-upload__slot-btn{width:100%;justify-content:center;height:32px;border-width:1px;font-size:13px!important;font-weight:400!important;font-family:inherit!important}.reference-image-upload__btn svg,.reference-image-upload__slot-btn svg{width:16px!important;height:16px!important;flex-shrink:0}.reference-image-upload__btn:hover:not(:disabled),.reference-image-upload__slot-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #0052d926}.reference-image-upload__btn:active:not(:disabled),.reference-image-upload__slot-btn:active:not(:disabled){transform:translateY(0)}.reference-image-upload__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.reference-image-upload__single{display:flex;gap:12px;align-items:flex-start}.reference-image-upload__replace{flex:1;min-width:120px}.reference-image-upload__preview{position:relative;width:100px;height:100px;border-radius:8px;overflow:hidden;border:1px solid var(--td-component-border, #e7e7e7);background:var(--td-bg-color-secondarycontainer, #f5f5f5)}.reference-image-upload__preview:hover .reference-image-upload__remove{opacity:1}.reference-image-upload__image{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.reference-image-upload__hover-preview{position:fixed;z-index:10000;pointer-events:none;max-width:300px;max-height:300px;padding:4px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #0003;border:1px solid #e7e7e7}.reference-image-upload__hover-preview img{display:block;max-width:100%;max-height:292px;border-radius:4px;-o-object-fit:contain;object-fit:contain}.reference-image-upload__remove{position:absolute;top:4px;right:4px;width:22px;height:22px;border:none;border-radius:50%;background:#0009;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease}.reference-image-upload__remove:hover:not(:disabled){background:var(--td-error-color, #e34d59);transform:scale(1.1)}.reference-image-upload__remove:disabled{cursor:not-allowed}.reference-image-upload__slots{display:flex;gap:16px;flex-wrap:wrap}.reference-image-upload__slot{display:flex;flex-direction:column;gap:6px;flex:1;min-width:120px;max-width:160px}.reference-image-upload__slot-title{font-size:12px;font-weight:500;color:var(--td-text-color-secondary, #666);text-align:center}.reference-image-upload__slot-placeholder{display:flex;align-items:center;justify-content:center;min-height:100px;padding:12px;border:2px dashed var(--td-component-border, #dcdcdc);border-radius:8px;background:var(--td-bg-color-container, #fff);transition:all .2s ease}.reference-image-upload__slot-placeholder:hover{border-color:var(--td-brand-color-hover, #4787f0);background:var(--td-bg-color-container-hover, #f9f9f9)}.reference-image-upload__slot-placeholder--dragging{border-color:var(--td-brand-color, #0052d9);background:var(--td-brand-color-light, #e6f4ff);border-style:solid}.reference-image-upload__slot-buttons{display:flex;flex-direction:column;gap:6px;width:100%}.reference-image-upload__slot-label{position:absolute;bottom:0;left:0;right:0;padding:4px;background:#0009;color:#fff;font-size:11px;text-align:center}.reference-image-upload,.reference-image-upload *{color-scheme:light}.reference-image-upload__label{color:#333!important}.reference-image-upload__placeholder{background:#fff!important;border-color:#dcdcdc!important}.reference-image-upload__placeholder:hover{border-color:#4787f0!important;background:#f9f9f9!important}.reference-image-upload__placeholder--dragging{border-color:#0052d9!important;background:#e6f4ff!important}.reference-image-upload__slot-placeholder{background:#fff!important;border-color:#dcdcdc!important}.reference-image-upload__slot-placeholder:hover{border-color:#4787f0!important;background:#f9f9f9!important}.reference-image-upload__slot-placeholder--dragging{border-color:#0052d9!important;background:#e6f4ff!important}.reference-image-upload__slot-title{color:#666!important}.reference-image-upload__preview{border-color:#e7e7e7!important;background:#f5f5f5!important}.resizable-divider{position:relative;display:flex;align-items:flex-end;justify-content:center;width:12px;min-width:12px;height:100%;cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;z-index:10;padding-bottom:12px}.resizable-divider:hover .resizable-divider__bar,.resizable-divider.is-dragging .resizable-divider__bar{background:var(--color-primary, #f39c12);opacity:.8;width:3px}.resizable-divider.is-dragging .resizable-divider__bar{opacity:1}.resizable-divider.is-collapsed{cursor:default;width:16px;min-width:16px}.resizable-divider.is-collapsed .resizable-divider__bar{display:none}.resizable-divider.is-disabled{cursor:not-allowed;pointer-events:none;opacity:.5}.resizable-divider__bar{position:absolute;left:50%;transform:translate(-50%);width:2px;height:100%;background:var(--color-border-light, #e8e8e8);border-radius:1px;transition:background .2s ease,opacity .2s ease,width .15s ease}.resizable-divider__toggle{position:relative;display:flex;align-items:center;justify-content:center;width:16px;height:28px;background:var(--color-bg-container, #fff);border:1px solid var(--color-border-light, #e8e8e8);border-radius:3px;cursor:pointer;transition:all .2s ease;color:var(--color-text-placeholder, #bbb);z-index:11;opacity:.6}.resizable-divider__toggle:hover{background:var(--color-bg-secondary, #f5f5f5);border-color:var(--color-primary, #f39c12);color:var(--color-primary, #f39c12);opacity:1}.resizable-divider__toggle:active{transform:scale(.95)}.resizable-divider.is-collapsed .resizable-divider__toggle{opacity:.8;color:var(--color-text-secondary, #999)}@media(max-width:768px){.resizable-divider{display:none}}
@@ -0,0 +1 @@
1
+ function o(e){for(var c=e.length/6|0,n=new Array(c),a=0;a<c;)n[a]="#"+e.slice(a*6,++a*6);return n}const r=o("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");export{r as s};
@@ -0,0 +1 @@
1
+ function o(e){for(var c=e.length/6|0,n=new Array(c),a=0;a<c;)n[a]="#"+e.slice(a*6,++a*6);return n}const r=o("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");export{r as s};