aitu-app 0.6.39 → 0.6.41

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 (197) hide show
  1. package/README.md +3 -3
  2. package/assets/{AudioTrackList-CQEd1SE2.js → AudioTrackList-BtCRG0W9.js} +1 -1
  3. package/assets/{BaseDrawer-F3GT0wol.js → BaseDrawer-D3uMjiL3.js} +1 -1
  4. package/assets/{CanvasAudioPlayer-BzrQPq21.js → CanvasAudioPlayer-UVBRzAXF.js} +2 -2
  5. package/assets/{ChatMessagesArea-BVWuc832.js → ChatMessagesArea-DJejf06U.js} +2 -2
  6. package/assets/{DeferredMediaLibraryModal-CIs0-iBb.js → DeferredMediaLibraryModal-DcsXW5VN.js} +1 -1
  7. package/assets/{DeferredSyncSettings-CYz23NFv.js → DeferredSyncSettings-CyaQpm3i.js} +1 -1
  8. package/assets/{DrawnixDeferredFeatures-D5KdFjk7.js → DrawnixDeferredFeatures-Dn7Xj0Z3.js} +1 -1
  9. package/assets/DrawnixDeferredRuntime-IAIlHrj-.js +2 -0
  10. package/assets/{FrameSlideshow-B5Sqi_uV.js → FrameSlideshow-BoTtxoO1.js} +1 -1
  11. package/assets/{KnowledgeBaseContent-CmYEJ68E.js → KnowledgeBaseContent-H9TbTJvp.js} +3 -3
  12. package/assets/{MVCreator-CiekRLRL.js → MVCreator-aXPJyopn.js} +1 -1
  13. package/assets/{MediaViewer-CSkzdABU.js → MediaViewer-DzoUeXBR.js} +1 -1
  14. package/assets/{ModelBenchmarkWorkbench-Cg3ZArhL.js → ModelBenchmarkWorkbench-BwWtsodh.js} +1 -1
  15. package/assets/{MusicAnalyzer-DKddmB8C.js → MusicAnalyzer-CDvA6t6F.js} +1 -1
  16. package/assets/{MusicAnalyzer-Ch6kc-VC.js → MusicAnalyzer-dSwp-5u_.js} +1 -1
  17. package/assets/{PerformancePanel-CG1_1lC_.js → PerformancePanel-DzTs2p1S.js} +1 -1
  18. package/assets/{ProjectDrawer-B05H2n8S.js → ProjectDrawer-DewT6n4a.js} +1 -1
  19. package/assets/{ResizableDivider-3ZzTVK5M.js → ResizableDivider-C2cq_TjJ.js} +1 -1
  20. package/assets/TaskQueuePanel-BeApAqO9.js +33 -0
  21. package/assets/{ToolWinBoxManager-CX4BFjZL.js → ToolWinBoxManager-Soe0apvc.js} +1 -1
  22. package/assets/{ToolboxDrawer-DVxfQUMA.js → ToolboxDrawer-Btme0xvj.js} +1 -1
  23. package/assets/{VideoAnalyzer-BZLeASAQ.js → VideoAnalyzer-CuzOgGcP.js} +1 -1
  24. package/assets/{_baseFlatten-DHT6_8EL.js → _baseFlatten-BCqnPdEZ.js} +1 -1
  25. package/assets/{_baseUnset-Cb5y6_CP.js → _baseUnset-CvjcxnsS.js} +1 -1
  26. package/assets/_flatRest-rR2Z0C6Y.js +1 -0
  27. package/assets/{ai-analyze-BvjohIET.js → ai-analyze-X7h-GOWX.js} +1 -1
  28. package/assets/{arc-wiKe35BQ.js → arc-DXO039Xm.js} +1 -1
  29. package/assets/{arc-8k3RC1rL.js → arc-pfqxEt0t.js} +1 -1
  30. package/assets/{backup-restore-dialog-Cyxi_Y_l.js → backup-restore-dialog-BtB57ttG.js} +1 -1
  31. package/assets/{batch-image-generation-7zLsAOoI.js → batch-image-generation-D-i-Clb3.js} +1 -1
  32. package/assets/{blockDiagram-38ab4fdb-C1eTyro1.js → blockDiagram-38ab4fdb-DaJgeJH3.js} +1 -1
  33. package/assets/{blockDiagram-38ab4fdb-B_Rlv1o7.js → blockDiagram-38ab4fdb-Ds5ygtJ4.js} +1 -1
  34. package/assets/{browser-BV_Vo8ib.js → browser-BanMklii.js} +1 -1
  35. package/assets/{c4Diagram-3d4e48cf-wWn-Dh3x.js → c4Diagram-3d4e48cf-DJiQAduw.js} +1 -1
  36. package/assets/{c4Diagram-3d4e48cf-DJ9zPKS5.js → c4Diagram-3d4e48cf-o7ZLfD1H.js} +1 -1
  37. package/assets/{canvas-search-C6q6eL16.js → canvas-search-B3cv-vBS.js} +1 -1
  38. package/assets/channel-B6SjUS7J.js +1 -0
  39. package/assets/channel-DmO21CjN.js +1 -0
  40. package/assets/{character-api-service-C-_8TuNT.js → character-api-service-Z5lj969r.js} +1 -1
  41. package/assets/{character-storage-service-C2yg9sZZ.js → character-storage-service-C15hxlXu.js} +1 -1
  42. package/assets/{chevron-right-Dz5PrqD9.js → chevron-right-JQJ6nsCM.js} +1 -1
  43. package/assets/{classDiagram-70f12bd4-ZR7RlD8j.js → classDiagram-70f12bd4-BuujyQDs.js} +1 -1
  44. package/assets/{classDiagram-70f12bd4-C98UuGfZ.js → classDiagram-70f12bd4-Ck4-oQ5D.js} +1 -1
  45. package/assets/{classDiagram-v2-f2320105-CRHLGmlc.js → classDiagram-v2-f2320105-DoNQx5aA.js} +1 -1
  46. package/assets/{classDiagram-v2-f2320105-DwdJcJnt.js → classDiagram-v2-f2320105-Dv6Fyw1T.js} +1 -1
  47. package/assets/{clipper-C-3Qh_LP.js → clipper-Mxx-YtU_.js} +1 -1
  48. package/assets/clone-B5TrWxil.js +1 -0
  49. package/assets/clone-BtBg_52f.js +1 -0
  50. package/assets/{cloud-upload-CUOtugCp.js → cloud-upload-BPCicte3.js} +1 -1
  51. package/assets/{command-palette-CFAIZcMn.js → command-palette-DtjyZO1K.js} +1 -1
  52. package/assets/{createText-2e5e7dd3-D5vBY76-.js → createText-2e5e7dd3-C1lbpLn5.js} +1 -1
  53. package/assets/{createText-2e5e7dd3-tEJFXclV.js → createText-2e5e7dd3-zEue2anl.js} +1 -1
  54. package/assets/{download-hxWX9Zug.js → download-DYHFFs_D.js} +1 -1
  55. package/assets/{edges-e0da2a9e-CZg0dJ7e.js → edges-e0da2a9e-6TFI6ri7.js} +1 -1
  56. package/assets/{edges-e0da2a9e-DdZcggFY.js → edges-e0da2a9e-DLDhf7N7.js} +1 -1
  57. package/assets/{erDiagram-9861fffd-Bmy_l1e2.js → erDiagram-9861fffd-BwNvQade.js} +1 -1
  58. package/assets/{erDiagram-9861fffd-BST5k6B4.js → erDiagram-9861fffd-D8gvypkQ.js} +1 -1
  59. package/assets/{flowDb-956e92f1-C1e0_b4D.js → flowDb-956e92f1-BjoO9lX3.js} +1 -1
  60. package/assets/{flowDb-956e92f1-DSmVZJdU.js → flowDb-956e92f1-DThEumt2.js} +1 -1
  61. package/assets/{flowDiagram-66a62f08-CGUWQVBs.js → flowDiagram-66a62f08-D_3eV3FW.js} +1 -1
  62. package/assets/{flowDiagram-66a62f08-DhtZQo8y.js → flowDiagram-66a62f08-Djar-0xH.js} +1 -1
  63. package/assets/flowDiagram-v2-96b9c2cf-D_o_l8mf.js +1 -0
  64. package/assets/flowDiagram-v2-96b9c2cf-DlX4O43J.js +1 -0
  65. package/assets/{flowchart-elk-definition-4a651766-3gPCxf8A.js → flowchart-elk-definition-4a651766-DRuIOBj4.js} +1 -1
  66. package/assets/{flowchart-elk-definition-4a651766-CHnG4qQD.js → flowchart-elk-definition-4a651766-jtxteXv9.js} +1 -1
  67. package/assets/{ganttDiagram-c361ad54-CdFUB0PH.js → ganttDiagram-c361ad54-CMUm4MNv.js} +1 -1
  68. package/assets/{ganttDiagram-c361ad54-BGYuN1kY.js → ganttDiagram-c361ad54-DHKw9_fl.js} +1 -1
  69. package/assets/{gitGraphDiagram-72cf32ee-89Sf2o_5.js → gitGraphDiagram-72cf32ee-BQLvVnfS.js} +1 -1
  70. package/assets/{gitGraphDiagram-72cf32ee-DmC20udR.js → gitGraphDiagram-72cf32ee-Bbv0LiBu.js} +1 -1
  71. package/assets/{graph-B7_YBdiF.js → graph-BrEvzXkm.js} +1 -1
  72. package/assets/{graph-czHcr1bG.js → graph-DjrCCbgI.js} +1 -1
  73. package/assets/{grid-image-BuvvMKxR.js → grid-image-CveytoVB.js} +1 -1
  74. package/assets/{has-aqa_Fwg4.js → has-CvGtAZQx.js} +1 -1
  75. package/assets/{hasIn-BDL07gxd.js → hasIn-nbpeC_Rj.js} +1 -1
  76. package/assets/{image-C--jLg-o.js → image-C9vXAEOB.js} +1 -1
  77. package/assets/{index-3862675e-dB13VUjK.js → index-3862675e-BPi9rMHp.js} +1 -1
  78. package/assets/{index-3862675e-DqCaYyno.js → index-3862675e-C7dRX1tW.js} +1 -1
  79. package/assets/{index-AlmVCHjU.js → index-9VQ_keH7.js} +1 -1
  80. package/assets/{index-B0oVxHhb.js → index-9eZTYsQ4.js} +1 -1
  81. package/assets/{index-BcO0jvMY.js → index-B4YlucHs.js} +3 -3
  82. package/assets/{index-H0kbbmQa.js → index-B9_izWqT.js} +1 -1
  83. package/assets/{index-Dh9eNp-v.js → index-BNDRjX-d.js} +1 -1
  84. package/assets/{index-BMU-_5bW.js → index-BPqPzEbH.js} +1 -1
  85. package/assets/{index-NgLyuYs6.js → index-BjfO-2FL.js} +1 -1
  86. package/assets/{index-Dn-qqFRl.js → index-BkVG2Gm-.js} +1 -1
  87. package/assets/{index-CGAblvb-.js → index-Bl3dSmrt.js} +1 -1
  88. package/assets/{index-BDQbV2jT.js → index-C-CsfKtF.js} +1 -1
  89. package/assets/{index-Cp9T70tQ.js → index-CD9kyN2v.js} +1 -1
  90. package/assets/{index-DClRjyu_.js → index-CEceAxXa.js} +1 -1
  91. package/assets/{index-DsUayqw4.js → index-CRwF9kqw.js} +1 -1
  92. package/assets/{index-BMDx01aS.js → index-CXL-MAju.js} +1 -1
  93. package/assets/{index-DO8EqZSl.js → index-CbaLEWkX.js} +1 -1
  94. package/assets/{index-B159qVyk.js → index-CexfuLbX.js} +2 -2
  95. package/assets/{index-B12ExW-F.js → index-CjN5gXVP.js} +1 -1
  96. package/assets/{index-D63ClKwx.js → index-Cpw9Vij_.js} +1 -1
  97. package/assets/{index-CkSVbc7G.js → index-CuwHJJO4.js} +1 -1
  98. package/assets/{index-DXQDvWCm.js → index-Cw2YKg1X.js} +1 -1
  99. package/assets/{index-CDzl3czx.js → index-CwNwP9Dz.js} +1 -1
  100. package/assets/{index-BzXnlXkO.js → index-D04A0IqG.js} +1 -1
  101. package/assets/{index-BrfFsgde.js → index-D3yA2Deq.js} +1 -1
  102. package/assets/{index-CLp1N2JZ.js → index-D5YSioyv.js} +446 -445
  103. package/assets/{index-C9YPl9-V.js → index-D5e1IjmG.js} +1 -1
  104. package/assets/{index-69uVWCdC.js → index-D6CsrbT9.js} +1 -1
  105. package/assets/{index-Bp7QPVjC.js → index-DGEeQ7HV.js} +1 -1
  106. package/assets/{index-CS5gukgf.js → index-DI85grSr.js} +1 -1
  107. package/assets/{index-lHFn9fJk.js → index-DT5jCbGv.js} +1 -1
  108. package/assets/{index-DZczd-Cs.js → index-DVeMBRmh.js} +1 -1
  109. package/assets/{index-CL20-Lcn.js → index-DVmfYR4F.js} +1 -1
  110. package/assets/{index-w5pQgeYM.js → index-Dl7bI3dX.js} +1 -1
  111. package/assets/{index-BtAZEAqz.js → index-DrbRZzbV.js} +1 -1
  112. package/assets/{index-B9-Ksy1Y.js → index-DurJrENV.js} +1 -1
  113. package/assets/{index-DOf52awh.js → index-DuziGvh-.js} +1 -1
  114. package/assets/{index-B_74mOb3.js → index-DvHo6b9D.js} +1 -1
  115. package/assets/{index-MJpNPXv1.js → index-JUrStxAi.js} +1 -1
  116. package/assets/{index-DQzqI7bu.js → index-adb9JY8F.js} +1 -1
  117. package/assets/{index-ByZKBjmp.js → index-ahgk9PwY.js} +1 -1
  118. package/assets/{index-CJoYIJX6.js → index-iluEOi_R.js} +1 -1
  119. package/assets/{index-C2BjB9jD.js → index-mLaJnBAA.js} +1 -1
  120. package/assets/{index-Cci1CSF_.js → index-oOX-Ov_6.js} +1 -1
  121. package/assets/{index-DRtMRiLt.js → index-rRAjaCK6.js} +1 -1
  122. package/assets/{infoDiagram-f8f76790-2cxTV6ND.js → infoDiagram-f8f76790-DrZHsJcU.js} +1 -1
  123. package/assets/{infoDiagram-f8f76790-ncuTC4ZY.js → infoDiagram-f8f76790-xt1FG5kQ.js} +1 -1
  124. package/assets/{inspiration-board-D82q1P-g.js → inspiration-board-BMLGXtqa.js} +1 -1
  125. package/assets/{isEmpty-B0mmAwLs.js → isEmpty-qhP_Neh1.js} +1 -1
  126. package/assets/{journeyDiagram-49397b02-DnlSIYWp.js → journeyDiagram-49397b02-BXRUGums.js} +1 -1
  127. package/assets/{journeyDiagram-49397b02-D8uY2urN.js → journeyDiagram-49397b02-HG6JHZLW.js} +1 -1
  128. package/assets/{layers-D8yoqIuj.js → layers-37JfnNNl.js} +1 -1
  129. package/assets/{layout-CNovTgcJ.js → layout-0pP-oOdd.js} +1 -1
  130. package/assets/{layout-a3RfPzuD.js → layout-DiM0C_oE.js} +1 -1
  131. package/assets/{line-CDzoo4WB.js → line-Cn0HzQ42.js} +1 -1
  132. package/assets/{line-DvT1zUiJ.js → line-mCdubqmQ.js} +1 -1
  133. package/assets/{linear-PVY0JHkj.js → linear-Bav735VS.js} +1 -1
  134. package/assets/{linear-DdU4qJ1G.js → linear-D-8dOoVw.js} +1 -1
  135. package/assets/{lock-on-CXR9jpJA.js → lock-on-Du4SUznS.js} +1 -1
  136. package/assets/{memoize-DRWJ2oTL.js → memoize-CUfUlF3P.js} +1 -1
  137. package/assets/{mermaid.core-DQGbcicL.js → mermaid.core-C90rcTNj.js} +3 -3
  138. package/assets/{mindmap-definition-fc14e90a-BsVSwvhh.js → mindmap-definition-fc14e90a-DrPVXCNG.js} +1 -1
  139. package/assets/{mindmap-definition-fc14e90a-nwzPUDis.js → mindmap-definition-fc14e90a-kvuxr1PD.js} +1 -1
  140. package/assets/{model-benchmark-launcher-mcvgVSuC.js → model-benchmark-launcher-D7-0vF6C.js} +1 -1
  141. package/assets/{move-DOixEjqO.js → move-CrZ5ZpJ2.js} +1 -1
  142. package/assets/{photo-wall-splitter-qUPnfBPY.js → photo-wall-splitter-DJyzIrKV.js} +1 -1
  143. package/assets/{pick-C6VtGb4t.js → pick-8ulasiIr.js} +1 -1
  144. package/assets/{pieDiagram-8a3498a8-9eGElA9h.js → pieDiagram-8a3498a8-BV4yujZi.js} +1 -1
  145. package/assets/{pieDiagram-8a3498a8-jvbiFkC_.js → pieDiagram-8a3498a8-COebT5dY.js} +1 -1
  146. package/assets/{quadrantDiagram-120e2f19-B78rPuqy.js → quadrantDiagram-120e2f19-D7Pf5tdd.js} +1 -1
  147. package/assets/{quadrantDiagram-120e2f19-BFZXHPpX.js → quadrantDiagram-120e2f19-DzzHIi2O.js} +1 -1
  148. package/assets/{refresh-Bh3E8vu6.js → refresh-DqZ7biGU.js} +1 -1
  149. package/assets/{requirementDiagram-deff3bca-Dwsj1NJQ.js → requirementDiagram-deff3bca-BBh4lHOB.js} +1 -1
  150. package/assets/{requirementDiagram-deff3bca-Dyve0zys.js → requirementDiagram-deff3bca-D4gYW6VD.js} +1 -1
  151. package/assets/{sankeyDiagram-04a897e0-Dqzsdxsz.js → sankeyDiagram-04a897e0-6qMEhCdC.js} +1 -1
  152. package/assets/{sankeyDiagram-04a897e0-BmtIc_Gd.js → sankeyDiagram-04a897e0-DZfZTWnU.js} +1 -1
  153. package/assets/{sequenceDiagram-704730f1-DynL_kQJ.js → sequenceDiagram-704730f1-CF1FgHNp.js} +1 -1
  154. package/assets/{sequenceDiagram-704730f1-B7x0Kpog.js → sequenceDiagram-704730f1-Ky4oD9iw.js} +1 -1
  155. package/assets/{settings-dialog-Sz7sfOrI.js → settings-dialog-DWewjQlv.js} +1 -1
  156. package/assets/{shard-sync-service-8YTrUOnK.js → shard-sync-service-DhnPeZid.js} +1 -1
  157. package/assets/{stateDiagram-587899a1-CJTsLZ1r.js → stateDiagram-587899a1-C8z4TA39.js} +1 -1
  158. package/assets/{stateDiagram-587899a1-DUJNQ1DY.js → stateDiagram-587899a1-DhG3pQnc.js} +1 -1
  159. package/assets/{stateDiagram-v2-d93cdb3a-CG_NTdTs.js → stateDiagram-v2-d93cdb3a-CZ40HHGj.js} +1 -1
  160. package/assets/{stateDiagram-v2-d93cdb3a-KVoAwaCx.js → stateDiagram-v2-d93cdb3a-WjPgMbps.js} +1 -1
  161. package/assets/{styles-6aaf32cf-DBt4ei8W.js → styles-6aaf32cf-BiffgEl9.js} +1 -1
  162. package/assets/{styles-6aaf32cf-Cba2lFIZ.js → styles-6aaf32cf-DvyqUWEr.js} +1 -1
  163. package/assets/{styles-9a916d00-DHlla0Yt.js → styles-9a916d00-FAscS3iZ.js} +1 -1
  164. package/assets/{styles-9a916d00-KLddCkwp.js → styles-9a916d00-L-cTkIzG.js} +1 -1
  165. package/assets/{styles-c10674c1-CRA4Rhbz.js → styles-c10674c1-CkrpQSst.js} +1 -1
  166. package/assets/{styles-c10674c1-COY2QM5h.js → styles-c10674c1-DEwIcJGE.js} +1 -1
  167. package/assets/{svgDrawCommon-08f97a94-g2Xfy9Cn.js → svgDrawCommon-08f97a94-ByDqcIPi.js} +1 -1
  168. package/assets/{svgDrawCommon-08f97a94-B-xiMCiD.js → svgDrawCommon-08f97a94-DuY5GSOk.js} +1 -1
  169. package/assets/{task.types-CLfkYpCd.js → task.types-CBk6eZLY.js} +1 -1
  170. package/assets/{throttle-rCTAR-V0.js → throttle-DggB2waX.js} +1 -1
  171. package/assets/{timeline-definition-85554ec2-K1ig-iz5.js → timeline-definition-85554ec2-D3RKFEj4.js} +1 -1
  172. package/assets/{timeline-definition-85554ec2-DzXbh9iM.js → timeline-definition-85554ec2-DScTS5ad.js} +1 -1
  173. package/assets/{ttd-dialog-DBgFfIa8.js → ttd-dialog-D0U4oJwF.js} +4 -4
  174. package/assets/{upload-DydsLM8-.js → upload-B9RKSZna.js} +1 -1
  175. package/assets/useCharacters-uSUTHHnh.js +6 -0
  176. package/assets/{version-update-prompt-BnY7MFFE.js → version-update-prompt-CN1vliv8.js} +1 -1
  177. package/assets/{video-UIyGGGOK.js → video-B4LwvF3Q.js} +1 -1
  178. package/assets/{video-recovery-service-DpIX-4Cn.js → video-recovery-service-QWvZ0c0j.js} +1 -1
  179. package/assets/{workflow-generation-utils-BFUZ8qwH.js → workflow-generation-utils-BOXsMshH.js} +2 -2
  180. package/assets/{xychartDiagram-e933f94c-DJXH3Qk3.js → xychartDiagram-e933f94c-8_HkrupM.js} +1 -1
  181. package/assets/{xychartDiagram-e933f94c-BHRiS9cZ.js → xychartDiagram-e933f94c-B6-zQO32.js} +1 -1
  182. package/changelog.json +30 -0
  183. package/idle-prefetch-manifest.json +2 -2
  184. package/package.json +1 -1
  185. package/precache-manifest.json +393 -393
  186. package/sw.js +1 -1
  187. package/version.json +5 -3
  188. package/assets/DrawnixDeferredRuntime-D-K_FUT-.js +0 -2
  189. package/assets/TaskQueuePanel-Dcg0DCDL.js +0 -33
  190. package/assets/_flatRest-CXdsvGPY.js +0 -1
  191. package/assets/channel-CBV8i3Jf.js +0 -1
  192. package/assets/channel-n9jkWJRh.js +0 -1
  193. package/assets/clone-DMkRnOiD.js +0 -1
  194. package/assets/clone-jEb1TSUN.js +0 -1
  195. package/assets/flowDiagram-v2-96b9c2cf-CAAw3p-z.js +0 -1
  196. package/assets/flowDiagram-v2-96b9c2cf-DVu2NCro.js +0 -1
  197. package/assets/useCharacters-B9XvF2GC.js +0 -6
