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
@@ -0,0 +1,8 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./tool-windows-CUNbW1Tz.css"])))=>i.map(i=>d[i]);
2
+ import{bp as De,ak as vn,fU as bs,aD as da,aj as l,d1 as hn,ai as u,gR as ua,gU as ma,W as ws,bz as Et,T as pa,gV as fa,gW as ha,gX as ga,gd as gn,ga as bn,G as ba,b_ as wa,a4 as Ri,gY as xa,D as ya,gc as Ia,db as Ge,gZ as qn,q as _n,dO as $n,k as _t,de as Mt,dg as ft,gv as Sn,cX as Xn,cY as Jn,g_ as Bi,cF as Qn,cZ as ei,c_ as Mn,g$ as xs,as as ys,h0 as ka,h1 as Na,d0 as ti,fb as va,g2 as Sa,h2 as Da,cP as Ea,h3 as _a,fM as Ma,bL as Ca,bk as ni,aw as Is,aZ as ja,gu as Aa,gI as Ta,cV as Pa,R as Dn,h4 as Kn,aH as ks,bl as wn,bn as Ua,h5 as ut,h6 as Wn,bt as ht,br as vt,bu as mt,cW as zi,dc as Oi,dj as Va,du as Ue,h7 as Ln,O as Ra,cb as St,h8 as qi,$ as Wi,aU as Qe,ar as Li,av as Ba,dd as za,bB as Fi,bC as Oa,h9 as Ns,g as Fn,ha as Hi,Q as vs,hb as Gi,s as $i,da as Ki,d9 as Yi,aC as Zi,cl as xn,aq as qa,ap as Wa,bH as yn,gL as La,aO as Fa,ax as Ha,bN as Ga,hc as $a,hd as Ka,he as Xi,hf as Ya}from"./tool-windows-DOIu9TAD.js";import{p as Za,a as Xa,b as Ja,u as Qa,c as er,d as In,e as Dt,W as tr}from"./useWorkflowSubmission-BizuDmuw.js";import{m as nr,u as ir,b as sr,i as ar,c as rr}from"./main-BFEkxCOK.js";import{u as or,S as cr,i as lr}from"./index-CfgvFFx3.js";import{u as dr,r as ur,g as mr,a as pr,b as fr,l as hr,c as Hn,s as gr,d as br,P as wr}from"./ai-generation-preferences-service-BF7QkuJp.js";import{setCanvasBoard as Ji}from"./canvas-insertion-CdUQF7IV.js";import{s as Qi}from"./board-utils-CpAtoKn2.js";import{s as es}from"./workflow-submission-service-YOpo7g37.js";import{r as Ss,S as xr,b as Yn,c as tt,d as ts,f as ns}from"./skill-dsl-parser-syNWYxFu.js";import"./video-generation-DnmTlWnm.js";import"./index-B2dttXd7.js";import"./ppt-generation-FzjP_rp0.js";import"./video-analyze-6v3Y-rUE.js";const Ee="external-skill-packages";let ii=[],En=[],Zn=!1;async function $e(){var t,n;if(!Zn){try{let e=await De.get(Ee),s=null;try{s=await yr()}catch(r){console.warn("[ExternalSkillService] 预构建 bundle 加载失败(非致命):",r)}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 De.set(Ee,e),console.log(`[ExternalSkillService] 已加载预构建 bundle: ${s.skills.length} 个 Skill`));else if(s&&s.skills&&s.skills.length>0){const r=(t=s.metadata)==null?void 0:t.bundleVersion,o=e.find(a=>a.name===(s.name||"baoyu-skills")),m=(n=o==null?void 0:o.metadata)==null?void 0:n.bundleVersion;if(r&&r!==m){const a={name:s.name||"baoyu-skills",skills:s.skills,metadata:s.metadata},p=e.filter(x=>x.name!==a.name);e=[a,...p],await De.set(Ee,e),console.log(`[ExternalSkillService] 预构建 bundle 已更新: ${m||"无"} → ${r} (${s.skills.length} 个 Skill)`)}else if(!r&&!m){const a={name:s.name||"baoyu-skills",skills:s.skills,metadata:s.metadata},p=e.filter(x=>x.name!==a.name);e=[a,...p],await De.set(Ee,e),console.log(`[ExternalSkillService] 预构建 bundle 已强制刷新(旧版本无版本号): ${s.skills.length} 个 Skill`)}}e&&Array.isArray(e)&&await Cn(e)}catch(e){console.error("[ExternalSkillService] 初始化失败:",e)}Zn=!0}}async function yr(){try{const t=await vn(()=>import("./external-skills-BcV6ATYi.js"),[],import.meta.url);return t.default||t}catch{return null}}async function Ir(){return await $e(),[...ii]}async function si(t){await $e();const n=await De.get(Ee),e=n&&Array.isArray(n)?[...n]:[],s=e.findIndex(c=>c.name===t.name);s>=0?e[s]=t:e.push(t),await De.set(Ee,e),await Cn(e)}async function kr(t){await $e();const n=await De.get(Ee);if(!n||!Array.isArray(n))return;const e=n.filter(s=>s.name!==t);await De.set(Ee,e),await Cn(e)}async function Nr(t){await $e();const n=await De.get(Ee);if(!n)return[];const e=n.find(s=>s.name===t);return(e==null?void 0:e.skills)??[]}async function vr(){return await $e(),[...En]}async function Sr(){await $e();const t=await De.get(Ee);return t?t.flatMap(n=>n.skills):[]}async function Ds(t){await $e();const n=await De.get(Ee);if(!n)return null;for(const e of n){const s=e.skills.find(c=>c.id===t);if(s)return s}return null}async function Dr(t){const n=await Ds(t);return(n==null?void 0:n.content)??null}async function Er(t,n){var D;const s=await(await vn(async()=>{const{default:h}=await import("./tool-windows-DOIu9TAD.js").then(b=>b.j);return{default:h}},__vite__mapDeps([0]),import.meta.url)).default.loadAsync(t);let c=null;const r=((D=s.file(/\.claude-plugin\/marketplace\.json$/))==null?void 0:D[0])||s.file("marketplace.json");if(r){const h=await r.async("text");c=Xa(h)}const o=n||(c==null?void 0:c.name)||t.name.replace(/\.zip$/i,""),m=[],a=/(?:^|\/)(skills\/([^/]+)\/SKILL\.md)$/;for(const[h,b]of Object.entries(s.files)){if(b.dir)continue;const g=h.match(a);if(g){const C=g[2],w=await b.async("text"),E=new Map,M=h.substring(0,h.lastIndexOf("SKILL.md"));for(const[_,N]of Object.entries(s.files))if(!N.dir&&_.startsWith(M)&&_!==h){const A=_.substring(M.length);if(A.startsWith("references/")||A.startsWith("prompts/")){const R=await N.async("text");E.set(A,R)}}m.push({dirName:C,skillMdContent:w,references:E.size>0?E:void 0})}}if(m.length===0)throw new Error("ZIP 文件中未找到有效的 Skill(预期路径: skills/*/SKILL.md)");const p=Ja(m,o,c),x={name:o,url:void 0,skills:p,metadata:c==null?void 0:c.metadata};return await si(x),x}async function _r(t,n="custom"){const e=Za(t);if(!e)throw new Error("无法解析 SKILL.md 内容,请检查格式是否正确(需包含 YAML front matter)");const s={id:`${n}:${e.name}`,name:e.name,description:e.description,type:xr,content:e.body,source:n};await $e();const c=await De.get(Ee),r=c&&Array.isArray(c)?[...c]:[];let o=r.find(a=>a.name===n);o||(o={name:n,skills:[],metadata:{description:"手动导入的 Skill"}},r.push(o));const m=o.skills.findIndex(a=>a.id===s.id);return m>=0?o.skills[m]=s:o.skills.push(s),await De.set(Ee,r),await Cn(r),s}async function Mr(t){await si(t)}async function Cn(t){ii=t.map(e=>({name:e.name,url:e.url,skillCount:e.skills.length,metadata:e.metadata})),En=[];for(const e of t)for(const s of e.skills)En.push({id:s.id,name:s.name,description:s.description,source:s.source,sourceUrl:s.sourceUrl,category:s.category,outputType:s.outputType});const n=t.flatMap(e=>e.skills);Ss(n)}async function Cr(){await De.remove(Ee),ii=[],En=[],Ss([]),Zn=!1}const ai={initialize:$e,getPackages:Ir,addPackage:si,removePackage:kr,getSkillsByPackage:Nr,getAllExternalSkillsMeta:vr,getAllExternalSkills:Sr,getSkillById:Ds,getSkillContentById:Dr,importFromZip:Er,importFromPastedContent:_r,importFromBundle:Mr,clearAll:Cr},jr=({generationType:t,onSelectPrompt:n,language:e,extraActions:s})=>{const{history:c,removeHistory:r,refreshHistory:o}=bs({deduplicateWithPresets:!1,modelTypeFilter:t==="image"||t==="video"?void 0:t}),{imageHistory:m,videoHistory:a}=dr(),{confirm:p,confirmDialog:x}=da(),[D,h]=l.useState(!1),[,b]=l.useState(0),g=l.useRef(null),C=l.useRef(null),w=l.useRef(null),E=t==="image"||t==="video"?ur({generationType:t,language:e,promptContents:mr(t,e,t==="image"?m:a),imageHistory:m,videoHistory:a}):pr({generationType:t,language:e,aiInputHistory:c,imageHistory:m,videoHistory:a});l.useEffect(()=>()=>{C.current&&clearTimeout(C.current),w.current&&clearTimeout(w.current)},[]);const M=l.useCallback(()=>{w.current&&(clearTimeout(w.current),w.current=null),C.current=setTimeout(()=>{o(),b($=>$+1),h(!0)},150)},[o]),_=l.useCallback(()=>{C.current&&(clearTimeout(C.current),C.current=null),w.current=setTimeout(()=>{h(!1)},200)},[]),N=l.useCallback($=>{n({content:$.content,modelType:$.modelType,scene:$.scene}),h(!1)},[n]),A=l.useCallback(async $=>{const H=E.find(K=>K.id===$);!H||!await p({title:e==="zh"?"确认删除提示词":"Delete Prompt",description:e==="zh"?"确定要删除这条提示词吗?此操作不可撤销。":"Are you sure you want to delete this prompt? This action cannot be undone.",confirmText:e==="zh"?"删除":"Delete",cancelText:e==="zh"?"取消":"Cancel",danger:!0})||(hn.deletePrompt(t,H.content),H.historyId&&t!=="image"&&t!=="video"?r(H.historyId):b(K=>K+1))},[p,t,e,E,r]),R=l.useCallback($=>{const H=E.find(G=>G.id===$);H&&(hn.isPinned(t,H.content)?hn.unpinPrompt(t,H.content):hn.pinPrompt(t,H.content),b(G=>G+1))},[t,E]);return u.jsxDEV("div",{ref:g,className:"prompt-history-popover",children:[u.jsxDEV("div",{className:"prompt-history-popover__actions",children:[u.jsxDEV("button",{className:"prompt-history-popover__trigger",title:e==="zh"?"提示词":"Prompts","data-track":"ai_input_click_history",onMouseEnter:M,onMouseLeave:_,children:u.jsxDEV(ua,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:203,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:196,columnNumber:9},void 0),s]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:195,columnNumber:7},void 0),D&&u.jsxDEV("div",{className:"prompt-history-popover__panel-wrapper",onMouseEnter:M,onMouseLeave:_,children:u.jsxDEV(ma,{title:e==="zh"?"提示词":"Prompts",items:E,onSelect:N,onTogglePin:R,onDelete:A,language:e,showCount:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:215,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:210,columnNumber:9},void 0),x]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/PromptHistoryPopover.tsx",lineNumber:194,columnNumber:5},void 0)};function Ar(t){var n;return!!((n=t.params)!=null&&n.longVideoMeta)}function Tr(t){var n;return((n=t.params)==null?void 0:n.longVideoMeta)||null}class Ct{constructor(){this.isInitialized=!1,this.batches=new Map,this.initTimestamp=0}static getInstance(){return Ct.instance||(Ct.instance=new Ct),Ct.instance}initialize(){this.isInitialized||(this.isInitialized=!0,this.initTimestamp=Date.now(),ws.observeTaskUpdates().subscribe(n=>{if(n.type==="taskUpdated"&&n.task.status===Et.COMPLETED&&n.task.type===pa.VIDEO&&Ar(n.task)){if((n.task.completedAt||0)<this.initTimestamp)return;this.handleSegmentCompleted(n.task).catch(s=>{console.error("[LongVideoChain] Error handling completed segment:",s)})}}))}async handleSegmentCompleted(n){var p;const e=Tr(n);if(!e)return;const{segmentIndex:s,totalSegments:c,scripts:r,batchId:o}=e,m=(p=n.result)==null?void 0:p.url;let a=this.batches.get(o);if(a||(a={batchId:o,totalSegments:c,completedSegments:new Map,processedSegments:new Set,creatingNextFor:null,isMerging:!1,mergeCompleted:!1,scripts:r||[],characterReferenceUrls:e.characterReferenceUrls,characterDescription:e.characterDescription},this.batches.set(o,a)),!a.processedSegments.has(s)){if(a.processedSegments.add(s),m&&a.completedSegments.set(s,m),a.completedSegments.size===c){await this.mergeAndInsert(a);return}if(a.creatingNextFor!==s&&s<c){a.creatingNextFor=s;try{await this.createNextSegment(n,e,r,m,a.characterReferenceUrls,a.characterDescription)}finally{a.creatingNextFor=null}}}}async createNextSegment(n,e,s,c,r,o){const m=e.segmentIndex+1,a=s.find(D=>D.index===m);if(!a){console.error(`[LongVideoChain] Script not found for segment ${m}`);return}let p;if(c)try{p=(await fa(c)).dataUrl}catch(D){console.error("[LongVideoChain] Failed to extract last frame:",D)}const x={...e,segmentIndex:m,needsLastFrame:m<e.totalSegments,characterReferenceUrls:r??e.characterReferenceUrls,characterDescription:o??e.characterDescription};ha(a,x,p)}async mergeAndInsert(n){if(!(n.isMerging||n.mergeCompleted)){n.isMerging=!0;try{const e=[];for(let o=1;o<=n.totalSegments;o++){const m=n.completedSegments.get(o);m&&e.push(m)}if(e.length===0){console.error("[LongVideoChain] No video URLs to merge");return}const s=this.extractTransitions(n),r=await nr(e,(o,m,a)=>{const p=a||`${m} ${o.toFixed(1)}%`},{transitions:s,transitionDuration:.5});await this.insertMergedVideo(r.url),n.mergeCompleted=!0,this.cleanupBatch(n.batchId)}catch(e){console.error("[LongVideoChain] Merge failed:",e),this.cleanupBatch(n.batchId)}finally{n.isMerging=!1}}}async insertMergedVideo(n){try{await ga("video",n)}catch(e){console.error("[LongVideoChain] Failed to insert video to canvas:",e)}}extractTransitions(n){return!n.scripts||n.scripts.length===0?[]:n.scripts.sort((e,s)=>e.index-s.index).slice(0,-1).map(e=>e.transition_hint||"cut")}cleanupBatch(n){const e=this.batches.get(n);e&&(e.completedSegments.clear(),e.processedSegments.clear(),this.batches.delete(n))}getBatchStatus(n){const e=this.batches.get(n);return e?{completed:e.completedSegments.size,total:e.totalSegments,isMerging:e.isMerging,mergeCompleted:e.mergeCompleted}:null}}const Pr=Ct.getInstance();function Ur(){Pr.initialize()}function is(){return`img-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}async function ss(t){return new Promise((n,e)=>{const s=new Image,c=t.startsWith("http")&&!t.startsWith(location.origin);s.crossOrigin="anonymous",s.onload=()=>n(s),s.onerror=()=>{e(c?new Error("无法加载外部图片,可能是跨域 (CORS) 限制。请先下载图片到本地后再操作。"):new Error("图片加载失败,请检查图片是否有效"))},s.src=t})}function Vr(t,n=.92){return t.toDataURL("image/jpeg",n)}class Rr{async split(n,e){const{rows:s,cols:c}=e;if(s<1||c<1)throw new Error("Grid rows and cols must be at least 1");const r=await ss(n),o=r.naturalWidth,m=r.naturalHeight,a=Math.floor(o/c),p=Math.floor(m/s),x=[];for(let D=0;D<s;D++)for(let h=0;h<c;h++){const b=D*c+h,g=h*a,C=D*p,w=document.createElement("canvas");w.width=a,w.height=p;const E=w.getContext("2d");if(!E)throw new Error("Failed to get canvas 2d context");E.drawImage(r,g,C,a,p,0,0,a,p);const M=Vr(w);x.push({id:is(),imageData:M,originalIndex:b,width:a,height:p})}return x}async splitToBlob(n,e){const{rows:s,cols:c}=e;if(s<1||c<1)throw new Error("Grid rows and cols must be at least 1");const r=await ss(n),o=r.naturalWidth,m=r.naturalHeight,a=Math.floor(o/c),p=Math.floor(m/s),x=[];for(let D=0;D<s;D++)for(let h=0;h<c;h++){const b=D*c+h,g=h*a,C=D*p,w=document.createElement("canvas");w.width=a,w.height=p;const E=w.getContext("2d");if(!E)throw new Error("Failed to get canvas 2d context");E.drawImage(r,g,C,a,p,0,0,a,p);const M=await new Promise((N,A)=>{w.toBlob(R=>{R?N(R):A(new Error("Failed to create blob"))},"image/png",.92)}),_=URL.createObjectURL(M);x.push({id:is(),imageData:_,originalIndex:b,width:a,height:p})}return x}revokeBlobUrls(n){for(const e of n)e.imageData.startsWith("blob:")&&URL.revokeObjectURL(e.imageData)}}const as=new Rr;function Ce(t,n){return Math.random()*(n-t)+t}function kn(t){const n=[...t];for(let e=n.length-1;e>0;e--){const s=Math.floor(Math.random()*(e+1));[n[e],n[s]]=[n[s],n[e]]}return n}class Br{calculate(n,e,s,c){switch(e){case"scattered":return this.scatteredLayout(n,s,c);case"grid":return this.gridLayout(n,s);case"circular":return this.circularLayout(n,s,c);case"inspiration-board":return this.inspirationBoardLayout(n,s,c);default:return console.warn(`[LayoutEngine] Unknown layout style: ${e}, falling back to grid`),this.gridLayout(n,s)}}scatteredLayout(n,e,s){const{maxRotation:c=15,minScale:r=.85,maxScale:o=1.15,positionJitter:m=40}=s||{},{canvasWidth:a,canvasHeight:p,startX:x,startY:D,gap:h=20}=e,b=n.length,g=Math.ceil(Math.sqrt(b)),C=Math.ceil(b/g),w=Math.max(...n.map(H=>H.width)),E=Math.max(...n.map(H=>H.height)),M=a-h*2,_=p-h*2,N=M/g,A=_/C,R=Math.min((N-h)/w,(A-h)/E,1),$=kn(n.map((H,G)=>G));return n.map((H,G)=>{const K=Math.floor(G/g),T=G%g,P=x+h+T*N+N/2,te=D+h+K*A+A/2,ne=Ce(-m,m),W=Ce(-m,m),re=Ce(-c,c),ve=Ce(r,o),Re=R*ve,jt=H.width*Re,en=H.height*Re;return{...H,x:P+ne-jt/2,y:te+W-en/2,rotation:re,scale:Re,zIndex:$[G]}})}gridLayout(n,e){const{canvasWidth:s,canvasHeight:c,startX:r,startY:o,gap:m=20}=e,a=n.length,p=Math.ceil(Math.sqrt(a)),x=Math.ceil(a/p),D=Math.max(...n.map(M=>M.width)),h=Math.max(...n.map(M=>M.height)),b=s-m*(p+1),g=c-m*(x+1),C=b/p,w=g/x,E=Math.min(C/D,w/h,1);return n.map((M,_)=>{const N=Math.floor(_/p),A=_%p,R=M.width*E,$=M.height*E,H=r+m+A*(C+m),G=o+m+N*(w+m),K=H+(C-R)/2,T=G+(w-$)/2;return{...M,x:K,y:T,rotation:0,scale:E,zIndex:_}})}circularLayout(n,e,s){const{centerIndex:c=-1,radius:r,startAngle:o=-90}=s||{},{canvasWidth:m,canvasHeight:a,startX:p,startY:x}=e,D=p+m/2,h=x+a/2,b=c>=0&&c<n.length?n.filter((T,P)=>P!==c):n,g=c>=0&&c<n.length?n[c]:null,C=Math.max(...n.map(T=>T.width)),w=Math.max(...n.map(T=>T.height)),E=Math.max(C,w),M=b.length,_=E*.8,N=M*E*1.2,A=Math.max(_,N/(2*Math.PI)),R=r||Math.min(A,Math.min(m,a)/2-E/2),$=Math.min(m,a),H=Math.min($*.25/E,1),G=[];if(g){const T=g.width*H*1.2,P=g.height*H*1.2;G.push({...g,x:D-T/2,y:h-P/2,rotation:0,scale:H*1.2,zIndex:M})}const K=360/M;return b.forEach((T,P)=>{const ne=(o+P*K)*Math.PI/180,W=T.width*H,re=T.height*H,ve=D+R*Math.cos(ne)-W/2,Re=h+R*Math.sin(ne)-re/2;G.push({...T,x:ve,y:Re,rotation:0,scale:H,zIndex:P})}),G}inspirationBoardLayout(n,e,s){const{minWidthRatio:c=gn.minWidthRatio,maxWidthRatio:r=gn.maxWidthRatio,maxRotation:o=gn.maxRotation,gap:m=gn.gap}=s||{},{canvasWidth:a,canvasHeight:p,startX:x,startY:D}=e,h=n.length,b=this.assignSizeCategories(h),g=n.reduce((A,R)=>A+R.width,0)/h,C=n.reduce((A,R)=>A+R.height,0)/h,w=a||1200,E=p||600,M=Math.min(w*.25/g,E*.4/C,1),_=this.calculateInspirationBoardPositions(h,w,E,m),N=kn(n.map((A,R)=>R));return n.map((A,R)=>{const $=_[R],H=b[R];let G;switch(H){case"large":G=Ce(1.2,r);break;case"medium":G=Ce(.9,1.1);break;case"small":G=Ce(c,.85);break;default:G=1}const K=M*G,T=Ce(-o,o),P=Ce(-20,20),te=Ce(-15,15),ne=A.width*K,W=A.height*K;return{...A,x:x+$.x+P-ne/2,y:D+$.y+te-W/2,rotation:T,scale:K,zIndex:N[R]}})}assignSizeCategories(n){const e=[],s=Math.max(2,Math.floor(n*.25)),c=Math.max(2,Math.floor(n*.25)),r=n-s-c;for(let o=0;o<s;o++)e.push("large");for(let o=0;o<r;o++)e.push("medium");for(let o=0;o<c;o++)e.push("small");return kn(e)}calculateInspirationBoardPositions(n,e,s,c){const r=[],o=Math.ceil(n/4),m=Math.ceil(n/o),a=(e-c*2)/m,p=(s-c*2)/o;for(let x=0;x<n;x++){const D=Math.floor(x/m),h=x%m,b=c+h*a+a/2,g=c+D*p+p/2,C=Ce(-a*.3,a*.3),w=Ce(-p*.2,p*.2);r.push({x:b+C,y:g+w})}return kn(r)}calculateRequiredSize(n,e,s=.5){const c=n.length,r=Math.ceil(Math.sqrt(c)),o=Math.ceil(c/r),m=Math.max(...n.map(b=>b.width)),a=Math.max(...n.map(b=>b.height)),p=20,x=e==="scattered"?60:40,D=r*m*s+(r+1)*p+x*2,h=o*a*s+(o+1)*p+x*2;return{width:D,height:h}}}const rs=new Br;class zr{constructor(){this.board=null}setBoard(n){this.board=n}getBoard(){return this.board}async generate(n){const{theme:e,gridConfig:s=bn.gridConfig,layoutStyle:c=bn.layoutStyle,imageSize:r=bn.imageSize,imageQuality:o=bn.imageQuality}=n;try{const m=this.buildPrompt(e,s),a=await ba.generateImage(m,{size:r,quality:o,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,x=p&&wa(String(p));if(!x)throw new Error("AI 生成图片失败:未返回图片 URL");const D=await Ri.getImageForAI(x),h=D.type==="base64"?D.value:x,b=await as.split(h,s),g=this.calculateLayoutParams(b),C=rs.calculate(b,c,g);return{success:!0,originalImageUrl:x,elements:C}}catch(m){return console.error("[GridImageService] Generation failed:",m),{success:!1,error:m.message||"宫格图生成失败"}}}async processExistingImage(n,e,s="scattered"){try{const c=await Ri.getImageForAI(n),r=c.type==="base64"?c.value:n,o=await as.split(r,e),m=this.calculateLayoutParams(o),a=rs.calculate(o,s,m);return{success:!0,originalImageUrl:n,elements:a}}catch(c){return console.error("[GridImageService] Processing failed:",c),{success:!1,error:c.message||"宫格图处理失败"}}}async insertToBoard(n,e){if(!this.board)throw new Error("画板未初始化,请先调用 setBoard");let s=(e==null?void 0:e[0])??100,c=e==null?void 0:e[1];if(c===void 0){const o=xa(this.board);c=(o==null?void 0:o[1])??100,s=(o==null?void 0:o[0])??s}const r=[...n].sort((o,m)=>o.zIndex-m.zIndex);for(const o of r){const m=s+o.x,a=c+o.y,p={url:o.imageData,width:o.width*o.scale,height:o.height*o.scale};ya.insertImage(this.board,p,[m,a])}}async generateAndInsert(n,e){const s=await this.generate(n);return s.success&&s.elements&&await this.insertToBoard(s.elements,e),s}buildPrompt(n,e){const s=Ia.zh;return s(n,e.rows,e.cols)}calculateLayoutParams(n){const e=n.reduce((b,g)=>b+g.width,0),s=n.reduce((b,g)=>b+g.height,0),c=n.length,r=Math.ceil(Math.sqrt(c)),o=Math.ceil(c/r),m=e/c,a=s/c,p=30,x=50,D=r*m+(r+1)*p+x*2,h=o*a+(o+1)*p+x*2;return{canvasWidth:D,canvasHeight:h,startX:0,startY:0,gap:p}}}const os=new zr;function Or(t){return{cleanText:t,selectedAudioModel:null,selectedImageModel:null,selectedVideoModel:null,selectedParams:[],selectedCount:null}}function qr(){const t=_n.get();return(t==null?void 0:t.imageModelName)||ft()}function Wr(){const t=_n.get();return(t==null?void 0:t.videoModelName)||_t()}function Lr(){const t=_n.get();return(t==null?void 0:t.audioModelName)||Mt()}function cs(){const t=_n.get();return(t==null?void 0:t.textModelName)||$n()}function Fr(t,n,e){if(n.length>0)return n.join(`
3
+ `);if(t){if(e===1)return"请仔细分析这张图片的内容、风格、构图、色调和艺术特点,推测生成这张图片可能使用的原始提示词,然后基于你推测的提示词重新生成一张全新的、风格相似但内容不完全相同的图片。不要直接复制原图。";if(e>1)return"请分析这些图片的主题、风格和视觉元素,找出它们之间的共同点或关联性,然后创造性地将它们融合成一张全新的、和谐统一的图片。融合时请保持各图片的精华元素,确保最终作品在构图、色调和风格上协调一致。"}return""}function Zt(t){return t.replace(":","x").toLowerCase()}function Hr(t,n,e){const s=n.texts.length>0||n.images.length>0||n.videos.length>0||n.graphics.length>0,c=n.texts,r=n.images.length+n.graphics.length,o=Or(t),m=o.cleanText.trim().length>0;let a=(e==null?void 0:e.generationType)||"image",p,x=!1;if(e!=null&&e.modelId){const N=Ge(e.modelId);e.generationType||((N==null?void 0:N.type)==="video"?a="video":(N==null?void 0:N.type)==="audio"?a="audio":(N==null?void 0:N.type)==="text"?a="text":a="image"),p=e.modelId,x=!0}else o.selectedAudioModel?(a="audio",p=o.selectedAudioModel,x=!0):o.selectedVideoModel?(a="video",p=o.selectedVideoModel,x=!0):o.selectedImageModel?(a="image",p=o.selectedImageModel,x=!0):!s&&m&&!(e!=null&&e.generationType)?(a="agent",p=cs()):a==="video"?p=Wr():a==="audio"?p=Lr():a==="text"||a==="agent"?p=cs():p=qr();let D;(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"?D="direct_generation":(e==null?void 0:e.generationType)==="agent"?D="agent_flow":D=m?"agent_flow":"direct_generation";const h=o.cleanText.trim(),b=c.join(`
4
+ `).trim();let g;if(b&&h?g=`${b}
5
+
6
+ ${h}`:h?g=h:b?g=b:s&&r>0?g=a==="text"?"":Fr(s,[],r):g="",p.startsWith("mj")&&(e!=null&&e.params)){const N=fr(e.params);N&&(g=[g,N].filter(Boolean).join(" "))}const C=(e==null?void 0:e.count)||o.selectedCount||1;let w,E,M;if(e!=null&&e.params){a!=="audio"&&a!=="text"&&a!=="agent"&&!p.startsWith("mj")&&e.params.size&&(w=Zt(e.params.size)),e.params.duration&&(E=e.params.duration);const N={};for(const[A,R]of Object.entries(e.params))A!=="size"&&A!=="duration"&&R&&(N[A]=R);Object.keys(N).length>0&&(M=N)}if(!w&&(e!=null&&e.size)&&e.size!=="auto"&&(w=Zt(e.size)),!w&&(e==null?void 0:e.size)!=="auto"){for(const N of o.selectedParams)if(N.id==="size"){w=Zt(N.value);break}}if(!E){for(const N of o.selectedParams)if(N.id==="duration"){E=N.value;break}}if(!w&&(e==null?void 0:e.size)!=="auto"&&a!=="text"&&a!=="agent"&&a!=="audio"){const N=Ge(p);if((N==null?void 0:N.type)==="image"&&N.imageDefaults)w="1x1";else if((N==null?void 0:N.type)==="video"&&N.videoDefaults){const A=qn(p,(e==null?void 0:e.modelRef)||p,e==null?void 0:e.params);w=Zt(A.size||N.videoDefaults.size),E||(E=A.duration||N.videoDefaults.duration)}else if(a==="image")w="1x1";else if(a==="video"){const A=qn(p,(e==null?void 0:e.modelRef)||p,e==null?void 0:e.params);w=Zt(A.size),E||(E=A.duration)}}!E&&a==="video"&&(E=qn(p,(e==null?void 0:e.modelRef)||p,e==null?void 0:e.params).duration);const _=o.cleanText.trim();return{scenario:D,generationType:a,modelId:p,modelRef:(e==null?void 0:e.modelRef)||null,defaultModels:e==null?void 0:e.defaultModels,defaultModelRefs:e==null?void 0:e.defaultModelRefs,isModelExplicit:x,prompt:g,userInstruction:_,rawInput:t,count:C,size:w,duration:E,extraParams:M,parseResult:o,hasExtraContent:m,selection:n}}const Gn={id:tt,name:"自动"},ls=Yn.map(t=>({id:t.id,name:t.name,isSystem:!0,mcpTool:t.mcpTool,outputType:t.outputType})),Gr=({value:t,onSelect:n,onSelectSkill:e,onAddSkill:s,disabled:c=!1})=>{const[r,o]=l.useState(!1),[m,a]=l.useState([]),[p,x]=l.useState([]),[D,h]=l.useState(""),[b,g]=l.useState(0),C=l.useRef(null),w=l.useRef(null),E=l.useCallback(async()=>{try{const P=(await Sn.getAllDirectories()).find(re=>re.name==="Skill");if(!P)return;const te=await Sn.getNoteMetasByDirectory(P.id),ne=new Set(Yn.map(re=>re.id)),W=te.filter(re=>!ne.has(re.id)).map(re=>{var ve;return{id:re.id,name:re.title,outputType:((ve=re.metadata)==null?void 0:ve.outputType)||void 0}});a(W)}catch{}},[]),M=l.useCallback(async()=>{try{const T=await ai.getAllExternalSkillsMeta(),P=new Set(Yn.map(ne=>ne.id)),te=T.filter(ne=>!P.has(ne.id)).map(ne=>({id:ne.id,name:ne.name,isExternal:!0,source:ne.source,outputType:ne.outputType}));x(te)}catch{}},[]);l.useEffect(()=>{if(r){E(),M(),h("");const P=[Gn,...ls,...p,...m].findIndex(te=>te.id===t);g(P>=0?P:0),setTimeout(()=>{var te;return(te=w.current)==null?void 0:te.focus()},50)}},[r,t]),l.useEffect(()=>{if(r&&C.current){const T=C.current.children[b];T&&T.scrollIntoView({block:"nearest"})}},[b,r]);const _=l.useCallback(T=>{T.preventDefault(),!c&&o(P=>!P)},[c]),N=l.useCallback(T=>{n(T.id),e==null||e(T),o(!1)},[n,e]),A=l.useCallback(T=>{T.stopPropagation(),o(!1),s()},[s]),R=[Gn,...ls,...p,...m],$=D.trim()?R.filter(T=>T.name.toLowerCase().includes(D.toLowerCase())||T.id.toLowerCase().includes(D.toLowerCase())):R,H=R.length>15,G=l.useCallback(T=>T==="Escape"?(o(!1),!0):T==="ArrowDown"?(g(P=>P<$.length-1?P+1:0),!0):T==="ArrowUp"?(g(P=>P>0?P-1:$.length-1),!0):T==="Enter"||T===" "||T==="Tab"?(b<$.length&&N($[b]),!0):!1,[b,$,N]),K=$.find(T=>T.id===t)||Gn;return u.jsxDEV(Xn,{isOpen:r,setIsOpen:o,disabled:c,openKeys:["Enter"," ","ArrowDown","ArrowUp"],onOpenKey:G,children:({containerRef:T,menuRef:P,portalPosition:te,handleTriggerKeyDown:ne})=>u.jsxDEV("div",{className:"skill-dropdown",ref:T,children:[u.jsxDEV("button",{className:`skill-dropdown__trigger ${r?"skill-dropdown__trigger--open":""}`,onMouseDown:_,onKeyDown:ne,disabled:c,type:"button",title:`Skill: ${K.name}`,children:[u.jsxDEV("span",{className:"skill-dropdown__icon-prefix",children:u.jsxDEV(Bi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:212,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:211,columnNumber:13},void 0),u.jsxDEV("span",{className:"skill-dropdown__label",children:K.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:214,columnNumber:13},void 0),u.jsxDEV(Qn,{size:14,className:`skill-dropdown__chevron ${r?"skill-dropdown__chevron--open":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:215,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:203,columnNumber:11},void 0),r&&Jn.createPortal(u.jsxDEV("div",{ref:P,className:`skill-dropdown__menu ${Mn}`,style:{position:"fixed",zIndex:ei.DROPDOWN_PORTAL,left:te.left,bottom:window.innerHeight-te.top+8},onMouseDown:W=>W.stopPropagation(),onClick:W=>W.stopPropagation(),children:[u.jsxDEV("div",{className:"skill-dropdown__header",children:[u.jsxDEV(Bi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:235,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:236,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:234,columnNumber:17},void 0),H&&u.jsxDEV("div",{className:"skill-dropdown__search",children:u.jsxDEV("input",{ref:w,type:"text",className:"skill-dropdown__search-input",placeholder:"搜索 Skill...",value:D,onChange:W=>{h(W.target.value),g(0)},onMouseDown:W=>W.stopPropagation(),onKeyDown:W=>W.stopPropagation()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:240,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:239,columnNumber:19},void 0),u.jsxDEV("div",{ref:C,className:"skill-dropdown__list",children:$.map((W,re)=>{const ve=W.id===t,Re=re===b;return u.jsxDEV("div",{className:`skill-dropdown__item ${ve?"skill-dropdown__item--selected":""} ${Re?"skill-dropdown__item--highlighted":""}`,onClick:()=>N(W),onMouseEnter:()=>g(re),children:[u.jsxDEV("span",{className:"skill-dropdown__item-label",children:W.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:266,columnNumber:25},void 0),W.outputType==="image"&&u.jsxDEV(xs,{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:268,columnNumber:27},void 0),W.outputType==="video"&&u.jsxDEV(ys,{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:271,columnNumber:27},void 0),W.outputType==="ppt"&&u.jsxDEV(ka,{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:274,columnNumber:27},void 0),W.outputType==="audio"&&u.jsxDEV(Na,{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:277,columnNumber:27},void 0),W.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:280,columnNumber:27},void 0),W.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:283,columnNumber:27},void 0),ve&&u.jsxDEV(ti,{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:286,columnNumber:27},void 0)]},W.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:260,columnNumber:23},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:255,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:292,columnNumber:17},void 0),u.jsxDEV("div",{className:"skill-dropdown__add-btn",onClick:A,onMouseDown:W=>W.preventDefault(),children:[u.jsxDEV(va,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:298,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:299,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:293,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:222,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:202,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/SkillDropdown.tsx",lineNumber:194,columnNumber:5},void 0)},ds=["image","video","audio"];function $r(t){if(t==="image"||t==="video"||t==="audio")return t}function Xt(t){if(!t)return[];const n=$r(t.outputType);if(n)return[n];if(t.outputType==="text")return[];const e=new Set,s=Sa(t.mcpTool);s&&e.add(s);const c=[t.id,t.name,t.description,t.content].filter(Boolean).join(`
7
+ `);if(c)for(const r of ds)Kr(r).some(m=>c.includes(m))&&e.add(r);return ds.filter(r=>e.has(r))}function Kr(t){switch(t){case"image":return["generate_image","generate_grid_image","generate_photo_wall","generate_inspiration_board"];case"video":return["generate_video","generate_long_video"];case"audio":return["generate_audio"]}}var Oe=(t=>(t.VIDEO="视频创作",t.IMAGE="图片生成",t.MINDMAP="思维导图",t.FLOWCHART="流程图",t.GRID="宫格图",t.SVG="SVG矢量图",t))(Oe||{});const Jt=3,us=[{id:"grid-emoji",title:"智能拆分宫格图",description:"宫格图,风格统一",prompt:"生成16宫格猫咪表情包",category:Oe.GRID,imageUrl:"https://tuziphoto.codernote.club/aitu/gonggetu.jpg",badgeColor:"badge--grid"},{id:"flowchart-process",title:"业务流程图",description:"使用 Mermaid 语法生成清晰的流程图",prompt:"绘制一个用户注册登录的流程图,包含邮箱验证、密码校验、短信验证码、登录成功/失败等节点",category:Oe.FLOWCHART,imageUrl:"https://tuziphoto.codernote.club/aitu/liuchengtu.png",badgeColor:"badge--flowchart"},{id:"mindmap-project",title:"项目规划脑图",description:"快速生成结构化的思维导图,梳理项目计划",prompt:"创建一个关于「移动应用开发」的思维导图,包含需求分析、UI设计、前端开发、后端开发、测试上线等主要分支",category:Oe.MINDMAP,imageUrl:"https://tuziphoto.codernote.club/aitu/siweidaotu.png",badgeColor:"badge--mindmap"}],Yr={[Oe.VIDEO]:{bg:"#fce7f3",text:"#be185d"},[Oe.IMAGE]:{bg:"#dbeafe",text:"#1d4ed8"},[Oe.MINDMAP]:{bg:"#dcfce7",text:"#15803d"},[Oe.FLOWCHART]:{bg:"#fef3c7",text:"#b45309"},[Oe.GRID]:{bg:"#f3e8ff",text:"#7c3aed"},[Oe.SVG]:{bg:"#e0e7ff",text:"#4338ca"}},Zr=({template:t,onClick:n})=>{const e=Yr[t.category],s=c=>{c.preventDefault()};return u.jsxDEV("div",{className:"inspiration-card",onMouseDown:s,onClick:n,"data-track":`inspiration_click_${t.id}`,children:[u.jsxDEV("div",{className:"inspiration-card__image-wrapper",children:[u.jsxDEV("img",{src:t.imageUrl,alt:t.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:t.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(Da,{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:t.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:t.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)},ms="aitu_hide_inspiration_board",Xr=({isCanvasEmpty:t,onSelectPrompt:n,onOpenPromptTool:e,visible:s=!0,className:c=""})=>{const[r,o]=l.useState(0),[m,a]=l.useState(!1);l.useEffect(()=>{localStorage.getItem(ms)==="true"&&a(!0)},[]);const p=Math.ceil(us.length/Jt),x=p>1,D=us.slice(r*Jt,(r+1)*Jt),h=l.useCallback(w=>{w.preventDefault(),w.stopPropagation(),o(E=>(E-1+p)%p)},[p]),b=l.useCallback(w=>{w.preventDefault(),w.stopPropagation(),o(E=>(E+1)%p)},[p]),g=l.useCallback(w=>{n({prompt:w,modelType:"agent"})},[n]),C=l.useCallback(w=>{w.preventDefault(),w.stopPropagation(),a(!0),localStorage.setItem(ms,"true")},[]);return!t||!s||m?null:u.jsxDEV("div",{className:`inspiration-board ${c}`,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:C,onMouseDown:w=>w.preventDefault(),title:"不再提示","data-track":"inspiration_click_hide",children:[u.jsxDEV(Ea,{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:w=>w.preventDefault(),title:"提示词工具","data-track":"inspiration_click_prompt_tool",children:[u.jsxDEV(_a,{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),x&&u.jsxDEV("div",{className:"inspiration-board__pagination",children:[u.jsxDEV("span",{className:"inspiration-board__page-indicator",children:[r+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:w=>w.preventDefault(),onClick:h,"aria-label":"上一页","data-track":"inspiration_click_prev",children:u.jsxDEV(Ma,{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:w=>w.preventDefault(),onClick:b,"aria-label":"下一页","data-track":"inspiration_click_next",children:u.jsxDEV(Ca,{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:[D.map(w=>u.jsxDEV(Zr,{template:w,onClick:()=>g(w.prompt)},w.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/inspiration-board/InspirationBoard.tsx",lineNumber:143,columnNumber:11},void 0)),D.length<Jt&&Array.from({length:Jt-D.length}).map((w,E)=>u.jsxDEV("div",{className:"inspiration-card inspiration-card--placeholder"},`placeholder-${E}`,!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)},pt=[{value:"image",label:"图片",icon:u.jsxDEV(xs,{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(ys,{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(ja,{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(Aa,{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(Ta,{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"}],Jr=({value:t,onSelect:n,disabled:e=!1})=>{const[s,c]=l.useState(!1),{language:r}=ni(),[o,m]=l.useState(0),a=l.useRef(null);l.useEffect(()=>{if(s){const b=pt.findIndex(g=>g.value===t);m(b>=0?b:0)}},[s,t]),l.useEffect(()=>{if(s&&a.current){const b=a.current.children[o];b&&b.scrollIntoView({block:"nearest"})}},[o,s]);const p=l.useCallback(b=>{b.preventDefault(),!e&&c(g=>!g)},[e]),x=l.useCallback(b=>{n(b),c(!1)},[n]),D=l.useCallback(b=>b==="Escape"?(c(!1),!0):b==="ArrowDown"?(m(g=>g<pt.length-1?g+1:0),!0):b==="ArrowUp"?(m(g=>g>0?g-1:pt.length-1),!0):b==="Enter"||b===" "||b==="Tab"?(x(pt[o].value),!0):!1,[o,x]),h=pt.find(b=>b.value===t)||pt[0];return u.jsxDEV(Xn,{isOpen:s,setIsOpen:c,disabled:e,openKeys:["Enter"," ","ArrowDown","ArrowUp"],onOpenKey:D,children:({containerRef:b,menuRef:g,portalPosition:C,handleTriggerKeyDown:w})=>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:w,disabled:e,type:"button",title:`${r==="zh"?"生成类型":"Type"}: ${r==="zh"?h.zh:h.en} (↑↓ Tab)`,children:[u.jsxDEV("span",{className:"generation-type-dropdown__icon-prefix",children:h.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:r==="zh"?h.zh:h.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(Qn,{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&&Jn.createPortal(u.jsxDEV("div",{ref:g,className:`generation-type-dropdown__menu ${Mn}`,style:{position:"fixed",zIndex:ei.DROPDOWN_PORTAL,left:C.left,bottom:window.innerHeight-C.top+8},onMouseDown:E=>E.stopPropagation(),onClick:E=>E.stopPropagation(),children:[u.jsxDEV("div",{className:"generation-type-dropdown__header",children:[u.jsxDEV(Is,{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:r==="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:pt.map((E,M)=>{const _=E.value===t,N=M===o;return u.jsxDEV("div",{className:`generation-type-dropdown__item ${_?"generation-type-dropdown__item--selected":""} ${N?"generation-type-dropdown__item--highlighted":""}`,onClick:()=>x(E.value),onMouseEnter:()=>m(M),children:[u.jsxDEV("span",{className:"generation-type-dropdown__item-icon",children:E.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:r==="zh"?E.zh:E.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),_&&u.jsxDEV(ti,{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)]},E.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)},Qt=[1,2,3,4,5,10,20],Qr=({value:t,onSelect:n,disabled:e=!1,isOpen:s,onOpenChange:c})=>{const{value:r,setValue:o}=Pa({controlledValue:s,defaultValue:!1,onChange:c}),{language:m}=ni(),[a,p]=l.useState(0),x=l.useRef(null);l.useEffect(()=>{if(r){const g=Qt.indexOf(t);p(g>=0?g:0)}},[r,t]),l.useEffect(()=>{if(r&&x.current){const g=x.current.children[a];g&&g.scrollIntoView({block:"nearest"})}},[a,r]);const D=l.useCallback(g=>{g.preventDefault(),!e&&o(!r)},[e,r,o]),h=l.useCallback(g=>{n(g),o(!1)},[n]),b=l.useCallback(g=>g==="Escape"?(o(!1),!0):g==="ArrowDown"?(p(C=>C<Qt.length-1?C+1:0),!0):g==="ArrowUp"?(p(C=>C>0?C-1:Qt.length-1),!0):g==="Enter"||g===" "||g==="Tab"?(h(Qt[a]),!0):!1,[a,h]);return u.jsxDEV(Xn,{isOpen:r,setIsOpen:o,disabled:e,openKeys:["Enter"," ","ArrowDown","ArrowUp"],onOpenKey:b,children:({containerRef:g,menuRef:C,portalPosition:w,handleTriggerKeyDown:E})=>u.jsxDEV("div",{className:"count-dropdown",ref:g,children:[u.jsxDEV("button",{className:`count-dropdown__trigger ${r?"count-dropdown__trigger--open":""}`,onMouseDown:D,onKeyDown:E,disabled:e,type:"button",title:`${m==="zh"?"生成数量":"Count"}: ${t} (↑↓ Tab)`,children:[u.jsxDEV("span",{className:"count-dropdown__label",children:[t,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(Qn,{size:14,className:`count-dropdown__chevron ${r?"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),r&&Jn.createPortal(u.jsxDEV("div",{ref:C,className:`count-dropdown__menu ${Mn}`,style:{position:"fixed",zIndex:ei.DROPDOWN_PORTAL,left:w.left,bottom:window.innerHeight-w.top+8},onMouseDown:M=>M.stopPropagation(),onClick:M=>M.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:x,className:"count-dropdown__list",children:Qt.map((M,_)=>{const N=M===t,A=_===a;return u.jsxDEV("div",{className:`count-dropdown__item ${N?"count-dropdown__item--selected":""} ${A?"count-dropdown__item--highlighted":""}`,onClick:()=>h(M),onMouseEnter:()=>p(_),children:[u.jsxDEV("span",{className:"count-dropdown__item-label",children:[M,m==="zh"?"个":M>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),N&&u.jsxDEV(ti,{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)]},M,!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)},Es=["right","bottom","left","top"],Nn=4;function eo(t,n,e,s,c=32){const r=s<=2?s:s<=4?2:3,o=Math.floor(e/r),m=e%r;return[t[0]+m*(n.width+c),t[1]+o*(n.height+c)]}function _s(t,n){const{ignoreElementIds:e=[],ignoreTypes:s=["workzone"],extraOccupiedRects:c=[]}=n;return[...t.children.filter(to).filter(r=>!s.includes(r.type??"")&&!e.includes(r.id??"")).map(r=>({...Dn.getRectangleByPoints(r.points),id:r.id,type:r.type})),...c]}function to(t){return typeof t=="object"&&t!==null&&Array.isArray(t.points)&&t.points.length===2}function Ms(t,n,e){return t.x<n.x+n.width+e&&t.x+t.width+e>n.x&&t.y<n.y+n.height+e&&t.y+t.height+e>n.y}function no(t,n,e,s){const c=[t];for(let r=1;r<=s;r+=1)c.push([t[0]+n*r,t[1]],[t[0],t[1]+e*r],[t[0]+n*r,t[1]+e*r],[t[0]-n*r,t[1]],[t[0]-n*r,t[1]+e*r],[t[0],t[1]-e*r],[t[0]+n*r,t[1]-e*r],[t[0]-n*r,t[1]-e*r]);return c}function io(t,n,e,s,c){const r=Math.max(c,32),o=Math.max(Math.round(Math.min(n.width,n.height)*.16),28),m=Math.max(Math.round(Math.min(n.width,n.height)*.12),18),a=n.width+o,p=n.height+o,x=[];for(let D=0;D<e;D+=1){const h=Math.floor(D/Nn),b=D%Nn,g=Math.min(Nn,e-h*Nn),C=b-(g-1)/2,w=t.x+t.width/2-n.width/2,E=t.y+t.height/2-n.height/2,M=Math.abs(C)*m;let _=w,N=E;switch(s){case"right":_=t.x+t.width+r+h*a+M,N=E+C*(n.height+o);break;case"left":_=t.x-r-n.width-h*a-M,N=E+C*(n.height+o);break;case"top":_=w+C*(n.width+o),N=t.y-r-n.height-h*p-M;break;case"bottom":default:_=w+C*(n.width+o),N=t.y+t.height+r+h*p+M;break}x.push([Math.round(_),Math.round(N)])}return x}function ps(t,n,e,s,c){return t.reduce((o,m)=>{const a={x:m[0],y:m[1],width:n.width,height:n.height};return o+e.filter(p=>Ms(a,p,s)).length},0)*1e3+Es.indexOf(c)*10}function so(t,n,e,s,c){var p;const{gap:r=40,padding:o=16}=c,m=_s(t,c),a=Es.map(x=>({side:x,positions:io(n,e,s,x,r)}));return a.sort((x,D)=>ps(x.positions,e,m,o,x.side)-ps(D.positions,e,m,o,D.side)),((p=a[0])==null?void 0:p.positions)??[]}function ao(t,n,e,s,c={}){const{frameRect:r,extraOccupiedRects:o=[],...m}=c,a={...m,extraOccupiedRects:o},p=r?so(t,r,e,s,a):Array.from({length:s},(D,h)=>eo(n,e,h,s,a.gap)),x=[...o];return p.map(D=>{const h=ro(t,D,e,{...a,extraOccupiedRects:x});return x.push({x:h[0],y:h[1],width:e.width,height:e.height}),h})}function ro(t,n,e,s={}){const{gap:c=40,padding:r=16,maxSearchRadius:o=6}=s,m=_s(t,s),a=e.width+c,p=e.height+c,x=no(n,a,p,o);for(const D of x){const h={x:D[0],y:D[1],width:e.width,height:e.height};if(!m.some(g=>Ms(h,g,r)))return D}return[n[0],n[1]+p*(o+1)]}function gt(t){return typeof t=="string"&&t.trim()?t.trim():null}function oo(t){return t==="image"||t==="video"||t==="audio"||t==="text"||t==="agent"}function co(t){if(!t||typeof t!="object")return!1;const n=t;return typeof n.modelId=="string"&&n.modelId.trim().length>0&&(n.profileId===null||typeof n.profileId=="string")&&(n.providerIdHint===null||typeof n.providerIdHint=="string")&&(n.vendorHint===null||typeof n.vendorHint=="string")&&typeof n.updatedAt=="number"&&Number.isFinite(n.updatedAt)}function ri(){try{const t=window.localStorage.getItem(Kn);if(!t)return{};const n=JSON.parse(t);if(!n||typeof n!="object")return{};const e={};return Object.entries(n).forEach(([s,c])=>{oo(s)&&co(c)&&(e[s]={modelId:c.modelId.trim(),profileId:gt(c.profileId),providerIdHint:gt(c.providerIdHint),vendorHint:gt(c.vendorHint),updatedAt:c.updatedAt})}),e}catch{return{}}}function Cs(t){try{if(!Object.values(t).some(Boolean)){window.localStorage.removeItem(Kn);return}window.localStorage.setItem(Kn,JSON.stringify(t))}catch{}}function lo(t){const n=ri();return n[t]?n[t]||null:t==="agent"&&n.text||null}function fs(t,n){var c;const e=gt(n.modelId);if(!e){js(t);return}const s=ri();s[t]={modelId:e,profileId:gt((c=n.modelRef)==null?void 0:c.profileId),providerIdHint:gt(n.providerIdHint),vendorHint:gt(n.vendorHint),updatedAt:Date.now()},Cs(s)}function js(t){const n=ri();n[t]&&(delete n[t],Cs(n))}function et(t,n,e,s){var r;const c=t.metadata||{};return{id:t.id,name:t.name,generationType:t.generationType,prompt:c.prompt||((r=n==null?void 0:n.aiContext)==null?void 0:r.finalPrompt)||"",aiAnalysis:t.aiAnalysis,count:c.count,createdAt:t.createdAt,status:t.status,steps:t.steps.map(o=>({id:o.id,description:o.description,status:o.status,mcp:o.mcp,args:o.args,result:o.result,error:o.error,duration:o.duration,options:o.options})),retryContext:n,postProcessingStatus:e,insertedCount:s}}let hs=!1;hs||(lr(),Ur(),ai.initialize().catch(t=>{console.warn("[AIInputBar] 外部 Skill 服务初始化失败(非致命):",t)}),hs=!0);function As(t){return t.selectionKey||(t.sourceProfileId?`${t.sourceProfileId}::${t.id}`:t.id)}function Ve(t,n){return n!=null&&n.profileId?`${n.profileId}::${t}`:t}function ze(t){return t?ht(t.sourceProfileId||null,t.id):null}function uo(t){return t<=0?"0":t<=20?"1-20":t<=100?"21-100":t<=300?"101-300":t<=800?"301-800":"800+"}const mo=1,Ts=4,po=6,fo=1.5;function gs(t,n){const e=window.getComputedStyle(t),s=Number.parseFloat(e.fontSize)||15,c=Number.parseFloat(e.lineHeight)||s*fo,r=Number.parseFloat(e.paddingTop)+Number.parseFloat(e.paddingBottom),o=Number.parseFloat(e.borderTopWidth)+Number.parseFloat(e.borderBottomWidth);return Math.ceil(c*n+r+o)}function ho(t,n){if(!t)return;if(!n){t.style.height="",t.style.overflowY="";return}const e=gs(t,Ts),s=gs(t,po);t.style.height="auto";const c=t.scrollHeight,r=Math.min(Math.max(c,e),s);t.style.height=`${r}px`,t.style.overflowY=c>s?"auto":"hidden"}function ye(t,n,e){if(!n)return;const s=Ve(n,e),c=(e==null?void 0:e.profileId)||null;return t.find(r=>As(r)===s)||t.find(r=>r.id===n&&(r.sourceProfileId||null)===c)||(c===null?t.find(r=>r.id===n&&!r.sourceProfileId):void 0)||t.find(r=>r.id===n)}function go(t,n){return t==="agent"&&n==="text"?"agent":n}function bo(t){if(!t)return!1;const n=t.toLowerCase();return n.includes("#video")?!0:[".mp4",".webm",".mov",".avi",".mkv",".m4v",".flv",".wmv"].some(s=>n.includes(s))}const Ps=ks.memo(({language:t,onSelectionChange:n,externalBoardRef:e,onCanvasEmptyChange:s,isDataReady:c,onFrameSelected:r})=>{const o=rr(),m=l.useRef(o);m.current=o,l.useEffect(()=>(Xi(o),Ji(o),Qi(o),es(o),os.setBoard(o),e&&(e.current=o),()=>{Xi(null),Ji(null),Qi(null),es(null),os.setBoard(null),e&&(e.current=null)}),[o,e]);const a=l.useRef(s);a.current=s,l.useEffect(()=>{if(!o||!a.current||!c)return;const h=setInterval(()=>{var g;const b=o.children||[];(g=a.current)==null||g.call(a,b.length===0)},500);return()=>{clearInterval(h)}},[o,c]);const p=l.useRef(n);p.current=n;const x=l.useRef(r);return x.current=r,l.useEffect(()=>{const D=async()=>{var C,w,E,M;const b=m.current;if(!b)return;const g=Ns(b);if(g.length===1&&vs(g[0])){const _=g[0],N=Dn.getRectangleByPoints(_.points);(C=x.current)==null||C.call(x,{id:_.id,width:N.width,height:N.height})}else(w=x.current)==null||w.call(x,null);if(g.length===0){p.current([]);return}try{const _=await Ka(b),N=[];_.graphicsImage&&N.push({url:_.graphicsImage,name:t==="zh"?"图形元素":"Graphics",type:"graphics",width:(E=_.graphicsImageDimensions)==null?void 0:E.width,height:(M=_.graphicsImageDimensions)==null?void 0:M.height});for(const A of _.remainingImages){const R=A.url||"",$=bo(R);N.push({url:R,name:A.name||($?`video-${Date.now()}`:`image-${Date.now()}`),type:$?"video":"image",width:A.width,height:A.height})}_.remainingText&&_.remainingText.trim()&&N.push({type:"text",text:_.remainingText.trim(),name:t==="zh"?"文字内容":"Text Content"}),p.current(N)}catch(_){console.error("Failed to process selected content:",_),p.current([])}};D();const h=()=>{setTimeout(D,50)};return document.addEventListener("mouseup",h),()=>{document.removeEventListener("mouseup",h)}},[t]),null});Ps.displayName="SelectionWatcher";const Us=ks.memo(({className:t,isDataReady:n})=>{const{language:e}=ni(),s=wn("image"),c=wn("video"),r=wn("audio"),o=wn("text"),m=ir(),a=Qa(),{addHistory:p}=bs(),{addAsset:x}=Ua(),D=l.useRef(m.sendWorkflowMessage);D.current=m.sendWorkflowMessage;const h=l.useRef(m.updateWorkflowMessage);h.current=m.updateWorkflowMessage;const b=l.useRef(m.appendAgentLog);b.current=m.appendAgentLog;const g=l.useRef(m.updateThinkingContent);g.current=m.updateThinkingContent;const C=l.useRef(m.setSelectedContent);C.current=m.setSelectedContent;const w=l.useRef(m.registerRetryHandler);w.current=m.registerRetryHandler;const E=l.useRef(null),M=l.useRef([]),_=l.useRef(null),N=hr(),A=l.useCallback((i,d,f)=>{if(!i)return;const I=M.current,S=(f!=null&&f.workflowId&&(f!=null&&f.batchId)&&typeof f.batchIndex=="number"?ut.getAnchorByBatchSlot(i,{workflowId:f.workflowId,batchId:f.batchId,batchIndex:f.batchIndex}):null)||(f!=null&&f.workflowId?ut.getAnchorByWorkflowId(i,f.workflowId):null)||(I[0]?ut.getAnchorById(i,I[0]):null);if(!S)return;const j=S.taskIds.includes(d)?S.taskIds:[...S.taskIds,d];ut.updateAnchor(i,S.id,{taskIds:j,primaryTaskId:S.primaryTaskId||d})},[]),R=l.useCallback((i,d,f)=>{const I=M.current;I.length===0||!i||I.forEach(S=>{ut.updateAnchor(i,S,Wn(d,f))})},[]),$=l.useCallback(i=>{const d=M.current;d.length===0||!i||(d.forEach(f=>{ut.removeAnchor(i,f)}),M.current=[])},[]),H=l.useCallback((i,d)=>{const f=lo(i);if(!f)return;const I=ye(d,f.modelId,ht(f.profileId,f.modelId));if(I)return I;js(i)},[]),G=l.useCallback((i,d)=>{const f=H(i,d);if(f)return f;const S=vt(i==="video"?"video":i==="audio"?"audio":i==="text"||i==="agent"?"text":"image"),j=ye(d,S.modelId,ht(S.profileId,S.modelId));if(j)return j;const B=i==="video"?_t():i==="audio"?Mt():i==="text"||i==="agent"?$n():ft();return ye(d,B,null)||d[0]},[H]),K=N.generationType,P=G(K,K==="video"?c:K==="audio"?r:K==="text"||K==="agent"?o:s)||Ge(N.selectedModel)||Ge(K==="video"?_t():K==="audio"?Mt():K==="text"||K==="agent"?$n():ft()),te=G("image",s)||Ge(ft()),ne=G("video",c)||Ge(_t()),W=G("audio",r)||Ge(Mt()),re=vt("image"),ve=(te==null?void 0:te.id)||re.modelId||ft(),Re=ze(te)||ht(re.profileId,re.modelId),jt=Ve((P==null?void 0:P.id)||ve,ze(P)||Re),en=K==="agent"?{}:Hn(K,(P==null?void 0:P.id)||ve,jt,N.selectedParams),[Se,nt]=l.useState(""),[oi,ci]=l.useState(!1),[jn,An]=l.useState([]),[At,bt]=l.useState([]),[qe,it]=l.useState(!1),ge=l.useRef(null),[Tt,wt]=l.useState(!1),[Vs,Rs]=l.useState(null),[y,Ke]=l.useState(K),[be,li]=l.useState(N.selectedSkillId||tt),[V,di]=l.useState((P==null?void 0:P.id)||ve),[L,ui]=l.useState(ze(P)||Re),[We,mi]=l.useState((te==null?void 0:te.id)||ft()),[Ye,pi]=l.useState(ze(te)),[Le,fi]=l.useState((ne==null?void 0:ne.id)||_t()),[Ze,hi]=l.useState(ze(ne)),[Fe,gi]=l.useState((W==null?void 0:W.id)||Mt()),[Xe,bi]=l.useState(ze(W)),[Tn,st]=l.useState([]),tn=l.useMemo(()=>{if(y!=="image"||ye(s,V,L))return s;const d=mt("image",V,L);return d?[d,...s]:s},[y,s,V,L]),nn=l.useMemo(()=>{if(y!=="video"||ye(c,V,L))return c;const d=mt("video",V,L);return d?[d,...c]:c},[y,V,L,c]),sn=l.useMemo(()=>{if(y!=="audio"||ye(r,V,L))return r;const d=mt("audio",V,L);return d?[d,...r]:r},[r,y,V,L]),an=l.useMemo(()=>{if(y!=="text"&&y!=="agent"||ye(o,V,L))return o;const d=mt("text",V,L);return d?[d,...o]:o},[y,V,L,o]),Pt=l.useMemo(()=>{if(ye(s,We,Ye))return s;const d=mt("image",We,Ye);return d?[d,...s]:s},[s,We,Ye]),Ut=l.useMemo(()=>{if(ye(c,Le,Ze))return c;const d=mt("video",Le,Ze);return d?[d,...c]:c},[Le,Ze,c]),Vt=l.useMemo(()=>{if(ye(r,Fe,Xe))return r;const d=mt("audio",Fe,Xe);return d?[d,...r]:r},[r,Fe,Xe]),[Me,rn]=l.useState(()=>{if(K==="agent")return{};const i=(P==null?void 0:P.id)||ve,d=zi(i).find(f=>f.id==="size");return{...en,...i.startsWith("mj")||!d?{}:{size:en.size||Oi(i)}}}),Rt=l.useRef(Me),wi=l.useRef(K==="agent"?"agent":`${K}:${jt}`);l.useEffect(()=>{Rt.current=Me},[Me]);const[Bt,xi]=l.useState(N.selectedCount),[yi,Pn]=l.useState(!1),[Ii,Un]=l.useState(!1),[ki,Vn]=l.useState(!1),at=l.useRef(null),Bs=l.useCallback(i=>{Pn(i),i||(at.current=null)},[]),zs=l.useCallback(i=>{Un(i),i||(at.current=null)},[]),Os=l.useCallback(i=>{Vn(i),i||(at.current=null)},[]),[Ni,zt]=l.useState(!1),he=l.useMemo(()=>[...At,...jn],[At,jn]),rt=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=y==="video"?nn:y==="audio"?sn:y==="text"||y==="agent"?an:tn,f=ye(i,V,L)||G(y,i);if(f){const I=Ve(V,L),S=As(f);I!==S&&(di(f.id),ui(ze(f)))}y!=="agent"&&li(tt),(y==="agent"||y==="text"||y==="audio")&&xi(1)},[sn,y,tn,G,V,L,an,nn]),l.useEffect(()=>{const i=(d,f,I,S,j,B)=>{if(ye(f,I,S))return;const U=G(d,f);U&&(j(U.id),B(ze(U)))};i("image",Pt,We,Ye,mi,pi),i("video",Ut,Le,Ze,fi,hi),i("audio",Vt,Fe,Xe,gi,bi)},[G,Fe,Xe,We,Ye,Le,Ze,Vt,Pt,Ut]);const on=l.useMemo(()=>y==="video"?nn:y==="audio"?sn:y==="text"||y==="agent"?an:tn,[sn,y,tn,an,nn]);l.useEffect(()=>{let i=!1;return(async()=>{var B;if(y!=="agent"||be===tt){st([]);return}const f=ts(be);if(f){st(Xt(f));return}const I=ns(be);if(I){st(Xt(I));return}const S=await ai.getSkillById(be);if(i)return;if(S){st(Xt(S));return}const j=await Sn.getNoteById(be);i||st(j?Xt({id:j.id,name:j.title,content:j.content,outputType:(B=j.metadata)==null?void 0:B.outputType}):[])})().catch(()=>{i||st([])}),()=>{i=!0}},[y,be]);const Ot=l.useMemo(()=>{var f;if(y==="agent")return[];if(y==="video")return Va(V,L||V,Me);const i=zi(V);return y!=="audio"?i:(Me.sunoAction||((f=i.find(I=>I.id==="sunoAction"))==null?void 0:f.defaultValue)||"music")==="lyrics"?i.filter(I=>I.id==="sunoAction"||I.id==="mv"||I.id==="title"||I.id==="tags"):i},[y,V,L,Me]);l.useEffect(()=>{if(!Tt)return;const i=d=>{const f=d.target;ln.current&&!ln.current.contains(f)&&wt(!1)};return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[Tt]),l.useEffect(()=>()=>{ge.current&&clearTimeout(ge.current)},[]),l.useEffect(()=>{const i=d=>{var f;((f=d.detail)==null?void 0:f.type)!=="image"&&(ge.current&&(clearTimeout(ge.current),ge.current=null),it(!1))};return window.addEventListener("ai-generation-complete",i),()=>{window.removeEventListener("ai-generation-complete",i)}},[]),l.useEffect(()=>{const i=ws.observeTaskUpdates().subscribe(d=>{var U,F;const f=d.task,I=a.getWorkflow();if(!I)return;const S=I.steps.find(z=>{const X=z.result;return(X==null?void 0:X.taskId)===f.id});if(!S)return;let j=S.status,B=S.result,Z=S.error;switch(f.status){case Et.PENDING:case Et.PROCESSING:j="running";break;case Et.COMPLETED:j="completed",B={...typeof B=="object"?B:{},taskId:f.id,result:f.result};break;case Et.FAILED:j="failed",Z=((U=f.error)==null?void 0:U.message)||"任务执行失败";break;case Et.CANCELLED:j="skipped";break}if(j!==S.status){if(a.updateStep(S.id,j,B,Z),j==="failed"){const X=(F=S.options)==null?void 0:F.batchId;X&&I.steps.forEach(ee=>{var Ie;ee.id!==S.id&&((Ie=ee.options)==null?void 0:Ie.batchId)===X&&ee.status==="running"&&a.updateStep(ee.id,"skipped",void 0,"前置任务失败")})}const z=a.getWorkflow();if(z){const X=et(z,E.current||void 0);h.current(X);const ee=_.current,Ie=je.current;ee&&Ie&&Ue.updateWorkflow(Ie,ee,X)}}});return()=>i.unsubscribe()},[a]);const vi=l.useRef(void 0),cn=l.useRef(void 0);l.useEffect(()=>{const i=Ln.observeCompletionEvents().subscribe(d=>{const f=a.getWorkflow(),I=f==null?void 0:f.steps.find(B=>{const Z=B.result;return(Z==null?void 0:Z.taskId)===d.taskId});let S,j;switch(d.type){case"postProcessingStarted":S="processing";break;case"postProcessingCompleted":S="completed",j=d.result.insertedCount;break;case"postProcessingFailed":S="failed";break}if(vi.current=S,j!==void 0&&(cn.current=(cn.current||0)+j),f&&I){const B=a.getWorkflow();if(B){const Z=et(B,E.current||void 0,S,cn.current);h.current(Z);const U=_.current,F=je.current;U&&F&&Ue.updateWorkflow(F,U,Z)}}if(d.type==="postProcessingCompleted"){const B=d.result.firstElementPosition;ge.current&&(clearTimeout(ge.current),ge.current=null),it(!1),setTimeout(async()=>{var F;m.closeChatDrawer();const Z=_.current,U=je.current;if(Z&&U){const z=a.getWorkflow();if(z==null?void 0:z.steps.every(ee=>ee.status==="completed"||ee.status==="failed"||ee.status==="skipped")){const{workflowCompletionService:ee}=await vn(async()=>{const{workflowCompletionService:ie}=await import("./tool-windows-DOIu9TAD.js").then(q=>q.pw);return{workflowCompletionService:ie}},__vite__mapDeps([0]),import.meta.url);(z==null?void 0:z.steps.every(ie=>{const q=ie.result;return q!=null&&q.taskId?ee.isPostProcessingCompleted(q.taskId):!0}))&&(Ue.removeWorkZone(U,Z),_.current=null)}}if(B&&U){const z=(F=U.host)==null?void 0:F.getBoundingClientRect();if(z){const X=U.viewport.zoom,ee=B[0]-z.width/(2*X),Ie=B[1]-z.height/(2*X);Ra.updateViewport(U,[ee,Ie],X)}}},500),vi.current=void 0,cn.current=void 0}});return()=>i.unsubscribe()},[a,m]);const je=l.useRef(null),{submitWorkflow:Si}=er({boardRef:je,workZoneIdRef:_}),Ae=l.useRef(null),ln=l.useRef(null),Di=l.useRef(null);or(Ae,{enableCopy:!0,stopPropagation:!0});const qs=l.useCallback(i=>{var d;nt(i.prompt),Ke("agent"),(d=Ae.current)==null||d.focus(),St.track("inspiration_selected",{promptLength:i.prompt.length,modelType:i.modelType})},[]),Ws=l.useCallback(i=>{var d;nt(i.content),i.modelType&&(i.modelType==="image"?Ke("image"):i.modelType==="video"?Ke("video"):i.modelType==="audio"?Ke("audio"):i.modelType==="text"?Ke("text"):i.modelType==="agent"&&Ke("agent")),(d=Ae.current)==null||d.focus()},[]),Ls=l.useCallback(()=>{const i=qi.find(d=>d.id==="knowledge-base");i&&(window.__kbPendingNavigation={directoryName:"Skill",autoCreateNote:!0},Wi.openTool(i),setTimeout(()=>{window.dispatchEvent(new CustomEvent("kb:navigate",{detail:{directoryName:"Skill",autoCreateNote:!0}}))},300))},[]),Fs=l.useCallback(()=>{const i=qi.find(d=>d.id==="banana-prompt");if(!i){console.warn("[AIInputBar] Banana prompt tool not found");return}Wi.openTool(i)},[]),Hs=l.useCallback(()=>{ci(!0)},[]),Gs=l.useCallback(async i=>{try{const d=new Image;d.onload=()=>{const f={type:"image",url:i.url,name:i.name||`素材-${Date.now()}`,width:d.naturalWidth||void 0,height:d.naturalHeight||void 0};bt(I=>[...I,f]),zt(!1)},d.onerror=()=>{const f={type:"image",url:i.url,name:i.name||`素材-${Date.now()}`};bt(I=>[...I,f]),zt(!1)},d.src=i.url}catch(d){console.error("Failed to select asset from library:",d),zt(!1)}},[]),$s=l.useCallback(()=>{var i;(i=Di.current)==null||i.click()},[]),Ei=l.useCallback(i=>new Promise((d,f)=>{const I=new FileReader;I.onload=()=>{const S=I.result,j=new Image;j.onload=()=>{d({url:S,width:j.naturalWidth,height:j.naturalHeight})},j.onerror=()=>{d({url:S,width:0,height:0})},j.src=S},I.onerror=f,I.readAsDataURL(i)}),[]),dn=l.useCallback(async i=>{const d=Array.from(i);if(d.length===0)return;const f=[];for(const[I,S]of d.entries()){if(!S.type.startsWith("image/")){Qe.error(rt.invalidFile);continue}if(S.size>25*1024*1024){Qe.error(rt.fileTooLarge);continue}try{let j=S;if(S.size>10*1024*1024){const{compressImageBlob:z,getCompressionStrategy:X}=await vn(async()=>{const{compressImageBlob:ie,getCompressionStrategy:q}=await import("./tool-windows-DOIu9TAD.js").then(we=>we.pi);return{compressImageBlob:ie,getCompressionStrategy:q}},__vite__mapDeps([0]),import.meta.url),ee=X(S.size/(1024*1024)),Ie=Qe.loading({content:rt.compressing(S.size/(1024*1024)),duration:0,placement:"top"});try{j=await z(S,ee.targetSizeMB),Qe.close(Ie),Qe.success({content:rt.compressed(S.size/(1024*1024),j.size/(1024*1024)),duration:2})}catch(ie){Qe.close(Ie),console.error("[AIInputBar] Failed to compress image:",ie),Qe.error(rt.compressionFailed);continue}}const B=j instanceof File?j:new File([j],S.name||`pasted-image-${Date.now()}.png`,{type:j.type||S.type||"image/png"});x(B,Li.IMAGE,Ba.LOCAL,B.name).catch(z=>{console.warn("[AIInputBar] Failed to add asset to library:",z)});const{url:Z,width:U,height:F}=await Ei(B);f.push({type:"image",url:Z,name:B.name||`上传图片 ${I+1}`,width:U||void 0,height:F||void 0})}catch(j){console.error("[AIInputBar] Failed to import local image:",j),Qe.error(rt.loadFailed)}}f.length>0&&bt(I=>[...I,...f])},[x,Ei,rt]),Ks=l.useCallback(async i=>{const d=i.target.files;!d||d.length===0||(await dn(d),i.target.value="")},[dn]),Ys=l.useCallback(i=>{An(i)},[]),_i=l.useRef(null),Zs=l.useCallback(i=>{if(_i.current=i,!i)return;const d=sr(i.width,i.height,V);d&&rn(f=>({...f,size:d}))},[V]),Xs=l.useCallback(i=>{i<At.length&&bt(d=>d.filter((f,I)=>I!==i))},[At.length]);l.useEffect(()=>{C.current(he.map(i=>({type:i.type,url:i.url,text:i.text,name:i.name})))},[he]),l.useEffect(()=>{const i=d=>{var U,F;const f=(U=d.clipboardData)==null?void 0:U.items;if(!f||f.length===0||!Array.from(f).some(z=>z.type.startsWith("image/")))return;const S=document.activeElement,j=ln.current;if(!(!!j&&(j.contains(S)||Tt&&(S===document.body||(S==null?void 0:S.tagName)==="BODY"))))return;const Z=[];for(const z of Array.from(f)){if(!z.type.startsWith("image/"))continue;const X=z.getAsFile();X&&Z.push(X)}Z.length!==0&&(d.preventDefault(),dn(Z),(F=Ae.current)==null||F.focus())};return document.addEventListener("paste",i),()=>{document.removeEventListener("paste",i)}},[dn,Tt]);const xt=l.useCallback(()=>{if(at.current!==null){const i=at.current;nt(d=>d.substring(0,i)+d.substring(i+1)),at.current=null}},[]),un=l.useCallback(i=>{const d=go(y,i.type);St.track("ai_input_change_model",{model:i.id,type:i.type,profileId:i.sourceProfileId||null}),xt(),Ke(d),di(i.id);const f=ze(i);ui(f),fs(d,{modelId:i.id,modelRef:f,providerIdHint:i.sourceProfileId||(f==null?void 0:f.profileId),vendorHint:i.vendor}),rn(d==="agent"?{}:Hn(d,i.id,Ve(i.id,f))),Pn(!1),setTimeout(()=>{var I;return(I=Ae.current)==null?void 0:I.focus()},0)},[xt,y]),Js=l.useCallback(i=>{const d=ye(on,i,L)||ye(on,i,null)||Ge(i);d&&un(d)},[un,on,L]),Qs=l.useCallback(i=>{un(i)},[un]),mn=l.useCallback((i,d)=>{const f=ze(d);i==="image"?(mi(d.id),pi(f)):i==="video"?(fi(d.id),hi(f)):(gi(d.id),bi(f)),fs(i,{modelId:d.id,modelRef:f,providerIdHint:d.sourceProfileId||(f==null?void 0:f.profileId),vendorHint:d.vendor}),St.track("ai_input_change_agent_media_model",{model:d.id,type:i,profileId:d.sourceProfileId||null})},[]),Rn=l.useCallback((i,d,f)=>{const I=i==="image"?Pt:i==="video"?Ut:Vt,S=ye(I,d,f||null)||ye(I,d,null)||Ge(d);S&&mn(i,S)},[mn,Vt,Pt,Ut]),Bn=l.useCallback((i,d)=>{mn(i,d)},[mn]),ea=l.useCallback(i=>{st(Xt(i))},[]),Mi=l.useMemo(()=>({image:We,video:Le,audio:Fe}),[Fe,We,Le]),Ci=l.useMemo(()=>({image:Ye,video:Ze,audio:Xe}),[Xe,Ye,Ze]);l.useEffect(()=>{const i=(U,F)=>{const z=Object.keys(U),X=Object.keys(F);return z.length!==X.length?!1:z.every(ee=>U[ee]===F[ee])},d=y==="agent"?"agent":`${y}:${Ve(V,L)}`,f=y==="agent"?{}:wi.current===d?Rt.current||{}:Hn(y,V,Ve(V,L),Rt.current),I={},S=Ot.find(U=>U.id==="size"),j=f.size,B=!j||!(S!=null&&S.options)||S.options.some(U=>U.value===j);!V.startsWith("mj")&&S&&(I.size=j&&B?j:S.defaultValue||Oi(V)),Ot.forEach(U=>{if(U.id==="size")return;const F=f[U.id],z=!F||U.valueType!=="enum"||!U.options||U.options.some(X=>X.value===F);F&&z?I[U.id]=F:U.defaultValue&&(I[U.id]=U.defaultValue)});const Z=za(V,I);i(Rt.current||{},Z)||(rn(Z),Rt.current=Z),wi.current=d},[y,V,L,Ot]),l.useEffect(()=>{gr({generationType:y,selectedModel:V,selectedParams:Me,selectedCount:Bt,selectedSkillId:be}),y!=="agent"&&br(y,V,Me,Ve(V,L))},[y,V,L,Me,Bt,be]);const ta=l.useCallback((i,d,f)=>{xt(),rn(I=>{const S={...I};return d===void 0||d===""?delete S[i]:S[i]=d,S}),f!=null&&f.keepOpen||(Un(!1),setTimeout(()=>{var I;return(I=Ae.current)==null?void 0:I.focus()},0))},[xt]),na=l.useCallback(i=>{xt(),xi(i),Vn(!1),setTimeout(()=>{var d;return(d=Ae.current)==null?void 0:d.focus()},0)},[xt]),zn=l.useCallback(async()=>{var i,d,f,I,S,j,B,Z,U;if(!(!Se.trim()&&he.length===0)&&!qe){it(!0);try{const F=y==="video"?"video":y==="audio"?"audio":y==="text"||y==="agent"?"text":"image",z=Fi(F,L||V);if(console.log("[AIInputBar][handleGenerate] API Key 检查:",{hasApiKey:z}),!z){console.log("[AIInputBar][handleGenerate] 弹窗获取 API Key...");const k=await Oa();if(console.log("[AIInputBar][handleGenerate] API Key 输入完成:",{hasNewKey:!!k}),!k){it(!1);return}console.log("[AIInputBar][handleGenerate] API Key 输入后设置状态:",{hasApiKey:Fi(F,L||V)})}const X=he.filter(k=>k.type==="image"&&k.url),ee=he.filter(k=>k.type==="graphics"&&k.url),Ie=[...X,...ee].map(k=>{if(k.width&&k.height)return{width:k.width,height:k.height}}).filter(k=>k!==void 0),ie={texts:he.filter(k=>k.type==="text"&&k.text).map(k=>k.text),images:X.map(k=>k.url),videos:he.filter(k=>k.type==="video"&&k.url).map(k=>k.url),graphics:ee.map(k=>k.url),imageDimensions:Ie},q=Hr(Se,ie,{modelId:V,modelRef:L,params:Me,generationType:y,count:Bt,defaultModels:y==="agent"?Mi:void 0,defaultModelRefs:y==="agent"?Ci:void 0}),we=[...ie.images,...ie.graphics];let se;if(y==="agent"&&be!==tt){const k=ts(be);if(k)try{se=await In(q,k,we)}catch(O){console.warn("[AIInputBar] 系统 Skill 工作流转换失败,降级到通用工作流:",O),se=Dt(q,we)}else{const O=ns(be);if(O){console.log(`[AIInputBar] 外部 Skill: id=${O.id} name=${O.name} outputType=${O.outputType} contentLen=${((i=O.content)==null?void 0:i.length)||0}`);try{se=await In(q,{id:O.id,name:O.name,type:"external",content:O.content,outputType:O.outputType},we,()=>{console.log("[AIInputBar] AI 正在解析外部 Skill 工作流...")})}catch(Y){console.warn("[AIInputBar] 外部 Skill 工作流转换失败,降级到角色扮演:",Y),se=await In(q,{id:O.id,name:O.name,type:"external",content:O.content,outputType:O.outputType},we).catch(()=>Dt(q,we))}}else try{const Y=await Sn.getNoteById(be);if(Y){const ae=((d=Y.metadata)==null?void 0:d.outputType)||void 0;se=await In(q,{id:Y.id,name:Y.title,type:"user",content:Y.content,outputType:ae},we,()=>{console.log("[AIInputBar] AI 正在解析工作流...")})}else se=Dt(q,we)}catch{se=Dt(q,we)}}se||(console.warn("[AIInputBar] Skill 工作流未能生成,降级到通用工作流"),se=Dt(q,we))}else se=Dt(q,we);console.log("[AIInputBar][handleGenerate] 即将创建 WorkZone, workflow.steps:",se.steps.length);const v=je.current;if(v){const ae=(f=v.host)==null?void 0:f.getBoundingClientRect(),me=((I=v.viewport)==null?void 0:I.zoom)||1,pe=((j=(S=v.viewport)==null?void 0:S.origination)==null?void 0:j[0])||0,Pe=((Z=(B=v.viewport)==null?void 0:B.origination)==null?void 0:Z[1])||0,Ft=v.children.filter(fe=>fe.type!=="workzone"),fn=pe+((ae==null?void 0:ae.width)||0)/2/me,Ht=Pe+((ae==null?void 0:ae.height)||0)/2/me;let ke=fn-200,Q=Ht,It=ke,Je=Ht-240/2;if(Ft.length>0){const fe=Ns(v);let oe=!1;if(fe.length>0)try{const ce=Fn(v,fe,!1);fe.every(Ne=>Hi.isDrawElement(Ne)&&Hi.isImage(Ne)||ar(Ne))&&ce.width>ce.height?(ke=ce.x+ce.width+50,Q=ce.y):(ke=ce.x,Q=ce.y+ce.height+50),It=ke,Je=Q,oe=!0}catch(ce){console.warn("[AIInputBar] Failed to calculate position for selected elements:",ce)}if(!oe){let ce=null,$t=-1/0;for(const Ne of Ft)try{const Nt=Fn(v,[Ne],!1),Kt=Nt.y+Nt.height;Kt>$t&&($t=Kt,ce=Ne)}catch(Nt){console.warn("[AIInputBar] Failed to get rectangle for element:",Nt)}if(ce){const Ne=Fn(v,[ce],!1);ke=Ne.x,Q=Ne.y+Ne.height+50,It=ke,Je=Q}}}const lt=et(se),kt=_i.current;let Gt,dt,Pi;if(kt){const fe=v.children.find(oe=>oe.id===kt.id);if(fe&&vs(fe)){Gt=kt.id,dt={width:kt.width,height:kt.height};const oe=Dn.getRectangleByPoints(fe.points);Pi=oe,ke=oe.x,Q=oe.y}}if(q.generationType==="image"){const fe=Math.max(q.count??1,1),oe=fe>1,ce=oe?void 0:Gt,$t=oe?void 0:dt,Ne=[],Nt=`wf_batch_${se.id}`,Kt=ce?null:ao(v,[ke,Q],Gi({workflowId:se.id,expectedInsertPosition:[ke,Q],requestedSize:q.size,requestedCount:1,zoom:me,title:lt.name||"图片生成",...Wn("submitted")}).size??{width:320,height:180},fe,{frameRect:oe?Pi:void 0});for(let _e=0;_e<fe;_e+=1){let Yt=Gi({workflowId:se.id,expectedInsertPosition:[ke,Q],targetFrameId:ce,targetFrameDimensions:$t,frameAffinityId:oe?Gt:void 0,frameAffinityDimensions:oe?dt:void 0,requestedSize:q.size,requestedCount:oe?1:fe,batchId:oe?Nt:void 0,batchIndex:oe?_e+1:void 0,batchTotal:oe?fe:void 0,zoom:me,title:lt.name||"图片生成",...Wn("submitted")});if(!ce){const Vi=Kt?Kt[_e]??Yt.position:Yt.position;Yt={...Yt,position:Vi,expectedInsertPosition:Vi}}const la=ut.insertAnchor(v,Yt);Ne.push(la)}M.current=Ne.map(_e=>_e.id),_.current=null,console.log("[AIInputBar][handleGenerate] Image Generation Anchor 已创建:",Ne.map(_e=>_e.id));const[Ui]=Ne;Ui&&setTimeout(()=>{const _e=Dn.getRectangleByPoints(Ui.points);$i(v,[_e.x+_e.width/2,_e.y+_e.height/2],100)},100)}else{const fe=Ue.insertWorkZone(v,{workflow:lt,position:[It,Je],size:{width:360,height:240},expectedInsertPosition:[ke,Q],targetFrameId:Gt,targetFrameDimensions:dt,zoom:me});_.current=fe.id,M.current=[],console.log("[AIInputBar][handleGenerate] WorkZone 已创建:",fe.id),setTimeout(()=>{const oe=It+180,ce=Je+240/2;$i(v,[oe,ce],100)},100)}}const J=vt("image"),le=vt("video"),xe=vt("audio"),de={rawInput:Se,userInstruction:q.userInstruction,model:{id:q.modelId,type:q.generationType,isExplicit:q.isModelExplicit},modelRef:q.modelRef,defaultModels:q.defaultModels||{audio:xe.modelId||Mt(),image:J.modelId||ft(),video:le.modelId||_t()},defaultModelRefs:q.defaultModelRefs||{audio:ht(xe.profileId,xe.modelId),image:ht(J.profileId,J.modelId),video:ht(le.profileId,le.modelId)},params:{count:q.count,size:q.size,duration:q.duration},selection:ie,finalPrompt:q.prompt},Te=vt("text").modelId,qt={aiContext:de,referenceImages:we,textModel:Te};E.current=qt;try{console.log("[AIInputBar][handleGenerate] 开始提交工作流 submitWorkflowToSW...");const k=Date.now(),{usedSW:O}=await Si(q,we,qt,se);if(console.log("[AIInputBar][handleGenerate] submitWorkflowToSW 返回:",{usedSW:O,耗时ms:Date.now()-k}),O){if(y==="image"&&R(v,"accepted"),Se.trim()){const Y=Se.trim(),ae=he.length>0;p(Y,ae,y),y==="image"?Ki(Y):y==="video"&&Yi(Y)}nt(""),An([]),bt([]),ge.current&&clearTimeout(ge.current),ge.current=setTimeout(()=>{it(!1),ge.current=null},1e3);return}}catch(k){console.warn("[AIInputBar] SW execution failed, falling back to main thread:",k)}if(console.log("[AIInputBar] Fallback: Executing workflow in main thread:",se.steps.length,"steps"),y==="image"&&R(v,"handoff"),Se.trim()){const k=Se.trim(),O=he.length>0;p(k,O,y),y==="image"?Ki(k):y==="video"&&Yi(k)}nt(""),An([]),bt([]),ge.current&&clearTimeout(ge.current),ge.current=setTimeout(()=>{it(!1),ge.current=null},1e3);const Wt=[],He=[],yt=(k,O)=>({onChunk:Y=>{g.current(Y)},onAddSteps:Y=>{a.updateStep(k.id,"completed",{analysis:"completed"},void 0,Date.now()-O);const ae=Y.map((pe,Pe)=>({...pe,status:pe.status==="completed"?"completed":"pending",options:{mode:"queue",batchId:`agent_${Date.now()}`,batchIndex:Pe+1,batchTotal:Y.length,globalIndex:Pe+1}}));a.addSteps(ae),He.push(...ae),Y.forEach(pe=>{b.current({type:"tool_call",timestamp:Date.now(),toolName:pe.mcp,args:pe.args})});const me=et(a.getWorkflow(),E.current||void 0);h.current(me),_.current&&v&&Ue.updateWorkflow(v,_.current,me)},onUpdateStep:(Y,ae,me,pe)=>{a.updateStep(Y,ae,me,pe),b.current({type:"tool_result",timestamp:Date.now(),toolName:Y,success:ae==="completed",data:me,error:pe});const Pe=et(a.getWorkflow(),E.current||void 0);h.current(Pe),_.current&&v&&Ue.updateWorkflow(v,_.current,Pe)}});let ct=!1;const ue=()=>{const k=et(a.getWorkflow(),E.current||void 0);h.current(k),_.current&&v&&Ue.updateWorkflow(v,_.current,k)},pn=async k=>{var ae,me,pe,Pe,Ft,fn,Ht;console.log("[AIInputBar] Executing step:",k.mcp,"with mode:",(ae=k.options)==null?void 0:ae.mode);const O=Date.now(),Y=He.length;a.updateStep(k.id,"running"),ue();try{const ke={...k.options,...yt(k,O)};console.log("[AIInputBar] Calling mcpRegistry.executeTool for:",k.mcp);const Q=await Zi.executeTool({name:k.mcp,arguments:k.args},ke);console.log("[AIInputBar] Tool result:",{success:Q.success,taskId:Q.taskId,error:Q.error});const It=(pe=(me=a.getWorkflow())==null?void 0:me.steps.find(Je=>Je.id===k.id))==null?void 0:pe.status;if(Q.success){if(Q.taskId)Wt.push(Q.taskId),a.updateStep(k.id,"running",{taskId:Q.taskId}),A(v,Q.taskId,{workflowId:se.id,batchId:(Pe=k.options)==null?void 0:Pe.batchId,batchIndex:(Ft=k.options)==null?void 0:Ft.batchIndex});else if(It==="running"){const Je=Q.type==="text"&&Q.data&&typeof Q.data=="object"&&"content"in Q.data?{content:Q.data.content}:Q.data;a.updateStep(k.id,"completed",Je,void 0,Date.now()-O);const lt=k.mcp==="generate_text"?(fn=Q.data)==null?void 0:fn.content:k.mcp==="ai_analyze"?(Ht=Q.data)==null?void 0:Ht.response:void 0;if((k.mcp==="generate_text"||k.mcp==="ai_analyze")&&lt&&lt.trim()&&He.length===Y){const dt={id:`${k.id}-insert-text`,mcp:"insert_to_canvas",args:{items:[{type:"text",content:lt}]},description:k.mcp==="generate_text"?"将生成文本插入画布":"将 AI 回复插入画布",status:"pending"};a.addSteps([dt]),He.push(dt)}}}else return a.updateStep(k.id,"failed",void 0,Q.error||"执行失败",Date.now()-O),!1;return!0}catch(ke){return a.updateStep(k.id,"failed",void 0,String(ke)),!1}finally{ue()}};for(const k of se.steps){if(ct){a.updateStep(k.id,"skipped"),ue();continue}await pn(k)||(ct=!0)}if(!ct&&He.length>0){const k=a.getWorkflow();for(const O of He){if(ct){a.updateStep(O.id,"skipped"),ue();continue}const Y=(U=a.getWorkflow())==null?void 0:U.steps.find(me=>me.id===O.id);if(!Y){console.warn(`[AIInputBar] Step ${O.id} not found in workflow!`);continue}if(Y.status==="completed")continue;await pn(Y)||(ct=!0)}}const Be=a.getWorkflow(),Lt=Be==null?void 0:Be.steps.every(k=>k.status==="completed"||k.status==="failed"||k.status==="skipped"),Ti=Wt.length>0;if(Lt&&!Ti){const k=_.current,O=M.current,Y=je.current;(k||O.length>0)&&Y&&(Be!=null&&Be.steps.every(me=>{const pe=me.result;return pe!=null&&pe.taskId?Ln.isPostProcessingCompleted(pe.taskId):!0}))&&setTimeout(()=>{k&&(Ue.removeWorkZone(Y,k),_.current=null),O.length>0&&(R(Y,"completed"),$(Y))},1500)}}catch(F){console.error("Failed to create generation task:",F),y==="image"&&R(je.current,"failed",{error:F instanceof Error?F.message:"创建图片任务失败"}),a.abortWorkflow(),it(!1)}}},[Se,he,qe,V,L,a,Si,p,Me,Mi,Ci,y,Bt,A,R,$]),On=l.useCallback(async(i,d,f)=>{var se;const I=i.retryContext;if(!I){console.error("[AIInputBar] No retry context available for workflow");return}f&&(_.current=f);const S={id:i.id,name:i.name,description:`重试: ${i.name}`,scenarioType:i.steps.some(v=>v.mcp==="ai_analyze")?"agent_flow":"direct_generation",generationType:i.generationType,steps:i.steps.map((v,J)=>({id:v.id,mcp:v.mcp,args:v.args,description:v.description,status:J<d?v.status:"pending",result:J<d?v.result:void 0,error:J<d?v.error:void 0,duration:J<d?v.duration:void 0,options:v.options})),metadata:{prompt:i.prompt,userInstruction:I.aiContext.userInstruction,rawInput:I.aiContext.rawInput,modelId:I.aiContext.model.id,modelRef:I.aiContext.modelRef,defaultModels:I.aiContext.defaultModels,defaultModelRefs:I.aiContext.defaultModelRefs,isModelExplicit:I.aiContext.model.isExplicit,count:i.count,size:I.aiContext.params.size,duration:I.aiContext.params.duration,referenceImages:I.referenceImages,selection:I.aiContext.selection},createdAt:Date.now()};a.startWorkflow(S),b.current({type:"retry",timestamp:Date.now(),reason:`从步骤 ${d+1} 开始重试`,attempt:1});const j=je.current,B=()=>{const v=et(a.getWorkflow(),I);h.current(v),_.current&&j&&Ue.updateWorkflow(j,_.current,v)},Z=et(S,I);h.current(Z),_.current&&j&&Ue.updateWorkflow(j,_.current,Z);const U=(v,J)=>({onChunk:le=>{g.current(le)},onAddSteps:le=>{a.updateStep(v.id,"completed",{analysis:"completed"},void 0,Date.now()-J);const xe=le.map((de,Te)=>({...de,status:de.status==="completed"?"completed":"pending",options:{mode:"queue",batchId:`agent_${Date.now()}`,batchIndex:Te+1,batchTotal:le.length,globalIndex:Te+1}}));a.addSteps(xe),F.push(...xe),le.forEach(de=>{b.current({type:"tool_call",timestamp:Date.now(),toolName:de.mcp,args:de.args})}),B()},onUpdateStep:(le,xe,de,Te)=>{a.updateStep(le,xe,de,Te),b.current({type:"tool_result",timestamp:Date.now(),toolName:le,success:xe==="completed",data:de,error:Te}),B()}}),F=[];let z=!1;const X=new Map;i.steps.forEach(v=>{var le;const J=(le=v.result)==null?void 0:le.taskId;J&&X.set(v.id,J)});const ee=async v=>{var xe,de,Te,qt,Wt,He;const J=Date.now(),le=F.length;a.updateStep(v.id,"running"),B();try{const yt=X.get(v.id),ct={...v.options,...U(v,J),...yt?{retryTaskId:yt}:{}},ue=await Zi.executeTool({name:v.mcp,arguments:v.args},ct),pn=(de=(xe=a.getWorkflow())==null?void 0:xe.steps.find(Be=>Be.id===v.id))==null?void 0:de.status;if(ue.success){if(ue.taskId)a.updateStep(v.id,"running",{taskId:ue.taskId}),A(j,ue.taskId,{workflowId:i.id,batchId:(Te=v.options)==null?void 0:Te.batchId,batchIndex:(qt=v.options)==null?void 0:qt.batchIndex});else if(pn==="running"){const Be=ue.type==="text"&&ue.data&&typeof ue.data=="object"&&"content"in ue.data?{content:ue.data.content}:ue.data;a.updateStep(v.id,"completed",Be,void 0,Date.now()-J);const Lt=v.mcp==="generate_text"?(Wt=ue.data)==null?void 0:Wt.content:v.mcp==="ai_analyze"?(He=ue.data)==null?void 0:He.response:void 0;if((v.mcp==="generate_text"||v.mcp==="ai_analyze")&&Lt&&Lt.trim()&&F.length===le){const O={id:`${v.id}-insert-text`,mcp:"insert_to_canvas",args:{items:[{type:"text",content:Lt}]},description:v.mcp==="generate_text"?"将生成文本插入画布":"将 AI 回复插入画布",status:"pending"};a.addSteps([O]),F.push(O)}}}else return a.updateStep(v.id,"failed",void 0,ue.error||"执行失败",Date.now()-J),!1;return!0}catch(yt){return a.updateStep(v.id,"failed",void 0,String(yt)),!1}finally{B()}},Ie=S.steps.slice(d);for(const v of Ie){if(z){a.updateStep(v.id,"skipped"),B();continue}await ee(v)||(z=!0)}if(!z&&F.length>0)for(const v of F){if(z){a.updateStep(v.id,"skipped"),B();continue}const J=(se=a.getWorkflow())==null?void 0:se.steps.find(xe=>xe.id===v.id);if(!J||J.status==="completed")continue;await ee(J)||(z=!0)}const ie=a.getWorkflow(),q=ie==null?void 0:ie.steps.every(v=>v.status==="completed"||v.status==="failed"||v.status==="skipped"),we=ie==null?void 0:ie.steps.some(v=>{var J;return(J=v.result)==null?void 0:J.taskId});if(q&&!we){const v=_.current,J=je.current;v&&J&&(ie!=null&&ie.steps.every(xe=>{const de=xe.result;return de!=null&&de.taskId?Ln.isPostProcessingCompleted(de.taskId):!0}))&&setTimeout(()=>{Ue.removeWorkZone(J,v),_.current=null},1500)}},[a,A]);l.useEffect(()=>{w.current(On);const i=je.current;i&&(i.__executeWorkflowRetry=On)},[On]);const ia=l.useCallback(i=>{var d;if(!i.nativeEvent.isComposing&&!(i.key==="Enter"&&(i.shiftKey||i.altKey))){if((yi||Ii||ki)&&(i.key==="Enter"||i.key==="Tab")){i.preventDefault();return}if(i.key==="Enter"){i.preventDefault(),St.track("ai_input_submit_keyboard"),zn();return}if(i.key==="Escape"){wt(!1),(d=Ae.current)==null||d.blur();return}}},[zn]),sa=l.useCallback(()=>{St.track("ai_input_focus_textarea"),wt(!0)},[]),aa=l.useCallback(()=>{St.track("ai_input_blur_textarea"),wt(!1)},[]),ra=l.useCallback(i=>{const d=i.target.value,f=i.target.selectionStart||d.length;if(nt(d),f>0){const I=d[f-1],S=f>1?d[f-2]:" ";I==="#"&&(S===" "||S===`
8
+ `||f===1)&&(at.current=f-1,Pn(!0),Un(!1),Vn(!1))}},[]),oa=l.useMemo(()=>JSON.stringify({generationType:y,model:V,profileId:(L==null?void 0:L.profileId)||null,hasAttachedContent:he.length>0,attachedCount:he.length,promptLengthBucket:uo(Se.trim().length)}),[he.length,y,Se,V,L==null?void 0:L.profileId]),ji=Se.trim().length>0||he.length>0,Ai=Vs===!0,ca=jn.some(i=>{var d;return i.type==="text"&&((d=i.text)==null?void 0:d.trim())}),ot=Tt||he.length>0||oi;return l.useLayoutEffect(()=>{ho(Ae.current,ot)},[ot,Se]),u.jsxDEV("div",{ref:ln,className:xn("ai-input-bar",Mn,t,{"ai-input-bar--with-inspiration":Ai}),"data-testid":"ai-input-bar",children:[u.jsxDEV(Ps,{language:e,onSelectionChange:Ys,externalBoardRef:je,onCanvasEmptyChange:Rs,isDataReady:n,onFrameSelected:Zs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3922,columnNumber:9},void 0),u.jsxDEV(Xr,{isCanvasEmpty:Ai,onSelectPrompt:qs,onOpenPromptTool:Fs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3931,columnNumber:9},void 0),u.jsxDEV("div",{className:xn("ai-input-bar__container",{"ai-input-bar__container--expanded":ot}),children:[u.jsxDEV("div",{className:"ai-input-bar__bottom-bar",children:[u.jsxDEV("input",{ref:Di,type:"file",accept:"image/*",multiple:!0,onChange:Ks,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3943,columnNumber:13},void 0),u.jsxDEV("button",{className:"ai-input-bar__upload-btn",onMouseDown:i=>{i.preventDefault(),i.stopPropagation()},onClick:$s,title:e==="zh"?"上传图片":"Upload images","data-track":"ai_input_click_upload",children:u.jsxDEV(qa,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3962,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3952,columnNumber:13},void 0),u.jsxDEV("button",{className:"ai-input-bar__library-btn",onMouseDown:i=>{i.preventDefault(),i.stopPropagation()},onClick:()=>zt(!0),title:e==="zh"?"从素材库选择":"Select from library","data-track":"ai_input_click_library",children:u.jsxDEV(Wa,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3975,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3965,columnNumber:13},void 0),u.jsxDEV(Jr,{value:y,onSelect:Ke,disabled:qe},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3978,columnNumber:13},void 0),y==="agent"&&u.jsxDEV(Gr,{value:be,onSelect:li,onSelectSkill:ea,onAddSkill:Ls,disabled:qe},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3986,columnNumber:15},void 0),u.jsxDEV(yn,{selectedModel:V,selectedSelectionKey:Ve(V,L),onSelect:Js,onSelectModel:Qs,language:e,models:on,header:e==="zh"?y==="agent"?"选择文本模型 (↑↓ Tab)":"选择模型 (↑↓ Tab)":y==="agent"?"Select text model (↑↓ Tab)":"Select model (↑↓ Tab)",isOpen:yi,onOpenChange:Bs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3995,columnNumber:13},void 0),y==="agent"&&be!==tt&&Tn.includes("image")&&u.jsxDEV(yn,{selectedModel:We,selectedSelectionKey:Ve(We,Ye),onSelect:(i,d)=>Rn("image",i,d),onSelectModel:i=>Bn("image",i),language:e,models:Pt,header:e==="zh"?"选择图片模型 (↑↓ Tab)":"Select image model (↑↓ Tab)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4021,columnNumber:17},void 0),y==="agent"&&be!==tt&&Tn.includes("video")&&u.jsxDEV(yn,{selectedModel:Le,selectedSelectionKey:Ve(Le,Ze),onSelect:(i,d)=>Rn("video",i,d),onSelectModel:i=>Bn("video",i),language:e,models:Ut,header:e==="zh"?"选择视频模型 (↑↓ Tab)":"Select video model (↑↓ Tab)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4046,columnNumber:17},void 0),y==="agent"&&be!==tt&&Tn.includes("audio")&&u.jsxDEV(yn,{selectedModel:Fe,selectedSelectionKey:Ve(Fe,Xe),onSelect:(i,d)=>Rn("audio",i,d),onSelectModel:i=>Bn("audio",i),language:e,models:Vt,header:e==="zh"?"选择音频模型 (↑↓ Tab)":"Select audio model (↑↓ Tab)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4071,columnNumber:17},void 0),y!=="agent"&&Ot.length>0&&u.jsxDEV(wr,{selectedParams:Me,onParamChange:ta,compatibleParams:Ot,modelId:V,language:e,isOpen:Ii,onOpenChange:zs},V,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4095,columnNumber:15},void 0),y!=="agent"&&y!=="text"&&y!=="audio"&&u.jsxDEV(Qr,{value:Bt,onSelect:na,disabled:qe,isOpen:ki,onOpenChange:Os},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4110,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:4119,columnNumber:13},void 0),u.jsxDEV("button",{className:`ai-input-bar__send-btn ${ji?"active":""} ${qe?"loading":""}`,onMouseDown:i=>{i.preventDefault(),i.stopPropagation()},onClick:()=>zn(),disabled:!ji||qe,"data-track":"ai_input_click_send","data-track-params":oa,"data-testid":"ai-send-btn",children:u.jsxDEV(La,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4135,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4121,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3942,columnNumber:11},void 0),u.jsxDEV("div",{className:xn("ai-input-bar__input-area",{"ai-input-bar__input-area--expanded":ot}),children:[he.length>0&&u.jsxDEV("div",{className:"ai-input-bar__content-preview",children:u.jsxDEV(cr,{items:he,language:e,enableHoverPreview:!0,onRemove:Xs,removableStartIndex:At.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4146,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4145,columnNumber:15},void 0),u.jsxDEV("div",{className:"ai-input-bar__prompt-row",children:[u.jsxDEV("div",{className:"ai-input-bar__rich-input",children:u.jsxDEV("textarea",{ref:Ae,className:xn("ai-input-bar__input",{"ai-input-bar__input--focused":ot}),value:Se,onChange:ra,onKeyDown:ia,onFocus:sa,onBlur:aa,placeholder:y==="agent"?e==="zh"?"输入指令,让 Agent 为你工作...":"Type instructions for Agent...":y==="text"?e==="zh"?"输入你想生成的文本内容、文章、摘要或 Markdown":"Describe the text, article, summary, or markdown you want":y==="audio"?ca?e==="zh"?"已有文本,无需额外提示词,直接发送":"Text already selected. No extra prompt needed, just send":e==="zh"?"描述你想要生成的音乐、风格、歌词或情绪":"Describe the music, style, lyrics, or mood you want":e==="zh"?`描述你想要创建的${y==="image"?"图片":"视频"}`:`Describe the ${y==="image"?"image":"video"} you want to create`,rows:ot?Ts:mo,disabled:qe,"data-testid":"ai-input-textarea"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4158,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4157,columnNumber:15},void 0),u.jsxDEV(jr,{generationType:y,onSelectPrompt:Ws,language:e,extraActions:ot&&(y==="image"||y==="video")?u.jsxDEV(Fa,{content:e==="zh"?"提示词优化":"Prompt optimization",placement:"top",children:u.jsxDEV("button",{type:"button",className:"prompt-history-popover__action-btn",onMouseDown:i=>{i.preventDefault(),i.stopPropagation(),wt(!0)},onClick:Hs,disabled:qe,title:e==="zh"?"优化提示词":"Optimize prompt","aria-label":e==="zh"?"提示词优化":"Prompt optimization","data-track":"ai_input_click_prompt_optimize",children:u.jsxDEV(Is,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4234,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4216,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4210,columnNumber:21},void 0):null},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4203,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4156,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4139,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3937,columnNumber:9},void 0),Ni&&u.jsxDEV(Ha,{isOpen:Ni,onClose:()=>zt(!1),mode:Ga.SELECT,filterType:Li.IMAGE,onSelect:Gs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:4245,columnNumber:11},void 0),u.jsxDEV($a,{open:oi,onOpenChange:ci,originalPrompt:Se,language:e,type:y,allowStructuredMode:!0,defaultMode:y==="image"||y==="video"?"structured":"polish",onApply:i=>{nt(i),wt(!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:4254,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/AIInputBar.tsx",lineNumber:3910,columnNumber:7},void 0)});Us.displayName="AIInputBar";function Ao({isDataReady:t,activationKey:n}){const e=l.useRef(null);return l.useEffect(()=>{if(n<=0)return;const s=window.setTimeout(()=>{var r;const c=(r=e.current)==null?void 0:r.querySelector('[data-testid="ai-input-textarea"]');c==null||c.focus()},0);return()=>{window.clearTimeout(s)}},[n]),u.jsxDEV(tr,{children:u.jsxDEV(Ya,{children:u.jsxDEV("div",{ref:e,children:u.jsxDEV(Us,{isDataReady:t},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{Ao as DeferredAIInputBar,Ao as default};
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.prompt-history-popover{position:relative;align-self:flex-start;z-index:10;display:flex;align-items:center;flex-shrink:0}.prompt-history-popover__actions{display:flex;flex-direction:column;align-items:center;gap:4px}.prompt-history-popover__trigger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--td-text-color-secondary, #666);cursor:pointer;transition:all .2s ease}.prompt-history-popover__trigger:hover{background:var(--td-bg-color-container-hover, rgba(0, 0, 0, .04));color:var(--td-text-color-primary, #333)}.prompt-history-popover__action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--td-text-color-secondary, #666);cursor:pointer;transition:all .2s ease}.prompt-history-popover__action-btn:hover:not(:disabled){background:var(--td-bg-color-container-hover, rgba(0, 0, 0, .04));color:var(--td-text-color-primary, #333)}.prompt-history-popover__action-btn:disabled{opacity:.55;cursor:not-allowed}.prompt-history-popover__panel-wrapper{position:absolute;bottom:calc(100% + 8px);right:0;z-index:1000}.inspiration-board{padding:12px;background:var(--island-bg-color, #fff);border:none;border-radius:24px 24px 0 0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:none;animation:slideUp .3s ease-out;pointer-events:auto}.inspiration-board__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.inspiration-board__title{margin:0;font-size:14px;font-weight:600;color:var(--td-text-color-primary);flex:1}.inspiration-board__hide-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;background:transparent;color:var(--td-text-color-placeholder);transition:all .2s ease;margin-right:8px}.inspiration-board__hide-btn:hover{background:var(--td-bg-color-container-hover);color:var(--td-text-color-secondary)}.inspiration-board__hide-btn:active{transform:scale(.97)}.inspiration-board__hide-btn svg{flex-shrink:0}.inspiration-board__prompt-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s ease;margin-right:8px}.inspiration-board__prompt-btn:active{transform:scale(.97)}.inspiration-board__prompt-btn svg{flex-shrink:0}.inspiration-board__pagination{display:flex;align-items:center;gap:4px}.inspiration-board__page-indicator{font-size:11px;color:var(--td-text-color-placeholder);font-variant-numeric:tabular-nums}.inspiration-board__nav-buttons{display:flex;gap:2px}.inspiration-board__nav-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:#fff;border:1px solid var(--td-component-border);border-radius:6px;cursor:pointer;color:var(--td-text-color-secondary);transition:all .2s ease}.inspiration-board__nav-btn:hover{background:var(--td-bg-color-container-hover);color:var(--td-text-color-primary);border-color:var(--td-brand-color-light)}.inspiration-board__nav-btn:active{transform:scale(.95)}.inspiration-board__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.inspiration-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--td-component-border);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .2s ease}.inspiration-card:hover{border-color:var(--td-brand-color-light);box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.inspiration-card:hover .inspiration-card__image{transform:scale(1.05)}.inspiration-card:hover .inspiration-card__hover-overlay{opacity:1}.inspiration-card:hover .inspiration-card__arrow{transform:translateY(0)}.inspiration-card:hover .inspiration-card__title{color:var(--td-brand-color)}.inspiration-card--placeholder{visibility:hidden}.inspiration-card__image-wrapper{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--td-bg-color-container)}.inspiration-card__image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.inspiration-card__badge{position:absolute;top:8px;left:8px;padding:2px 8px;font-size:10px;font-weight:600;border-radius:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#fffffff2}.inspiration-card__hover-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000001a;opacity:0;transition:opacity .2s ease}.inspiration-card__arrow{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#fffffff2;border-radius:50%;box-shadow:0 2px 8px #00000026;color:var(--td-text-color-primary);transform:translateY(8px);transition:transform .2s ease}.inspiration-card__content{padding:8px}.inspiration-card__title{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--td-text-color-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .2s ease}.inspiration-card__description{margin:0;font-size:11px;color:var(--td-text-color-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:32px}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-input-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:100;width:100%;max-width:720px;padding:0 16px;box-sizing:border-box;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:8px}.ai-input-bar--with-inspiration{gap:0}.ai-input-bar--with-inspiration:before{content:"";position:absolute;top:0;left:16px;right:16px;bottom:0;background:var(--island-bg-color, #fff);border-radius:24px;box-shadow:0 2px 16px #0000001a;z-index:-1;pointer-events:none}.ai-input-bar__content-preview,.ai-input-bar__images-preview{pointer-events:auto;display:flex;flex-wrap:wrap;gap:8px;padding:0 0 0 12px;background:transparent;border-radius:0;box-shadow:none;width:100%;flex-shrink:0;box-sizing:border-box}.ai-input-bar__processing{display:flex;align-items:center;justify-content:center;padding:8px 16px;color:#9ca3af;font-size:13px}.ai-input-bar__content-item,.ai-input-bar__image-item{position:relative;width:36px;height:36px;border-radius:4px;overflow:hidden;background:#f3f4f6;flex-shrink:0;cursor:pointer;transition:transform .15s ease;display:flex;align-items:center;justify-content:center}.ai-input-bar__content-item:hover,.ai-input-bar__image-item:hover{transform:scale(1.05)}.ai-input-bar__content-item img,.ai-input-bar__image-item img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;background:#f3f4f6}.ai-input-bar__content-item--graphics{border:1px solid #F59E0B}.ai-input-bar__content-item--video{border:2px solid #3B82F6}.ai-input-bar__content-item--text{width:auto;height:auto;min-width:64px;max-width:180px;padding:8px 12px;background:#eff6ff;border:1px solid #BFDBFE;display:flex;align-items:center;justify-content:flex-start}.ai-input-bar__hover-preview{position:fixed;z-index:99999;pointer-events:none;border-radius:8px;box-shadow:0 8px 32px #00000040;overflow:hidden;background:var(--island-bg-color, #fff);padding:4px;animation:fadeIn .15s ease}.ai-input-bar__hover-preview img{max-width:300px;max-height:300px;width:auto;height:auto;-o-object-fit:contain;object-fit:contain;display:block}.ai-input-bar__hover-preview--text{padding:12px;max-width:400px;max-height:300px;overflow-y:auto}.ai-input-bar__hover-preview--video{padding:4px;max-width:400px;max-height:300px}.ai-input-bar__hover-video{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#000;border-radius:4px;overflow:hidden}.ai-input-bar__hover-video video{max-width:400px;max-height:300px;width:100%;height:auto;display:block}.ai-input-bar__hover-text{display:flex;flex-direction:column;gap:8px}.ai-input-bar__hover-text-header{display:flex;align-items:center;gap:6px;padding-bottom:8px;border-bottom:1px solid #F3F4F6;color:#3b82f6;font-size:14px;font-weight:500}.ai-input-bar__hover-text-content{font-size:13px;line-height:1.6;color:#1f2937;white-space:pre-wrap;word-break:break-word;max-height:240px;overflow-y:auto}.ai-input-bar__video-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#0000004d;pointer-events:none}.ai-input-bar__video-overlay svg{color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.ai-input-bar__video-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.ai-input-bar__text-preview{display:flex;align-items:center;gap:6px;width:100%}.ai-input-bar__text-icon{color:#3b82f6;flex-shrink:0}.ai-input-bar__text-content{font-size:12px;color:#1f2937;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-input-bar__content-remove,.ai-input-bar__image-remove{position:absolute;top:2px;right:2px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;opacity:0;transition:opacity .15s ease}.ai-input-bar__content-item:hover .ai-input-bar__content-remove,.ai-input-bar__content-item:hover .ai-input-bar__image-remove,.ai-input-bar__image-item:hover .ai-input-bar__content-remove,.ai-input-bar__image-item:hover .ai-input-bar__image-remove{opacity:1}.ai-input-bar__content-remove:hover,.ai-input-bar__image-remove:hover{background:#000c}.ai-input-bar__content-label{position:absolute;bottom:0;left:0;right:0;background:#f59e0be6;color:#fff;font-size:10px;text-align:center}.ai-input-bar__content-label--video{background:#3b82f6e6}.ai-input-bar__container{position:relative;pointer-events:auto;display:flex;flex-direction:column-reverse;width:100%;background:var(--island-bg-color, #fff);border-radius:24px;padding:8px 12px;box-shadow:0 2px 12px #00000014;transition:all .2s ease}.ai-input-bar__container--expanded{border-radius:16px;padding:12px}.ai-input-bar--with-inspiration .ai-input-bar__container{border-radius:0 0 24px 24px;box-shadow:none}.ai-input-bar--with-inspiration .ai-input-bar__container--expanded{border-radius:0 0 16px 16px}.ai-input-bar__bottom-bar{display:flex;align-items:center;gap:4px;width:100%;flex-shrink:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.ai-input-bar__bottom-bar::-webkit-scrollbar{display:none}.ai-input-bar__bottom-spacer{flex:1;min-width:8px}.ai-input-bar__input-area{position:relative;display:flex;flex-direction:column;gap:8px;margin-bottom:8px;width:100%;transition:max-height .2s ease}.ai-input-bar__input-area--expanded{max-height:200px}.ai-input-bar__tools{display:flex;align-items:center;gap:4px;flex-shrink:0}.ai-input-bar__prompt-row{display:flex;align-items:flex-start;gap:4px;width:100%;min-width:0}.ai-input-bar__type-toggle{display:flex;align-items:center;gap:2px}.ai-input-bar__type-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #F3F4F6;background:transparent;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .15s ease}.ai-input-bar__type-btn:hover{color:#1f2937;background:#f3f4f6}.ai-input-bar__type-btn.active{background:#f59e0b;border-color:#f59e0b;color:#fff}.ai-input-bar__type-btn.active:hover{background:#d97706;border-color:#d97706}.ai-input-bar__model-selector{position:relative}.ai-input-bar__model-btn{display:flex;align-items:center;gap:4px;padding:8px 12px;border:none;background:transparent;font-size:14px;font-weight:500;color:#1f2937;cursor:pointer;transition:all .15s ease;white-space:nowrap}.ai-input-bar__model-btn:hover{color:#f59e0b}.ai-input-bar__model-btn svg{transition:transform .2s ease;color:#9ca3af}.ai-input-bar__model-btn svg.rotated{transform:rotate(180deg)}.ai-input-bar__model-menu{position:absolute;bottom:calc(100% + 8px);left:0;min-width:220px;background:var(--island-bg-color, #fff);border:1px solid #F3F4F6;border-radius:12px;box-shadow:0 4px 20px #0000001f;padding:6px;z-index:10;animation:menuSlideUp .15s ease}.ai-input-bar__model-option{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:8px;cursor:pointer;text-align:left;transition:background .15s ease}.ai-input-bar__model-option:hover{background:#f3f4f6}.ai-input-bar__model-option.active{background:#f59e0b1a}.ai-input-bar__model-option.active .model-name{color:#f59e0b}.ai-input-bar__model-option .model-name{font-size:14px;font-weight:500;color:#1f2937}.ai-input-bar__model-option .model-desc{font-size:12px;color:#9ca3af;margin-top:2px}.ai-input-bar__upload-btn,.ai-input-bar__library-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #F3F4F6;background:transparent;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .15s ease}.ai-input-bar__upload-btn:hover,.ai-input-bar__library-btn:hover{color:#1f2937;background:#f3f4f6;border-color:#9ca3af}.ai-input-bar__rich-input{position:relative;flex:1;min-width:0;width:100%}.ai-input-bar__highlight-layer{position:absolute;top:0;left:0;right:0;bottom:0;padding:6px 20px 6px 12px;font-size:15px;line-height:1.5;letter-spacing:normal;word-spacing:normal;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;pointer-events:none;font-family:PingFang SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden;z-index:1;box-sizing:border-box;border:1px solid transparent;margin:0}.ai-input-bar__highlight-text{color:transparent}.ai-input-bar__highlight-tag{color:transparent;border-radius:3px;box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:0 2px;margin:0 -2px}.ai-input-bar__highlight-tag--image{background:#e5393526}.ai-input-bar__highlight-tag--video{background:#ff980026}.ai-input-bar__highlight-tag--param{background:#9c27b026}.ai-input-bar__highlight-tag--count{background:#2196f326}.ai-input-bar__input{width:100%;border:none;background:transparent;font-size:15px;line-height:1.5;letter-spacing:normal;word-spacing:normal;text-rendering:auto;-webkit-font-smoothing:auto;color:#1f2937;resize:none;outline:none;min-height:24px;max-height:147px;overflow-y:hidden;padding:6px 20px 6px 12px;margin:0;font-family:PingFang SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:height .2s ease,min-height .2s ease,max-height .2s ease;position:relative;z-index:2;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word}.ai-input-bar__input::-webkit-scrollbar{width:8px}.ai-input-bar__input::-webkit-scrollbar-track{background:transparent}.ai-input-bar__input::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.ai-input-bar__input::-webkit-scrollbar-thumb:hover{background:#00000059}.ai-input-bar__input::-moz-placeholder{color:#9ca3af}.ai-input-bar__input::placeholder{color:#9ca3af}.ai-input-bar__input:focus{outline:none;border:none!important;box-shadow:none}.ai-input-bar__input:hover{outline:none;border:none!important;box-shadow:none}.ai-input-bar__input:disabled{opacity:.6}.ai-input-bar__input--focused{min-height:102px;max-height:147px}.ai-input-bar__upload-btn,.ai-input-bar__library-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .2s ease;flex-shrink:0}.ai-input-bar__upload-btn:hover,.ai-input-bar__library-btn:hover{background:#f3f4f6;color:#f59e0b}.ai-input-bar__upload-btn:active,.ai-input-bar__library-btn:active{transform:scale(.95)}.ai-input-bar .generation-type-dropdown{position:relative;display:inline-flex;flex-shrink:0}.ai-input-bar .generation-type-dropdown__trigger{display:flex;align-items:center;gap:2px;padding:4px 8px;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease;color:#1f2937;font-size:13px;font-weight:500;white-space:nowrap}.ai-input-bar .generation-type-dropdown__trigger:hover:not(:disabled){background:#f59e0b1a}.ai-input-bar .generation-type-dropdown__trigger--open{background:#f59e0b26}.ai-input-bar .generation-type-dropdown__icon-prefix{color:#f59e0b;display:flex;align-items:center;font-weight:600;margin-right:1px}.ai-input-bar .generation-type-dropdown__label{color:#6b7280}.ai-input-bar .generation-type-dropdown__chevron{color:#9ca3af;transition:transform .2s ease;margin-left:1px}.ai-input-bar .generation-type-dropdown__chevron--open{transform:rotate(180deg)}.ai-input-bar .generation-type-dropdown__menu{position:absolute;bottom:calc(100% + 8px);left:0;background:var(--island-bg-color, #fff);border:1px solid #F3F4F6;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:4px;z-index:100;min-width:100px}.ai-input-bar .generation-type-dropdown__item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .1s ease;font-size:13px;white-space:nowrap;color:#1f2937}.ai-input-bar .generation-type-dropdown__item:hover{background:#f3f4f6}.ai-input-bar .generation-type-dropdown__item--selected{background:#f59e0b14;color:#f59e0b;font-weight:500}.ai-input-bar .generation-type-dropdown__item-icon{display:flex;align-items:center;color:#9ca3af}.generation-type-dropdown__item--selected .ai-input-bar .generation-type-dropdown__item-icon{color:#f59e0b}.ai-input-bar .generation-type-dropdown__item-check{margin-left:auto;color:#f59e0b}.ai-input-bar .skill-dropdown{position:relative;display:inline-flex;flex-shrink:0}.ai-input-bar .skill-dropdown__trigger{display:flex;align-items:center;gap:2px;padding:4px 8px;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease;color:#1f2937;font-size:13px;font-weight:500;white-space:nowrap}.ai-input-bar .skill-dropdown__trigger:hover:not(:disabled){background:#f59e0b1a}.ai-input-bar .skill-dropdown__trigger--open{background:#f59e0b26}.ai-input-bar .skill-dropdown__icon-prefix{color:#f59e0b;display:flex;align-items:center;font-weight:600;margin-right:1px}.ai-input-bar .skill-dropdown__label{color:#6b7280}.ai-input-bar .skill-dropdown__chevron{color:#9ca3af;transition:transform .2s ease;margin-left:1px}.ai-input-bar .skill-dropdown__chevron--open{transform:rotate(180deg)}.ai-input-bar .count-dropdown{position:relative;display:inline-flex;flex-shrink:0}.ai-input-bar .count-dropdown__trigger{display:flex;align-items:center;gap:1px;padding:4px 8px;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease;color:#1f2937;font-size:13px;font-weight:500;white-space:nowrap}.ai-input-bar .count-dropdown__trigger:hover:not(:disabled){background:#f59e0b1a}.ai-input-bar .count-dropdown__trigger--open{background:#f59e0b26}.ai-input-bar .count-dropdown__plus-icon{color:#f59e0b;flex-shrink:0}.ai-input-bar .count-dropdown__label{color:#6b7280}.ai-input-bar .count-dropdown__chevron{color:#9ca3af;transition:transform .2s ease;margin-left:1px}.ai-input-bar .count-dropdown__chevron--open{transform:rotate(180deg)}.ai-input-bar .count-dropdown__menu{position:absolute;bottom:calc(100% + 8px);left:0;background:var(--island-bg-color, #fff);border:1px solid #F3F4F6;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:4px;z-index:100;min-width:80px}.ai-input-bar .count-dropdown__item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .1s ease;font-size:13px;color:#1f2937}.ai-input-bar .count-dropdown__item:hover{background:#f3f4f6}.ai-input-bar .count-dropdown__item--selected{background:#f59e0b14;color:#f59e0b;font-weight:500}.ai-input-bar .count-dropdown__item-check{color:#f59e0b}.ai-input-bar__send-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:#f3f4f6;border-radius:50%;color:#9ca3af;cursor:not-allowed;transition:all .2s ease;flex-shrink:0}.ai-input-bar__send-btn.active{background:#f59e0b;color:#fff;cursor:pointer;box-shadow:0 2px 8px #f59e0b66}.ai-input-bar__send-btn.active:hover{background:#d97706;transform:scale(1.05)}.ai-input-bar__send-btn.loading{background:#f59e0b99;cursor:wait;animation:pulse 1.5s infinite}.ai-input-bar__send-btn:disabled{pointer-events:none}@keyframes menuSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}:root[data-theme=dark] .ai-input-bar__content-preview,:root[data-theme=dark] .ai-input-bar__images-preview{background:var(--color-surface-high, #2a2a2a)}:root[data-theme=dark] .ai-input-bar__content-item,:root[data-theme=dark] .ai-input-bar__image-item{background:var(--color-surface-mid, #333)}:root[data-theme=dark] .ai-input-bar__content-item--text{background:#3b82f626;border-color:#3b82f64d}:root[data-theme=dark] .ai-input-bar__text-content{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .ai-input-bar__hover-preview{background:var(--color-surface-high, #2a2a2a);box-shadow:0 8px 32px #00000080}:root[data-theme=dark] .ai-input-bar__hover-text-header{border-bottom-color:var(--color-border, #444);color:#60a5fa}:root[data-theme=dark] .ai-input-bar__hover-text-content{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .ai-input-bar__processing{color:var(--color-gray-50, #999)}:root[data-theme=dark] .ai-input-bar__container{background:var(--color-surface-high, #2a2a2a);border-color:var(--color-border, #444);box-shadow:0 2px 12px #0003}:root[data-theme=dark] .ai-input-bar__type-btn{border-color:var(--color-border, #444);color:var(--color-gray-50, #999)}:root[data-theme=dark] .ai-input-bar__type-btn:hover{color:var(--color-gray-20, #ccc);background:var(--color-surface-mid, #333)}:root[data-theme=dark] .ai-input-bar__type-btn.active{background:#f59e0b;border-color:#f59e0b;color:#fff}:root[data-theme=dark] .ai-input-bar__model-btn{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .ai-input-bar__model-btn:hover{color:#f59e0b}:root[data-theme=dark] .ai-input-bar__model-btn svg{color:var(--color-gray-50, #999)}:root[data-theme=dark] .ai-input-bar__model-menu{background:var(--color-surface-high, #2a2a2a);border-color:var(--color-border, #444)}:root[data-theme=dark] .ai-input-bar__model-option:hover{background:var(--color-surface-mid, #333)}:root[data-theme=dark] .ai-input-bar__model-option.active{background:#f59e0b26}:root[data-theme=dark] .ai-input-bar__model-option .model-name{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .ai-input-bar__model-option .model-desc{color:var(--color-gray-50, #999)}:root[data-theme=dark] .ai-input-bar__upload-btn,:root[data-theme=dark] .ai-input-bar__library-btn{border-color:var(--color-border, #444);color:var(--color-gray-50, #999)}:root[data-theme=dark] .ai-input-bar__upload-btn:hover,:root[data-theme=dark] .ai-input-bar__library-btn:hover{color:var(--color-gray-20, #ccc);background:var(--color-surface-mid, #333)}:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__trigger,:root[data-theme=dark] .ai-input-bar .count-dropdown__trigger,:root[data-theme=dark] .ai-input-bar .skill-dropdown__trigger{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__trigger:hover,:root[data-theme=dark] .ai-input-bar .count-dropdown__trigger:hover,:root[data-theme=dark] .ai-input-bar .skill-dropdown__trigger:hover{background:#f59e0b26}:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__trigger--open,:root[data-theme=dark] .ai-input-bar .count-dropdown__trigger--open,:root[data-theme=dark] .ai-input-bar .skill-dropdown__trigger--open{background:#f59e0b33}:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__icon-prefix,:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__plus-icon,:root[data-theme=dark] .ai-input-bar .count-dropdown__icon-prefix,:root[data-theme=dark] .ai-input-bar .count-dropdown__plus-icon,:root[data-theme=dark] .ai-input-bar .skill-dropdown__icon-prefix,:root[data-theme=dark] .ai-input-bar .skill-dropdown__plus-icon{color:#f59e0b}:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__label,:root[data-theme=dark] .ai-input-bar .count-dropdown__label,:root[data-theme=dark] .ai-input-bar .skill-dropdown__label{color:var(--color-gray-30, #bbb)}:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__chevron,:root[data-theme=dark] .ai-input-bar .count-dropdown__chevron,:root[data-theme=dark] .ai-input-bar .skill-dropdown__chevron{color:var(--color-gray-50, #999)}:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__menu,:root[data-theme=dark] .ai-input-bar .count-dropdown__menu,:root[data-theme=dark] .ai-input-bar .skill-dropdown__menu{background:var(--color-surface-high, #2a2a2a);border-color:var(--color-border, #444);box-shadow:0 4px 20px #0006}:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__item,:root[data-theme=dark] .ai-input-bar .count-dropdown__item,:root[data-theme=dark] .ai-input-bar .skill-dropdown__item{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__item:hover,:root[data-theme=dark] .ai-input-bar .count-dropdown__item:hover,:root[data-theme=dark] .ai-input-bar .skill-dropdown__item:hover{background:var(--color-surface-mid, #333)}:root[data-theme=dark] .ai-input-bar .generation-type-dropdown__item--selected,:root[data-theme=dark] .ai-input-bar .count-dropdown__item--selected,:root[data-theme=dark] .ai-input-bar .skill-dropdown__item--selected{background:#f59e0b26;color:#f59e0b}:root[data-theme=dark] .ai-input-bar__highlight-tag--image{background:#e5393533}:root[data-theme=dark] .ai-input-bar__highlight-tag--video{background:#ff980033}:root[data-theme=dark] .ai-input-bar__highlight-tag--param{background:#9c27b033}:root[data-theme=dark] .ai-input-bar__highlight-tag--count{background:#2196f333}:root[data-theme=dark] .ai-input-bar__input{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .ai-input-bar__input::-webkit-scrollbar-thumb{background:#fff3}:root[data-theme=dark] .ai-input-bar__input::-webkit-scrollbar-thumb:hover{background:#ffffff4d}:root[data-theme=dark] .ai-input-bar__input::-moz-placeholder{color:var(--color-gray-60, #666)}:root[data-theme=dark] .ai-input-bar__input::placeholder{color:var(--color-gray-60, #666)}:root[data-theme=dark] .ai-input-bar__send-btn{background:var(--color-surface-mid, #333);color:var(--color-gray-60, #666)}:root[data-theme=dark] .ai-input-bar__send-btn.active{background:#f59e0b;color:#fff}.prompt-suggestion-panel{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:var(--island-bg-color, #fff);border-radius:16px;box-shadow:0 4px 24px #0000001f;overflow:hidden;animation:panelSlideUp .2s ease;max-height:320px;display:flex;flex-direction:column;pointer-events:auto}.prompt-suggestion-panel--empty{max-height:auto}.prompt-suggestion-panel__content{overflow-y:auto;padding:8px}.prompt-suggestion-panel__content::-webkit-scrollbar{width:6px}.prompt-suggestion-panel__content::-webkit-scrollbar-track{background:transparent}.prompt-suggestion-panel__content::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.prompt-suggestion-panel__content::-webkit-scrollbar-thumb:hover{background:#00000040}.prompt-suggestion-panel__empty{padding:24px 16px;text-align:center;color:#9ca3af;font-size:14px}.prompt-suggestion-panel__section:not(:last-child){margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #F3F4F6}.prompt-suggestion-panel__section-header{display:flex;align-items:center;gap:6px;padding:4px 8px 8px;font-size:12px;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}.prompt-suggestion-panel__section-header svg{opacity:.7}.prompt-suggestion-panel__list{display:flex;flex-direction:column;gap:2px}.prompt-suggestion-panel__item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;cursor:pointer;transition:all .15s ease;background:transparent}.prompt-suggestion-panel__item:hover,.prompt-suggestion-panel__item--highlighted{background:#f3f4f6}.prompt-suggestion-panel__item--history:hover .prompt-suggestion-panel__item-delete,.prompt-suggestion-panel__item--history.prompt-suggestion-panel__item--highlighted .prompt-suggestion-panel__item-delete{opacity:1}.prompt-suggestion-panel__item-text{flex:1;font-size:14px;line-height:1.4;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:8px}.prompt-suggestion-panel__item-delete{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:transparent;border-radius:4px;color:#9ca3af;cursor:pointer;opacity:0;transition:all .15s ease;flex-shrink:0}.prompt-suggestion-panel__item-delete:hover{background:#ef44441a;color:#ef4444}@keyframes panelSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}:root[data-theme=dark] .prompt-suggestion-panel{background:var(--color-surface-high, #2a2a2a);box-shadow:0 4px 24px #0000004d}:root[data-theme=dark] .prompt-suggestion-panel__content::-webkit-scrollbar-thumb{background:#ffffff26}:root[data-theme=dark] .prompt-suggestion-panel__content::-webkit-scrollbar-thumb:hover{background:#ffffff40}:root[data-theme=dark] .prompt-suggestion-panel__empty{color:var(--color-gray-50, #999)}:root[data-theme=dark] .prompt-suggestion-panel__section:not(:last-child){border-bottom-color:var(--color-border, #444)}:root[data-theme=dark] .prompt-suggestion-panel__section-header{color:var(--color-gray-50, #999)}:root[data-theme=dark] .prompt-suggestion-panel__item:hover{background:var(--color-surface-mid, #333)}:root[data-theme=dark] .prompt-suggestion-panel__item-text{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .prompt-suggestion-panel__item-delete{color:var(--color-gray-50, #999)}:root[data-theme=dark] .prompt-suggestion-panel__item-delete:hover{background:#ef444426;color:#f87171}@media(max-width:1024px){.ai-input-bar{max-width:600px}}@media(max-width:768px){.ai-input-bar{bottom:calc(env(safe-area-inset-bottom,0px) + 16px);padding:0 12px;max-width:calc(100% - 80px);left:calc(50% + 30px)}.ai-input-bar__container{padding:6px 8px;border-radius:20px}.ai-input-bar__content-preview,.ai-input-bar__images-preview{gap:6px}.ai-input-bar__bottom-bar{gap:2px}.ai-input-bar__hover-preview{display:none}}@media(max-width:640px){.ai-input-bar{bottom:calc(env(safe-area-inset-bottom,0px) + 12px);padding:0 8px;padding-left:calc(env(safe-area-inset-left,0px) + 8px);padding-right:calc(env(safe-area-inset-right,0px) + 8px);left:50%;transform:translate(-50%);max-width:calc(100% - 16px);width:100%}.ai-input-bar__content-preview,.ai-input-bar__images-preview{gap:4px;padding-left:8px}.ai-input-bar__content-item,.ai-input-bar__image-item{width:32px;height:32px}.ai-input-bar__content-item--text{height:auto;min-width:48px;max-width:120px;padding:6px 8px}.ai-input-bar__container{padding:4px 6px;border-radius:16px;gap:4px}.ai-input-bar__bottom-bar{gap:2px}.ai-input-bar__bottom-spacer{min-width:4px}.ai-input-bar__type-btn{width:36px;height:36px;min-width:36px}.ai-input-bar__model-btn{padding:6px 8px;font-size:13px}.ai-input-bar__upload-btn,.ai-input-bar__library-btn{width:36px;height:36px;min-width:36px}.ai-input-bar__highlight-layer{font-size:14px;padding:4px 8px}.ai-input-bar__input{font-size:14px;padding:4px 8px;min-height:20px}.ai-input-bar__input--focused{min-height:92px;max-height:134px}.ai-input-bar__send-btn{width:36px;height:36px;min-width:36px}.ai-input-bar .generation-type-dropdown__trigger,.ai-input-bar .count-dropdown__trigger,.ai-input-bar .skill-dropdown__trigger{padding:4px 6px;font-size:12px}.ai-input-bar .generation-type-dropdown__menu,.ai-input-bar .count-dropdown__menu,.ai-input-bar .skill-dropdown__menu{max-width:calc(100vw - 32px)}.prompt-suggestion-panel{max-height:240px;border-radius:12px}.prompt-suggestion-panel__item{padding:8px 10px}.prompt-suggestion-panel__item-text{font-size:13px}}@media(max-width:480px){.ai-input-bar{bottom:calc(env(safe-area-inset-bottom,0px) + 8px);padding:0 6px;padding-left:calc(env(safe-area-inset-left,0px) + 6px);padding-right:calc(env(safe-area-inset-right,0px) + 6px)}.ai-input-bar__container{padding:4px}.ai-input-bar__type-btn,.ai-input-bar__upload-btn,.ai-input-bar__library-btn,.ai-input-bar__send-btn{width:34px;height:34px;min-width:34px}.ai-input-bar__model-btn{padding:4px 6px;font-size:12px}.ai-input-bar__input{font-size:13px}.ai-input-bar__input--focused{min-height:86px;max-height:125px}.ai-input-bar .generation-type-dropdown__label,.ai-input-bar .count-dropdown__label,.ai-input-bar .skill-dropdown__label{display:none}}.ai-input-bar__at-suggestion{position:absolute;bottom:calc(100% + 8px);left:0;min-width:280px;max-width:400px;max-height:320px;background:var(--island-bg-color, #fff);border:1px solid #E5E7EB;border-radius:12px;box-shadow:0 4px 20px #00000026;overflow:hidden;z-index:1000;animation:atSuggestionFadeIn .15s ease}.ai-input-bar__at-suggestion-header{padding:10px 12px;font-size:12px;font-weight:500;color:#6b7280;border-bottom:1px solid #F3F4F6;background:#fafafa}.ai-input-bar__at-suggestion-list{max-height:260px;overflow-y:auto;padding:4px;position:relative}.ai-input-bar__at-suggestion-list::-webkit-scrollbar{width:4px}.ai-input-bar__at-suggestion-list::-webkit-scrollbar-track{background:transparent}.ai-input-bar__at-suggestion-list::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:2px}.ai-input-bar__at-suggestion-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .1s ease}.ai-input-bar__at-suggestion-item:hover,.ai-input-bar__at-suggestion-item--highlighted{background:#f3f4f6}.ai-input-bar__at-suggestion-item--selected{background:#f59e0b14}.ai-input-bar__at-suggestion-item--selected:hover,.ai-input-bar__at-suggestion-item--selected.ai-input-bar__at-suggestion-item--highlighted{background:#f59e0b1f}.ai-input-bar__at-suggestion-item--selected .ai-input-bar__at-suggestion-item-label{color:#d97706;font-weight:500}.ai-input-bar__at-suggestion-item--selected .ai-input-bar__at-suggestion-item-code{color:#f59e0b}.ai-input-bar__at-suggestion-item-content{flex:1;min-width:0}.ai-input-bar__at-suggestion-item-name{display:flex;align-items:center;gap:8px}.ai-input-bar__at-suggestion-item-code{font-size:12px;font-family:SF Mono,Monaco,Menlo,monospace;color:#9ca3af;flex-shrink:0}.ai-input-bar__at-suggestion-item-label{font-size:13px;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-input-bar__at-suggestion-item-vip{font-size:10px;font-weight:600;color:#e91e63;background:#e91e631a;border:1px solid rgba(233,30,99,.2);padding:0 4px;border-radius:3px;flex-shrink:0}.ai-input-bar__at-suggestion-item-desc{font-size:11px;color:#9ca3af;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-input-bar__at-suggestion-item-check{flex-shrink:0;color:#f59e0b;margin-left:8px}@keyframes atSuggestionFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}:root[data-theme=dark] .ai-input-bar__at-suggestion{background:var(--color-surface-high, #2a2a2a);border-color:var(--color-border, #444)}:root[data-theme=dark] .ai-input-bar__at-suggestion-header{background:var(--color-surface-mid, #333);border-bottom-color:var(--color-border, #444);color:var(--color-gray-50, #999)}:root[data-theme=dark] .ai-input-bar__at-suggestion-list::-webkit-scrollbar-thumb{background:var(--color-border, #444)}:root[data-theme=dark] .ai-input-bar__at-suggestion-item:hover,:root[data-theme=dark] .ai-input-bar__at-suggestion-item--highlighted{background:var(--color-surface-mid, #333)}:root[data-theme=dark] .ai-input-bar__at-suggestion-item--selected{background:#f59e0b1f}:root[data-theme=dark] .ai-input-bar__at-suggestion-item--selected:hover,:root[data-theme=dark] .ai-input-bar__at-suggestion-item--selected.ai-input-bar__at-suggestion-item--highlighted{background:#f59e0b2e}:root[data-theme=dark] .ai-input-bar__at-suggestion-item-code{color:var(--color-gray-50, #999)}:root[data-theme=dark] .ai-input-bar__at-suggestion-item-label{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .ai-input-bar__at-suggestion-item-desc{color:var(--color-gray-50, #999)}:root[data-theme=dark] .ai-input-bar__at-suggestion-item-vip{background:#e91e6326;border-color:#e91e634d}.generation-type-dropdown__menu{background:var(--island-bg-color, #fff);border:1px solid #F3F4F6;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:0;min-width:100px;overflow:hidden}.generation-type-dropdown__header{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:500;color:#6b7280;border-bottom:1px solid #F3F4F6;background:#fafafa}.generation-type-dropdown__list{padding:4px}.generation-type-dropdown__item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .1s ease;font-size:13px;white-space:nowrap;color:#1f2937}.generation-type-dropdown__item:hover,.generation-type-dropdown__item--highlighted{background:#f3f4f6}.generation-type-dropdown__item--selected{background:#f59e0b14;color:#f59e0b;font-weight:500}.generation-type-dropdown__item--selected:hover,.generation-type-dropdown__item--selected.generation-type-dropdown__item--highlighted{background:#f59e0b1f}.generation-type-dropdown__item-icon{display:flex;align-items:center;color:#9ca3af}.generation-type-dropdown__item--selected .generation-type-dropdown__item-icon{color:#f59e0b}.generation-type-dropdown__item-label{flex:1}.generation-type-dropdown__item-check{margin-left:auto;color:#f59e0b}.skill-dropdown__menu{background:var(--island-bg-color, #fff);border:1px solid #F3F4F6;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:0;min-width:120px;overflow:hidden}.skill-dropdown__header{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:500;color:#6b7280;border-bottom:1px solid #F3F4F6;background:#fafafa}.skill-dropdown__list{padding:4px}.skill-dropdown__item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .1s ease;font-size:13px;white-space:nowrap;color:#1f2937}.skill-dropdown__item:hover,.skill-dropdown__item--highlighted{background:#f3f4f6}.skill-dropdown__item--selected{background:#f59e0b14;color:#f59e0b;font-weight:500}.skill-dropdown__item--selected:hover,.skill-dropdown__item--selected.skill-dropdown__item--highlighted{background:#f59e0b1f}.skill-dropdown__item-label{flex:1}.skill-dropdown__item-badge{font-size:10px;padding:1px 5px;border-radius:3px;background:#f59e0b1a;color:#f59e0b;font-weight:500;margin-left:auto;margin-right:4px}.skill-dropdown__item-badge--external{background:#3b82f61a;color:#3b82f6}.skill-dropdown__search{padding:4px 8px;border-bottom:1px solid #F3F4F6}.skill-dropdown__search-input{width:100%;padding:6px 8px;font-size:12px;border:1px solid #F3F4F6;border-radius:4px;outline:none;background:var(--island-bg-color, #fff);color:inherit}.skill-dropdown__search-input:focus{border-color:#f59e0b}.skill-dropdown__search-input::-moz-placeholder{color:#999}.skill-dropdown__search-input::placeholder{color:#999}.skill-dropdown__item-check{color:#f59e0b;flex-shrink:0}.skill-dropdown__divider{height:1px;background:#f3f4f6;margin:4px 0}.skill-dropdown__add-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px;color:#f59e0b;transition:background .1s ease}.skill-dropdown__add-btn:hover{background:#f59e0b14}.count-dropdown__menu{background:var(--island-bg-color, #fff);border:1px solid #F3F4F6;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:0;min-width:80px;overflow:hidden}.count-dropdown__header{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:500;color:#6b7280;border-bottom:1px solid #F3F4F6;background:#fafafa}.count-dropdown__list{padding:4px}.count-dropdown__item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .1s ease;font-size:13px;white-space:nowrap;color:#1f2937}.count-dropdown__item:hover,.count-dropdown__item--highlighted{background:#f3f4f6}.count-dropdown__item--selected{background:#f59e0b14;color:#f59e0b;font-weight:500}.count-dropdown__item--selected:hover,.count-dropdown__item--selected.count-dropdown__item--highlighted{background:#f59e0b1f}.count-dropdown__item-check{margin-left:8px;color:#f59e0b}:root[data-theme=dark] .generation-type-dropdown__menu,:root[data-theme=dark] .count-dropdown__menu,:root[data-theme=dark] .skill-dropdown__menu{background:var(--color-surface-high, #2a2a2a);border-color:var(--color-border, #444);box-shadow:0 4px 20px #0006}:root[data-theme=dark] .generation-type-dropdown__header,:root[data-theme=dark] .count-dropdown__header,:root[data-theme=dark] .skill-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] .generation-type-dropdown__item,:root[data-theme=dark] .count-dropdown__item,:root[data-theme=dark] .skill-dropdown__item{color:var(--color-gray-20, #ccc)}:root[data-theme=dark] .generation-type-dropdown__item:hover,:root[data-theme=dark] .generation-type-dropdown__item--highlighted,:root[data-theme=dark] .count-dropdown__item:hover,:root[data-theme=dark] .count-dropdown__item--highlighted,:root[data-theme=dark] .skill-dropdown__item:hover,:root[data-theme=dark] .skill-dropdown__item--highlighted{background:var(--color-surface-mid, #333)}:root[data-theme=dark] .generation-type-dropdown__item--selected,:root[data-theme=dark] .count-dropdown__item--selected,:root[data-theme=dark] .skill-dropdown__item--selected{background:#f59e0b26;color:#f59e0b}:root[data-theme=dark] .generation-type-dropdown__item--selected:hover,:root[data-theme=dark] .generation-type-dropdown__item--selected.generation-type-dropdown__item--highlighted,:root[data-theme=dark] .generation-type-dropdown__item--selected.count-dropdown__item--highlighted,:root[data-theme=dark] .generation-type-dropdown__item--selected.skill-dropdown__item--highlighted,:root[data-theme=dark] .count-dropdown__item--selected:hover,:root[data-theme=dark] .count-dropdown__item--selected.generation-type-dropdown__item--highlighted,:root[data-theme=dark] .count-dropdown__item--selected.count-dropdown__item--highlighted,:root[data-theme=dark] .count-dropdown__item--selected.skill-dropdown__item--highlighted,:root[data-theme=dark] .skill-dropdown__item--selected:hover,:root[data-theme=dark] .skill-dropdown__item--selected.generation-type-dropdown__item--highlighted,:root[data-theme=dark] .skill-dropdown__item--selected.count-dropdown__item--highlighted,:root[data-theme=dark] .skill-dropdown__item--selected.skill-dropdown__item--highlighted{background:#f59e0b33}:root[data-theme=dark] .skill-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] .skill-dropdown__divider{background:var(--color-border, #444)}:root[data-theme=dark] .skill-dropdown__add-btn{color:#f59e0b}:root[data-theme=dark] .skill-dropdown__add-btn:hover{background:#f59e0b26}:root[data-theme=dark] .skill-dropdown__item-badge{background:#f59e0b33}
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./tool-windows-CUNbW1Tz.css"])))=>i.map(i=>d[i]);
2
+ import{ah as O,ai as s,aj as t,ak as a}from"./tool-windows-DOIu9TAD.js";const g=t.lazy(()=>a(()=>import("./tool-windows-DOIu9TAD.js").then(e=>e.pJ),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.ProjectDrawer}))),A=t.lazy(()=>a(()=>import("./tool-windows-DOIu9TAD.js").then(e=>e.pK),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.ToolboxDrawer}))),I=t.lazy(()=>a(()=>import("./tool-windows-DOIu9TAD.js").then(e=>e.pL),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.DeferredMediaLibraryModal}))),R=t.lazy(()=>a(()=>import("./tool-windows-DOIu9TAD.js").then(e=>e.pM),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.BackupRestoreDialog}))),z=t.lazy(()=>a(()=>import("./tool-windows-DOIu9TAD.js").then(e=>e.pN),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.VersionUpdatePrompt}))),B=t.lazy(()=>a(()=>import("./tool-windows-DOIu9TAD.js").then(e=>e.pO),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.PerformancePanel}))),M=t.lazy(()=>a(()=>import("./tool-windows-DOIu9TAD.js").then(e=>e.pP),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.DeferredSyncSettings}))),W=t.lazy(()=>a(()=>import("./tool-windows-DOIu9TAD.js").then(e=>e.pQ),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.CommandPalette}))),J=t.lazy(()=>a(()=>import("./tool-windows-DOIu9TAD.js").then(e=>e.pR),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.CanvasSearch}))),K=t.lazy(()=>a(()=>import("./tool-windows-DOIu9TAD.js").then(e=>e.pS),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.ToolWinBoxManager})));function G({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:S,handleOpenMediaLibrary:F,handleBeforeSwitch:x,onCreateProjectForMemory:U}){const{appState:D,setAppState:h}=O(),f=D.openCommandPalette||!1,N=D.openCanvasSearch||!1;return s.jsxDEV(s.Fragment,{children:[m&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(I,{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:121,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:120,columnNumber:9},this),p&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(R,{open:p,onOpenChange:P,container:u.current,onBeforeImport:async()=>{await x()},onSwitchBoard:async(n,_)=>{const{workspaceService:q}=await a(async()=>{const{workspaceService:y}=await import("./tool-windows-DOIu9TAD.js").then(T=>T.px);return{workspaceService:y}},__vite__mapDeps([0]),import.meta.url),i=await q.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:133,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:132,columnNumber:9},this),d&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(M,{visible:d,onClose:()=>S(!1)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:157,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:156,columnNumber:9},this),j&&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:165,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:164,columnNumber:9},this),v&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(K,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:170,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:169,columnNumber:9},this),f&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(W,{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:175,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:174,columnNumber:9},this),N&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(J,{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:190,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:189,columnNumber:9},this),E&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(B,{container:u.current,onCreateProject:U,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:204,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:203,columnNumber:9},this),o&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(g,{isOpen:o,onOpenChange:k,onBeforeSwitch:x,onBoardSwitch:l,onOpenMediaLibrary:F},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:213,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:212,columnNumber:9},this),c&&s.jsxDEV(t.Suspense,{fallback:null,children:s.jsxDEV(A,{isOpen:c,onOpenChange:V},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:224,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:223,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:118,columnNumber:5},this)}export{G as DrawnixDeferredFeatures,G as default};