aitu-app 0.6.76 → 0.6.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +3 -3
  2. package/assets/CanvasAudioPlayer-DutgwdiU.js +2 -0
  3. package/assets/ChatDrawer-E6Fog16I.js +11 -0
  4. package/assets/{ChatMessagesArea-CZkiRzmW.js → ChatMessagesArea-Bgwiz_XP.js} +3 -3
  5. package/assets/DeferredAIInputBar-CPkD8Cv9.js +8 -0
  6. package/assets/DeferredAIInputBar-szBPHiNW.css +1 -0
  7. package/assets/DrawnixDeferredFeatures-Cul76-88.js +2 -0
  8. package/assets/{KnowledgeBaseContent-Dan2DUqY.js → KnowledgeBaseContent-DcX5Jofx.js} +6 -6
  9. package/assets/{MVCreator-Dzjl2fXA.js → MVCreator-DllHozYg.js} +8 -8
  10. package/assets/{ModelBenchmarkWorkbench-oy2wue1u.js → ModelBenchmarkWorkbench-Dv9SNYTi.js} +2 -2
  11. package/assets/MusicAnalyzer-CHcQ5t4P.js +1 -0
  12. package/assets/{MusicAnalyzer-BO44f-db.js → MusicAnalyzer-DDeT6g3c.js} +2 -2
  13. package/assets/ResizableDivider-CaG9JQbJ.js +1 -0
  14. package/assets/TaskQueuePanel-BNhNzGp5.js +1 -0
  15. package/assets/{VideoAnalyzer-iiJpoWb6.js → VideoAnalyzer-BSLz1FaI.js} +2 -2
  16. package/assets/ai-generation-preferences-service-BF7QkuJp.js +1 -0
  17. package/assets/arc-BU2KKCa_.js +1 -0
  18. package/assets/arc-DmGoDCEL.js +1 -0
  19. package/assets/{batch-image-generation-B2R0hJW_.js → batch-image-generation-Bg68r_Ql.js} +5 -5
  20. package/assets/{blockDiagram-38ab4fdb-BmWPnNuS.js → blockDiagram-38ab4fdb-BCGEnMME.js} +1 -1
  21. package/assets/{blockDiagram-38ab4fdb-trArAOFP.js → blockDiagram-38ab4fdb-CsZR5uC5.js} +1 -1
  22. package/assets/board-utils-CpAtoKn2.js +1 -0
  23. package/assets/{browser-Dya3c6_X.js → browser-DpICcNby.js} +1 -1
  24. package/assets/{c4Diagram-3d4e48cf-Cvj3RMOv.js → c4Diagram-3d4e48cf-9fuiuFdV.js} +1 -1
  25. package/assets/{c4Diagram-3d4e48cf-CqJrO4Za.js → c4Diagram-3d4e48cf-WM4wd_GR.js} +1 -1
  26. package/assets/{canvas-insertion-Dq3gR9Nw.js → canvas-insertion-CdUQF7IV.js} +3 -3
  27. package/assets/channel-CZjE-WNp.js +1 -0
  28. package/assets/channel-SXZD6bG3.js +1 -0
  29. package/assets/classDiagram-70f12bd4-CBVHTwQu.js +2 -0
  30. package/assets/{classDiagram-70f12bd4-DvrRZ41d.js → classDiagram-70f12bd4-DcYDedz1.js} +2 -2
  31. package/assets/classDiagram-v2-f2320105-CsxWGkSy.js +2 -0
  32. package/assets/classDiagram-v2-f2320105-jpCwaHEd.js +2 -0
  33. package/assets/{clipper-B4i11tN1.js → clipper-jvd5rF5a.js} +1 -1
  34. package/assets/clone-C4mvvMDb.js +1 -0
  35. package/assets/{createText-2e5e7dd3-D7dXlVes.js → createText-2e5e7dd3-CkXS3l7I.js} +2 -2
  36. package/assets/{createText-2e5e7dd3-B8gnT5hD.js → createText-2e5e7dd3-x5lOIwut.js} +1 -1
  37. package/assets/edges-e0da2a9e-CbrF4nbD.js +4 -0
  38. package/assets/{edges-e0da2a9e-CyRAzEMi.js → edges-e0da2a9e-Ch6PBwWs.js} +2 -2
  39. package/assets/{erDiagram-9861fffd-D8yYsjoN.js → erDiagram-9861fffd-Bq07elcI.js} +3 -3
  40. package/assets/{erDiagram-9861fffd-BHbAa_Ka.js → erDiagram-9861fffd-DSlNVuAZ.js} +4 -4
  41. package/assets/{flowDb-956e92f1-DAqb8wjP.js → flowDb-956e92f1-BqPCJlZp.js} +3 -3
  42. package/assets/{flowDb-956e92f1-f30uG4pp.js → flowDb-956e92f1-Ti5YC4Vv.js} +3 -3
  43. package/assets/{flowDiagram-66a62f08-C4Gz9mOM.js → flowDiagram-66a62f08-CPDuG3rY.js} +3 -3
  44. package/assets/{flowDiagram-66a62f08-CBXypoEi.js → flowDiagram-66a62f08-D3GSABFi.js} +1 -1
  45. package/assets/flowDiagram-v2-96b9c2cf-BCcJ-cre.js +1 -0
  46. package/assets/flowDiagram-v2-96b9c2cf-DCVaFEgV.js +1 -0
  47. package/assets/{flowchart-elk-definition-4a651766-CSm5diF6.js → flowchart-elk-definition-4a651766-BH09NeLA.js} +1 -1
  48. package/assets/{flowchart-elk-definition-4a651766-BHB7pRxm.js → flowchart-elk-definition-4a651766-BLaLPCDV.js} +1 -1
  49. package/assets/{ganttDiagram-c361ad54-CU9a9DsJ.js → ganttDiagram-c361ad54-DL9ZeaEc.js} +4 -4
  50. package/assets/ganttDiagram-c361ad54-Sp9M1KHP.js +257 -0
  51. package/assets/{gitGraphDiagram-72cf32ee-B2zj8Xnu.js → gitGraphDiagram-72cf32ee-BSf1fsDV.js} +1 -1
  52. package/assets/{gitGraphDiagram-72cf32ee-BWOgrFeh.js → gitGraphDiagram-72cf32ee-BWwmRKo-.js} +1 -1
  53. package/assets/{graph-Bnmq4jgf.js → graph--nPw8zXQ.js} +1 -1
  54. package/assets/graph-g-2U7grQ.js +1 -0
  55. package/assets/{index-3862675e-CQLKy6RO.js → index-3862675e-BXwbZ2pz.js} +1 -1
  56. package/assets/{index-3862675e-BSxxidV_.js → index-3862675e-D6Zy95zZ.js} +1 -1
  57. package/assets/index-3eqA7Bag.js +1 -0
  58. package/assets/{index-D1ORCZqJ.js → index-7Q-aiwln.js} +2 -2
  59. package/assets/index-B2dttXd7.js +1 -0
  60. package/assets/index-B7V7-Vxz.js +1 -0
  61. package/assets/index-BHPTfCZM.js +1 -0
  62. package/assets/{index-vvV37Q1S.js → index-BP77pG9S.js} +4 -4
  63. package/assets/index-BPR_DyGD.js +1 -0
  64. package/assets/index-BWrcsh8u.js +1 -0
  65. package/assets/{index-D4qm_1m5.js → index-BXzGHPXz.js} +1 -1
  66. package/assets/index-BaCHOxhI.js +1 -0
  67. package/assets/{index-BoglETHF.js → index-Bq8mPedC.js} +2 -2
  68. package/assets/index-BqHZCcen.js +2 -0
  69. package/assets/index-Bti3m-iW.js +1 -0
  70. package/assets/{index-sPNG1_UN.js → index-BwSnJN93.js} +5 -5
  71. package/assets/{index-D5qxbeGT.js → index-C3qD42ws.js} +1 -1
  72. package/assets/{index-VzDb_AHs.js → index-C5eu4uSl.js} +5 -5
  73. package/assets/index-CLJUfzvO.js +1 -0
  74. package/assets/index-CfgvFFx3.js +271 -0
  75. package/assets/index-CmyOpFTN.js +1 -0
  76. package/assets/index-D4pIkh3S.js +1 -0
  77. package/assets/index-D7b5fX1d.js +1 -0
  78. package/assets/index-DH12_HTj.js +13 -0
  79. package/assets/index-DI0OV6F8.js +7 -0
  80. package/assets/index-DIiIUyb-.js +1 -0
  81. package/assets/index-DcZrElEK.js +2 -0
  82. package/assets/index-DllL1sx1.js +1 -0
  83. package/assets/index-DqMndQiP.js +1 -0
  84. package/assets/index-Dz8sghkK.js +1 -0
  85. package/assets/index-QkP3EC02.js +1 -0
  86. package/assets/index-TkfyNewx.js +1 -0
  87. package/assets/index-ZrVeQUWo.js +1 -0
  88. package/assets/index-eZfwJ9bV.js +3 -0
  89. package/assets/{index-VarwiJlL.js → index-gQ7LgvSv.js} +1 -1
  90. package/assets/{infoDiagram-f8f76790-d-BYTW2w.js → infoDiagram-f8f76790-DpFqCCNv.js} +3 -3
  91. package/assets/{infoDiagram-f8f76790-BMsVq8O_.js → infoDiagram-f8f76790-G2JpJJP7.js} +3 -3
  92. package/assets/{journeyDiagram-49397b02-DCtCkoaC.js → journeyDiagram-49397b02-BdESGMrv.js} +1 -1
  93. package/assets/{journeyDiagram-49397b02-CBqb8-ml.js → journeyDiagram-49397b02-DLLTobRM.js} +1 -1
  94. package/assets/{layout-DKqEkE_W.js → layout-CVkuImk4.js} +1 -1
  95. package/assets/layout-WSR0vNPO.js +1 -0
  96. package/assets/line-D3bnG227.js +1 -0
  97. package/assets/line-DQuMJveY.js +1 -0
  98. package/assets/{linear-C6OQYT56.js → linear-CciP-97N.js} +1 -1
  99. package/assets/linear-Z6vFvuwc.js +1 -0
  100. package/assets/{main-i0s2IJTn.css → main-8DNjLY6L.css} +1 -1
  101. package/assets/main-BFEkxCOK.js +56 -0
  102. package/assets/{mermaid.core-CI-VJEiw.js → mermaid.core-CwZQb0ud.js} +5 -5
  103. package/assets/{mindmap-definition-fc14e90a-k_RSypuP.js → mindmap-definition-fc14e90a-BnJ8OOTI.js} +1 -1
  104. package/assets/{mindmap-definition-fc14e90a-DrtlQLES.js → mindmap-definition-fc14e90a-CxQMydCW.js} +1 -1
  105. package/assets/model-benchmark-launcher-Ct3lYXVq.js +1 -0
  106. package/assets/photo-wall-splitter-BZ88W5Zy.js +1 -0
  107. package/assets/{pieDiagram-8a3498a8-CdknGxKY.js → pieDiagram-8a3498a8-BSDdkTeu.js} +5 -5
  108. package/assets/{pieDiagram-8a3498a8-Bpr5V3o5.js → pieDiagram-8a3498a8-D6VtAoja.js} +4 -4
  109. package/assets/ppt-generation-FzjP_rp0.js +48 -0
  110. package/assets/{quadrantDiagram-120e2f19-Dx3qoKDx.js → quadrantDiagram-120e2f19-BbFV0VXY.js} +3 -3
  111. package/assets/{quadrantDiagram-120e2f19-pVIXp9i6.js → quadrantDiagram-120e2f19-C8k2xuBd.js} +3 -3
  112. package/assets/{requirementDiagram-deff3bca-hM4oekUG.js → requirementDiagram-deff3bca-C3xMdzJV.js} +1 -1
  113. package/assets/{requirementDiagram-deff3bca-DD6NY75P.js → requirementDiagram-deff3bca-CpjqKjYZ.js} +1 -1
  114. package/assets/{sankeyDiagram-04a897e0-BsvEG71N.js → sankeyDiagram-04a897e0-BBJJgsFv.js} +5 -5
  115. package/assets/{sankeyDiagram-04a897e0-C9uf1jU5.js → sankeyDiagram-04a897e0-Bjvig9bW.js} +4 -4
  116. package/assets/{sequenceDiagram-704730f1-CNEBmz1G.js → sequenceDiagram-704730f1-DX1MmBN_.js} +4 -4
  117. package/assets/{sequenceDiagram-704730f1-Bpg54z74.js → sequenceDiagram-704730f1-PFC_9IFI.js} +4 -4
  118. package/assets/settings-dialog-CQM4v791.js +1 -0
  119. package/assets/{skill-dsl-parser-DS3VOBFI.js → skill-dsl-parser-syNWYxFu.js} +10 -10
  120. package/assets/{stateDiagram-587899a1-BN2ZP-3x.js → stateDiagram-587899a1-Dc3mI_B_.js} +1 -1
  121. package/assets/stateDiagram-587899a1-SFMUVAam.js +1 -0
  122. package/assets/{stateDiagram-v2-d93cdb3a-BtV1Ziy9.js → stateDiagram-v2-d93cdb3a-DmnBjHpC.js} +1 -1
  123. package/assets/{stateDiagram-v2-d93cdb3a-BLwIM8s1.js → stateDiagram-v2-d93cdb3a-P4Yt2p_j.js} +1 -1
  124. package/assets/{styles-6aaf32cf-aFVlX_lA.js → styles-6aaf32cf-C3jnr3hV.js} +1 -1
  125. package/assets/{styles-6aaf32cf-CGp3i5qu.js → styles-6aaf32cf-b6AdP7fu.js} +1 -1
  126. package/assets/{styles-9a916d00-BK7pejCH.js → styles-9a916d00-BUiD9iBe.js} +4 -4
  127. package/assets/{styles-9a916d00-CSwFWVnr.js → styles-9a916d00-ii0XTdIm.js} +1 -1
  128. package/assets/styles-c10674c1-Bt89Yy8Q.js +116 -0
  129. package/assets/styles-c10674c1-DbTSpy3W.js +116 -0
  130. package/assets/{svgDrawCommon-08f97a94-Cr4rWU-W.js → svgDrawCommon-08f97a94-BK6lD4D6.js} +1 -1
  131. package/assets/{svgDrawCommon-08f97a94-DypvMDvH.js → svgDrawCommon-08f97a94-D4gIV05W.js} +1 -1
  132. package/assets/{timeline-definition-85554ec2-D3-lXEL5.js → timeline-definition-85554ec2-Bl2y548G.js} +1 -1
  133. package/assets/{timeline-definition-85554ec2-DIwHE15c.js → timeline-definition-85554ec2-CWKg_JxG.js} +3 -3
  134. package/assets/{tool-windows-B-a9r3G3.css → tool-windows-CUNbW1Tz.css} +1 -1
  135. package/assets/tool-windows-DOIu9TAD.js +2975 -0
  136. package/assets/ttd-dialog-DI4kQSg8.js +99 -0
  137. package/assets/{useCharacters-DsZ779l-.js → useCharacters-Chv4Ky7x.js} +3 -3
  138. package/assets/useWorkflowSubmission-BizuDmuw.js +70 -0
  139. package/assets/video-analyze-6v3Y-rUE.js +1 -0
  140. package/assets/{video-generation-C7qCz-ZF.js → video-generation-DnmTlWnm.js} +2 -2
  141. package/assets/video-recovery-service-BeRoh0s2.js +1 -0
  142. package/assets/workflow-generation-utils-me381Cax.js +3 -0
  143. package/assets/workflow-submission-service-YOpo7g37.js +4 -0
  144. package/assets/{xychartDiagram-e933f94c-B17Evxfw.js → xychartDiagram-e933f94c-CJX9_9WF.js} +4 -4
  145. package/assets/{xychartDiagram-e933f94c-Dln5PJtU.js → xychartDiagram-e933f94c-Cep8CQEH.js} +3 -3
  146. package/changelog.json +50 -0
  147. package/idle-prefetch-manifest.json +300 -316
  148. package/manifest.json +3 -3
  149. package/package.json +1 -1
  150. package/precache-manifest.json +8 -8
  151. package/sw.js +5 -5
  152. package/version.json +19 -3
  153. package/assets/CanvasAudioPlayer-DwM6PU4W.js +0 -2
  154. package/assets/ChatDrawer-BQTaa6r6.js +0 -11
  155. package/assets/DeferredAIInputBar-BmPgFhXr.css +0 -1
  156. package/assets/DeferredAIInputBar-ObyfJQ0O.js +0 -7
  157. package/assets/DrawnixDeferredFeatures-CFHVLxc5.js +0 -2
  158. package/assets/ModelDropdown-CQTTHEI7.css +0 -1
  159. package/assets/ModelDropdown-DjvIvi8O.js +0 -1
  160. package/assets/MusicAnalyzer-BU5l2wPR.js +0 -1
  161. package/assets/ResizableDivider-CBgTphcS.js +0 -1
  162. package/assets/TaskQueuePanel-CTDuSScf.js +0 -1
  163. package/assets/ai-generation-preferences-service-CqwXb9Cs.js +0 -5
  164. package/assets/arc-BBE0LXa1.js +0 -1
  165. package/assets/arc-h476db6P.js +0 -1
  166. package/assets/channel-DMTz1UNN.js +0 -1
  167. package/assets/channel-DQOY3XLe.js +0 -1
  168. package/assets/classDiagram-70f12bd4-5ACx619h.js +0 -2
  169. package/assets/classDiagram-v2-f2320105-4zQ4jrwi.js +0 -2
  170. package/assets/classDiagram-v2-f2320105-CB4rof84.js +0 -2
  171. package/assets/clone-fuaXEdc-.js +0 -1
  172. package/assets/edges-e0da2a9e-DZalSm7f.js +0 -4
  173. package/assets/flowDiagram-v2-96b9c2cf-C-DFFh54.js +0 -1
  174. package/assets/flowDiagram-v2-96b9c2cf-CWjydvHB.js +0 -1
  175. package/assets/ganttDiagram-c361ad54-DDnbMkWm.js +0 -257
  176. package/assets/graph-BsYIlc-B.js +0 -1
  177. package/assets/index-B10kMZoq.js +0 -1
  178. package/assets/index-B2_XRj3U.js +0 -1
  179. package/assets/index-B4lLv-Sz.js +0 -1
  180. package/assets/index-BFZNUUCR.js +0 -1
  181. package/assets/index-BTSYG2Vy.js +0 -1
  182. package/assets/index-BY5Kvjqg.js +0 -1
  183. package/assets/index-Blf7J5yW.js +0 -1
  184. package/assets/index-BoQA7VaE.js +0 -3
  185. package/assets/index-BzqQ69oU.js +0 -1
  186. package/assets/index-CD2D1BYc.js +0 -2
  187. package/assets/index-CLRs5cWt.js +0 -1
  188. package/assets/index-CLU4LJjR.js +0 -1
  189. package/assets/index-CPDfMZkS.js +0 -1
  190. package/assets/index-CPfhqyDz.js +0 -316
  191. package/assets/index-CU4ySaQE.js +0 -1
  192. package/assets/index-CsCwwmYY.js +0 -1
  193. package/assets/index-Cyz_w8KS.js +0 -7
  194. package/assets/index-D489cJtb.js +0 -1
  195. package/assets/index-D6DebbcI.js +0 -1
  196. package/assets/index-DDtPG6Km.js +0 -1
  197. package/assets/index-DKhTnUBU.js +0 -1
  198. package/assets/index-DMIwLDS8.js +0 -13
  199. package/assets/index-DgsUJgRJ.js +0 -1
  200. package/assets/index-oT8mbA3U.js +0 -2
  201. package/assets/layout-B1ePJO5V.js +0 -1
  202. package/assets/line-C_jmJ6v1.js +0 -1
  203. package/assets/line-DfhCgsyz.js +0 -1
  204. package/assets/linear-ChY5Iu43.js +0 -1
  205. package/assets/main-LCg1nQGB.js +0 -69
  206. package/assets/model-benchmark-launcher-B2MsZXmV.js +0 -1
  207. package/assets/model-benchmark-service-CkIRp-Sq.js +0 -1
  208. package/assets/model-selection-BvdXmVGX.js +0 -1
  209. package/assets/photo-wall-splitter-CVrfkWnh.js +0 -1
  210. package/assets/prompt-optimize-dialog-DLdL2_a1.css +0 -1
  211. package/assets/settings-dialog-CAhU3cfG.js +0 -1
  212. package/assets/stateDiagram-587899a1-CMylUAYu.js +0 -1
  213. package/assets/styles-c10674c1-KfJINP7I.js +0 -116
  214. package/assets/styles-c10674c1-cccyjRUz.js +0 -116
  215. package/assets/tool-windows-CtLXQDGF.js +0 -2847
  216. package/assets/ttd-dialog-BRg3XE5k.js +0 -99
  217. package/assets/use-runtime-models-BH9r4Yc1.js +0 -1
  218. package/assets/use-runtime-models-BgWWl4Ng.css +0 -1
  219. package/assets/useWorkflowSubmission-BeJQ3BuO.js +0 -70
  220. package/assets/video-analyze-aDVIfgUi.js +0 -1
  221. package/assets/video-recovery-service-Dy0xiPr8.js +0 -1
  222. package/assets/workflow-generation-utils-CpMilOwA.js +0 -3
  223. package/assets/workflow-submission-service-CmBBMIis.js +0 -4
