aitu-app 0.6.13 → 0.6.15

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 (164) hide show
  1. package/README.md +3 -3
  2. package/assets/ChatMessagesArea-BDdoD5_A.js +250 -0
  3. package/assets/DialogTaskList-DPJ7HZyZ.js +1 -0
  4. package/assets/KnowledgeBaseContent-C72s05vt.js +143 -0
  5. package/assets/ToolboxDrawer-l4Ty3r9W.js +91 -0
  6. package/assets/__vite-browser-external-UePf-KSV.js +1 -0
  7. package/assets/{ai-analyze-CXbDwr-F.js → ai-analyze-xgKQgd4U.js} +1 -1
  8. package/assets/ai-image-generation-C5JAcp3b.js +1 -0
  9. package/assets/ai-video-generation-ac-33IgK.js +5 -0
  10. package/assets/{arc-Vb6QIvRI.js → arc-Dp9Tayy1.js} +1 -1
  11. package/assets/{arc-BVpYfX8u.js → arc-OJPD8-BT.js} +1 -1
  12. package/assets/batch-image-generation-C3x-OHz8.js +6 -0
  13. package/assets/{blockDiagram-38ab4fdb-CbUExfWH.js → blockDiagram-38ab4fdb-BmbbsYSN.js} +1 -1
  14. package/assets/{blockDiagram-38ab4fdb-CbbmIvT5.js → blockDiagram-38ab4fdb-Ct18ekcD.js} +1 -1
  15. package/assets/{c4Diagram-3d4e48cf-Db1GHdmL.js → c4Diagram-3d4e48cf-B5n9lAd_.js} +1 -1
  16. package/assets/{c4Diagram-3d4e48cf-Dw_8bcgE.js → c4Diagram-3d4e48cf-CeYsSK_V.js} +1 -1
  17. package/assets/channel-3D-64Gra.js +1 -0
  18. package/assets/channel-Cwws4QMc.js +1 -0
  19. package/assets/{classDiagram-70f12bd4-CXXAHxeU.js → classDiagram-70f12bd4-DHUkWA9l.js} +1 -1
  20. package/assets/{classDiagram-70f12bd4-_p3Dnvx6.js → classDiagram-70f12bd4-moiNcfve.js} +1 -1
  21. package/assets/{classDiagram-v2-f2320105-B-9myg44.js → classDiagram-v2-f2320105-DA5NC1Qw.js} +1 -1
  22. package/assets/{classDiagram-v2-f2320105-ChK1LfBX.js → classDiagram-v2-f2320105-GgtaFqwD.js} +1 -1
  23. package/assets/{clipper-CJLNPhZM.js → clipper-t_9jIAe9.js} +1 -1
  24. package/assets/clone-BMrzx1Td.js +1 -0
  25. package/assets/clone-BizrxztP.js +1 -0
  26. package/assets/createText-2e5e7dd3-CHzSuNe3.js +8 -0
  27. package/assets/{createText-2e5e7dd3-BGRSuPih.js → createText-2e5e7dd3-DOBPzTzY.js} +1 -1
  28. package/assets/{edges-e0da2a9e-BoQQRKl3.js → edges-e0da2a9e-Bq2ydCT4.js} +1 -1
  29. package/assets/{edges-e0da2a9e-1EAOsAGW.js → edges-e0da2a9e-CN99E-t-.js} +1 -1
  30. package/assets/{erDiagram-9861fffd-DIqIVsjO.js → erDiagram-9861fffd-Do4S3P96.js} +1 -1
  31. package/assets/{erDiagram-9861fffd-DrPXJadW.js → erDiagram-9861fffd-oiPiotaf.js} +1 -1
  32. package/assets/{flowDb-956e92f1-DKdojl1Z.js → flowDb-956e92f1-D51K1L9K.js} +1 -1
  33. package/assets/{flowDb-956e92f1-_yAXk9b2.js → flowDb-956e92f1-DFBqRgDU.js} +1 -1
  34. package/assets/{flowDiagram-66a62f08-BSNSE1vH.js → flowDiagram-66a62f08-DUEF_pO-.js} +1 -1
  35. package/assets/{flowDiagram-66a62f08-Cn3BWcxJ.js → flowDiagram-66a62f08-ohjO56wG.js} +1 -1
  36. package/assets/flowDiagram-v2-96b9c2cf-DqY72AjL.js +1 -0
  37. package/assets/flowDiagram-v2-96b9c2cf-drt1-w-A.js +1 -0
  38. package/assets/{flowchart-elk-definition-4a651766-CkhkUOMa.js → flowchart-elk-definition-4a651766-CZGupUae.js} +1 -1
  39. package/assets/{flowchart-elk-definition-4a651766-CtRYHypS.js → flowchart-elk-definition-4a651766-Ck49vbEO.js} +1 -1
  40. package/assets/{ganttDiagram-c361ad54-DWZxEumf.js → ganttDiagram-c361ad54-D-2TQXly.js} +1 -1
  41. package/assets/{ganttDiagram-c361ad54-C-olbHti.js → ganttDiagram-c361ad54-Di2O32lI.js} +1 -1
  42. package/assets/{gitGraphDiagram-72cf32ee-DFI0WJ7k.js → gitGraphDiagram-72cf32ee-BRac4-Im.js} +1 -1
  43. package/assets/{gitGraphDiagram-72cf32ee-Dz3X9B4S.js → gitGraphDiagram-72cf32ee-CTYbPhUT.js} +1 -1
  44. package/assets/{graph-BbAdRpyG.js → graph-2iyYFI0w.js} +1 -1
  45. package/assets/{graph-CG3zmXkL.js → graph-C1hWr4Pm.js} +1 -1
  46. package/assets/{grid-image-CahEQ7p7.js → grid-image-dUr2Jg39.js} +1 -1
  47. package/assets/{has-Cq7YuzG9.js → has-SF0all_b.js} +1 -1
  48. package/assets/{hasIn-4hPyOh4r.js → hasIn-DKQ-u2B0.js} +1 -1
  49. package/assets/{index-3862675e-D_PJ0qZE.js → index-3862675e-CZEjGwoo.js} +1 -1
  50. package/assets/{index-3862675e-Cy2LJr-t.js → index-3862675e-RDTDsnXn.js} +1 -1
  51. package/assets/index-8936AfEv.js +1 -0
  52. package/assets/{index-ICFaM7Tx.js → index-B7eekA6_.js} +1 -1
  53. package/assets/index-BDUNgKdd.js +4 -0
  54. package/assets/{index-XoOCAjmC.js → index-BHA-RYCc.js} +1 -1
  55. package/assets/{index-DHrV9sCt.js → index-BOD5NqEU.js} +1 -1
  56. package/assets/{index-Bad6y32x.js → index-Bari47nZ.js} +1 -1
  57. package/assets/index-Bk0_Zb0q.js +126 -0
  58. package/assets/index-Bl-lGyNS.js +1 -0
  59. package/assets/{index-DBCwQvu4.js → index-BmjGPRWs.js} +1 -1
  60. package/assets/{index-BOHFUhjZ.js → index-BwMZ5wpE.js} +1 -1
  61. package/assets/{index-BiCrE7Ci.js → index-CANiroWR.js} +1 -1
  62. package/assets/{index-BDnSt0a8.js → index-CF52PGdh.js} +1 -1
  63. package/assets/{index-WyqXHNHN.js → index-COU1uiqb.js} +10 -10
  64. package/assets/{index-Bfs6Q-lQ.js → index-CbWVcCEf.js} +1 -1
  65. package/assets/{index-BQS_8NU3.js → index-CgRCJ-LO.js} +1 -1
  66. package/assets/{index-Dqi7TZna.js → index-Cjr7NFhN.js} +1 -1
  67. package/assets/{index-CqEazMaK.js → index-CtCg-67U.js} +1 -1
  68. package/assets/{index-BU3nDlFy.js → index-CtQCAjVT.js} +1 -1
  69. package/assets/{index-DtNyBFxZ.js → index-Cxm1XljY.js} +1 -1
  70. package/assets/index-Cz1tSwF3.css +1 -0
  71. package/assets/{index-BE7n-LiY.js → index-Czr2RAjn.js} +1 -1
  72. package/assets/{index-Dv8yvI8G.js → index-D-84skI6.js} +1 -1
  73. package/assets/{index-pt9oZHeu.js → index-D263cNDG.js} +1 -1
  74. package/assets/{index-CciPE8zM.js → index-D2m550qt.js} +1 -1
  75. package/assets/{index-B9uNbnfa.js → index-D77Go9tu.js} +1 -1
  76. package/assets/{index-C1tgh8XV.js → index-DaGnZYqf.js} +10 -10
  77. package/assets/{index-BZIcMnMw.js → index-DhkzbRKo.js} +1 -1
  78. package/assets/{index-BkRTZMZM.js → index-Dpe0RMNz.js} +1 -1
  79. package/assets/index-DwHU5eOe.css +9 -0
  80. package/assets/{index-B4IEsL3l.js → index-Eh2ScCVM.js} +1 -1
  81. package/assets/index-IZLKDros.js +3675 -0
  82. package/assets/{index-Cx19IgV-.js → index-XL72XJSV.js} +5 -5
  83. package/assets/{index-jHCkpoWQ.js → index-eG2AQFN1.js} +1 -1
  84. package/assets/{index-DUgUd4bR.js → index-idzCX2RO.js} +1 -1
  85. package/assets/{index-Bco0OAak.js → index-kEyGqmtF.js} +1 -1
  86. package/assets/{infoDiagram-f8f76790-C0TYyx3w.js → infoDiagram-f8f76790-BxK-Egf6.js} +1 -1
  87. package/assets/{infoDiagram-f8f76790-D8T-erO4.js → infoDiagram-f8f76790-CUCAPcFk.js} +1 -1
  88. package/assets/{inspiration-board-CiL8hKbX.js → inspiration-board-D8Ua5Oe1.js} +1 -1
  89. package/assets/{isEmpty-BoFRUVaJ.js → isEmpty-t4Cy-KF3.js} +1 -1
  90. package/assets/{journeyDiagram-49397b02-BHw2LUDu.js → journeyDiagram-49397b02-CSy6umB2.js} +1 -1
  91. package/assets/{journeyDiagram-49397b02-CkmFUv6i.js → journeyDiagram-49397b02-hn1ZL1sk.js} +1 -1
  92. package/assets/{layers-CaY2-pH6.js → layers-D6FMrwlY.js} +1 -1
  93. package/assets/{layout-D_agYVJ_.js → layout-Bx4CUuIY.js} +1 -1
  94. package/assets/{layout-CSua1dGC.js → layout-Cx8G_aqy.js} +1 -1
  95. package/assets/{line-CN9rNlXr.js → line-BZ1F3Pjg.js} +1 -1
  96. package/assets/{line-CxGDlzoc.js → line-CWqmXnzs.js} +1 -1
  97. package/assets/{linear-DKP7SWoM.js → linear-0qmptMY3.js} +1 -1
  98. package/assets/{linear-CvStv2Ny.js → linear-BD9ezGBw.js} +1 -1
  99. package/assets/{mermaid.core-DawxQi4y.js → mermaid.core-CclEoiQB.js} +5 -5
  100. package/assets/{mindmap-definition-fc14e90a-BWrsnm3I.js → mindmap-definition-fc14e90a-C3--tXOB.js} +1 -1
  101. package/assets/{mindmap-definition-fc14e90a-Dmo2lz3K.js → mindmap-definition-fc14e90a-DF7zVwYN.js} +1 -1
  102. package/assets/{photo-wall-splitter-B_WR4Rl2.js → photo-wall-splitter-DRunCkYJ.js} +1 -1
  103. package/assets/{pick-C1hcXSqm.js → pick-fy_8WYZR.js} +1 -1
  104. package/assets/{pieDiagram-8a3498a8-DhrponMk.js → pieDiagram-8a3498a8-BUs_EbTX.js} +1 -1
  105. package/assets/{pieDiagram-8a3498a8-CmbWJAb7.js → pieDiagram-8a3498a8-K2pJYExm.js} +1 -1
  106. package/assets/{quadrantDiagram-120e2f19-CgIF-y-_.js → quadrantDiagram-120e2f19-B_NqGDOT.js} +1 -1
  107. package/assets/{quadrantDiagram-120e2f19-DOKwrvFF.js → quadrantDiagram-120e2f19-npHcJfpe.js} +1 -1
  108. package/assets/{requirementDiagram-deff3bca-CIXltTSE.js → requirementDiagram-deff3bca-MAAg8oy7.js} +1 -1
  109. package/assets/{requirementDiagram-deff3bca-BqbqHjdU.js → requirementDiagram-deff3bca-XXIszlff.js} +1 -1
  110. package/assets/{sankeyDiagram-04a897e0-DGiABLdx.js → sankeyDiagram-04a897e0-C5NJymdM.js} +1 -1
  111. package/assets/{sankeyDiagram-04a897e0-DcPermhl.js → sankeyDiagram-04a897e0-CSCR2bPx.js} +1 -1
  112. package/assets/{sequenceDiagram-704730f1-BUXJ6XVH.js → sequenceDiagram-704730f1-ChCKpyVM.js} +1 -1
  113. package/assets/{sequenceDiagram-704730f1-piXYTUjh.js → sequenceDiagram-704730f1-DJ4I-j-u.js} +1 -1
  114. package/assets/{settings-dialog-A3AH7O45.css → settings-dialog-Bf8ExAlc.css} +1 -1
  115. package/assets/settings-dialog-CXBVyqHP.js +11 -0
  116. package/assets/{shard-sync-service-BCo2qKEA.js → shard-sync-service-IbZF8xlU.js} +1 -1
  117. package/assets/{stateDiagram-587899a1-Dnd2X4K4.js → stateDiagram-587899a1-BA9z6NxG.js} +1 -1
  118. package/assets/{stateDiagram-587899a1-Cdfs3rRO.js → stateDiagram-587899a1-Bds5dxHr.js} +1 -1
  119. package/assets/{stateDiagram-v2-d93cdb3a-DtC5XSWV.js → stateDiagram-v2-d93cdb3a-wf_BKO33.js} +1 -1
  120. package/assets/{stateDiagram-v2-d93cdb3a-lOfkWHnS.js → stateDiagram-v2-d93cdb3a-zgIPW-Wq.js} +1 -1
  121. package/assets/{styles-6aaf32cf-BTv8Dnxa.js → styles-6aaf32cf-DKSbsikH.js} +1 -1
  122. package/assets/{styles-6aaf32cf-B_EWv7Bz.js → styles-6aaf32cf-k70vGvK6.js} +1 -1
  123. package/assets/{styles-9a916d00-BNkP2BU4.js → styles-9a916d00-DlsdUcZV.js} +1 -1
  124. package/assets/{styles-9a916d00-C4vTAlbK.js → styles-9a916d00-DmmQFwNe.js} +1 -1
  125. package/assets/{styles-c10674c1-Dp5J5JrP.js → styles-c10674c1-CxF05c2I.js} +1 -1
  126. package/assets/{styles-c10674c1-BcxLBYaC.js → styles-c10674c1-D8qHaY59.js} +1 -1
  127. package/assets/{svgDrawCommon-08f97a94-5_vuhhyn.js → svgDrawCommon-08f97a94-C47JFYdy.js} +1 -1
  128. package/assets/{svgDrawCommon-08f97a94-CalbTy9V.js → svgDrawCommon-08f97a94-DXUoCs1f.js} +1 -1
  129. package/assets/{timeline-definition-85554ec2-ByBsrbAq.js → timeline-definition-85554ec2-C2IdYpUG.js} +1 -1
  130. package/assets/{timeline-definition-85554ec2-DBiJ4h6g.js → timeline-definition-85554ec2-DKGZodMj.js} +1 -1
  131. package/assets/ttd-dialog-BARbesy9.js +95 -0
  132. package/assets/{upload-DP5n1PVz.js → upload-CjpWBLk1.js} +1 -1
  133. package/assets/{video-recovery-service-DY01FcHI.js → video-recovery-service-CfVXvCd9.js} +1 -1
  134. package/assets/{xychartDiagram-e933f94c-CJ1NxG0K.js → xychartDiagram-e933f94c-CjAQ2fLX.js} +1 -1
  135. package/assets/{xychartDiagram-e933f94c-CEXcS3Lw.js → xychartDiagram-e933f94c-qh0OFXZU.js} +1 -1
  136. package/changelog.json +58 -0
  137. package/package.json +1 -1
  138. package/precache-manifest.json +283 -283
  139. package/sw.js +4 -4
  140. package/version.json +7 -3
  141. package/assets/ChatMessagesArea-Btxhq7Z2.js +0 -229
  142. package/assets/DialogTaskList-0I91BD1p.js +0 -1
  143. package/assets/KnowledgeBaseContent-CSEr1paK.js +0 -153
  144. package/assets/ToolboxDrawer-CFAgOmIa.js +0 -91
  145. package/assets/__vite-browser-external-BIHI7g3E.js +0 -1
  146. package/assets/ai-image-generation-CvUX_vnh.js +0 -1
  147. package/assets/ai-video-generation-BgDcotXE.js +0 -5
  148. package/assets/batch-image-generation-rvn9zCP-.js +0 -6
  149. package/assets/channel-ChluHQU5.js +0 -1
  150. package/assets/channel-DQ0ggWsj.js +0 -1
  151. package/assets/clone-BscGHP5K.js +0 -1
  152. package/assets/clone-CTdvgy2F.js +0 -1
  153. package/assets/createText-2e5e7dd3-BCbwgqBS.js +0 -7
  154. package/assets/flowDiagram-v2-96b9c2cf-BmoA7Lrr.js +0 -1
  155. package/assets/flowDiagram-v2-96b9c2cf-Du5Aycbt.js +0 -1
  156. package/assets/index-7WzIC7_D.js +0 -3448
  157. package/assets/index-BOZ3fCzl.js +0 -3
  158. package/assets/index-CYf1zrx4.js +0 -1
  159. package/assets/index-C_Ed2LrM.js +0 -1
  160. package/assets/index-D9rMZcAy.js +0 -123
  161. package/assets/index-V8UiJyjb.css +0 -1
  162. package/assets/index-qP_w2VHW.css +0 -9
  163. package/assets/settings-dialog-D1OnKj0y.js +0 -11
  164. package/assets/ttd-dialog-C9noZsTQ.js +0 -95
