aitu-app 0.6.48 → 0.6.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/README.md +3 -3
  2. package/assets/CanvasAudioPlayer-DITqjh6L.js +2 -0
  3. package/assets/CanvasAudioPlayer-mm7y75Ol.css +1 -0
  4. package/assets/ChatMessagesArea-D9jmGx5a.js +250 -0
  5. package/assets/ChatMessagesArea-DyR_wHFQ.css +1 -0
  6. package/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  7. package/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  8. package/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  9. package/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  10. package/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  11. package/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  12. package/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  13. package/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  14. package/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  15. package/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  16. package/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  17. package/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  18. package/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  19. package/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  20. package/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  21. package/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  22. package/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  23. package/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  24. package/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  25. package/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  26. package/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  27. package/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  28. package/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  29. package/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  30. package/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  31. package/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  32. package/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  33. package/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  34. package/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  35. package/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  36. package/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  37. package/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  38. package/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  39. package/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  40. package/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  41. package/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  42. package/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  43. package/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  44. package/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  45. package/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  46. package/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  47. package/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  48. package/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  49. package/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  50. package/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  51. package/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  52. package/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  53. package/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  54. package/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  55. package/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  56. package/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  57. package/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  58. package/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  59. package/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  60. package/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  61. package/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  62. package/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  63. package/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  64. package/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  65. package/assets/KnowledgeBaseContent-C_BAVG2b.css +1 -0
  66. package/assets/KnowledgeBaseContent-za__rOJH.js +53 -0
  67. package/assets/MVCreator-CTG316DL.js +152 -0
  68. package/assets/MVCreator-D2l2Gm4W.css +1 -0
  69. package/assets/MediaLibrarySidebar-CNCXXhfY.css +1 -0
  70. package/assets/ModelBenchmarkWorkbench-CAF7qCOz.css +1 -0
  71. package/assets/ModelBenchmarkWorkbench-JCQglDx0.js +2 -0
  72. package/assets/MusicAnalyzer-DE_rzhdo.js +1 -0
  73. package/assets/MusicAnalyzer-DhtRGpAp.css +1 -0
  74. package/assets/MusicAnalyzer-QQf3iMVf.js +6 -0
  75. package/assets/ResizableDivider-CNJfwuMZ.js +1 -0
  76. package/assets/ResizableDivider-ClzYJk-6.css +1 -0
  77. package/assets/Tableau10-B-NsZVaP.js +1 -0
  78. package/assets/Tableau10-Dnlau_Wv.js +1 -0
  79. package/assets/TaskQueuePanel-CcKV6Mtu.js +1 -0
  80. package/assets/VideoAnalyzer-4jAswALN.js +2 -0
  81. package/assets/VideoAnalyzer-BNHBu5xL.css +1 -0
  82. package/assets/__vite-browser-external-UePf-KSV.js +1 -0
  83. package/assets/apl-B4CMkyY2.js +1 -0
  84. package/assets/arc-CUJYo2bm.js +1 -0
  85. package/assets/arc-Do7iheP0.js +1 -0
  86. package/assets/array-B5oSNiGi.js +1 -0
  87. package/assets/array-BKyUJesY.js +1 -0
  88. package/assets/asciiarmor-Df11BRmG.js +1 -0
  89. package/assets/asn1-EdZsLKOL.js +1 -0
  90. package/assets/asterisk-B-8jnY81.js +1 -0
  91. package/assets/batch-image-generation-BcGzhZc6.js +6 -0
  92. package/assets/batch-image-generation-BePygpHd.css +1 -0
  93. package/assets/blockDiagram-38ab4fdb-7dWD8NFK.js +118 -0
  94. package/assets/blockDiagram-38ab4fdb-CQhYv8hA.js +118 -0
  95. package/assets/brainfuck-C4LP7Hcl.js +1 -0
  96. package/assets/browser-Dlc7rtso.js +1 -0
  97. package/assets/c4Diagram-3d4e48cf-DcDSmMC1.js +10 -0
  98. package/assets/c4Diagram-3d4e48cf-YiNiIQMx.js +10 -0
  99. package/assets/channel-CbiJkWzq.js +1 -0
  100. package/assets/channel-CmPwOS9o.js +1 -0
  101. package/assets/character-Bo9jcTNu.css +1 -0
  102. package/assets/classDiagram-70f12bd4--vcKyE3X.js +2 -0
  103. package/assets/classDiagram-70f12bd4-uRbi4Ob8.js +2 -0
  104. package/assets/classDiagram-v2-f2320105-CJVRZ6AN.js +2 -0
  105. package/assets/classDiagram-v2-f2320105-vzjVMHkr.js +2 -0
  106. package/assets/clike-B9uivgTg.js +1 -0
  107. package/assets/clipper-DOGfacWv.js +1 -0
  108. package/assets/clojure-BMjYHr_A.js +1 -0
  109. package/assets/clone-D79TnM4U.js +1 -0
  110. package/assets/cmake-BQqOBYOt.js +1 -0
  111. package/assets/cobol-CWcv1MsR.js +1 -0
  112. package/assets/coffeescript-S37ZYGWr.js +1 -0
  113. package/assets/commonlisp-DBKNyK5s.js +1 -0
  114. package/assets/createText-2e5e7dd3-BwZkEiuo.js +8 -0
  115. package/assets/createText-2e5e7dd3-Caeqt6QH.js +5 -0
  116. package/assets/crystal-SjHAIU92.js +1 -0
  117. package/assets/css-BnMrqG3P.js +1 -0
  118. package/assets/cypher-C_CwsFkJ.js +1 -0
  119. package/assets/d-pRatUO7H.js +1 -0
  120. package/assets/diff-DbItnlRl.js +1 -0
  121. package/assets/dockerfile-BKs6k2Af.js +1 -0
  122. package/assets/dtd-DF_7sFjM.js +1 -0
  123. package/assets/dylan-DwRh75JA.js +1 -0
  124. package/assets/ebnf-CDyGwa7X.js +1 -0
  125. package/assets/ecl-Cabwm37j.js +1 -0
  126. package/assets/edges-e0da2a9e-C0phcDTf.js +4 -0
  127. package/assets/edges-e0da2a9e-izyAbn2P.js +4 -0
  128. package/assets/eiffel-CnydiIhH.js +1 -0
  129. package/assets/elm-vLlmbW-K.js +1 -0
  130. package/assets/erDiagram-9861fffd-2xZLFO3_.js +51 -0
  131. package/assets/erDiagram-9861fffd-CbdcBVpG.js +51 -0
  132. package/assets/erlang-BNw1qcRV.js +1 -0
  133. package/assets/external-skills-BcV6ATYi.js +1 -0
  134. package/assets/factor-kuTfRLto.js +1 -0
  135. package/assets/fcl-Kvtd6kyn.js +1 -0
  136. package/assets/flowDb-956e92f1-CKDRVial.js +10 -0
  137. package/assets/flowDb-956e92f1-X_4p-qaU.js +10 -0
  138. package/assets/flowDiagram-66a62f08-CujQt6CJ.js +4 -0
  139. package/assets/flowDiagram-66a62f08-DBi4rRPf.js +4 -0
  140. package/assets/flowDiagram-v2-96b9c2cf-BLkw2ciq.js +1 -0
  141. package/assets/flowDiagram-v2-96b9c2cf-DVKQK2hY.js +1 -0
  142. package/assets/flowchart-elk-definition-4a651766-Uf06y1Ck.js +139 -0
  143. package/assets/flowchart-elk-definition-4a651766-wpAztAJn.js +139 -0
  144. package/assets/forth-Ffai-XNe.js +1 -0
  145. package/assets/fortran-DYz_wnZ1.js +1 -0
  146. package/assets/ganttDiagram-c361ad54-B3JxRUoo.js +257 -0
  147. package/assets/ganttDiagram-c361ad54-CIb_MFVi.js +257 -0
  148. package/assets/gas-Bneqetm1.js +1 -0
  149. package/assets/gherkin-heZmZLOM.js +1 -0
  150. package/assets/gitGraphDiagram-72cf32ee-PuJBoZww.js +70 -0
  151. package/assets/gitGraphDiagram-72cf32ee-i6oLazGK.js +70 -0
  152. package/assets/graph-CbDG5PTO.js +1 -0
  153. package/assets/graph-DUQ4GGpV.js +1 -0
  154. package/assets/groovy-D9Dt4D0W.js +1 -0
  155. package/assets/haskell-Cw1EW3IL.js +1 -0
  156. package/assets/haxe-H-WmDvRZ.js +1 -0
  157. package/assets/http-DBlCnlav.js +1 -0
  158. package/assets/idl-BEugSyMb.js +1 -0
  159. package/assets/index-04BPVAKr.js +1 -0
  160. package/assets/index-3862675e-CLvnWYyN.js +1 -0
  161. package/assets/index-3862675e-CxQdmW6r.js +1 -0
  162. package/assets/index-3K3oLjal.js +1 -0
  163. package/assets/index-Ayt_kr_j.js +1 -0
  164. package/assets/index-B0aeak-l.js +1 -0
  165. package/assets/index-BAeTUD9a.js +1 -0
  166. package/assets/index-BECtRsXJ.js +6 -0
  167. package/assets/index-BScFd-2h.js +4 -0
  168. package/assets/index-BUB5I7zd.js +1 -0
  169. package/assets/index-BWokxWXg.js +1 -0
  170. package/assets/index-BYAyLEaG.js +1 -0
  171. package/assets/index-BZS4gNhO.js +7 -0
  172. package/assets/index-Bc75bQXQ.js +2 -0
  173. package/assets/index-BjxNPKa3.js +1 -0
  174. package/assets/index-BkvYpt-1.js +1 -0
  175. package/assets/index-Bnb0fjWR.js +1 -0
  176. package/assets/index-CGq-gcht.js +12 -0
  177. package/assets/index-CJ7peDFP.css +1 -0
  178. package/assets/index-CJCAjGj3.js +2 -0
  179. package/assets/index-CdYUDSvm.js +1 -0
  180. package/assets/index-CxEkGLrr.js +686 -0
  181. package/assets/index-DHQdBbnC.js +3 -0
  182. package/assets/index-DYdelMnT.js +1 -0
  183. package/assets/index-Dk5t_-56.js +99 -0
  184. package/assets/index-DlZybecc.js +1 -0
  185. package/assets/index-DmWG413C.js +1 -0
  186. package/assets/index-DzlsyVkU.js +1 -0
  187. package/assets/index-EYhL1Kgt.js +1 -0
  188. package/assets/index-c441JIOr.js +13 -0
  189. package/assets/index-fqJaUvT1.js +1 -0
  190. package/assets/index-hGrN05cs.js +1 -0
  191. package/assets/index-zV_AIntM.js +2 -0
  192. package/assets/infoDiagram-f8f76790-BYO9kBqO.js +7 -0
  193. package/assets/infoDiagram-f8f76790-D_TYtc3S.js +7 -0
  194. package/assets/init-A0kIFD9x.js +1 -0
  195. package/assets/init-Gi6I4Gst.js +1 -0
  196. package/assets/javascript-iXu5QeM3.js +1 -0
  197. package/assets/journeyDiagram-49397b02-DWfiJTLK.js +139 -0
  198. package/assets/journeyDiagram-49397b02-Dv5EEshV.js +139 -0
  199. package/assets/julia-DuME0IfC.js +1 -0
  200. package/assets/katex-Cu_Erd72.js +261 -0
  201. package/assets/layout-Bc2296BZ.js +1 -0
  202. package/assets/layout-Dm28IvOg.js +1 -0
  203. package/assets/line-C3mpslQb.js +1 -0
  204. package/assets/line-DTTPRZLU.js +1 -0
  205. package/assets/linear-YwuGF1HZ.js +1 -0
  206. package/assets/linear-g8AgbOem.js +1 -0
  207. package/assets/livescript-BwQOo05w.js +1 -0
  208. package/assets/lua-BgMRiT3U.js +1 -0
  209. package/assets/main-DlDiDA_U.css +9 -0
  210. package/assets/main-sSl0uAQQ.js +564 -0
  211. package/assets/mathematica-DTrFuWx2.js +1 -0
  212. package/assets/mbox-CNhZ1qSd.js +1 -0
  213. package/assets/mermaid.core-GIkiJOrg.js +91 -0
  214. package/assets/mindmap-definition-fc14e90a-Chuh4Ixc.js +425 -0
  215. package/assets/mindmap-definition-fc14e90a-D_ZKvIES.js +425 -0
  216. package/assets/mirc-CjQqDB4T.js +1 -0
  217. package/assets/mllike-CXdrOF99.js +1 -0
  218. package/assets/modelica-Dc1JOy9r.js +1 -0
  219. package/assets/mscgen-BA5vi2Kp.js +1 -0
  220. package/assets/mumps-BT43cFF4.js +1 -0
  221. package/assets/nginx-DdIZxoE0.js +1 -0
  222. package/assets/nsis-LdVXkNf5.js +1 -0
  223. package/assets/ntriples-BfvgReVJ.js +1 -0
  224. package/assets/octave-Ck1zUtKM.js +1 -0
  225. package/assets/ordinal-BRr1uYdk.js +1 -0
  226. package/assets/ordinal-Cboi1Yqb.js +1 -0
  227. package/assets/oz-BzwKVEFT.js +1 -0
  228. package/assets/pascal--L3eBynH.js +1 -0
  229. package/assets/path-CY0bYimO.js +1 -0
  230. package/assets/path-CbwjOpE9.js +1 -0
  231. package/assets/perl-CdXCOZ3F.js +1 -0
  232. package/assets/photo-wall-splitter-CY0T_wNE.js +1 -0
  233. package/assets/pieDiagram-8a3498a8-DRsICc_f.js +35 -0
  234. package/assets/pieDiagram-8a3498a8-Dah8ahbr.js +35 -0
  235. package/assets/pig-CevX1Tat.js +1 -0
  236. package/assets/powershell-CFHJl5sT.js +1 -0
  237. package/assets/properties-C78fOPTZ.js +1 -0
  238. package/assets/protobuf-ChK-085T.js +1 -0
  239. package/assets/pug-DeIclll2.js +1 -0
  240. package/assets/puppet-DMA9R1ak.js +1 -0
  241. package/assets/python-BuPzkPfP.js +1 -0
  242. package/assets/q-pXgVlZs6.js +1 -0
  243. package/assets/quadrantDiagram-120e2f19-Fh6InPVY.js +7 -0
  244. package/assets/quadrantDiagram-120e2f19-gL-_zV58.js +7 -0
  245. package/assets/r-B6wPVr8A.js +1 -0
  246. package/assets/requirementDiagram-deff3bca-CNSkJJCh.js +52 -0
  247. package/assets/requirementDiagram-deff3bca-CfDffyTL.js +52 -0
  248. package/assets/rpm-CTu-6PCP.js +1 -0
  249. package/assets/ruby-B2Rjki9n.js +1 -0
  250. package/assets/sankeyDiagram-04a897e0-Bk-KjkRU.js +8 -0
  251. package/assets/sankeyDiagram-04a897e0-JvhHugQc.js +8 -0
  252. package/assets/sas-B4kiWyti.js +1 -0
  253. package/assets/scheme-C41bIUwD.js +1 -0
  254. package/assets/sequenceDiagram-704730f1-DtYYZkJD.js +122 -0
  255. package/assets/sequenceDiagram-704730f1-Hcr6n9p8.js +122 -0
  256. package/assets/shell-CjFT_Tl9.js +1 -0
  257. package/assets/sieve-C3Gn_uJK.js +1 -0
  258. package/assets/simple-mode-GW_nhZxv.js +1 -0
  259. package/assets/smalltalk-CnHTOXQT.js +1 -0
  260. package/assets/solr-DehyRSwq.js +1 -0
  261. package/assets/sparql-DkYu6x3z.js +1 -0
  262. package/assets/spreadsheet-BCZA_wO0.js +1 -0
  263. package/assets/sql-D0XecflT.js +1 -0
  264. package/assets/stateDiagram-587899a1-BBe_EhAD.js +1 -0
  265. package/assets/stateDiagram-587899a1-DqdI8yJY.js +1 -0
  266. package/assets/stateDiagram-v2-d93cdb3a-BFy9jG1p.js +1 -0
  267. package/assets/stateDiagram-v2-d93cdb3a-CR8nQq3k.js +1 -0
  268. package/assets/stex-C3f8Ysf7.js +1 -0
  269. package/assets/styles-6aaf32cf-B3jetBAL.js +207 -0
  270. package/assets/styles-6aaf32cf-CtTk65AO.js +207 -0
  271. package/assets/styles-9a916d00-BzAmphe7.js +160 -0
  272. package/assets/styles-9a916d00-CC9GaYxg.js +160 -0
  273. package/assets/styles-c10674c1-CNAwL7Ic.js +116 -0
  274. package/assets/styles-c10674c1-Db2Kd6RJ.js +116 -0
  275. package/assets/stylus-B533Al4x.js +1 -0
  276. package/assets/svgDrawCommon-08f97a94-C5qlB1eZ.js +1 -0
  277. package/assets/svgDrawCommon-08f97a94-JdKl-BWQ.js +1 -0
  278. package/assets/swift-BzpIVaGY.js +1 -0
  279. package/assets/tcl-DVfN8rqt.js +1 -0
  280. package/assets/textile-CnDTJFAw.js +1 -0
  281. package/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  282. package/assets/tiki-DGYXhP31.js +1 -0
  283. package/assets/timeline-definition-85554ec2-DOdYNzv7.js +61 -0
  284. package/assets/timeline-definition-85554ec2-o-R8VXA5.js +61 -0
  285. package/assets/toml-Bm5Em-hy.js +1 -0
  286. package/assets/tool-windows-Cuh0TRgJ.css +1 -0
  287. package/assets/tool-windows-DWUG3k_L.js +2846 -0
  288. package/assets/troff-wAsdV37c.js +1 -0
  289. package/assets/ttcn-CfJYG6tj.js +1 -0
  290. package/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  291. package/assets/ttd-dialog-BQiy0hwR.js +99 -0
  292. package/assets/ttd-dialog-BlUvpMr5.css +1 -0
  293. package/assets/turtle-B1tBg_DP.js +1 -0
  294. package/assets/useCharacters-BJLEgDAP.css +1 -0
  295. package/assets/useCharacters-BxKzeyv4.js +6 -0
  296. package/assets/vb-CmGdzxic.js +1 -0
  297. package/assets/vbscript-BuJXcnF6.js +1 -0
  298. package/assets/velocity-D8B20fx6.js +1 -0
  299. package/assets/verilog-C6RDOZhf.js +1 -0
  300. package/assets/version-update-prompt-HA-CqLZW.js +1 -0
  301. package/assets/version-update-prompt-P9Rd5ve2.css +1 -0
  302. package/assets/vhdl-lSbBsy5d.js +1 -0
  303. package/assets/video-recovery-service-C0PZsfFC.js +1 -0
  304. package/assets/web-vitals-DcvjKPr-.js +1 -0
  305. package/assets/webidl-ZXfAyPTL.js +1 -0
  306. package/assets/winbox.bundle.min-CoRPjCs5.js +1 -0
  307. package/assets/workflow-generation-utils-DspPdLxa.js +3 -0
  308. package/assets/xlsx-CkFp8p6R.js +105 -0
  309. package/assets/xquery-DzFWVndE.js +1 -0
  310. package/assets/xychartDiagram-e933f94c-D13oeSTj.js +7 -0
  311. package/assets/xychartDiagram-e933f94c-DwikDAhJ.js +7 -0
  312. package/assets/yacas-BJ4BC0dw.js +1 -0
  313. package/assets/z80-Hz9HOZM7.js +1 -0
  314. package/idle-prefetch-manifest.json +18 -4
  315. package/package.json +1 -1
  316. package/precache-manifest.json +1015 -3
  317. package/sw.js +1 -1
  318. package/version.json +2 -2