@@ -1,7 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./tool-windows-B-a9r3G3.css"])))=>i.map(i=>d[i]);
2
- import{bn as Ne,_ as sn,bm as Si,r as l,y as u,g_ as Di,g$ as Ei,h0 as Ms,h1 as pt,h2 as _i,h3 as Ci,h4 as ji,h5 as Ti,h6 as Gt,h7 as $t,h8 as Ai,h9 as Mi,at as as,ha as Pi,aH as Ui,hb as Vi,hc as ft,hd as wn,he as on,hf as vn,hg as en,hh as At,hi as Sn,bD as Cn,hj as rs,bw as jn,dM as Tn,b7 as cn,by as Ps,bX as Us,cS as Bi,hk as An,hl as zi,hm as Ri,bW as Oi,bT as qi,hn as Wi,fY as Li,b8 as Mn,ho as Vs,hp as Fi,hq as Hi,hr as Gi,ai as an,hs as Dn,aI as Bs,ht as $i,hu as tt,hv as xn,hw as tn,hx as ut,hy as os,hz as Kt,hA as cs,hB as ls,hC as Ki,hD as Te,hE as yn,l as Yi,fy as Et,hF as ds,hG as us,al as Ve,as as ms,ar as Zi,hH as Xi,hI as ps,hJ as Ji,U as zs,bE as In,bJ as fs,bI as Rs,hK as hs,gf as gs,hL as bs,z as Yt,bu as Qi,bt as ea,hM as ta,hN as na,bx as sa,hO as ia,hP as ws}from"./tool-windows-CtLXQDGF.js";import{p as aa,a as ra,b as oa,u as ca,c as la,d as Zt,e as mt,W as da}from"./useWorkflowSubmission-BeJQ3BuO.js";import{u as Xt,M as ua}from"./use-runtime-models-BH9r4Yc1.js";import{u as Os,A as ma,m as pa,a as fa,i as ha,b as ga}from"./main-LCg1nQGB.js";import{u as ba,S as wa,i as xa,s as xs}from"./index-CPfhqyDz.js";import{K as Pn,u as ya,M as Ia}from"./ModelDropdown-DjvIvi8O.js";import{b as ka,l as Na,a as kn,m as va,s as Sa,c as Da,P as Ea,d as _a}from"./ai-generation-preferences-service-CqwXb9Cs.js";import{setCanvasBoard as ys}from"./canvas-insertion-Dq3gR9Nw.js";import{s as Is}from"./workflow-submission-service-CmBBMIis.js";import{r as qs,S as Ca,a as En,b as nn,f as ja,c as Ta}from"./skill-dsl-parser-DS3VOBFI.js";import"./model-benchmark-service-CkIRp-Sq.js";import"./video-generation-C7qCz-ZF.js";import"./video-analyze-aDVIfgUi.js";import"./model-selection-BvdXmVGX.js";/* empty css */const ve="external-skill-packages";let Un=[],rn=[],_n=!1;async function Be(){var n,t;if(!_n){try{let e=await Ne.get(ve),s=null;try{s=await Aa()}catch(c){console.warn("[ExternalSkillService] 预构建 bundle 加载失败(非致命):",c)}if(!(e&&Array.isArray(e)&&e.length>0))s&&s.skills&&s.skills.length>0&&(e=[{name:s.name||"baoyu-skills",skills:s.skills,metadata:s.metadata}],await Ne.set(ve,e),console.log(`[ExternalSkillService] 已加载预构建 bundle: ${s.skills.length} 个 Skill`));else if(s&&s.skills&&s.skills.length>0){const c=(n=s.metadata)==null?void 0:n.bundleVersion,r=e.find(a=>a.name===(s.name||"baoyu-skills")),m=(t=r==null?void 0:r.metadata)==null?void 0:t.bundleVersion;if(c&&c!==m){const a={name:s.name||"baoyu-skills",skills:s.skills,metadata:s.metadata},p=e.filter(w=>w.name!==a.name);e=[a,...p],await Ne.set(ve,e),console.log(`[ExternalSkillService] 预构建 bundle 已更新: ${m||"无"} → ${c} (${s.skills.length} 个 Skill)`)}else if(!c&&!m){const a={name:s.name||"baoyu-skills",skills:s.skills,metadata:s.metadata},p=e.filter(w=>w.name!==a.name);e=[a,...p],await Ne.set(ve,e),console.log(`[ExternalSkillService] 预构建 bundle 已强制刷新(旧版本无版本号): ${s.skills.length} 个 Skill`)}}e&&Array.isArray(e)&&await ln(e)}catch(e){console.error("[ExternalSkillService] 初始化失败:",e)}_n=!0}}async function Aa(){try{const n=await sn(()=>import("./external-skills-BcV6ATYi.js"),[],import.meta.url);return n.default||n}catch{return null}}async function Ma(){return await Be(),[...Un]}async function Vn(n){await Be();const t=await Ne.get(ve),e=t&&Array.isArray(t)?[...t]:[],s=e.findIndex(o=>o.name===n.name);s>=0?e[s]=n:e.push(n),await Ne.set(ve,e),await ln(e)}async function Pa(n){await Be();const t=await Ne.get(ve);if(!t||!Array.isArray(t))return;const e=t.filter(s=>s.name!==n);await Ne.set(ve,e),await ln(e)}async function Ua(n){await Be();const t=await Ne.get(ve);if(!t)return[];const e=t.find(s=>s.name===n);return(e==null?void 0:e.skills)??[]}async function Va(){return await Be(),[...rn]}async function Ba(){await Be();const n=await Ne.get(ve);return n?n.flatMap(t=>t.skills):[]}async function Ws(n){await Be();const t=await Ne.get(ve);if(!t)return null;for(const e of t){const s=e.skills.find(o=>o.id===n);if(s)return s}return null}async function za(n){const t=await Ws(n);return(t==null?void 0:t.content)??null}async function Ra(n,t){var N;const s=await(await sn(async()=>{const{default:f}=await import("./tool-windows-CtLXQDGF.js").then(b=>b.j);return{default:f}},__vite__mapDeps([0]),import.meta.url)).default.loadAsync(n);let o=null;const c=((N=s.file(/\.claude-plugin\/marketplace\.json$/))==null?void 0:N[0])||s.file("marketplace.json");if(c){const f=await c.async("text");o=ra(f)}const r=t||(o==null?void 0:o.name)||n.name.replace(/\.zip$/i,""),m=[],a=/(?:^|\/)(skills\/([^/]+)\/SKILL\.md)$/;for(const[f,b]of Object.entries(s.files)){if(b.dir)continue;const g=f.match(a);if(g){const A=g[2],y=await b.async("text"),v=new Map,j=f.substring(0,f.lastIndexOf("SKILL.md"));for(const[S,k]of Object.entries(s.files))if(!k.dir&&S.startsWith(j)&&S!==f){const M=S.substring(j.length);if(M.startsWith("references/")||M.startsWith("prompts/")){const T=await k.async("text");v.set(M,T)}}m.push({dirName:A,skillMdContent:y,references:v.size>0?v:void 0})}}if(m.length===0)throw new Error("ZIP 文件中未找到有效的 Skill(预期路径: skills/*/SKILL.md)");const p=oa(m,r,o),w={name:r,url:void 0,skills:p,metadata:o==null?void 0:o.metadata};return await Vn(w),w}async function Oa(n,t="custom"){const e=aa(n);if(!e)throw new Error("无法解析 SKILL.md 内容,请检查格式是否正确(需包含 YAML front matter)");const s={id:`${t}:${e.name}`,name:e.name,description:e.description,type:Ca,content:e.body,source:t};await Be();const o=await Ne.get(ve),c=o&&Array.isArray(o)?[...o]:[];let r=c.find(a=>a.name===t);r||(r={name:t,skills:[],metadata:{description:"手动导入的 Skill"}},c.push(r));const m=r.skills.findIndex(a=>a.id===s.id);return m>=0?r.skills[m]=s:r.skills.push(s),await Ne.set(ve,c),await ln(c),s}async function qa(n){await Vn(n)}async function ln(n){Un=n.map(e=>({name:e.name,url:e.url,skillCount:e.skills.length,metadata:e.metadata})),rn=[];for(const e of n)for(const s of e.skills)rn.push({id:s.id,name:s.name,description:s.description,source:s.source,sourceUrl:s.sourceUrl,category:s.category,outputType:s.outputType});const t=n.flatMap(e=>e.skills);qs(t)}async function Wa(){await Ne.remove(ve),Un=[],rn=[],qs([]),_n=!1}const Ls={initialize:Be,getPackages:Ma,addPackage:Vn,removePackage:Pa,getSkillsByPackage:Ua,getAllExternalSkillsMeta:Va,getAllExternalSkills:Ba,getSkillById:Ws,getSkillContentById:za,importFromZip:Ra,importFromPastedContent:Oa,importFromBundle:qa,clearAll:Wa},La=({onSelectPrompt:n,language:t,extraActions:e})=>{const{history:s,removeHistory:o,togglePinHistory:c,refreshHistory:r}=Os({deduplicateWithPresets:!1}),{confirm:m,confirmDialog:a}=Si(),[p,w]=l.useState(!1),N=l.useRef(null),f=l.useRef(null),b=l.useRef(null),g=l.useMemo(()=>(ma[t]||[]).map((te,K)=>({id:`preset_${K}`,content:te.content,isPreset:!0,modelType:te.modelType,scene:te.scene})),[t]),A=100,y=l.useMemo(()=>{const T=new Set(g.map(C=>C.content.trim().toLowerCase())),K=s.filter(C=>!T.has(C.content.trim().toLowerCase())).slice(0,A).map(C=>({id:C.id,content:C.content,pinned:C.pinned,modelType:C.modelType})),X=g.map(C=>({id:C.id,content:C.content,pinned:!1,isPreset:!0,modelType:C.modelType,scene:C.scene}));return[...K,...X]},[s,g]);l.useEffect(()=>()=>{f.current&&clearTimeout(f.current),b.current&&clearTimeout(b.current)},[]);const v=l.useCallback(()=>{b.current&&(clearTimeout(b.current),b.current=null),f.current=setTimeout(()=>{r(),w(!0)},150)},[r]),j=l.useCallback(()=>{f.current&&(clearTimeout(f.current),f.current=null),b.current=setTimeout(()=>{w(!1)},200)},[]),S=l.useCallback(T=>{n({content:T.content,modelType:T.modelType,scene:T.scene}),w(!1)},[n]),k=l.useCallback(async T=>{T.startsWith("preset_")||!await m({title:t==="zh"?"确认删除提示词":"Delete Prompt",description:t==="zh"?"确定要删除这条历史提示词吗?此操作不可撤销。":"Are you sure you want to delete this prompt history item? This action cannot be undone.",confirmText:t==="zh"?"删除":"Delete",cancelText:t==="zh"?"取消":"Cancel",danger:!0})||o(T)},[m,t,o]),M=l.useCallback(T=>{T.startsWith("preset_")||c(T)},[c]);return u.jsxDEV("div",{ref:N,className:"prompt-history-popover",children:[u.jsxDEV("div",{className:"prompt-history-popover__actions",children:[u.jsxDEV("button",{className:"prompt-history-popover__trigger",title:t==="zh"?"提示词":"Prompts","data-track":"ai_input_click_history",onMouseEnter:v,onMouseLeave:j,children:u.jsxDEV(Di,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:188,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:181,columnNumber:9},void 0),e]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:180,columnNumber:7},void 0),p&&u.jsxDEV("div",{className:"prompt-history-popover__panel-wrapper",onMouseEnter:v,onMouseLeave:j,children:u.jsxDEV(Ei,{title:t==="zh"?"提示词":"Prompts",items:y,onSelect:S,onTogglePin:M,onDelete:k,language:t,showCount:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:200,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:195,columnNumber:9},void 0),a]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:179,columnNumber:5},void 0)};function Fa(n){var t;return!!((t=n.params)!=null&&t.longVideoMeta)}function Ha(n){var t;return((t=n.params)==null?void 0:t.longVideoMeta)||null}class ht{constructor(){this.isInitialized=!1,this.batches=new Map,this.initTimestamp=0}static getInstance(){return ht.instance||(ht.instance=new ht),ht.instance}initialize(){this.isInitialized||(this.isInitialized=!0,this.initTimestamp=Date.now(),Ms.observeTaskUpdates().subscribe(t=>{if(t.type==="taskUpdated"&&t.task.status===pt.COMPLETED&&t.task.type===_i.VIDEO&&Fa(t.task)){if((t.task.completedAt||0)<this.initTimestamp)return;this.handleSegmentCompleted(t.task).catch(s=>{console.error("[LongVideoChain] Error handling completed segment:",s)})}}))}async handleSegmentCompleted(t){var p;const e=Ha(t);if(!e)return;const{segmentIndex:s,totalSegments:o,scripts:c,batchId:r}=e,m=(p=t.result)==null?void 0:p.url;let a=this.batches.get(r);if(a||(a={batchId:r,totalSegments:o,completedSegments:new Map,processedSegments:new Set,creatingNextFor:null,isMerging:!1,mergeCompleted:!1,scripts:c||[],characterReferenceUrls:e.characterReferenceUrls,characterDescription:e.characterDescription},this.batches.set(r,a)),!a.processedSegments.has(s)){if(a.processedSegments.add(s),m&&a.completedSegments.set(s,m),a.completedSegments.size===o){await this.mergeAndInsert(a);return}if(a.creatingNextFor!==s&&s<o){a.creatingNextFor=s;try{await this.createNextSegment(t,e,c,m,a.characterReferenceUrls,a.characterDescription)}finally{a.creatingNextFor=null}}}}async createNextSegment(t,e,s,o,c,r){const m=e.segmentIndex+1,a=s.find(N=>N.index===m);if(!a){console.error(`[LongVideoChain] Script not found for segment ${m}`);return}let p;if(o)try{p=(await Ci(o)).dataUrl}catch(N){console.error("[LongVideoChain] Failed to extract last frame:",N)}const w={...e,segmentIndex:m,needsLastFrame:m<e.totalSegments,characterReferenceUrls:c??e.characterReferenceUrls,characterDescription:r??e.characterDescription};ji(a,w,p)}async mergeAndInsert(t){if(!(t.isMerging||t.mergeCompleted)){t.isMerging=!0;try{const e=[];for(let r=1;r<=t.totalSegments;r++){const m=t.completedSegments.get(r);m&&e.push(m)}if(e.length===0){console.error("[LongVideoChain] No video URLs to merge");return}const s=this.extractTransitions(t),c=await pa(e,(r,m,a)=>{const p=a||`${m} ${r.toFixed(1)}%`},{transitions:s,transitionDuration:.5});await this.insertMergedVideo(c.url),t.mergeCompleted=!0,this.cleanupBatch(t.batchId)}catch(e){console.error("[LongVideoChain] Merge failed:",e),this.cleanupBatch(t.batchId)}finally{t.isMerging=!1}}}async insertMergedVideo(t){try{await Ti("video",t)}catch(e){console.error("[LongVideoChain] Failed to insert video to canvas:",e)}}extractTransitions(t){return!t.scripts||t.scripts.length===0?[]:t.scripts.sort((e,s)=>e.index-s.index).slice(0,-1).map(e=>e.transition_hint||"cut")}cleanupBatch(t){const e=this.batches.get(t);e&&(e.completedSegments.clear(),e.processedSegments.clear(),this.batches.delete(t))}getBatchStatus(t){const e=this.batches.get(t);return e?{completed:e.completedSegments.size,total:e.totalSegments,isMerging:e.isMerging,mergeCompleted:e.mergeCompleted}:null}}const Ga=ht.getInstance();function $a(){Ga.initialize()}function ks(){return`img-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}async function Ns(n){return new Promise((t,e)=>{const s=new Image,o=n.startsWith("http")&&!n.startsWith(location.origin);s.crossOrigin="anonymous",s.onload=()=>t(s),s.onerror=()=>{e(o?new Error("无法加载外部图片,可能是跨域 (CORS) 限制。请先下载图片到本地后再操作。"):new Error("图片加载失败,请检查图片是否有效"))},s.src=n})}function Ka(n,t=.92){return n.toDataURL("image/jpeg",t)}class Ya{async split(t,e){const{rows:s,cols:o}=e;if(s<1||o<1)throw new Error("Grid rows and cols must be at least 1");const c=await Ns(t),r=c.naturalWidth,m=c.naturalHeight,a=Math.floor(r/o),p=Math.floor(m/s),w=[];for(let N=0;N<s;N++)for(let f=0;f<o;f++){const b=N*o+f,g=f*a,A=N*p,y=document.createElement("canvas");y.width=a,y.height=p;const v=y.getContext("2d");if(!v)throw new Error("Failed to get canvas 2d context");v.drawImage(c,g,A,a,p,0,0,a,p);const j=Ka(y);w.push({id:ks(),imageData:j,originalIndex:b,width:a,height:p})}return w}async splitToBlob(t,e){const{rows:s,cols:o}=e;if(s<1||o<1)throw new Error("Grid rows and cols must be at least 1");const c=await Ns(t),r=c.naturalWidth,m=c.naturalHeight,a=Math.floor(r/o),p=Math.floor(m/s),w=[];for(let N=0;N<s;N++)for(let f=0;f<o;f++){const b=N*o+f,g=f*a,A=N*p,y=document.createElement("canvas");y.width=a,y.height=p;const v=y.getContext("2d");if(!v)throw new Error("Failed to get canvas 2d context");v.drawImage(c,g,A,a,p,0,0,a,p);const j=await new Promise((k,M)=>{y.toBlob(T=>{T?k(T):M(new Error("Failed to create blob"))},"image/png",.92)}),S=URL.createObjectURL(j);w.push({id:ks(),imageData:S,originalIndex:b,width:a,height:p})}return w}revokeBlobUrls(t){for(const e of t)e.imageData.startsWith("blob:")&&URL.revokeObjectURL(e.imageData)}}const vs=new Ya;function _e(n,t){return Math.random()*(t-n)+n}function Jt(n){const t=[...n];for(let e=t.length-1;e>0;e--){const s=Math.floor(Math.random()*(e+1));[t[e],t[s]]=[t[s],t[e]]}return t}class Za{calculate(t,e,s,o){switch(e){case"scattered":return this.scatteredLayout(t,s,o);case"grid":return this.gridLayout(t,s);case"circular":return this.circularLayout(t,s,o);case"inspiration-board":return this.inspirationBoardLayout(t,s,o);default:return console.warn(`[LayoutEngine] Unknown layout style: ${e}, falling back to grid`),this.gridLayout(t,s)}}scatteredLayout(t,e,s){const{maxRotation:o=15,minScale:c=.85,maxScale:r=1.15,positionJitter:m=40}=s||{},{canvasWidth:a,canvasHeight:p,startX:w,startY:N,gap:f=20}=e,b=t.length,g=Math.ceil(Math.sqrt(b)),A=Math.ceil(b/g),y=Math.max(...t.map(K=>K.width)),v=Math.max(...t.map(K=>K.height)),j=a-f*2,S=p-f*2,k=j/g,M=S/A,T=Math.min((k-f)/y,(M-f)/v,1),te=Jt(t.map((K,X)=>X));return t.map((K,X)=>{const C=Math.floor(X/g),O=X%g,z=w+f+O*k+k/2,ne=N+f+C*M+M/2,L=_e(-m,m),ee=_e(-m,m),De=_e(-o,o),ze=_e(c,r),Re=T*ze,de=K.width*Re,Ue=K.height*Re;return{...K,x:z+L-de/2,y:ne+ee-Ue/2,rotation:De,scale:Re,zIndex:te[X]}})}gridLayout(t,e){const{canvasWidth:s,canvasHeight:o,startX:c,startY:r,gap:m=20}=e,a=t.length,p=Math.ceil(Math.sqrt(a)),w=Math.ceil(a/p),N=Math.max(...t.map(j=>j.width)),f=Math.max(...t.map(j=>j.height)),b=s-m*(p+1),g=o-m*(w+1),A=b/p,y=g/w,v=Math.min(A/N,y/f,1);return t.map((j,S)=>{const k=Math.floor(S/p),M=S%p,T=j.width*v,te=j.height*v,K=c+m+M*(A+m),X=r+m+k*(y+m),C=K+(A-T)/2,O=X+(y-te)/2;return{...j,x:C,y:O,rotation:0,scale:v,zIndex:S}})}circularLayout(t,e,s){const{centerIndex:o=-1,radius:c,startAngle:r=-90}=s||{},{canvasWidth:m,canvasHeight:a,startX:p,startY:w}=e,N=p+m/2,f=w+a/2,b=o>=0&&o<t.length?t.filter((O,z)=>z!==o):t,g=o>=0&&o<t.length?t[o]:null,A=Math.max(...t.map(O=>O.width)),y=Math.max(...t.map(O=>O.height)),v=Math.max(A,y),j=b.length,S=v*.8,k=j*v*1.2,M=Math.max(S,k/(2*Math.PI)),T=c||Math.min(M,Math.min(m,a)/2-v/2),te=Math.min(m,a),K=Math.min(te*.25/v,1),X=[];if(g){const O=g.width*K*1.2,z=g.height*K*1.2;X.push({...g,x:N-O/2,y:f-z/2,rotation:0,scale:K*1.2,zIndex:j})}const C=360/j;return b.forEach((O,z)=>{const L=(r+z*C)*Math.PI/180,ee=O.width*K,De=O.height*K,ze=N+T*Math.cos(L)-ee/2,Re=f+T*Math.sin(L)-De/2;X.push({...O,x:ze,y:Re,rotation:0,scale:K,zIndex:z})}),X}inspirationBoardLayout(t,e,s){const{minWidthRatio:o=Gt.minWidthRatio,maxWidthRatio:c=Gt.maxWidthRatio,maxRotation:r=Gt.maxRotation,gap:m=Gt.gap}=s||{},{canvasWidth:a,canvasHeight:p,startX:w,startY:N}=e,f=t.length,b=this.assignSizeCategories(f),g=t.reduce((M,T)=>M+T.width,0)/f,A=t.reduce((M,T)=>M+T.height,0)/f,y=a||1200,v=p||600,j=Math.min(y*.25/g,v*.4/A,1),S=this.calculateInspirationBoardPositions(f,y,v,m),k=Jt(t.map((M,T)=>T));return t.map((M,T)=>{const te=S[T],K=b[T];let X;switch(K){case"large":X=_e(1.2,c);break;case"medium":X=_e(.9,1.1);break;case"small":X=_e(o,.85);break;default:X=1}const C=j*X,O=_e(-r,r),z=_e(-20,20),ne=_e(-15,15),L=M.width*C,ee=M.height*C;return{...M,x:w+te.x+z-L/2,y:N+te.y+ne-ee/2,rotation:O,scale:C,zIndex:k[T]}})}assignSizeCategories(t){const e=[],s=Math.max(2,Math.floor(t*.25)),o=Math.max(2,Math.floor(t*.25)),c=t-s-o;for(let r=0;r<s;r++)e.push("large");for(let r=0;r<c;r++)e.push("medium");for(let r=0;r<o;r++)e.push("small");return Jt(e)}calculateInspirationBoardPositions(t,e,s,o){const c=[],r=Math.ceil(t/4),m=Math.ceil(t/r),a=(e-o*2)/m,p=(s-o*2)/r;for(let w=0;w<t;w++){const N=Math.floor(w/m),f=w%m,b=o+f*a+a/2,g=o+N*p+p/2,A=_e(-a*.3,a*.3),y=_e(-p*.2,p*.2);c.push({x:b+A,y:g+y})}return Jt(c)}calculateRequiredSize(t,e,s=.5){const o=t.length,c=Math.ceil(Math.sqrt(o)),r=Math.ceil(o/c),m=Math.max(...t.map(b=>b.width)),a=Math.max(...t.map(b=>b.height)),p=20,w=e==="scattered"?60:40,N=c*m*s+(c+1)*p+w*2,f=r*a*s+(r+1)*p+w*2;return{width:N,height:f}}}const Ss=new Za;class Xa{constructor(){this.board=null}setBoard(t){this.board=t}getBoard(){return this.board}async generate(t){const{theme:e,gridConfig:s=$t.gridConfig,layoutStyle:o=$t.layoutStyle,imageSize:c=$t.imageSize,imageQuality:r=$t.imageQuality}=t;try{const m=this.buildPrompt(e,s),a=await Ai.generateImage(m,{size:c,quality:r,response_format:"url"});if(!a.data||a.data.length===0)throw new Error("AI 生成图片失败:未返回图片数据");const p=a.data[0].url||a.data[0].b64_json,w=p&&Mi(String(p));if(!w)throw new Error("AI 生成图片失败:未返回图片 URL");const N=await as.getImageForAI(w),f=N.type==="base64"?N.value:w,b=await vs.split(f,s),g=this.calculateLayoutParams(b),A=Ss.calculate(b,o,g);return{success:!0,originalImageUrl:w,elements:A}}catch(m){return console.error("[GridImageService] Generation failed:",m),{success:!1,error:m.message||"宫格图生成失败"}}}async processExistingImage(t,e,s="scattered"){try{const o=await as.getImageForAI(t),c=o.type==="base64"?o.value:t,r=await vs.split(c,e),m=this.calculateLayoutParams(r),a=Ss.calculate(r,s,m);return{success:!0,originalImageUrl:t,elements:a}}catch(o){return console.error("[GridImageService] Processing failed:",o),{success:!1,error:o.message||"宫格图处理失败"}}}async insertToBoard(t,e){if(!this.board)throw new Error("画板未初始化,请先调用 setBoard");let s=(e==null?void 0:e[0])??100,o=e==null?void 0:e[1];if(o===void 0){const r=Pi(this.board);o=(r==null?void 0:r[1])??100,s=(r==null?void 0:r[0])??s}const c=[...t].sort((r,m)=>r.zIndex-m.zIndex);for(const r of c){const m=s+r.x,a=o+r.y,p={url:r.imageData,width:r.width*r.scale,height:r.height*r.scale};Ui.insertImage(this.board,p,[m,a])}}async generateAndInsert(t,e){const s=await this.generate(t);return s.success&&s.elements&&await this.insertToBoard(s.elements,e),s}buildPrompt(t,e){const s=Vi.zh;return s(t,e.rows,e.cols)}calculateLayoutParams(t){const e=t.reduce((b,g)=>b+g.width,0),s=t.reduce((b,g)=>b+g.height,0),o=t.length,c=Math.ceil(Math.sqrt(o)),r=Math.ceil(o/c),m=e/o,a=s/o,p=30,w=50,N=c*m+(c+1)*p+w*2,f=r*a+(r+1)*p+w*2;return{canvasWidth:N,canvasHeight:f,startX:0,startY:0,gap:p}}}const Ds=new Xa;function Ja(n){return{cleanText:n,selectedAudioModel:null,selectedImageModel:null,selectedVideoModel:null,selectedParams:[],selectedCount:null}}function Qa(){const n=on.get();return(n==null?void 0:n.imageModelName)||At()}function er(){const n=on.get();return(n==null?void 0:n.videoModelName)||vn()}function tr(){const n=on.get();return(n==null?void 0:n.audioModelName)||en()}function Es(){const n=on.get();return(n==null?void 0:n.textModelName)||"deepseek-v3.2"}function nr(n,t,e){if(t.length>0)return t.join(`
3
- `);if(n){if(e===1)return"请仔细分析这张图片的内容、风格、构图、色调和艺术特点,推测生成这张图片可能使用的原始提示词,然后基于你推测的提示词重新生成一张全新的、风格相似但内容不完全相同的图片。不要直接复制原图。";if(e>1)return"请分析这些图片的主题、风格和视觉元素,找出它们之间的共同点或关联性,然后创造性地将它们融合成一张全新的、和谐统一的图片。融合时请保持各图片的精华元素,确保最终作品在构图、色调和风格上协调一致。"}return""}function _t(n){return n.replace(":","x").toLowerCase()}function sr(n,t,e){const s=t.texts.length>0||t.images.length>0||t.videos.length>0||t.graphics.length>0,o=t.texts,c=t.images.length+t.graphics.length,r=Ja(n),m=r.cleanText.trim().length>0;let a=(e==null?void 0:e.generationType)||"image",p,w=!1;if(e!=null&&e.modelId){const k=ft(e.modelId);e.generationType||((k==null?void 0:k.type)==="video"?a="video":(k==null?void 0:k.type)==="audio"?a="audio":(k==null?void 0:k.type)==="text"?a="text":a="image"),p=e.modelId,w=!0}else r.selectedAudioModel?(a="audio",p=r.selectedAudioModel,w=!0):r.selectedVideoModel?(a="video",p=r.selectedVideoModel,w=!0):r.selectedImageModel?(a="image",p=r.selectedImageModel,w=!0):!s&&m&&!(e!=null&&e.generationType)?(a="agent",p=Es()):a==="video"?p=er():a==="audio"?p=tr():a==="text"||a==="agent"?p=Es():p=Qa();let N;(e==null?void 0:e.generationType)==="image"||(e==null?void 0:e.generationType)==="video"||(e==null?void 0:e.generationType)==="audio"||(e==null?void 0:e.generationType)==="text"?N="direct_generation":(e==null?void 0:e.generationType)==="agent"?N="agent_flow":N=m?"agent_flow":"direct_generation";const f=r.cleanText.trim(),b=o.join(`
4
- `).trim();let g;if(b&&f?g=`${b}
5
-
6
- ${f}`:f?g=f:b?g=b:s&&c>0?g=a==="text"?"":nr(s,[],c):g="",p.startsWith("mj")&&(e!=null&&e.params)){const k=ka(e.params);k&&(g=[g,k].filter(Boolean).join(" "))}const A=(e==null?void 0:e.count)||r.selectedCount||1;let y,v,j;if(e!=null&&e.params){a!=="audio"&&a!=="text"&&a!=="agent"&&!p.startsWith("mj")&&e.params.size&&(y=_t(e.params.size)),e.params.duration&&(v=e.params.duration);const k={};for(const[M,T]of Object.entries(e.params))M!=="size"&&M!=="duration"&&T&&(k[M]=T);Object.keys(k).length>0&&(j=k)}if(!y&&(e!=null&&e.size)&&e.size!=="auto"&&(y=_t(e.size)),!y&&(e==null?void 0:e.size)!=="auto"){for(const k of r.selectedParams)if(k.id==="size"){y=_t(k.value);break}}if(!v){for(const k of r.selectedParams)if(k.id==="duration"){v=k.value;break}}if(!y&&(e==null?void 0:e.size)!=="auto"&&a!=="text"&&a!=="agent"&&a!=="audio"){const k=ft(p);if((k==null?void 0:k.type)==="image"&&k.imageDefaults)y="1x1";else if((k==null?void 0:k.type)==="video"&&k.videoDefaults){const M=wn(p,(e==null?void 0:e.modelRef)||p,e==null?void 0:e.params);y=_t(M.size||k.videoDefaults.size),v||(v=M.duration||k.videoDefaults.duration)}else if(a==="image")y="1x1";else if(a==="video"){const M=wn(p,(e==null?void 0:e.modelRef)||p,e==null?void 0:e.params);y=_t(M.size),v||(v=M.duration)}}!v&&a==="video"&&(v=wn(p,(e==null?void 0:e.modelRef)||p,e==null?void 0:e.params).duration);const S=r.cleanText.trim();return{scenario:N,generationType:a,modelId:p,modelRef:(e==null?void 0:e.modelRef)||null,isModelExplicit:w,prompt:g,userInstruction:S,rawInput:n,count:A,size:y,duration:v,extraParams:j,parseResult:r,hasExtraContent:m,selection:t}}const Nn={id:nn,name:"自动"},_s=En.map(n=>({id:n.id,name:n.name,isSystem:!0})),ir=({value:n,onSelect:t,onAddSkill:e,disabled:s=!1})=>{const[o,c]=l.useState(!1),[r,m]=l.useState([]),[a,p]=l.useState([]),[w,N]=l.useState(""),[f,b]=l.useState(0),g=l.useRef(null),A=l.useRef(null),y=l.useCallback(async()=>{try{const O=(await Sn.getAllDirectories()).find(ee=>ee.name==="Skill");if(!O)return;const z=await Sn.getNoteMetasByDirectory(O.id),ne=new Set(En.map(ee=>ee.id)),L=z.filter(ee=>!ne.has(ee.id)).map(ee=>{var De;return{id:ee.id,name:ee.title,outputType:((De=ee.metadata)==null?void 0:De.outputType)||void 0}});m(L)}catch{}},[]),v=l.useCallback(async()=>{try{const C=await Ls.getAllExternalSkillsMeta(),O=new Set(En.map(ne=>ne.id)),z=C.filter(ne=>!O.has(ne.id)).map(ne=>({id:ne.id,name:ne.name,isExternal:!0,source:ne.source,outputType:ne.outputType}));p(z)}catch{}},[]);l.useEffect(()=>{if(o){y(),v(),N("");const O=[Nn,..._s,...a,...r].findIndex(z=>z.id===n);b(O>=0?O:0),setTimeout(()=>{var z;return(z=A.current)==null?void 0:z.focus()},50)}},[o,n]),l.useEffect(()=>{if(o&&g.current){const C=g.current.children[f];C&&C.scrollIntoView({block:"nearest"})}},[f,o]);const j=l.useCallback(C=>{C.preventDefault(),!s&&c(O=>!O)},[s]),S=l.useCallback(C=>{t(C),c(!1)},[t]),k=l.useCallback(C=>{C.stopPropagation(),c(!1),e()},[e]),M=[Nn,..._s,...a,...r],T=w.trim()?M.filter(C=>C.name.toLowerCase().includes(w.toLowerCase())||C.id.toLowerCase().includes(w.toLowerCase())):M,te=M.length>15,K=l.useCallback(C=>C==="Escape"?(c(!1),!0):C==="ArrowDown"?(b(O=>O<T.length-1?O+1:0),!0):C==="ArrowUp"?(b(O=>O>0?O-1:T.length-1),!0):C==="Enter"||C===" "||C==="Tab"?(f<T.length&&S(T[f].id),!0):!1,[f,T,S]),X=T.find(C=>C.id===n)||Nn;return u.jsxDEV(Pn,{isOpen:o,setIsOpen:c,disabled:s,openKeys:["Enter"," ","ArrowDown","ArrowUp"],onOpenKey:K,children:({containerRef:C,menuRef:O,portalPosition:z,handleTriggerKeyDown:ne})=>u.jsxDEV("div",{className:"skill-dropdown",ref:C,children:[u.jsxDEV("button",{className:`skill-dropdown__trigger ${o?"skill-dropdown__trigger--open":""}`,onMouseDown:j,onKeyDown:ne,disabled:s,type:"button",title:`Skill: ${X.name}`,children:[u.jsxDEV("span",{className:"skill-dropdown__icon-prefix",children:u.jsxDEV(rs,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:205,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:204,columnNumber:13},void 0),u.jsxDEV("span",{className:"skill-dropdown__label",children:X.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:207,columnNumber:13},void 0),u.jsxDEV(jn,{size:14,className:`skill-dropdown__chevron ${o?"skill-dropdown__chevron--open":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:208,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:196,columnNumber:11},void 0),o&&Cn.createPortal(u.jsxDEV("div",{ref:O,className:`skill-dropdown__menu ${cn}`,style:{position:"fixed",zIndex:Tn.DROPDOWN_PORTAL,left:z.left,bottom:window.innerHeight-z.top+8},onMouseDown:L=>L.stopPropagation(),onClick:L=>L.stopPropagation(),children:[u.jsxDEV("div",{className:"skill-dropdown__header",children:[u.jsxDEV(rs,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:228,columnNumber:19},void 0),u.jsxDEV("span",{children:"Skill"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:229,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:227,columnNumber:17},void 0),te&&u.jsxDEV("div",{className:"skill-dropdown__search",children:u.jsxDEV("input",{ref:A,type:"text",className:"skill-dropdown__search-input",placeholder:"搜索 Skill...",value:w,onChange:L=>{N(L.target.value),b(0)},onMouseDown:L=>L.stopPropagation(),onKeyDown:L=>L.stopPropagation()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:233,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:232,columnNumber:19},void 0),u.jsxDEV("div",{ref:g,className:"skill-dropdown__list",children:T.map((L,ee)=>{const De=L.id===n,ze=ee===f;return u.jsxDEV("div",{className:`skill-dropdown__item ${De?"skill-dropdown__item--selected":""} ${ze?"skill-dropdown__item--highlighted":""}`,onClick:()=>S(L.id),onMouseEnter:()=>b(ee),children:[u.jsxDEV("span",{className:"skill-dropdown__item-label",children:L.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:259,columnNumber:25},void 0),L.outputType==="image"&&u.jsxDEV(Ps,{size:12,className:"skill-dropdown__item-image-icon"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:261,columnNumber:27},void 0),L.outputType==="video"&&u.jsxDEV(Us,{size:12,className:"skill-dropdown__item-image-icon"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:264,columnNumber:27},void 0),L.outputType==="ppt"&&u.jsxDEV(Bi,{size:12,className:"skill-dropdown__item-image-icon"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:267,columnNumber:27},void 0),L.isSystem&&u.jsxDEV("span",{className:"skill-dropdown__item-badge",children:"系统"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:270,columnNumber:27},void 0),L.isExternal&&u.jsxDEV("span",{className:"skill-dropdown__item-badge",children:"系统"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:273,columnNumber:27},void 0),De&&u.jsxDEV(An,{size:14,className:"skill-dropdown__item-check"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:276,columnNumber:27},void 0)]},L.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:253,columnNumber:23},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:248,columnNumber:17},void 0),u.jsxDEV("div",{className:"skill-dropdown__divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:282,columnNumber:17},void 0),u.jsxDEV("div",{className:"skill-dropdown__add-btn",onClick:k,onMouseDown:L=>L.preventDefault(),children:[u.jsxDEV(zi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:288,columnNumber:19},void 0),u.jsxDEV("span",{children:"添加 Skill"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:289,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:283,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:215,columnNumber:15},void 0),document.body)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:195,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:187,columnNumber:5},void 0)};var Pe=(n=>(n.VIDEO="视频创作",n.IMAGE="图片生成",n.MINDMAP="思维导图",n.FLOWCHART="流程图",n.GRID="宫格图",n.SVG="SVG矢量图",n))(Pe||{});const Ct=3,Cs=[{id:"grid-emoji",title:"智能拆分宫格图",description:"宫格图,风格统一",prompt:"生成16宫格猫咪表情包",category:Pe.GRID,imageUrl:"https://tuziphoto.codernote.club/aitu/gonggetu.jpg",badgeColor:"badge--grid"},{id:"flowchart-process",title:"业务流程图",description:"使用 Mermaid 语法生成清晰的流程图",prompt:"绘制一个用户注册登录的流程图,包含邮箱验证、密码校验、短信验证码、登录成功/失败等节点",category:Pe.FLOWCHART,imageUrl:"https://tuziphoto.codernote.club/aitu/liuchengtu.png",badgeColor:"badge--flowchart"},{id:"mindmap-project",title:"项目规划脑图",description:"快速生成结构化的思维导图,梳理项目计划",prompt:"创建一个关于「移动应用开发」的思维导图,包含需求分析、UI设计、前端开发、后端开发、测试上线等主要分支",category:Pe.MINDMAP,imageUrl:"https://tuziphoto.codernote.club/aitu/siweidaotu.png",badgeColor:"badge--mindmap"}],ar={[Pe.VIDEO]:{bg:"#fce7f3",text:"#be185d"},[Pe.IMAGE]:{bg:"#dbeafe",text:"#1d4ed8"},[Pe.MINDMAP]:{bg:"#dcfce7",text:"#15803d"},[Pe.FLOWCHART]:{bg:"#fef3c7",text:"#b45309"},[Pe.GRID]:{bg:"#f3e8ff",text:"#7c3aed"},[Pe.SVG]:{bg:"#e0e7ff",text:"#4338ca"}},rr=({template:n,onClick:t})=>{const e=ar[n.category],s=o=>{o.preventDefault()};return u.jsxDEV("div",{className:"inspiration-card",onMouseDown:s,onClick:t,"data-track":`inspiration_click_${n.id}`,children:[u.jsxDEV("div",{className:"inspiration-card__image-wrapper",children:[u.jsxDEV("img",{src:n.imageUrl,alt:n.title,className:"inspiration-card__image",loading:"lazy"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationCard.tsx",lineNumber:29,columnNumber:9},void 0),u.jsxDEV("span",{className:"inspiration-card__badge",style:{backgroundColor:e.bg,color:e.text},children:n.category},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationCard.tsx",lineNumber:37,columnNumber:9},void 0),u.jsxDEV("div",{className:"inspiration-card__hover-overlay",children:u.jsxDEV("div",{className:"inspiration-card__arrow",children:u.jsxDEV(Ri,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationCard.tsx",lineNumber:50,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationCard.tsx",lineNumber:49,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationCard.tsx",lineNumber:48,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationCard.tsx",lineNumber:28,columnNumber:7},void 0),u.jsxDEV("div",{className:"inspiration-card__content",children:[u.jsxDEV("h3",{className:"inspiration-card__title",children:n.title},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationCard.tsx",lineNumber:57,columnNumber:9},void 0),u.jsxDEV("p",{className:"inspiration-card__description",children:n.description},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationCard.tsx",lineNumber:58,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationCard.tsx",lineNumber:56,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationCard.tsx",lineNumber:21,columnNumber:5},void 0)},js="aitu_hide_inspiration_board",or=({isCanvasEmpty:n,onSelectPrompt:t,onOpenPromptTool:e,visible:s=!0,className:o=""})=>{const[c,r]=l.useState(0),[m,a]=l.useState(!1);l.useEffect(()=>{localStorage.getItem(js)==="true"&&a(!0)},[]);const p=Math.ceil(Cs.length/Ct),w=p>1,N=Cs.slice(c*Ct,(c+1)*Ct),f=l.useCallback(y=>{y.preventDefault(),y.stopPropagation(),r(v=>(v-1+p)%p)},[p]),b=l.useCallback(y=>{y.preventDefault(),y.stopPropagation(),r(v=>(v+1)%p)},[p]),g=l.useCallback(y=>{t({prompt:y,modelType:"agent"})},[t]),A=l.useCallback(y=>{y.preventDefault(),y.stopPropagation(),a(!0),localStorage.setItem(js,"true")},[]);return!n||!s||m?null:u.jsxDEV("div",{className:`inspiration-board ${o}`,children:[u.jsxDEV("div",{className:"inspiration-board__header",children:[u.jsxDEV("h3",{className:"inspiration-board__title",children:"灵感创意"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:83,columnNumber:9},void 0),u.jsxDEV("button",{className:"inspiration-board__hide-btn",onClick:A,onMouseDown:y=>y.preventDefault(),title:"不再提示","data-track":"inspiration_click_hide",children:[u.jsxDEV(Oi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:93,columnNumber:11},void 0),u.jsxDEV("span",{children:"不再提示"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:94,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:86,columnNumber:9},void 0),e&&u.jsxDEV("button",{className:"inspiration-board__prompt-btn",onClick:e,onMouseDown:y=>y.preventDefault(),title:"提示词工具","data-track":"inspiration_click_prompt_tool",children:[u.jsxDEV(qi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:106,columnNumber:13},void 0),u.jsxDEV("span",{children:"提示词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:107,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:99,columnNumber:11},void 0),w&&u.jsxDEV("div",{className:"inspiration-board__pagination",children:[u.jsxDEV("span",{className:"inspiration-board__page-indicator",children:[c+1," / ",p]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:113,columnNumber:13},void 0),u.jsxDEV("div",{className:"inspiration-board__nav-buttons",children:[u.jsxDEV("button",{className:"inspiration-board__nav-btn",onMouseDown:y=>y.preventDefault(),onClick:f,"aria-label":"上一页","data-track":"inspiration_click_prev",children:u.jsxDEV(Wi,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:124,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:117,columnNumber:15},void 0),u.jsxDEV("button",{className:"inspiration-board__nav-btn",onMouseDown:y=>y.preventDefault(),onClick:b,"aria-label":"下一页","data-track":"inspiration_click_next",children:u.jsxDEV(Li,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:133,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:126,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:116,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:112,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:82,columnNumber:7},void 0),u.jsxDEV("div",{className:"inspiration-board__grid",children:[N.map(y=>u.jsxDEV(rr,{template:y,onClick:()=>g(y.prompt)},y.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:143,columnNumber:11},void 0)),N.length<Ct&&Array.from({length:Ct-N.length}).map((y,v)=>u.jsxDEV("div",{className:"inspiration-card inspiration-card--placeholder"},`placeholder-${v}`,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:153,columnNumber:13},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:141,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:78,columnNumber:5},void 0)},nt=[{value:"image",label:"图片",icon:u.jsxDEV(Ps,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:17,columnNumber:40},void 0),zh:"图片",en:"Image"},{value:"video",label:"视频",icon:u.jsxDEV(Us,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:18,columnNumber:40},void 0),zh:"视频",en:"Video"},{value:"audio",label:"音频",icon:u.jsxDEV(Fi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:19,columnNumber:40},void 0),zh:"音频",en:"Audio"},{value:"text",label:"文本",icon:u.jsxDEV(Hi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:20,columnNumber:39},void 0),zh:"文本",en:"Text"},{value:"agent",label:"Agent",icon:u.jsxDEV(Gi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:21,columnNumber:43},void 0),zh:"Agent",en:"Agent"}],cr=({value:n,onSelect:t,disabled:e=!1})=>{const[s,o]=l.useState(!1),{language:c}=Mn(),[r,m]=l.useState(0),a=l.useRef(null);l.useEffect(()=>{if(s){const b=nt.findIndex(g=>g.value===n);m(b>=0?b:0)}},[s,n]),l.useEffect(()=>{if(s&&a.current){const b=a.current.children[r];b&&b.scrollIntoView({block:"nearest"})}},[r,s]);const p=l.useCallback(b=>{b.preventDefault(),!e&&o(g=>!g)},[e]),w=l.useCallback(b=>{t(b),o(!1)},[t]),N=l.useCallback(b=>b==="Escape"?(o(!1),!0):b==="ArrowDown"?(m(g=>g<nt.length-1?g+1:0),!0):b==="ArrowUp"?(m(g=>g>0?g-1:nt.length-1),!0):b==="Enter"||b===" "||b==="Tab"?(w(nt[r].value),!0):!1,[r,w]),f=nt.find(b=>b.value===n)||nt[0];return u.jsxDEV(Pn,{isOpen:s,setIsOpen:o,disabled:e,openKeys:["Enter"," ","ArrowDown","ArrowUp"],onOpenKey:N,children:({containerRef:b,menuRef:g,portalPosition:A,handleTriggerKeyDown:y})=>u.jsxDEV("div",{className:"generation-type-dropdown",ref:b,children:[u.jsxDEV("button",{className:`generation-type-dropdown__trigger ${s?"generation-type-dropdown__trigger--open":""}`,onMouseDown:p,onKeyDown:y,disabled:e,type:"button",title:`${c==="zh"?"生成类型":"Type"}: ${c==="zh"?f.zh:f.en} (↑↓ Tab)`,children:[u.jsxDEV("span",{className:"generation-type-dropdown__icon-prefix",children:f.icon},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:107,columnNumber:13},void 0),u.jsxDEV("span",{className:"generation-type-dropdown__label",children:c==="zh"?f.zh:f.en},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:108,columnNumber:13},void 0),u.jsxDEV(jn,{size:14,className:`generation-type-dropdown__chevron ${s?"generation-type-dropdown__chevron--open":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:111,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:99,columnNumber:11},void 0),s&&Cn.createPortal(u.jsxDEV("div",{ref:g,className:`generation-type-dropdown__menu ${cn}`,style:{position:"fixed",zIndex:Tn.DROPDOWN_PORTAL,left:A.left,bottom:window.innerHeight-A.top+8},onMouseDown:v=>v.stopPropagation(),onClick:v=>v.stopPropagation(),children:[u.jsxDEV("div",{className:"generation-type-dropdown__header",children:[u.jsxDEV(Vs,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:127,columnNumber:17},void 0),u.jsxDEV("span",{children:c==="zh"?"生成类型 (↑↓ Tab)":"Generation type (↑↓ Tab)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:128,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:126,columnNumber:15},void 0),u.jsxDEV("div",{ref:a,className:"generation-type-dropdown__list",children:nt.map((v,j)=>{const S=v.value===n,k=j===r;return u.jsxDEV("div",{className:`generation-type-dropdown__item ${S?"generation-type-dropdown__item--selected":""} ${k?"generation-type-dropdown__item--highlighted":""}`,onClick:()=>w(v.value),onMouseEnter:()=>m(j),children:[u.jsxDEV("span",{className:"generation-type-dropdown__item-icon",children:v.icon},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:141,columnNumber:23},void 0),u.jsxDEV("span",{className:"generation-type-dropdown__item-label",children:c==="zh"?v.zh:v.en},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:142,columnNumber:23},void 0),S&&u.jsxDEV(An,{size:14,className:"generation-type-dropdown__item-check"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:145,columnNumber:38},void 0)]},v.value,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:135,columnNumber:21},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:130,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:114,columnNumber:13},void 0),document.body)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:98,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/GenerationTypeDropdown.tsx",lineNumber:90,columnNumber:5},void 0)},jt=[1,2,3,4,5,10,20],lr=({value:n,onSelect:t,disabled:e=!1,isOpen:s,onOpenChange:o})=>{const{value:c,setValue:r}=ya({controlledValue:s,defaultValue:!1,onChange:o}),{language:m}=Mn(),[a,p]=l.useState(0),w=l.useRef(null);l.useEffect(()=>{if(c){const g=jt.indexOf(n);p(g>=0?g:0)}},[c,n]),l.useEffect(()=>{if(c&&w.current){const g=w.current.children[a];g&&g.scrollIntoView({block:"nearest"})}},[a,c]);const N=l.useCallback(g=>{g.preventDefault(),!e&&r(!c)},[e,c,r]),f=l.useCallback(g=>{t(g),r(!1)},[t]),b=l.useCallback(g=>g==="Escape"?(r(!1),!0):g==="ArrowDown"?(p(A=>A<jt.length-1?A+1:0),!0):g==="ArrowUp"?(p(A=>A>0?A-1:jt.length-1),!0):g==="Enter"||g===" "||g==="Tab"?(f(jt[a]),!0):!1,[a,f]);return u.jsxDEV(Pn,{isOpen:c,setIsOpen:r,disabled:e,openKeys:["Enter"," ","ArrowDown","ArrowUp"],onOpenKey:b,children:({containerRef:g,menuRef:A,portalPosition:y,handleTriggerKeyDown:v})=>u.jsxDEV("div",{className:"count-dropdown",ref:g,children:[u.jsxDEV("button",{className:`count-dropdown__trigger ${c?"count-dropdown__trigger--open":""}`,onMouseDown:N,onKeyDown:v,disabled:e,type:"button",title:`${m==="zh"?"生成数量":"Count"}: ${n} (↑↓ Tab)`,children:[u.jsxDEV("span",{className:"count-dropdown__label",children:[n,m==="zh"?"个":""]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:110,columnNumber:13},void 0),u.jsxDEV(jn,{size:14,className:`count-dropdown__chevron ${c?"count-dropdown__chevron--open":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:113,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:102,columnNumber:11},void 0),c&&Cn.createPortal(u.jsxDEV("div",{ref:A,className:`count-dropdown__menu ${cn}`,style:{position:"fixed",zIndex:Tn.DROPDOWN_PORTAL,left:y.left,bottom:window.innerHeight-y.top+8},onMouseDown:j=>j.stopPropagation(),onClick:j=>j.stopPropagation(),children:[u.jsxDEV("div",{className:"count-dropdown__header",children:u.jsxDEV("span",{children:m==="zh"?"生成数量 (↑↓ Tab)":"Count (↑↓ Tab)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:129,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:128,columnNumber:15},void 0),u.jsxDEV("div",{ref:w,className:"count-dropdown__list",children:jt.map((j,S)=>{const k=j===n,M=S===a;return u.jsxDEV("div",{className:`count-dropdown__item ${k?"count-dropdown__item--selected":""} ${M?"count-dropdown__item--highlighted":""}`,onClick:()=>f(j),onMouseEnter:()=>p(S),children:[u.jsxDEV("span",{className:"count-dropdown__item-label",children:[j,m==="zh"?"个":j>1?" items":" item"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:142,columnNumber:23},void 0),k&&u.jsxDEV(An,{size:14,className:"count-dropdown__item-check"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:145,columnNumber:38},void 0)]},j,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:136,columnNumber:21},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:131,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:116,columnNumber:13},void 0),document.body)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:101,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/CountDropdown.tsx",lineNumber:93,columnNumber:5},void 0)},Fs=["right","bottom","left","top"],Qt=4;function dr(n,t,e,s,o=32){const c=s<=2?s:s<=4?2:3,r=Math.floor(e/c),m=e%c;return[n[0]+m*(t.width+o),n[1]+r*(t.height+o)]}function Hs(n,t){const{ignoreElementIds:e=[],ignoreTypes:s=["workzone"],extraOccupiedRects:o=[]}=t;return[...n.children.filter(ur).filter(c=>!s.includes(c.type??"")&&!e.includes(c.id??"")).map(c=>({...an.getRectangleByPoints(c.points),id:c.id,type:c.type})),...o]}function ur(n){return typeof n=="object"&&n!==null&&Array.isArray(n.points)&&n.points.length===2}function Gs(n,t,e){return n.x<t.x+t.width+e&&n.x+n.width+e>t.x&&n.y<t.y+t.height+e&&n.y+n.height+e>t.y}function mr(n,t,e,s){const o=[n];for(let c=1;c<=s;c+=1)o.push([n[0]+t*c,n[1]],[n[0],n[1]+e*c],[n[0]+t*c,n[1]+e*c],[n[0]-t*c,n[1]],[n[0]-t*c,n[1]+e*c],[n[0],n[1]-e*c],[n[0]+t*c,n[1]-e*c],[n[0]-t*c,n[1]-e*c]);return o}function pr(n,t,e,s,o){const c=Math.max(o,32),r=Math.max(Math.round(Math.min(t.width,t.height)*.16),28),m=Math.max(Math.round(Math.min(t.width,t.height)*.12),18),a=t.width+r,p=t.height+r,w=[];for(let N=0;N<e;N+=1){const f=Math.floor(N/Qt),b=N%Qt,g=Math.min(Qt,e-f*Qt),A=b-(g-1)/2,y=n.x+n.width/2-t.width/2,v=n.y+n.height/2-t.height/2,j=Math.abs(A)*m;let S=y,k=v;switch(s){case"right":S=n.x+n.width+c+f*a+j,k=v+A*(t.height+r);break;case"left":S=n.x-c-t.width-f*a-j,k=v+A*(t.height+r);break;case"top":S=y+A*(t.width+r),k=n.y-c-t.height-f*p-j;break;case"bottom":default:S=y+A*(t.width+r),k=n.y+n.height+c+f*p+j;break}w.push([Math.round(S),Math.round(k)])}return w}function Ts(n,t,e,s,o){return n.reduce((r,m)=>{const a={x:m[0],y:m[1],width:t.width,height:t.height};return r+e.filter(p=>Gs(a,p,s)).length},0)*1e3+Fs.indexOf(o)*10}function fr(n,t,e,s,o){var p;const{gap:c=40,padding:r=16}=o,m=Hs(n,o),a=Fs.map(w=>({side:w,positions:pr(t,e,s,w,c)}));return a.sort((w,N)=>Ts(w.positions,e,m,r,w.side)-Ts(N.positions,e,m,r,N.side)),((p=a[0])==null?void 0:p.positions)??[]}function hr(n,t,e,s,o={}){const{frameRect:c,extraOccupiedRects:r=[],...m}=o,a={...m,extraOccupiedRects:r},p=c?fr(n,c,e,s,a):Array.from({length:s},(N,f)=>dr(t,e,f,s,a.gap)),w=[...r];return p.map(N=>{const f=gr(n,N,e,{...a,extraOccupiedRects:w});return w.push({x:f[0],y:f[1],width:e.width,height:e.height}),f})}function gr(n,t,e,s={}){const{gap:o=40,padding:c=16,maxSearchRadius:r=6}=s,m=Hs(n,s),a=e.width+o,p=e.height+o,w=mr(t,a,p,r);for(const N of w){const f={x:N[0],y:N[1],width:e.width,height:e.height};if(!m.some(g=>Gs(f,g,c)))return N}return[t[0],t[1]+p*(r+1)]}function st(n){return typeof n=="string"&&n.trim()?n.trim():null}function br(n){return n==="image"||n==="video"||n==="audio"||n==="text"||n==="agent"}function wr(n){if(!n||typeof n!="object")return!1;const t=n;return typeof t.modelId=="string"&&t.modelId.trim().length>0&&(t.profileId===null||typeof t.profileId=="string")&&(t.providerIdHint===null||typeof t.providerIdHint=="string")&&(t.vendorHint===null||typeof t.vendorHint=="string")&&typeof t.updatedAt=="number"&&Number.isFinite(t.updatedAt)}function Bn(){try{const n=window.localStorage.getItem(Dn);if(!n)return{};const t=JSON.parse(n);if(!t||typeof t!="object")return{};const e={};return Object.entries(t).forEach(([s,o])=>{br(s)&&wr(o)&&(e[s]={modelId:o.modelId.trim(),profileId:st(o.profileId),providerIdHint:st(o.providerIdHint),vendorHint:st(o.vendorHint),updatedAt:o.updatedAt})}),e}catch{return{}}}function $s(n){try{if(!Object.values(n).some(Boolean)){window.localStorage.removeItem(Dn);return}window.localStorage.setItem(Dn,JSON.stringify(n))}catch{}}function xr(n){const t=Bn();return t[n]?t[n]||null:n==="agent"&&t.text||null}function yr(n,t){var o;const e=st(t.modelId);if(!e){Ks(n);return}const s=Bn();s[n]={modelId:e,profileId:st((o=t.modelRef)==null?void 0:o.profileId),providerIdHint:st(t.providerIdHint),vendorHint:st(t.vendorHint),updatedAt:Date.now()},$s(s)}function Ks(n){const t=Bn();t[n]&&(delete t[n],$s(t))}function He(n,t,e,s){var c;const o=n.metadata||{};return{id:n.id,name:n.name,generationType:n.generationType,prompt:o.prompt||((c=t==null?void 0:t.aiContext)==null?void 0:c.finalPrompt)||"",aiAnalysis:n.aiAnalysis,count:o.count,createdAt:n.createdAt,status:n.status,steps:n.steps.map(r=>({id:r.id,description:r.description,status:r.status,mcp:r.mcp,args:r.args,result:r.result,error:r.error,duration:r.duration,options:r.options})),retryContext:t,postProcessingStatus:e,insertedCount:s}}let As=!1;As||(xa(),$a(),Ls.initialize().catch(n=>{console.warn("[AIInputBar] 外部 Skill 服务初始化失败(非致命):",n)}),As=!0);function Ys(n){return n.selectionKey||(n.sourceProfileId?`${n.sourceProfileId}::${n.id}`:n.id)}function Ge(n,t){return t!=null&&t.profileId?`${t.profileId}::${n}`:n}function Tt(n){return n?tn(n.sourceProfileId||null,n.id):null}function Ir(n){return n<=0?"0":n<=20?"1-20":n<=100?"21-100":n<=300?"101-300":n<=800?"301-800":"800+"}function Me(n,t,e){if(!t)return;const s=Ge(t,e),o=(e==null?void 0:e.profileId)||null;return n.find(c=>Ys(c)===s)||n.find(c=>c.id===t&&(c.sourceProfileId||null)===o)||(o===null?n.find(c=>c.id===t&&!c.sourceProfileId):void 0)||n.find(c=>c.id===t)}function kr(n,t){return n==="agent"&&t==="text"?"agent":t}function Nr(n){if(!n)return!1;const t=n.toLowerCase();return t.includes("#video")?!0:[".mp4",".webm",".mov",".avi",".mkv",".m4v",".flv",".wmv"].some(s=>t.includes(s))}const Zs=Bs.memo(({language:n,onSelectionChange:t,externalBoardRef:e,onCanvasEmptyChange:s,isDataReady:o,onFrameSelected:c})=>{const r=ga(),m=l.useRef(r);m.current=r,l.useEffect(()=>(ws(r),ys(r),xs(r),Is(r),Ds.setBoard(r),e&&(e.current=r),()=>{ws(null),ys(null),xs(null),Is(null),Ds.setBoard(null),e&&(e.current=null)}),[r,e]);const a=l.useRef(s);a.current=s,l.useEffect(()=>{if(!r||!a.current||!o)return;const f=setInterval(()=>{var g;const b=r.children||[];(g=a.current)==null||g.call(a,b.length===0)},500);return()=>{clearInterval(f)}},[r,o]);const p=l.useRef(t);p.current=t;const w=l.useRef(c);return w.current=c,l.useEffect(()=>{const N=async()=>{var A,y,v,j;const b=m.current;if(!b)return;const g=zs(b);if(g.length===1&&Rs(g[0])){const S=g[0],k=an.getRectangleByPoints(S.points);(A=w.current)==null||A.call(w,{id:S.id,width:k.width,height:k.height})}else(y=w.current)==null||y.call(w,null);if(g.length===0){p.current([]);return}try{const S=await ia(b),k=[];S.graphicsImage&&k.push({url:S.graphicsImage,name:n==="zh"?"图形元素":"Graphics",type:"graphics",width:(v=S.graphicsImageDimensions)==null?void 0:v.width,height:(j=S.graphicsImageDimensions)==null?void 0:j.height});for(const M of S.remainingImages){const T=M.url||"",te=Nr(T);k.push({url:T,name:M.name||(te?`video-${Date.now()}`:`image-${Date.now()}`),type:te?"video":"image",width:M.width,height:M.height})}S.remainingText&&S.remainingText.trim()&&k.push({type:"text",text:S.remainingText.trim(),name:n==="zh"?"文字内容":"Text Content"}),p.current(k)}catch(S){console.error("Failed to process selected content:",S),p.current([])}};N();const f=()=>{setTimeout(N,50)};return document.addEventListener("mouseup",f),()=>{document.removeEventListener("mouseup",f)}},[n]),null});Zs.displayName="SelectionWatcher";const Xs=Bs.memo(({className:n,isDataReady:t})=>{const{language:e}=Mn(),s=Xt("image"),o=Xt("video"),c=Xt("audio"),r=Xt("text"),m=fa(),a=ca(),{addHistory:p}=Os(),{addAsset:w}=$i(),N=l.useRef(m.sendWorkflowMessage);N.current=m.sendWorkflowMessage;const f=l.useRef(m.updateWorkflowMessage);f.current=m.updateWorkflowMessage;const b=l.useRef(m.appendAgentLog);b.current=m.appendAgentLog;const g=l.useRef(m.updateThinkingContent);g.current=m.updateThinkingContent;const A=l.useRef(m.setSelectedContent);A.current=m.setSelectedContent;const y=l.useRef(m.registerRetryHandler);y.current=m.registerRetryHandler;const v=l.useRef(null),j=l.useRef([]),S=l.useRef(null),k=Na(),M=l.useCallback((i,d,h)=>{if(!i)return;const _=j.current,D=(h!=null&&h.workflowId&&(h!=null&&h.batchId)&&typeof h.batchIndex=="number"?tt.getAnchorByBatchSlot(i,{workflowId:h.workflowId,batchId:h.batchId,batchIndex:h.batchIndex}):null)||(h!=null&&h.workflowId?tt.getAnchorByWorkflowId(i,h.workflowId):null)||(_[0]?tt.getAnchorById(i,_[0]):null);if(!D)return;const P=D.taskIds.includes(d)?D.taskIds:[...D.taskIds,d];tt.updateAnchor(i,D.id,{taskIds:P,primaryTaskId:D.primaryTaskId||d})},[]),T=l.useCallback((i,d,h)=>{const _=j.current;_.length===0||!i||_.forEach(D=>{tt.updateAnchor(i,D,xn(d,h))})},[]),te=l.useCallback(i=>{const d=j.current;d.length===0||!i||(d.forEach(h=>{tt.removeAnchor(i,h)}),j.current=[])},[]),K=l.useCallback((i,d)=>{const h=xr(i);if(!h)return;const _=Me(d,h.modelId,tn(h.profileId,h.modelId));if(_)return _;Ks(i)},[]),X=l.useCallback((i,d)=>{const h=K(i,d);if(h)return h;const D=ut(i==="video"?"video":i==="audio"?"audio":i==="text"||i==="agent"?"text":"image"),P=Me(d,D.modelId,tn(D.profileId,D.modelId));if(P)return P;const H=i==="video"?vn():i==="audio"?en():i==="text"||i==="agent"?os():At();return Me(d,H,null)||d[0]},[K]),C=k.generationType,z=X(C,C==="video"?o:C==="audio"?c:C==="text"||C==="agent"?r:s)||ft(k.selectedModel)||ft(C==="video"?vn():C==="audio"?en():C==="text"||C==="agent"?os():At()),ne=X("image",s)||ft(At()),L=ut("image"),ee=(ne==null?void 0:ne.id)||L.modelId||At(),De=Tt(ne)||tn(L.profileId,L.modelId),ze=Ge((z==null?void 0:z.id)||ee,Tt(z)||De),Re=C==="agent"?{}:kn(C,(z==null?void 0:z.id)||ee,ze,k.selectedParams),[de,Ue]=l.useState(""),[zn,Rn]=l.useState(!1),[dn,un]=l.useState([]),[gt,it]=l.useState([]),[Oe,$e]=l.useState(!1),he=l.useRef(null),[at,rt]=l.useState(!1),[Js,Qs]=l.useState(null),[E,qe]=l.useState(C),[Ke,On]=l.useState(k.selectedSkillId||nn),[U,qn]=l.useState((z==null?void 0:z.id)||ee),[q,Wn]=l.useState(Tt(z)||De),Mt=l.useMemo(()=>{if(E!=="image"||Me(s,U,q))return s;const d=Kt("image",U,q);return d?[d,...s]:s},[E,s,U,q]),Pt=l.useMemo(()=>{if(E!=="video"||Me(o,U,q))return o;const d=Kt("video",U,q);return d?[d,...o]:o},[E,U,q,o]),Ut=l.useMemo(()=>{if(E!=="audio"||Me(c,U,q))return c;const d=Kt("audio",U,q);return d?[d,...c]:c},[c,E,U,q]),Vt=l.useMemo(()=>{if(E!=="text"&&E!=="agent"||Me(r,U,q))return r;const d=Kt("text",U,q);return d?[d,...r]:r},[E,U,q,r]),[Ee,Bt]=l.useState(()=>{if(C==="agent")return{};const i=(z==null?void 0:z.id)||ee,d=cs(i).find(h=>h.id==="size");return{...Re,...i.startsWith("mj")||!d?{}:{size:Re.size||ls(i)}}}),bt=l.useRef(Ee),Ln=l.useRef(C==="agent"?"agent":`${C}:${ze}`);l.useEffect(()=>{bt.current=Ee},[Ee]);const[wt,Fn]=l.useState(k.selectedCount),[Hn,mn]=l.useState(!1),[Gn,pn]=l.useState(!1),[$n,fn]=l.useState(!1),Ye=l.useRef(null),ei=l.useCallback(i=>{mn(i),i||(Ye.current=null)},[]),ti=l.useCallback(i=>{pn(i),i||(Ye.current=null)},[]),ni=l.useCallback(i=>{fn(i),i||(Ye.current=null)},[]),[Kn,xt]=l.useState(!1),pe=l.useMemo(()=>[...gt,...dn],[gt,dn]),Ze=l.useMemo(()=>({invalidFile:e==="zh"?"请上传图片文件":"Please upload image files",fileTooLarge:e==="zh"?"图片大小不能超过 25MB":"Image size cannot exceed 25MB",loadFailed:e==="zh"?"加载图片失败":"Failed to load image",compressionFailed:e==="zh"?"图片压缩失败":"Image compression failed",compressing:i=>e==="zh"?`正在压缩图片 (${i.toFixed(1)}MB)...`:`Compressing image (${i.toFixed(1)}MB)...`,compressed:(i,d)=>e==="zh"?`压缩完成: ${i.toFixed(1)}MB → ${d.toFixed(1)}MB`:`Compressed: ${i.toFixed(1)}MB → ${d.toFixed(1)}MB`}),[e]);l.useEffect(()=>{const i=E==="video"?Pt:E==="audio"?Ut:E==="text"||E==="agent"?Vt:Mt,h=Me(i,U,q)||X(E,i);if(h){const _=Ge(U,q),D=Ys(h);_!==D&&(qn(h.id),Wn(Tt(h)))}E!=="agent"&&On(nn),(E==="agent"||E==="text"||E==="audio")&&Fn(1)},[Ut,E,Mt,X,U,q,Vt,Pt]);const zt=l.useMemo(()=>E==="video"?Pt:E==="audio"?Ut:E==="text"||E==="agent"?Vt:Mt,[Ut,E,Mt,Vt,Pt]),yt=l.useMemo(()=>{var h;if(E==="agent")return[];if(E==="video")return Ki(U,q||U,Ee);const i=cs(U);return E!=="audio"?i:(Ee.sunoAction||((h=i.find(_=>_.id==="sunoAction"))==null?void 0:h.defaultValue)||"music")==="lyrics"?i.filter(_=>_.id==="sunoAction"||_.id==="mv"||_.id==="title"||_.id==="tags"):i},[E,U,q,Ee]);l.useEffect(()=>{if(!at)return;const i=d=>{const h=d.target;Ot.current&&!Ot.current.contains(h)&&rt(!1)};return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[at]),l.useEffect(()=>()=>{he.current&&clearTimeout(he.current)},[]),l.useEffect(()=>{const i=d=>{var h;((h=d.detail)==null?void 0:h.type)!=="image"&&(he.current&&(clearTimeout(he.current),he.current=null),$e(!1))};return window.addEventListener("ai-generation-complete",i),()=>{window.removeEventListener("ai-generation-complete",i)}},[]),l.useEffect(()=>{const i=Ms.observeTaskUpdates().subscribe(d=>{var V,W;const h=d.task,_=a.getWorkflow();if(!_)return;const D=_.steps.find(B=>{const $=B.result;return($==null?void 0:$.taskId)===h.id});if(!D)return;let P=D.status,H=D.result,Y=D.error;switch(h.status){case pt.PENDING:case pt.PROCESSING:P="running";break;case pt.COMPLETED:P="completed",H={...typeof H=="object"?H:{},taskId:h.id,result:h.result};break;case pt.FAILED:P="failed",Y=((V=h.error)==null?void 0:V.message)||"任务执行失败";break;case pt.CANCELLED:P="skipped";break}if(P!==D.status){if(a.updateStep(D.id,P,H,Y),P==="failed"){const $=(W=D.options)==null?void 0:W.batchId;$&&_.steps.forEach(J=>{var we;J.id!==D.id&&((we=J.options)==null?void 0:we.batchId)===$&&J.status==="running"&&a.updateStep(J.id,"skipped",void 0,"前置任务失败")})}const B=a.getWorkflow();if(B){const $=He(B,v.current||void 0);f.current($);const J=S.current,we=Ce.current;J&&we&&Te.updateWorkflow(we,J,$)}}});return()=>i.unsubscribe()},[a]);const Yn=l.useRef(void 0),Rt=l.useRef(void 0);l.useEffect(()=>{const i=yn.observeCompletionEvents().subscribe(d=>{const h=a.getWorkflow(),_=h==null?void 0:h.steps.find(H=>{const Y=H.result;return(Y==null?void 0:Y.taskId)===d.taskId});let D,P;switch(d.type){case"postProcessingStarted":D="processing";break;case"postProcessingCompleted":D="completed",P=d.result.insertedCount;break;case"postProcessingFailed":D="failed";break}if(Yn.current=D,P!==void 0&&(Rt.current=(Rt.current||0)+P),h&&_){const H=a.getWorkflow();if(H){const Y=He(H,v.current||void 0,D,Rt.current);f.current(Y);const V=S.current,W=Ce.current;V&&W&&Te.updateWorkflow(W,V,Y)}}if(d.type==="postProcessingCompleted"){const H=d.result.firstElementPosition;he.current&&(clearTimeout(he.current),he.current=null),$e(!1),setTimeout(async()=>{var W;m.closeChatDrawer();const Y=S.current,V=Ce.current;if(Y&&V){const B=a.getWorkflow();if(B==null?void 0:B.steps.every(J=>J.status==="completed"||J.status==="failed"||J.status==="skipped")){const{workflowCompletionService:J}=await sn(async()=>{const{workflowCompletionService:se}=await import("./tool-windows-CtLXQDGF.js").then(F=>F.oY);return{workflowCompletionService:se}},__vite__mapDeps([0]),import.meta.url);(B==null?void 0:B.steps.every(se=>{const F=se.result;return F!=null&&F.taskId?J.isPostProcessingCompleted(F.taskId):!0}))&&(Te.removeWorkZone(V,Y),S.current=null)}}if(H&&V){const B=(W=V.host)==null?void 0:W.getBoundingClientRect();if(B){const $=V.viewport.zoom,J=H[0]-B.width/(2*$),we=H[1]-B.height/(2*$);Yi.updateViewport(V,[J,we],$)}}},500),Yn.current=void 0,Rt.current=void 0}});return()=>i.unsubscribe()},[a,m]);const Ce=l.useRef(null),{submitWorkflow:Zn}=la({boardRef:Ce,workZoneIdRef:S}),Ae=l.useRef(null),Ot=l.useRef(null),Xn=l.useRef(null);ba(Ae,{enableCopy:!0,stopPropagation:!0});const si=l.useCallback(i=>{var d;Ue(i.prompt),qe("agent"),(d=Ae.current)==null||d.focus(),Et.track("inspiration_selected",{promptLength:i.prompt.length,modelType:i.modelType})},[]),ii=l.useCallback(i=>{var d;Ue(i.content),i.modelType&&(i.modelType==="image"?qe("image"):i.modelType==="video"?qe("video"):i.modelType==="audio"?qe("audio"):i.modelType==="text"?qe("text"):i.modelType==="agent"&&qe("agent")),(d=Ae.current)==null||d.focus()},[]),ai=l.useCallback(()=>{const i=ds.find(d=>d.id==="knowledge-base");i&&(window.__kbPendingNavigation={directoryName:"Skill",autoCreateNote:!0},us.openTool(i),setTimeout(()=>{window.dispatchEvent(new CustomEvent("kb:navigate",{detail:{directoryName:"Skill",autoCreateNote:!0}}))},300))},[]),ri=l.useCallback(()=>{const i=ds.find(d=>d.id==="banana-prompt");if(!i){console.warn("[AIInputBar] Banana prompt tool not found");return}us.openTool(i)},[]),oi=l.useCallback(()=>{if(!(E!=="image"&&E!=="video")){if(!de.trim()){Ve.warning(e==="zh"?"请先输入提示词":"Please enter a prompt first");return}Rn(!0)}},[E,e,de]),ci=l.useCallback(async i=>{try{const d=new Image;d.onload=()=>{const h={type:"image",url:i.url,name:i.name||`素材-${Date.now()}`,width:d.naturalWidth||void 0,height:d.naturalHeight||void 0};it(_=>[..._,h]),xt(!1)},d.onerror=()=>{const h={type:"image",url:i.url,name:i.name||`素材-${Date.now()}`};it(_=>[..._,h]),xt(!1)},d.src=i.url}catch(d){console.error("Failed to select asset from library:",d),xt(!1)}},[]),li=l.useCallback(()=>{var i;(i=Xn.current)==null||i.click()},[]),Jn=l.useCallback(i=>new Promise((d,h)=>{const _=new FileReader;_.onload=()=>{const D=_.result,P=new Image;P.onload=()=>{d({url:D,width:P.naturalWidth,height:P.naturalHeight})},P.onerror=()=>{d({url:D,width:0,height:0})},P.src=D},_.onerror=h,_.readAsDataURL(i)}),[]),qt=l.useCallback(async i=>{const d=Array.from(i);if(d.length===0)return;const h=[];for(const[_,D]of d.entries()){if(!D.type.startsWith("image/")){Ve.error(Ze.invalidFile);continue}if(D.size>25*1024*1024){Ve.error(Ze.fileTooLarge);continue}try{let P=D;if(D.size>10*1024*1024){const{compressImageBlob:B,getCompressionStrategy:$}=await sn(async()=>{const{compressImageBlob:se,getCompressionStrategy:F}=await import("./tool-windows-CtLXQDGF.js").then(ge=>ge.oK);return{compressImageBlob:se,getCompressionStrategy:F}},__vite__mapDeps([0]),import.meta.url),J=$(D.size/(1024*1024)),we=Ve.loading({content:Ze.compressing(D.size/(1024*1024)),duration:0,placement:"top"});try{P=await B(D,J.targetSizeMB),Ve.close(we),Ve.success({content:Ze.compressed(D.size/(1024*1024),P.size/(1024*1024)),duration:2})}catch(se){Ve.close(we),console.error("[AIInputBar] Failed to compress image:",se),Ve.error(Ze.compressionFailed);continue}}const H=P instanceof File?P:new File([P],D.name||`pasted-image-${Date.now()}.png`,{type:P.type||D.type||"image/png"});w(H,ms.IMAGE,Zi.LOCAL,H.name).catch(B=>{console.warn("[AIInputBar] Failed to add asset to library:",B)});const{url:Y,width:V,height:W}=await Jn(H);h.push({type:"image",url:Y,name:H.name||`上传图片 ${_+1}`,width:V||void 0,height:W||void 0})}catch(P){console.error("[AIInputBar] Failed to import local image:",P),Ve.error(Ze.loadFailed)}}h.length>0&&it(_=>[..._,...h])},[w,Jn,Ze]),di=l.useCallback(async i=>{const d=i.target.files;!d||d.length===0||(await qt(d),i.target.value="")},[qt]),ui=l.useCallback(i=>{un(i)},[]),Qn=l.useRef(null),mi=l.useCallback(i=>{if(Qn.current=i,!i)return;const d=va(i.width,i.height,U);d&&Bt(h=>({...h,size:d}))},[U]),pi=l.useCallback(i=>{i<gt.length&&it(d=>d.filter((h,_)=>_!==i))},[gt.length]);l.useEffect(()=>{A.current(pe.map(i=>({type:i.type,url:i.url,text:i.text,name:i.name})))},[pe]),l.useEffect(()=>{const i=d=>{var V,W;const h=(V=d.clipboardData)==null?void 0:V.items;if(!h||h.length===0||!Array.from(h).some(B=>B.type.startsWith("image/")))return;const D=document.activeElement,P=Ot.current;if(!(!!P&&(P.contains(D)||at&&(D===document.body||(D==null?void 0:D.tagName)==="BODY"))))return;const Y=[];for(const B of Array.from(h)){if(!B.type.startsWith("image/"))continue;const $=B.getAsFile();$&&Y.push($)}Y.length!==0&&(d.preventDefault(),qt(Y),(W=Ae.current)==null||W.focus())};return document.addEventListener("paste",i),()=>{document.removeEventListener("paste",i)}},[qt,at]);const ot=l.useCallback(()=>{if(Ye.current!==null){const i=Ye.current;Ue(d=>d.substring(0,i)+d.substring(i+1)),Ye.current=null}},[]),Wt=l.useCallback(i=>{const d=kr(E,i.type);Et.track("ai_input_change_model",{model:i.id,type:i.type,profileId:i.sourceProfileId||null}),ot(),qe(d),qn(i.id);const h=Tt(i);Wn(h),yr(d,{modelId:i.id,modelRef:h,providerIdHint:i.sourceProfileId||(h==null?void 0:h.profileId),vendorHint:i.vendor}),Bt(d==="agent"?{}:kn(d,i.id,Ge(i.id,h))),mn(!1),setTimeout(()=>{var _;return(_=Ae.current)==null?void 0:_.focus()},0)},[ot,E]),fi=l.useCallback(i=>{const d=Me(zt,i,q)||Me(zt,i,null)||ft(i);d&&Wt(d)},[Wt,zt,q]),hi=l.useCallback(i=>{Wt(i)},[Wt]);l.useEffect(()=>{const i=(V,W)=>{const B=Object.keys(V),$=Object.keys(W);return B.length!==$.length?!1:B.every(J=>V[J]===W[J])},d=E==="agent"?"agent":`${E}:${Ge(U,q)}`,h=E==="agent"?{}:Ln.current===d?bt.current||{}:kn(E,U,Ge(U,q),bt.current),_={},D=yt.find(V=>V.id==="size"),P=h.size,H=!P||!(D!=null&&D.options)||D.options.some(V=>V.value===P);!U.startsWith("mj")&&D&&(_.size=P&&H?P:D.defaultValue||ls(U)),yt.forEach(V=>{if(V.id==="size")return;const W=h[V.id],B=!W||V.valueType!=="enum"||!V.options||V.options.some($=>$.value===W);W&&B?_[V.id]=W:V.defaultValue&&(_[V.id]=V.defaultValue)});const Y=Xi(U,_);i(bt.current||{},Y)||(Bt(Y),bt.current=Y),Ln.current=d},[E,U,q,yt]),l.useEffect(()=>{Sa({generationType:E,selectedModel:U,selectedParams:Ee,selectedCount:wt,selectedSkillId:Ke}),E!=="agent"&&Da(E,U,Ee,Ge(U,q))},[E,U,q,Ee,wt,Ke]);const gi=l.useCallback((i,d,h)=>{ot(),Bt(_=>{const D={..._};return d===void 0||d===""?delete D[i]:D[i]=d,D}),h!=null&&h.keepOpen||(pn(!1),setTimeout(()=>{var _;return(_=Ae.current)==null?void 0:_.focus()},0))},[ot]),bi=l.useCallback(i=>{ot(),Fn(i),fn(!1),setTimeout(()=>{var d;return(d=Ae.current)==null?void 0:d.focus()},0)},[ot]),hn=l.useCallback(async()=>{var i,d,h,_,D,P,H,Y,V;if(!(!de.trim()&&pe.length===0)&&!Oe){$e(!0);try{const W=E==="video"?"video":E==="audio"?"audio":E==="text"||E==="agent"?"text":"image",B=ps(W,q||U);if(console.log("[AIInputBar][handleGenerate] API Key 检查:",{hasApiKey:B}),!B){console.log("[AIInputBar][handleGenerate] 弹窗获取 API Key...");const x=await Ji();if(console.log("[AIInputBar][handleGenerate] API Key 输入完成:",{hasNewKey:!!x}),!x){$e(!1);return}console.log("[AIInputBar][handleGenerate] API Key 输入后设置状态:",{hasApiKey:ps(W,q||U)})}const $=pe.filter(x=>x.type==="image"&&x.url),J=pe.filter(x=>x.type==="graphics"&&x.url),we=[...$,...J].map(x=>{if(x.width&&x.height)return{width:x.width,height:x.height}}).filter(x=>x!==void 0),se={texts:pe.filter(x=>x.type==="text"&&x.text).map(x=>x.text),images:$.map(x=>x.url),videos:pe.filter(x=>x.type==="video"&&x.url).map(x=>x.url),graphics:J.map(x=>x.url),imageDimensions:we},F=sr(de,se,{modelId:U,modelRef:q,params:Ee,generationType:E,count:wt}),ge=[...se.images,...se.graphics];let ie;if(E==="agent"&&Ke!==nn){const x=ja(Ke);if(x)try{ie=await Zt(F,x,ge)}catch(R){console.warn("[AIInputBar] 系统 Skill 工作流转换失败,降级到通用工作流:",R),ie=mt(F,ge)}else{const R=Ta(Ke);if(R){console.log(`[AIInputBar] 外部 Skill: id=${R.id} name=${R.name} outputType=${R.outputType} contentLen=${((i=R.content)==null?void 0:i.length)||0}`);try{ie=await Zt(F,{id:R.id,name:R.name,type:"external",content:R.content,outputType:R.outputType},ge,()=>{console.log("[AIInputBar] AI 正在解析外部 Skill 工作流...")})}catch(G){console.warn("[AIInputBar] 外部 Skill 工作流转换失败,降级到角色扮演:",G),ie=await Zt(F,{id:R.id,name:R.name,type:"external",content:R.content,outputType:R.outputType},ge).catch(()=>mt(F,ge))}}else try{const G=await Sn.getNoteById(Ke);if(G){const re=((d=G.metadata)==null?void 0:d.outputType)||void 0;ie=await Zt(F,{id:G.id,name:G.title,type:"user",content:G.content,outputType:re},ge,()=>{console.log("[AIInputBar] AI 正在解析工作流...")})}else ie=mt(F,ge)}catch{ie=mt(F,ge)}}ie||(console.warn("[AIInputBar] Skill 工作流未能生成,降级到通用工作流"),ie=mt(F,ge))}else ie=mt(F,ge);console.log("[AIInputBar][handleGenerate] 即将创建 WorkZone, workflow.steps:",ie.steps.length);const I=Ce.current;if(I){const re=(h=I.host)==null?void 0:h.getBoundingClientRect(),ae=((_=I.viewport)==null?void 0:_.zoom)||1,ue=((P=(D=I.viewport)==null?void 0:D.origination)==null?void 0:P[0])||0,je=((Y=(H=I.viewport)==null?void 0:H.origination)==null?void 0:Y[1])||0,It=I.children.filter(me=>me.type!=="workzone"),Ht=ue+((re==null?void 0:re.width)||0)/2/ae,kt=je+((re==null?void 0:re.height)||0)/2/ae;let Ie=Ht-200,Z=kt,ct=Ie,Fe=kt-240/2;if(It.length>0){const me=zs(I);let oe=!1;if(me.length>0)try{const ce=In(I,me,!1);me.every(ke=>fs.isDrawElement(ke)&&fs.isImage(ke)||ha(ke))&&ce.width>ce.height?(Ie=ce.x+ce.width+50,Z=ce.y):(Ie=ce.x,Z=ce.y+ce.height+50),ct=Ie,Fe=Z,oe=!0}catch(ce){console.warn("[AIInputBar] Failed to calculate position for selected elements:",ce)}if(!oe){let ce=null,vt=-1/0;for(const ke of It)try{const dt=In(I,[ke],!1),St=dt.y+dt.height;St>vt&&(vt=St,ce=ke)}catch(dt){console.warn("[AIInputBar] Failed to get rectangle for element:",dt)}if(ce){const ke=In(I,[ce],!1);Ie=ke.x,Z=ke.y+ke.height+50,ct=Ie,Fe=Z}}}const Qe=He(ie),lt=Qn.current;let Nt,et,ns;if(lt){const me=I.children.find(oe=>oe.id===lt.id);if(me&&Rs(me)){Nt=lt.id,et={width:lt.width,height:lt.height};const oe=an.getRectangleByPoints(me.points);ns=oe,Ie=oe.x,Z=oe.y}}if(F.generationType==="image"){const me=Math.max(F.count??1,1),oe=me>1,ce=oe?void 0:Nt,vt=oe?void 0:et,ke=[],dt=`wf_batch_${ie.id}`,St=ce?null:hr(I,[Ie,Z],hs({workflowId:ie.id,expectedInsertPosition:[Ie,Z],requestedSize:F.size,requestedCount:1,zoom:ae,title:Qe.name||"图片生成",...xn("submitted")}).size??{width:320,height:180},me,{frameRect:oe?ns:void 0});for(let Se=0;Se<me;Se+=1){let Dt=hs({workflowId:ie.id,expectedInsertPosition:[Ie,Z],targetFrameId:ce,targetFrameDimensions:vt,frameAffinityId:oe?Nt:void 0,frameAffinityDimensions:oe?et:void 0,requestedSize:F.size,requestedCount:oe?1:me,batchId:oe?dt:void 0,batchIndex:oe?Se+1:void 0,batchTotal:oe?me:void 0,zoom:ae,title:Qe.name||"图片生成",...xn("submitted")});if(!ce){const is=St?St[Se]??Dt.position:Dt.position;Dt={...Dt,position:is,expectedInsertPosition:is}}const vi=tt.insertAnchor(I,Dt);ke.push(vi)}j.current=ke.map(Se=>Se.id),S.current=null,console.log("[AIInputBar][handleGenerate] Image Generation Anchor 已创建:",ke.map(Se=>Se.id));const[ss]=ke;ss&&setTimeout(()=>{const Se=an.getRectangleByPoints(ss.points);gs(I,[Se.x+Se.width/2,Se.y+Se.height/2],100)},100)}else{const me=Te.insertWorkZone(I,{workflow:Qe,position:[ct,Fe],size:{width:360,height:240},expectedInsertPosition:[Ie,Z],targetFrameId:Nt,targetFrameDimensions:et,zoom:ae});S.current=me.id,j.current=[],console.log("[AIInputBar][handleGenerate] WorkZone 已创建:",me.id),setTimeout(()=>{const oe=ct+180,ce=Fe+240/2;gs(I,[oe,ce],100)},100)}}const Q={rawInput:de,userInstruction:F.userInstruction,model:{id:F.modelId,type:F.generationType,isExplicit:F.isModelExplicit},defaultModels:{audio:ut("audio").modelId||en(),image:ut("image").modelId||"gemini-3-pro-image-preview-vip",video:ut("video").modelId||"veo3.1"},params:{count:F.count,size:F.size,duration:F.duration},selection:se,finalPrompt:F.prompt},fe=ut("text").modelId,xe={aiContext:Q,referenceImages:ge,textModel:fe};v.current=xe;try{console.log("[AIInputBar][handleGenerate] 开始提交工作流 submitWorkflowToSW...");const x=Date.now(),{usedSW:R}=await Zn(F,ge,xe,ie);if(console.log("[AIInputBar][handleGenerate] submitWorkflowToSW 返回:",{usedSW:R,耗时ms:Date.now()-x}),R){if(E==="image"&&T(I,"accepted"),de.trim()){const G=pe.length>0;p(de.trim(),G,E)}Ue(""),un([]),it([]),he.current&&clearTimeout(he.current),he.current=setTimeout(()=>{$e(!1),he.current=null},1e3);return}}catch(x){console.warn("[AIInputBar] SW execution failed, falling back to main thread:",x)}if(console.log("[AIInputBar] Fallback: Executing workflow in main thread:",ie.steps.length,"steps"),E==="image"&&T(I,"handoff"),de.trim()){const x=pe.length>0;p(de.trim(),x,E)}Ue(""),un([]),it([]),he.current&&clearTimeout(he.current),he.current=setTimeout(()=>{$e(!1),he.current=null},1e3);const le=[],be=[],Ft=(x,R)=>({onChunk:G=>{g.current(G)},onAddSteps:G=>{a.updateStep(x.id,"completed",{analysis:"completed"},void 0,Date.now()-R);const re=G.map((ue,je)=>({...ue,status:ue.status==="completed"?"completed":"pending",options:{mode:"queue",batchId:`agent_${Date.now()}`,batchIndex:je+1,batchTotal:G.length,globalIndex:je+1}}));a.addSteps(re),be.push(...re),G.forEach(ue=>{b.current({type:"tool_call",timestamp:Date.now(),toolName:ue.mcp,args:ue.args})});const ae=He(a.getWorkflow(),v.current||void 0);f.current(ae),S.current&&I&&Te.updateWorkflow(I,S.current,ae)},onUpdateStep:(G,re,ae,ue)=>{a.updateStep(G,re,ae,ue),b.current({type:"tool_result",timestamp:Date.now(),toolName:G,success:re==="completed",data:ae,error:ue});const je=He(a.getWorkflow(),v.current||void 0);f.current(je),S.current&&I&&Te.updateWorkflow(I,S.current,je)}});let We=!1;const Xe=()=>{const x=He(a.getWorkflow(),v.current||void 0);f.current(x),S.current&&I&&Te.updateWorkflow(I,S.current,x)},Je=async x=>{var re,ae,ue,je,It,Ht,kt;console.log("[AIInputBar] Executing step:",x.mcp,"with mode:",(re=x.options)==null?void 0:re.mode);const R=Date.now(),G=be.length;a.updateStep(x.id,"running"),Xe();try{const Ie={...x.options,...Ft(x,R)};console.log("[AIInputBar] Calling mcpRegistry.executeTool for:",x.mcp);const Z=await bs.executeTool({name:x.mcp,arguments:x.args},Ie);console.log("[AIInputBar] Tool result:",{success:Z.success,taskId:Z.taskId,error:Z.error});const ct=(ue=(ae=a.getWorkflow())==null?void 0:ae.steps.find(Fe=>Fe.id===x.id))==null?void 0:ue.status;if(Z.success){if(Z.taskId)le.push(Z.taskId),a.updateStep(x.id,"running",{taskId:Z.taskId}),M(I,Z.taskId,{workflowId:ie.id,batchId:(je=x.options)==null?void 0:je.batchId,batchIndex:(It=x.options)==null?void 0:It.batchIndex});else if(ct==="running"){const Fe=Z.type==="text"&&Z.data&&typeof Z.data=="object"&&"content"in Z.data?{content:Z.data.content}:Z.data;a.updateStep(x.id,"completed",Fe,void 0,Date.now()-R);const Qe=x.mcp==="generate_text"?(Ht=Z.data)==null?void 0:Ht.content:x.mcp==="ai_analyze"?(kt=Z.data)==null?void 0:kt.response:void 0;if((x.mcp==="generate_text"||x.mcp==="ai_analyze")&&Qe&&Qe.trim()&&be.length===G){const et={id:`${x.id}-insert-text`,mcp:"insert_to_canvas",args:{items:[{type:"text",content:Qe}]},description:x.mcp==="generate_text"?"将生成文本插入画布":"将 AI 回复插入画布",status:"pending"};a.addSteps([et]),be.push(et)}}}else return a.updateStep(x.id,"failed",void 0,Z.error||"执行失败",Date.now()-R),!1;return!0}catch(Ie){return a.updateStep(x.id,"failed",void 0,String(Ie)),!1}finally{Xe()}};for(const x of ie.steps){if(We){a.updateStep(x.id,"skipped"),Xe();continue}await Je(x)||(We=!0)}if(!We&&be.length>0){const x=a.getWorkflow();for(const R of be){if(We){a.updateStep(R.id,"skipped"),Xe();continue}const G=(V=a.getWorkflow())==null?void 0:V.steps.find(ae=>ae.id===R.id);if(!G){console.warn(`[AIInputBar] Step ${R.id} not found in workflow!`);continue}if(G.status==="completed")continue;await Je(G)||(We=!0)}}const Le=a.getWorkflow(),ye=Le==null?void 0:Le.steps.every(x=>x.status==="completed"||x.status==="failed"||x.status==="skipped"),bn=le.length>0;if(ye&&!bn){const x=S.current,R=j.current,G=Ce.current;(x||R.length>0)&&G&&(Le!=null&&Le.steps.every(ae=>{const ue=ae.result;return ue!=null&&ue.taskId?yn.isPostProcessingCompleted(ue.taskId):!0}))&&setTimeout(()=>{x&&(Te.removeWorkZone(G,x),S.current=null),R.length>0&&(T(G,"completed"),te(G))},1500)}}catch(W){console.error("Failed to create generation task:",W),E==="image"&&T(Ce.current,"failed",{error:W instanceof Error?W.message:"创建图片任务失败"}),a.abortWorkflow(),$e(!1)}}},[de,pe,Oe,U,q,a,Zn,p,Ee,E,wt,M,T,te]),gn=l.useCallback(async(i,d,h)=>{var ie;const _=i.retryContext;if(!_){console.error("[AIInputBar] No retry context available for workflow");return}h&&(S.current=h);const D={id:i.id,name:i.name,description:`重试: ${i.name}`,scenarioType:i.steps.some(I=>I.mcp==="ai_analyze")?"agent_flow":"direct_generation",generationType:i.generationType,steps:i.steps.map((I,Q)=>({id:I.id,mcp:I.mcp,args:I.args,description:I.description,status:Q<d?I.status:"pending",result:Q<d?I.result:void 0,error:Q<d?I.error:void 0,duration:Q<d?I.duration:void 0,options:I.options})),metadata:{prompt:i.prompt,userInstruction:_.aiContext.userInstruction,rawInput:_.aiContext.rawInput,modelId:_.aiContext.model.id,isModelExplicit:_.aiContext.model.isExplicit,count:i.count,size:_.aiContext.params.size,duration:_.aiContext.params.duration,referenceImages:_.referenceImages,selection:_.aiContext.selection},createdAt:Date.now()};a.startWorkflow(D),b.current({type:"retry",timestamp:Date.now(),reason:`从步骤 ${d+1} 开始重试`,attempt:1});const P=Ce.current,H=()=>{const I=He(a.getWorkflow(),_);f.current(I),S.current&&P&&Te.updateWorkflow(P,S.current,I)},Y=He(D,_);f.current(Y),S.current&&P&&Te.updateWorkflow(P,S.current,Y);const V=(I,Q)=>({onChunk:fe=>{g.current(fe)},onAddSteps:fe=>{a.updateStep(I.id,"completed",{analysis:"completed"},void 0,Date.now()-Q);const xe=fe.map((le,be)=>({...le,status:le.status==="completed"?"completed":"pending",options:{mode:"queue",batchId:`agent_${Date.now()}`,batchIndex:be+1,batchTotal:fe.length,globalIndex:be+1}}));a.addSteps(xe),W.push(...xe),fe.forEach(le=>{b.current({type:"tool_call",timestamp:Date.now(),toolName:le.mcp,args:le.args})}),H()},onUpdateStep:(fe,xe,le,be)=>{a.updateStep(fe,xe,le,be),b.current({type:"tool_result",timestamp:Date.now(),toolName:fe,success:xe==="completed",data:le,error:be}),H()}}),W=[];let B=!1;const $=new Map;i.steps.forEach(I=>{var fe;const Q=(fe=I.result)==null?void 0:fe.taskId;Q&&$.set(I.id,Q)});const J=async I=>{var xe,le,be,Ft,We,Xe;const Q=Date.now(),fe=W.length;a.updateStep(I.id,"running"),H();try{const Je=$.get(I.id),Le={...I.options,...V(I,Q),...Je?{retryTaskId:Je}:{}},ye=await bs.executeTool({name:I.mcp,arguments:I.args},Le),bn=(le=(xe=a.getWorkflow())==null?void 0:xe.steps.find(x=>x.id===I.id))==null?void 0:le.status;if(ye.success){if(ye.taskId)a.updateStep(I.id,"running",{taskId:ye.taskId}),M(P,ye.taskId,{workflowId:i.id,batchId:(be=I.options)==null?void 0:be.batchId,batchIndex:(Ft=I.options)==null?void 0:Ft.batchIndex});else if(bn==="running"){const x=ye.type==="text"&&ye.data&&typeof ye.data=="object"&&"content"in ye.data?{content:ye.data.content}:ye.data;a.updateStep(I.id,"completed",x,void 0,Date.now()-Q);const R=I.mcp==="generate_text"?(We=ye.data)==null?void 0:We.content:I.mcp==="ai_analyze"?(Xe=ye.data)==null?void 0:Xe.response:void 0;if((I.mcp==="generate_text"||I.mcp==="ai_analyze")&&R&&R.trim()&&W.length===fe){const ae={id:`${I.id}-insert-text`,mcp:"insert_to_canvas",args:{items:[{type:"text",content:R}]},description:I.mcp==="generate_text"?"将生成文本插入画布":"将 AI 回复插入画布",status:"pending"};a.addSteps([ae]),W.push(ae)}}}else return a.updateStep(I.id,"failed",void 0,ye.error||"执行失败",Date.now()-Q),!1;return!0}catch(Je){return a.updateStep(I.id,"failed",void 0,String(Je)),!1}finally{H()}},we=D.steps.slice(d);for(const I of we){if(B){a.updateStep(I.id,"skipped"),H();continue}await J(I)||(B=!0)}if(!B&&W.length>0)for(const I of W){if(B){a.updateStep(I.id,"skipped"),H();continue}const Q=(ie=a.getWorkflow())==null?void 0:ie.steps.find(xe=>xe.id===I.id);if(!Q||Q.status==="completed")continue;await J(Q)||(B=!0)}const se=a.getWorkflow(),F=se==null?void 0:se.steps.every(I=>I.status==="completed"||I.status==="failed"||I.status==="skipped"),ge=se==null?void 0:se.steps.some(I=>{var Q;return(Q=I.result)==null?void 0:Q.taskId});if(F&&!ge){const I=S.current,Q=Ce.current;I&&Q&&(se!=null&&se.steps.every(xe=>{const le=xe.result;return le!=null&&le.taskId?yn.isPostProcessingCompleted(le.taskId):!0}))&&setTimeout(()=>{Te.removeWorkZone(Q,I),S.current=null},1500)}},[a,M]);l.useEffect(()=>{y.current(gn);const i=Ce.current;i&&(i.__executeWorkflowRetry=gn)},[gn]);const wi=l.useCallback(i=>{var d;if(!i.nativeEvent.isComposing&&!(i.key==="Enter"&&(i.shiftKey||i.altKey))){if((Hn||Gn||$n)&&(i.key==="Enter"||i.key==="Tab")){i.preventDefault();return}if(i.key==="Enter"){i.preventDefault(),Et.track("ai_input_submit_keyboard"),hn();return}if(i.key==="Escape"){rt(!1),(d=Ae.current)==null||d.blur();return}}},[hn]),xi=l.useCallback(()=>{Et.track("ai_input_focus_textarea"),rt(!0)},[]),yi=l.useCallback(()=>{Et.track("ai_input_blur_textarea"),rt(!1)},[]),Ii=l.useCallback(i=>{const d=i.target.value,h=i.target.selectionStart||d.length;if(Ue(d),h>0){const _=d[h-1],D=h>1?d[h-2]:" ";_==="#"&&(D===" "||D===`
7
- `||h===1)&&(Ye.current=h-1,mn(!0),pn(!1),fn(!1))}},[]),ki=l.useMemo(()=>JSON.stringify({generationType:E,model:U,profileId:(q==null?void 0:q.profileId)||null,hasAttachedContent:pe.length>0,attachedCount:pe.length,promptLengthBucket:Ir(de.trim().length)}),[pe.length,E,de,U,q==null?void 0:q.profileId]),es=de.trim().length>0||pe.length>0,ts=Js===!0,Ni=dn.some(i=>{var d;return i.type==="text"&&((d=i.text)==null?void 0:d.trim())}),Lt=at||pe.length>0||zn;return u.jsxDEV("div",{ref:Ot,className:Yt("ai-input-bar",cn,n,{"ai-input-bar--with-inspiration":ts}),"data-testid":"ai-input-bar",children:[u.jsxDEV(Zs,{language:e,onSelectionChange:ui,externalBoardRef:Ce,onCanvasEmptyChange:Qs,isDataReady:t,onFrameSelected:mi},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3553,columnNumber:9},void 0),u.jsxDEV(or,{isCanvasEmpty:ts,onSelectPrompt:si,onOpenPromptTool:ri},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3562,columnNumber:9},void 0),u.jsxDEV("div",{className:Yt("ai-input-bar__container",{"ai-input-bar__container--expanded":Lt}),children:[u.jsxDEV("div",{className:"ai-input-bar__bottom-bar",children:[u.jsxDEV("input",{ref:Xn,type:"file",accept:"image/*",multiple:!0,onChange:di,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3574,columnNumber:13},void 0),u.jsxDEV("button",{className:"ai-input-bar__upload-btn",onMouseDown:i=>{i.preventDefault(),i.stopPropagation()},onClick:li,title:e==="zh"?"上传图片":"Upload images","data-track":"ai_input_click_upload",children:u.jsxDEV(Qi,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3593,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3583,columnNumber:13},void 0),u.jsxDEV("button",{className:"ai-input-bar__library-btn",onMouseDown:i=>{i.preventDefault(),i.stopPropagation()},onClick:()=>xt(!0),title:e==="zh"?"从素材库选择":"Select from library","data-track":"ai_input_click_library",children:u.jsxDEV(ea,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3606,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3596,columnNumber:13},void 0),u.jsxDEV(cr,{value:E,onSelect:qe,disabled:Oe},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3609,columnNumber:13},void 0),E==="agent"&&u.jsxDEV(ir,{value:Ke,onSelect:On,onAddSkill:ai,disabled:Oe},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3617,columnNumber:15},void 0),u.jsxDEV(Ia,{selectedModel:U,selectedSelectionKey:Ge(U,q),onSelect:fi,onSelectModel:hi,language:e,models:zt,header:e==="zh"?"选择模型 (↑↓ Tab)":"Select model (↑↓ Tab)",isOpen:Hn,onOpenChange:ei},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3625,columnNumber:13},void 0),E!=="agent"&&yt.length>0&&u.jsxDEV(Ea,{selectedParams:Ee,onParamChange:gi,compatibleParams:yt,modelId:U,language:e,isOpen:Gn,onOpenChange:ti},U,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3646,columnNumber:15},void 0),E!=="agent"&&E!=="text"&&E!=="audio"&&u.jsxDEV(lr,{value:wt,onSelect:bi,disabled:Oe,isOpen:$n,onOpenChange:ni},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3661,columnNumber:15},void 0),u.jsxDEV("div",{className:"ai-input-bar__bottom-spacer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3670,columnNumber:13},void 0),u.jsxDEV("button",{className:`ai-input-bar__send-btn ${es?"active":""} ${Oe?"loading":""}`,onMouseDown:i=>{i.preventDefault(),i.stopPropagation()},onClick:()=>hn(),disabled:!es||Oe,"data-track":"ai_input_click_send","data-track-params":ki,"data-testid":"ai-send-btn",children:u.jsxDEV(ta,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3686,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3672,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3573,columnNumber:11},void 0),u.jsxDEV("div",{className:Yt("ai-input-bar__input-area",{"ai-input-bar__input-area--expanded":Lt}),children:[pe.length>0&&u.jsxDEV("div",{className:"ai-input-bar__content-preview",children:u.jsxDEV(wa,{items:pe,language:e,enableHoverPreview:!0,onRemove:pi,removableStartIndex:gt.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3697,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3696,columnNumber:15},void 0),u.jsxDEV(La,{onSelectPrompt:ii,language:e,extraActions:Lt&&(E==="image"||E==="video")?u.jsxDEV("button",{type:"button",className:"prompt-history-popover__action-btn",onMouseDown:i=>{i.preventDefault(),i.stopPropagation(),rt(!0)},onClick:oi,title:e==="zh"?"优化提示词":"Optimize prompt","aria-label":e==="zh"?"优化提示词":"Optimize prompt","data-track":"ai_input_click_prompt_optimize",children:u.jsxDEV(Vs,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3728,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3713,columnNumber:19},void 0):null},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3707,columnNumber:13},void 0),u.jsxDEV("div",{className:"ai-input-bar__rich-input",children:u.jsxDEV("textarea",{ref:Ae,className:Yt("ai-input-bar__input",{"ai-input-bar__input--focused":at}),value:de,onChange:Ii,onKeyDown:wi,onFocus:xi,onBlur:yi,placeholder:E==="agent"?e==="zh"?"输入指令,让 Agent 为你工作...":"Type instructions for Agent...":E==="text"?e==="zh"?"输入你想生成的文本内容、文章、摘要或 Markdown":"Describe the text, article, summary, or markdown you want":E==="audio"?Ni?e==="zh"?"已有文本,无需额外提示词,直接发送":"Text already selected. No extra prompt needed, just send":e==="zh"?"描述你想要生成的音乐、风格、歌词或情绪":"Describe the music, style, lyrics, or mood you want":e==="zh"?`描述你想要创建的${E==="image"?"图片":"视频"}`:`Describe the ${E==="image"?"image":"video"} you want to create`,rows:Lt?4:1,disabled:Oe,"data-testid":"ai-input-textarea"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3735,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3734,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3690,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3568,columnNumber:9},void 0),Kn&&u.jsxDEV(na,{isOpen:Kn,onClose:()=>xt(!1),mode:sa.SELECT,filterType:ms.IMAGE,onSelect:ci},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3779,columnNumber:11},void 0),u.jsxDEV(_a,{open:zn,onOpenChange:Rn,originalPrompt:de,language:e,type:E==="video"?"video":"image",allowStructuredMode:!0,defaultMode:"structured",onApply:i=>{Ue(i),rt(!0),requestAnimationFrame(()=>{var d;(d=Ae.current)==null||d.focus()})}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3788,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3541,columnNumber:7},void 0)});Xs.displayName="AIInputBar";function Or({isDataReady:n,activationKey:t}){const e=l.useRef(null);return l.useEffect(()=>{if(t<=0)return;const s=window.setTimeout(()=>{var c;const o=(c=e.current)==null?void 0:c.querySelector('[data-testid="ai-input-textarea"]');o==null||o.focus()},0);return()=>{window.clearTimeout(s)}},[t]),u.jsxDEV(da,{children:u.jsxDEV(ua,{children:u.jsxDEV("div",{ref:e,children:u.jsxDEV(Xs,{isDataReady:n},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DeferredAIInputBar.tsx",lineNumber:38,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DeferredAIInputBar.tsx",lineNumber:37,columnNumber:9},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DeferredAIInputBar.tsx",lineNumber:36,columnNumber:7},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DeferredAIInputBar.tsx",lineNumber:35,columnNumber:5},this)}export{Or as DeferredAIInputBar,Or as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./tool-windows-B-a9r3G3.css"])))=>i.map(i=>d[i]);
2
- import{bL as T,y as s,r as t,_ as a}from"./tool-windows-CtLXQDGF.js";const O=t.lazy(()=>a(()=>import("./tool-windows-CtLXQDGF.js").then(e=>e.p9),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.ProjectDrawer}))),g=t.lazy(()=>a(()=>import("./tool-windows-CtLXQDGF.js").then(e=>e.pa),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.ToolboxDrawer}))),A=t.lazy(()=>a(()=>import("./tool-windows-CtLXQDGF.js").then(e=>e.pb),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.DeferredMediaLibraryModal}))),I=t.lazy(()=>a(()=>import("./tool-windows-CtLXQDGF.js").then(e=>e.pc),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.BackupRestoreDialog}))),R=t.lazy(()=>a(()=>import("./tool-windows-CtLXQDGF.js").then(e=>e.pd),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.VersionUpdatePrompt}))),z=t.lazy(()=>a(()=>import("./tool-windows-CtLXQDGF.js").then(e=>e.pe),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.PerformancePanel}))),B=t.lazy(()=>a(()=>import("./tool-windows-CtLXQDGF.js").then(e=>e.pf),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.DeferredSyncSettings}))),M=t.lazy(()=>a(()=>import("./tool-windows-CtLXQDGF.js").then(e=>e.pg),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.CommandPalette}))),W=t.lazy(()=>a(()=>import("./tool-windows-CtLXQDGF.js").then(e=>e.ph),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.CanvasSearch}))),Z=t.lazy(()=>a(()=>import("./tool-windows-CtLXQDGF.js").then(e=>e.pi),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.ToolWinBoxManager})));function H({board:e,value:w,containerRef:u,versionUpdateEnabled:j,performancePanelEnabled:E,toolWindowManagerEnabled:v,projectDrawerOpen:o,toolboxDrawerOpen:c,mediaLibraryOpen:m,mediaLibraryConfig:r,backupRestoreOpen:p,cloudSyncOpen:d,onBoardSwitch:l,setProjectDrawerOpen:k,setToolboxDrawerOpen:V,setMediaLibraryOpen:b,setBackupRestoreOpen:P,setCloudSyncOpen:F,handleBeforeSwitch:x,onCreateProjectForMemory:S}){const{appState:D,setAppState:h}=T(),f=D.openCommandPalette||!1,N=D.openCanvasSearch||!1;return s.jsxDEV(s.Fragment,{children:[m&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(A,{isOpen:m,onClose:()=>b(!1),mode:r==null?void 0:r.mode,filterType:r==null?void 0:r.filterType,onSelect:r==null?void 0:r.onSelect,selectButtonText:r==null?void 0:r.selectButtonText},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:115,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:114,columnNumber:9},this),p&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(I,{open:p,onOpenChange:P,container:u.current,onBeforeImport:async()=>{await x()},onSwitchBoard:async(n,_)=>{const{workspaceService:U}=await a(async()=>{const{workspaceService:q}=await import("./tool-windows-CtLXQDGF.js").then(y=>y.oZ);return{workspaceService:q}},__vite__mapDeps([0]),import.meta.url),i=await U.switchBoard(n);i&&l&&(_&&(i.viewport=_),l(i))}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:127,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:126,columnNumber:9},this),d&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(B,{visible:d,onClose:()=>F(!1)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:151,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:150,columnNumber:9},this),j&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(R,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:159,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:158,columnNumber:9},this),v&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(Z,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:164,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:163,columnNumber:9},this),f&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(M,{open:f,onClose:()=>{h(n=>({...n,openCommandPalette:!1}))},board:e,container:u.current},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:169,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:168,columnNumber:9},this),N&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(W,{open:N,onClose:()=>{h(n=>({...n,openCanvasSearch:!1}))},board:e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:184,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:183,columnNumber:9},this),E&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(z,{container:u.current,onCreateProject:S,elements:(e==null?void 0:e.children)||w},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:198,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:197,columnNumber:9},this),o&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(O,{isOpen:o,onOpenChange:k,onBeforeSwitch:x,onBoardSwitch:l},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:207,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:206,columnNumber:9},this),c&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(g,{isOpen:c,onOpenChange:V},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:217,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:216,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:112,columnNumber:5},this)}export{H as DrawnixDeferredFeatures,H as default};
@@ -1 +0,0 @@
1
- @charset "UTF-8";.model-source-icon{width:var(--model-source-icon-size, 18px);height:var(--model-source-icon-size, 18px);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.model-source-icon--vendor{color:var(--model-source-icon-accent, currentColor)}.model-source-icon--avatar{border-radius:999px;overflow:hidden;background:var(--model-source-icon-surface, #f8fafc);border:1px solid var(--model-source-icon-border, rgba(15, 23, 42, .12));color:var(--model-source-icon-accent, #111827)}.model-source-icon__image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.model-source-icon__text{font-size:calc(var(--model-source-icon-size, 18px) * .5);font-weight:700;line-height:1}.model-dropdown{position:relative;display:inline-flex;flex-shrink:0}.model-dropdown--disabled{cursor:not-allowed;opacity:.6}.model-dropdown--variant-form{width:100%}.model-dropdown__trigger{display:flex;align-items:center;justify-content:space-between;background:transparent;border:none;cursor:pointer;transition:all .15s ease;position:relative}.model-dropdown__trigger--minimal{gap:6px;padding:4px 8px;border-radius:4px;font-size:13px;font-family:SF Mono,Monaco,Menlo,monospace;white-space:nowrap}.model-dropdown__trigger--minimal .model-dropdown__at{color:#f59e0b;font-weight:600}.model-dropdown__trigger--minimal .model-dropdown__code{color:#6b7280;font-weight:500}.model-dropdown__trigger--form{width:100%;padding:8px 12px;background:#fff;border:1px solid #d9d9d9;border-radius:6px;min-height:36px;gap:8px;box-sizing:border-box}.model-dropdown__trigger--form:hover{border-color:var(--td-brand-color)}.model-dropdown__trigger--form .model-dropdown__form-content{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.model-dropdown__trigger .model-health-signal{margin-left:-2px;margin-right:2px}.model-dropdown__form-content{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.model-dropdown__trigger-source-icon{flex-shrink:0}.model-dropdown__form-input{width:100%;border:none!important;background:transparent!important;padding:0!important;margin:0!important;font-size:14px!important;color:#1f2937!important;outline:none!important;height:100%!important}.model-dropdown__form-input::-moz-placeholder{color:#9ca3af}.model-dropdown__form-input::placeholder{color:#9ca3af}.model-dropdown__form-input:disabled{cursor:not-allowed}.model-dropdown__form-code{font-size:12px;font-family:SF Mono,Monaco,Menlo,monospace;color:#6b7280;background:#f3f4f6;padding:1px 4px;border-radius:3px;flex-shrink:0}.model-dropdown__form-label{font-size:14px;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-dropdown__form-placeholder{font-size:14px;color:#9ca3af}.model-dropdown__at{color:#f59e0b;font-weight:600}.model-dropdown__code{color:#6b7280;font-weight:500}.model-dropdown__chevron{margin-left:2px;color:#9ca3af;transition:transform .2s ease;flex-shrink:0}.model-dropdown__chevron--open{transform:rotate(180deg)}.model-dropdown__toolbar{display:flex;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid #f3f4f6;background:#fafafa;flex-shrink:0}.model-dropdown__toolbar-title{min-width:-moz-fit-content;min-width:fit-content;font-size:12px;font-weight:600;color:#6b7280;white-space:nowrap}.model-dropdown__search{flex:1;min-width:0}.model-dropdown__search-input-wrapper{position:relative;display:flex;align-items:center}.model-dropdown__search-icon{position:absolute;left:10px;color:var(--td-text-color-placeholder);pointer-events:none;width:14px;height:14px}.model-dropdown__search-input{width:100%;padding:6px 30px 6px 32px!important;border:1px solid #e5e7eb!important;border-radius:8px!important;font-size:13px!important;background:#fff!important;outline:none!important;height:34px!important;transition:all .2s ease}.model-dropdown__search-input:focus{border-color:var(--td-brand-color)!important;box-shadow:0 0 0 2px rgba(var(--td-brand-color-rgb),.1)!important}.model-dropdown__search-clear{position:absolute;right:10px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--td-text-color-placeholder);cursor:pointer;padding:2px;border-radius:50%;width:14px;height:14px}.model-dropdown__search-clear:hover{background:#f3f4f6;color:var(--td-text-color-secondary)}.model-dropdown__menu{position:absolute;min-width:520px;max-height:450px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 8px 30px #0000001f;display:flex;flex-direction:column;overflow:hidden;z-index:10000;animation:model-dropdown-fade-in .15s cubic-bezier(.16,1,.3,1)}.model-dropdown__menu--up{bottom:calc(100% + 4px);left:0}.model-dropdown__menu--down{top:calc(100% + 4px);left:0}.model-dropdown__header{padding:10px 12px;font-size:12px;font-weight:500;color:#6b7280;border-bottom:1px solid #f3f4f6;background:#fafafa;flex-shrink:0}.model-dropdown__list{flex:1;overflow-y:auto;padding:6px;position:relative}.model-dropdown__list::-webkit-scrollbar{width:4px}.model-dropdown__list::-webkit-scrollbar-track{background:transparent}.model-dropdown__list::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:2px}.model-dropdown__section{display:flex;flex-direction:column;gap:2px}.model-dropdown__section+.model-dropdown__section{margin-top:8px}.model-dropdown__section-title{position:sticky;top:-4px;z-index:1;padding:8px 10px 6px;font-size:11px;font-weight:700;letter-spacing:.04em;color:#6b7280;background:linear-gradient(180deg,#fff,#fffffff0);text-transform:uppercase}.model-dropdown__list-pane{flex:1;min-width:0;display:flex;flex-direction:column}.model-dropdown__section-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 8px;border-bottom:1px solid #f3f4f6;background:#fff;font-size:11px;font-weight:700;letter-spacing:.04em;color:#6b7280;text-transform:uppercase}.model-dropdown__section-header-label{display:inline-flex;align-items:center;gap:8px;min-width:0}.model-dropdown__empty{padding:20px;text-align:center;color:#9ca3af;font-size:13px}.model-dropdown__item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .1s ease}.model-dropdown__item:hover,.model-dropdown__item--highlighted{background:#f3f4f6}.model-dropdown__item--selected{background:#f59e0b0f}.model-dropdown__item--selected .model-dropdown__item-label{color:#d97706;font-weight:600}.model-dropdown__item--selected .model-dropdown__item-code{color:#f59e0bcc}.model-dropdown__item-content{flex:1;min-width:0}.model-dropdown__item-name{display:flex;align-items:center;gap:8px;min-width:0}.model-dropdown__item-code{font-size:12px;font-family:SF Mono,Monaco,Menlo,monospace;color:#6b7280;flex-shrink:0}.model-dropdown__item-source-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:#6b7280;flex-shrink:0}.model-dropdown__item-label{font-size:13px;color:#1f2937;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-dropdown__item-new{font-size:10px;font-weight:600;color:#4caf50;background:#4caf501a;border:1px solid rgba(76,175,80,.2);padding:0 4px;border-radius:3px;flex-shrink:0}.model-dropdown__item-group-tag{font-size:10px;font-weight:600;color:#1d4ed8;background:#2563eb1a;border:1px solid rgba(37,99,235,.2);padding:0 4px;border-radius:3px;flex-shrink:0}.model-dropdown__item-desc{font-size:11px;color:#9ca3af;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-dropdown__item-price{font-size:11px;color:#9ca3af;white-space:nowrap;margin-left:auto}.model-dropdown__item-check{flex-shrink:0;color:#f59e0b;margin-left:8px}.model-dropdown__provider-action{width:100%;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px dashed rgba(245,158,11,.5);border-radius:10px;background:#f59e0b0f;color:#d97706;cursor:pointer;transition:all .15s ease}.model-dropdown__provider-action:hover{background:#f59e0b1f;border-color:#f59e0bcc}@keyframes model-dropdown-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}:root[data-theme=dark] .model-dropdown__trigger:hover{background:#f59e0b26}:root[data-theme=dark] .model-dropdown__trigger--open{background:#f59e0b33}:root[data-theme=dark] .model-dropdown__code{color:var(--color-gray-30, #bbb)}:root[data-theme=dark] .model-dropdown__menu{background:var(--color-surface-high, #2a2a2a);border-color:var(--color-border, #444)}:root[data-theme=dark] .model-dropdown__header{background:var(--color-surface-mid, #333);border-bottom-color:var(--color-border, #444);color:var(--color-gray-50, #999)}:root[data-theme=dark] .model-dropdown__toolbar{background:var(--color-surface-mid, #333);border-bottom-color:var(--color-border, #444)}:root[data-theme=dark] .model-dropdown__toolbar-title{color:var(--color-gray-50, #999)}:root[data-theme=dark] .model-dropdown__list::-webkit-scrollbar-thumb{background:var(--color-border, #444)}:root[data-theme=dark] .model-dropdown__section-title{background:linear-gradient(180deg,var(--color-surface-high, #2a2a2a) 0%,rgba(42,42,42,.94) 100%);color:var(--color-gray-50, #999)}:root[data-theme=dark] .model-dropdown__section-header{background:var(--color-surface-high, #2a2a2a);border-bottom-color:var(--color-border, #444);color:var(--color-gray-50, #999)}:root[data-theme=dark] .model-dropdown__search{background:var(--color-surface-mid, #333);border-bottom-color:var(--color-border, #444)}:root[data-theme=dark] .model-dropdown__search-input{background:var(--color-surface-high, #2a2a2a)!important;border-color:var(--color-border, #444)!important;color:var(--color-gray-20, #ccc)!important}:root[data-theme=dark] .model-dropdown__search-input:focus{border-color:#f59e0b!important}:root[data-theme=dark] .model-dropdown__search-icon,:root[data-theme=dark] .model-dropdown__search-clear{color:var(--color-gray-50, #999)}:root[data-theme=dark] .model-dropdown__trigger--form{background:var(--color-surface-high, #2a2a2a);border-color:var(--color-border, #444)}:root[data-theme=dark] .model-dropdown__trigger--form .model-dropdown__form-label,:root[data-theme=dark] .model-dropdown__trigger--form .model-dropdown__form-input{color:var(--color-gray-20, #ccc)!important}:root[data-theme=dark] .model-dropdown__trigger--form .model-dropdown__form-code{background:var(--color-surface-mid, #333);color:var(--color-gray-40, #aaa)}:root[data-theme=dark] .model-dropdown__item:hover,:root[data-theme=dark] .model-dropdown__item--highlighted{background:var(--color-surface-mid, #333)}:root[data-theme=dark] .model-dropdown__item--selected{background:#f59e0b1a}:root[data-theme=dark] .model-dropdown__item--selected .model-dropdown__item-label{color:#f59e0b}:root[data-theme=dark] .model-dropdown__item--selected .model-dropdown__item-code{color:#f59e0be6}:root[data-theme=dark] .model-dropdown__item-code{color:var(--color-gray-50, #999)}:root[data-theme=dark] .model-dropdown__item-label{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .model-dropdown__item-desc{color:var(--color-gray-50, #999)}:root[data-theme=dark] .model-dropdown__item-new{background:#4caf5026;border-color:#4caf504d}:root[data-theme=dark] .model-dropdown__item-group-tag{background:#2563eb2e;border-color:#2563eb59;color:#93c5fd}:root[data-theme=dark] .model-dropdown__provider-action{background:#f59e0b1f;border-color:#f59e0b73;color:#fbbf24}
@@ -1 +0,0 @@
1
- import{r as s,y as n,iQ as Me,iJ as Be,lw as Oe,lx as Fe,bL as We,iT as Qe,ly as Ze,l6 as Ge,hc as Xe,ja as Ye,iV as ge,hw as Je,dp as Ke,al as _e,iO as Ee,cV as eo,lz as oo,dM as no,b7 as io,iL as so,bW as ro,aI as ke,hk as ao,hl as to,bD as uo,j5 as lo,bw as je}from"./tool-windows-CtLXQDGF.js";import{g as J,a as co,b as Y,D as mo,V as po,i as de,j as fo,h as bo,f as No}from"./use-runtime-models-BH9r4Yc1.js";function wo({controlledValue:i,defaultValue:t,onChange:f}){const[N,c]=s.useState(t),m=i!==void 0,x=m?i:N,u=s.useCallback(l=>{const a=typeof l=="function"?l(x):l;m||c(a),f==null||f(a)},[m,x,f]);return{value:x,setValue:u}}function xo(i){return typeof i!="string"?null:i.trim()||null}function ho(i){var N;const t=(i==null?void 0:i.trim())||"";if(!t)return"供";const f=t.match(/[A-Za-z0-9]+/g);return f!=null&&f[0]?f[0][0].toUpperCase():((N=Array.from(t)[0])==null?void 0:N.toUpperCase())||"供"}const ae=({vendor:i,profileName:t,iconUrl:f,size:N=18,className:c})=>{const m=s.useMemo(()=>xo(f),[f]),[x,u]=s.useState(m);s.useEffect(()=>{u(m)},[m]);const l=co(i),a=t||J(i),V=!!(t||x),D={"--model-source-icon-size":`${N}px`,"--model-source-icon-accent":l.accent,"--model-source-icon-surface":l.surface,"--model-source-icon-border":l.border};return n.jsxDEV("span",{className:`model-source-icon ${V?"model-source-icon--avatar":"model-source-icon--vendor"} ${c||""}`.trim(),style:D,"aria-hidden":"true",title:a,children:V?x?n.jsxDEV("img",{src:x,alt:`${a} 图标`,className:"model-source-icon__image",loading:"lazy",onError:()=>u(null)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/shared/ModelSourceIcon.tsx",lineNumber:78,columnNumber:11},void 0):n.jsxDEV("span",{className:"model-source-icon__text",children:ho(a)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/shared/ModelSourceIcon.tsx",lineNumber:86,columnNumber:11},void 0):n.jsxDEV(Y,{vendor:i,size:Math.max(N-2,12)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/shared/ModelSourceIcon.tsx",lineNumber:91,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/shared/ModelSourceIcon.tsx",lineNumber:66,columnNumber:5},void 0)},vo="ai-input-bar__input";function ye(i){return i.isComposing||i.keyCode===229}const Do=({isOpen:i,setIsOpen:t,disabled:f=!1,openKeys:N=[],onOpenKey:c,trackPosition:m=!0,children:x})=>{const u=s.useRef(null),l=s.useRef(null),[a,V]=s.useState({top:0,left:0,width:0,bottom:0}),D=s.useCallback(h=>{if(!ye(h.nativeEvent)){if(i){if(!c)return;c(h.key)&&h.preventDefault();return}N.includes(h.key)&&(h.preventDefault(),f||t(!0))}},[i,c,N,f,t]);return s.useEffect(()=>{if(!i||!c)return;const h=w=>{var b;if(ye(w))return;const E=w.target,z=!!((b=E==null?void 0:E.classList)!=null&&b.contains(vo));if(w.defaultPrevented&&!z)return;c(w.key)&&w.preventDefault()};return document.addEventListener("keydown",h),()=>document.removeEventListener("keydown",h)},[i,c]),s.useEffect(()=>{if(!i)return;const h=w=>{var z,R;const E=w.target;(z=u.current)!=null&&z.contains(E)||(R=l.current)!=null&&R.contains(E)||t(!1)};return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[i,t]),s.useLayoutEffect(()=>{if(!m||!i)return;const h=()=>{if(!u.current)return;const w=u.current.getBoundingClientRect();V({top:w.top,left:w.left,width:w.width,bottom:w.bottom})};return h(),window.addEventListener("resize",h),window.addEventListener("scroll",h,!0),()=>{window.removeEventListener("resize",h),window.removeEventListener("scroll",h,!0)}},[i,m]),n.jsxDEV(n.Fragment,{children:x({isOpen:i,setIsOpen:t,containerRef:u,menuRef:l,portalPosition:a,handleTriggerKeyDown:D})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/KeyboardDropdown.tsx",lineNumber:123,columnNumber:5},void 0)},B=Me;function go(i){return i.sourceProfileId?i.sourceProfileId:B}function _o(i,t){const f=new Map(t.map(u=>[u.id,u])),N=new Set,c=new Map;for(const u of i){const l=go(u),a=`${l}::${u.type}::${u.id}`;if(N.has(a))continue;N.add(a);const V=c.get(l);V?V.push(u):c.set(l,[u])}const m=new Map(mo.map((u,l)=>[u,l])),x=[];for(const[u,l]of c){const a=new Map;for(const w of l){const E=a.get(w.vendor);E?E.push(w):a.set(w.vendor,[w])}const V=Array.from(a.entries()).sort((w,E)=>(m.get(w[0])??999)-(m.get(E[0])??999)).map(([w,E])=>({vendor:w,label:J(w),models:Be(E)})),D=f.get(u),h=u===B;x.push({providerId:u,providerName:h?(D==null?void 0:D.name)||Fe:(D==null?void 0:D.name)||u,providerIconUrl:h?(D==null?void 0:D.iconUrl)||Oe:D==null?void 0:D.iconUrl,vendorCategories:V,totalCount:l.length})}return x.sort((u,l)=>u.providerId===B?-1:l.providerId===B?1:u.providerName.localeCompare(l.providerName)),x}const Eo="aitu:settings:provider-nav";function te(i){return(i||"").toLowerCase().replace(/[\s\-_.:/]+/g,"").trim()}const jo=ke.memo(({model:i})=>{const t=bo(i.sourceProfileId,i.id);return t?n.jsxDEV("span",{className:"model-dropdown__item-price",children:t},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:77,columnNumber:12},void 0):null}),yo=ke.memo(({model:i})=>{const t=No(i.sourceProfileId,i.id);return t!=null&&t.description?n.jsxDEV("div",{className:"model-dropdown__item-desc",children:t.description},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:86,columnNumber:7},void 0):null});function T(i,t){const f=i.toLowerCase().trim(),N=t.toLowerCase().trim();if(!f||!N)return 0;const c=te(f),m=te(N);if(!m)return 0;if(f===N||c===m)return 120;if(f.startsWith(N)||c.startsWith(m))return 100;if(f.includes(N))return 80;if(c.includes(m))return 70;const x=N.split(/\s+/).filter(Boolean);if(x.length>1&&x.every(l=>{const a=te(l);return f.includes(l)||!!a&&c.includes(a)}))return 60;let u=0;for(const l of c)if(l===m[u]&&(u+=1,u===m.length))return 40;return 0}const Vo=({selectedModel:i,selectedSelectionKey:t,onSelect:f,onSelectModel:N,language:c="zh",models:m=Ge,placement:x="up",header:u,disabled:l=!1,variant:a="minimal",placeholder:V,allowCustomValue:D=!0,isOpen:h,onOpenChange:w,providerProfilesOverride:E,showProviderAction:z=!0})=>{const{setAppState:R}=We(),{value:b,setValue:y}=wo({controlledValue:h,defaultValue:!1,onChange:w}),[M,k]=s.useState(""),[L,A]=s.useState(0),[P,Q]=s.useState(null),[S,$]=s.useState(null),{contextMenu:Ve,open:ue,close:I}=Qe(),K=s.useRef(null),ee=s.useRef(null),Z=s.useRef(null),Ue=Ze(),H=E||Ue,le=s.useMemo(()=>new Map(H.map(e=>[e.id,e])),[H]),ce=s.useMemo(()=>new Map(m.map((e,o)=>[e.selectionKey||e.id,o])),[m]),G=s.useCallback(e=>e.selectionKey||e.id,[]),me=s.useCallback(e=>e.sourceProfileId&&le.get(e.sourceProfileId)||null,[le]),g=s.useMemo(()=>_o(m,H),[m,H]),pe=s.useMemo(()=>new Map(g.map(e=>[e.providerId,e.providerName])),[g]),oe=s.useMemo(()=>new Map(g.map(e=>[e.providerId,e.totalCount])),[g]),ne=s.useCallback(e=>pe.get(e.sourceProfileId||B)||e.sourceProfileName||J(e.vendor),[pe]),C=s.useMemo(()=>g.find(e=>e.providerId===P)||g[0]||null,[g,P]),X=s.useMemo(()=>C&&(C.vendorCategories.find(e=>e.vendor===S)||C.vendorCategories[0])||null,[C,S]);s.useEffect(()=>{if(b&&Z.current){const e=Z.current.querySelector(`[data-model-index="${L}"]`);if(e){const o=Z.current,r=e.offsetTop,v=e.offsetHeight,j=o.scrollTop,W=o.offsetHeight,p=4;L===0?o.scrollTop=0:r-p<j?o.scrollTop=r-p:r+v>j+W&&(o.scrollTop=r+v-W+p)}}},[L,b]);const d=m.find(e=>G(e)===(t||i))||Xe(i),_=s.useMemo(()=>d?me(d):null,[d,me]),Ie=(d==null?void 0:d.shortCode)||"img",O=!!M.trim(),F=s.useMemo(()=>d!=null&&d.sourceProfileId?d.sourceProfileId:t!=null&&t.includes("::")?t.split("::")[0]:B,[d,t]),q=(d==null?void 0:d.vendor)??null;s.useEffect(()=>{a==="form"&&!b&&k((d==null?void 0:d.label)||i)},[i,d,a,b]);const fe=s.useMemo(()=>{const e=M.trim();return e?m.map(o=>{const r=Math.max(T(o.id,e),T(o.label,e),T(o.shortLabel||"",e),T(o.shortCode||"",e),T(o.description||"",e),T(ne(o),e),T(J(o.vendor),e));return{model:o,score:r}}).filter(({score:o})=>o>0).sort((o,r)=>r.score-o.score||Ye(o.model,r.model,{fallbackOrderMap:ce})):[]},[ne,m,M,ce]),be=s.useMemo(()=>fe.map(({model:e})=>e),[fe]),U=s.useMemo(()=>O?be:(X==null?void 0:X.models)||[],[O,be,X]),Ce=s.useMemo(()=>g.map(e=>{var o,r;return{id:e.providerId,label:e.providerName,count:e.totalCount,icon:e.providerIconUrl?n.jsxDEV(ae,{vendor:((o=e.vendorCategories[0])==null?void 0:o.vendor)||"OTHER",profileName:e.providerName,iconUrl:e.providerIconUrl,size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:409,columnNumber:11},void 0):n.jsxDEV(Y,{vendor:((r=e.vendorCategories[0])==null?void 0:r.vendor)||"OTHER",size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:418,columnNumber:11},void 0)}}),[g]),qe=s.useMemo(()=>((C==null?void 0:C.vendorCategories)||[]).map(e=>({id:e.vendor,label:e.label,count:e.models.length,icon:n.jsxDEV(Y,{vendor:e.vendor,size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:436,columnNumber:15},void 0)})),[C]),Pe=s.useCallback(e=>{var r;Q(e),k("");const o=g.find(v=>v.providerId===e);$(((r=o==null?void 0:o.vendorCategories[0])==null?void 0:r.vendor)??null),A(0)},[g]),Te=s.useCallback(e=>{$(e),A(0)},[]),ze=s.useCallback((e,o)=>{e.preventDefault(),e.stopPropagation(),ue(e,{modelId:o})},[ue]),Re=s.useCallback(()=>{const e=H.filter(j=>j.id!==Me),o=e[e.length-1]||null,r=o&&oe.get(o.id)||0,v=o&&r===0?{action:"select",profileId:o.id}:e.some(j=>j.id===ge&&(oe.get(j.id)||0)===0)?{action:"select",profileId:ge}:{action:"create"};window.__aituPendingProviderNavigationIntent=v,window.dispatchEvent(new CustomEvent(Eo,{detail:v})),y(!1),R(j=>({...j,openSettings:!0}))},[H,oe,R,y]);s.useEffect(()=>{const e=t||i,o=U.findIndex(r=>G(r)===e);A(o>=0?o:0)},[U,i,t,G]),s.useEffect(()=>{var o;if(O)return;if(!P||!g.some(r=>r.providerId===P)){const r=g.find(v=>v.providerId===F);if(Q((r==null?void 0:r.providerId)||((o=g[0])==null?void 0:o.providerId)||null),q){$(q);return}}const e=g.find(r=>r.providerId===P)||g[0]||null;if(e){const r=e.vendorCategories.map(v=>v.vendor);(!S||!r.includes(S))&&$(r[0]??null)}},[g,P,S,O,F,q]),s.useEffect(()=>{b||I()},[b,I]);const Ne=s.useCallback(e=>{if(e==null||e.preventDefault(),l)return;const o=!b;o&&(Q(F),q&&$(q)),o?k(""):a==="form"&&k((d==null?void 0:d.label)||i),y(o)},[l,b,y,a,d,i,F,q]),ie=s.useCallback(e=>{I(),f(e.id,Je(e.sourceProfileId||null,e.id)),N==null||N(e),y(!1),k(a==="form"?e.label||e.id:"")},[I,f,N,y,a]),we=s.useCallback(async e=>{try{await Ke(e),_e.success(c==="zh"?"模型名已复制":"Model name copied"),I()}catch(o){console.error("[ModelDropdown] failed to copy model id",o),_e.error(c==="zh"?"复制失败":"Copy failed")}},[I,c]),xe=s.useCallback(e=>{var r;const o=m.find(v=>v.id===e);return(r=Ee.getModelPrice(o==null?void 0:o.sourceProfileId,e))==null?void 0:r.docsUrl},[m]),he=s.useCallback(e=>{var r;const o=m.find(v=>v.id===e);if(o!=null&&o.description)return o.description;if(o!=null&&o.sourceProfileId)return(r=Ee.getModelPrice(o.sourceProfileId,e))==null?void 0:r.description},[m]),Le=s.useCallback(({modelId:e})=>{const o=he(e),r=[{key:"model-id",label:e,disabled:!0}];o&&r.push({key:"model-desc",label:n.jsxDEV("span",{style:{fontSize:11,color:"var(--td-text-color-secondary)",whiteSpace:"normal",lineHeight:1.4,display:"block",maxWidth:260},children:o.length>80?o.slice(0,80)+"…":o},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:653,columnNumber:13},void 0),disabled:!0}),r.push({key:"divider-1",type:"divider"},{key:"copy-model-id",label:c==="zh"?"复制模型名":"Copy model name",icon:n.jsxDEV(eo,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:665,columnNumber:17},void 0),onSelect:({modelId:j})=>we(j)});const v=xe(e);return v&&r.push({key:"open-docs",label:c==="zh"?"查看模型文档":"View model docs",icon:n.jsxDEV(oo,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:674,columnNumber:17},void 0),onSelect:()=>window.open(v,"_blank","noopener")}),r},[he,xe,we,c]),Ae=s.useCallback(e=>{if(e==="Escape")return y(!1),a==="form"&&k((d==null?void 0:d.label)||i),!0;if(e==="ArrowDown")return U.length>0&&A(o=>o<U.length-1?o+1:0),!0;if(e==="ArrowUp")return U.length>0&&A(o=>o>0?o-1:U.length-1),!0;if(e==="Enter"||e==="Tab"){const o=U[L];if(o)return ie(o),!0;if(a==="form"&&D&&M.trim())return f(M.trim()),y(!1),!0}return!1},[U,L,ie,a,D,d,f,M,i,y]);s.useEffect(()=>{var e,o;b&&a==="form"&&((e=K.current)==null||e.focus(),(o=K.current)==null||o.select())},[b,a]),s.useEffect(()=>{var e;b&&a==="minimal"&&((e=ee.current)==null||e.focus())},[b,a]),s.useEffect(()=>{!b&&a==="minimal"&&M&&k("")},[b,M,a]);const Se=e=>a==="minimal"?n.jsxDEV("button",{className:`model-dropdown__trigger model-dropdown__trigger--minimal ${b?"model-dropdown__trigger--open":""}`,onMouseDown:Ne,onKeyDown:e,type:"button","aria-haspopup":"listbox","aria-expanded":b,"aria-label":`${(d==null?void 0:d.shortLabel)||(d==null?void 0:d.label)||i} (↑↓ Tab)`,disabled:l,children:[d?n.jsxDEV(ae,{vendor:d.vendor,profileName:(_==null?void 0:_.name)||d.sourceProfileName,iconUrl:_==null?void 0:_.iconUrl,size:15,className:"model-dropdown__trigger-source-icon"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:781,columnNumber:13},void 0):null,n.jsxDEV("span",{className:"model-dropdown__at",children:"#"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:791,columnNumber:11},void 0),n.jsxDEV("span",{className:"model-dropdown__code",children:Ie},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:792,columnNumber:11},void 0),n.jsxDEV(de,{modelId:i,profileId:(_==null?void 0:_.id)||(d==null?void 0:d.sourceProfileId)||null},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:793,columnNumber:11},void 0),n.jsxDEV(je,{size:14,className:`model-dropdown__chevron ${b?"model-dropdown__chevron--open":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:797,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:766,columnNumber:9},void 0):n.jsxDEV("div",{className:`model-dropdown__trigger model-dropdown__trigger--form ${b?"model-dropdown__trigger--open":""}`,onMouseDown:o=>{o.preventDefault(),b||(y(!0),k(""),Q(F),q&&$(q))},children:[n.jsxDEV("div",{className:"model-dropdown__form-content",children:[d?n.jsxDEV(ae,{vendor:d.vendor,profileName:(_==null?void 0:_.name)||d.sourceProfileName,iconUrl:_==null?void 0:_.iconUrl,size:18,className:"model-dropdown__trigger-source-icon"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:826,columnNumber:13},void 0):null,n.jsxDEV("input",{ref:K,type:"text",className:"model-dropdown__form-input",value:M,onChange:o=>{k(o.target.value),b||y(!0)},placeholder:V||(c==="zh"?"选择或输入模型":"Select or enter model"),disabled:l},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:836,columnNumber:11},void 0),n.jsxDEV(de,{modelId:i,profileId:(_==null?void 0:_.id)||(d==null?void 0:d.sourceProfileId)||null},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:851,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:824,columnNumber:9},void 0),n.jsxDEV(je,{size:16,className:`model-dropdown__chevron ${b?"model-dropdown__chevron--open":""}`,onMouseDown:o=>{o.preventDefault(),o.stopPropagation(),Ne()}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:856,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:808,columnNumber:7},void 0);return n.jsxDEV(Do,{isOpen:b,setIsOpen:y,disabled:l,openKeys:["Enter"," "],onOpenKey:Ae,trackPosition:a==="form"||x==="down"||x==="up",children:({containerRef:e,menuRef:o,portalPosition:r,handleTriggerKeyDown:v})=>{const j=a==="form"||x==="down"||x==="up",W=n.jsxDEV("div",{className:`model-dropdown__menu model-dropdown__menu--${x} ${a==="form"?"model-dropdown__menu--form":""} ${j?"model-dropdown__menu--portalled":""} ${io}`,ref:o,role:"listbox","aria-label":c==="zh"?"选择模型":"Select Model",onMouseDown:p=>p.stopPropagation(),onClick:p=>p.stopPropagation(),style:j?{position:"fixed",zIndex:no.DROPDOWN_PORTAL,left:r.left,width:a==="form"?Math.max(r.width,g.length>1?620:520):"auto",top:x==="down"?r.bottom+4:"auto",bottom:x==="up"?window.innerHeight-r.top+4:"auto",visibility:r.width===0?"hidden":"visible"}:{zIndex:1e3},children:[a==="minimal"?n.jsxDEV("div",{className:"model-dropdown__toolbar",children:[u?n.jsxDEV("div",{className:"model-dropdown__toolbar-title",children:u},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:929,columnNumber:19},void 0):null,n.jsxDEV("div",{className:"model-dropdown__search",children:n.jsxDEV("div",{className:"model-dropdown__search-input-wrapper",children:[n.jsxDEV(so,{className:"model-dropdown__search-icon"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:933,columnNumber:21},void 0),n.jsxDEV("input",{ref:ee,type:"text",className:"model-dropdown__search-input",value:M,onChange:p=>k(p.target.value),placeholder:c==="zh"?"搜索模型名 / 展示名 / 供应商":"Search model id / label / provider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:934,columnNumber:21},void 0),M?n.jsxDEV("button",{type:"button",className:"model-dropdown__search-clear",onClick:()=>{var p;k(""),(p=ee.current)==null||p.focus()},"aria-label":c==="zh"?"清空搜索":"Clear search",children:n.jsxDEV(ro,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:956,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:947,columnNumber:23},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:932,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:931,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:927,columnNumber:15},void 0):u?n.jsxDEV("div",{className:"model-dropdown__header",children:u},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:963,columnNumber:15},void 0):null,n.jsxDEV(po,{tabs:Ce,activeTab:P,onTabChange:Pe,middleTabs:qe,activeMiddleTab:S,onMiddleTabChange:Te,searchQuery:M,compact:!0,tabsFooter:z?n.jsxDEV("button",{type:"button",className:"model-dropdown__provider-action",onClick:Re,"aria-label":c==="zh"?"新增供应商或打开供应商设置":"Add provider or open provider settings",children:n.jsxDEV(to,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:987,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:977,columnNumber:19},void 0):null,children:n.jsxDEV("div",{className:"model-dropdown__list-pane",children:n.jsxDEV("div",{className:"model-dropdown__list",ref:Z,onScroll:I,children:U.length>0?U.map((p,se)=>{var De;const ve=G(p),re=ve===(t||i),$e=se===L;return n.jsxDEV("div",{"data-model-index":se,className:`model-dropdown__item ${re?"model-dropdown__item--selected":""} ${$e?"model-dropdown__item--highlighted":""}`,onClick:()=>ie(p),onMouseEnter:()=>{A(se)},onContextMenu:He=>ze(He,p.id),role:"option","aria-selected":re,children:[n.jsxDEV("div",{className:"model-dropdown__item-content",children:[n.jsxDEV("div",{className:"model-dropdown__item-name",children:[n.jsxDEV("span",{className:"model-dropdown__item-source-icon",children:n.jsxDEV(Y,{vendor:p.vendor,size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1028,columnNumber:33},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1027,columnNumber:31},void 0),n.jsxDEV("span",{className:"model-dropdown__item-code",children:["#",p.shortCode||p.id]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1033,columnNumber:31},void 0),n.jsxDEV("span",{className:"model-dropdown__item-label",children:p.shortLabel||p.label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1036,columnNumber:31},void 0),O?n.jsxDEV("span",{className:"model-dropdown__item-group-tag",children:ne(p)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1040,columnNumber:33},void 0):null,((De=p.tags)==null?void 0:De.includes("new"))&&n.jsxDEV("span",{className:"model-dropdown__item-new",children:"NEW"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1045,columnNumber:33},void 0),n.jsxDEV(de,{modelId:p.id,profileId:p.sourceProfileId||null},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1049,columnNumber:31},void 0),n.jsxDEV(fo,{modelId:p.id},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1053,columnNumber:31},void 0),n.jsxDEV(jo,{model:p},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1054,columnNumber:31},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1026,columnNumber:29},void 0),p.description?n.jsxDEV("div",{className:"model-dropdown__item-desc",children:p.description},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1057,columnNumber:31},void 0):n.jsxDEV(yo,{model:p},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1061,columnNumber:31},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1025,columnNumber:27},void 0),re&&n.jsxDEV(ao,{size:16,className:"model-dropdown__item-check"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1065,columnNumber:29},void 0)]},ve,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1005,columnNumber:25},void 0)}):n.jsxDEV("div",{className:"model-dropdown__empty",children:c==="zh"?"未找到匹配的模型":"No matching models"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1074,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:993,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:992,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:966,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:888,columnNumber:11},void 0);return n.jsxDEV("div",{className:`model-dropdown model-dropdown--variant-${a} ${l?"model-dropdown--disabled":""}`,ref:e,"data-testid":"model-selector",children:[Se(v),b&&(j?uo.createPortal(W,document.body):W),b?n.jsxDEV(lo,{state:Ve,items:Le,onClose:I},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1097,columnNumber:15},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:1087,columnNumber:11},void 0)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ModelDropdown.tsx",lineNumber:873,columnNumber:5},void 0)};export{Do as K,Vo as M,wo as u};
@@ -1 +0,0 @@
1
- import{nr as g,lL as M,nh as G,ns as D,nt as S,nu as R,h2 as h,nv as I,nw as w,nx as x,ny as b,nz as v,nA as P,nB as B,nC as F,ne as U,nc as A}from"./tool-windows-CtLXQDGF.js";function z(t){return B(t,"musicAnalyzerAction",["analyze","rewrite","lyrics-gen"])}function V(t){return F(t,{missingMessage:"分析任务缺少结果内容",fromStructured:r=>U(r)})}function O(t){const r=t.params.musicAnalyzerSourceSnapshot;return(r==null?void 0:r.type)==="upload"?r:null}function L(t){var i;const r=(i=t.result)==null?void 0:i.analysisData;return!r||typeof r!="object"||typeof r.lyricsDraft!="string"&&typeof r.title!="string"&&!Array.isArray(r.styleTags)?null:{title:String(r.title||"").trim(),styleTags:Array.isArray(r.styleTags)?r.styleTags.map(u=>String(u||"").trim()).filter(Boolean):[],lyricsDraft:String(r.lyricsDraft||"").trim()}}async function H(t){if(t.status!=="completed")return null;const r=z(t);if(!r)return null;if(r==="analyze"){const l=await g(),p=l.find(m=>m.analyzeTaskId===t.id);if(p)return{records:l,record:p};const e=V(t),n=O(t),c=String(t.params.musicAnalyzerSourceLabel||(n==null?void 0:n.fileName)||"本地音频").trim(),o={id:M(),createdAt:Date.now(),source:"upload",sourceLabel:c,sourceSnapshot:n,analysisModel:String(t.params.model||""),analysisModelRef:t.params.modelRef||null,analysis:e,styleTags:e.sunoStyleTags.length>0?e.sunoStyleTags:e.genreTags,title:e.sunoTitle||e.titleSuggestions[0]||c.replace(/\.[^.]+$/,""),lyricsDraft:e.sunoLyricsDraft||"",analyzeTaskId:t.id,starred:!1};return{records:await G(o),record:o}}if(r==="lyrics-gen"){const l=D(t,"musicAnalyzerRecordId");if(!l)return null;const e=(await g()).find(C=>C.id===l);if(!e||e.pendingLyricsGenTaskId!==t.id)return null;const n=$(t),c=(n==null?void 0:n.title)||e.title||"",o=n&&n.styleTags.length>0?n.styleTags:e.styleTags||[],d=(n==null?void 0:n.lyricsDraft)||e.lyricsDraft||"",m=n?S({...e,title:c,styleTags:o,lyricsDraft:d},R({...e,title:c,styleTags:o,lyricsDraft:d},t.type===h.CHAT?"AI 草稿":"Suno 歌词",e.creationPrompt)):{};return I(e,{title:c,styleTags:o,lyricsDraft:d,...m,pendingLyricsGenTaskId:null},A)}const i=D(t,"musicAnalyzerRecordId");if(!i)return null;const s=(await g()).find(l=>l.id===i);if(!s||s.pendingRewriteTaskId!==t.id)return null;const a=L(t)||w(x(t)),y=(s.lyricsVersions||[]).length,f=R({...s,title:a.title||s.title,styleTags:a.styleTags.length>0?a.styleTags:s.styleTags,lyricsDraft:a.lyricsDraft||s.lyricsDraft},`AI 改写 #${y+1}`,s.rewritePrompt),T=S(s,f);return I(s,{title:a.title||s.title,styleTags:a.styleTags.length>0?a.styleTags:s.styleTags,lyricsDraft:a.lyricsDraft||s.lyricsDraft,pendingRewriteTaskId:null,...T},A)}function $(t){const r=t.result;if(!r)return null;const i=L(t);if(i)return i;const u=x(t);if(u)try{return w(u)}catch{}const s=r.lyricsText||"",a=r.lyricsTitle||r.title||"",y=r.lyricsTags;if(!s&&!a)return null;const f=Array.isArray(y)?y.map(T=>String(T||"").trim()).filter(Boolean):[];return{title:String(a).trim(),styleTags:f,lyricsDraft:String(s).trim()}}function J(t){return P(t)}async function N(t,r){return v(t,r,{loadRecords:g,updateRecord:A})}function W(t){return z(t)!==null}function _(t){if(t.type!==h.AUDIO)return null;const r=t.params.batchId;return r?b(r,{prefix:"ma_"}):null}export{N as a,J as e,_ as g,W as i,H as s};
@@ -1 +0,0 @@
1
- import{r as l,ht as ne,al as x,br as re,bs as le,as as W,ar as te,y as s,k$ as de,hN as oe,bx as ce,fG as R,bu as X,bt as Y,bW as ue}from"./tool-windows-CtLXQDGF.js";const pe=({images:o,onImagesChange:p,language:U="zh",disabled:m=!1,multiple:g=!0,maxCount:h=10,label:V,slotLabels:f,onError:t})=>{const[q,y]=l.useState(!1),[C,I]=l.useState(!1),[_,z]=l.useState(0),[j,w]=l.useState(null),F=l.useRef(null),B=l.useRef(null),{addAsset:S}=ne(),u={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 25MB",someFilesInvalid:"部分文件格式不支持或超过25MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 25MB",someFilesInvalid:"Some files are not supported or exceed 25MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[U],E=l.useCallback(e=>e.type.startsWith("image/")?e.size>25*1024*1024?(x.error(u.fileTooLarge),!1):!0:(x.error(u.invalidFile),!1),[u]),A=l.useCallback((e,a)=>new Promise((i,r)=>{const d=new FileReader;d.onload=()=>{i({url:d.result,name:a,file:(e instanceof File,e)})},d.onerror=r,d.readAsDataURL(e)}),[]),b=l.useCallback(async(e,a)=>{const r=Array.from(e).filter(E);if(r.length===0)return;g&&o.length+r.length>h&&(x.warning(u.maxCountReached.replace("{count}",String(h))),r.splice(h-o.length));const d=[];for(const n of r)try{let c=n;if(n.size>10*1024*1024){const N=re(n.size/1048576),v=x.loading({content:U==="zh"?`正在压缩图片 (${(n.size/1024/1024).toFixed(1)}MB)...`:`Compressing image (${(n.size/1024/1024).toFixed(1)}MB)...`,duration:0,placement:"top"});try{c=await le(n,N.targetSizeMB),x.close(v),x.success({content:U==="zh"?`压缩完成: ${(n.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`:`Compressed: ${(n.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`,duration:2})}catch(k){x.close(v),console.error("[ReferenceImageUpload] Compression failed:",k),t==null||t(U==="zh"?"图片压缩失败":"Image compression failed");continue}}d.push({blob:c,name:n.name})}catch(c){console.error("[ReferenceImageUpload] Error processing file:",c),t==null||t(u.loadFailed);continue}if(d.length!==0){d.forEach(({blob:n,name:c})=>{S(n,W.IMAGE,te.LOCAL,c).catch(N=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",N)})});try{const n=await Promise.all(d.map(({blob:c,name:N})=>A(c,N)));if(f&&a!==void 0){const c=[...o];c[a]=n[0],p(c.filter(Boolean))}else p(g?[...o,...n]:n.slice(0,1));t==null||t(null)}catch(n){console.error("[ReferenceImageUpload] Failed to process files:",n),t==null||t(u.loadFailed)}}},[o,g,h,f,U,E,A,S,p,t,u]),J=l.useCallback(e=>{const a=e.target.files;a&&a.length>0&&b(a,f?_:void 0),e.target.value=""},[b,f,_]),K=l.useCallback(async e=>{try{const i=await(await fetch(e.url)).blob(),r=new FileReader;r.onload=()=>{const d={url:r.result,name:e.name};if(f){const n=[...o];n[_]=d,p(n.filter(Boolean))}else if(g){if(o.length>=h){x.warning(u.maxCountReached.replace("{count}",String(h)));return}p([...o,d])}else p([d]);y(!1),t==null||t(null)},r.readAsDataURL(i)}catch(a){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",a),t==null||t(u.loadFailed),y(!1)}},[o,g,h,f,_,p,t,u]),P=l.useCallback(e=>{e.preventDefault(),e.stopPropagation(),m||I(!0)},[m]),$=l.useCallback(e=>{var i;e.preventDefault(),e.stopPropagation();const a=(i=F.current)==null?void 0:i.getBoundingClientRect();if(a){const{clientX:r,clientY:d}=e;(r<a.left||r>a.right||d<a.top||d>a.bottom)&&I(!1)}},[]),L=l.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),T=l.useCallback((e,a)=>{if(e.preventDefault(),e.stopPropagation(),I(!1),m)return;const i=e.dataTransfer.files;i&&i.length>0&&b(i,a)},[m,b]);l.useEffect(()=>{const e=async a=>{var N;if(m)return;const i=document.activeElement,r=F.current;if(!r||!(r.contains(i)||i===document.body||(i==null?void 0:i.tagName)==="BODY"))return;const n=(N=a.clipboardData)==null?void 0:N.items;if(!n)return;const c=[];for(let v=0;v<n.length;v++){const k=n[v];if(k.type.startsWith("image/")){const G=k.getAsFile();G&&c.push(G)}}c.length>0&&(a.preventDefault(),b(c))};return document.addEventListener("paste",e),()=>{document.removeEventListener("paste",e)}},[m,b]);const Q=l.useCallback(e=>{const a=o.filter((i,r)=>r!==e);w(null),p(a)},[o,p]),O=l.useCallback(e=>{var a;e!==void 0&&z(e),(a=B.current)==null||a.click()},[]),H=l.useCallback(e=>{e!==void 0&&z(e),y(!0)},[]),Z=l.useCallback((e,a)=>{const i=a.currentTarget.getBoundingClientRect(),r=i.left+i.width/2,d=i.top-10;w({url:e,x:r,y:d})},[]),ee=l.useCallback(()=>{w(null)},[]),D=e=>s.jsxDEV("div",{className:`reference-image-upload__placeholder ${C?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:P,onDragLeave:$,onDragOver:L,onDrop:a=>T(a,e),children:s.jsxDEV("div",{className:"reference-image-upload__buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(X,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:401,columnNumber:17},void 0),onClick:()=>O(e),disabled:m,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:399,columnNumber:9},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:411,columnNumber:17},void 0),onClick:()=>H(e),disabled:m,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:398,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:391,columnNumber:5},void 0),M=(e,a)=>s.jsxDEV("div",{className:"reference-image-upload__preview",onMouseEnter:i=>Z(e.url,i),onMouseLeave:ee,children:[s.jsxDEV("img",{src:e.url,alt:e.name,className:"reference-image-upload__image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:431,columnNumber:7},void 0),s.jsxDEV("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>Q(a),disabled:m,"data-track":"reference_image_upload_remove",children:s.jsxDEV(ue,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:443,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:436,columnNumber:7},void 0),f&&f[a]&&s.jsxDEV("div",{className:"reference-image-upload__slot-label",children:f[a]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:446,columnNumber:9},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:425,columnNumber:5},void 0),ae=()=>f?s.jsxDEV("div",{className:"reference-image-upload__slots",children:f.map((e,a)=>{const i=o[a];return s.jsxDEV("div",{className:"reference-image-upload__slot",children:[s.jsxDEV("div",{className:"reference-image-upload__slot-title",children:e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:463,columnNumber:15},void 0),i?M(i,a):s.jsxDEV("div",{className:`reference-image-upload__slot-placeholder ${C?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:P,onDragLeave:$,onDragOver:L,onDrop:r=>T(r,a),children:s.jsxDEV("div",{className:"reference-image-upload__slot-buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(X,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:477,columnNumber:29},void 0),onClick:()=>O(a),disabled:m,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:475,columnNumber:21},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:487,columnNumber:29},void 0),onClick:()=>H(a),disabled:m,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:485,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:474,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:467,columnNumber:17},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:462,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:458,columnNumber:7},void 0):null,se=()=>{const e=g&&o.length<h;return s.jsxDEV("div",{className:"reference-image-upload__grid",children:[o.map((a,i)=>M(a,i)),e&&D(),o.length===0&&!e&&D()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:510,columnNumber:7},void 0)},ie=()=>o.length>0?s.jsxDEV("div",{className:"reference-image-upload__single",children:[M(o[0],0),s.jsxDEV("div",{className:"reference-image-upload__replace",children:D()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:524,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:522,columnNumber:9},void 0):D();return s.jsxDEV(s.Fragment,{children:[j&&de.createPortal(s.jsxDEV("div",{className:"reference-image-upload__hover-preview",style:{left:`${j.x}px`,top:`${j.y}px`,transform:"translate(-50%, -100%)"},children:s.jsxDEV("img",{src:j.url,alt:"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:545,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:537,columnNumber:9},void 0),document.body),s.jsxDEV("div",{ref:F,className:`reference-image-upload ${m?"reference-image-upload--disabled":""}`,tabIndex:0,children:[V&&s.jsxDEV("div",{className:"reference-image-upload__label",children:V},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:556,columnNumber:11},void 0),s.jsxDEV("input",{ref:B,type:"file",accept:"image/*",multiple:g&&!f,onChange:J,className:"reference-image-upload__input",disabled:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:559,columnNumber:9},void 0),f?ae():g?se():ie(),q&&s.jsxDEV(oe,{isOpen:q,onClose:()=>y(!1),mode:ce.SELECT,filterType:W.IMAGE,onSelect:K},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:572,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:550,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:534,columnNumber:5},void 0)};export{pe as R};