@@ -0,0 +1 @@
1
+ import{b1 as Ae,r as n,s as X,aQ as t,aR as ve,aS as Re,bh as fe,es as Le,et as Ve,cW as Pe,eu as Se,ev as Be,ew as be,ex as $e,ey as ze,ec as Fe,ez as Oe,eA as He,eB as We,eC as Ge,eD as Xe,eE as Qe,eF as Ye,eG as Ke,cH as Ze,bd as Q,eH as Je,eI as et,bk as je,bo as tt,eJ as st,bq as at,cU as nt,bj as Ie,bi as Ue,bW as it,cv as rt,eK as ot,cQ as lt,eL as dt,eM as ct,eN as ut,d1 as Ce,t as mt,c3 as pt,cL as ue,eO as ft,cw as ht,ed as gt,ee as Nt,eP as xt,cT as Ee,eQ as bt,eR as vt,dv as _e,eS as wt,eT as yt,eU as kt,u as Dt,eV as jt,eW as It,eX as Ut}from"./index-IZLKDros.js";function Pt(){const{completedTasks:s}=Ae(),i=n.useMemo(()=>s.filter(a=>{var p;return a.type===X.IMAGE&&((p=a.result)==null?void 0:p.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,p)=>p.timestamp-a.timestamp),[s]),l=n.useMemo(()=>s.filter(a=>{var p;return a.type===X.VIDEO&&((p=a.result)==null?void 0:p.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,p)=>p.timestamp-a.timestamp),[s]),r=n.useMemo(()=>[...i,...l].sort((a,p)=>p.timestamp-a.timestamp),[i,l]);return{imageHistory:i,videoHistory:l,allHistory:r}}const qe=(s,i,l)=>{const r=l==="image"?{isGenerating:s,imageLoading:i}:{isGenerating:s,videoLoading:i};window.dispatchEvent(new CustomEvent("ai-generation-state-change",{detail:r}))},Bt=(s,i,l)=>{n.useEffect(()=>{const r=a=>{(a.metaKey||a.ctrlKey)&&a.key==="Enter"&&(a.preventDefault(),!s&&i.trim()&&l())};return document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)}},[s,i,l])},$t=s=>{const[i,l]=n.useState(!1),[r,a]=n.useState(!1),p=n.useCallback(h=>{l(h),qe(h,r,s)},[r,s]),v=n.useCallback(h=>{a(h),qe(i,h,s)},[i,s]);return{isGenerating:i,isLoading:r,updateIsGenerating:p,updateIsLoading:v}},Ct=(s,i,l)=>i==="image"?s==="zh"?"一只可爱的小猫坐在窗台上,阳光透过窗户洒在它的毛发上,背景是温馨的家居环境":"A cute kitten sitting on a windowsill, with sunlight streaming through the window onto its fur, with a cozy home environment in the background":l==="sora"?s==="zh"?"描述视频内容,输入 @ 可引用已创建的角色,如 @username 在海边漫步...":"Describe video content, type @ to reference created characters, e.g. @username walking on the beach...":s==="zh"?"生成一个美丽的日出场景,阳光从山峰后缓缓升起,云朵轻柔地飘动":"Generate a beautiful sunrise scene where the sun slowly rises from behind mountains with clouds gently floating",Et=[1,2,3,4,5,10,20,50,100],_t="aitu_image_generation_quantity",qt="aitu_video_generation_quantity",we=100,zt=({language:s,type:i,isGenerating:l,hasGenerated:r,canGenerate:a,onGenerate:p,onReset:v,leftContent:h})=>{const g=i==="video"?qt:_t,[N,y]=n.useState(()=>{try{const u=localStorage.getItem(g);if(u){const P=parseInt(u,10);if(!isNaN(P)&&P>=1&&P<=we)return P}}catch{}return 1}),[E,S]=n.useState(!1),[d,x]=n.useState(()=>N.toString()),w=n.useRef(null);n.useEffect(()=>{x(N.toString());try{localStorage.setItem(g,N.toString())}catch{}},[N,g]),n.useEffect(()=>{const u=P=>{w.current&&!w.current.contains(P.target)&&(S(!1),b())};return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[d]);const b=()=>{let u=parseInt(d,10);(isNaN(u)||u<1)&&(u=1),u>we&&(u=we),x(u.toString()),y(u)},_=u=>{const P=u.target.value;(P===""||/^\d*$/.test(P))&&x(P)},$=u=>{y(u),x(u.toString()),S(!1)},I=()=>{l||S(!E)},O=()=>{p(N)};return t.jsxDEV("div",{className:"section-actions unified-action-bar",children:[h&&t.jsxDEV("div",{className:"action-bar-left",children:h},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:111,columnNumber:23},void 0),t.jsxDEV("div",{className:`unified-action-box ${l?"is-generating":""} ${a?"can-generate":""}`,children:[t.jsxDEV("div",{className:"quantity-section",ref:w,children:[t.jsxDEV(ve,{content:s==="zh"?"生成数量":"Quantity",theme:"light",children:t.jsxDEV("div",{className:`quantity-control ${E?"is-open":""} ${l?"is-disabled":""}`,children:[t.jsxDEV("input",{type:"text",inputMode:"numeric",value:d,onChange:_,onBlur:b,"data-track":"ai_click_quantity_input",onClick:()=>!l&&S(!0),disabled:l,className:"quantity-input"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:119,columnNumber:15},void 0),t.jsxDEV("button",{type:"button","data-track":"ai_click_quantity_toggle",onClick:u=>{u.stopPropagation(),I()},disabled:l,className:"quantity-toggle",children:t.jsxDEV(Re,{className:`quantity-icon ${E?"is-open":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:140,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:130,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:118,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:117,columnNumber:11},void 0),E&&t.jsxDEV("div",{className:"quantity-dropdown",children:[t.jsxDEV("div",{className:"quantity-dropdown-header",children:s==="zh"?"选择数量":"Select Quantity"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:150,columnNumber:15},void 0),Et.map(u=>t.jsxDEV("button",{type:"button","data-track":"ai_click_quantity_select",onClick:()=>$(u),className:`quantity-option ${N===u?"is-selected":""}`,children:[t.jsxDEV("span",{children:[u," ",i==="video"?s==="zh"?"个":u>1?"videos":"video":s==="zh"?"张":u>1?"images":"image"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:161,columnNumber:19},void 0),N===u&&t.jsxDEV("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:t.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:169,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:168,columnNumber:21},void 0)]},u,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:154,columnNumber:17},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:149,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:116,columnNumber:9},void 0),t.jsxDEV("div",{className:"action-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:179,columnNumber:9},void 0),t.jsxDEV("button",{"data-track":"ai_click_generate",onClick:O,disabled:l||!a,className:`generate-button ${l?"loading":""}`,children:l?s==="zh"?"生成中...":"Generating...":r?s==="zh"?"重新生成":"Regenerate":i==="video"?s==="zh"?"生成视频":"Generate Video":s==="zh"?"生成":"Generate"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:182,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:114,columnNumber:7},void 0),t.jsxDEV(ve,{content:s==="zh"?"重置表单":"Reset form",theme:"light",children:t.jsxDEV(fe,{"data-track":"ai_click_reset",onClick:v,disabled:l,variant:"text",shape:"circle",icon:t.jsxDEV(Le,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:206,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:200,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:199,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:109,columnNumber:5},void 0)},Ft=({error:s})=>s?t.jsxDEV("div",{className:"form-error",children:s},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,Mt=({visible:s,query:i,position:l,showBelow:r=!1,selectedIndex:a,onSelect:p,onClose:v})=>{const{completedCharacters:h,isLoading:g}=Ve(),N=n.useRef(null),y=n.useMemo(()=>{if(!i)return h;const d=i.toLowerCase();return h.filter(x=>x.username.toLowerCase().includes(d))},[h,i]);n.useEffect(()=>{if(!s||!N.current)return;const d=N.current.querySelector(".character-mention-popup__item--selected");d&&d.scrollIntoView({block:"nearest"})},[s,a]),n.useEffect(()=>{if(!s)return;const d=x=>{N.current&&!N.current.contains(x.target)&&v()};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[s,v]);const E=n.useCallback(d=>{Pe.track("character_used_in_prompt",{characterId:d.id,username:d.username}),p(d)},[p]);if(!s)return null;const S={position:"fixed",top:l.top,left:l.left,transform:r?"none":"translateY(-100%)",zIndex:Se.DROPDOWN_PORTAL,maxHeight:"200px",overflowY:"auto"};return g?t.jsxDEV("div",{ref:N,className:"character-mention-popup",style:S,children:t.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):y.length===0?t.jsxDEV("div",{ref:N,className:"character-mention-popup",style:S,children:t.jsxDEV("div",{className:"character-mention-popup__empty",children:i?`未找到 "${i}" 相关角色`:"暂无可用角色"},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):t.jsxDEV("div",{ref:N,className:"character-mention-popup",style:S,children:y.map((d,x)=>t.jsxDEV("div",{className:`character-mention-popup__item ${x===a?"character-mention-popup__item--selected":""}`,onClick:()=>E(d),"data-track":"character_click_mention",children:[t.jsxDEV("div",{className:"character-mention-popup__item-avatar",children:t.jsxDEV(Be,{characterId:d.id,profilePictureUrl:d.profilePictureUrl,alt:d.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),t.jsxDEV("span",{className:"character-mention-popup__item-name",children:["@",d.username]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:154,columnNumber:11},void 0)]},d.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)},Vt={visible:!1,query:"",position:{top:0,left:0},showBelow:!1,startIndex:-1,selectedIndex:0};function St({enabled:s=!0,onPromptChange:i,prompt:l}){const[r,a]=n.useState(Vt),p=n.useRef(null),{completedCharacters:v}=Ve(),h=n.useCallback(d=>{if(!p.current)return{top:0,left:0,showBelow:!1};const x=p.current,w=x.getBoundingClientRect(),b=document.createElement("div"),_=window.getComputedStyle(x),$=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","lineHeight","textTransform","wordSpacing","whiteSpace","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing"];b.style.position="absolute",b.style.top="0",b.style.left="-9999px",b.style.visibility="hidden",b.style.whiteSpace="pre-wrap",b.style.overflowWrap="break-word",b.style.overflow="hidden",b.style.width=`${x.clientWidth}px`,$.forEach(Y=>{b.style[Y]=_.getPropertyValue(Y.replace(/([A-Z])/g,"-$1").toLowerCase())}),document.body.appendChild(b);let I=0,O=0;try{const Y=x.value.substring(0,d),ee=document.createTextNode(Y),U=document.createElement("span");U.textContent="​",b.appendChild(ee),b.appendChild(U);const k=U.getBoundingClientRect(),q=b.getBoundingClientRect();I=k.top-q.top,O=k.left-q.left}finally{document.body.removeChild(b)}const u=x.scrollTop,P=parseInt(_.lineHeight)||20;let Z=w.top+I-u,R=w.left+O;const J=240,ae=window.innerWidth;R+J>ae-16&&(R=ae-J-16),R<16&&(R=16);const ie=Z<220+16;return ie?Z=Z+P+4:Z=Z-48,{top:Z,left:R,showBelow:ie}},[]),g=n.useCallback((d,x)=>{if(!s)return;const w=d.substring(0,x),b=w.lastIndexOf("@");if(b===-1){a(O=>({...O,visible:!1}));return}const _=b>0?d[b-1]:" ";if(!/\s/.test(_)&&b!==0){a(O=>({...O,visible:!1}));return}const $=w.substring(b+1);if($.includes(" ")){a(O=>({...O,visible:!1}));return}const I=h(x);a({visible:!0,query:$,position:{top:I.top,left:I.left},showBelow:I.showBelow,startIndex:b,selectedIndex:0})},[s,h]),N=n.useCallback(d=>{var $;if(r.startIndex===-1)return;const x=l.substring(0,r.startIndex),w=(($=p.current)==null?void 0:$.selectionStart)||l.length,b=l.substring(w),_=`${x}@${d.username} ${b}`;i(_),a(I=>({...I,visible:!1})),setTimeout(()=>{if(p.current){const I=x.length+d.username.length+2;p.current.focus(),p.current.setSelectionRange(I,I)}},0)},[r.startIndex,l,i]),y=n.useCallback(d=>{if(!r.visible)return;const x=r.query?v.filter(w=>w.username.toLowerCase().includes(r.query.toLowerCase())):v;switch(d.key){case"ArrowDown":d.preventDefault(),a(w=>({...w,selectedIndex:Math.min(w.selectedIndex+1,x.length-1)}));break;case"ArrowUp":d.preventDefault(),a(w=>({...w,selectedIndex:Math.max(w.selectedIndex-1,0)}));break;case"Enter":case"Tab":x.length>0&&(d.preventDefault(),N(x[r.selectedIndex]));break;case"Escape":d.preventDefault(),a(w=>({...w,visible:!1}));break}},[r,v,N]),E=n.useCallback((d,x)=>{i(d),g(d,x)},[i,g]),S=n.useCallback(()=>{a(d=>({...d,visible:!1}))},[]);return{mentionState:r,setMentionState:a,textareaRef:p,completedCharacters:v,handleTextChange:E,handleKeyDown:y,handleCharacterSelect:N,closeMentionPopup:S,calculateMentionPosition:h}}const Ot=({prompt:s,onPromptChange:i,presetPrompts:l,language:r,type:a,disabled:p=!1,onError:v,enableMention:h=!0,videoProvider:g})=>{const[N,y]=n.useState(!1),E=n.useRef(null),S=n.useRef(null),[d,x]=n.useState(null),[w,b]=n.useState(0),_=n.useMemo(()=>be.sortPrompts(a,l).map((k,q)=>({id:`preset-${q}-${k.slice(0,20)}`,content:k,pinned:be.isPinned(a,k)})),[a,l,w]),$=h&&a==="video"&&g==="sora",{mentionState:I,textareaRef:O,handleTextChange:u,handleKeyDown:P,handleCharacterSelect:Z,closeMentionPopup:R}=St({enabled:$,onPromptChange:i,prompt:s}),J=n.useCallback(()=>{if(S.current&&N){const U=S.current.getBoundingClientRect(),k=8,q=320,re=400,he=window.innerHeight-U.top+4,oe=Math.min(q,window.innerWidth-k*2),me=window.innerWidth-U.right,ge=window.innerWidth-oe-k,Ne=Math.max(Math.min(me,ge),k),xe=Math.min(re,U.top-k,window.innerHeight*.45);x({bottom:he,right:Ne,maxHeight:xe})}},[N]);n.useEffect(()=>{if(N)return J(),window.addEventListener("scroll",J,!0),window.addEventListener("resize",J),()=>{window.removeEventListener("scroll",J,!0),window.removeEventListener("resize",J)}},[N,J]),n.useEffect(()=>{const U=k=>{const q=k.target;if(E.current&&!E.current.contains(q)){const re=document.querySelector(".preset-prompt-panel-portal");re!=null&&re.contains(q)||y(!1)}};if(N)return document.addEventListener("mousedown",U),()=>document.removeEventListener("mousedown",U)},[N]);const ae=n.useCallback(U=>{const k=typeof U=="string"?U:U.content;i(k),v==null||v(null),y(!1)},[i,v]),ne=n.useCallback(U=>{const k=_.find(q=>q.id===U);k&&(k.pinned?be.unpinPrompt(a,k.content):be.pinPrompt(a,k.content),b(q=>q+1))},[a,_]),ie=n.useCallback(U=>{const k=_.find(q=>q.id===U);k&&(be.deletePrompt(a,k.content),b(q=>q+1))},[a,_]),Y=n.useCallback(U=>{const k=U.target.value,q=U.target.selectionStart||0;u(k,q),v==null||v(null)},[u,v]);n.useEffect(()=>{a!=="video"&&R()},[a,R]);const ee=()=>{if(!N||!d)return null;const U=r==="zh"?`${a==="image"?"图片":"视频"}描述预设`:`${a==="image"?"Image":"Video"} Description Presets`,k=t.jsxDEV("div",{className:"preset-prompt-panel-portal",style:{position:"fixed",bottom:d.bottom,right:d.right,zIndex:Se.DIALOG_POPOVER,"--panel-max-width":"calc(100vw - 16px)","--panel-max-height":`${d.maxHeight}px`},children:t.jsxDEV(ze,{title:U,items:_,onSelect:ae,onTogglePin:ne,onDelete:ie,language:r,disabled:p,showCount:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:194,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:182,columnNumber:7},void 0);return Fe.createPortal(k,document.body)};return t.jsxDEV("div",{className:"form-field form-field--prompt",children:[t.jsxDEV("div",{className:"form-label-with-icon",children:[t.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:213,columnNumber:7},void 0),t.jsxDEV("div",{className:"textarea-with-preset",children:t.jsxDEV("div",{className:"preset-tooltip-container",ref:E,children:[t.jsxDEV("button",{ref:S,type:"button",className:"preset-icon-button",disabled:p,onClick:()=>y(!N),children:t.jsxDEV($e,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:225,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:218,columnNumber:11},void 0),ee()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:217,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:216,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:212,columnNumber:7},void 0),t.jsxDEV("textarea",{ref:O,className:"form-textarea",value:s,onChange:Y,onKeyDown:P,placeholder:Ct(r,a,g),rows:4,disabled:p},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:231,columnNumber:7},void 0),$&&t.jsxDEV(Mt,{visible:I.visible,query:I.query,position:I.position,showBelow:I.showBelow,selectedIndex:I.selectedIndex,onSelect:Z,onClose:R},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:244,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:211,columnNumber:5},void 0)};function Tt(s){return s.map(i=>i.prompt.trim()).filter(i=>i.length>0).filter((i,l,r)=>r.indexOf(i)===l)}const Ht=(s,i,l)=>{const r=s==="image"?Ge(i):Xe(i),a=Tt(l);return[...[...s==="video"?Oe():He(),...a].filter((g,N,y)=>y.indexOf(g)===N).slice(0,We),...r].filter((g,N,y)=>y.indexOf(g)===N).slice(0,Qe)},Wt=(s,i,l)=>{!i||!i.trim()||(s==="video"?Ye(i.trim()):Ke(i.trim()))},Gt=({images:s,onImagesChange:i,language:l="zh",disabled:r=!1,multiple:a=!0,maxCount:p=10,label:v,slotLabels:h,onError:g})=>{const[N,y]=n.useState(!1),[E,S]=n.useState(!1),[d,x]=n.useState(0),[w,b]=n.useState(null),_=n.useRef(null),$=n.useRef(null),{addAsset:I}=Ze(),u={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 25MB",someFilesInvalid:"部分文件格式不支持或超过25MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 25MB",someFilesInvalid:"Some files are not supported or exceed 25MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[l],P=n.useCallback(c=>c.type.startsWith("image/")?c.size>25*1024*1024?(Q.error(u.fileTooLarge),!1):!0:(Q.error(u.invalidFile),!1),[u]),Z=n.useCallback((c,f)=>new Promise((D,A)=>{const B=new FileReader;B.onload=()=>{D({url:B.result,name:f,file:(c instanceof File,c)})},B.onerror=A,B.readAsDataURL(c)}),[]),R=n.useCallback(async(c,f)=>{const A=Array.from(c).filter(P);if(A.length===0)return;a&&s.length+A.length>p&&(Q.warning(u.maxCountReached.replace("{count}",String(p))),A.splice(p-s.length));const B=[];for(const V of A)try{let z=V;if(V.size>10*1024*1024){const o=Je(V.size/1048576),e=Q.loading({content:l==="zh"?`正在压缩图片 (${(V.size/1024/1024).toFixed(1)}MB)...`:`Compressing image (${(V.size/1024/1024).toFixed(1)}MB)...`,duration:0,placement:"top"});try{z=await et(V,o.targetSizeMB),Q.close(e),Q.success({content:l==="zh"?`压缩完成: ${(V.size/1024/1024).toFixed(1)}MB → ${(z.size/1024/1024).toFixed(1)}MB`:`Compressed: ${(V.size/1024/1024).toFixed(1)}MB → ${(z.size/1024/1024).toFixed(1)}MB`,duration:2})}catch(C){Q.close(e),console.error("[ReferenceImageUpload] Compression failed:",C),g==null||g(l==="zh"?"图片压缩失败":"Image compression failed");continue}}B.push({blob:z,name:V.name})}catch(z){console.error("[ReferenceImageUpload] Error processing file:",z),g==null||g(u.loadFailed);continue}if(B.length!==0){B.forEach(({blob:V,name:z})=>{I(V,je.IMAGE,tt.LOCAL,z).catch(o=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",o)})});try{const V=await Promise.all(B.map(({blob:z,name:o})=>Z(z,o)));if(h&&f!==void 0){const z=[...s];z[f]=V[0],i(z.filter(Boolean))}else i(a?[...s,...V]:V.slice(0,1));g==null||g(null)}catch(V){console.error("[ReferenceImageUpload] Failed to process files:",V),g==null||g(u.loadFailed)}}},[s,a,p,h,l,P,Z,I,i,g,u]),J=n.useCallback(c=>{const f=c.target.files;f&&f.length>0&&R(f,h?d:void 0),c.target.value=""},[R,h,d]),ae=n.useCallback(async c=>{try{const D=await(await fetch(c.url)).blob(),A=new FileReader;A.onload=()=>{const B={url:A.result,name:c.name};if(h){const V=[...s];V[d]=B,i(V.filter(Boolean))}else if(a){if(s.length>=p){Q.warning(u.maxCountReached.replace("{count}",String(p)));return}i([...s,B])}else i([B]);y(!1),g==null||g(null)},A.readAsDataURL(D)}catch(f){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",f),g==null||g(u.loadFailed),y(!1)}},[s,a,p,h,d,i,g,u]),ne=n.useCallback(c=>{c.preventDefault(),c.stopPropagation(),r||S(!0)},[r]),ie=n.useCallback(c=>{var D;c.preventDefault(),c.stopPropagation();const f=(D=_.current)==null?void 0:D.getBoundingClientRect();if(f){const{clientX:A,clientY:B}=c;(A<f.left||A>f.right||B<f.top||B>f.bottom)&&S(!1)}},[]),Y=n.useCallback(c=>{c.preventDefault(),c.stopPropagation()},[]),ee=n.useCallback((c,f)=>{if(c.preventDefault(),c.stopPropagation(),S(!1),r)return;const D=c.dataTransfer.files;D&&D.length>0&&R(D,f)},[r,R]);n.useEffect(()=>{const c=async f=>{var o;if(r)return;const D=document.activeElement,A=_.current;if(!A||!(A.contains(D)||D===document.body||(D==null?void 0:D.tagName)==="BODY"))return;const V=(o=f.clipboardData)==null?void 0:o.items;if(!V)return;const z=[];for(let e=0;e<V.length;e++){const C=V[e];if(C.type.startsWith("image/")){const F=C.getAsFile();F&&z.push(F)}}z.length>0&&(f.preventDefault(),R(z))};return document.addEventListener("paste",c),()=>{document.removeEventListener("paste",c)}},[r,R]);const U=n.useCallback(c=>{const f=s.filter((D,A)=>A!==c);b(null),i(f)},[s,i]),k=n.useCallback(c=>{var f;c!==void 0&&x(c),(f=$.current)==null||f.click()},[]),q=n.useCallback(c=>{c!==void 0&&x(c),y(!0)},[]),re=n.useCallback((c,f)=>{const D=f.currentTarget.getBoundingClientRect(),A=D.left+D.width/2,B=D.top-10;b({url:c,x:A,y:B})},[]),he=n.useCallback(()=>{b(null)},[]),oe=c=>t.jsxDEV("div",{className:`reference-image-upload__placeholder ${E?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:ne,onDragLeave:ie,onDragOver:Y,onDrop:f=>ee(f,c),children:t.jsxDEV("div",{className:"reference-image-upload__buttons",children:[t.jsxDEV(fe,{variant:"outline",icon:t.jsxDEV(Ie,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:401,columnNumber:17},void 0),onClick:()=>k(c),disabled:r,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:399,columnNumber:9},void 0),t.jsxDEV(fe,{variant:"outline",icon:t.jsxDEV(Ue,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:411,columnNumber:17},void 0),onClick:()=>q(c),disabled:r,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:398,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:391,columnNumber:5},void 0),me=(c,f)=>t.jsxDEV("div",{className:"reference-image-upload__preview",onMouseEnter:D=>re(c.url,D),onMouseLeave:he,children:[t.jsxDEV("img",{src:c.url,alt:c.name,className:"reference-image-upload__image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:431,columnNumber:7},void 0),t.jsxDEV("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>U(f),disabled:r,"data-track":"reference_image_upload_remove",children:t.jsxDEV(it,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:443,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:436,columnNumber:7},void 0),h&&h[f]&&t.jsxDEV("div",{className:"reference-image-upload__slot-label",children:h[f]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:446,columnNumber:9},void 0)]},f,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:425,columnNumber:5},void 0),ge=()=>h?t.jsxDEV("div",{className:"reference-image-upload__slots",children:h.map((c,f)=>{const D=s[f];return t.jsxDEV("div",{className:"reference-image-upload__slot",children:[t.jsxDEV("div",{className:"reference-image-upload__slot-title",children:c},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:463,columnNumber:15},void 0),D?me(D,f):t.jsxDEV("div",{className:`reference-image-upload__slot-placeholder ${E?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:ne,onDragLeave:ie,onDragOver:Y,onDrop:A=>ee(A,f),children:t.jsxDEV("div",{className:"reference-image-upload__slot-buttons",children:[t.jsxDEV(fe,{variant:"outline",icon:t.jsxDEV(Ie,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:477,columnNumber:29},void 0),onClick:()=>k(f),disabled:r,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:475,columnNumber:21},void 0),t.jsxDEV(fe,{variant:"outline",icon:t.jsxDEV(Ue,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:487,columnNumber:29},void 0),onClick:()=>q(f),disabled:r,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:485,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:474,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:467,columnNumber:17},void 0)]},f,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:462,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:458,columnNumber:7},void 0):null,Ne=()=>{const c=a&&s.length<p;return t.jsxDEV("div",{className:"reference-image-upload__grid",children:[s.map((f,D)=>me(f,D)),c&&oe(),s.length===0&&!c&&oe()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:510,columnNumber:7},void 0)},xe=()=>s.length>0?t.jsxDEV("div",{className:"reference-image-upload__single",children:[me(s[0],0),t.jsxDEV("div",{className:"reference-image-upload__replace",children:oe()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:524,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:522,columnNumber:9},void 0):oe();return t.jsxDEV(t.Fragment,{children:[w&&st.createPortal(t.jsxDEV("div",{className:"reference-image-upload__hover-preview",style:{left:`${w.x}px`,top:`${w.y}px`,transform:"translate(-50%, -100%)"},children:t.jsxDEV("img",{src:w.url,alt:"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:545,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:537,columnNumber:9},void 0),document.body),t.jsxDEV("div",{ref:_,className:`reference-image-upload ${r?"reference-image-upload--disabled":""}`,tabIndex:0,children:[v&&t.jsxDEV("div",{className:"reference-image-upload__label",children:v},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:556,columnNumber:11},void 0),t.jsxDEV("input",{ref:$,type:"file",accept:"image/*",multiple:a&&!h,onChange:J,className:"reference-image-upload__input",disabled:r},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:559,columnNumber:9},void 0),h?ge():a?Ne():xe(),t.jsxDEV(at,{isOpen:N,onClose:()=>y(!1),mode:nt.SELECT,filterType:je.IMAGE,onSelect:ae},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:571,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:550,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:534,columnNumber:5},void 0)},Te="aitu-dialog-task-list-width-",ye=240,ke=800,At=()=>{const s=Math.round(660);return Math.max(ye,Math.min(ke,s))},Xt=s=>{try{const i=localStorage.getItem(Te+s);if(i){const l=parseInt(i,10);if(!isNaN(l)&&l>=ye&&l<=ke)return l}}catch{}return At()},Me=(s,i)=>{try{localStorage.setItem(Te+s,i.toString())}catch{}},Qt=({isRightPanelVisible:s,onToggleRightPanel:i,onWidthChange:l,rightPanelWidth:r,minWidth:a=ye,maxWidth:p=ke,onResizeStart:v,onResizeEnd:h,language:g="zh",disabled:N=!1,storageKey:y="image"})=>{const[E,S]=n.useState(!1),d=n.useRef(0),x=n.useRef(0);n.useEffect(()=>(E?(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=""}),[E]);const w=n.useCallback(_=>{if(N||!s)return;_.preventDefault(),_.stopPropagation(),S(!0),d.current=_.clientX,x.current=r,v==null||v();const $=O=>{const u=d.current-O.clientX,P=Math.max(a,Math.min(p,x.current+u));l(P)},I=()=>{S(!1),h==null||h(),x.current+(d.current-document.body.getBoundingClientRect().left),Me(y,r),document.removeEventListener("mousemove",$),document.removeEventListener("mouseup",I)};document.addEventListener("mousemove",$),document.addEventListener("mouseup",I)},[N,s,r,a,p,l,v,h,y]);n.useEffect(()=>{!E&&s&&Me(y,r)},[r,E,s,y]);const b=s?g==="zh"?"隐藏任务列表":"Hide Task List":g==="zh"?"显示任务列表":"Show Task List";return t.jsxDEV("div",{className:`resizable-divider ${E?"is-dragging":""} ${s?"":"is-collapsed"} ${N?"is-disabled":""}`,onMouseDown:w,children:[t.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:170,columnNumber:7},void 0),t.jsxDEV(ve,{content:b,theme:"light",placement:"left",children:t.jsxDEV("button",{type:"button",className:"resizable-divider__toggle",onClick:_=>{_.stopPropagation(),i()},"aria-label":b,children:s?t.jsxDEV(rt,{size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:182,columnNumber:13},void 0):t.jsxDEV(ot,{size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:184,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:172,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:171,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ResizableDivider.tsx",lineNumber:164,columnNumber:5},void 0)},Yt=({storageKey:s,language:i})=>{const[l,r]=n.useState(()=>{try{return localStorage.getItem(s)!=="false"}catch{return!0}}),a=n.useCallback(p=>{r(p);try{localStorage.setItem(s,String(p))}catch{}},[s]);return t.jsxDEV(ve,{content:i==="zh"?"生成后自动插入画布":"Auto insert to canvas after generation",theme:"light",children:t.jsxDEV(lt,{checked:l,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:35,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AutoInsertCheckbox.tsx",lineNumber:31,columnNumber:5},void 0)};function Kt(s){try{return localStorage.getItem(s)!=="false"}catch{return!0}}function Rt(s={}){const{taskType:i}=s,{tasks:l,isLoading:r}=dt(),{retryTask:a,deleteTask:p}=ct(),v=n.useMemo(()=>[...i?l.filter(y=>y.type===i):l].sort((y,E)=>E.createdAt-y.createdAt),[l,i]),h=n.useCallback(async()=>{},[]),g=n.useCallback(async()=>{if(ut(),!await Ce.isAvailable())return;const y=await Ce.getAllTasks();y.length>0&&mt.restoreTasks(y)},[]);return{tasks:v,isLoading:r,isLoadingMore:!1,hasMore:!1,totalCount:v.length,loadedCount:v.length,loadMore:h,refresh:g,retryTask:a,deleteTask:p}}const Zt=({taskIds:s,taskType:i,onEditTask:l})=>{const{tasks:r,isLoading:a,isLoadingMore:p,hasMore:v,totalCount:h,loadedCount:g,loadMore:N,retryTask:y,deleteTask:E}=Rt({taskType:i}),{board:S,openDialog:d}=pt(),[x,w]=n.useState(!1),[b,_]=n.useState(null),[$,I]=n.useState(!1),[O,u]=n.useState(0),[P,Z]=n.useState("single"),[R,J]=n.useState(""),[ae,ne]=n.useState(null),[ie,Y]=n.useState(!1),ee=n.useMemo(()=>r.filter(o=>o.status===ue.FAILED).length,[r]),U=n.useCallback(()=>{const o=r.filter(e=>e.status===ue.FAILED);o.forEach(e=>E(e.id)),Y(!1),Q.success(`已清除 ${o.length} 个失败任务`)},[r,E]),k=(o,e)=>{var te,m,se,T,le,W,G,K,H,de,ce;if(!e.trim())return!0;const C=e.toLowerCase().split(/\s+/).filter(Boolean),F={[ue.PENDING]:"处理中",[ue.PROCESSING]:"处理中",[ue.COMPLETED]:"已完成",[ue.FAILED]:"失败",[ue.CANCELLED]:"已取消"},j=[],M=(te=o.params)!=null&&te.params&&typeof o.params.params=="object"?o.params.params:null;j.push(((m=o.params)==null?void 0:m.prompt)??""),j.push(((se=o.params)==null?void 0:se.model)??""),j.push(o.id??""),j.push(F[o.status]??String(o.status)),(T=o.params)!=null&&T.batchId&&j.push(String(o.params.batchId)),(le=o.params)!=null&&le.batchIndex&&j.push(String(o.params.batchIndex)),(W=o.params)!=null&&W.batchTotal&&j.push(String(o.params.batchTotal)),typeof(M==null?void 0:M.model_name)=="string"&&j.push(M.model_name),typeof(M==null?void 0:M.mode)=="string"&&j.push(M.mode),typeof(M==null?void 0:M.klingAction2)=="string"&&j.push(M.klingAction2),(G=o.result)!=null&&G.format&&j.push(String(o.result.format)),(K=o.result)!=null&&K.width&&((H=o.result)!=null&&H.height)?j.push(`${o.result.width}x${o.result.height}`):(de=o.params)!=null&&de.width&&((ce=o.params)!=null&&ce.height)&&j.push(`${o.params.width}x${o.params.height}`);const L=j.join(" ").toLowerCase();return C.every(pe=>L.includes(pe))},q=n.useMemo(()=>{let o=r;return s&&s.length>0&&(o=o.filter(e=>s.includes(e.id))),R.trim()&&(o=o.filter(e=>k(e,R))),o.sort((e,C)=>C.createdAt-e.createdAt)},[r,s,R]),re=o=>{y(o)},he=o=>{_(o),w(!0)},oe=()=>{b&&E(b),w(!1),_(null)},me=async o=>{var F,j,M,L,te;const e=r.find(m=>m.id===o);if(!((F=e==null?void 0:e.result)!=null&&F.url)&&!((M=(j=e==null?void 0:e.result)==null?void 0:j.urls)!=null&&M.length))return;const C=(L=e.result.urls)!=null&&L.length?e.result.urls:[e.result.url];try{for(let m=0;m<C.length;m++){const se=C[m],T=(te=e.result.clips)==null?void 0:te[m],le=kt((T==null?void 0:T.title)||e.result.title||e.params.title||e.params.prompt,e.type,e.result.format,C.length>1?`-${m+1}`:void 0),W=e.type===X.AUDIO?{title:(T==null?void 0:T.title)||e.result.title||e.params.title,prompt:e.params.prompt,tags:typeof e.params.tags=="string"?e.params.tags:void 0,coverUrl:(T==null?void 0:T.imageLargeUrl)||(T==null?void 0:T.imageUrl)||e.result.previewImageUrl,artist:e.params.model||e.params.mv||"Aitu",album:"Aitu Generated"}:void 0,G=await Dt.getCachedBlob(se);if(G){const H=e.type===X.AUDIO?await jt(G,W,se):G;It(H,le);continue}const K=await Ut(se,(T==null?void 0:T.title)||e.result.title||e.params.title||e.params.prompt,e.result.format,e.type,W);K&&"opened"in K}Q.success(e.type===X.AUDIO?C.length>1?"多条音频已开始下载":"音频下载成功":C.length>1?"多图已开始下载":"下载成功")}catch(m){console.error("Download failed:",m),Q.error("下载失败,请稍后重试")}},ge=async o=>{var C,F,j,M;const e=r.find(L=>L.id===o);if(!((C=e==null?void 0:e.result)!=null&&C.url)&&!((j=(F=e==null?void 0:e.result)==null?void 0:F.urls)!=null&&j.length)||!S){console.warn("Cannot insert: task result or board not available"),Q.warning("无法插入:白板未就绪");return}try{if(e.type===X.IMAGE){const L=(M=e.result.urls)!=null&&M.length?e.result.urls:[e.result.url];for(const te of L)await wt(S,te);Q.success(L.length>1?"多图已插入到白板":"图片已插入到白板")}else e.type===X.VIDEO&&(await yt(S,e.result.url),Q.success("视频已插入到白板"))}catch(L){console.error("Failed to insert to board:",L),Q.error(`插入失败: ${L instanceof Error?L.message:"未知错误"}`)}},Ne=o=>{var C,F,j,M;const e=r.find(L=>L.id===o);if(!e){console.warn("Cannot edit: task not found");return}if(l){l(e);return}if(e.type===X.IMAGE){const L={initialPrompt:e.params.prompt,initialWidth:e.params.width,initialHeight:e.params.height,initialImages:e.params.uploadedImages,initialResultUrl:(C=e.result)==null?void 0:C.url,initialResultUrls:(F=e.result)==null?void 0:F.urls};d(_e.aiImageGeneration,L)}else if(e.type===X.VIDEO){const L={initialPrompt:e.params.prompt,initialDuration:typeof e.params.seconds=="string"?parseInt(e.params.seconds,10):e.params.seconds,initialModel:e.params.model,initialSize:e.params.size,initialImages:e.params.uploadedImages,initialResultUrl:(j=e.result)==null?void 0:j.url,initialResultUrls:(M=e.result)==null?void 0:M.urls};d(_e.aiVideoGeneration,L)}},xe=o=>{const e=r.find(C=>C.id===o);e&&ne(e)},c=n.useMemo(()=>{const o=new Set;return q.filter(e=>{var C,F,j,M;return e.status!==ue.COMPLETED||!((C=e.result)!=null&&C.url)&&!((j=(F=e.result)==null?void 0:F.urls)!=null&&j.length)||e.type!==X.IMAGE&&e.type!==X.VIDEO&&!(e.type===X.AUDIO&&((M=e.result)==null?void 0:M.resultKind)!=="lyrics")||o.has(e.id)?!1:(o.add(e.id),!0)})},[q]),{previewMediaItems:f,taskIdToPreviewConfig:D}=n.useMemo(()=>{var C,F,j,M,L,te;const o=[],e=new Map;for(const m of c){const se=o.length,T=((C=m.result)==null?void 0:C.title)||m.params.title||((F=m.params.prompt)==null?void 0:F.substring(0,50))||"媒体预览";if(m.type===X.AUDIO){const W=((M=(j=m.result)==null?void 0:j.clips)==null?void 0:M.filter(H=>!!H.audioUrl).map((H,de)=>{var ce,pe,De;return{id:H.clipId||H.id||`${m.id}-${de}`,url:H.audioUrl,type:"audio",title:H.title||((ce=m.result)!=null&&ce.clips&&m.result.clips.length>1?`${T} (${de+1}/${m.result.clips.length})`:T),posterUrl:H.imageLargeUrl||H.imageUrl||((pe=m.result)==null?void 0:pe.previewImageUrl),duration:typeof H.duration=="number"?H.duration:(De=m.result)==null?void 0:De.duration,prompt:m.params.prompt,tags:typeof m.params.tags=="string"?m.params.tags:void 0,artist:m.params.model||m.params.mv||"Aitu",album:"Aitu Generated"}}))??[],G=(L=m.result.urls)!=null&&L.length?m.result.urls:m.result.url?[m.result.url]:[],K=W.length>0?W:G.map((H,de)=>{var ce,pe;return{id:G.length>1?`${m.id}-${de}`:m.id,url:H,type:"audio",title:G.length>1?`${T} (${de+1}/${G.length})`:T,posterUrl:(ce=m.result)==null?void 0:ce.previewImageUrl,duration:(pe=m.result)==null?void 0:pe.duration,prompt:m.params.prompt,tags:typeof m.params.tags=="string"?m.params.tags:void 0,artist:m.params.model||m.params.mv||"Aitu",album:"Aitu Generated"}});o.push(...K)}else{const W=(te=m.result.urls)!=null&&te.length?m.result.urls:[m.result.url],G=m.type===X.VIDEO?"video":"image";for(let K=0;K<W.length;K++)o.push({id:W.length>1?`${m.id}-${K}`:m.id,url:G==="image"?ft(W[K]):W[K],type:G,title:W.length>1?`${T} (${K+1}/${W.length})`:T})}const le=o.length-se;e.set(m.id,{mode:m.type===X.AUDIO&&le>1?"compare":"single",index:m.type===X.AUDIO&&le>1?Array.from({length:Math.min(le,4)},(W,G)=>se+G):se})}return{previewMediaItems:o,taskIdToPreviewConfig:e}},[c]),A=n.useCallback(o=>{const e=D.get(o);e!==void 0&&(Z(e.mode),u(e.index),I(!0))},[D]),B=n.useCallback(()=>{I(!1)},[]),V=R.trim()&&q.length===0&&r.length>0,z=h>0?h:r.length;return t.jsxDEV(t.Fragment,{children:[t.jsxDEV("div",{className:"dialog-task-list",children:[t.jsxDEV("div",{className:"dialog-task-list__header",children:[t.jsxDEV("div",{className:"dialog-task-list__header-main",children:[t.jsxDEV("h4",{children:["生成任务 (",z,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:482,columnNumber:13},void 0),t.jsxDEV("div",{className:"dialog-task-list__header-actions",children:ee>0&&t.jsxDEV(ve,{content:`清除全部失败任务 (${ee})`,theme:"light",children:t.jsxDEV(fe,{size:"small",variant:"text",icon:t.jsxDEV(ht,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:492,columnNumber:27},void 0),onClick:()=>Y(!0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:489,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:485,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:483,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:481,columnNumber:11},void 0),t.jsxDEV("div",{className:"dialog-task-list__search",children:t.jsxDEV(gt,{value:R,onChange:o=>J(o),placeholder:"搜索任务(提示词/模型/...)",clearable:!0,prefixIcon:t.jsxDEV(Nt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:505,columnNumber:27},void 0),size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:500,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:499,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:480,columnNumber:9},void 0),t.jsxDEV(xt,{tasks:q,onRetry:re,onDelete:he,onDownload:me,onInsert:ge,onEdit:Ne,onPreviewOpen:A,onExtractCharacter:xe,hasMore:v,isLoadingMore:p,onLoadMore:N,totalCount:z,loadedCount:g,className:"dialog-task-list__content",emptyContent:t.jsxDEV("div",{className:"dialog-task-list__empty",children:a?t.jsxDEV("p",{children:"加载中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:528,columnNumber:17},void 0):V?t.jsxDEV("p",{children:"未找到匹配的任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:530,columnNumber:17},void 0):t.jsxDEV("p",{children:"暂无生成任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:532,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:526,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:510,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:479,columnNumber:7},void 0),t.jsxDEV(Ee,{visible:x,header:"确认删除",onClose:()=>w(!1),onConfirm:oe,onCancel:()=>w(!1),children:"确定要删除此任务吗?此操作无法撤销。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:540,columnNumber:7},void 0),t.jsxDEV(Ee,{visible:ie,header:"清除失败任务",onClose:()=>Y(!1),onConfirm:U,onCancel:()=>Y(!1),children:["确定要清除全部 ",ee," 个失败任务吗?此操作无法撤销。"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:551,columnNumber:7},void 0),t.jsxDEV(bt,{visible:$,items:f,initialMode:P,initialIndex:O,onClose:B,showThumbnails:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:562,columnNumber:7},void 0),t.jsxDEV(vt,{visible:!!ae,task:ae,onClose:()=>ne(null),onCreateComplete:o=>{ne(null)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:572,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:478,columnNumber:5},void 0)};export{zt as A,Mt as C,Zt as D,Ft as E,Ot as P,Gt as R,$t as a,Bt as b,Yt as c,Qt as d,Kt as e,St as f,Ht as g,Xt as l,Wt as s,Pt as u};