@@ -1 +1 @@
1
- import{x as p,U as c}from"./index-CLp1N2JZ.js";const b=({visible:a,items:r,initialIndex:t=0,onClose:s,onIndexChange:x,showToolbar:h=!0,className:o="",showTitle:i=!0,videoAutoPlay:n=!0,videoLoop:l=!0})=>{const u=r.map((e,d)=>({id:`media-${d}`,url:e.url,type:e.type,title:e.title,alt:e.alt,posterUrl:e.posterUrl,duration:e.duration,prompt:e.prompt,tags:e.tags,artist:e.artist,album:e.album}));return p.jsxDEV(c,{visible:a,items:u,initialMode:"single",initialIndex:t,onClose:s,showThumbnails:r.length>1,className:o,showTitle:i,videoAutoPlay:n,videoLoop:l},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/shared/MediaViewer.tsx",lineNumber:93,columnNumber:5},void 0)};export{b as M};
1
+ import{x as p,U as c}from"./index-D5YSioyv.js";const b=({visible:a,items:r,initialIndex:t=0,onClose:s,onIndexChange:x,showToolbar:h=!0,className:o="",showTitle:i=!0,videoAutoPlay:n=!0,videoLoop:l=!0})=>{const u=r.map((e,d)=>({id:`media-${d}`,url:e.url,type:e.type,title:e.title,alt:e.alt,posterUrl:e.posterUrl,duration:e.duration,prompt:e.prompt,tags:e.tags,artist:e.artist,album:e.album}));return p.jsxDEV(c,{visible:a,items:u,initialMode:"single",initialIndex:t,onClose:s,showThumbnails:r.length>1,className:o,showTitle:i,videoAutoPlay:n,videoLoop:l},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/shared/MediaViewer.tsx",lineNumber:93,columnNumber:5},void 0)};export{b as M};
@@ -1,2 +1,2 @@
1
- import{b as i,I as ps,_ as ks,bE as fs,bF as Ns,bG as _,bH as L,K as xs,bI as T,bJ as we,bK as vs,bL as De,x as s,bM as gs,bN as ws,H as je,bO as js,bP as _s,bQ as _e,bR as Ms,bS as Me,O as Es,bT as ys,bU as Ds,bV as Bs}from"./index-CLp1N2JZ.js";import{b as Vs}from"./model-benchmark-launcher-mcvgVSuC.js";import{S as ee}from"./index-MJpNPXv1.js";import{I as Ss}from"./image-C--jLg-o.js";import{V as qs}from"./video-UIyGGGOK.js";import"./index-C9YPl9-V.js";import"./pick-C6VtGb4t.js";import"./_baseFlatten-DHT6_8EL.js";import"./memoize-DRWJ2oTL.js";import"./hasIn-BDL07gxd.js";import"./_flatRest-CXdsvGPY.js";function Ke(o,l){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);l&&(t=t.filter(function(u){return Object.getOwnPropertyDescriptor(o,u).enumerable})),n.push.apply(n,t)}return n}function Fe(o){for(var l=1;l<arguments.length;l++){var n=arguments[l]!=null?arguments[l]:{};l%2?Ke(Object(n),!0).forEach(function(t){ks(o,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach(function(t){Object.defineProperty(o,t,Object.getOwnPropertyDescriptor(n,t))})}return o}var Us={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M2 2L22 2L22 22L2 22L2 2ZM4 4L4 20L20 20L20 4L4 4ZM11 8.5L6 8.5V6.5L18 6.5V8.5L13 8.5V18H11V8.5Z"}}]},Je=i.forwardRef(function(o,l){return i.createElement(ps,Fe(Fe({},o),{},{id:"textbox",ref:l,icon:Us}))});Je.displayName="TextboxIcon";const se={text:"文本",image:"图片",video:"视频",audio:"音频"},re={"cross-provider":"跨供应商对比","cross-model":"多模型批测",custom:"自定义测试"},Is={"cross-provider":"锁定一个模型,横向比较不同供应商的稳定性、速度和效果差异。","cross-model":"锁定一个供应商,一次跑完同类模型,快速筛掉慢和差的型号。",custom:"手动编排供应商与模型组合,适合做定向复测和候选名单对比。"},Ws={speed:"速度优先",cost:"成本优先",balanced:"综合平衡","value-for-money":"性价比"},Ee={draft:"待启动",running:"测试中",completed:"已完成",partial:"部分失败",failed:"全部失败"},he={pending:"待测",running:"测试中",completed:"已完成",failed:"失败"},Cs=6,Ls=8,Ge=32e3;function oe(o){return o?new Date(o).toLocaleString("zh-CN",{hour12:!1}):""}function Ye(o){return o.length>Ge?`${o.slice(0,Ge-8)}...[截断]`:o}function K(o){return o?o.startsWith("data:")?"[内嵌数据已省略]":Ye(o):""}function As(o){return o!=null&&o.length?Ye(o.map(l=>K(l)).join(`
1
+ import{b as i,I as ps,_ as ks,bE as fs,bF as Ns,bG as _,bH as L,K as xs,bI as T,bJ as we,bK as vs,bL as De,x as s,bM as gs,bN as ws,H as je,bO as js,bP as _s,bQ as _e,bR as Ms,bS as Me,O as Es,bT as ys,bU as Ds,bV as Bs}from"./index-D5YSioyv.js";import{b as Vs}from"./model-benchmark-launcher-D7-0vF6C.js";import{S as ee}from"./index-JUrStxAi.js";import{I as Ss}from"./image-C9vXAEOB.js";import{V as qs}from"./video-B4LwvF3Q.js";import"./index-D5e1IjmG.js";import"./pick-8ulasiIr.js";import"./_baseFlatten-BCqnPdEZ.js";import"./memoize-CUfUlF3P.js";import"./hasIn-nbpeC_Rj.js";import"./_flatRest-rR2Z0C6Y.js";function Ke(o,l){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);l&&(t=t.filter(function(u){return Object.getOwnPropertyDescriptor(o,u).enumerable})),n.push.apply(n,t)}return n}function Fe(o){for(var l=1;l<arguments.length;l++){var n=arguments[l]!=null?arguments[l]:{};l%2?Ke(Object(n),!0).forEach(function(t){ks(o,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach(function(t){Object.defineProperty(o,t,Object.getOwnPropertyDescriptor(n,t))})}return o}var Us={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M2 2L22 2L22 22L2 22L2 2ZM4 4L4 20L20 20L20 4L4 4ZM11 8.5L6 8.5V6.5L18 6.5V8.5L13 8.5V18H11V8.5Z"}}]},Je=i.forwardRef(function(o,l){return i.createElement(ps,Fe(Fe({},o),{},{id:"textbox",ref:l,icon:Us}))});Je.displayName="TextboxIcon";const se={text:"文本",image:"图片",video:"视频",audio:"音频"},re={"cross-provider":"跨供应商对比","cross-model":"多模型批测",custom:"自定义测试"},Is={"cross-provider":"锁定一个模型,横向比较不同供应商的稳定性、速度和效果差异。","cross-model":"锁定一个供应商,一次跑完同类模型,快速筛掉慢和差的型号。",custom:"手动编排供应商与模型组合,适合做定向复测和候选名单对比。"},Ws={speed:"速度优先",cost:"成本优先",balanced:"综合平衡","value-for-money":"性价比"},Ee={draft:"待启动",running:"测试中",completed:"已完成",partial:"部分失败",failed:"全部失败"},he={pending:"待测",running:"测试中",completed:"已完成",failed:"失败"},Cs=6,Ls=8,Ge=32e3;function oe(o){return o?new Date(o).toLocaleString("zh-CN",{hour12:!1}):""}function Ye(o){return o.length>Ge?`${o.slice(0,Ge-8)}...[截断]`:o}function K(o){return o?o.startsWith("data:")?"[内嵌数据已省略]":Ye(o):""}function As(o){return o!=null&&o.length?Ye(o.map(l=>K(l)).join(`
2
2
  `)):""}function ze(o){return o?"是":"否"}function be(o){let l=0,n=0;return o.forEach(t=>{typeof t=="number"&&Number.isFinite(t)&&(l+=t,n+=1)}),n>0?Number((l/n).toFixed(2)):null}function Ps(o=new Date){const l=`${o.getFullYear()}${String(o.getMonth()+1).padStart(2,"0")}${String(o.getDate()).padStart(2,"0")}`,n=`${String(o.getHours()).padStart(2,"0")}${String(o.getMinutes()).padStart(2,"0")}${String(o.getSeconds()).padStart(2,"0")}`;return`model-benchmark-history_${l}_${n}.xlsx`}function ye(o){return o!==null}function Rs(o){return o.trim().toLowerCase().split(/\s+/).filter(Boolean)}function pe(o,l){const n=Rs(o);if(n.length===0)return!0;const t=l.filter(Boolean).join(" ").toLowerCase();return n.every(u=>t.includes(u))}function Ts(o){return o==="text"?"supportsText":o==="image"?"supportsImage":o==="video"?"supportsVideo":"supportsAudio"}function Qe(o,l){const n=Ts(l);return o.filter(t=>t.enabled&&(t.id===Ms||t.capabilities[n]))}function $s(){const[o,l]=i.useState(0);return i.useEffect(()=>De.subscribe(()=>{l(n=>n+1)}),[]),o}function Os(){const[o,l]=i.useState(()=>_e.get());return i.useEffect(()=>{const n=t=>{l(t)};return _e.addListener(n),()=>{_e.removeListener(n)}},[]),o}function ke(o){return!o||o<0?"--":o<1e3?`${o}ms`:`${(o/1e3).toFixed(o>=1e4?1:2)}s`}function Ks(o){const l=new Map;o.entries.forEach(t=>{var ne,b;const u=(ne=t.modelId)==null?void 0:ne.trim(),N=(b=t.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:t})=>{n.set(t,(n.get(t)||0)+1)}),Array.from(l.values()).map(({modelId:t,modelLabel:u})=>(n.get(u)||0)>1?`${u} · ${t}`:u)}function Xe(o){return o?o.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(o,l){const n=De.getState(o).models.filter(u=>u.type===l),t=new Map;return n.forEach(u=>{t.has(u.id)||t.set(u.id,u)}),Array.from(t.values())}function Ze(o){return o.shortLabel||o.label||o.id}function He(o){const l=Ze(o);return l===o.id?l:`${l} · ${o.id}`}function Fs(o,l){return`${o}::${l}`}function ar({}){const{confirm:o,confirmDialog:l}=fs(),n=Ns(Vs),t=Os(),u=$s(),[N,ne]=i.useState(()=>_.getState()),[b,Be]=i.useState("text"),[f,Ve]=i.useState("cross-provider"),[v,ae]=i.useState(""),[A,ie]=i.useState(""),[F,P]=i.useState([]),[G,z]=i.useState([]),[Q,X]=i.useState([]),[$,Gs]=i.useState(""),[O,zs]=i.useState(!1),[es,Se]=i.useState(L("text").id),[ce,fe]=i.useState(L("text").prompt),[qe,ss]=i.useState(2),[Ne,Ue]=i.useState(!1),[xe,rs]=i.useState("speed"),[ve,os]=i.useState(""),[le,ns]=i.useState("all"),Ie=i.useRef(""),S=i.useRef(!1),te=i.useRef(null);i.useRef({}),i.useEffect(()=>{const e=_.observe().subscribe(r=>{i.startTransition(()=>{ne(r)})});return()=>e.unsubscribe()},[]);const j=i.useMemo(()=>Qe(t,b),[b,t]),H=i.useMemo(()=>new Map(j.map(e=>[e.id,e])),[j]),D=v&&H.get(v)||null,as=xs.useCallback(async e=>{await o({title:"确认删除会话",description:`确定要删除会话「${e.title||"未命名会话"}」吗?此操作不可撤销。`,confirmText:"删除",cancelText:"取消",danger:!0})&&_.removeSession(e.id)},[o]),q=i.useMemo(()=>v?M(v,b):[],[u,b,v]),ge=i.useMemo(()=>{const e=new Map;return j.forEach(r=>{M(r.id,b).forEach(m=>{e.has(m.id)||e.set(m.id,m)})}),Array.from(e.values())},[j,u,b]),U=i.useMemo(()=>j.flatMap(e=>M(e.id,b).map(r=>T(e.id,e.name,r))),[j,u,b]);i.useEffect(()=>{if(S.current){console.debug("[Benchmark] reconcile profile/prompt: skipped (launchGuard)");return}if(!j.length){ae("");return}const e=L(b);Se(e.id),fe(r=>r===L("text").prompt||r===L("image").prompt||r===L("video").prompt||r===L("audio").prompt?e.prompt:r),(!v||!H.has(v))&&ae(j[0].id)},[j,b,H,v]),i.useEffect(()=>{if(S.current){console.debug("[Benchmark] reconcile modelIds: skipped (launchGuard)");return}const e=q.map(r=>r.id);if(e.length===0){P([]);return}P(r=>{const m=we(r,e,{fallback:"all"});return m!==r&&console.debug("[Benchmark] reconcile modelIds: changed",{from:r,to:m}),m})},[q]),i.useEffect(()=>{if(S.current){console.debug("[Benchmark] reconcile selectedModelId: skipped (launchGuard)");return}const e=ge.map(r=>r.id);if(e.length===0){ie("");return}e.includes(A)||ie(e[0])},[ge,A]);const R=i.useMemo(()=>A?j.map(e=>{const r=M(e.id,b).find(m=>m.id===A);return r?T(e.id,e.name,r):null}).filter(ye):[],[j,b,A]);i.useEffect(()=>{if(S.current){console.debug("[Benchmark] reconcile providerIds: skipped (launchGuard)");return}z(e=>we(e,R.map(r=>r.profileId),{fallback:"all"}))},[R]),i.useEffect(()=>{if(S.current){console.debug("[Benchmark] reconcile customKeys: skipped (launchGuard)");return}X(e=>we(e,U.map(r=>r.selectionKey),{fallback:"first",limit:Cs}))},[U]);const p=i.useMemo(()=>N.sessions.find(e=>e.id===N.activeSessionId)||null,[N.activeSessionId,N.sessions]),We=i.useMemo(()=>N.sessions.filter(e=>le!=="all"&&e.modality!==le?!1:pe(ve,[e.title,e.prompt,re[e.compareMode],se[e.modality],...e.entries.flatMap(r=>[r.profileName,r.profileId,r.modelLabel,r.modelId,r.vendor])])),[le,ve,N.sessions]);i.useEffect(()=>{p&&rs(p.rankingMode)},[p]);const is=i.useMemo(()=>Xe(p),[p]),cs=i.useMemo(()=>p?vs(p.entries,p.rankingMode):[],[p]),I=i.useMemo(()=>{if(f==="cross-provider")return R.filter(e=>G.includes(e.profileId));if(f==="cross-model"){if(!v)return[];const e=H.get(v);return e?q.filter(r=>F.includes(r.id)).map(r=>T(e.id,e.name,r)):[]}return U.filter(e=>Q.includes(e.selectionKey))},[q,f,R,U,H,Q,F,v,G]),Ce=i.useMemo(()=>{if(!p||p.modality!==b||p.compareMode!==f)return!1;const e=I.map(m=>m.selectionKey);if(e.length===0||p.entries.length!==e.length)return!1;const r=new Set(e);return p.entries.every(m=>r.has(m.selectionKey))},[p,f,b,I]),Le=i.useMemo(()=>p&&Ce?p.entries.map(e=>({key:e.selectionKey,modelLabel:e.modelLabel,profileName:e.profileName,badgeLabel:he[e.status]||he.pending})):I.map(e=>({key:e.selectionKey,modelLabel:e.modelLabel,profileName:e.profileName,badgeLabel:he.pending})),[p,Ce,I]),x=p,J=x?is:Xe(null),Ae=x?cs:[];Le.length,Le.slice(0,Ls);const E=Ae.find(e=>e.status==="completed")||null,Pe=i.useMemo(()=>q.filter(e=>{const r=F.includes(e.id);return O&&!r?!1:pe($,[Ze(e),e.id,D==null?void 0:D.name])}),[D==null?void 0:D.name,q,$,F,O]),Re=i.useMemo(()=>R.filter(e=>{const r=G.includes(e.profileId);return O&&!r?!1:pe($,[e.profileName,e.modelLabel,e.modelId,e.profileId])}),[R,$,G,O]),Te=i.useMemo(()=>U.filter(e=>{const r=Q.includes(e.selectionKey);return O&&!r?!1:pe($,[e.profileName,e.modelLabel,e.modelId,e.profileId])}),[U,$,Q,O]),me=i.useMemo(()=>f==="cross-model"?Pe.map(e=>e.id):f==="cross-provider"?Re.map(e=>e.profileId):Te.map(e=>e.selectionKey),[f,Pe,Re,Te]);i.useEffect(()=>{if(me.length===0){te.current=null;return}te.current&&me.includes(te.current)||(te.current=me[0])},[me]),i.useEffect(()=>{var Oe;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(Ie.current===e){console.debug("[Benchmark] useEffect: same signature, skip",{signature:e});return}const r=n.modality||"text",m=Qe(t,r),B=n.profileId||"",W=n.modelId||"",C=B?De.getState(B):null,de=B&&W?M(B,r):[],ue=!W||de.some(k=>k.id===W);if(C&&W&&!ue&&(C.status==="idle"||C.status==="loading")){console.debug("[Benchmark] useEffect: waiting for requested model discovery",{signature:e,requestedProfileId:B,requestedModelId:W,status:C.status,discoveryVersion:u});return}S.current=!0,Ie.current=e;const Y=n.compareMode||(n.modelId?"cross-provider":"cross-model");let w=Y,c=[];const a=n.profileId&&n.modelId?Fs(n.profileId,n.modelId):"";Y==="cross-provider"&&n.modelId&&(c=m.filter(k=>M(k.id,r).some(Z=>Z.id===n.modelId)).map(k=>k.id),c.length<=1&&(w="custom",console.debug("[Benchmark] cross-provider → custom downgrade",{modelId:n.modelId,matchingProviderIds:c}))),console.debug("[Benchmark] useEffect: applying initialRequest",{nextModality:r,nextCompareMode:w,requestedCompareMode:Y,profileId:n.profileId,modelId:n.modelId,profileCount:m.length,matchingProviderIds:c});const y=L(r);Be(r),Ve(w),Se(y.id),fe(y.prompt);const d=n.profileId||c[0]||((Oe=m[0])==null?void 0:Oe.id)||"";if(d&&ae(d),w==="cross-provider"&&n.modelId)ie(n.modelId),z(c);else if(w==="cross-model"&&n.modelId)P([n.modelId]);else if(w==="cross-model"&&!n.modelId&&d){const k=M(d,r);P(k.map(Z=>Z.id))}else w==="custom"&&a&&X([a]);const hs=window.setTimeout(()=>{let k;if(w==="cross-provider"&&n.modelId)k=m.map(h=>{const g=M(h.id,r).find(V=>V.id===n.modelId);return g?T(h.id,h.name,g):null}).filter(ye);else if(w==="cross-model"&&n.modelId){const h=m.find(g=>g.id===d);if(h){const g=M(h.id,r).find(V=>V.id===n.modelId);k=g?[T(h.id,h.name,g)]:[]}else k=[]}else if(w==="custom"){const h=m.find(g=>g.id===(n.profileId||d));if(h&&n.modelId){const g=M(h.id,r).find(V=>V.id===n.modelId);k=g?[T(h.id,h.name,g)]:[]}else k=[]}else{const h=d||v;h?k=M(h,r).map(g=>{const V=m.find(bs=>bs.id===h);return V?T(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(()=>{S.current=!1,console.debug("[Benchmark] guard released without autoRun")},0)});return}const Z=_.createSession({modality:r,compareMode:w,promptPresetId:y.id,prompt:y.prompt,rankingMode:xe,targets:k,source:"shortcut"});_.runSession(Z.id),requestAnimationFrame(()=>{setTimeout(()=>{S.current=!1,console.debug("[Benchmark] guard released")},0)})},120);return()=>{window.clearTimeout(hs)}},[u,n,t,xe,v,N.ready]);const ls=async()=>{if(I.length===0||!ce.trim())return;const e=_.createSession({modality:b,compareMode:f,promptPresetId:es,prompt:ce,rankingMode:xe,targets:I,source:"manual"});await _.runSession(e.id,qe)},ts=async()=>{if(Ne)return;const e=N.sessions;if(e.length===0){Me.warning("暂无历史会话可导出");return}Ue(!0);try{const r=await Es(()=>import("./xlsx-CkFp8p6R.js"),[],import.meta.url),m=e.flatMap(c=>c.entries.map(a=>({会话标题:c.title,会话ID:c.id,会话创建时间:oe(c.createdAt),模态:se[c.modality],对比方式:re[c.compareMode],会话状态:Ee[c.status],提示词预设:c.promptPresetId,提示词:K(c.prompt),供应商配置:a.profileName,供应商ID:a.profileId,模型名称:a.modelLabel,模型ID:a.modelId,厂商:a.vendor,选择Key:a.selectionKey,结果ID:a.id,结果状态:he[a.status],开始时间:oe(a.startedAt),首响时间:oe(a.firstResponseAt),完成时间:oe(a.completedAt),首响ms:a.firstResponseMs,总耗时ms:a.totalDurationMs,预估成本:a.estimatedCost,用户评分:a.userScore,已收藏:ze(a.favorite),已淘汰:ze(a.rejected),错误摘要:K(a.errorSummary),预览文本:K(a.preview.text),预览链接:K(a.preview.url),预览链接列表:As(a.preview.urls),预览格式:a.preview.format||"",预览时长:a.preview.duration??"",预览标题:K(a.preview.title)}))),B=new Map;e.forEach(c=>{c.entries.forEach(a=>{const y=`${c.modality}::${a.selectionKey}`,d=B.get(y)||{profileName:a.profileName,profileId:a.profileId,modelLabel:a.modelLabel,modelId:a.modelId,vendor:a.vendor,modality:se[c.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(c.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||c.updatedAt||c.createdAt),B.set(y,d)})});const W=Array.from(B.values()).map(c=>({供应商配置:c.profileName,供应商ID:c.profileId,模型名称:c.modelLabel,模型ID:c.modelId,厂商:c.vendor,模态:c.modality,选择Key:c.selectionKey,测试次数:c.count,涉及会话数:c.sessionIds.size,完成次数:c.completedCount,失败次数:c.failedCount,运行中次数:c.runningCount,待测次数:c.pendingCount,收藏次数:c.favoriteCount,淘汰次数:c.rejectedCount,平均首响ms:be(c.firstResponseValues),最快首响ms:c.firstResponseValues.length>0?Math.min(...c.firstResponseValues):null,平均总耗时ms:be(c.totalDurationValues),最快总耗时ms:c.totalDurationValues.length>0?Math.min(...c.totalDurationValues):null,平均成本:be(c.costValues),平均评分:be(c.scoreValues),最近测试时间:oe(c.latestAt)})).sort((c,a)=>{const y=(a.平均评分??-1)-(c.平均评分??-1);if(y!==0)return y;const d=(c.平均首响ms??Number.MAX_SAFE_INTEGER)-(a.平均首响ms??Number.MAX_SAFE_INTEGER);return d!==0?d:(c.平均成本??Number.MAX_SAFE_INTEGER)-(a.平均成本??Number.MAX_SAFE_INTEGER)}),C=r.utils.book_new(),de=r.utils.json_to_sheet(W),ue=r.utils.json_to_sheet(m);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}],r.utils.book_append_sheet(C,de,"模型汇总"),r.utils.book_append_sheet(C,ue,"原始结果");const Y=r.write(C,{bookType:"xlsx",type:"array"}),w=new Blob([Y],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});ys(w,Ps()),Me.success(`已导出 ${W.length} 个模型结果`)}catch(r){console.error("[ModelBenchmark] Excel export failed:",r),Me.error("导出 Excel 失败,请稍后重试")}finally{Ue(!1)}},ms=e=>{const r=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),r]},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),r]},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),r]},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),r]},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"?"加载失败":"暂无预览",r]},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"&&`${A||"未选择"}`;const ds=ge.map(e=>({label:He(e),value:e.id})),$e=R.map(e=>({label:`${e.profileName} · ${e.modelLabel}`,value:e.profileId})),us=[{label:"全部",value:"all",icon:s.jsxDEV(Ds,{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(Ss,{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(qs,{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(Bs,{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(Je,{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:ts,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(gs,{value:ve,onChange:os,placeholder:"搜索会话 / 模型 / 供应商",prefixIcon:s.jsxDEV(ws,{},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:us.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:()=>ns(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:We.length>0?We.map(e=>{const r=Ks(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:r.length>0?r.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:[re[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 as(e),"aria-label":`删除会话 ${e.title}`,children:s.jsxDEV(je,{content:"删除会话",showArrow:!1,children:s.jsxDEV("span",{children:s.jsxDEV(js,{},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(re).map(([e,r])=>s.jsxDEV(je,{content:Is[e],placement:"top",children:s.jsxDEV("button",{type:"button",className:f===e?"active":"",onClick:()=>Ve(e),children:r},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:A,options:ds,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:()=>P(q.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:()=>P([]),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:F,options:q.map(e=>({label:He(e),value:e.id})),placeholder:"多选要测试的模型 (已选即为批测队列)",onChange:e=>P(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:()=>X(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:()=>X([]),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:Q,options:U.map(e=>({label:`${e.profileName} · ${e.modelLabel}`,value:e.selectionKey})),placeholder:"手动编排供应商与模型组合",onChange:e=>X(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:qe,onChange:e=>{const r=e.target.value.replace(/\D/g,""),m=Number(r);ss(Math.min(10,Math.max(1,m||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:ls,disabled:!N.ready||I.length===0||!ce.trim(),children:["开始测试 (",I.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?re[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]," · ",Ws[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:Ae.map((e,r)=>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:["#",r+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 m=_s(e);return m===null?"—":`${m}/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:ms(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(m=>s.jsxDEV("button",{type:"button",className:`model-benchmark__score-chip ${e.userScore===m?"model-benchmark__score-chip--active":""}`,onClick:()=>_.setEntryFeedback(x.id,e.id,{userScore:e.userScore===m?null:m}),children:[m,"分"]},m,!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{ar as default};
@@ -1,4 +1,4 @@
1
- import{x as e,K as Be,ax as Le,b as s,d7 as ue,d8 as fe,c0 as se,cR as pe,d9 as $e,b$ as Ue,ab as L,da as Ke,ac as O,db as _e,dc as He,bX as Ye,dd as Oe,de as We,d3 as Ne,cZ as ge,df as ye,dg as Ve,dh as qe,di as Qe,dj as Re,dk as Xe,dl as Ze,dm as Je,dn as ea,dp as aa,c$ as ie,H as sa,bW as ia}from"./index-CLp1N2JZ.js";import{s as Pe,i as na,g as ra,a as ua}from"./MusicAnalyzer-Ch6kc-VC.js";import{c as be,f as la,s as ta}from"./VideoAnalyzer-BFgHFDkt.js";const Se=[{id:"create",label:"创作"},{id:"lyrics",label:"歌词"},{id:"generate",label:"生成"}],ca=({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 da(a){const n=a.name.split(".").pop();return n&&n.length<=8?Ce(n):Ce(a.type.split("/")[1])}async function ma(a,n){const u=da(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 oa(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 pa(a){return`${(a/1024/1024).toFixed(1)}MB`}function fa(){try{return sessionStorage.getItem(Ee)||""}catch{return""}}function Ie(a){try{if(a){sessionStorage.setItem(Ee,a);return}sessionStorage.removeItem(Ee)}catch{}}const Na=({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)||fa()),[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,ye()).modelId),[K,I]=s.useState(()=>ue(ve,ye()).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 oa(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 ma(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:crypto.randomUUID(),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 Ye(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",We(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:455,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:461,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:454,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:475,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:476,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:474,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:U,selectedSelectionKey:ge(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:478,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:473,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:491,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:490,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:493,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:489,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:472,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:506,columnNumber:15},void 0),p&&e.jsxDEV("span",{className:"ma-muted",children:pa(p.size)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:507,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:505,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:518,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:519,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:517,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:531,columnNumber:39},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:516,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:535,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:536,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:534,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:509,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:540,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:504,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:551,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:550,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:_,selectedSelectionKey:ge(_,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:553,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:549,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:503,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:573,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:574,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: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:578,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:580,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:581,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:583,columnNumber:19},void 0))]},void 0,!0,{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-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:588,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:586,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:592,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:600,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:603,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:604,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:602,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:612,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:613,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:611,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:621,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:622,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:620,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:601,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:599,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:577,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:568,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:640,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:641,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:642,columnNumber:33},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:639,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:648,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:657,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:658,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:661,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:668,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:656,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:646,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:469,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:452,columnNumber:5},void 0)},ke="music-analyzer:model",Te="gemini-2.5-pro",ga=({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=Qe(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()?`本轮改写要求:
1
+ import{x as e,K as Be,ax as Le,b as s,d7 as ue,d8 as fe,c0 as se,cR as pe,d9 as $e,b$ as Ue,ab as L,da as Ke,ac as O,db as _e,dc as He,bX as Ye,dd as Oe,de as We,d3 as Ne,cZ as ge,df as ye,dg as Ve,dh as qe,di as Qe,dj as Re,dk as Xe,dl as Ze,dm as Je,dn as ea,dp as aa,c$ as ie,H as sa,bW as ia}from"./index-D5YSioyv.js";import{s as Pe,i as na,g as ra,a as ua}from"./MusicAnalyzer-dSwp-5u_.js";import{c as be,f as la,s as ta}from"./VideoAnalyzer-BFgHFDkt.js";const Se=[{id:"create",label:"创作"},{id:"lyrics",label:"歌词"},{id:"generate",label:"生成"}],ca=({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 da(a){const n=a.name.split(".").pop();return n&&n.length<=8?Ce(n):Ce(a.type.split("/")[1])}async function ma(a,n){const u=da(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 oa(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 pa(a){return`${(a/1024/1024).toFixed(1)}MB`}function fa(){try{return sessionStorage.getItem(Ee)||""}catch{return""}}function Ie(a){try{if(a){sessionStorage.setItem(Ee,a);return}sessionStorage.removeItem(Ee)}catch{}}const Na=({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)||fa()),[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,ye()).modelId),[K,I]=s.useState(()=>ue(ve,ye()).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 oa(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 ma(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:crypto.randomUUID(),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 Ye(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",We(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:455,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:461,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:454,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:475,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:476,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:474,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:U,selectedSelectionKey:ge(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:478,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:473,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:491,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:490,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:493,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:489,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:472,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:506,columnNumber:15},void 0),p&&e.jsxDEV("span",{className:"ma-muted",children:pa(p.size)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:507,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:505,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:518,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:519,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:517,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:531,columnNumber:39},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:516,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:535,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:536,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:534,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:509,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:540,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:504,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:551,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:550,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:_,selectedSelectionKey:ge(_,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:553,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:549,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:503,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:573,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:574,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: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:578,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:580,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:581,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:583,columnNumber:19},void 0))]},void 0,!0,{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-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:588,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:586,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:592,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:600,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:603,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:604,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:602,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:612,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:613,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:611,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:621,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:622,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:620,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:601,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:599,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:577,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:568,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:640,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:641,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:642,columnNumber:33},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:639,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:648,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:657,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:658,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:661,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:668,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:656,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:646,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:469,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:452,columnNumber:5},void 0)},ke="music-analyzer:model",Te="gemini-2.5-pro",ga=({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=Qe(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
2
  ${c.trim()}`:"",_&&_!==c.trim()?`第一步创作提示词:
3
3
  ${_}`:"",g.trim()?`当前歌词草稿:
4
4
  ${g.trim()}`:""].filter(Boolean).join(`
@@ -1 +1 @@
1
- import{ac as m,bW as p,bX as G,bY as R,bZ as h,b_ as b,b$ as v,c0 as S}from"./index-CLp1N2JZ.js";import{u as D,r as U,a as x,e as O,b as P,p as $}from"./VideoAnalyzer-BFgHFDkt.js";function f(r){return Object.fromEntries(Object.entries(r).filter(([,t])=>t!==void 0))}function C(r){if(r.type!==m.AUDIO||r.status!=="completed"||!r.result)return[];const t=[],s=r.result;if(Array.isArray(s.clips))for(const n of s.clips)n.audioUrl&&t.push(f({clipId:n.clipId||n.id||"",audioUrl:n.audioUrl,imageUrl:n.imageUrl||n.imageLargeUrl,title:n.title,duration:n.duration??null,taskId:s.providerTaskId||r.remoteId||r.id}));return t.length===0&&s.url&&t.push(f({clipId:s.primaryClipId||"",audioUrl:s.url,imageUrl:s.previewImageUrl,title:s.title,duration:s.duration??null,taskId:s.providerTaskId||r.remoteId||r.id})),t}function w(r){const t=String(r.clipId||"").trim();return t?`clip:${t}`:`audio:${r.audioUrl}`}function j(r,t){const s=new Map;r.forEach(e=>{s.set(w(e),e)});let n=!1;return t.forEach(e=>{const i=w(e),a=s.get(i);if(!a){s.set(i,f(e)),n=!0;return}const c=f({...a,taskId:e.taskId||a.taskId,clipId:e.clipId||a.clipId,audioUrl:e.audioUrl||a.audioUrl,imageUrl:e.imageUrl??a.imageUrl,title:e.title??a.title,duration:e.duration??a.duration});JSON.stringify(f(a))!==JSON.stringify(c)&&(s.set(i,c),n=!0)}),{clips:Array.from(s.values()),changed:n}}async function B(r,t,s){if(r.type!==m.AUDIO||r.status!=="completed")return null;const n=C(r);if(n.length===0)return null;const e=await s.loadRecords(),i=e.find(c=>c.id===t);if(!i)return null;const a=j(i.generatedClips||[],n);return a.changed?D(i,{generatedClips:a.clips},s.updateRecord):{records:e,record:i}}function z(r){return P(r,"musicAnalyzerAction",["analyze","rewrite","lyrics-gen"])}function E(r){return $(r,{missingMessage:"分析任务缺少结果内容",fromStructured:t=>v(t)})}function F(r){const t=r.params.musicAnalyzerSourceSnapshot;return(t==null?void 0:t.type)==="upload"?t:null}function L(r){var s;const t=(s=r.result)==null?void 0:s.analysisData;return!t||typeof t!="object"||typeof t.lyricsDraft!="string"&&typeof t.title!="string"&&!Array.isArray(t.styleTags)?null:{title:String(t.title||"").trim(),styleTags:Array.isArray(t.styleTags)?t.styleTags.map(n=>String(n||"").trim()).filter(Boolean):[],lyricsDraft:String(t.lyricsDraft||"").trim()}}async function W(r){if(r.status!=="completed")return null;const t=z(r);if(!t)return null;if(t==="analyze"){const u=await p(),I=u.find(A=>A.analyzeTaskId===r.id);if(I)return{records:u,record:I};const l=E(r),o=F(r),d=String(r.params.musicAnalyzerSourceLabel||(o==null?void 0:o.fileName)||"本地音频").trim(),y={id:crypto.randomUUID(),createdAt:Date.now(),source:"upload",sourceLabel:d,sourceSnapshot:o,analysisModel:String(r.params.model||""),analysisModelRef:r.params.modelRef||null,analysis:l,styleTags:l.sunoStyleTags.length>0?l.sunoStyleTags:l.genreTags,title:l.sunoTitle||l.titleSuggestions[0]||d.replace(/\.[^.]+$/,""),lyricsDraft:l.sunoLyricsDraft||"",analyzeTaskId:r.id,starred:!1};return{records:await G(y),record:y}}if(t==="lyrics-gen"){const u=U(r,"musicAnalyzerRecordId");if(!u)return null;const l=(await p()).find(M=>M.id===u);if(!l||l.pendingLyricsGenTaskId!==r.id)return null;const o=J(r),d=(o==null?void 0:o.title)||l.title||"",y=o&&o.styleTags.length>0?o.styleTags:l.styleTags||[],g=(o==null?void 0:o.lyricsDraft)||l.lyricsDraft||"",A=o?R({...l,title:d,styleTags:y,lyricsDraft:g},h({...l,title:d,styleTags:y,lyricsDraft:g},r.type===m.CHAT?"AI 草稿":"Suno 歌词",l.creationPrompt)):{};return D(l,{title:d,styleTags:y,lyricsDraft:g,...A,pendingLyricsGenTaskId:null},S)}const s=U(r,"musicAnalyzerRecordId");if(!s)return null;const e=(await p()).find(u=>u.id===s);if(!e||e.pendingRewriteTaskId!==r.id)return null;const i=L(r)||b(x(r)),a=(e.lyricsVersions||[]).length,c=h({...e,title:i.title||e.title,styleTags:i.styleTags.length>0?i.styleTags:e.styleTags,lyricsDraft:i.lyricsDraft||e.lyricsDraft},`AI 改写 #${a+1}`,e.rewritePrompt),T=R(e,c);return D(e,{title:i.title||e.title,styleTags:i.styleTags.length>0?i.styleTags:e.styleTags,lyricsDraft:i.lyricsDraft||e.lyricsDraft,pendingRewriteTaskId:null,...T},S)}function J(r){const t=r.result;if(!t)return null;const s=L(r);if(s)return s;const n=x(r);if(n)try{return b(n)}catch{}const e=t.lyricsText||"",i=t.lyricsTitle||t.title||"",a=t.lyricsTags;if(!e&&!i)return null;const c=Array.isArray(a)?a.map(T=>String(T||"").trim()).filter(Boolean):[];return{title:String(i).trim(),styleTags:c,lyricsDraft:String(e).trim()}}function _(r){return C(r)}async function H(r,t){return B(r,t,{loadRecords:p,updateRecord:S})}function K(r){return z(r)!==null}function X(r){if(r.type!==m.AUDIO)return null;const t=r.params.batchId;return t?O(t,{prefix:"ma_"}):null}export{H as a,B as b,_ as e,X as g,K as i,W as s};
1
+ import{ac as m,bW as p,bX as G,bY as R,bZ as h,b_ as b,b$ as v,c0 as S}from"./index-D5YSioyv.js";import{u as D,r as U,a as x,e as O,b as P,p as $}from"./VideoAnalyzer-BFgHFDkt.js";function f(r){return Object.fromEntries(Object.entries(r).filter(([,t])=>t!==void 0))}function C(r){if(r.type!==m.AUDIO||r.status!=="completed"||!r.result)return[];const t=[],s=r.result;if(Array.isArray(s.clips))for(const n of s.clips)n.audioUrl&&t.push(f({clipId:n.clipId||n.id||"",audioUrl:n.audioUrl,imageUrl:n.imageUrl||n.imageLargeUrl,title:n.title,duration:n.duration??null,taskId:s.providerTaskId||r.remoteId||r.id}));return t.length===0&&s.url&&t.push(f({clipId:s.primaryClipId||"",audioUrl:s.url,imageUrl:s.previewImageUrl,title:s.title,duration:s.duration??null,taskId:s.providerTaskId||r.remoteId||r.id})),t}function w(r){const t=String(r.clipId||"").trim();return t?`clip:${t}`:`audio:${r.audioUrl}`}function j(r,t){const s=new Map;r.forEach(e=>{s.set(w(e),e)});let n=!1;return t.forEach(e=>{const i=w(e),a=s.get(i);if(!a){s.set(i,f(e)),n=!0;return}const c=f({...a,taskId:e.taskId||a.taskId,clipId:e.clipId||a.clipId,audioUrl:e.audioUrl||a.audioUrl,imageUrl:e.imageUrl??a.imageUrl,title:e.title??a.title,duration:e.duration??a.duration});JSON.stringify(f(a))!==JSON.stringify(c)&&(s.set(i,c),n=!0)}),{clips:Array.from(s.values()),changed:n}}async function B(r,t,s){if(r.type!==m.AUDIO||r.status!=="completed")return null;const n=C(r);if(n.length===0)return null;const e=await s.loadRecords(),i=e.find(c=>c.id===t);if(!i)return null;const a=j(i.generatedClips||[],n);return a.changed?D(i,{generatedClips:a.clips},s.updateRecord):{records:e,record:i}}function z(r){return P(r,"musicAnalyzerAction",["analyze","rewrite","lyrics-gen"])}function E(r){return $(r,{missingMessage:"分析任务缺少结果内容",fromStructured:t=>v(t)})}function F(r){const t=r.params.musicAnalyzerSourceSnapshot;return(t==null?void 0:t.type)==="upload"?t:null}function L(r){var s;const t=(s=r.result)==null?void 0:s.analysisData;return!t||typeof t!="object"||typeof t.lyricsDraft!="string"&&typeof t.title!="string"&&!Array.isArray(t.styleTags)?null:{title:String(t.title||"").trim(),styleTags:Array.isArray(t.styleTags)?t.styleTags.map(n=>String(n||"").trim()).filter(Boolean):[],lyricsDraft:String(t.lyricsDraft||"").trim()}}async function W(r){if(r.status!=="completed")return null;const t=z(r);if(!t)return null;if(t==="analyze"){const u=await p(),I=u.find(A=>A.analyzeTaskId===r.id);if(I)return{records:u,record:I};const l=E(r),o=F(r),d=String(r.params.musicAnalyzerSourceLabel||(o==null?void 0:o.fileName)||"本地音频").trim(),y={id:crypto.randomUUID(),createdAt:Date.now(),source:"upload",sourceLabel:d,sourceSnapshot:o,analysisModel:String(r.params.model||""),analysisModelRef:r.params.modelRef||null,analysis:l,styleTags:l.sunoStyleTags.length>0?l.sunoStyleTags:l.genreTags,title:l.sunoTitle||l.titleSuggestions[0]||d.replace(/\.[^.]+$/,""),lyricsDraft:l.sunoLyricsDraft||"",analyzeTaskId:r.id,starred:!1};return{records:await G(y),record:y}}if(t==="lyrics-gen"){const u=U(r,"musicAnalyzerRecordId");if(!u)return null;const l=(await p()).find(M=>M.id===u);if(!l||l.pendingLyricsGenTaskId!==r.id)return null;const o=J(r),d=(o==null?void 0:o.title)||l.title||"",y=o&&o.styleTags.length>0?o.styleTags:l.styleTags||[],g=(o==null?void 0:o.lyricsDraft)||l.lyricsDraft||"",A=o?R({...l,title:d,styleTags:y,lyricsDraft:g},h({...l,title:d,styleTags:y,lyricsDraft:g},r.type===m.CHAT?"AI 草稿":"Suno 歌词",l.creationPrompt)):{};return D(l,{title:d,styleTags:y,lyricsDraft:g,...A,pendingLyricsGenTaskId:null},S)}const s=U(r,"musicAnalyzerRecordId");if(!s)return null;const e=(await p()).find(u=>u.id===s);if(!e||e.pendingRewriteTaskId!==r.id)return null;const i=L(r)||b(x(r)),a=(e.lyricsVersions||[]).length,c=h({...e,title:i.title||e.title,styleTags:i.styleTags.length>0?i.styleTags:e.styleTags,lyricsDraft:i.lyricsDraft||e.lyricsDraft},`AI 改写 #${a+1}`,e.rewritePrompt),T=R(e,c);return D(e,{title:i.title||e.title,styleTags:i.styleTags.length>0?i.styleTags:e.styleTags,lyricsDraft:i.lyricsDraft||e.lyricsDraft,pendingRewriteTaskId:null,...T},S)}function J(r){const t=r.result;if(!t)return null;const s=L(r);if(s)return s;const n=x(r);if(n)try{return b(n)}catch{}const e=t.lyricsText||"",i=t.lyricsTitle||t.title||"",a=t.lyricsTags;if(!e&&!i)return null;const c=Array.isArray(a)?a.map(T=>String(T||"").trim()).filter(Boolean):[];return{title:String(i).trim(),styleTags:c,lyricsDraft:String(e).trim()}}function _(r){return C(r)}async function H(r,t){return B(r,t,{loadRecords:p,updateRecord:S})}function K(r){return z(r)!==null}function X(r){if(r.type!==m.AUDIO)return null;const t=r.params.batchId;return t?O(t,{prefix:"ma_"}):null}export{H as a,B as b,_ as e,X as g,K as i,W as s};
@@ -1,3 +1,3 @@
1
- import{b as r,I as S,_ as M,ap as ne,bE as re,c4 as ae,Z as te,c5 as se,x as a,H as ie,c6 as oe,bD as ce}from"./index-CLp1N2JZ.js";import{M as le}from"./move-DOixEjqO.js";import{R as ue}from"./refresh-Bh3E8vu6.js";function k(i,t){var s=Object.keys(i);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(i);t&&(e=e.filter(function(d){return Object.getOwnPropertyDescriptor(i,d).enumerable})),s.push.apply(s,e)}return s}function L(i){for(var t=1;t<arguments.length;t++){var s=arguments[t]!=null?arguments[t]:{};t%2?k(Object(s),!0).forEach(function(e){M(i,e,s[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(s)):k(Object(s)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(s,e))})}return i}var de={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M18.0755 0.980957L23.0249 5.93038L16.6602 13.7035L18.7814 15.8248L13.476 21.1302L8.87986 16.534L2.16226 23.2516L0.748047 21.8374L7.46565 15.1198L2.86942 10.5236L8.17482 5.2182L10.2962 7.33958L18.0755 0.980957Z"}}]},q=r.forwardRef(function(i,t){return r.createElement(S,L(L({},i),{},{id:"pin-filled",ref:t,icon:de}))});q.displayName="PinFilledIcon";function C(i,t){var s=Object.keys(i);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(i);t&&(e=e.filter(function(d){return Object.getOwnPropertyDescriptor(i,d).enumerable})),s.push.apply(s,e)}return s}function U(i){for(var t=1;t<arguments.length;t++){var s=arguments[t]!=null?arguments[t]:{};t%2?C(Object(s),!0).forEach(function(e){M(i,e,s[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(s)):C(Object(s)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(s,e))})}return i}var me={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M17.7874 0.693359L23.3095 6.21545L16.9447 13.9886L19.1329 16.1768L13.474 21.8358L8.52427 16.8861L2.16031 23.25L0.746094 21.8358L7.11005 15.4719L2.16024 10.5221L7.8192 4.86311L10.0081 7.05199L17.7874 0.693359ZM13.474 19.0073L16.3045 16.1768L14.2502 14.1225L20.6149 6.34933L17.6524 3.3868L9.87309 9.74543L7.8192 7.69154L4.98867 10.5221L13.474 19.0073Z"}}]},V=r.forwardRef(function(i,t){return r.createElement(S,U(U({},i),{},{id:"pin",ref:t,icon:me}))});V.displayName="PinIcon";const I="drawnix_performance_panel_settings",R={x:-1,y:-1},fe=80,pe=60,he=80,ge=95,P=100,Pe=({container:i,onCreateProject:t,elements:s=[]})=>{const{language:e}=ne(),{confirm:d,confirmDialog:T}=re(),[o,z]=r.useState(null),u=r.useMemo(()=>!s||s.length===0?0:s.filter(n=>n.type==="image").length,[s]),[c,H]=r.useState(()=>{try{const n=localStorage.getItem(I);if(n){const l=JSON.parse(n);return{position:l.position||R,pinned:l.pinned||!1}}}catch{}return{position:R,pinned:!1}}),[v,A]=r.useState({dismissed:!1}),[m,j]=r.useState(!1),[g,Y]=r.useState({x:0,y:0}),f=r.useRef(null),N=r.useRef(null),p=r.useCallback(n=>{H(l=>{const h={...l,...n};try{localStorage.setItem(I,JSON.stringify(h))}catch{}return h})},[]),x=r.useCallback(()=>{const n=ae.getMemoryStats();z(n)},[]);r.useEffect(()=>(x(),N.current=setInterval(x,5e3),()=>{N.current&&clearInterval(N.current)}),[x]);const F=r.useMemo(()=>{if(!o)return!1;if(c.pinned)return!0;if(v.dismissed)return!1;const n=o.usagePercent>=fe,l=u>=P&&o.usagePercent>=pe;return n||l},[o,u,c.pinned,v.dismissed]),y=r.useMemo(()=>o?o.usagePercent>=ge?"critical":o.usagePercent>=he||u>=P?"warning":"normal":"normal",[o,u]),$=r.useMemo(()=>{const n={zIndex:te.PERFORMANCE_PANEL};return c.position.x>=0&&c.position.y>=0&&(n.left=c.position.x,n.top=c.position.y,n.right="auto",n.bottom="auto"),n},[c.position]),W=r.useCallback(n=>{if(!f.current)return;n.preventDefault(),n.stopPropagation();const l=f.current.getBoundingClientRect();Y({x:n.clientX-l.left,y:n.clientY-l.top}),j(!0),n.target.setPointerCapture(n.pointerId)},[]),X=r.useCallback(n=>{var O,_;if(!m)return;n.preventDefault();const l=n.clientX-g.x,h=n.clientY-g.y,Q=window.innerWidth-(((O=f.current)==null?void 0:O.offsetWidth)||60),ee=window.innerHeight-(((_=f.current)==null?void 0:_.offsetHeight)||200);p({position:{x:Math.max(0,Math.min(l,Q)),y:Math.max(0,Math.min(h,ee))}})},[m,g,p]),w=r.useCallback(n=>{m&&(j(!1),n.target.releasePointerCapture(n.pointerId))},[m]),Z=r.useCallback(()=>{p({pinned:!c.pinned})},[c.pinned,p]),B=r.useCallback(()=>{A({dismissed:!0})},[]),D=r.useCallback(()=>{se()},[]),G=r.useCallback(async()=>{await d({title:e==="zh"?"刷新页面":"Refresh page",description:e==="zh"?"刷新页面可释放内存":"Refresh to free memory",confirmText:e==="zh"?"刷新":"Refresh",cancelText:e==="zh"?"取消":"Cancel"})&&D()},[d,D,e]),[b,E]=r.useState(!1),K=r.useCallback(async()=>{if(!(b||!t)){E(!0);try{await t()}catch(n){console.error("[PerformancePanel] Failed to create project:",n)}finally{E(!1)}}},[b,t]);if(!F)return null;const J=a.jsxDEV("div",{className:"performance-panel__tooltip",children:[a.jsxDEV("div",{className:"performance-panel__tooltip-title",children:e==="zh"?"内存使用情况":"Memory Usage"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:309,columnNumber:7},void 0),a.jsxDEV("div",{className:"performance-panel__tooltip-content",children:[a.jsxDEV("div",{children:[e==="zh"?"已使用":"Used",": ",o==null?void 0:o.formatted.used]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:313,columnNumber:9},void 0),a.jsxDEV("div",{children:[e==="zh"?"限制":"Limit",": ",o==null?void 0:o.formatted.limit]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:316,columnNumber:9},void 0),u>0&&a.jsxDEV("div",{style:{marginTop:"4px",paddingTop:"4px",borderTop:"1px solid rgba(255,255,255,0.1)"},children:[e==="zh"?"图片数量":"Image Count",": ",u,u>=P&&a.jsxDEV("span",{style:{color:"#E67E22",marginLeft:"4px"},children:["(",e==="zh"?"建议清理":"Recommend cleaning",")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:329,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:320,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:312,columnNumber:7},void 0),a.jsxDEV("div",{className:"performance-panel__tooltip-tip",children:e==="zh"?`➕ 新建项目可释放当前画布内存
1
+ import{b as r,I as S,_ as M,ap as ne,bE as re,c4 as ae,Z as te,c5 as se,x as a,H as ie,c6 as oe,bD as ce}from"./index-D5YSioyv.js";import{M as le}from"./move-CrZ5ZpJ2.js";import{R as ue}from"./refresh-DqZ7biGU.js";function k(i,t){var s=Object.keys(i);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(i);t&&(e=e.filter(function(d){return Object.getOwnPropertyDescriptor(i,d).enumerable})),s.push.apply(s,e)}return s}function L(i){for(var t=1;t<arguments.length;t++){var s=arguments[t]!=null?arguments[t]:{};t%2?k(Object(s),!0).forEach(function(e){M(i,e,s[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(s)):k(Object(s)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(s,e))})}return i}var de={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M18.0755 0.980957L23.0249 5.93038L16.6602 13.7035L18.7814 15.8248L13.476 21.1302L8.87986 16.534L2.16226 23.2516L0.748047 21.8374L7.46565 15.1198L2.86942 10.5236L8.17482 5.2182L10.2962 7.33958L18.0755 0.980957Z"}}]},q=r.forwardRef(function(i,t){return r.createElement(S,L(L({},i),{},{id:"pin-filled",ref:t,icon:de}))});q.displayName="PinFilledIcon";function C(i,t){var s=Object.keys(i);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(i);t&&(e=e.filter(function(d){return Object.getOwnPropertyDescriptor(i,d).enumerable})),s.push.apply(s,e)}return s}function U(i){for(var t=1;t<arguments.length;t++){var s=arguments[t]!=null?arguments[t]:{};t%2?C(Object(s),!0).forEach(function(e){M(i,e,s[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(s)):C(Object(s)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(s,e))})}return i}var me={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M17.7874 0.693359L23.3095 6.21545L16.9447 13.9886L19.1329 16.1768L13.474 21.8358L8.52427 16.8861L2.16031 23.25L0.746094 21.8358L7.11005 15.4719L2.16024 10.5221L7.8192 4.86311L10.0081 7.05199L17.7874 0.693359ZM13.474 19.0073L16.3045 16.1768L14.2502 14.1225L20.6149 6.34933L17.6524 3.3868L9.87309 9.74543L7.8192 7.69154L4.98867 10.5221L13.474 19.0073Z"}}]},V=r.forwardRef(function(i,t){return r.createElement(S,U(U({},i),{},{id:"pin",ref:t,icon:me}))});V.displayName="PinIcon";const I="drawnix_performance_panel_settings",R={x:-1,y:-1},fe=80,pe=60,he=80,ge=95,P=100,Pe=({container:i,onCreateProject:t,elements:s=[]})=>{const{language:e}=ne(),{confirm:d,confirmDialog:T}=re(),[o,z]=r.useState(null),u=r.useMemo(()=>!s||s.length===0?0:s.filter(n=>n.type==="image").length,[s]),[c,H]=r.useState(()=>{try{const n=localStorage.getItem(I);if(n){const l=JSON.parse(n);return{position:l.position||R,pinned:l.pinned||!1}}}catch{}return{position:R,pinned:!1}}),[v,A]=r.useState({dismissed:!1}),[m,j]=r.useState(!1),[g,Y]=r.useState({x:0,y:0}),f=r.useRef(null),N=r.useRef(null),p=r.useCallback(n=>{H(l=>{const h={...l,...n};try{localStorage.setItem(I,JSON.stringify(h))}catch{}return h})},[]),x=r.useCallback(()=>{const n=ae.getMemoryStats();z(n)},[]);r.useEffect(()=>(x(),N.current=setInterval(x,5e3),()=>{N.current&&clearInterval(N.current)}),[x]);const F=r.useMemo(()=>{if(!o)return!1;if(c.pinned)return!0;if(v.dismissed)return!1;const n=o.usagePercent>=fe,l=u>=P&&o.usagePercent>=pe;return n||l},[o,u,c.pinned,v.dismissed]),y=r.useMemo(()=>o?o.usagePercent>=ge?"critical":o.usagePercent>=he||u>=P?"warning":"normal":"normal",[o,u]),$=r.useMemo(()=>{const n={zIndex:te.PERFORMANCE_PANEL};return c.position.x>=0&&c.position.y>=0&&(n.left=c.position.x,n.top=c.position.y,n.right="auto",n.bottom="auto"),n},[c.position]),W=r.useCallback(n=>{if(!f.current)return;n.preventDefault(),n.stopPropagation();const l=f.current.getBoundingClientRect();Y({x:n.clientX-l.left,y:n.clientY-l.top}),j(!0),n.target.setPointerCapture(n.pointerId)},[]),X=r.useCallback(n=>{var O,_;if(!m)return;n.preventDefault();const l=n.clientX-g.x,h=n.clientY-g.y,Q=window.innerWidth-(((O=f.current)==null?void 0:O.offsetWidth)||60),ee=window.innerHeight-(((_=f.current)==null?void 0:_.offsetHeight)||200);p({position:{x:Math.max(0,Math.min(l,Q)),y:Math.max(0,Math.min(h,ee))}})},[m,g,p]),w=r.useCallback(n=>{m&&(j(!1),n.target.releasePointerCapture(n.pointerId))},[m]),Z=r.useCallback(()=>{p({pinned:!c.pinned})},[c.pinned,p]),B=r.useCallback(()=>{A({dismissed:!0})},[]),D=r.useCallback(()=>{se()},[]),G=r.useCallback(async()=>{await d({title:e==="zh"?"刷新页面":"Refresh page",description:e==="zh"?"刷新页面可释放内存":"Refresh to free memory",confirmText:e==="zh"?"刷新":"Refresh",cancelText:e==="zh"?"取消":"Cancel"})&&D()},[d,D,e]),[b,E]=r.useState(!1),K=r.useCallback(async()=>{if(!(b||!t)){E(!0);try{await t()}catch(n){console.error("[PerformancePanel] Failed to create project:",n)}finally{E(!1)}}},[b,t]);if(!F)return null;const J=a.jsxDEV("div",{className:"performance-panel__tooltip",children:[a.jsxDEV("div",{className:"performance-panel__tooltip-title",children:e==="zh"?"内存使用情况":"Memory Usage"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:309,columnNumber:7},void 0),a.jsxDEV("div",{className:"performance-panel__tooltip-content",children:[a.jsxDEV("div",{children:[e==="zh"?"已使用":"Used",": ",o==null?void 0:o.formatted.used]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:313,columnNumber:9},void 0),a.jsxDEV("div",{children:[e==="zh"?"限制":"Limit",": ",o==null?void 0:o.formatted.limit]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:316,columnNumber:9},void 0),u>0&&a.jsxDEV("div",{style:{marginTop:"4px",paddingTop:"4px",borderTop:"1px solid rgba(255,255,255,0.1)"},children:[e==="zh"?"图片数量":"Image Count",": ",u,u>=P&&a.jsxDEV("span",{style:{color:"#E67E22",marginLeft:"4px"},children:["(",e==="zh"?"建议清理":"Recommend cleaning",")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:329,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:320,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:312,columnNumber:7},void 0),a.jsxDEV("div",{className:"performance-panel__tooltip-tip",children:e==="zh"?`➕ 新建项目可释放当前画布内存
2
2
  🔄 刷新页面完全释放内存`:`➕ New project frees current canvas memory
3
3
  🔄 Refresh page fully releases memory`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:336,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:308,columnNumber:5},void 0);return a.jsxDEV("div",{ref:f,className:`performance-panel performance-panel--${y} ${m?"performance-panel--dragging":""}`,style:$,children:[a.jsxDEV("div",{className:"performance-panel__drag-handle",onPointerDown:W,onPointerMove:X,onPointerUp:w,onPointerCancel:w,title:e==="zh"?"拖拽移动":"Drag to move",children:a.jsxDEV(le,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:361,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:353,columnNumber:7},void 0),a.jsxDEV(ie,{content:J,placement:"left",children:a.jsxDEV("div",{className:"performance-panel__content",children:[a.jsxDEV("div",{className:"performance-panel__icon",children:y==="critical"?"🔴":"🟠"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:367,columnNumber:11},void 0),a.jsxDEV("div",{className:"performance-panel__value",children:[o==null?void 0:o.usagePercent.toFixed(0),"%"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:370,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:366,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:365,columnNumber:7},void 0),a.jsxDEV("div",{className:"performance-panel__divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:377,columnNumber:7},void 0),t&&a.jsxDEV("button",{className:"performance-panel__btn",onClick:K,disabled:b,title:e==="zh"?"新建项目":"New project",children:a.jsxDEV(oe,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:387,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:381,columnNumber:9},void 0),a.jsxDEV("button",{className:"performance-panel__btn",title:e==="zh"?"刷新页面":"Refresh page",onClick:()=>{G()},children:a.jsxDEV(ue,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:399,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:392,columnNumber:7},void 0),a.jsxDEV("div",{className:"performance-panel__divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:403,columnNumber:7},void 0),a.jsxDEV("button",{className:`performance-panel__btn ${c.pinned?"performance-panel__btn--active":""}`,onClick:Z,title:c.pinned?e==="zh"?"取消常驻":"Unpin":e==="zh"?"常驻":"Pin",children:c.pinned?a.jsxDEV(q,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:421,columnNumber:37},void 0):a.jsxDEV(V,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:421,columnNumber:57},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:406,columnNumber:7},void 0),a.jsxDEV("button",{className:"performance-panel__btn",onClick:B,title:e==="zh"?"关闭":"Close",children:a.jsxDEV(ce,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:429,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:424,columnNumber:7},void 0),T]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/performance-panel/PerformancePanel.tsx",lineNumber:345,columnNumber:5},void 0)};export{Pe as PerformancePanel,Pe as default};
@@ -1,4 +1,4 @@
1
- import{gA as Ur,b as x,I as Oe,_ as We,dD as za,dO as ra,dS as Sr,dT as Ir,gB as Vr,gC as qa,bd as Lt,dU as ka,gD as nt,gE as gt,gF as wt,A as Na,B as xt,x as c,bm as ot,gG as zr,aC as we,c6 as Ca,C as ta,R as Ue,O as it,gH as Ar,bo as vt,gI as qr,gJ as Xr,gK as je,bu as ya,gL as Qr,gM as Ma,gN as Ta,gO as cr,gP as Gr,gQ as Or,gR as dr,gS as Wr,gT as _r,gU as Yr,gV as ur,gW as Jr,aq as pr,ap as Hr,bE as Kr,ds as fr,ay as Ke,bS as ie,gX as Zr,gY as $r,gZ as en,gp as la,bO as Te,g_ as Pt,g$ as na,h0 as qe,h1 as kt,h2 as Bt,h3 as Ft,ff as jt,bM as Da,bN as mr,H as Le,gm as an,gu as Aa,h4 as Et,bU as hr,aR as tn,fP as gr,h5 as rn,h6 as wr,h7 as nn,c5 as Rt,dp as on,d5 as sn}from"./index-CLp1N2JZ.js";import{B as ln}from"./BaseDrawer-F3GT0wol.js";import{FrameSlideshow as An}from"./FrameSlideshow-B5Sqi_uV.js";import{I as Mt}from"./image-C--jLg-o.js";import{L as xr}from"./layers-D8yoqIuj.js";import{L as cn,a as dn}from"./lock-on-CXR9jpJA.js";import{U as un}from"./upload-DydsLM8-.js";import{D as pn}from"./download-hxWX9Zug.js";import{M as Tt}from"./move-DOixEjqO.js";import{D as Ut}from"./index-B0oVxHhb.js";import"./chevron-right-Dz5PrqD9.js";import"./_baseUnset-Cb5y6_CP.js";import"./_baseFlatten-DHT6_8EL.js";import"./memoize-DRWJ2oTL.js";import"./last-DXTTfs9a.js";import"./_flatRest-CXdsvGPY.js";import"./throttle-rCTAR-V0.js";/**
1
+ import{gA as Ur,b as x,I as Oe,_ as We,dD as za,dO as ra,dS as Sr,dT as Ir,gB as Vr,gC as qa,bd as Lt,dU as ka,gD as nt,gE as gt,gF as wt,A as Na,B as xt,x as c,bm as ot,gG as zr,aC as we,c6 as Ca,C as ta,R as Ue,O as it,gH as Ar,bo as vt,gI as qr,gJ as Xr,gK as je,bu as ya,gL as Qr,gM as Ma,gN as Ta,gO as cr,gP as Gr,gQ as Or,gR as dr,gS as Wr,gT as _r,gU as Yr,gV as ur,gW as Jr,aq as pr,ap as Hr,bE as Kr,ds as fr,ay as Ke,bS as ie,gX as Zr,gY as $r,gZ as en,gp as la,bO as Te,g_ as Pt,g$ as na,h0 as qe,h1 as kt,h2 as Bt,h3 as Ft,ff as jt,bM as Da,bN as mr,H as Le,gm as an,gu as Aa,h4 as Et,bU as hr,aR as tn,fP as gr,h5 as rn,h6 as wr,h7 as nn,c5 as Rt,dp as on,d5 as sn}from"./index-D5YSioyv.js";import{B as ln}from"./BaseDrawer-D3uMjiL3.js";import{FrameSlideshow as An}from"./FrameSlideshow-BoTtxoO1.js";import{I as Mt}from"./image-C9vXAEOB.js";import{L as xr}from"./layers-37JfnNNl.js";import{L as cn,a as dn}from"./lock-on-Du4SUznS.js";import{U as un}from"./upload-B9RKSZna.js";import{D as pn}from"./download-DYHFFs_D.js";import{M as Tt}from"./move-CrZ5ZpJ2.js";import{D as Ut}from"./index-9eZTYsQ4.js";import"./chevron-right-JQJ6nsCM.js";import"./_baseUnset-CvjcxnsS.js";import"./_baseFlatten-BCqnPdEZ.js";import"./memoize-CUfUlF3P.js";import"./last-DXTTfs9a.js";import"./_flatRest-rR2Z0C6Y.js";import"./throttle-DggB2waX.js";/**
2
2
  * tdesign v1.16.3
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
@@ -1 +1 @@
1
- import{b as l,co as ne,bS as x,du as re,dv as le,aF as X,aJ as te,x as s,dw as de,ao as oe,d6 as ce,aC as R,aE as Y,aD as W,bt as ue}from"./index-CLp1N2JZ.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,w]=l.useState(!1),[_,z]=l.useState(0),[j,I]=l.useState(null),F=l.useRef(null),S=l.useRef(null),{addAsset:B}=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})=>{B(n,X.IMAGE,te.LOCAL,c).catch(N=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",N)})});try{const n=await Promise.all(d.map(({blob:c,name:N})=>A(c,N)));if(f&&a!==void 0){const c=[...o];c[a]=n[0],p(c.filter(Boolean))}else p(g?[...o,...n]:n.slice(0,1));t==null||t(null)}catch(n){console.error("[ReferenceImageUpload] Failed to process files:",n),t==null||t(u.loadFailed)}}},[o,g,h,f,U,E,A,B,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||w(!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)&&w(!1)}},[]),$=l.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),T=l.useCallback((e,a)=>{if(e.preventDefault(),e.stopPropagation(),w(!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);I(null),p(a)},[o,p]),O=l.useCallback(e=>{var a;e!==void 0&&z(e),(a=S.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;I({url:e,x:r,y:d})},[]),ee=l.useCallback(()=>{I(null)},[]),D=e=>s.jsxDEV("div",{className:`reference-image-upload__placeholder ${C?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:$,onDrop:a=>T(a,e),children:s.jsxDEV("div",{className:"reference-image-upload__buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:401,columnNumber:17},void 0),onClick:()=>O(e),disabled:m,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:399,columnNumber:9},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(W,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:411,columnNumber:17},void 0),onClick:()=>H(e),disabled:m,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:398,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:391,columnNumber:5},void 0),M=(e,a)=>s.jsxDEV("div",{className:"reference-image-upload__preview",onMouseEnter:i=>Z(e.url,i),onMouseLeave:ee,children:[s.jsxDEV("img",{src:e.url,alt:e.name,className:"reference-image-upload__image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:431,columnNumber:7},void 0),s.jsxDEV("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>Q(a),disabled:m,"data-track":"reference_image_upload_remove",children:s.jsxDEV(ue,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:443,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:436,columnNumber:7},void 0),f&&f[a]&&s.jsxDEV("div",{className:"reference-image-upload__slot-label",children:f[a]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:446,columnNumber:9},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:425,columnNumber:5},void 0),ae=()=>f?s.jsxDEV("div",{className:"reference-image-upload__slots",children:f.map((e,a)=>{const i=o[a];return s.jsxDEV("div",{className:"reference-image-upload__slot",children:[s.jsxDEV("div",{className:"reference-image-upload__slot-title",children:e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:463,columnNumber:15},void 0),i?M(i,a):s.jsxDEV("div",{className:`reference-image-upload__slot-placeholder ${C?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:$,onDrop:r=>T(r,a),children:s.jsxDEV("div",{className:"reference-image-upload__slot-buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:477,columnNumber:29},void 0),onClick:()=>O(a),disabled:m,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:475,columnNumber:21},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(W,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:487,columnNumber:29},void 0),onClick:()=>H(a),disabled:m,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:485,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:474,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:467,columnNumber:17},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:462,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:458,columnNumber:7},void 0):null,se=()=>{const e=g&&o.length<h;return s.jsxDEV("div",{className:"reference-image-upload__grid",children:[o.map((a,i)=>M(a,i)),e&&D(),o.length===0&&!e&&D()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:510,columnNumber:7},void 0)},ie=()=>o.length>0?s.jsxDEV("div",{className:"reference-image-upload__single",children:[M(o[0],0),s.jsxDEV("div",{className:"reference-image-upload__replace",children:D()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:524,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:522,columnNumber:9},void 0):D();return s.jsxDEV(s.Fragment,{children:[j&&de.createPortal(s.jsxDEV("div",{className:"reference-image-upload__hover-preview",style:{left:`${j.x}px`,top:`${j.y}px`,transform:"translate(-50%, -100%)"},children:s.jsxDEV("img",{src:j.url,alt:"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:545,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:537,columnNumber:9},void 0),document.body),s.jsxDEV("div",{ref:F,className:`reference-image-upload ${m?"reference-image-upload--disabled":""}`,tabIndex:0,children:[V&&s.jsxDEV("div",{className:"reference-image-upload__label",children:V},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:556,columnNumber:11},void 0),s.jsxDEV("input",{ref:S,type:"file",accept:"image/*",multiple:g&&!f,onChange:J,className:"reference-image-upload__input",disabled:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:559,columnNumber:9},void 0),f?ae():g?se():ie(),q&&s.jsxDEV(oe,{isOpen:q,onClose:()=>y(!1),mode:ce.SELECT,filterType:X.IMAGE,onSelect:K},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:572,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:550,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:534,columnNumber:5},void 0)};export{pe as R};
1
+ import{b as l,co as ne,bS as x,du as re,dv as le,aF as X,aJ as te,x as s,dw as de,ao as oe,d6 as ce,aC as R,aE as Y,aD as W,bt as ue}from"./index-D5YSioyv.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,w]=l.useState(!1),[_,z]=l.useState(0),[j,I]=l.useState(null),F=l.useRef(null),S=l.useRef(null),{addAsset:B}=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})=>{B(n,X.IMAGE,te.LOCAL,c).catch(N=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",N)})});try{const n=await Promise.all(d.map(({blob:c,name:N})=>A(c,N)));if(f&&a!==void 0){const c=[...o];c[a]=n[0],p(c.filter(Boolean))}else p(g?[...o,...n]:n.slice(0,1));t==null||t(null)}catch(n){console.error("[ReferenceImageUpload] Failed to process files:",n),t==null||t(u.loadFailed)}}},[o,g,h,f,U,E,A,B,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||w(!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)&&w(!1)}},[]),$=l.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),T=l.useCallback((e,a)=>{if(e.preventDefault(),e.stopPropagation(),w(!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);I(null),p(a)},[o,p]),O=l.useCallback(e=>{var a;e!==void 0&&z(e),(a=S.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;I({url:e,x:r,y:d})},[]),ee=l.useCallback(()=>{I(null)},[]),D=e=>s.jsxDEV("div",{className:`reference-image-upload__placeholder ${C?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:$,onDrop:a=>T(a,e),children:s.jsxDEV("div",{className:"reference-image-upload__buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:401,columnNumber:17},void 0),onClick:()=>O(e),disabled:m,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:399,columnNumber:9},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(W,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:411,columnNumber:17},void 0),onClick:()=>H(e),disabled:m,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:398,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:391,columnNumber:5},void 0),M=(e,a)=>s.jsxDEV("div",{className:"reference-image-upload__preview",onMouseEnter:i=>Z(e.url,i),onMouseLeave:ee,children:[s.jsxDEV("img",{src:e.url,alt:e.name,className:"reference-image-upload__image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:431,columnNumber:7},void 0),s.jsxDEV("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>Q(a),disabled:m,"data-track":"reference_image_upload_remove",children:s.jsxDEV(ue,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:443,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:436,columnNumber:7},void 0),f&&f[a]&&s.jsxDEV("div",{className:"reference-image-upload__slot-label",children:f[a]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:446,columnNumber:9},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:425,columnNumber:5},void 0),ae=()=>f?s.jsxDEV("div",{className:"reference-image-upload__slots",children:f.map((e,a)=>{const i=o[a];return s.jsxDEV("div",{className:"reference-image-upload__slot",children:[s.jsxDEV("div",{className:"reference-image-upload__slot-title",children:e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:463,columnNumber:15},void 0),i?M(i,a):s.jsxDEV("div",{className:`reference-image-upload__slot-placeholder ${C?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:$,onDrop:r=>T(r,a),children:s.jsxDEV("div",{className:"reference-image-upload__slot-buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:477,columnNumber:29},void 0),onClick:()=>O(a),disabled:m,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:475,columnNumber:21},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(W,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:487,columnNumber:29},void 0),onClick:()=>H(a),disabled:m,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:485,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:474,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:467,columnNumber:17},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:462,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:458,columnNumber:7},void 0):null,se=()=>{const e=g&&o.length<h;return s.jsxDEV("div",{className:"reference-image-upload__grid",children:[o.map((a,i)=>M(a,i)),e&&D(),o.length===0&&!e&&D()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:510,columnNumber:7},void 0)},ie=()=>o.length>0?s.jsxDEV("div",{className:"reference-image-upload__single",children:[M(o[0],0),s.jsxDEV("div",{className:"reference-image-upload__replace",children:D()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:524,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:522,columnNumber:9},void 0):D();return s.jsxDEV(s.Fragment,{children:[j&&de.createPortal(s.jsxDEV("div",{className:"reference-image-upload__hover-preview",style:{left:`${j.x}px`,top:`${j.y}px`,transform:"translate(-50%, -100%)"},children:s.jsxDEV("img",{src:j.url,alt:"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:545,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:537,columnNumber:9},void 0),document.body),s.jsxDEV("div",{ref:F,className:`reference-image-upload ${m?"reference-image-upload--disabled":""}`,tabIndex:0,children:[V&&s.jsxDEV("div",{className:"reference-image-upload__label",children:V},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:556,columnNumber:11},void 0),s.jsxDEV("input",{ref:S,type:"file",accept:"image/*",multiple:g&&!f,onChange:J,className:"reference-image-upload__input",disabled:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:559,columnNumber:9},void 0),f?ae():g?se():ie(),q&&s.jsxDEV(oe,{isOpen:q,onClose:()=>y(!1),mode:ce.SELECT,filterType:X.IMAGE,onSelect:K},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:572,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:550,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:534,columnNumber:5},void 0)};export{pe as R};