@@ -0,0 +1 @@
1
+ var h={};function u(n){if(n.eatSpace())return null;var t=n.sol(),c=n.next();if(c==="\\")return n.match("fB")||n.match("fR")||n.match("fI")||n.match("u")||n.match("d")||n.match("%")||n.match("&")?"string":n.match("m[")?(n.skipTo("]"),n.next(),"string"):n.match("s+")||n.match("s-")?(n.eatWhile(/[\d-]/),"string"):((n.match("(")||n.match("*("))&&n.eatWhile(/[\w-]/),"string");if(t&&(c==="."||c==="'")&&n.eat("\\")&&n.eat('"'))return n.skipToEnd(),"comment";if(t&&c==="."){if(n.match("B ")||n.match("I ")||n.match("R "))return"attribute";if(n.match("TH ")||n.match("SH ")||n.match("SS ")||n.match("HP "))return n.skipToEnd(),"quote";if(n.match(/[A-Z]/)&&n.match(/[A-Z]/)||n.match(/[a-z]/)&&n.match(/[a-z]/))return"attribute"}n.eatWhile(/[\w-]/);var i=n.current();return h.hasOwnProperty(i)?h[i]:null}function f(n,t){return(t.tokens[0]||u)(n,t)}const o={name:"troff",startState:function(){return{tokens:[]}},token:function(n,t){return f(n,t)}};export{o as troff};
@@ -0,0 +1 @@
1
+ function o(e){for(var t={},n=e.split(" "),r=0;r<n.length;++r)t[n[r]]=!0;return t}const i={keywords:o("activate address alive all alt altstep and and4b any break case component const continue control deactivate display do else encode enumerated except exception execute extends extension external for from function goto group if import in infinity inout interleave label language length log match message mixed mod modifies module modulepar mtc noblock not not4b nowait of on optional or or4b out override param pattern port procedure record recursive rem repeat return runs select self sender set signature system template testcase to type union value valueof var variant while with xor xor4b"),builtin:o("bit2hex bit2int bit2oct bit2str char2int char2oct encvalue decomp decvalue float2int float2str hex2bit hex2int hex2oct hex2str int2bit int2char int2float int2hex int2oct int2str int2unichar isbound ischosen ispresent isvalue lengthof log2str oct2bit oct2char oct2hex oct2int oct2str regexp replace rnd sizeof str2bit str2float str2hex str2int str2oct substr unichar2int unichar2char enum2int"),types:o("anytype bitstring boolean char charstring default float hexstring integer objid octetstring universal verdicttype timer"),timerOps:o("read running start stop timeout"),portOps:o("call catch check clear getcall getreply halt raise receive reply send trigger"),configOps:o("create connect disconnect done kill killed map unmap"),verdictOps:o("getverdict setverdict"),sutOps:o("action"),functionOps:o("apply derefers refers"),verdictConsts:o("error fail inconc none pass"),booleanConsts:o("true false"),otherConsts:o("null NULL omit"),visibilityModifiers:o("private public friend"),templateMatch:o("complement ifpresent subset superset permutation")};var h=[];function p(e){if(e)for(var t in e)e.hasOwnProperty(t)&&h.push(t)}p(i.keywords);p(i.builtin);p(i.timerOps);p(i.portOps);var y=i.keywords||{},v=i.builtin||{},x=i.timerOps||{},g=i.portOps||{},k=i.configOps||{},O=i.verdictOps||{},w=i.sutOps||{},E=i.functionOps||{},C=i.verdictConsts||{},I=i.booleanConsts||{},z=i.otherConsts||{},L=i.types||{},M=i.visibilityModifiers||{},S=i.templateMatch||{},W=i.indentStatements!==!1,d=/[+\-*&@=<>!\/]/,l;function T(e,t){var n=e.next();if(n=='"'||n=="'")return t.tokenize=N(n),t.tokenize(e,t);if(/[\[\]{}\(\),;\\:\?\.]/.test(n))return l=n,"punctuation";if(n=="#")return e.skipToEnd(),"atom";if(n=="%")return e.eatWhile(/\b/),"atom";if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(n=="/"){if(e.eat("*"))return t.tokenize=m,m(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(d.test(n))return n=="@"&&(e.match("try")||e.match("catch")||e.match("lazy"))?"keyword":(e.eatWhile(d),"operator");e.eatWhile(/[\w\$_\xa1-\uffff]/);var r=e.current();return y.propertyIsEnumerable(r)?"keyword":v.propertyIsEnumerable(r)?"builtin":x.propertyIsEnumerable(r)||k.propertyIsEnumerable(r)||O.propertyIsEnumerable(r)||g.propertyIsEnumerable(r)||w.propertyIsEnumerable(r)||E.propertyIsEnumerable(r)?"def":C.propertyIsEnumerable(r)||I.propertyIsEnumerable(r)||z.propertyIsEnumerable(r)?"string":L.propertyIsEnumerable(r)?"typeName.standard":M.propertyIsEnumerable(r)?"modifier":S.propertyIsEnumerable(r)?"atom":"variable"}function N(e){return function(t,n){for(var r=!1,c,f=!1;(c=t.next())!=null;){if(c==e&&!r){var s=t.peek();s&&(s=s.toLowerCase(),(s=="b"||s=="h"||s=="o")&&t.next()),f=!0;break}r=!r&&c=="\\"}return f&&(n.tokenize=null),"string"}}function m(e,t){for(var n=!1,r;r=e.next();){if(r=="/"&&n){t.tokenize=null;break}n=r=="*"}return"comment"}function b(e,t,n,r,c){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=c}function a(e,t,n){var r=e.indented;return e.context&&e.context.type=="statement"&&(r=e.context.indented),e.context=new b(r,t,n,null,e.context)}function u(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}const P={name:"ttcn",startState:function(){return{tokenize:null,context:new b(0,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align==null&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;l=null;var r=(t.tokenize||T)(e,t);if(r=="comment")return r;if(n.align==null&&(n.align=!0),(l==";"||l==":"||l==",")&&n.type=="statement")u(t);else if(l=="{")a(t,e.column(),"}");else if(l=="[")a(t,e.column(),"]");else if(l=="(")a(t,e.column(),")");else if(l=="}"){for(;n.type=="statement";)n=u(t);for(n.type=="}"&&(n=u(t));n.type=="statement";)n=u(t)}else l==n.type?u(t):W&&((n.type=="}"||n.type=="top")&&l!=";"||n.type=="statement"&&l=="newstatement")&&a(t,e.column(),"statement");return t.startOfLine=!1,r},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:h}};export{P as ttcn};
@@ -0,0 +1 @@
1
+ function I(e){for(var n={},T=e.split(" "),E=0;E<T.length;++E)n[T[E]]=!0;return n}const r={keywords:I("Yes No LogFile FileMask ConsoleMask AppendFile TimeStampFormat LogEventTypes SourceInfoFormat LogEntityName LogSourceInfo DiskFullAction LogFileNumber LogFileSize MatchingHints Detailed Compact SubCategories Stack Single None Seconds DateTime Time Stop Error Retry Delete TCPPort KillTimer NumHCs UnixSocketsEnabled LocalAddress"),fileNCtrlMaskOptions:I("TTCN_EXECUTOR TTCN_ERROR TTCN_WARNING TTCN_PORTEVENT TTCN_TIMEROP TTCN_VERDICTOP TTCN_DEFAULTOP TTCN_TESTCASE TTCN_ACTION TTCN_USER TTCN_FUNCTION TTCN_STATISTICS TTCN_PARALLEL TTCN_MATCHING TTCN_DEBUG EXECUTOR ERROR WARNING PORTEVENT TIMEROP VERDICTOP DEFAULTOP TESTCASE ACTION USER FUNCTION STATISTICS PARALLEL MATCHING DEBUG LOG_ALL LOG_NOTHING ACTION_UNQUALIFIED DEBUG_ENCDEC DEBUG_TESTPORT DEBUG_UNQUALIFIED DEFAULTOP_ACTIVATE DEFAULTOP_DEACTIVATE DEFAULTOP_EXIT DEFAULTOP_UNQUALIFIED ERROR_UNQUALIFIED EXECUTOR_COMPONENT EXECUTOR_CONFIGDATA EXECUTOR_EXTCOMMAND EXECUTOR_LOGOPTIONS EXECUTOR_RUNTIME EXECUTOR_UNQUALIFIED FUNCTION_RND FUNCTION_UNQUALIFIED MATCHING_DONE MATCHING_MCSUCCESS MATCHING_MCUNSUCC MATCHING_MMSUCCESS MATCHING_MMUNSUCC MATCHING_PCSUCCESS MATCHING_PCUNSUCC MATCHING_PMSUCCESS MATCHING_PMUNSUCC MATCHING_PROBLEM MATCHING_TIMEOUT MATCHING_UNQUALIFIED PARALLEL_PORTCONN PARALLEL_PORTMAP PARALLEL_PTC PARALLEL_UNQUALIFIED PORTEVENT_DUALRECV PORTEVENT_DUALSEND PORTEVENT_MCRECV PORTEVENT_MCSEND PORTEVENT_MMRECV PORTEVENT_MMSEND PORTEVENT_MQUEUE PORTEVENT_PCIN PORTEVENT_PCOUT PORTEVENT_PMIN PORTEVENT_PMOUT PORTEVENT_PQUEUE PORTEVENT_STATE PORTEVENT_UNQUALIFIED STATISTICS_UNQUALIFIED STATISTICS_VERDICT TESTCASE_FINISH TESTCASE_START TESTCASE_UNQUALIFIED TIMEROP_GUARD TIMEROP_READ TIMEROP_START TIMEROP_STOP TIMEROP_TIMEOUT TIMEROP_UNQUALIFIED USER_UNQUALIFIED VERDICTOP_FINAL VERDICTOP_GETVERDICT VERDICTOP_SETVERDICT VERDICTOP_UNQUALIFIED WARNING_UNQUALIFIED"),externalCommands:I("BeginControlPart EndControlPart BeginTestCase EndTestCase")};var A=r.keywords,U=r.fileNCtrlMaskOptions,R=r.externalCommands,S=r.indentStatements!==!1,O=/[\|]/,t;function u(e,n){var T=e.next();if(T=='"'||T=="'")return n.tokenize=P(T),n.tokenize(e,n);if(/[:=]/.test(T))return t=T,"punctuation";if(T=="#")return e.skipToEnd(),"comment";if(/\d/.test(T))return e.eatWhile(/[\w\.]/),"number";if(O.test(T))return e.eatWhile(O),"operator";if(T=="[")return e.eatWhile(/[\w_\]]/),"number";e.eatWhile(/[\w\$_]/);var E=e.current();return A.propertyIsEnumerable(E)?"keyword":U.propertyIsEnumerable(E)?"atom":R.propertyIsEnumerable(E)?"deleted":"variable"}function P(e){return function(n,T){for(var E=!1,i,l=!1;(i=n.next())!=null;){if(i==e&&!E){var C=n.peek();C&&(C=C.toLowerCase(),(C=="b"||C=="h"||C=="o")&&n.next()),l=!0;break}E=!E&&i=="\\"}return l&&(T.tokenize=null),"string"}}function _(e,n,T,E,i){this.indented=e,this.column=n,this.type=T,this.align=E,this.prev=i}function N(e,n,T){var E=e.indented;return e.context&&e.context.type=="statement"&&(E=e.context.indented),e.context=new _(E,n,T,null,e.context)}function o(e){var n=e.context.type;return(n==")"||n=="]"||n=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}const L={name:"ttcn",startState:function(){return{tokenize:null,context:new _(0,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,n){var T=n.context;if(e.sol()&&(T.align==null&&(T.align=!1),n.indented=e.indentation(),n.startOfLine=!0),e.eatSpace())return null;t=null;var E=(n.tokenize||u)(e,n);if(E=="comment")return E;if(T.align==null&&(T.align=!0),(t==";"||t==":"||t==",")&&T.type=="statement")o(n);else if(t=="{")N(n,e.column(),"}");else if(t=="[")N(n,e.column(),"]");else if(t=="(")N(n,e.column(),")");else if(t=="}"){for(;T.type=="statement";)T=o(n);for(T.type=="}"&&(T=o(n));T.type=="statement";)T=o(n)}else t==T.type?o(n):S&&((T.type=="}"||T.type=="top")&&t!=";"||T.type=="statement"&&t=="newstatement")&&N(n,e.column(),"statement");return n.startOfLine=!1,E},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"#"}}};export{L as ttcnCfg};
@@ -0,0 +1,99 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./tool-windows-Cuh0TRgJ.css","./main-DlDiDA_U.css","./batch-image-generation-BePygpHd.css"])))=>i.map(i=>d[i]);
2
+ import{y as e,z as Ot,jw as Hs,jx as Ys,r as t,dw as zt,j1 as Xs,j3 as Js,j2 as Qs,je as Zs,jy as Lt,bL as ft,b8 as Ye,_ as Vt,g_ as ps,P as fs,G as gs,ai as St,jz as ea,W as hs,gl as bs,cX as ge,gK as Ne,bV as Le,g6 as xs,fM as ut,jA as ta,fY as sa,dM as Ns,bP as et,al as _e,bT as aa,hG as ia,gD as na,bD as oa,jB as ra,jC as da,jD as la,jE as ca,jF as ua,jG as ma,ia as pa,jH as dt,i5 as ct,jI as fa,jJ as ga,jK as ha,fP as ba,jL as $t,g3 as vs,jM as xa,iw as ws,g5 as Na,hF as va,jN as wa,eP as Ft,eK as ya,eO as ze,hw as ja,iB as ka,iC as Ea,fW as Bt,jO as Da,dj as Sa,eI as Ia,jP as Va,d2 as Ua,hL as ys,hM as He,hK as Me,hN as mt,ic as vt,eW as Ut,aI as ce,i4 as qa,gy as _a,gF as Re,hS as js,i6 as tt,hY as Ca,io as Ta,jQ as Gt,id as wt,ij as Pa,jR as yt,hz as Ma,jS as Ra,jT as Wt,jU as jt,jV as Kt,jW as Ht,jX as kt,jY as Yt,jZ as Xt,hO as Jt,hP as Qt,j_ as Zt,U as Aa,bI as Oa,is as es,j$ as ts}from"./tool-windows-DWUG3k_L.js";import{W as za,w as La,B as $a,u as qt,a as _t,g as Fa,P as Ba,b as Ga,c as Wa,d as Ka,e as Ha,f as Ya,h as Ae,i as Pe,j as ye,l as ss,k as ks,s as Xa,m as Es,n as Ds,o as as,p as is,q as Ja,r as Qa}from"./main-sSl0uAQQ.js";import{u as Ss,C as Za,V as ei,a as ti}from"./useCharacters-BxKzeyv4.js";/* empty css */import{R as Is}from"./ResizableDivider-CNJfwuMZ.js";const Vs=({children:i})=>e.jsxDEV("div",{className:"ttd-dialog-panels",children:i},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-panels.tsx",lineNumber:4,columnNumber:10},void 0),pt=({label:i,children:s,panelAction:n,panelActionDisabled:r=!1,onTextSubmitInProgress:a,renderTopRight:o,renderSubmitShortcut:b,renderBottomRight:w})=>e.jsxDEV("div",{className:"ttd-dialog-panel",children:[e.jsxDEV("div",{className:"ttd-dialog-panel__header",children:[e.jsxDEV("label",{children:i},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-panel.tsx",lineNumber:32,columnNumber:9},void 0),o==null?void 0:o()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-panel.tsx",lineNumber:31,columnNumber:7},void 0),s,e.jsxDEV("div",{className:Ot("ttd-dialog-panel-button-container",{invisible:!n}),style:{display:"flex",alignItems:"center"},children:[e.jsxDEV("button",{className:"ttd-dialog-panel-button drawnix-button ","data-track":"ttd_click_panel_action",onClick:n&&n.action,disabled:r||a,children:e.jsxDEV("div",{className:Ot({invisible:a}),children:[n==null?void 0:n.label,(n==null?void 0:n.icon)&&e.jsxDEV("span",{children:n.icon},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-panel.tsx",lineNumber:51,columnNumber:35},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-panel.tsx",lineNumber:49,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-panel.tsx",lineNumber:43,columnNumber:9},void 0),!r&&!a&&(b==null?void 0:b()),w==null?void 0:w()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-panel.tsx",lineNumber:37,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-panel.tsx",lineNumber:30,columnNumber:5},void 0),ns={CTRL_OR_CMD:Hs||Ys?"metaKey":"ctrlKey",ENTER:"Enter"},Us=({input:i,placeholder:s,onChange:n,onKeyboardSubmit:r})=>{const a=t.useRef(null),o=t.useRef(r);return o.current=r,t.useEffect(()=>{if(!o.current)return;const b=a.current;if(b){const w=D=>{var d;D[ns.CTRL_OR_CMD]&&D.key===ns.ENTER&&(D.preventDefault(),(d=o.current)==null||d.call(o))};return b.addEventListener(zt.KEYDOWN,w),()=>{b.removeEventListener(zt.KEYDOWN,w)}}},[]),e.jsxDEV("textarea",{className:"ttd-dialog-input",onChange:n,value:i,placeholder:s,autoFocus:!0,ref:a},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-input.tsx",lineNumber:45,columnNumber:5},void 0)},si=({error:i})=>e.jsxDEV("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",e.jsxDEV("p",{children:i},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-output.tsx",lineNumber:14,columnNumber:14},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-output.tsx",lineNumber:10,columnNumber:5},void 0),qs=({error:i,value:s,loaded:n})=>{const r=[Xs,Js,Qs,La],a={readonly:!0,hideScrollbar:!1,disabledScrollOnNonFocus:!0,themeColors:Zs};return e.jsxDEV("div",{className:"ttd-dialog-output-wrapper",children:[i&&e.jsxDEV(si,{error:i.message},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-output.tsx",lineNumber:39,columnNumber:17},void 0),e.jsxDEV("div",{style:{opacity:i?"0.15":1},className:"ttd-dialog-output-canvas-container",children:e.jsxDEV(za,{value:s,options:a,plugins:r,children:e.jsxDEV($a,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-output.tsx",lineNumber:46,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-output.tsx",lineNumber:45,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-output.tsx",lineNumber:41,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-output.tsx",lineNumber:38,columnNumber:5},void 0)},_s=()=>e.jsxDEV("div",{className:"ttd-dialog-submit-shortcut",children:[e.jsxDEV("div",{className:"ttd-dialog-submit-shortcut__key",children:Lt("CtrlOrCmd")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-submit-shortcut.tsx",lineNumber:6,columnNumber:7},void 0),e.jsxDEV("div",{className:"ttd-dialog-submit-shortcut__key",children:Lt("Enter")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-submit-shortcut.tsx",lineNumber:9,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog-submit-shortcut.tsx",lineNumber:5,columnNumber:5},void 0),ai=`flowchart TD
3
+ A[Christmas] -->|Get money| B(Go shopping)
4
+ B --> C{Let me think}
5
+ C -->|One| D[Laptop]
6
+ C -->|Two| E[iPhone]
7
+ C -->|Three| F[Car]`,ii=()=>{const{closeDialog:i}=ft(),{t:s,language:n}=Ye(),[r,a]=t.useState({loaded:!1,api:Promise.resolve({parseMermaidToDrawnix:async()=>({elements:[]})})});t.useEffect(()=>{(async()=>{try{const N=await Vt(()=>import("./index-Dk5t_-56.js").then(u=>u.aq),__vite__mapDeps([0]),import.meta.url);a({loaded:!0,api:Promise.resolve(N)})}catch(N){console.error("Failed to load mermaid library:",N),S(new Error(s("dialog.error.loadMermaid")))}})()},[]);const[o,b]=t.useState(()=>ai),[w,D]=t.useState(()=>[]),d=t.useDeferredValue(o.trim()),[p,S]=t.useState(null),V=qt();t.useEffect(()=>{(async()=>{try{const N=await r.api;let u;try{u=await N.parseMermaidToDrawnix(d)}catch{u=await N.parseMermaidToDrawnix(d.replace(/"/g,"'"))}const{elements:C}=u;D(C),S(null)}catch(N){S(N)}})()},[d,r]);const h=()=>{if(!w.length)return;let f;const N=ps(V);if(N)f=N;else{const u=fs.getBoardContainer(V).getBoundingClientRect(),C=[u.width/2,u.height/2],_=V.viewport.zoom,E=gs(V),B=E[0]+C[0]/_,l=E[1]+C[1]/_,U=w,T=St.getBoundingRectangle(U.filter(z=>!ea.isGroup(z)).map(z=>St.getRectangleByPoints(z.points)));f=[B-T.width/2,l-T.height/2]}V.insertFragment({elements:JSON.parse(JSON.stringify(w))},f,hs.paste),f&&requestAnimationFrame(()=>{bs(V,f)}),i(ge.mermaidToDrawnix)};return e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ttd-dialog-desc",children:n==="zh"?e.jsxDEV(e.Fragment,{children:[s("dialog.mermaid.description")," ",e.jsxDEV("a",{href:"https://mermaid.js.org/syntax/flowchart.html",target:"_blank",rel:"noreferrer",children:s("dialog.mermaid.flowchart")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:154,columnNumber:13},void 0),"、",e.jsxDEV("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",target:"_blank",rel:"noreferrer",children:s("dialog.mermaid.sequence")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:162,columnNumber:13},void 0)," ","和"," ",e.jsxDEV("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",target:"_blank",rel:"noreferrer",children:s("dialog.mermaid.class")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:172,columnNumber:13},void 0),s("dialog.mermaid.otherTypes")]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:151,columnNumber:11},void 0):e.jsxDEV(e.Fragment,{children:[s("dialog.mermaid.description")," ",e.jsxDEV("a",{href:"https://mermaid.js.org/syntax/flowchart.html",target:"_blank",rel:"noreferrer",children:s("dialog.mermaid.flowchart")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:185,columnNumber:13},void 0),","," ",e.jsxDEV("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",target:"_blank",rel:"noreferrer",children:s("dialog.mermaid.sequence")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:193,columnNumber:13},void 0),","," ",e.jsxDEV("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",target:"_blank",rel:"noreferrer",children:s("dialog.mermaid.class")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:201,columnNumber:13},void 0),s("dialog.mermaid.otherTypes")]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:182,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:149,columnNumber:7},void 0),e.jsxDEV(Vs,{children:[e.jsxDEV(pt,{label:s("dialog.mermaid.syntax"),children:e.jsxDEV(Us,{input:o,placeholder:s("dialog.mermaid.placeholder"),onChange:f=>b(f.target.value),onKeyboardSubmit:()=>{h()}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:214,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:213,columnNumber:9},void 0),e.jsxDEV(pt,{label:s("dialog.mermaid.preview"),panelAction:{action:()=>{h()},label:s("dialog.mermaid.insert")},renderSubmitShortcut:()=>e.jsxDEV(_s,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:231,columnNumber:39},void 0),children:e.jsxDEV(qs,{value:w,loaded:r.loaded,error:p},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:233,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:223,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:212,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/mermaid-to-drawnix.tsx",lineNumber:148,columnNumber:5},void 0)},os=i=>i==="zh"?`# Milkdown 入门
8
+
9
+ Milkdown 是一个强大的所见即所得 Markdown 编辑器,兼具 Markdown 的简洁和现代编辑器的灵活性。它轻量且可扩展,适合从简单到复杂的编辑需求。
10
+
11
+ ## 快速开始
12
+ 最快的方式是使用 @milkdown/crepe。
13
+
14
+ ## 核心概念
15
+ Milkdown 由两部分组成:
16
+ 1. 核心包(@milkdown/core)
17
+ - 插件加载器
18
+ - 内置插件
19
+ 2. 扩展插件
20
+ - 语法支持
21
+ - 命令
22
+ - UI 组件
23
+ - 自定义能力
24
+
25
+ ## 关键特性
26
+ - 📝 所见即所得 Markdown
27
+ - 🎨 可主题化
28
+ - 🎮 可扩展
29
+ - ⚡ Slash 与 Tooltip
30
+ - 🧮 LaTeX 数学公式
31
+ - 📊 表格
32
+ - 🍻 协作(yjs)
33
+ - 💾 剪贴板
34
+ - 👍 Emoji
35
+
36
+ ## 技术栈
37
+ - Prosemirror
38
+ - Remark
39
+ - TypeScript
40
+
41
+ ## 创建你的第一个编辑器
42
+ Milkdown 提供两种方式:
43
+
44
+ ### 🍼 使用 @milkdown/kit(从零构建)
45
+ 适合需要完全控制、自由组合功能的场景。
46
+
47
+ ### 🥞 使用 @milkdown/crepe(开箱即用)
48
+ 适合快速落地、开箱即用的生产环境。
49
+
50
+ ## 下一步
51
+ 🍼 有趣的事实:这个文档也是由 Milkdown 渲染的!`:`# Getting Started with Milkdown
52
+
53
+ Milkdown is a powerful WYSIWYG markdown editor that combines the simplicity of markdown with the flexibility of a modern editor. It's designed to be lightweight yet extensible, making it perfect for both simple and complex editing needs.
54
+
55
+ ## Quick Start
56
+ The fastest way to get started is using @milkdown/crepe.
57
+
58
+ ## Core Concepts
59
+ Milkdown consists of two main parts:
60
+ 1. Core Package (@milkdown/core)
61
+ - Plugin loader
62
+ - Internal plugins
63
+ 2. Additional Plugins
64
+ - Syntax support
65
+ - Commands
66
+ - UI components
67
+ - Custom features
68
+
69
+ ## Key Features
70
+ - 📝 WYSIWYG Markdown
71
+ - 🎨 Themable
72
+ - 🎮 Hackable
73
+ - ⚡ Slash & Tooltip
74
+ - 🧮 Math (LaTeX)
75
+ - 📊 Table
76
+ - 🍻 Collaborate (yjs)
77
+ - 💾 Clipboard
78
+ - 👍 Emoji
79
+
80
+ ## Tech Stack
81
+ - Prosemirror
82
+ - Remark
83
+ - TypeScript
84
+
85
+ ## Creating Your First Editor
86
+ Milkdown provides two distinct approaches to create an editor:
87
+
88
+ ### 🍼 Using @milkdown/kit (Build from Scratch)
89
+ Use this if you want full control and a custom editor from the ground up.
90
+
91
+ ### 🥞 Using @milkdown/crepe (Ready to Use)
92
+ Use this if you want a production-ready editor with minimal setup.
93
+
94
+ ## Next Steps
95
+ 🍼 Fun fact: This documentation is rendered by Milkdown itself!`,ni=()=>{const{closeDialog:i}=ft(),{t:s,language:n}=Ye(),[r,a]=t.useState({loaded:!1,api:Promise.resolve({parseMarkdownToDrawnix:(f,N)=>null})});t.useEffect(()=>{(async()=>{try{const N=await Vt(()=>import("./index-BkvYpt-1.js"),__vite__mapDeps([0]),import.meta.url);a({loaded:!0,api:Promise.resolve(N)})}catch(N){console.error("Failed to load mermaid library:",N),S(new Error(s("dialog.error.loadMermaid")))}})()},[]);const[o,b]=t.useState(()=>os(n)),[w,D]=t.useState(()=>[]),d=t.useDeferredValue(o.trim()),[p,S]=t.useState(null),V=qt();t.useEffect(()=>{b(os(n))},[n]),t.useEffect(()=>{(async()=>{try{const N=await r.api;let u;try{u=await N.parseMarkdownToDrawnix(d)}catch{u=await N.parseMarkdownToDrawnix(d.replace(/"/g,"'"))}const C=u;C.points=[[0,0]],C&&(D([C]),S(null))}catch(N){S(N)}})()},[d,r]);const h=()=>{if(!w.length)return;let f;const N=ps(V);if(N)f=N;else{const C=fs.getBoardContainer(V).getBoundingClientRect(),_=[C.width/4,C.height/2-20],E=V.viewport.zoom,B=gs(V),l=B[0]+_[0]/E,U=B[1]+_[1]/E;f=[l,U]}const u=w;V.insertFragment({elements:JSON.parse(JSON.stringify(u))},f,hs.paste),f&&requestAnimationFrame(()=>{bs(V,f)}),i(ge.markdownToDrawnix)};return e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ttd-dialog-desc",children:s("dialog.markdown.description")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/markdown-to-drawnix.tsx",lineNumber:238,columnNumber:7},void 0),e.jsxDEV(Vs,{children:[e.jsxDEV(pt,{label:s("dialog.markdown.syntax"),children:e.jsxDEV(Us,{input:o,placeholder:s("dialog.markdown.placeholder"),onChange:f=>b(f.target.value),onKeyboardSubmit:()=>{h()}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/markdown-to-drawnix.tsx",lineNumber:243,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/markdown-to-drawnix.tsx",lineNumber:242,columnNumber:9},void 0),e.jsxDEV(pt,{label:s("dialog.markdown.preview"),panelAction:{action:()=>{h()},label:s("dialog.markdown.insert")},renderSubmitShortcut:()=>e.jsxDEV(_s,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/markdown-to-drawnix.tsx",lineNumber:260,columnNumber:39},void 0),children:e.jsxDEV(qs,{value:w,loaded:r.loaded,error:p},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/markdown-to-drawnix.tsx",lineNumber:262,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/markdown-to-drawnix.tsx",lineNumber:252,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/markdown-to-drawnix.tsx",lineNumber:241,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/markdown-to-drawnix.tsx",lineNumber:237,columnNumber:5},void 0)};function Cs(){const{completedTasks:i}=_t(),s=t.useMemo(()=>i.filter(a=>{var o;return a.type===Ne.IMAGE&&((o=a.result)==null?void 0:o.url)}).map(a=>({id:a.id,type:"image",prompt:a.params.prompt,timestamp:a.completedAt||a.createdAt,imageUrl:a.result.url,width:a.result.width||1024,height:a.result.height||1024,uploadedImages:a.params.uploadedImages})).sort((a,o)=>o.timestamp-a.timestamp),[i]),n=t.useMemo(()=>i.filter(a=>{var o;return a.type===Ne.VIDEO&&((o=a.result)==null?void 0:o.url)}).map(a=>({id:a.id,type:"video",prompt:a.params.prompt,timestamp:a.completedAt||a.createdAt,imageUrl:a.result.thumbnailUrl||a.result.url,width:a.result.width||400,height:a.result.height||225,previewUrl:a.result.url,downloadUrl:a.result.url,uploadedImage:a.params.uploadedImage})).sort((a,o)=>o.timestamp-a.timestamp),[i]),r=t.useMemo(()=>[...s,...n].sort((a,o)=>o.timestamp-a.timestamp),[s,n]);return{imageHistory:s,videoHistory:n,allHistory:r}}const oi=[1,2,3,4,5,10,20,50,100],ri="aitu_image_generation_quantity",di="aitu_video_generation_quantity",Et=100,Ts=({language:i,type:s,isGenerating:n,hasGenerated:r,canGenerate:a,onGenerate:o,onReset:b,leftContent:w})=>{const D=s==="video"?di:ri,[d,p]=t.useState(()=>{try{const l=localStorage.getItem(D);if(l){const U=parseInt(l,10);if(!isNaN(U)&&U>=1&&U<=Et)return U}}catch{}return 1}),[S,V]=t.useState(!1),[h,f]=t.useState(()=>d.toString()),N=t.useRef(null);t.useEffect(()=>{f(d.toString());try{localStorage.setItem(D,d.toString())}catch{}},[d,D]),t.useEffect(()=>{const l=U=>{N.current&&!N.current.contains(U.target)&&(V(!1),u())};return document.addEventListener("mousedown",l),()=>document.removeEventListener("mousedown",l)},[h]);const u=()=>{let l=parseInt(h,10);(isNaN(l)||l<1)&&(l=1),l>Et&&(l=Et),f(l.toString()),p(l)},C=l=>{const U=l.target.value;(U===""||/^\d*$/.test(U))&&f(U)},_=l=>{p(l),f(l.toString()),V(!1)},E=()=>{n||V(!S)},B=()=>{o(d)};return e.jsxDEV("div",{className:"section-actions unified-action-bar",children:[w&&e.jsxDEV("div",{className:"action-bar-left",children:w},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:115,columnNumber:23},void 0),e.jsxDEV("div",{className:`unified-action-box ${n?"is-generating":""} ${a?"can-generate":""}`,children:[e.jsxDEV("div",{className:"quantity-section",ref:N,children:[e.jsxDEV(Le,{content:i==="zh"?"生成数量":"Quantity",theme:"light",children:e.jsxDEV("div",{className:`quantity-control ${S?"is-open":""} ${n?"is-disabled":""}`,children:[e.jsxDEV("input",{type:"text",inputMode:"numeric",value:h,onChange:C,onBlur:u,"data-track":"ai_click_quantity_input",onClick:()=>!n&&V(!0),disabled:n,className:"quantity-input"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:134,columnNumber:15},void 0),e.jsxDEV("button",{type:"button","data-track":"ai_click_quantity_toggle",onClick:l=>{l.stopPropagation(),E()},disabled:n,className:"quantity-toggle",children:e.jsxDEV(xs,{className:`quantity-icon ${S?"is-open":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:155,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:145,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:129,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:125,columnNumber:11},void 0),S&&e.jsxDEV("div",{className:"quantity-dropdown",children:[e.jsxDEV("div",{className:"quantity-dropdown-header",children:i==="zh"?"选择数量":"Select Quantity"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:165,columnNumber:15},void 0),oi.map(l=>e.jsxDEV("button",{type:"button","data-track":"ai_click_quantity_select",onClick:()=>_(l),className:`quantity-option ${d===l?"is-selected":""}`,children:[e.jsxDEV("span",{children:[l," ",s==="video"?i==="zh"?"个":l>1?"videos":"video":i==="zh"?"张":l>1?"images":"image"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:178,columnNumber:19},void 0),d===l&&e.jsxDEV("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsxDEV("polyline",{points:"20 6 9 17 4 12"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:201,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:193,columnNumber:21},void 0)]},l,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:169,columnNumber:17},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:164,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:124,columnNumber:9},void 0),e.jsxDEV("div",{className:"action-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:211,columnNumber:9},void 0),e.jsxDEV("button",{"data-track":"ai_click_generate",onClick:B,disabled:n||!a,className:`generate-button ${n?"loading":""}`,children:n?i==="zh"?"生成中...":"Generating...":r?i==="zh"?"重新生成":"Regenerate":s==="video"?i==="zh"?"生成视频":"Generate Video":i==="zh"?"生成":"Generate"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:214,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:118,columnNumber:7},void 0),e.jsxDEV(Le,{content:i==="zh"?"重置表单":"Reset form",theme:"light",children:e.jsxDEV(ut,{"data-track":"ai_click_reset",onClick:b,disabled:n,variant:"text",shape:"circle",icon:e.jsxDEV(ta,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:249,columnNumber:17},void 0),className:"action-button--reset-subtle"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:243,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:239,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:113,columnNumber:5},void 0)},Ps=({error:i})=>i?e.jsxDEV("div",{className:"form-error",children:i},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ErrorDisplay.tsx",lineNumber:11,columnNumber:5},void 0):null,Ms=({visible:i,query:s,position:n,showBelow:r=!1,selectedIndex:a,onSelect:o,onClose:b})=>{const{completedCharacters:w,isLoading:D}=Ss(),d=t.useRef(null),p=t.useMemo(()=>{if(!s)return w;const h=s.toLowerCase();return w.filter(f=>f.username.toLowerCase().includes(h))},[w,s]);t.useEffect(()=>{if(!i||!d.current)return;const h=d.current.querySelector(".character-mention-popup__item--selected");h&&h.scrollIntoView({block:"nearest"})},[i,a]),t.useEffect(()=>{if(!i)return;const h=f=>{d.current&&!d.current.contains(f.target)&&b()};return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[i,b]);const S=t.useCallback(h=>{sa.track("character_used_in_prompt",{characterId:h.id,username:h.username}),o(h)},[o]);if(!i)return null;const V={position:"fixed",top:n.top,left:n.left,transform:r?"none":"translateY(-100%)",zIndex:Ns.DROPDOWN_PORTAL,maxHeight:"200px",overflowY:"auto"};return D?e.jsxDEV("div",{ref:d,className:"character-mention-popup",style:V,children:e.jsxDEV("div",{className:"character-mention-popup__empty",children:"加载中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:115,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:110,columnNumber:7},void 0):p.length===0?e.jsxDEV("div",{ref:d,className:"character-mention-popup",style:V,children:e.jsxDEV("div",{className:"character-mention-popup__empty",children:s?`未找到 "${s}" 相关角色`:"暂无可用角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:127,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:122,columnNumber:7},void 0):e.jsxDEV("div",{ref:d,className:"character-mention-popup",style:V,children:p.map((h,f)=>e.jsxDEV("div",{className:`character-mention-popup__item ${f===a?"character-mention-popup__item--selected":""}`,onClick:()=>S(h),"data-track":"character_click_mention",children:[e.jsxDEV("div",{className:"character-mention-popup__item-avatar",children:e.jsxDEV(Za,{characterId:h.id,profilePictureUrl:h.profilePictureUrl,alt:h.username},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:148,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:147,columnNumber:11},void 0),e.jsxDEV("span",{className:"character-mention-popup__item-name",children:["@",h.username]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:154,columnNumber:11},void 0)]},h.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:141,columnNumber:9},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:135,columnNumber:5},void 0)},li={visible:!1,query:"",position:{top:0,left:0},showBelow:!1,startIndex:-1,selectedIndex:0};function Rs({enabled:i=!0,onPromptChange:s,prompt:n}){const[r,a]=t.useState(li),o=t.useRef(null),{completedCharacters:b}=Ss(),w=t.useCallback(h=>{if(!o.current)return{top:0,left:0,showBelow:!1};const f=o.current,N=f.getBoundingClientRect(),u=document.createElement("div"),C=window.getComputedStyle(f),_=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","lineHeight","textTransform","wordSpacing","whiteSpace","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing"];u.style.position="absolute",u.style.top="0",u.style.left="-9999px",u.style.visibility="hidden",u.style.whiteSpace="pre-wrap",u.style.overflowWrap="break-word",u.style.overflow="hidden",u.style.width=`${f.clientWidth}px`,_.forEach(F=>{u.style[F]=C.getPropertyValue(F.replace(/([A-Z])/g,"-$1").toLowerCase())}),document.body.appendChild(u);let E=0,B=0;try{const F=f.value.substring(0,h),he=document.createTextNode(F),J=document.createElement("span");J.textContent="​",u.appendChild(he),u.appendChild(J);const we=J.getBoundingClientRect(),P=u.getBoundingClientRect();E=we.top-P.top,B=we.left-P.left}finally{document.body.removeChild(u)}const l=f.scrollTop,U=parseInt(C.lineHeight)||20;let T=N.top+E-l,z=N.left+B;const M=240,X=window.innerWidth;z+M>X-16&&(z=X-M-16),z<16&&(z=16);const de=T<220+16;return de?T=T+U+4:T=T-48,{top:T,left:z,showBelow:de}},[]),D=t.useCallback((h,f)=>{if(!i)return;const N=h.substring(0,f),u=N.lastIndexOf("@");if(u===-1){a(B=>({...B,visible:!1}));return}const C=u>0?h[u-1]:" ";if(!/\s/.test(C)&&u!==0){a(B=>({...B,visible:!1}));return}const _=N.substring(u+1);if(_.includes(" ")){a(B=>({...B,visible:!1}));return}const E=w(f);a({visible:!0,query:_,position:{top:E.top,left:E.left},showBelow:E.showBelow,startIndex:u,selectedIndex:0})},[i,w]),d=t.useCallback(h=>{var _;if(r.startIndex===-1)return;const f=n.substring(0,r.startIndex),N=((_=o.current)==null?void 0:_.selectionStart)||n.length,u=n.substring(N),C=`${f}@${h.username} ${u}`;s(C),a(E=>({...E,visible:!1})),setTimeout(()=>{if(o.current){const E=f.length+h.username.length+2;o.current.focus(),o.current.setSelectionRange(E,E)}},0)},[r.startIndex,n,s]),p=t.useCallback(h=>{if(!r.visible)return;const f=r.query?b.filter(N=>N.username.toLowerCase().includes(r.query.toLowerCase())):b;switch(h.key){case"ArrowDown":h.preventDefault(),a(N=>({...N,selectedIndex:Math.min(N.selectedIndex+1,f.length-1)}));break;case"ArrowUp":h.preventDefault(),a(N=>({...N,selectedIndex:Math.max(N.selectedIndex-1,0)}));break;case"Enter":case"Tab":f.length>0&&(h.preventDefault(),d(f[r.selectedIndex]));break;case"Escape":h.preventDefault(),a(N=>({...N,visible:!1}));break}},[r,b,d]),S=t.useCallback((h,f)=>{s(h),D(h,f)},[s,D]),V=t.useCallback(()=>{a(h=>({...h,visible:!1}))},[]);return{mentionState:r,setMentionState:a,textareaRef:o,completedCharacters:b,handleTextChange:S,handleKeyDown:p,handleCharacterSelect:d,closeMentionPopup:V,calculateMentionPosition:w}}const As=({prompt:i,onPromptChange:s,presetPrompts:n,language:r,type:a,disabled:o=!1,onError:b,enableMention:w=!0,videoProvider:D})=>{const[d,p]=t.useState(!1),[S,V]=t.useState(!1),h=t.useRef(null),f=t.useRef(null),[N,u]=t.useState(null),[C,_]=t.useState(0),E=t.useMemo(()=>et.sortPrompts(a,n).map((I,Q)=>({id:`preset-${Q}-${I.slice(0,20)}`,content:I,pinned:et.isPinned(a,I)})),[a,n,C]),B=w&&a==="video"&&D==="sora",{mentionState:l,textareaRef:U,handleTextChange:T,handleKeyDown:z,handleCharacterSelect:M,closeMentionPopup:X}=Rs({enabled:B,onPromptChange:s,prompt:i}),W=t.useCallback(()=>{if(f.current&&d){const A=f.current.getBoundingClientRect(),I=8,Q=320,ie=400,je=window.innerHeight-A.top+4,ne=Math.min(Q,window.innerWidth-I*2),ae=window.innerWidth-A.right,be=window.innerWidth-ne-I,De=Math.max(Math.min(ae,be),I),re=Math.min(ie,A.top-I,window.innerHeight*.45);u({bottom:je,right:De,maxHeight:re})}},[d]);t.useEffect(()=>{if(d)return W(),window.addEventListener("scroll",W,!0),window.addEventListener("resize",W),()=>{window.removeEventListener("scroll",W,!0),window.removeEventListener("resize",W)}},[d,W]),t.useEffect(()=>{const A=I=>{const Q=I.target;if(h.current&&!h.current.contains(Q)){const ie=document.querySelector(".preset-prompt-panel-portal");ie!=null&&ie.contains(Q)||p(!1)}};if(d)return document.addEventListener("mousedown",A),()=>document.removeEventListener("mousedown",A)},[d]);const de=t.useCallback(A=>{const I=typeof A=="string"?A:A.content;s(I),b==null||b(null),p(!1)},[s,b]),F=t.useCallback(A=>{const I=E.find(Q=>Q.id===A);I&&(I.pinned?et.unpinPrompt(a,I.content):et.pinPrompt(a,I.content),_(Q=>Q+1))},[a,E]),he=t.useCallback(A=>{const I=E.find(Q=>Q.id===A);I&&(et.deletePrompt(a,I.content),_(Q=>Q+1))},[a,E]),J=t.useCallback(A=>{const I=A.target.value,Q=A.target.selectionStart||0;T(I,Q),b==null||b(null)},[T,b]);t.useEffect(()=>{a!=="video"&&X()},[a,X]);const we=t.useCallback(()=>{if(console.info("[PromptOptimize] handleOpenOptimizeDialog",{type:a,language:r,promptLength:i.trim().length,disabled:o}),!i.trim()){_e.warning(r==="zh"?"请先输入提示词":"Please enter a prompt first");return}V(!0)},[o,r,i,a]),P=()=>{if(!d||!N)return null;const A=r==="zh"?`${a==="image"?"图片":"视频"}描述预设`:`${a==="image"?"Image":"Video"} Description Presets`,I=e.jsxDEV("div",{className:"preset-prompt-panel-portal",style:{position:"fixed",bottom:N.bottom,right:N.right,zIndex:Ns.DIALOG_POPOVER,"--panel-max-width":"calc(100vw - 16px)","--panel-max-height":`${N.maxHeight}px`},children:e.jsxDEV(na,{title:A,items:E,onSelect:de,onTogglePin:F,onDelete:he,language:r,disabled:o,showCount:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:216,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:204,columnNumber:7},void 0);return oa.createPortal(I,document.body)};return e.jsxDEV("div",{className:"form-field form-field--prompt",children:[e.jsxDEV("div",{className:"form-label-with-icon",children:[e.jsxDEV("label",{className:"form-label",children:r==="zh"?`${a==="image"?"图片":"视频"}描述`:`${a==="image"?"Image":"Video"} Description`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:235,columnNumber:7},void 0),e.jsxDEV("div",{className:"textarea-with-preset",children:e.jsxDEV("div",{className:"preset-tooltip-container",ref:h,children:[e.jsxDEV("button",{ref:f,type:"button",className:"preset-icon-button",disabled:o,onClick:()=>p(!d),children:e.jsxDEV(aa,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:247,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:240,columnNumber:11},void 0),P()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:239,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:238,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:234,columnNumber:7},void 0),e.jsxDEV("div",{className:"prompt-textarea-wrapper",children:[e.jsxDEV("textarea",{ref:U,className:"form-textarea",value:i,onChange:J,onKeyDown:z,placeholder:Fa(r,a,D),rows:4,disabled:o},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:254,columnNumber:9},void 0),e.jsxDEV("button",{type:"button",className:"prompt-optimize-button",onClick:we,disabled:o,"aria-label":r==="zh"?"优化提示词":"Optimize prompt",title:r==="zh"?"优化提示词":"Optimize prompt",children:e.jsxDEV(ia,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:272,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:264,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:253,columnNumber:7},void 0),B&&e.jsxDEV(Ms,{visible:l.visible,query:l.query,position:l.position,showBelow:l.showBelow,selectedIndex:l.selectedIndex,onSelect:M,onClose:X},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:278,columnNumber:9},void 0),e.jsxDEV(Ba,{open:S,onOpenChange:V,originalPrompt:i,language:r,type:a,allowStructuredMode:!0,onApply:A=>{s(A),b==null||b(null)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:289,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:233,columnNumber:5},void 0)};function ci(i){return i.map(s=>s.prompt.trim()).filter(s=>s.length>0).filter((s,n,r)=>r.indexOf(s)===n)}const Os=(i,s,n)=>{const r=i==="image"?Ga(s):Wa(s),a=ci(n);return[...[...i==="video"?ra():da(),...a].filter((D,d,p)=>p.indexOf(D)===d).slice(0,la),...r].filter((D,d,p)=>p.indexOf(D)===d).slice(0,ca)},zs=(i,s,n)=>{!s||!s.trim()||(i==="video"?ua(s.trim()):ma(s.trim()))},ui=({model:i,configOverride:s,duration:n,size:r,onDurationChange:a,onSizeChange:o,disabled:b=!1})=>{const w=s||pa(i),D=w.durationOptions,d=w.sizeOptions,p=D.some(u=>u.value===n),S=d.some(u=>u.value===r),V=p?n:w.defaultDuration,h=S?r:w.defaultSize,f=D.map(u=>({label:u.label,value:u.value})),N=d.map(u=>({label:u.label,value:u.value}));return e.jsxDEV("div",{className:"video-model-options",children:[e.jsxDEV("div",{className:"video-model-options__row",children:[e.jsxDEV("label",{className:"video-model-options__label",children:"时长"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:56,columnNumber:9},void 0),e.jsxDEV("div",{className:"video-model-options__control",children:D.length===1?e.jsxDEV("span",{className:"video-model-options__fixed-value",children:D[0].label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:60,columnNumber:13},void 0):e.jsxDEV(dt.Group,{value:V,onChange:u=>{const C=u;C!==V&&a(C)},disabled:b,variant:"default-filled",size:"small",children:f.map(u=>e.jsxDEV(dt.Button,{value:u.value,children:u.label},u.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:78,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:65,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:57,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:55,columnNumber:7},void 0),e.jsxDEV("div",{className:"video-model-options__row",children:[e.jsxDEV("label",{className:"video-model-options__label",children:"尺寸"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:89,columnNumber:9},void 0),e.jsxDEV("div",{className:"video-model-options__control",children:d.length===1?e.jsxDEV("span",{className:"video-model-options__fixed-value",children:d[0].label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:92,columnNumber:13},void 0):e.jsxDEV(dt.Group,{value:h,onChange:u=>{const C=u;C!==h&&o(C)},disabled:b,variant:"default-filled",size:"small",children:N.map(u=>e.jsxDEV(dt.Button,{value:u.value,children:u.label},u.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:109,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:96,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:90,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:88,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:53,columnNumber:5},void 0)},mi=({value:i,onChange:s,compact:n=!0,options:r})=>{const{language:a}=Ye(),[o,b]=t.useState(!1),w=t.useRef(null),D=r&&r.length>0?r:ct,d=t.useMemo(()=>i==="auto"?fa:ga(i),[i]);t.useEffect(()=>{const S=V=>{w.current&&!w.current.contains(V.target)&&b(!1)};return o&&document.addEventListener("mousedown",S),()=>{document.removeEventListener("mousedown",S)}},[o]);const p=S=>{s(S.value),b(!1)};return n?e.jsxDEV("div",{className:"aspect-ratio-selector aspect-ratio-selector--compact",ref:w,children:[e.jsxDEV(Le,{content:a==="zh"?"选择图片比例":"Select aspect ratio",theme:"light",children:e.jsxDEV("div",{className:`aspect-ratio-selector__trigger ${o?"aspect-ratio-selector__trigger--open":""}`,"data-track":"ai_click_ratio_toggle",onClick:()=>b(!o),children:[e.jsxDEV("span",{className:"aspect-ratio-selector__trigger-value",children:(d==null?void 0:d.label)||i},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:82,columnNumber:13},void 0),e.jsxDEV(xs,{className:`aspect-ratio-selector__trigger-icon ${o?"aspect-ratio-selector__trigger-icon--open":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:85,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:75,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:71,columnNumber:9},void 0),o&&e.jsxDEV("div",{className:"aspect-ratio-selector__dropdown",children:e.jsxDEV("div",{className:"aspect-ratio-selector__dropdown-grid",children:D.map(S=>e.jsxDEV(Le,{content:S.description,theme:"light",placement:"top",showArrow:!1,children:e.jsxDEV("div",{className:`aspect-ratio-selector__dropdown-item ${i===S.value?"aspect-ratio-selector__dropdown-item--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>p(S),children:S.label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:104,columnNumber:19},void 0)},S.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:97,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:95,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:94,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:67,columnNumber:7},void 0):e.jsxDEV("div",{className:"aspect-ratio-selector",children:[e.jsxDEV("div",{className:"aspect-ratio-selector__label",children:a==="zh"?"图片比例":"Aspect Ratio"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:127,columnNumber:7},void 0),e.jsxDEV("div",{className:"aspect-ratio-selector__options",children:D.map(S=>e.jsxDEV(Le,{content:S.description,theme:"light",placement:"top",showArrow:!1,children:e.jsxDEV("div",{className:`aspect-ratio-selector__option ${i===S.value?"aspect-ratio-selector__option--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>s(S.value),children:e.jsxDEV("span",{className:"aspect-ratio-selector__option-ratio",children:S.label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:149,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:140,columnNumber:13},void 0)},S.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:133,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:131,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:126,columnNumber:5},void 0)};function Ls(){return ha("scene")}function rs(i,s){return{id:Ls(),order:i,duration:s,prompt:""}}function pi(i,s,n=1){if(i.length===0)return{valid:!1,error:"至少需要一个场景"};for(const a of i){if(a.duration<n)return{valid:!1,error:`场景 ${a.order} 时长不能少于 ${n} 秒`};if(a.duration>s)return{valid:!1,error:`场景 ${a.order} 时长不能超过 ${s} 秒`}}const r=i.find(a=>!a.prompt.trim());return r?{valid:!1,error:`场景 ${r.order} 需要填写提示词`}:{valid:!0}}function fi(i){return i.sort((s,n)=>s.order-n.order).map((s,n)=>`Shot ${n+1}:
96
+ duration: ${s.duration}sec
97
+ Scene: ${s.prompt.trim()}`).join(`
98
+
99
+ `)}function gi(i){const s=/Shot\s+(\d+):\s*\n\s*duration:\s*([\d.]+)\s*sec\s*\n\s*Scene:\s*([^\n]+(?:\n(?!Shot\s+\d+:)[^\n]*)*)/gi,n=[];let r;for(;(r=s.exec(i))!==null;){const a=parseInt(r[1],10),o=parseFloat(r[2]),b=r[3].trim();n.push({id:Ls(),order:a,duration:o,prompt:b})}return n.length===0?null:n.sort((a,o)=>a.order-o.order)}const hi=({value:i,onChange:s,placeholder:n,disabled:r=!1,autoFocus:a=!1,enableMention:o=!0})=>{const{mentionState:b,textareaRef:w,handleTextChange:D,handleKeyDown:d,handleCharacterSelect:p,closeMentionPopup:S}=Rs({enabled:o,onPromptChange:s,prompt:i}),V=t.useCallback(h=>{const f=h.target.value,N=h.target.selectionStart||0;D(f,N)},[D]);return t.useEffect(()=>{a&&w.current&&w.current.focus()},[a,w]),e.jsxDEV("div",{className:"scene-prompt-input",children:[e.jsxDEV("textarea",{ref:w,className:"scene-prompt-input__textarea",value:i,onChange:V,onKeyDown:d,placeholder:n,disabled:r,rows:3},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ScenePromptInput.tsx",lineNumber:59,columnNumber:7},void 0),o&&e.jsxDEV(Ms,{visible:b.visible,query:b.query,position:b.position,showBelow:b.showBelow,selectedIndex:b.selectedIndex,onSelect:p,onClose:S},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ScenePromptInput.tsx",lineNumber:72,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ScenePromptInput.tsx",lineNumber:58,columnNumber:5},void 0)},bi=({enabled:i,onEnabledChange:s,totalDuration:n,maxScenes:r,minSceneDuration:a,scenes:o,onScenesChange:b,disabled:w=!1})=>{const[D,d]=t.useState(null),p=t.useRef(null),S=o.map(l=>l.id).join("|");t.useEffect(()=>{if(!i||o.length===0)return;!(D?o.some(U=>U.id===D):!1)&&D!==o[0].id&&d(o[0].id)},[i,S,o,D]);const V=t.useCallback(()=>{if(o.length>=r)return;const l=o.reduce((M,X)=>M+X.duration,0),U=n-l;let T=Math.max(a,U/2);T=parseFloat(T.toFixed(1)),T<a&&(T=a);const z=rs(o.length+1,T);b([...o,z]),d(z.id),setTimeout(()=>{var M;(M=p.current)==null||M.scrollIntoView({behavior:"smooth"})},100)},[o,r,n,a,b]),h=t.useCallback(l=>{var z;if(o.length<=1)return;const T=o.filter(M=>M.id!==l).map((M,X)=>({...M,order:X+1}));b(T),D===l&&d(((z=T[0])==null?void 0:z.id)||null)},[o,b,D]),f=t.useCallback(l=>{const U=o.filter(T=>T.id!==l).reduce((T,z)=>T+z.duration,0);return Math.max(a,n-U)},[o,n,a]),N=t.useCallback(l=>{const U=f(l),T=[],z=.1;for(let M=a;M<=U+.001;M+=z){const X=parseFloat(M.toFixed(1));X<=U&&T.push({label:`${X}`,value:X})}return T},[a,f]),u=t.useCallback((l,U)=>{const T=typeof U=="string"?parseFloat(U):U;if(isNaN(T))return;const z=f(l),M=o.map(X=>{if(X.id===l){const W=Math.max(a,Math.min(T,z)),de=parseFloat(W.toFixed(1));return de===X.duration?X:{...X,duration:de}}return X});M.every((X,W)=>X===o[W])||b(M)},[o,a,f,b]),C=t.useCallback((l,U)=>{const T=o.find(M=>M.id===l);if((T==null?void 0:T.prompt)===U)return;const z=o.map(M=>M.id===l?{...M,prompt:U}:M);b(z)},[o,b]),_=t.useCallback(l=>{if(s(l),l&&o.length===0){const U=rs(1,n);b([U]),d(U.id)}},[o,n,s,b]),E=t.useCallback(l=>{d(l)},[]),B=o.length<r;return e.jsxDEV("div",{className:"storyboard-editor",children:[e.jsxDEV("div",{className:"storyboard-editor__header",children:[e.jsxDEV("div",{className:"storyboard-editor__toggle",children:[e.jsxDEV(ba,{value:i,onChange:_,disabled:w,size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:229,columnNumber:11},void 0),e.jsxDEV("div",{className:"storyboard-editor__title",children:[e.jsxDEV("span",{className:"storyboard-editor__title-text",children:"故事场景模式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:236,columnNumber:13},void 0),e.jsxDEV("span",{className:"storyboard-editor__title-desc",children:"定义多个场景及其时长"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:237,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:235,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:228,columnNumber:9},void 0),i&&e.jsxDEV("span",{className:"storyboard-editor__new-badge",children:"NEW"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:243,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:227,columnNumber:7},void 0),i&&e.jsxDEV("div",{className:"storyboard-editor__content",children:[e.jsxDEV("div",{className:"storyboard-editor__section-header",children:[e.jsxDEV("span",{className:"storyboard-editor__section-title",children:"场景列表"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:252,columnNumber:13},void 0),e.jsxDEV("span",{className:"storyboard-editor__section-hint",children:["共 ",o.length," 个场景,已用 ",o.reduce((l,U)=>l+U.duration,0).toFixed(1)," 秒 / 总时长 ",n," 秒"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:253,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:251,columnNumber:11},void 0),e.jsxDEV("div",{className:"storyboard-editor__scenes",children:[o.map((l,U)=>{const T=D===l.id,z=U===o.length-1;return e.jsxDEV("div",{className:`storyboard-editor__scene-wrapper ${T?"is-selected":""}`,children:[e.jsxDEV("div",{className:`storyboard-editor__timeline-line ${z?"is-last":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:270,columnNumber:19},void 0),e.jsxDEV("div",{className:`storyboard-editor__timeline-node ${T?"is-selected":""}`,children:T?U+1:""},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:273,columnNumber:19},void 0),!T&&e.jsxDEV("div",{className:"storyboard-editor__scene storyboard-editor__scene--compact",onClick:()=>E(l.id),children:[e.jsxDEV("span",{className:"storyboard-editor__scene-index",children:U+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:283,columnNumber:23},void 0),e.jsxDEV("div",{className:"storyboard-editor__scene-preview",children:e.jsxDEV("p",{className:"storyboard-editor__scene-preview-text",children:l.prompt||"暂无场景描述..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:285,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:284,columnNumber:23},void 0),e.jsxDEV("div",{className:"storyboard-editor__scene-duration-badge",children:[e.jsxDEV($t,{size:"12px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:290,columnNumber:25},void 0),e.jsxDEV("span",{children:[l.duration,"s"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:291,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:289,columnNumber:23},void 0),e.jsxDEV(vs,{className:"storyboard-editor__scene-arrow",size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:293,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:279,columnNumber:21},void 0),T&&e.jsxDEV("div",{className:"storyboard-editor__scene storyboard-editor__scene--expanded",children:[e.jsxDEV("div",{className:"storyboard-editor__scene-header",children:[e.jsxDEV("div",{className:"storyboard-editor__scene-info",children:e.jsxDEV("span",{className:"storyboard-editor__scene-label",children:[e.jsxDEV("span",{className:"storyboard-editor__active-indicator"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:303,columnNumber:29},void 0),"场景 ",U+1]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:302,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:301,columnNumber:25},void 0),e.jsxDEV("div",{className:"storyboard-editor__scene-controls",children:[e.jsxDEV($t,{className:"storyboard-editor__time-icon"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:308,columnNumber:27},void 0),e.jsxDEV(xa,{value:parseFloat(l.duration.toFixed(1)),onChange:M=>u(l.id,M),disabled:w,className:"storyboard-editor__duration-select",size:"small",options:N(l.id),filterable:!0,creatable:!0,popupProps:{overlayClassName:"storyboard-editor__duration-popup"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:309,columnNumber:27},void 0),o.length>1&&e.jsxDEV(ut,{theme:"default",variant:"text",size:"small",icon:e.jsxDEV(ws,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:325,columnNumber:37},void 0),onClick:M=>{M.stopPropagation(),h(l.id)},disabled:w,className:"storyboard-editor__scene-delete"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:321,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:307,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:300,columnNumber:23},void 0),e.jsxDEV("div",{className:"storyboard-editor__scene-prompt",children:e.jsxDEV(hi,{value:l.prompt,onChange:M=>C(l.id,M),placeholder:`描述场景 ${U+1} 的内容,输入 @ 可引用角色`,disabled:w,autoFocus:!0,enableMention:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:337,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:336,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:299,columnNumber:21},void 0)]},l.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:265,columnNumber:17},void 0)}),e.jsxDEV("div",{ref:p},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:351,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:259,columnNumber:11},void 0),B&&e.jsxDEV(ut,{theme:"default",variant:"dashed",size:"medium",icon:e.jsxDEV(Na,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:360,columnNumber:21},void 0),onClick:V,disabled:w,className:"storyboard-editor__add-btn",block:!0,children:"添加场景"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:356,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:249,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:225,columnNumber:5},void 0)},$s="aitu-dialog-task-list-width-",Ct=240,Tt=800,xi=()=>{const i=Math.round(660);return Math.max(Ct,Math.min(Tt,i))},Fs=i=>{try{const s=localStorage.getItem($s+i);if(s){const n=parseInt(s,10);if(!isNaN(n)&&n>=Ct&&n<=Tt)return n}}catch{}return xi()},ds=(i,s)=>{try{localStorage.setItem($s+i,s.toString())}catch{}},Bs=({isRightPanelVisible:i,onToggleRightPanel:s,onWidthChange:n,rightPanelWidth:r,minWidth:a=Ct,maxWidth:o=Tt,onResizeStart:b,onResizeEnd:w,language:D="zh",disabled:d=!1,storageKey:p="image"})=>{const[S,V]=t.useState(!1),h=t.useRef(0),f=t.useRef(0);t.useEffect(()=>(S?(document.body.style.userSelect="none",document.body.style.cursor="col-resize"):(document.body.style.userSelect="",document.body.style.cursor=""),()=>{document.body.style.userSelect="",document.body.style.cursor=""}),[S]);const N=t.useCallback(C=>{if(d||!i)return;C.preventDefault(),C.stopPropagation(),V(!0),h.current=C.clientX,f.current=r,b==null||b();const _=B=>{const l=h.current-B.clientX,U=Math.max(a,Math.min(o,f.current+l));n(U)},E=()=>{V(!1),w==null||w(),f.current+(h.current-document.body.getBoundingClientRect().left),ds(p,r),document.removeEventListener("mousemove",_),document.removeEventListener("mouseup",E)};document.addEventListener("mousemove",_),document.addEventListener("mouseup",E)},[d,i,r,a,o,n,b,w,p]);t.useEffect(()=>{!S&&i&&ds(p,r)},[r,S,i,p]);const u=i?D==="zh"?"隐藏任务列表":"Hide Task List":D==="zh"?"显示任务列表":"Show Task List";return e.jsxDEV("div",{className:`resizable-divider ${S?"is-dragging":""} ${i?"":"is-collapsed"} ${d?"is-disabled":""}`,onMouseDown:N,children:[e.jsxDEV("div",{className:"resizable-divider__bar"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:185,columnNumber:7},void 0),e.jsxDEV(Le,{content:u,placement:"left",children:e.jsxDEV("button",{type:"button",className:"resizable-divider__toggle",onClick:C=>{C.stopPropagation(),s()},"aria-label":u,children:i?e.jsxDEV(vs,{size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:197,columnNumber:13},void 0):e.jsxDEV(va,{size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:199,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:187,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:186,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:179,columnNumber:5},void 0)},Gs=({storageKey:i,language:s})=>{const[n,r]=t.useState(()=>{try{return localStorage.getItem(i)!=="false"}catch{return!0}}),a=t.useCallback(o=>{r(o);try{localStorage.setItem(i,String(o))}catch{}},[i]);return e.jsxDEV(Le,{content:s==="zh"?"生成后自动插入画布":"Auto insert to canvas after generation",theme:"light",children:e.jsxDEV(wa,{checked:n,onChange:a,className:"auto-insert-checkbox"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AutoInsertCheckbox.tsx",lineNumber:43,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AutoInsertCheckbox.tsx",lineNumber:35,columnNumber:5},void 0)};function It(i){try{return localStorage.getItem(i)!=="false"}catch{return!0}}function Ni(i={}){const{taskType:s}=i,{tasks:n,isLoading:r}=Ka(),{retryTask:a,deleteTask:o}=Ha(),b=t.useMemo(()=>[...s?n.filter(p=>p.type===s):n].sort((p,S)=>S.createdAt-p.createdAt),[n,s]),w=t.useCallback(async()=>{},[]),D=t.useCallback(async()=>{if(Ya(),!await Ft.isAvailable())return;const p=await Ft.getAllTasks();p.length>0&&ya.restoreTasks(p)},[]);return{tasks:b,isLoading:r,isLoadingMore:!1,hasMore:!1,totalCount:b.length,loadedCount:b.length,loadMore:w,refresh:D,retryTask:a,deleteTask:o}}const Ws=({taskIds:i,taskType:s,onEditTask:n})=>{const{tasks:r,isLoading:a,isLoadingMore:o,hasMore:b,totalCount:w,loadedCount:D,loadMore:d,retryTask:p,deleteTask:S}=Ni({taskType:s}),{board:V,openDialog:h}=ft(),[f,N]=t.useState(!1),[u,C]=t.useState(null),[_,E]=t.useState(!1),[B,l]=t.useState(0),[U,T]=t.useState("single"),[z,M]=t.useState(""),[X,W]=t.useState(null),[de,F]=t.useState(!1),he=t.useMemo(()=>r.filter(c=>c.status===ze.FAILED).length,[r]),J=t.useCallback(()=>{const c=r.filter(m=>m.status===ze.FAILED);c.forEach(m=>S(m.id)),F(!1),_e.success(`已清除 ${c.length} 个失败任务`)},[r,S]),we=(c,m)=>{var me,R,ke,pe,Ie,le,fe,ue,oe,ve,Se;if(!m.trim())return!0;const q=m.toLowerCase().split(/\s+/).filter(Boolean),j={[ze.PENDING]:"处理中",[ze.PROCESSING]:"处理中",[ze.COMPLETED]:"已完成",[ze.FAILED]:"失败",[ze.CANCELLED]:"已取消"},O=[],$=(me=c.params)!=null&&me.params&&typeof c.params.params=="object"?c.params.params:null;O.push(((R=c.params)==null?void 0:R.prompt)??""),O.push(((ke=c.params)==null?void 0:ke.model)??""),O.push(c.id??""),O.push(j[c.status]??String(c.status)),(pe=c.params)!=null&&pe.batchId&&O.push(String(c.params.batchId)),(Ie=c.params)!=null&&Ie.batchIndex&&O.push(String(c.params.batchIndex)),(le=c.params)!=null&&le.batchTotal&&O.push(String(c.params.batchTotal)),typeof($==null?void 0:$.model_name)=="string"&&O.push($.model_name),typeof($==null?void 0:$.mode)=="string"&&O.push($.mode),typeof($==null?void 0:$.klingAction2)=="string"&&O.push($.klingAction2),(fe=c.result)!=null&&fe.format&&O.push(String(c.result.format)),(ue=c.result)!=null&&ue.width&&((oe=c.result)!=null&&oe.height)?O.push(`${c.result.width}x${c.result.height}`):(ve=c.params)!=null&&ve.width&&((Se=c.params)!=null&&Se.height)&&O.push(`${c.params.width}x${c.params.height}`);const G=O.join(" ").toLowerCase();return q.every(Ue=>G.includes(Ue))},P=t.useMemo(()=>{let c=r;return i&&i.length>0&&(c=c.filter(m=>i.includes(m.id))),z.trim()&&(c=c.filter(m=>we(m,z))),c.sort((m,q)=>q.createdAt-m.createdAt)},[r,i,z]),A=c=>{p(c)},I=c=>{C(c),N(!0)},Q=()=>{u&&S(u),N(!1),C(null)},ie=async c=>{const m=r.find(j=>j.id===c);if(!m)return;const q=Va(m);if(q.length!==0)try{const j=await Ua(q);j.openedCount>0&&j.downloadedCount===0?_e.success(j.openedCount>1?`已打开 ${j.openedCount} 个链接,请在新标签页下载`:"资源不支持直接下载,已打开链接"):_e.success(m.type===Ne.AUDIO?q.length>1?"多条音频已开始下载":"音频下载成功":q.length>1?"多图已开始下载":"下载成功")}catch(j){console.error("Download failed:",j),_e.error("下载失败,请稍后重试")}},je=async c=>{var q,j,O,$;const m=r.find(G=>G.id===c);if(!((q=m==null?void 0:m.result)!=null&&q.url)&&!((O=(j=m==null?void 0:m.result)==null?void 0:j.urls)!=null&&O.length)||!V){console.warn("Cannot insert: task result or board not available"),_e.warning("无法插入:白板未就绪");return}try{if(m.type===Ne.IMAGE){const G=($=m.result.urls)!=null&&$.length?m.result.urls:[m.result.url];for(const me of G)await Sa(V,me);_e.success(G.length>1?"多图已插入到白板":"图片已插入到白板")}else m.type===Ne.VIDEO&&(await Ia(V,m.result.url),_e.success("视频已插入到白板"))}catch(G){console.error("Failed to insert to board:",G),_e.error(`插入失败: ${G instanceof Error?G.message:"未知错误"}`)}},ne=c=>{var q,j,O,$;const m=r.find(G=>G.id===c);if(!m){console.warn("Cannot edit: task not found");return}if(n){n(m);return}if(m.type===Ne.IMAGE){const G={initialPrompt:m.params.prompt,initialWidth:m.params.width,initialHeight:m.params.height,initialImages:m.params.uploadedImages,initialResultUrl:(q=m.result)==null?void 0:q.url,initialResultUrls:(j=m.result)==null?void 0:j.urls};h(ge.aiImageGeneration,G)}else if(m.type===Ne.VIDEO){const G={initialPrompt:m.params.prompt,initialDuration:typeof m.params.seconds=="string"?parseInt(m.params.seconds,10):m.params.seconds,initialModel:m.params.model,initialSize:m.params.size,initialImages:m.params.uploadedImages,initialResultUrl:(O=m.result)==null?void 0:O.url,initialResultUrls:($=m.result)==null?void 0:$.urls};h(ge.aiVideoGeneration,G)}},ae=c=>{const m=r.find(q=>q.id===c);m&&W(m)},be=t.useMemo(()=>{const c=new Set;return P.filter(m=>{var q,j,O,$;return m.status!==ze.COMPLETED||!((q=m.result)!=null&&q.url)&&!((O=(j=m.result)==null?void 0:j.urls)!=null&&O.length)||m.type!==Ne.IMAGE&&m.type!==Ne.VIDEO&&!(m.type===Ne.AUDIO&&(($=m.result)==null?void 0:$.resultKind)!=="lyrics")||c.has(m.id)?!1:(c.add(m.id),!0)})},[P]),{previewMediaItems:De,taskIdToPreviewConfig:re}=t.useMemo(()=>{var q,j,O,$,G,me;const c=[],m=new Map;for(const R of be){const ke=c.length,pe=((q=R.result)==null?void 0:q.title)||R.params.title||((j=R.params.prompt)==null?void 0:j.substring(0,50))||"媒体预览";if(R.type===Ne.AUDIO){const le=(($=(O=R.result)==null?void 0:O.clips)==null?void 0:$.filter(oe=>!!oe.audioUrl).map((oe,ve)=>{var Se,Ue,$e;return{id:oe.clipId||oe.id||`${R.id}-${ve}`,url:oe.audioUrl,type:"audio",title:oe.title||((Se=R.result)!=null&&Se.clips&&R.result.clips.length>1?`${pe} (${ve+1}/${R.result.clips.length})`:pe),posterUrl:oe.imageLargeUrl||oe.imageUrl||((Ue=R.result)==null?void 0:Ue.previewImageUrl),duration:typeof oe.duration=="number"?oe.duration:($e=R.result)==null?void 0:$e.duration,prompt:R.params.prompt,tags:typeof R.params.tags=="string"?R.params.tags:void 0,artist:R.params.model||R.params.mv||"Aitu",album:"Aitu Generated"}}))??[],fe=(G=R.result.urls)!=null&&G.length?R.result.urls:R.result.url?[R.result.url]:[],ue=le.length>0?le:fe.map((oe,ve)=>{var Se,Ue;return{id:fe.length>1?`${R.id}-${ve}`:R.id,url:oe,type:"audio",title:fe.length>1?`${pe} (${ve+1}/${fe.length})`:pe,posterUrl:(Se=R.result)==null?void 0:Se.previewImageUrl,duration:(Ue=R.result)==null?void 0:Ue.duration,prompt:R.params.prompt,tags:typeof R.params.tags=="string"?R.params.tags:void 0,artist:R.params.model||R.params.mv||"Aitu",album:"Aitu Generated"}});c.push(...ue)}else{const le=(me=R.result.urls)!=null&&me.length?R.result.urls:[R.result.url],fe=R.type===Ne.VIDEO?"video":"image";for(let ue=0;ue<le.length;ue++)c.push({id:le.length>1?`${R.id}-${ue}`:R.id,url:fe==="image"?ja(le[ue]):le[ue],type:fe,title:le.length>1?`${pe} (${ue+1}/${le.length})`:pe})}const Ie=c.length-ke;m.set(R.id,{mode:R.type===Ne.AUDIO&&Ie>1?"compare":"single",index:R.type===Ne.AUDIO&&Ie>1?Array.from({length:Math.min(Ie,4)},(le,fe)=>ke+fe):ke})}return{previewMediaItems:c,taskIdToPreviewConfig:m}},[be]),y=t.useCallback(c=>{const m=re.get(c);m!==void 0&&(T(m.mode),l(m.index),E(!0))},[re]),Z=t.useCallback(()=>{E(!1)},[]),xe=z.trim()&&P.length===0&&r.length>0,Ve=w>0?w:r.length;return e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"dialog-task-list",children:[e.jsxDEV("div",{className:"dialog-task-list__header",children:[e.jsxDEV("div",{className:"dialog-task-list__header-main",children:[e.jsxDEV("h4",{children:["生成任务 (",Ve,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:457,columnNumber:13},void 0),e.jsxDEV("div",{className:"dialog-task-list__header-actions",children:he>0&&e.jsxDEV(Le,{content:`清除全部失败任务 (${he})`,theme:"light",children:e.jsxDEV(ut,{size:"small",variant:"text",icon:e.jsxDEV(ws,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:467,columnNumber:27},void 0),onClick:()=>F(!0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:464,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:460,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:458,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:456,columnNumber:11},void 0),e.jsxDEV("div",{className:"dialog-task-list__search",children:e.jsxDEV(ka,{value:z,onChange:c=>M(c),placeholder:"搜索任务(提示词/模型/...)",clearable:!0,prefixIcon:e.jsxDEV(Ea,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:480,columnNumber:27},void 0),size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:475,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:474,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:455,columnNumber:9},void 0),e.jsxDEV(ei,{tasks:P,onRetry:A,onDelete:I,onDownload:ie,onInsert:je,onEdit:ne,onPreviewOpen:y,onExtractCharacter:ae,hasMore:b,isLoadingMore:o,onLoadMore:d,totalCount:Ve,loadedCount:D,className:"dialog-task-list__content",emptyContent:e.jsxDEV("div",{className:"dialog-task-list__empty",children:a?e.jsxDEV("p",{children:"加载中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:503,columnNumber:17},void 0):xe?e.jsxDEV("p",{children:"未找到匹配的任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:505,columnNumber:17},void 0):e.jsxDEV("p",{children:"暂无生成任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:507,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:501,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:485,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:454,columnNumber:7},void 0),e.jsxDEV(Bt,{open:f,title:"确认删除",description:"确定要删除此任务吗?此操作无法撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:N,onConfirm:Q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:515,columnNumber:7},void 0),e.jsxDEV(Bt,{open:de,title:"清除失败任务",description:`确定要清除全部 ${he} 个失败任务吗?此操作无法撤销。`,confirmText:"清除",cancelText:"取消",danger:!0,onOpenChange:F,onConfirm:J},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:527,columnNumber:7},void 0),e.jsxDEV(Da,{visible:_,items:De,initialMode:U,initialIndex:B,onClose:Z,showThumbnails:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:539,columnNumber:7},void 0),e.jsxDEV(ti,{visible:!!X,task:X,onClose:()=>W(null),onCreateComplete:c=>{W(null)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:549,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:453,columnNumber:5},void 0)},vi=({initialPrompt:i="",initialImages:s=[],selectedElementIds:n=[],initialWidth:r,initialHeight:a,initialResultUrl:o,initialAspectRatio:b,targetFrameId:w,targetFrameDimensions:D,selectedModel:d,selectedModelRef:p,onModelChange:S,onModelRefChange:V,externalBatchId:h,initialAutoInsertToCanvas:f,onDraftChange:N}={})=>{var Ce,at,it;const u=ys("image"),C=He("image"),_=Ae(u,C.modelId,Me(C.profileId,C.modelId))||mt("image",C.modelId,Me(C.profileId,C.modelId)),[E,B]=t.useState((_==null?void 0:_.id)||((Ce=u[0])==null?void 0:Ce.id)||"gemini-2.5-flash-image-vip"),[l,U]=t.useState(Pe(_)||Me(C.profileId,C.modelId)),T=ye((_==null?void 0:_.id)||((at=u[0])==null?void 0:at.id)||"gemini-2.5-flash-image-vip",Pe(_)||Me(C.profileId,C.modelId)),z=ss((_==null?void 0:_.id)||((it=u[0])==null?void 0:it.id)||"gemini-2.5-flash-image-vip",T),[M,X]=t.useState(i),[W,de]=t.useState(z.extraParams),F=t.useMemo(()=>{if(Ae(u,E,l)||!E)return u;const L=mt("image",E,l);return L?[L,...u]:u},[E,l,u]),[he,J]=t.useState(r||1024),[we,P]=t.useState(a||1024),[A,I]=t.useState(b||z.aspectRatio||vt),[Q,ie]=t.useState(null),[je,ne]=t.useState(s),[ae,be]=t.useState(!0),[De,re]=t.useState(()=>Fs("image")),[y,Z]=t.useState("config"),xe=t.useRef(null),{viewportWidth:Ve}=Ut(),c=Ve<=768,{imageHistory:m}=Cs(),{isGenerating:q}=ks("image"),{language:j}=Ye(),{createTask:O}=_t(),$=t.useRef(!1),G=E.startsWith("mj"),me=ce.useMemo(()=>{if(G)return[];const x=qa(E);if(x.length===0)return ct;const L=new Map(ct.map(Y=>[Y.value,Y])),K=[];return x.forEach(Y=>{const Ee=Y.value==="auto"?"auto":Y.value.replace("x",":"),qe=L.get(Ee);qe&&!K.some(Te=>Te.value===qe.value)&&K.push(qe)}),K.length>0?K:ct},[E,G]),R=ce.useMemo(()=>{const x=_a(E);return G?x.length>0:x.some(L=>L.id!=="size")},[E,G]),[ke,pe]=t.useState(!1);t.useEffect(()=>{if(ke)return;const x=ss(E,ye(E,l));de(x.extraParams),I(x.aspectRatio)},[E,l,ke]);const Ie=t.useCallback((x,L)=>{if(!L||L==="default"){de(K=>{const Y={...K};return delete Y[x],Y});return}de(K=>({...K,[x]:L}))},[]),le=t.useCallback(x=>{re(x)},[]),fe=t.useCallback(()=>{be(x=>!x)},[]),ue=ce.useRef("");t.useEffect(()=>{if(ke)return;const x=JSON.stringify({prompt:i,images:s==null?void 0:s.map(L=>L.url),elementIds:n,width:r,height:a,result:o,aspectRatio:b});ue.current!==x&&(ue.current=x,X(i),ne(s||[]),r&&J(r),a&&P(a),b&&I(b))},[i,s,n,r,a,o,b,ke]);const oe=t.useRef("");t.useEffect(()=>{if(!N)return;const x={prompt:M,images:je.map(Y=>({url:Y.url,name:Y.name})),aspectRatio:A},L=JSON.stringify(x);if(oe.current===L)return;const K=window.setTimeout(()=>{oe.current!==L&&(oe.current=L,N(x))},200);return()=>{window.clearTimeout(K)}},[A,N,M,je]),t.useEffect(()=>{const x=L=>{var Y;const K=L.imageModelName||((Y=F[0])==null?void 0:Y.id)||"gemini-2.5-flash-image-vip";if(K!==E){B(K);const Ee=Ae(F,K,l);U(Pe(Ee)||null)}};return Re.addListener(x),()=>Re.removeListener(x)},[E,l,F]),t.useEffect(()=>{if(F.length===0)return;if(!Ae(F,E,l)){const L=F[0];B(L.id);const K=Pe(L);U(Y=>Y&&K&&Y.profileId===K.profileId&&Y.modelId===K.modelId?Y:K)}},[E,l,F]),t.useEffect(()=>{if(!d)return;const x=ye(E,l),L=ye(d,p);if(x!==L){B(d);const K=Ae(F,d,p),Y=Pe(K)||p||null;U(Ee=>Ee&&Y&&Ee.profileId===Y.profileId&&Ee.modelId===Y.modelId?Ee:Y)}},[E,l,d,p,F]),t.useEffect(()=>{!R&&Object.keys(W).length>0&&de({})},[R,W]),t.useEffect(()=>{var L;if(G||me.length===0)return;const x=new Set(me.map(K=>K.value));if(!x.has(A)){const K=x.has("auto")?"auto":((L=me[0])==null?void 0:L.value)||vt;I(K)}},[A,G,me]),t.useEffect(()=>{Xa({currentModel:E,currentSelectionKey:ye(E,l),extraParams:W,aspectRatio:A})},[E,l,W,A]),t.useEffect(()=>(ie(null),()=>{ie(null)}),[]);const ve=()=>{X(""),de({}),ne([]),ie(null),I(vt),Z("config"),pe(!1),window.dispatchEvent(new CustomEvent("ai-image-clear"))},Se=ce.useMemo(()=>Os("image",j,m),[m,j]),Ue=x=>{zs("image",x)},$e=x=>{if(pe(!0),Z("config"),X(x.params.prompt||""),de({}),J(x.params.width||1024),P(x.params.height||1024),x.params.uploadedImages&&x.params.uploadedImages.length>0?ne(x.params.uploadedImages):ne([]),x.params.model){B(x.params.model),U(x.params.modelRef||null);const L=Re.get();Re.update({...L,imageModelName:x.params.model})}x.params.aspectRatio&&I(x.params.aspectRatio),ie(null)},gt=async()=>Promise.all(je.map(async x=>{if(x.file)return new Promise((L,K)=>{const Y=new FileReader;Y.onload=()=>{L({type:"url",url:Y.result,name:x.name})},Y.onerror=K,Y.readAsDataURL(x.file)});if(x.url)return{type:"url",url:x.url,name:x.name};throw new Error("Invalid image data")})),st=async(x=1)=>{if(!$.current){$.current=!0;try{if(!M||!M.trim()){ie(j==="zh"?"请输入图像描述":"Please enter image description");return}if(!Ca("image",l||E)&&!await Ta()){ie(j==="zh"?"需要 API Key 才能生成图片":"API Key is required to generate images");return}G&&ie(null);try{const L=typeof he=="string"?parseInt(he)||1024:he,K=typeof we=="string"?parseInt(we)||1024:we,Y=await gt();if(x>1){const Fe=[],bt=`batch_${Date.now()}`,Ge=E||He("image").modelId,ot=Ge.startsWith("mj")?[M.trim(),as(W)].filter(Boolean).join(" "):(M||"").trim(),Oe=!Ge.startsWith("mj")&&Object.keys(W).length>0?W:void 0,xt=Oe!=null&&Oe.size?Oe.size:Gt(A);for(let Je=0;Je<x;Je++){const Qe={prompt:ot,width:L,height:K,aspectRatio:A,size:xt,model:Ge,modelRef:l||null,uploadedImages:Y,batchId:bt,batchIndex:Je+1,batchTotal:x,autoInsertToCanvas:f??It(tt.AI_IMAGE_AUTO_INSERT),targetFrameId:w,targetFrameDimensions:D,...Oe?{params:Oe}:{}},rt=O(Qe,Ne.IMAGE);rt&&Fe.push(rt.id)}Fe.length>0?(_e.success(j==="zh"?`已添加 ${Fe.length} 个任务到队列`:`Added ${Fe.length} tasks to queue`),Ue(ot),ie(null),Z("tasks"),pe(!1)):ie(j==="zh"?"批量任务创建失败,请稍后重试":"Failed to create batch tasks, please try again later");return}const Ee=E||He("image").modelId,qe=Ee.startsWith("mj")?[M.trim(),as(W)].filter(Boolean).join(" "):(M||"").trim(),Te=!Ee.startsWith("mj")&&Object.keys(W).length>0?W:void 0,Xe=Te!=null&&Te.size?Te.size:Gt(A),nt={prompt:qe,width:L,height:K,aspectRatio:A,size:Xe,model:Ee,modelRef:l||null,uploadedImages:Y,autoInsertToCanvas:f??It(tt.AI_IMAGE_AUTO_INSERT),batchId:h||`image_single_${Date.now()}`,batchIndex:1,batchTotal:1,targetFrameId:w,targetFrameDimensions:D,...Te?{params:Te}:{}};O(nt,Ne.IMAGE)?(_e.success(j==="zh"?"任务已添加到队列,将在后台生成":"Task added to queue, will be generated in background"),Ue(qe),ie(null),Z("tasks"),pe(!1)):ie(j==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch(L){console.error("Failed to create task:",L);let K=j==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";L.message&&(L.message.includes("exceed 5000 characters")?K=j==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":L.message.includes("Duplicate submission")?K=j==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":L.message.includes("Invalid parameters")&&(K=j==="zh"?`参数错误: ${L.message.replace("Invalid parameters: ","")}`:L.message)),ie(K)}}finally{$.current=!1}}};return Es(q,M,()=>st(1)),e.jsxDEV("div",{className:"ai-image-generation-container",children:[c?e.jsxDEV("div",{className:"ai-generation-mobile-switcher",role:"tablist",children:[e.jsxDEV("button",{type:"button",className:`ai-generation-mobile-switcher__tab ${y==="config"?"ai-generation-mobile-switcher__tab--active":""}`,onClick:()=>Z("config"),children:"生成设置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:793,columnNumber:11},void 0),e.jsxDEV("button",{type:"button",className:`ai-generation-mobile-switcher__tab ${y==="tasks"?"ai-generation-mobile-switcher__tab--active":""}`,onClick:()=>Z("tasks"),children:"生成任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:804,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:792,columnNumber:9},void 0):null,e.jsxDEV("div",{className:`main-content ${c?"main-content--mobile-panels":""}`,ref:xe,children:[e.jsxDEV("div",{className:`ai-image-generation-section ${c&&y!=="config"?"ai-generation-mobile-panel--hidden":""}`,children:[e.jsxDEV("div",{className:"ai-image-generation-form",children:[d!==void 0&&S&&e.jsxDEV("div",{className:"form-header-row",children:e.jsxDEV("div",{className:"model-selector-wrapper",children:e.jsxDEV(js,{selectedModel:E,selectedSelectionKey:ye(E,l),onSelect:x=>{B(x),U(null),S(x),V==null||V(null)},onSelectModel:x=>{B(x.id);const L=Pe(x);U(L),S(x.id),V==null||V(L)},language:j,models:F,placement:"down",variant:"form",disabled:q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:837,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:836,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:835,columnNumber:15},void 0),R&&e.jsxDEV("div",{className:"model-params-row",children:e.jsxDEV(Ds,{selectedParams:W,onParamChange:Ie,modelId:E,language:j,disabled:q,excludeParamIds:G?void 0:["size"]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:869,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:868,columnNumber:15},void 0),e.jsxDEV(Is,{images:je,onImagesChange:ne,language:j,disabled:q,multiple:!0,label:j==="zh"?"参考图片 (可选)":"Reference Images (Optional)",onError:ie},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:881,columnNumber:13},void 0),e.jsxDEV(As,{prompt:M,onPromptChange:X,presetPrompts:Se,language:j,type:"image",disabled:q,onError:ie},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:895,columnNumber:13},void 0),e.jsxDEV(Ps,{error:Q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:905,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:832,columnNumber:11},void 0),e.jsxDEV(Ts,{language:j,type:"image",isGenerating:q,hasGenerated:!1,canGenerate:!!(M&&M.trim()),onGenerate:st,onReset:ve,leftContent:e.jsxDEV(e.Fragment,{children:[e.jsxDEV(Gs,{storageKey:tt.AI_IMAGE_AUTO_INSERT,language:j},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:918,columnNumber:17},void 0),!G&&e.jsxDEV(mi,{value:A,onChange:I,compact:!0,options:me},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:923,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:917,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:908,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:825,columnNumber:9},void 0),c?null:e.jsxDEV(Bs,{isRightPanelVisible:ae,onToggleRightPanel:fe,onWidthChange:le,rightPanelWidth:De,language:j,storageKey:"image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:936,columnNumber:11},void 0),(c||ae)&&e.jsxDEV("div",{className:`task-sidebar ${c?"task-sidebar--mobile-panel":""} ${c&&y!=="tasks"?"ai-generation-mobile-panel--hidden":""}`,style:c?void 0:{width:De,flexShrink:0},children:e.jsxDEV(Ws,{taskType:Ne.IMAGE,onEditTask:$e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:962,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:948,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:818,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:790,columnNumber:5},void 0)};function ls(i,s){const n=Object.keys(i),r=Object.keys(s);return n.length!==r.length?!1:n.every(a=>i[a]===s[a])}function cs(i,s,n){return i.slice(0,s).map((r,a)=>({...r,slot:a,slotLabel:n[a]||`参考图${a+1}`}))}function wi(i,s){return i.length===s.length&&i.every((n,r)=>{const a=s[r];return n.slot===a.slot&&n.slotLabel===a.slotLabel&&n.url===a.url&&n.name===a.name&&n.file===a.file})}function us(i,s){return s.some(n=>n.value===i)}function ms(i){const s=i==null?void 0:i.trim().replace(/[xX]/g,":");return s&&/^\d+:\d+$/.test(s)?s:null}function lt(i){var n;const s=(n=i==null?void 0:i.split("@")[0])==null?void 0:n.trim();return s&&/^\d+p$/.test(s)?s:null}function Dt(i,s){return((i==null?void 0:i.profileId)||null)===((s==null?void 0:s.profileId)||null)&&((i==null?void 0:i.modelId)||null)===((s==null?void 0:s.modelId)||null)}function Ks(i,s){const n=Me(s==null?void 0:s.profileId,s==null?void 0:s.modelId);return(n==null?void 0:n.modelId)===(i||null)?n:null}function Be(i,s,n){if(!s)return null;const r=Ks(s,n),a=Ae(i,s,r);return Pe(a)||r}const yi=({initialPrompt:i="",initialImage:s,initialImages:n,initialDuration:r,initialModel:a,initialSize:o,initialResultUrl:b,selectedModel:w,selectedModelRef:D,onModelChange:d,onModelRefChange:p,externalBatchId:S,initialAutoInsertToCanvas:V,onDraftChange:h}={})=>{var Mt,Rt,At;const f=ys("video"),[N,u]=t.useState(i),[C,_]=t.useState(null),[E,B]=t.useState(!0),[l,U]=t.useState(()=>Fs("video")),[T,z]=t.useState("config"),M=t.useRef(null),{viewportWidth:X}=Ut(),W=X<=768,de=He("video"),F=a||de.modelId,he=Ks(F,a&&a===w?D:de.modelId===F?Me(de.profileId,de.modelId):null),J=Ae(f,F,he)||mt("video",F,he),we=Be(f,(J==null?void 0:J.id)||F,Pe(J)||he),[P,A]=t.useState((J==null?void 0:J.id)||((Mt=f[0])==null?void 0:Mt.id)||wt("veo3")),[I,Q]=t.useState(we),ie=ye((J==null?void 0:J.id)||((Rt=f[0])==null?void 0:Rt.id)||wt("veo3"),we),je=is((J==null?void 0:J.id)||((At=f[0])==null?void 0:At.id)||wt("veo3"),ie),ne=ce.useMemo(()=>{if(Ae(f,P,I)||!P)return f;const v=mt("video",P,I);return v?[v,...f]:f},[P,I,f]),[ae,be]=t.useState(()=>je.extraParams),De=ce.useMemo(()=>Pa(P,I||P,ae),[P,I,ae]),re=ce.useMemo(()=>yt(P,I||P,ae),[P,I,ae]),y=ce.useMemo(()=>{if(re.provider!=="seedance")return re;const g=ms(ae.aspect_ratio)||ms(ae.aspectRatio)||"16:9",v=new Set,k=re.sizeOptions.map(te=>lt(te.value)).filter(te=>!te||v.has(te)?!1:(v.add(te),!0)),H=k.map(te=>({label:te,value:`${te}@${g}`,aspectRatio:g})),ee=lt(re.defaultSize)||k[0]||"720p";return{...re,sizeOptions:H,defaultSize:`${ee}@${g}`}},[re,ae.aspectRatio,ae.aspect_ratio]),Z=ce.useMemo(()=>Ma(P,I||P,ae),[P,I,ae]),xe=ce.useMemo(()=>(re.imageUpload.labels||[]).join("|"),[re.imageUpload.labels]),Ve=ce.useMemo(()=>xe?xe.split("|"):[],[xe]),c=ce.useMemo(()=>({maxCount:re.imageUpload.maxCount,mode:re.imageUpload.mode,labels:Ve,labelsSignature:xe}),[re.imageUpload.maxCount,re.imageUpload.mode,Ve,xe]),[m,q]=t.useState((r==null?void 0:r.toString())||je.duration),[j,O]=t.useState(o||je.size),$=ce.useMemo(()=>us(m,y.durationOptions)?m:y.defaultDuration,[m,y.defaultDuration,y.durationOptions]),G=ce.useMemo(()=>{if(us(j,y.sizeOptions))return j;if(y.provider==="seedance"){const g=lt(j),v=y.sizeOptions.find(k=>lt(k.value)===g);if(v)return v.value}return y.defaultSize},[j,y]),me=ce.useMemo(()=>De.some(g=>g.id!=="size"&&g.id!=="duration"),[De]),R=t.useCallback((g,v)=>{if(!v||v==="default"){be(k=>{const H={...k};return delete H[g],H});return}be(k=>({...k,[g]:v}))},[]);t.useEffect(()=>{const g=De.reduce((v,k)=>{const H=ae[k.id],ee=!H||k.valueType!=="enum"||!k.options||k.options.some(te=>te.value===H);return H&&ee?v[k.id]=H:k.defaultValue&&(v[k.id]=k.defaultValue),v},{});ls(ae,g)||be(g)},[De,ae]);const[ke,pe]=t.useState(()=>n&&n.length>0?n:s?[{slot:0,slotLabel:"参考图",url:s.url||"",name:s.name,file:s.file}]:[]),[Ie,le]=t.useState(()=>{const g=re.imageUpload.maxCount,v=re.imageUpload.labels||[];let k=[];return n&&n.length>0?k=n:s&&(k=[{slot:0,slotLabel:v[0]||"参考图",url:s.url||"",name:s.name,file:s.file}]),k.slice(0,g).map((H,ee)=>({...H,slot:ee,slotLabel:v[ee]||`参考图${ee+1}`}))}),[fe,ue]=t.useState(!1),[oe,ve]=t.useState([]),Se=ce.useMemo(()=>Ra(P),[P]),Ue=Wt(P),{videoHistory:$e}=Cs(),[gt,st]=t.useState(0),{isGenerating:Ce}=ks("video"),at=t.useCallback(g=>{U(g)},[]),it=t.useCallback(()=>{B(g=>!g)},[]),{language:x}=Ye(),{createTask:L}=_t(),K=t.useRef(!1),Y=w!==void 0,Ee=ce.useRef(null),qe=ce.useRef(null);t.useEffect(()=>{if(Y)return;const g=v=>{const k=v.videoModelName||"veo3";if(k!==P){A(k);const H=Be(ne,k,I);Q(H)}};return Re.addListener(g),()=>Re.removeListener(g)},[P,I,Y,w,D,ne]),t.useEffect(()=>{if(ne.length===0)return;const g=Ae(ne,P,I),v=Be(ne,P,I);if(!g){const k=ne[0],H=Pe(k);A(k.id),Q(ee=>Dt(ee,H)?ee:H);return}Q(k=>Dt(k,v)?k:v)},[P,I,ne]),t.useEffect(()=>{if(!w)return;const g=ye(w,D);if(Ee.current===g||qe.current&&qe.current!==w)return;Ee.current=g,A(k=>k===w?k:w);const v=Be(ne,w,D);Q(k=>Dt(k,v)?k:v)},[w,D,ne,a]);const[Te,Xe]=t.useState(!1),[nt,ht]=t.useState(!1);t.useEffect(()=>{if(nt){ht(!1);return}const g=is(P,ye(P,I)),v=yt(P,I||P,g.extraParams),k=v.durationOptions.some(se=>se.value===g.duration)?g.duration:v.defaultDuration,H=v.sizeOptions.some(se=>se.value===g.size)?g.size:v.defaultSize;be(se=>ls(se,g.extraParams)?se:g.extraParams);const ee=r!==void 0?r.toString():k,te=o||H;q(se=>se===ee?se:ee),O(se=>se===te?se:te),Wt(P)||(ue(se=>se&&!1),ve(se=>se.length>0?[]:se))},[P,I,nt,r,o]),t.useEffect(()=>{const g=ke.length>0?cs(ke,c.maxCount,c.labels):[];le(v=>wi(v,g)?v:g)},[ke,c.labels,c.labelsSignature,c.maxCount]),t.useEffect(()=>{Ja({currentModel:P,currentSelectionKey:ye(P,I),extraParams:ae,duration:$,size:G})},[P,I,$,G,ae]);const Fe=ce.useRef("");t.useEffect(()=>{if(Te)return;const g=JSON.stringify({prompt:i,image:s==null?void 0:s.url,images:n==null?void 0:n.map(H=>H.url),duration:r,model:a,size:o,result:b});if(Fe.current===g)return;Fe.current=g,a&&(qe.current=a,A(a),Q(Be(f,a,D))),u(i);let v=[];n&&n.length>0?v=n:s&&(v=[{slot:0,slotLabel:"参考图",url:s.url||"",name:s.name,file:s.file}]),pe(v);const k=cs(v,c.maxCount,c.labels);le(k),r!==void 0&&q(r.toString()),o&&O(o),_(null)},[i,s,n,r,o,b,c.labels,c.labelsSignature,c.maxCount,Te]),t.useEffect(()=>(_(null),()=>{_(null)}),[]);const bt=()=>{u(""),pe([]),le([]),_(null),z("config"),q(Z.duration),O(Z.size),Xe(!1),ue(!1),ve([]),be(jt(P,I||P)),window.dispatchEvent(new CustomEvent("ai-video-clear"))},Ge=ce.useCallback((g,v)=>g.map((k,H)=>({slot:H,slotLabel:v[H]||`参考图${H+1}`,url:k.url,name:k.name,file:k.file})),[]),ot=ce.useCallback(g=>g.map(v=>({url:v.url,name:v.name,file:v.file})),[]),Oe=ce.useCallback(g=>{const v=Ge(g,c.labels);le(v),pe(v)},[c.labels,Ge]),xt=ce.useMemo(()=>Os("video",x,$e),[$e,x,gt]),Je=g=>{zs("video",g),st(v=>v+1)},Qe=t.useRef("");t.useEffect(()=>{if(!h)return;const g=Number.parseFloat($),v={prompt:N,images:Ie.map(ee=>({url:ee.url,name:ee.name})),duration:Number.isFinite(g)?g:void 0,size:G||void 0},k=JSON.stringify(v);if(Qe.current===k)return;const H=window.setTimeout(()=>{Qe.current!==k&&(Qe.current=k,h(v))},200);return()=>{window.clearTimeout(H)}},[$,G,h,N,Ie]);const rt=g=>{var k,H;if(Xe(!0),z("config"),ht(!0),g.params.model){A(g.params.model),Q(g.params.modelRef||null);const ee=Re.get();Re.update({...ee,videoModelName:g.params.model})}if((k=g.params.storyboard)!=null&&k.enabled&&((H=g.params.storyboard)!=null&&H.scenes))ue(!0),ve(g.params.storyboard.scenes),u("");else{const ee=g.params.prompt||"",te=gi(ee);te&&te.length>0?(ue(!0),ve(te),u("")):(ue(!1),ve([]),u(ee))}if(g.params.seconds!==void 0){const ee=typeof g.params.seconds=="string"?g.params.seconds:g.params.seconds.toString();q(ee)}const v=g.params.params&&typeof g.params.params=="object"?Object.entries(g.params.params).reduce((ee,[te,se])=>(se!=null&&String(se).trim()&&(ee[te]=String(se)),ee),{}):{};if(be(v),g.params.size&&O(g.params.size),g.params.uploadedImages&&g.params.uploadedImages.length>0){pe(g.params.uploadedImages);const ee=g.params.model||P,te=yt(ee,g.params.modelRef||ee,v),se=te.imageUpload.maxCount,Ze=te.imageUpload.labels||[],We=g.params.uploadedImages.slice(0,se).map((Ke,Nt)=>({...Ke,slot:Nt,slotLabel:Ze[Nt]||`参考图${Nt+1}`}));le(We)}else pe([]),le([]);_(null)},Pt=async(g=1)=>{if(!K.current){K.current=!0;try{if(fe){const v=pi(oe,parseFloat($),Se.minSceneDuration);if(!v.valid){_(v.error||"场景配置无效");return}}else if(!N||!N.trim()){_(x==="zh"?"请输入视频描述":"Please enter video description");return}try{const v=[];for(const te of Ie)if(te.file){const se=await new Promise((Ze,We)=>{const Ke=new FileReader;Ke.onload=()=>Ze(Ke.result),Ke.onerror=We,Ke.readAsDataURL(te.file)});v.push({...te,url:se,file:void 0})}else v.push({...te,file:void 0});const k=fe?fi(oe):(N||"").trim(),H=[],ee=S||`video_batch_${Date.now()}`;for(let te=0;te<g;te++){const se=Object.keys(ae).length>0?ae:void 0,Ze={prompt:k,model:P,modelRef:I||null,seconds:$,size:G,uploadedImages:v,...fe&&{storyboard:{enabled:!0,scenes:oe,totalDuration:parseFloat($)}},batchId:ee,batchIndex:te+1,batchTotal:g,autoInsertToCanvas:V??It(tt.AI_VIDEO_AUTO_INSERT),...se?{params:se}:{}},We=L(Ze,Ne.VIDEO);We&&H.push(We.id)}H.length>0?(_e.success(x==="zh"?g>1?`${H.length} 个视频任务已添加到队列,将在后台生成`:"视频任务已添加到队列,将在后台生成":g>1?`${H.length} video tasks added to queue, will be generated in background`:"Video task added to queue, will be generated in background"),Je(k),u(""),pe([]),le([]),ue(!1),ve([]),_(null),z("tasks"),Xe(!1)):_(x==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch(v){console.error("Failed to create task:",v);let k=x==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";v.message&&(v.message.includes("exceed 5000 characters")?k=x==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":v.message.includes("Duplicate submission")?k=x==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":v.message.includes("Invalid parameters")&&(k=x==="zh"?`参数错误: ${v.message.replace("Invalid parameters: ","")}`:v.message)),_(k)}}finally{K.current=!1}}};return Es(Ce,N,Pt),e.jsxDEV("div",{className:"ai-video-generation-container",children:[W?e.jsxDEV("div",{className:"ai-generation-mobile-switcher",role:"tablist",children:[e.jsxDEV("button",{type:"button",className:`ai-generation-mobile-switcher__tab ${T==="config"?"ai-generation-mobile-switcher__tab--active":""}`,onClick:()=>z("config"),children:"生成设置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1217,columnNumber:11},void 0),e.jsxDEV("button",{type:"button",className:`ai-generation-mobile-switcher__tab ${T==="tasks"?"ai-generation-mobile-switcher__tab--active":""}`,onClick:()=>z("tasks"),children:"生成任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1228,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1216,columnNumber:9},void 0):null,e.jsxDEV("div",{className:`main-content ${W?"main-content--mobile-panels":""}`,ref:M,children:[e.jsxDEV("div",{className:`ai-image-generation-section ${W&&T!=="config"?"ai-generation-mobile-panel--hidden":""}`,children:[e.jsxDEV("div",{className:"ai-image-generation-form",children:[w!==void 0&&d&&e.jsxDEV("div",{className:"form-header-row",children:e.jsxDEV("div",{className:"model-selector-wrapper",children:e.jsxDEV(js,{selectedModel:P,selectedSelectionKey:ye(P,I),onSelect:(g,v)=>{const k=g,H=Be(ne,k,v||null);qe.current=null,A(k),Q(H),be(jt(k,H||k)),d(g),p==null||p(H)},onSelectModel:g=>{const v=g.id;qe.current=null,A(v);const k=Be(ne,v,Pe(g));Q(k),be(jt(v,k||v)),d(g.id),p==null||p(k)},language:x,models:ne,placement:"down",variant:"form",placeholder:x==="zh"?"选择视频模型":"Select Video Model",disabled:Ce},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1261,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1260,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1259,columnNumber:15},void 0),me&&e.jsxDEV("div",{className:"model-params-row",children:e.jsxDEV(Ds,{selectedParams:ae,onParamChange:R,compatibleParams:De,modelId:P,language:x,disabled:Ce,excludeParamIds:["size","duration"]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1321,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1320,columnNumber:15},void 0),e.jsxDEV(ui,{model:P,configOverride:y,duration:$,size:G,onDurationChange:q,onSizeChange:O,disabled:Ce},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1334,columnNumber:13},void 0),e.jsxDEV(Is,{images:ot(Ie),onImagesChange:Oe,language:x,disabled:Ce,multiple:c.maxCount>1,maxCount:c.maxCount,slotLabels:c.mode==="frames"?c.labels:void 0,label:c.mode==="frames"?x==="zh"?"首尾帧图片 (可选)":"Start/End Frames (Optional)":x==="zh"?"参考图片 (可选)":"Reference Images (Optional)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1345,columnNumber:13},void 0),Ue&&e.jsxDEV(bi,{enabled:fe,onEnabledChange:ue,totalDuration:parseFloat($),maxScenes:Se.maxScenes,minSceneDuration:Se.minSceneDuration,scenes:oe,onScenesChange:ve,disabled:Ce},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1370,columnNumber:15},void 0),!fe&&e.jsxDEV(As,{prompt:N,onPromptChange:u,presetPrompts:xt,language:x,type:"video",disabled:Ce,onError:_,videoProvider:re.provider},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1384,columnNumber:15},void 0),e.jsxDEV(Ps,{error:C},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1396,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1256,columnNumber:11},void 0),e.jsxDEV(Ts,{language:x,type:"video",isGenerating:Ce,hasGenerated:!1,canGenerate:fe?oe.length>0:!!(N&&N.trim()),onGenerate:Pt,onReset:bt,leftContent:e.jsxDEV(Gs,{storageKey:tt.AI_VIDEO_AUTO_INSERT,language:x},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1412,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1399,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1249,columnNumber:9},void 0),W?null:e.jsxDEV(Bs,{isRightPanelVisible:E,onToggleRightPanel:it,onWidthChange:at,rightPanelWidth:l,language:x,storageKey:"video"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1421,columnNumber:11},void 0),(W||E)&&e.jsxDEV("div",{className:`task-sidebar ${W?"task-sidebar--mobile-panel":""} ${W&&T!=="tasks"?"ai-generation-mobile-panel--hidden":""}`,style:W?void 0:{width:l,flexShrink:0},children:e.jsxDEV(Ws,{taskType:Ne.VIDEO,onEditTask:rt},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1447,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1433,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1242,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1214,columnNumber:5},void 0)},ji=t.lazy(()=>Vt(()=>import("./batch-image-generation-BcGzhZc6.js"),__vite__mapDeps([0,1,2]),import.meta.url)),ki=({container:i})=>{const{appState:s,openDialog:n,closeDialog:r}=ft(),{language:a}=Ye(),o=qt(),{isMobile:b,isTablet:w}=Ut(),D=s.dialogInitialDataByType,d=(D==null?void 0:D[ge.aiImageGeneration])??null,p=(D==null?void 0:D[ge.aiVideoGeneration])??null,S=!b&&!w,V=t.useRef(!1),h=t.useRef(null),[f,N]=t.useState(""),[u,C]=t.useState(null),[_,E]=t.useState(""),[B,l]=t.useState(null),U=t.useRef(null),T=t.useRef(null),z=t.useCallback(()=>{const y=He("image"),Z=He("video"),xe=y.modelId||"gemini-3-pro-image-preview-vip",Ve=Me(y.profileId,xe),c=Z.modelId||"veo3",m=Me(Z.profileId,c);N(q=>q===xe?q:xe),C(q=>ye(xe,q)===ye(xe,Ve)?q:Ve),E(q=>q===c?q:c),l(q=>ye(c,q)===ye(c,m)?q:m)},[]);t.useEffect(()=>{z()},[z]),t.useEffect(()=>{const y=()=>{z()};return Re.addListener(y),Kt.addListener(y),()=>{Re.removeListener(y),Kt.removeListener(y)}},[z]);const M=y=>{N(y)},X=y=>{E(y)},W=y=>{C(y)},de=y=>{l(y)};t.useEffect(()=>{if(!f)return;const y=ye(f,u);U.current!==y&&(U.current=y,Ht("image",Me(u==null?void 0:u.profileId,f)))},[f,u]),t.useEffect(()=>{if(!_)return;const y=ye(_,B);T.current!==y&&(T.current=y,Ht("video",Me(B==null?void 0:B.profileId,_)))},[_,B]);const[F,he]=t.useState({initialPrompt:"",initialImages:[],selectedElementIds:[]}),[J,we]=t.useState({initialPrompt:"",initialImage:void 0}),[P,A]=t.useState(!1),[I,Q]=t.useState(()=>{try{return localStorage.getItem(kt)==="batch"?"batch":"single"}catch{return"single"}});t.useEffect(()=>{!S&&I==="batch"&&Q("single")},[S,I]);const ie=t.useCallback(y=>{Q(y),y==="batch"&&(A(!0),setTimeout(()=>A(!1),50));try{localStorage.setItem(kt,y)}catch(Z){console.warn("Failed to save image mode:",Z)}},[]);t.useEffect(()=>{if(s.openDialogTypes.has(ge.aiImageGeneration)){if(F.initialImages&&F.initialImages.length>0||F.initialPrompt&&F.initialPrompt.trim()!==""){A(!1);return}try{localStorage.getItem(kt)==="batch"&&(A(!0),setTimeout(()=>A(!1),50))}catch{A(!1)}}},[s.openDialogTypes,F.initialImages,F.initialPrompt]);const je=t.useRef(!1),ne=t.useRef(d),ae=t.useRef(!1),be=t.useRef(p);t.useEffect(()=>{if(!o)return;const y=s.openDialogTypes.has(ge.aiImageGeneration),Z=y&&!je.current,xe=ne.current!==d;if(je.current=y,ne.current=d,!y||!Z&&!xe||V.current)return;(async()=>{V.current=!0,h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{console.warn("Processing timeout, resetting processing state"),V.current=!1},1e4);try{if(d){he({initialPrompt:d.initialPrompt||d.prompt||"",initialImages:d.initialImages||d.uploadedImages||[],selectedElementIds:[],initialResultUrl:d.initialResultUrl||d.resultUrl,initialAspectRatio:d.initialAspectRatio,targetFrameId:d.targetFrameId,targetFrameDimensions:d.targetFrameDimensions}),d.initialModel&&N(d.initialModel),d.initialModelRef!==void 0&&C(d.initialModelRef);return}const c=s.lastSelectedElementIds||[];let m,q,j;const O=Aa(o);if(O.length===1&&Oa(O[0])){const me=O[0],R=St.getRectangleByPoints(me.points);m=Qa(R.width,R.height),q=me.id,j={width:R.width,height:R.height}}const $=await es(o,c),G=[];$.remainingImages.forEach(me=>{G.push({url:me.url,name:me.name||`selected-image-${Date.now()}.png`})}),$.graphicsImage&&G.push({url:$.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),he({initialPrompt:$.remainingText||"",initialImages:G,selectedElementIds:c,initialAspectRatio:m,targetFrameId:q,targetFrameDimensions:j})}catch(c){console.warn("Error processing selected content for AI:",c);const m=ts(o),q=m.images.map(j=>({url:j.url,name:j.name||`selected-image-${Date.now()}.png`}));he({initialPrompt:m.text||"",initialImages:q,selectedElementIds:[]})}finally{V.current=!1,h.current&&(clearTimeout(h.current),h.current=null)}})()},[s.lastSelectedElementIds,s.openDialogTypes,o,d]),t.useEffect(()=>{if(!o)return;const y=s.openDialogTypes.has(ge.aiVideoGeneration),Z=y&&!ae.current,xe=be.current!==p;if(ae.current=y,be.current=p,!y||!Z&&!xe||V.current)return;(async()=>{V.current=!0,h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{console.warn("Video processing timeout, resetting processing state"),V.current=!1},1e4);try{if(p){we({initialPrompt:p.initialPrompt||p.prompt||"",initialImage:p.initialImage||p.uploadedImage,initialImages:p.initialImages||p.uploadedImages,initialDuration:p.initialDuration||p.duration,initialModel:p.initialModel||p.model,initialSize:p.initialSize||p.size,initialResultUrl:p.initialResultUrl||p.resultUrl});const j=p.initialModel||p.model;j&&E(j),p.initialModelRef!==void 0&&l(p.initialModelRef);return}const c=s.lastSelectedElementIds||[],m=await es(o,c),q=[];m.remainingImages.length>0?m.remainingImages.forEach((j,O)=>{q.push({url:j.url,name:j.name||`selected-image-${O+1}-${Date.now()}.png`})}):m.graphicsImage&&q.push({url:m.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),we({initialPrompt:m.remainingText||"",initialImage:q.length>0?q[0]:void 0,initialImages:q.map((j,O)=>({slot:O,slotLabel:`参考图${O+1}`,url:j.url,name:j.name}))})}catch(c){console.warn("Error processing selected content for AI video:",c);const m=ts(o),q=m.images.map((j,O)=>({url:j.url,name:j.name||`selected-image-${O+1}-${Date.now()}.png`}));we({initialPrompt:m.text||"",initialImage:q.length>0?q[0]:void 0,initialImages:q.map((j,O)=>({slot:O,slotLabel:`参考图${O+1}`,url:j.url,name:j.name}))})}finally{V.current=!1,h.current&&(clearTimeout(h.current),h.current=null)}})()},[s.lastSelectedElementIds,s.openDialogTypes,o,p]),t.useEffect(()=>{s.openDialogTypes.size===0&&(V.current=!1,je.current=!1,ne.current=null,ae.current=!1,be.current=null,h.current&&(clearTimeout(h.current),h.current=null))},[s.openDialogTypes]);const De=t.useCallback(()=>{const y=localStorage.getItem(Yt);if(y)try{const Z=JSON.parse(y);Z.timestamp=Date.now(),localStorage.setItem(Yt,JSON.stringify(Z))}catch(Z){console.warn("Failed to update cache timestamp:",Z)}r(ge.aiImageGeneration)},[r]),re=t.useCallback(()=>{const y=localStorage.getItem(Xt);if(y)try{const Z=JSON.parse(y);Z.timestamp=Date.now(),localStorage.setItem(Xt,JSON.stringify(Z))}catch(Z){console.warn("Failed to update cache timestamp:",Z)}r(ge.aiVideoGeneration)},[r]);return e.jsxDEV(e.Fragment,{children:[e.jsxDEV(Jt,{open:s.openDialogTypes.has(ge.mermaidToDrawnix),onOpenChange:y=>{y?n(ge.mermaidToDrawnix):r(ge.mermaidToDrawnix)},children:e.jsxDEV(Qt,{className:"Dialog ttd-dialog",container:i,children:e.jsxDEV(ii,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:647,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:646,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:636,columnNumber:7},void 0),e.jsxDEV(Jt,{open:s.openDialogTypes.has(ge.markdownToDrawnix),onOpenChange:y=>{y?n(ge.markdownToDrawnix):r(ge.markdownToDrawnix)},children:e.jsxDEV(Qt,{className:"Dialog ttd-dialog",container:i,children:e.jsxDEV(ni,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:661,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:660,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:650,columnNumber:7},void 0),e.jsxDEV(Zt,{id:"ai-image-dialog",visible:s.openDialogTypes.has(ge.aiImageGeneration),title:I==="batch"?a==="zh"?"批量出图":"Batch Generation":a==="zh"?"AI 图片生成":"AI Image Generation",headerContent:S?e.jsxDEV("div",{className:"image-generation-mode-tabs",onMouseDown:y=>y.stopPropagation(),onTouchStart:y=>y.stopPropagation(),onPointerDown:y=>y.stopPropagation(),children:[e.jsxDEV("button",{type:"button",className:`mode-tab ${I==="single"?"active":""}`,onClick:y=>{y.stopPropagation(),y.preventDefault(),ie("single")},children:a==="zh"?"AI 图片生成":"AI Image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:685,columnNumber:15},void 0),e.jsxDEV("button",{type:"button",className:`mode-tab ${I==="batch"?"active":""}`,onClick:y=>{y.stopPropagation(),y.preventDefault(),ie("batch")},children:a==="zh"?"批量出图":"Batch"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:698,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:679,columnNumber:13},void 0):void 0,onClose:De,width:"80%",height:"60%",minWidth:800,minHeight:500,x:"center",y:"center",modal:!1,minimizable:!1,className:"winbox-ai-generation winbox-ai-image-generation",container:i,autoMaximize:P||b,children:s.openDialogTypes.has(ge.aiImageGeneration)&&(I==="batch"?e.jsxDEV(t.Suspense,{fallback:e.jsxDEV("div",{className:"loading-fallback",children:a==="zh"?"加载中...":"Loading..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:731,columnNumber:17},void 0),children:e.jsxDEV(ji,{onSwitchToSingle:()=>ie("single"),selectedModel:f,selectedModelRef:u,onModelChange:M,onModelRefChange:W},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:736,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:729,columnNumber:13},void 0):e.jsxDEV(vi,{initialPrompt:F.initialPrompt,initialImages:F.initialImages,selectedElementIds:F.selectedElementIds,initialWidth:(d==null?void 0:d.initialWidth)||(d==null?void 0:d.width),initialHeight:(d==null?void 0:d.initialHeight)||(d==null?void 0:d.height),initialResultUrl:F.initialResultUrl,initialAspectRatio:F.initialAspectRatio,targetFrameId:F.targetFrameId,targetFrameDimensions:F.targetFrameDimensions,selectedModel:f,selectedModelRef:u,onModelChange:M,onModelRefChange:W,externalBatchId:d==null?void 0:d.batchId,initialAutoInsertToCanvas:d==null?void 0:d.autoInsertToCanvas,onDraftChange:d==null?void 0:d.onDraftChange},(d==null?void 0:d.batchId)||"ai-image-dialog",!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:745,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:665,columnNumber:7},void 0),e.jsxDEV(Zt,{id:"ai-video-dialog",visible:s.openDialogTypes.has(ge.aiVideoGeneration),title:a==="zh"?"AI 视频生成":"AI Video Generation",onClose:re,width:"70%",height:"60%",minWidth:800,minHeight:600,x:"center",y:"center",modal:!1,minimizable:!1,className:"winbox-ai-generation winbox-ai-video-generation",container:i,autoMaximize:b,children:s.openDialogTypes.has(ge.aiVideoGeneration)&&e.jsxDEV(yi,{initialPrompt:J.initialPrompt,initialImage:J.initialImage,initialImages:J.initialImages,initialDuration:J.initialDuration,initialModel:J.initialModel,initialSize:J.initialSize,initialResultUrl:J.initialResultUrl,selectedModel:_,selectedModelRef:B,onModelChange:X,onModelRefChange:de,externalBatchId:p==null?void 0:p.batchId,initialAutoInsertToCanvas:p==null?void 0:p.autoInsertToCanvas,onDraftChange:p==null?void 0:p.onDraftChange},(p==null?void 0:p.batchId)||"ai-video-dialog",!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:791,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:773,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:635,columnNumber:5},void 0)},Ui=t.memo(ki,(i,s)=>i.container===s.container);export{Ui as TTDDialog};
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.drawnix .dialog-mermaid-title{margin-block:.25rem;font-size:1.25rem;font-weight:700;padding-inline:2.5rem}:export{themeFilter:invert(93%) hue-rotate(180deg);rightSidebarWidth:302px}.drawnix .Dialog.ttd-dialog{padding:1.25rem;display:flex;flex-direction:column;width:100%;height:100%;max-height:540px}.drawnix .Dialog.ttd-dialog.Dialog--fullscreen{margin-top:0}.drawnix .Dialog.ttd-dialog .Island{padding-inline:0!important;height:100%;display:flex;flex-direction:column;flex:1 1 auto;box-shadow:none}.drawnix .Dialog.ttd-dialog .Modal__content{height:auto;max-height:100%}@media screen and (min-width:861px){.drawnix .Dialog.ttd-dialog .Modal__content{max-height:750px;height:100%}}.drawnix .Dialog.ttd-dialog .Dialog__content{flex:1 1 auto}.drawnix .ttd-dialog-desc{font-size:15px;font-style:italic;font-weight:500;margin-bottom:1.5rem}.drawnix .ttd-dialog-tabs-root{width:100%;height:100%;display:flex;flex-direction:column}.drawnix .ttd-dialog-tab-trigger{color:var(--color-on-surface);font-size:.875rem;margin:0;padding:0 1rem;background-color:transparent;border:0;height:2.875rem;font-weight:600;font-family:inherit;letter-spacing:.4px}.drawnix .ttd-dialog-tab-trigger[data-state=active]{border-bottom:2px solid var(--color-primary)}.drawnix .ttd-dialog-triggers{border-bottom:1px solid var(--color-surface-high);margin-bottom:1.5rem;padding-inline:2.5rem}.drawnix .ttd-dialog-content{padding-inline:2.5rem;height:100%;display:flex;flex-direction:column}.drawnix .ttd-dialog-content[hidden]{display:none}.drawnix .ttd-dialog-input{width:auto;height:10rem;resize:none;border-radius:var(--border-radius-lg);border:1px solid var(--dialog-border-color);white-space:pre-wrap;padding:.85rem;box-sizing:border-box;font-family:monospace}@media screen and (min-width:861px){.drawnix .ttd-dialog-input{width:100%;height:100%}}.drawnix .ttd-dialog-output-wrapper{display:flex;align-items:center;justify-content:center;padding:.85rem;box-sizing:border-box;flex-grow:1;position:relative;border-radius:var(--border-radius-lg);border:1px solid var(--dialog-border-color);height:400px;width:auto}@media screen and (min-width:861px){.drawnix .ttd-dialog-output-wrapper{width:100%;height:200px}}.drawnix .ttd-dialog-output-wrapper canvas{max-width:100%;max-height:100%}.drawnix .ttd-dialog-output-canvas-container{display:flex;width:100%;height:100%;align-items:center;justify-content:center;flex-grow:1;overflow:hidden}.drawnix .ttd-dialog-output-error{color:red;font-weight:700;font-size:30px;word-break:break-word;overflow:auto;max-height:100%;height:100%;width:100%;text-align:center;position:absolute;z-index:10}.drawnix .ttd-dialog-output-error p{font-weight:500;font-family:Cascadia;text-align:left;white-space:pre-wrap;font-size:.875rem;padding:0 10px}.drawnix .ttd-dialog-panels{height:100%}@media screen and (min-width:861px){.drawnix .ttd-dialog-panels{display:grid;grid-template-columns:1fr 1fr;gap:4rem}}.drawnix .ttd-dialog-panel{display:flex;flex-direction:column;width:100%}.drawnix .ttd-dialog-panel__header{display:flex;margin:0 4px 4px;align-items:center;gap:1rem}.drawnix .ttd-dialog-panel__header label{font-size:14px;font-style:normal;font-weight:600}.drawnix .ttd-dialog-panel:first-child .ttd-dialog-panel-button-container:not(.invisible){margin-bottom:4rem}@media screen and (min-width:861px){.drawnix .ttd-dialog-panel .ttd-dialog-panel-button-container:not(.invisible){margin-bottom:.5rem!important}}.drawnix .ttd-dialog-panel textarea{height:100%;resize:none;border-radius:var(--border-radius-lg);border:1px solid var(--dialog-border-color);white-space:pre-wrap;padding:.85rem;box-sizing:border-box;width:100%;font-family:monospace}@media screen and (max-width:861px){.drawnix .ttd-dialog-panel textarea{width:auto;height:10rem}}.drawnix .ttd-dialog-panel-button-container{margin-top:1rem;margin-bottom:.5rem}.drawnix .ttd-dialog-panel-button-container.invisible .ttd-dialog-panel-button{display:none}@media screen and (min-width:861px){.drawnix .ttd-dialog-panel-button-container.invisible .ttd-dialog-panel-button{display:block;visibility:hidden}}.drawnix .ttd-dialog-panel-button.drawnix-button{font-family:inherit;font-weight:600;height:2.5rem;font-size:12px;color:#fff;background-color:var(--color-primary);width:100%}.drawnix .ttd-dialog-panel-button.drawnix-button:hover{background-color:var(--color-primary-darker)}.drawnix .ttd-dialog-panel-button.drawnix-button:active{background-color:var(--color-primary-darkest)}.drawnix .ttd-dialog-panel-button.drawnix-button:disabled{opacity:.5;cursor:not-allowed}.drawnix .ttd-dialog-panel-button.drawnix-button:disabled:hover{background-color:var(--color-primary)}@media screen and (min-width:861px){.drawnix .ttd-dialog-panel-button.drawnix-button{width:auto;min-width:7.5rem}}.drawnix.theme--dark.drawnix .ttd-dialog-panel-button.drawnix-button{color:var(--color-gray-100)}.drawnix .ttd-dialog-panel-button{position:relative}.drawnix .ttd-dialog-panel-button div{display:contents}.drawnix .ttd-dialog-panel-button div.invisible{visibility:hidden}.drawnix .ttd-dialog-panel-button div.Spinner{display:flex!important;position:absolute;top:0;right:0;bottom:0;left:0;--spinner-color: white}.drawnix.theme--dark.drawnix .ttd-dialog-panel-button div.Spinner{--spinner-color: var(--color-gray-100)}.drawnix .ttd-dialog-panel-button div span{padding-left:.5rem;display:flex}.drawnix .ttd-dialog-submit-shortcut{margin-inline-start:.5rem;font-size:.625rem;opacity:.6;display:flex;gap:.125rem}.drawnix .ttd-dialog-submit-shortcut__key{border:1px solid gray;padding:2px 3px;border-radius:4px}@media(max-width:768px){.drawnix .Dialog.ttd-dialog{padding:1rem;max-height:85vh;margin-top:60px}.drawnix .Dialog.ttd-dialog .Island{padding:0}.drawnix .ttd-dialog-triggers{padding-inline:1rem;margin-bottom:1rem}.drawnix .ttd-dialog-content{padding-inline:1rem}}@media(max-width:480px){.drawnix .Dialog.ttd-dialog{padding:.75rem;max-height:80vh;margin-top:50px;max-width:95vw}.drawnix .Dialog.ttd-dialog .Modal__content{max-height:75vh}.drawnix .ttd-dialog-triggers{padding-inline:.5rem;margin-bottom:.75rem}.drawnix .ttd-dialog-content{padding-inline:.5rem}.drawnix .ttd-dialog-tab-trigger{padding:0 .5rem;font-size:.75rem;height:2.5rem}}@media(max-width:768px){.drawnix .t-dialog__header>div{flex-wrap:wrap;gap:8px!important}.drawnix .t-dialog__header .t-select{max-width:200px!important;min-width:120px!important;flex-shrink:1}}@media(max-width:480px){.drawnix .t-dialog__header>div{gap:6px!important}.drawnix .t-dialog__header .t-select{max-width:140px!important;min-width:100px!important}.drawnix .t-dialog__header .t-select .t-input__inner{font-size:12px}}.ai-image-generation-container{display:flex;flex-direction:column;height:80vh;overflow:hidden;position:relative}.dialog-close-button{position:absolute;top:1px;right:1px;width:24px;height:24px;border:none;background:var(--color-bg-container, #fff);color:var(--color-text-secondary, #666);border-radius:6px;cursor:pointer;font-size:20px;font-weight:400;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 2px 8px #0000001a;z-index:10}.dialog-close-button:hover{background:var(--color-error-light, #fff2f0);color:var(--color-error, #ff4d4f);transform:scale(1.05)}.dialog-close-button:active{transform:scale(.95)}.preview-section{flex:1;display:flex;flex-direction:column;gap:16px;max-height:70vh;position:relative}.section-title{font-size:18px;font-weight:600;color:var(--color-text-primary, #333);margin:0;padding-bottom:8px;border-bottom:1px solid var(--color-border-light, #f0f0f0)}.section-actions{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:nowrap;margin-top:12px}.section-actions.unified-action-bar{gap:8px}.section-actions .action-bar-left{display:flex;align-items:center;gap:8px}.section-actions .auto-insert-checkbox{font-size:13px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.form-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.form-header-row .model-selector-wrapper{flex:1;width:100%;max-width:none}.form-header-row .model-params-wrapper{flex-shrink:0}.model-params-row{margin-bottom:8px}.batch-mode-btn{padding:6px 12px;background:none;color:#666;border:none;font-size:13px;font-weight:400;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.batch-mode-btn:hover:not(:disabled){color:#f39c12}.batch-mode-btn:disabled{opacity:.5;cursor:not-allowed}.loading-fallback{display:flex;align-items:center;justify-content:center;height:400px;color:#999;font-size:14px}.unified-action-box{display:flex;align-items:center;padding:4px;background:#fff;border:1px solid #e8e8e8;border-radius:8px;box-shadow:0 2px 4px #0000000d;transition:all .2s ease;height:36px;min-width:140px;flex-shrink:1;max-width:100%}.unified-action-box:hover{box-shadow:0 4px 8px #0000001a;border-color:#f39c12}.unified-action-box:focus-within{border-color:#f39c12;box-shadow:0 0 0 2px #f39c121a}.unified-action-box.is-generating{opacity:.9}.quantity-section{display:flex;align-items:center;position:relative;z-index:10}.quantity-label{display:none}.quantity-control{display:flex;align-items:center;background:#f5f5f5;border:1px solid #e8e8e8;border-radius:6px;transition:all .2s ease}.quantity-control:hover{border-color:#d9d9d9}.quantity-control.is-open{border-color:var(--color-primary, #0052d9);box-shadow:0 0 0 2px #0052d91a}.quantity-control.is-disabled{opacity:.5;cursor:not-allowed;background:#f0f0f0}.quantity-input{width:36px;padding:4px 0 4px 8px;border:none;background:transparent;font-size:14px;font-weight:600;color:#333;text-align:center;outline:none}.quantity-input:disabled{cursor:not-allowed}.quantity-toggle{padding:4px 6px 4px 2px;border:none;background:transparent;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.quantity-toggle:hover:not(:disabled){color:#666}.quantity-toggle:disabled{cursor:not-allowed}.quantity-icon{transition:transform .2s ease}.quantity-icon.is-open{transform:rotate(180deg)}.quantity-dropdown{position:absolute;bottom:100%;left:0;margin-bottom:8px;width:140px;max-height:280px;overflow-y:auto;background:#fff;border:1px solid #e8e8e8;border-radius:8px;box-shadow:0 -8px 24px #0000001f;z-index:1000;animation:dropdownFadeInUp .15s ease}@keyframes dropdownFadeInUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.quantity-dropdown-header{padding:8px 12px;font-size:11px;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px;background:#fafafa;border-bottom:1px solid #f0f0f0}.quantity-option{width:100%;padding:8px 12px;border:none;background:transparent;text-align:left;font-size:13px;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:all .15s ease}.quantity-option:hover{background:#f5f5f5}.quantity-option.is-selected{color:var(--color-primary, #0052d9);font-weight:500;background:#0052d90d}.quantity-option.is-selected svg{color:var(--color-primary, #0052d9)}.action-divider{width:1px;height:28px;background:#e8e8e8;margin:0 4px}.generate-button{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;height:28px;min-width:80px;flex:1;overflow:hidden;text-overflow:ellipsis;background:linear-gradient(135deg,#fbd38d,#f6ad55);color:#fff;font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #f39c1233;white-space:nowrap}.generate-button:hover:not(:disabled){background:linear-gradient(135deg,#e67e22,#d35400);transform:translateY(-1px);box-shadow:0 4px 8px #f39c124d}.generate-button:active:not(:disabled){transform:translateY(0)}.generate-button:disabled{background:linear-gradient(135deg,#fbd38d,#f6ad55);box-shadow:none;cursor:not-allowed;opacity:.8}.generate-button.loading{position:relative;color:transparent}.generate-button.loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #fff;border-radius:50%;animation:spin 1s linear infinite}.unified-action-box.can-generate .generate-button{background:linear-gradient(135deg,#f39c12,#e67e22)}.unified-action-box.can-generate .generate-button:hover:not(:disabled){background:linear-gradient(135deg,#e67e22,#d35400)}.unified-action-box.can-generate .generate-button .action-button--reset-subtle{color:var(--color-text-placeholder, #999)!important;transition:all .2s ease!important}.unified-action-box.can-generate .generate-button .action-button--reset-subtle:hover{background:var(--color-bg-secondary, #f5f5f5)!important;color:#f39c12!important}.unified-action-box.can-generate .generate-button .action-button--reset-subtle .t-icon{font-size:18px}.action-button{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid transparent;min-width:80px;height:36px;display:inline-flex;align-items:center;justify-content:center}.action-button.primary{background:#f39c12;color:#fff;border-color:#f39c12}.action-button.primary:hover:not(:disabled){background:#e67e22;border-color:#e67e22}.action-button.primary:active:not(:disabled){background:#d35400;border-color:#d35400}.action-button.primary.loading{position:relative;color:transparent}.action-button.primary.loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #fff;border-radius:50%;animation:spin 1s linear infinite}.action-button.secondary{background:var(--color-bg-container, #fff);color:var(--color-text-primary, #333);border-color:var(--color-border, #d9d9d9)}.action-button.secondary:hover:not(:disabled){background:var(--color-bg-hover, #f5f5f5);border-color:var(--color-primary, #0052d9);color:var(--color-primary, #0052d9)}.action-button.secondary:active:not(:disabled){background:var(--color-bg-active, #e6f7ff)}.action-button.tertiary{background:transparent;color:var(--color-text-secondary, #666);border-color:var(--color-border, #d9d9d9)}.action-button.tertiary:hover:not(:disabled){background:var(--color-error-light, #fff2f0);border-color:var(--color-error, #ff4d4f);color:var(--color-error, #ff4d4f)}.action-button.tertiary:active:not(:disabled){background:var(--color-error-light, #fff2f0)}.action-button:disabled{background:var(--color-bg-disabled, #f5f5f5);color:var(--color-text-disabled, #999);border-color:var(--color-border-disabled, #d9d9d9);cursor:not-allowed}.image-params-row{display:flex;align-items:flex-start;gap:16px}.image-params-row .image-upload-container{flex:1}.image-params-row .aspect-ratio-selector--compact{flex-shrink:0;padding-top:4px}.ai-image-generation-form{display:flex;flex-direction:column;gap:12px;flex:1 1 auto}.ai-image-generation-form .form-field--prompt{flex:1 1 auto;display:flex;flex-direction:column;min-height:150px}.ai-image-generation-form .form-field--prompt .form-textarea{flex:1 1 auto;min-height:100px!important;height:auto}.ai-image-generation-form .form-description{font-size:14px;color:var(--color-text-secondary, #666);line-height:1.5;margin-bottom:8px}.ai-image-generation-form .form-field{display:flex;flex-direction:column;gap:8px}.ai-image-generation-form .form-field .form-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.ai-image-generation-form .form-field .form-label-right{flex-shrink:0}.ai-image-generation-form .form-field .form-label{font-size:14px;font-weight:500;color:var(--color-text-primary, #333);margin:0}.ai-image-generation-form .form-field .form-label-with-icon{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.ai-image-generation-form .form-field .textarea-with-preset{position:relative;display:flex;gap:8px;align-items:flex-start}.ai-image-generation-form .form-field .preset-tooltip-container{position:relative;display:inline-block;flex-shrink:0}.ai-image-generation-form .form-field .preset-icon-button{background:none;border:1px solid var(--color-border, #d9d9d9);border-radius:6px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:var(--color-text-placeholder, #999);height:32px;width:32px}.ai-image-generation-form .form-field .preset-icon-button:hover{background:var(--color-bg-secondary, #f5f5f5);border-color:var(--color-primary, #0052d9);color:#f39c12}.ai-image-generation-form .form-field .preset-icon-button .t-icon{font-size:18px}.ai-image-generation-form .form-field .preset-icon-button:active{background:var(--color-bg-tertiary, #e8e8e8)}.ai-image-generation-form .form-field .preset-icon-button:disabled{opacity:.6;cursor:not-allowed}.ai-image-generation-form .form-field .form-textarea{flex:1;min-height:120px;padding:12px;border:1px solid var(--color-border, #d9d9d9);border-radius:6px;font-size:14px;line-height:1.5;resize:vertical;transition:border-color .2s;font-family:inherit;background:var(--color-bg-container, #fff);color:var(--color-text-primary, #333)}.ai-image-generation-form .form-field .form-textarea:focus{outline:none;border-color:var(--color-primary, #0052d9);box-shadow:0 0 0 2px #0052d91a}.ai-image-generation-form .form-field .form-textarea:disabled{background-color:var(--color-bg-disabled, #f5f5f5);color:var(--color-text-disabled, #999);cursor:not-allowed}.ai-image-generation-form .form-field .form-textarea::-moz-placeholder{color:var(--color-text-placeholder, #999)}.ai-image-generation-form .form-field .form-textarea::placeholder{color:var(--color-text-placeholder, #999)}.ai-image-generation-form .form-field .preset-tooltip{border:1px solid var(--color-border, #d9d9d9);border-radius:6px;background:var(--color-bg-container, #fff);box-shadow:0 4px 12px #00000026;max-height:280px;overflow-y:auto;min-width:280px;max-width:320px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}.ai-image-generation-form .form-field .preset-tooltip::-webkit-scrollbar{width:4px}.ai-image-generation-form .form-field .preset-tooltip::-webkit-scrollbar-track{background:transparent}.ai-image-generation-form .form-field .preset-tooltip::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.ai-image-generation-form .form-field .preset-header{padding:8px 12px;font-size:12px;font-weight:500;color:var(--color-text-secondary, #666);border-bottom:1px solid var(--color-border, #d9d9d9);background:var(--color-bg-secondary, #f5f5f5)}.ai-image-generation-form .form-field .preset-list{display:flex;flex-direction:column}.ai-image-generation-form .form-field .preset-item{padding:8px 12px;border:none;background:none;text-align:left;font-size:13px;color:var(--color-text-primary, #333);cursor:pointer;border-bottom:1px solid var(--color-border-light, #f0f0f0);transition:background-color .2s ease}.ai-image-generation-form .form-field .preset-item:hover{background:var(--color-bg-secondary, #f5f5f5)}.ai-image-generation-form .form-field .preset-item:last-child{border-bottom:none}.ai-image-generation-form .form-field .preset-item:disabled{opacity:.6;cursor:not-allowed}.ai-image-generation-form .form-field .size-inputs{display:flex;flex-direction:row;gap:16px;align-items:center}.ai-image-generation-form .form-field .size-input-row{display:flex;align-items:center;gap:8px;position:relative;flex:1}.ai-image-generation-form .form-field .size-label{font-size:14px;color:var(--color-text-primary, #333);font-weight:500;min-width:60px;flex-shrink:0}.ai-image-generation-form .form-field .size-input{padding:8px 12px;border:1px solid var(--color-border, #d9d9d9);border-radius:6px;font-size:14px;background:var(--color-bg-container, #fff);color:var(--color-text-primary, #333);flex:1}.ai-image-generation-form .form-field .size-input:focus{outline:none;border-color:var(--color-primary, #0052d9);box-shadow:0 0 0 2px #0052d91a}.ai-image-generation-form .form-field .size-input:disabled{background-color:var(--color-bg-disabled, #f5f5f5);color:var(--color-text-disabled, #999);cursor:not-allowed}.ai-image-generation-form .form-field .size-shortcuts-tooltip{position:relative;margin-left:8px}.ai-image-generation-form .form-field .tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;background:var(--color-bg-secondary, #f5f5f5);cursor:pointer;font-size:14px;transition:all .2s ease}.ai-image-generation-form .form-field .tooltip-trigger:hover{background:var(--color-primary-light, #e6f7ff);color:var(--color-primary, #0052d9)}.ai-image-generation-form .form-field .tooltip-content{position:absolute;bottom:100%;right:0;margin-bottom:8px;padding:8px;background:var(--color-bg-container, #fff);border:1px solid var(--color-border, #d9d9d9);border-radius:6px;box-shadow:0 4px 12px #00000026;min-width:200px;z-index:1000;opacity:0;visibility:hidden;transform:translateY(4px);transition:all .2s ease}.ai-image-generation-form .form-field .size-shortcuts-tooltip:hover .tooltip-content{opacity:1;visibility:visible;transform:translateY(0)}.ai-image-generation-form .form-field .tooltip-header{font-size:12px;font-weight:500;color:var(--color-text-secondary, #666);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--color-border-light, #f0f0f0)}.ai-image-generation-form .form-field .shortcuts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.ai-image-generation-form .form-field .shortcut-button{padding:6px 8px;border:1px solid var(--color-border, #d9d9d9);border-radius:4px;background:var(--color-bg-container, #fff);color:var(--color-text-primary, #333);font-size:12px;cursor:pointer;transition:all .2s ease;text-align:center}.ai-image-generation-form .form-field .shortcut-button:hover:not(:disabled){background:var(--color-primary-light, #e6f7ff);border-color:var(--color-primary, #0052d9);color:var(--color-primary, #0052d9)}.ai-image-generation-form .form-field .shortcut-button:disabled{opacity:.6;cursor:not-allowed}.ai-image-generation-form .form-field .form-select{width:100%;padding:8px 12px;border:1px solid var(--color-border, #d9d9d9);border-radius:6px;font-size:14px;background:var(--color-bg-container, #fff);color:var(--color-text-primary, #333);cursor:pointer;transition:border-color .2s}.ai-image-generation-form .form-field .form-select:focus{outline:none;border-color:var(--color-primary, #0052d9);box-shadow:0 0 0 2px #0052d91a}.ai-image-generation-form .form-field .form-select:disabled{background-color:var(--color-bg-disabled, #f5f5f5);color:var(--color-text-disabled, #999);cursor:not-allowed}.ai-image-generation-form .form-field .api-mode-selector{display:flex;flex-direction:column;gap:8px}.ai-image-generation-form .form-field .api-mode-option{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--color-border, #d9d9d9);border-radius:6px;cursor:pointer;transition:all .2s ease}.ai-image-generation-form .form-field .api-mode-option:hover{background:var(--color-bg-hover, #f5f5f5);border-color:var(--color-primary, #0052d9)}.ai-image-generation-form .form-field .api-mode-option input[type=radio]{margin:0;accent-color:var(--color-primary, #0052d9)}.ai-image-generation-form .form-field .api-mode-option .api-mode-label{font-weight:500;color:var(--color-text-primary, #333)}.ai-image-generation-form .form-field .api-mode-option .api-mode-desc{font-size:12px;color:var(--color-text-secondary, #666);font-family:monospace}.ai-image-generation-form .form-field .api-mode-option:has(input:checked){background:var(--color-primary-light, #e6f7ff);border-color:var(--color-primary, #0052d9)}.ai-image-generation-form .form-field .api-mode-option:has(input:disabled){opacity:.6;cursor:not-allowed}.ai-image-generation-form .form-field .image-upload-container{display:flex;flex-direction:column;gap:16px}.ai-image-generation-form .form-field .unified-image-area{min-height:120px}.ai-image-generation-form .form-field .upload-area{position:relative}.ai-image-generation-form .form-field .upload-source-buttons{display:flex;gap:12px;margin-bottom:0}.ai-image-generation-form .form-field .upload-source-buttons button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;min-height:100px;border:2px dashed var(--color-border, #d9d9d9);border-radius:8px;background:var(--color-bg-secondary, #f5f5f5);color:var(--color-text-primary, #333);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;flex-direction:column}.ai-image-generation-form .form-field .upload-source-buttons button:hover:not(:disabled){border-color:var(--color-primary, #0052d9);background:var(--color-primary-light, #e6f7ff);color:var(--color-primary, #0052d9)}.ai-image-generation-form .form-field .upload-source-buttons button:hover:not(:disabled) svg{color:var(--color-primary, #0052d9)}.ai-image-generation-form .form-field .upload-source-buttons button:disabled{opacity:.6;cursor:not-allowed}.ai-image-generation-form .form-field .upload-source-buttons button svg{flex-shrink:0;transition:color .2s ease}.ai-image-generation-form .form-field .upload-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden}.ai-image-generation-form .form-field .upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;border:2px dashed var(--color-border, #d9d9d9);border-radius:8px;background:var(--color-bg-secondary, #f5f5f5);cursor:pointer;transition:all .2s ease}.ai-image-generation-form .form-field .upload-label:hover{border-color:var(--color-primary, #0052d9);background:var(--color-primary-light, #e6f7ff)}.ai-image-generation-form .form-field .upload-label .upload-icon{font-size:24px;margin-bottom:8px}.ai-image-generation-form .form-field .upload-label .upload-text{font-size:14px;font-weight:500;color:var(--color-text-primary, #333);margin-bottom:4px}.ai-image-generation-form .form-field .upload-label .upload-hint{font-size:12px;color:var(--color-text-secondary, #666)}.ai-image-generation-form .form-field .uploaded-images{border:1px solid var(--color-border, #d9d9d9);border-radius:6px;padding:12px}.ai-image-generation-form .form-field .uploaded-images-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--color-border-light, #f0f0f0)}.ai-image-generation-form .form-field .uploaded-images-header .images-count{font-size:13px;color:var(--color-text-secondary, #666);font-weight:500}.ai-image-generation-form .form-field .uploaded-images-header .clear-images-btn{padding:4px 8px;border:1px solid var(--color-border, #d9d9d9);border-radius:4px;background:var(--color-bg-container, #fff);color:var(--color-text-secondary, #666);font-size:12px;cursor:pointer;transition:all .2s ease}.ai-image-generation-form .form-field .uploaded-images-header .clear-images-btn:hover:not(:disabled){background:var(--color-error-light, #fff2f0);border-color:var(--color-error, #ff4d4f);color:var(--color-error, #ff4d4f)}.ai-image-generation-form .form-field .uploaded-images-header .clear-images-btn:disabled{opacity:.6;cursor:not-allowed}.ai-image-generation-form .form-field .form-label-with-icon .clear-images-btn{padding:4px 8px;border:1px solid var(--color-border, #d9d9d9);border-radius:4px;background:var(--color-bg-container, #fff);color:var(--color-text-secondary, #666);font-size:12px;cursor:pointer;transition:all .2s ease}.ai-image-generation-form .form-field .form-label-with-icon .clear-images-btn:hover:not(:disabled){background:var(--color-error-light, #fff2f0);border-color:var(--color-error, #ff4d4f);color:var(--color-error, #ff4d4f)}.ai-image-generation-form .form-field .form-label-with-icon .clear-images-btn:disabled{opacity:.6;cursor:not-allowed}.ai-image-generation-form .form-field .images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.ai-image-generation-form .form-field .add-more-item{display:flex;align-items:center;justify-content:center;min-height:100px;border:2px dashed var(--color-border, #d9d9d9);border-radius:6px;background:var(--color-bg-secondary, #f5f5f5);cursor:pointer;transition:all .2s ease;position:relative}.ai-image-generation-form .form-field .add-more-item:hover{border-color:var(--color-primary, #0052d9);background:var(--color-primary-light, #e6f7ff)}.ai-image-generation-form .form-field .add-more-item .add-more-buttons{display:flex;flex-direction:column;gap:8px;width:100%;padding:16px}.ai-image-generation-form .form-field .add-more-item .add-more-buttons .add-more-btn{flex:1;height:36px;font-size:13px;font-weight:500;border-width:1.5px}.ai-image-generation-form .form-field .add-more-item .add-more-buttons .add-more-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #0052d926}.ai-image-generation-form .form-field .add-more-item .add-more-buttons .add-more-btn:active:not(:disabled){transform:translateY(0)}.ai-image-generation-form .form-field .add-more-item:has(.add-more-buttons){cursor:default}.ai-image-generation-form .form-field .add-more-item:has(.add-more-buttons):hover{border-color:var(--color-border, #d9d9d9);background:var(--color-bg-secondary, #f5f5f5)}.ai-image-generation-form .form-field .add-more-item .add-more-label{display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;width:100%;height:100%;padding:8px}.ai-image-generation-form .form-field .add-more-item .add-more-label .add-more-icon{font-size:24px;font-weight:700;color:var(--color-text-secondary, #666);margin-bottom:4px}.ai-image-generation-form .form-field .add-more-item .add-more-label .add-more-text{font-size:12px;color:var(--color-text-secondary, #666);font-weight:500}.ai-image-generation-form .form-field .add-more-item:hover .add-more-label .add-more-icon,.ai-image-generation-form .form-field .add-more-item:hover .add-more-label .add-more-text{color:var(--color-primary, #0052d9)}.ai-image-generation-form .form-field .uploaded-image-item{position:relative;border-radius:6px;overflow:visible;border:1px solid var(--color-border, #d9d9d9)}.ai-image-generation-form .form-field .uploaded-image-item .uploaded-image-preview-container{position:relative;display:block;border-radius:6px;overflow:hidden;height:80px}.ai-image-generation-form .form-field .uploaded-image-item .uploaded-image-preview-container .uploaded-image-preview{width:100%;max-height:80px;-o-object-fit:contain;object-fit:contain;display:block;background:var(--color-bg-layout, #f5f5f5)}.ai-image-generation-form .form-field .uploaded-image-item .remove-image-btn{position:absolute;top:4px;right:4px;width:20px;height:20px;border:none;border-radius:50%;background:#0009;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.ai-image-generation-form .form-field .uploaded-image-item .remove-image-btn:hover:not(:disabled){background:var(--color-error, #ff4d4f)}.ai-image-generation-form .form-field .uploaded-image-item .remove-image-btn:disabled{opacity:.6;cursor:not-allowed}.ai-image-generation-form .form-field .uploaded-image-item .image-info{padding:6px 8px;background:var(--color-bg-container, #fff);display:flex;flex-direction:column;gap:2px}.ai-image-generation-form .form-field .uploaded-image-item .image-info .image-name{font-size:11px;color:var(--color-text-primary, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-image-generation-form .form-field .uploaded-image-item .image-info .image-size{font-size:10px;color:var(--color-text-secondary, #666)}.ai-image-generation-form .image-hover-tooltip{background:var(--color-bg-container, #fff);border:2px solid var(--color-primary, #1890ff);border-radius:8px;padding:8px;box-shadow:0 8px 24px #0003;pointer-events:none;max-width:300px;max-height:300px}.ai-image-generation-form .image-hover-tooltip img{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;display:block}.ai-image-generation-form .image-hover-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--color-primary, #1890ff)}.ai-image-generation-form .form-error{padding:8px 12px;background-color:var(--color-error-bg, #fff2f0);border:1px solid var(--color-error-border, #ffccc7);border-radius:6px;color:var(--color-error, #ff4d4f);font-size:14px;line-height:1.5}.ai-image-generation-form .form-success{padding:8px 12px;background-color:var(--color-success-bg, #f6ffed);border:1px solid var(--color-success-border, #b7eb8f);border-radius:6px;color:var(--color-success, #52c41a);font-size:14px;line-height:1.5}.ai-image-generation-form .form-hint{font-size:12px;color:var(--color-text-secondary, #666);line-height:1.4;margin-top:4px}.ai-image-generation-form .form-link{color:var(--color-primary, #0052d9);text-decoration:none}.ai-image-generation-form .form-link:hover{text-decoration:underline}.image-preview-container{display:flex;align-items:center;justify-content:center;min-height:350px;height:calc(100% - 100px);max-height:510px;padding:16px;border:1px dashed var(--color-border, #d9d9d9);border-radius:8px;background:var(--color-bg-container, #fff)}.image-preview-container .preview-loading{display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--color-text-secondary, #666)}.image-preview-container .preview-loading .loading-spinner{width:32px;height:32px;border:3px solid var(--color-border-light, #f0f0f0);border-top:3px solid var(--color-primary, #0052d9);border-radius:50%;animation:spin 1s linear infinite}.image-preview-container .preview-loading .loading-text{font-size:14px;font-weight:500}.image-preview-container .preview-image-wrapper{max-width:100%;max-height:400px;display:flex;align-items:center;justify-content:center}.image-preview-container .preview-image-wrapper .preview-image{max-width:100%;max-height:400px;border-radius:8px;box-shadow:0 2px 8px #0000001a;-o-object-fit:contain;object-fit:contain}.image-preview-container .preview-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--color-text-secondary, #666)}.image-preview-container .preview-placeholder .placeholder-icon{font-size:48px;opacity:.5}.image-preview-container .preview-placeholder .placeholder-text{font-size:14px;text-align:center}.keyboard-shortcut{margin-left:auto;font-size:12px;color:var(--color-text-secondary, #666);padding:4px 8px;background:var(--color-bg-secondary, #f5f5f5);border-radius:4px;font-family:monospace}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ai-image-generation-container,.ai-image-generation-container *{color-scheme:light}.ai-image-generation-container .section-title{color:#333!important;border-color:#f0f0f0!important}.ai-image-generation-container .form-description{color:#666!important}.ai-image-generation-container .form-label,.ai-image-generation-container .size-label{color:#333!important}.ai-image-generation-container .form-textarea,.ai-image-generation-container .form-select,.ai-image-generation-container .size-input{background:#fff!important;color:#333!important;border-color:#d9d9d9!important}.ai-image-generation-container .form-textarea::-moz-placeholder,.ai-image-generation-container .form-select::-moz-placeholder,.ai-image-generation-container .size-input::-moz-placeholder{color:#999!important}.ai-image-generation-container .form-textarea::placeholder,.ai-image-generation-container .form-select::placeholder,.ai-image-generation-container .size-input::placeholder{color:#999!important}.ai-image-generation-container .form-textarea:disabled,.ai-image-generation-container .form-select:disabled,.ai-image-generation-container .size-input:disabled{background-color:#f5f5f5!important;color:#999!important}.ai-image-generation-container .api-mode-option{background:#fff!important;border-color:#d9d9d9!important}.ai-image-generation-container .api-mode-option:hover{background:#f5f5f5!important;border-color:#0052d9!important}.ai-image-generation-container .api-mode-option:has(input:checked){background:#e6f7ff!important;border-color:#0052d9!important}.ai-image-generation-container .api-mode-option .api-mode-label{color:#333!important}.ai-image-generation-container .api-mode-option .api-mode-desc{color:#666!important}.ai-image-generation-container .upload-label{background:#f5f5f5!important;border-color:#d9d9d9!important}.ai-image-generation-container .upload-label:hover{background:#e6f7ff!important;border-color:#0052d9!important}.ai-image-generation-container .upload-label .upload-text{color:#333!important}.ai-image-generation-container .upload-label .upload-hint{color:#666!important}.ai-image-generation-container .uploaded-images{background:#fff!important;border-color:#d9d9d9!important}.ai-image-generation-container .uploaded-images .uploaded-images-header{border-color:#f0f0f0!important}.ai-image-generation-container .uploaded-images .uploaded-images-header .images-count{color:#666!important}.ai-image-generation-container .uploaded-images .uploaded-images-header .clear-images-btn{background:#fff!important;border-color:#d9d9d9!important;color:#666!important}.ai-image-generation-container .uploaded-images .uploaded-images-header .clear-images-btn:hover:not(:disabled){background:#fff2f0!important;border-color:#ff4d4f!important;color:#ff4d4f!important}.ai-image-generation-container .uploaded-images .form-label-with-icon .clear-images-btn{background:#fff!important;border-color:#d9d9d9!important;color:#666!important}.ai-image-generation-container .uploaded-images .form-label-with-icon .clear-images-btn:hover:not(:disabled){background:#fff2f0!important;border-color:#ff4d4f!important;color:#ff4d4f!important}.ai-image-generation-container .uploaded-images .uploaded-image-item{border-color:#d9d9d9!important}.ai-image-generation-container .uploaded-images .uploaded-image-item .image-info{background:#fff!important}.ai-image-generation-container .uploaded-images .uploaded-image-item .image-info .image-name{color:#333!important}.ai-image-generation-container .uploaded-images .uploaded-image-item .image-info .image-size{color:#666!important}.ai-image-generation-container .uploaded-images .add-more-item{background:#f5f5f5!important;border-color:#d9d9d9!important}.ai-image-generation-container .uploaded-images .add-more-item:hover{background:#e6f7ff!important;border-color:#0052d9!important}.ai-image-generation-container .uploaded-images .add-more-item .add-more-label .add-more-icon,.ai-image-generation-container .uploaded-images .add-more-item .add-more-label .add-more-text{color:#666!important}.ai-image-generation-container .uploaded-images .add-more-item:hover .add-more-label .add-more-icon,.ai-image-generation-container .uploaded-images .add-more-item:hover .add-more-label .add-more-text{color:#0052d9!important}.ai-image-generation-container .tooltip-trigger{background:#f5f5f5!important;color:#333!important}.ai-image-generation-container .tooltip-trigger:hover{background:#e6f7ff!important;color:#0052d9!important}.ai-image-generation-container .tooltip-content{background:#fff!important;border-color:#d9d9d9!important;color:#333!important}.ai-image-generation-container .tooltip-header{color:#666!important;border-color:#f0f0f0!important}.ai-image-generation-container .shortcut-button{background:#fff!important;color:#333!important;border-color:#d9d9d9!important}.ai-image-generation-container .shortcut-button:hover:not(:disabled){background:#e6f7ff!important;border-color:#0052d9!important;color:#0052d9!important}.ai-image-generation-container .preview-loading,.ai-image-generation-container .preview-placeholder{color:#666!important}.ai-image-generation-container .action-button.secondary{background:#fff!important;color:#333!important;border-color:#d9d9d9!important}.ai-image-generation-container .action-button.secondary:hover:not(:disabled){background:#f5f5f5!important;border-color:#0052d9!important;color:#0052d9!important}.ai-image-generation-container .keyboard-shortcut{background:#f5f5f5!important;color:#666!important}.ai-image-generation-container .dialog-close-button{background:#fff!important;color:#666!important}.ai-image-generation-container .dialog-close-button:hover{background:#fff2f0!important;color:#ff4d4f!important}.history-icon-container{position:absolute;bottom:8px;right:8px;z-index:10}.history-icon-button{width:32px;height:32px;border:none;background:#ffffffe6;border-radius:16px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001a;transition:all .2s ease}.history-icon-button:hover{background:#fff;transform:scale(1.05);box-shadow:0 4px 12px #00000026}.history-icon-button:active{transform:scale(.95)}.history-popover{position:absolute;bottom:40px;right:0;width:320px;max-height:400px;background:var(--color-bg-container, #fff);border:1px solid var(--color-border, #d9d9d9);border-radius:8px;box-shadow:0 8px 32px #00000026;z-index:1000;overflow:hidden}.history-popover-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--color-border, #d9d9d9);background:var(--color-bg-secondary, #f5f5f5)}.history-title{font-size:14px;font-weight:500;color:var(--color-text-primary, #333)}.history-close-button{width:20px;height:20px;border:none;background:none;cursor:pointer;font-size:16px;color:var(--color-text-secondary, #666);display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.history-close-button:hover{background:var(--color-bg-tertiary, #e8e8e8);color:var(--color-text-primary, #333)}.history-list{max-height:300px;overflow-y:auto}.history-item{display:flex;align-items:flex-start;padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--color-border-light, #f0f0f0);transition:background-color .2s ease}.history-item:hover{background:var(--color-bg-secondary, #f5f5f5)}.history-item:last-child{border-bottom:none}.history-item-image{width:48px;height:48px;-o-object-fit:contain;object-fit:contain;border-radius:4px;margin-right:12px;flex-shrink:0}.history-item-info{flex:1;min-width:0}.history-item-prompt{font-size:13px;color:var(--color-text-primary, #333);margin-bottom:4px;line-height:1.4;word-break:break-all}.history-item-time{font-size:11px;color:var(--color-text-secondary, #666)}.history-more-info{padding:8px 16px;text-align:center;font-size:12px;color:var(--color-text-secondary, #666);background:var(--color-bg-secondary, #f5f5f5);border-top:1px solid var(--color-border-light, #f0f0f0)}@media(max-width:768px){.ai-image-generation-container{height:auto!important;max-height:none!important;overflow:visible!important;display:flex!important;flex-direction:column!important}.ai-generation-mobile-switcher{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:4px;padding:4px;position:sticky;top:0;z-index:12;background:#f5f7fb;border:1px solid #e8edf3;border-radius:16px;margin:4px 0 12px}.ai-generation-mobile-switcher__tab{min-height:42px;border:none;border-radius:12px;background:transparent;color:#64748b;font-size:13px;font-weight:700;cursor:pointer;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.ai-generation-mobile-switcher__tab--active{background:#fff;color:#111827;box-shadow:0 6px 16px #0f172a14;transform:translateY(-1px)}.ai-image-generation-container .main-content{display:flex!important;flex-direction:column!important;gap:0!important;min-height:auto!important;height:auto!important;flex:none!important;overflow:visible!important}.ai-image-generation-container .ai-image-generation-section{display:flex!important;flex-direction:column!important;width:100%!important;min-width:0!important;max-height:none!important;height:auto!important;flex:none!important;overflow:visible!important;padding-right:0!important;order:1!important}.ai-image-generation-container .task-sidebar{display:block!important;flex:none!important;width:100%!important;height:auto!important;min-height:auto!important;max-height:none!important;overflow:visible!important;padding:8px!important;order:2!important;margin-top:0!important}.ai-image-generation-container .task-sidebar--mobile-panel{padding:0!important;background:transparent!important;border:none!important;box-shadow:none!important}.ai-image-generation-container .main-content--mobile-panels>*:not(.ai-generation-mobile-panel--hidden){animation:ai-generation-panel-enter .2s ease}.preview-section{max-height:none!important;height:auto!important;flex:none!important;overflow:visible!important}.task-list{max-height:none!important;overflow:visible!important}.ai-image-generation-container .ai-image-generation-section.ai-generation-mobile-panel--hidden,.ai-image-generation-container .task-sidebar.ai-generation-mobile-panel--hidden{display:none!important}.section-actions{flex-wrap:wrap;gap:8px;padding:8px 0;position:sticky;bottom:0;z-index:10;background:#fff;margin-top:auto}.section-actions.unified-action-bar{gap:8px}.unified-action-box{min-width:160px}.generate-button{padding:8px 20px;min-width:90px}.action-button{padding:8px 12px;min-width:60px}}@media(max-width:480px){.ai-image-generation-container{max-height:calc(100vh - 50px)}.task-sidebar{padding:6px}.section-actions{justify-content:center;gap:6px;padding:6px 0;flex-wrap:wrap}.section-actions.unified-action-bar{gap:6px}.unified-action-box{min-width:140px;padding:3px 3px 3px 6px;height:32px}.quantity-section{padding:0 4px}.quantity-label{font-size:11px;margin-right:4px}.quantity-input{width:28px;font-size:13px;padding:3px 0 3px 4px}.generate-button{padding:6px 14px;min-width:70px;font-size:13px;height:26px}.action-button{padding:6px 10px;min-width:50px;font-size:13px;height:32px}.action-button.secondary{padding:6px 8px}.action-divider{height:20px;margin:0 2px}}.dialog-task-list{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;background-color:transparent;border-radius:8px;min-height:100%;max-height:100%;overflow-y:visible;height:100%}.dialog-task-list__header{flex-shrink:0;padding-bottom:8px;border-bottom:1px solid #f0f0f0;display:flex;flex-direction:column;gap:10px}.dialog-task-list__header h4{margin:0;font-size:13px;font-weight:600;color:#424242}.dialog-task-list__header-main{display:flex;align-items:center;justify-content:space-between;gap:8px}.dialog-task-list__header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.dialog-task-list__search{width:100%;max-width:260px}.dialog-task-list__content{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow:visible}.dialog-task-list__empty{display:flex;align-items:center;justify-content:center;padding:32px 16px;color:#999;font-size:13px;text-align:center;flex:1;min-height:100px}.dialog-task-list__empty p{margin:0}.dialog-task-list .task-item{padding:10px;font-size:12px}.dialog-task-list .task-item__preview-wrapper{width:100px;height:75px}.dialog-task-list .task-item__prompt{font-size:12px;-webkit-line-clamp:2}.dialog-task-list .task-item__tags .t-tag{font-size:10px!important;height:16px!important;padding:0 4px!important}.dialog-task-list .task-item__details{font-size:10px}.dialog-task-list .task-item__primary-action{height:24px!important;padding:0 8px!important;font-size:11px!important}.dialog-task-list .task-item__secondary-actions .t-button{height:22px!important;width:22px!important}@media(max-width:768px){.dialog-task-list{padding:0;gap:6px;height:auto;min-height:auto;max-height:none}.dialog-task-list__header{padding-bottom:6px}.dialog-task-list__header h4{font-size:12px}.dialog-task-list__header-main{align-items:flex-start}.dialog-task-list__search{max-width:none}.dialog-task-list__content{gap:6px}.dialog-task-list .task-item{padding:8px;grid-template-columns:80px 1fr!important;grid-template-areas:"preview prompt" "info info"!important}.dialog-task-list .task-item__checkbox{display:none}.dialog-task-list .task-item__preview-wrapper{grid-area:preview;width:80px!important;height:60px!important}.dialog-task-list .task-item__body{display:contents}.dialog-task-list .task-item__prompt-area{grid-area:prompt}.dialog-task-list .task-item__info-area{grid-area:info;margin-top:4px}}@media(max-width:480px){.dialog-task-list{padding:0;gap:4px}.dialog-task-list__header{padding-bottom:4px}.dialog-task-list__header h4{font-size:11px}.dialog-task-list__header-main{gap:6px}.dialog-task-list__content{gap:4px}.dialog-task-list .task-item{padding:6px;grid-template-columns:70px 1fr!important}.dialog-task-list .task-item__preview-wrapper{width:70px!important;height:52px!important}.dialog-task-list .task-item__prompt{font-size:11px!important;-webkit-line-clamp:2!important}.dialog-task-list .task-item__tags{gap:2px}.dialog-task-list .task-item__tags .t-tag{font-size:9px!important;height:14px!important;padding:0 3px!important}.dialog-task-list .task-item__details{font-size:9px;flex-wrap:wrap;gap:2px 4px}.dialog-task-list .task-item__actions{gap:4px}.dialog-task-list .task-item__primary-action{height:22px!important;padding:0 6px!important;font-size:10px!important}.dialog-task-list .task-item__secondary-actions .t-button{height:20px!important;width:20px!important}}@keyframes ai-generation-panel-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ai-video-generation-container{display:flex;flex-direction:column;height:80vh;overflow:hidden;position:relative}.ai-generation-mobile-switcher{display:none}.main-content{display:flex;gap:0;min-height:400px;height:100%;align-items:stretch;flex:1;overflow:hidden}.ai-image-generation-section{flex:1;min-width:280px;display:flex;flex-direction:column;gap:16px;height:100%;overflow-y:auto;overflow-x:hidden;padding-right:8px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}.ai-image-generation-section::-webkit-scrollbar{width:4px}.ai-image-generation-section::-webkit-scrollbar-track{background:transparent}.ai-image-generation-section::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.ai-image-generation-section::-webkit-scrollbar-thumb:hover{background:#00000040}.ai-image-generation-section .ai-image-generation-form{flex:1 1 auto;display:flex;flex-direction:column;gap:12px}.ai-image-generation-section .ai-image-generation-form .form-header-row{display:flex;align-items:center;gap:12px}.ai-image-generation-section .ai-image-generation-form .form-header-row .model-selector-wrapper{flex:1;width:100%;max-width:none}.ai-image-generation-section .ai-image-generation-form .model-params-row{margin-bottom:0}.ai-image-generation-section .ai-image-generation-form .form-field--prompt{flex:1 1 auto;display:flex;flex-direction:column;min-height:150px}.ai-image-generation-section .ai-image-generation-form .form-field--prompt .form-textarea{flex:1 1 auto;min-height:100px!important;height:auto}.task-sidebar{min-width:240px;height:100%;overflow-y:auto;background:var(--color-bg-container, #fff);border:1px solid var(--color-border-light, #e8e8e8);border-radius:10px;padding:12px;box-shadow:0 2px 8px #0000000f;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}.task-sidebar::-webkit-scrollbar{width:4px}.task-sidebar::-webkit-scrollbar-track{background:transparent}.task-sidebar::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.task-sidebar::-webkit-scrollbar-thumb:hover{background:#00000040}.video-origin{border-radius:6px}.video-origin--focus{outline:2px solid var(--td-brand-color, #0052d9);outline-offset:2px}.video-origin--selected{box-shadow:0 0 0 2px var(--td-brand-color, #0052d9)}.video-origin::-webkit-media-controls{border-radius:6px}@media(max-width:768px){.ai-video-generation-container{height:auto!important;max-height:none!important;overflow:visible!important;display:flex!important;flex-direction:column!important}.ai-generation-mobile-switcher{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:4px;padding:4px;position:sticky;top:0;z-index:12;background:#f5f7fb;border:1px solid #e8edf3;border-radius:16px;margin:4px 0 12px}.ai-generation-mobile-switcher__tab{min-height:42px;border:none;border-radius:12px;background:transparent;color:#64748b;font-size:13px;font-weight:700;cursor:pointer;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.ai-generation-mobile-switcher__tab--active{background:#fff;color:#111827;box-shadow:0 6px 16px #0f172a14;transform:translateY(-1px)}.ai-video-generation-container .main-content{display:flex!important;flex-direction:column!important;gap:0!important;min-height:auto!important;height:auto!important;flex:none!important;overflow:visible!important}.ai-video-generation-container .ai-image-generation-section{display:flex!important;flex-direction:column!important;width:100%!important;min-width:0!important;max-height:none!important;height:auto!important;flex:none!important;overflow:visible!important;order:1!important}.ai-video-generation-container .task-sidebar{display:block!important;flex:none!important;width:100%!important;height:auto!important;min-height:auto!important;max-height:none!important;overflow:visible!important;padding:8px!important;order:2!important;margin-top:0!important}.ai-video-generation-container .task-sidebar--mobile-panel{padding:0!important;background:transparent!important;border:none!important;box-shadow:none!important}.ai-video-generation-container .main-content--mobile-panels>*:not(.ai-generation-mobile-panel--hidden){animation:ai-generation-panel-enter .2s ease}.ai-video-generation-container .section-actions{flex-wrap:wrap;gap:8px;padding:8px 0;position:sticky;bottom:0;z-index:10;background:#fff}.task-list{max-height:none!important;overflow:visible!important}.ai-video-generation-container .ai-image-generation-section.ai-generation-mobile-panel--hidden,.ai-video-generation-container .task-sidebar.ai-generation-mobile-panel--hidden{display:none!important}}@media(max-width:480px){.ai-video-generation-container{max-height:calc(100vh - 50px)}.ai-video-generation-container .task-sidebar{padding:6px}.ai-video-generation-container .section-actions{justify-content:center;gap:6px;padding:6px 0;flex-wrap:wrap}}
@@ -0,0 +1 @@
1
+ var r;function p(e){return new RegExp("^(?:"+e.join("|")+")$","i")}p([]);var d=p(["@prefix","@base","a"]),f=/[*+\-<>=&|]/;function x(e,n){var t=e.next();if(r=null,t=="<"&&!e.match(/^[\s\u00a0=]/,!1))return e.match(/^[^\s\u00a0>]*>?/),"atom";if(t=='"'||t=="'")return n.tokenize=v(t),n.tokenize(e,n);if(/[{}\(\),\.;\[\]]/.test(t))return r=t,null;if(t=="#")return e.skipToEnd(),"comment";if(f.test(t))return e.eatWhile(f),null;if(t==":")return"operator";if(e.eatWhile(/[_\w\d]/),e.peek()==":")return"variableName.special";var i=e.current();return d.test(i)?"meta":t>="A"&&t<="Z"?"comment":"keyword";var i=e.current()}function v(e){return function(n,t){for(var i=!1,o;(o=n.next())!=null;){if(o==e&&!i){t.tokenize=x;break}i=!i&&o=="\\"}return"string"}}function l(e,n,t){e.context={prev:e.context,indent:e.indent,col:t,type:n}}function c(e){e.indent=e.context.indent,e.context=e.context.prev}const g={name:"turtle",startState:function(){return{tokenize:x,context:null,indent:0,col:0}},token:function(e,n){if(e.sol()&&(n.context&&n.context.align==null&&(n.context.align=!1),n.indent=e.indentation()),e.eatSpace())return null;var t=n.tokenize(e,n);if(t!="comment"&&n.context&&n.context.align==null&&n.context.type!="pattern"&&(n.context.align=!0),r=="(")l(n,")",e.column());else if(r=="[")l(n,"]",e.column());else if(r=="{")l(n,"}",e.column());else if(/[\]\}\)]/.test(r)){for(;n.context&&n.context.type=="pattern";)c(n);n.context&&r==n.context.type&&c(n)}else r=="."&&n.context&&n.context.type=="pattern"?c(n):/atom|string|variable/.test(t)&&n.context&&(/[\}\]]/.test(n.context.type)?l(n,"pattern",e.column()):n.context.type=="pattern"&&!n.context.align&&(n.context.align=!0,n.context.col=e.column()));return t},indent:function(e,n,t){var i=n&&n.charAt(0),o=e.context;if(/[\]\}]/.test(i))for(;o&&o.type=="pattern";)o=o.prev;var u=o&&i==o.type;return o?o.type=="pattern"?o.col:o.align?o.col+(u?0:1):o.indent+(u?0:t.unit):0},languageData:{commentTokens:{line:"#"}}};export{g as turtle};