aitu-app 0.6.21 → 0.6.22
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.
- package/README.md +3 -3
- package/assets/{ChatMessagesArea-Bc7FkjZo.js → ChatMessagesArea-63H9tZtG.js} +3 -3
- package/assets/{KnowledgeBaseContent-BLIcG9KK.js → KnowledgeBaseContent-5j70f-FP.js} +4 -4
- package/assets/{ModelBenchmarkWorkbench-CGztJD2j.js → ModelBenchmarkWorkbench-OdGWsh0T.js} +1 -1
- package/assets/{ResizableDivider-DfqWs8LM.js → ResizableDivider-DUn2YRJi.js} +1 -1
- package/assets/{ToolboxDrawer-B9g_w8pc.js → ToolboxDrawer-DDAFUdNA.js} +1 -1
- package/assets/{VideoAnalyzer-KdlQiqKF.js → VideoAnalyzer-C7mAfG_a.js} +1 -1
- package/assets/{ai-analyze-D51W4jnj.js → ai-analyze-CJsLcVP0.js} +1 -1
- package/assets/{arc-DVIrWwbE.js → arc-BwiBrwsC.js} +1 -1
- package/assets/{arc-BqtXmYwJ.js → arc-bU0RTLO_.js} +1 -1
- package/assets/{batch-image-generation-DEC8rrCP.js → batch-image-generation-se7md6Xz.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-BgPS1CyJ.js → blockDiagram-38ab4fdb-C-J430-U.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-CMoyjTgm.js → blockDiagram-38ab4fdb-CRlC08-f.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-wjCA-CL-.js → c4Diagram-3d4e48cf-CZXHUfLE.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-CIeKmCwa.js → c4Diagram-3d4e48cf-CjnnPMdb.js} +1 -1
- package/assets/channel-C0300EYS.js +1 -0
- package/assets/channel-CFKYr4PJ.js +1 -0
- package/assets/{classDiagram-70f12bd4-vizVZzUd.js → classDiagram-70f12bd4-CHHFCLtW.js} +1 -1
- package/assets/{classDiagram-70f12bd4-DfTNrA1t.js → classDiagram-70f12bd4-Cka5pz9E.js} +1 -1
- package/assets/{classDiagram-v2-f2320105-LutY6jPP.js → classDiagram-v2-f2320105-BoY5QpGK.js} +1 -1
- package/assets/{classDiagram-v2-f2320105-DO7izSAk.js → classDiagram-v2-f2320105-DhMOYQPM.js} +1 -1
- package/assets/{clipper-D3zP18nj.js → clipper-ZDte_DyN.js} +1 -1
- package/assets/clone-B4wQMor7.js +1 -0
- package/assets/clone-DTNvy75S.js +1 -0
- package/assets/{createText-2e5e7dd3-CtWg9f_f.js → createText-2e5e7dd3-CouAisK8.js} +1 -1
- package/assets/{createText-2e5e7dd3-iSllMU05.js → createText-2e5e7dd3-DQiR2iFi.js} +1 -1
- package/assets/{edges-e0da2a9e-B8N3S4AD.js → edges-e0da2a9e-D5w5n92i.js} +1 -1
- package/assets/{edges-e0da2a9e-B9APkBSa.js → edges-e0da2a9e-dJImi3XC.js} +1 -1
- package/assets/{erDiagram-9861fffd-Dnp1WpmL.js → erDiagram-9861fffd-9WI5iVS2.js} +1 -1
- package/assets/{erDiagram-9861fffd-B1x-ZWfU.js → erDiagram-9861fffd-IyJNqdw_.js} +1 -1
- package/assets/{flowDb-956e92f1-BT8eaBZE.js → flowDb-956e92f1-DltT8K-M.js} +1 -1
- package/assets/{flowDb-956e92f1-5caTHN1T.js → flowDb-956e92f1-FUMkFpNV.js} +1 -1
- package/assets/{flowDiagram-66a62f08-B5xcjVie.js → flowDiagram-66a62f08-Dbc4Nx93.js} +1 -1
- package/assets/{flowDiagram-66a62f08-Cx_V_MoA.js → flowDiagram-66a62f08-nXDkz0Ug.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-BVOhfZw2.js +1 -0
- package/assets/flowDiagram-v2-96b9c2cf-j5LlfdZR.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-Cjgywupa.js → flowchart-elk-definition-4a651766-B6rzHwEw.js} +1 -1
- package/assets/{flowchart-elk-definition-4a651766-CwIA9l-O.js → flowchart-elk-definition-4a651766-gZ7Jh0C4.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-6zSjhOJy.js → ganttDiagram-c361ad54-B9Sd11GI.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-oySKvDa4.js → ganttDiagram-c361ad54-CItnWrDi.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BK7TWB1s.js → gitGraphDiagram-72cf32ee-CYyEomwm.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BnNAY3pp.js → gitGraphDiagram-72cf32ee-Dd5nG_11.js} +1 -1
- package/assets/{graph-B_MH2EY9.js → graph-BHlg4sFb.js} +1 -1
- package/assets/{graph-BPS27gwv.js → graph-Cy6oe2k_.js} +1 -1
- package/assets/{grid-image-DLa8OQhL.js → grid-image-C-msrN1B.js} +1 -1
- package/assets/{has-D0S1Zmzg.js → has-CWNO02CD.js} +1 -1
- package/assets/{hasIn-De9yBkgj.js → hasIn-Bs6kQ8q7.js} +1 -1
- package/assets/{index-3862675e-FzFTrzJW.js → index-3862675e-BKpqGoRu.js} +1 -1
- package/assets/{index-3862675e-D6LCgHcS.js → index-3862675e-DsPsD_QS.js} +1 -1
- package/assets/{index-T5OF1JP4.js → index-B-A2026m.js} +1 -1
- package/assets/{index-Bjr6SLmW.js → index-BC5aP94k.js} +1 -1
- package/assets/{index-Cb_6lq4r.js → index-BEFGFeiI.js} +1 -1
- package/assets/{index-Dgs_9LtJ.js → index-BTRvm9gy.js} +1 -1
- package/assets/{index-B8Cp8ZAq.js → index-B_ECxmtW.js} +1 -1
- package/assets/{index-CGUpUzSI.js → index-BcM3gyCR.js} +1 -1
- package/assets/{index-Ia_xKhIZ.js → index-BdH171U0.js} +5 -5
- package/assets/{index-sARZWo5n.js → index-Br38Ej3g.js} +1 -1
- package/assets/{index-CU-f8hlX.js → index-C-wf0YcU.js} +1 -1
- package/assets/{index-Ctlb8bi0.js → index-C1X4nHa1.js} +1 -1
- package/assets/{index-Br6iEGLw.js → index-CCzr4Dqs.js} +1 -1
- package/assets/{index-DYQtOpt_.js → index-CMfdA3Eb.js} +1 -1
- package/assets/{index-B1Qj7KmK.js → index-CRvF4JAy.js} +1 -1
- package/assets/{index-GP_0iNEx.js → index-CUYzOOe1.js} +1 -1
- package/assets/{index-rrHZbeHC.js → index-CnVvluBH.js} +1 -1
- package/assets/{index-Ddc6oDDk.js → index-D4JTX52h.js} +1 -1
- package/assets/{index-BdrYk4gf.js → index-DB9eHDVM.js} +1 -1
- package/assets/{index-DFgRlr0t.js → index-DGVrURNm.js} +1 -1
- package/assets/{index-CG_qIHbM.js → index-Dczi3BkD.js} +1 -1
- package/assets/{index-CSxjkKUk.js → index-DtJW2qel.js} +1 -1
- package/assets/{index-6opHRfWl.js → index-DysS6hq1.js} +1 -1
- package/assets/{index-C6mW2Bug.js → index-KJVd0B2z.js} +1 -1
- package/assets/{index-BIv91qW9.js → index-T9dstNa6.js} +16 -16
- package/assets/{index-B3GMIqjJ.js → index-TQu9hYF9.js} +1 -1
- package/assets/{index-CAghokCh.js → index-Y5c26X-0.js} +1 -1
- package/assets/{index-BR5Ge2w3.js → index-YBixVTkA.js} +1 -1
- package/assets/{index-CqeciDtE.js → index-ZRpcXeUi.js} +1 -1
- package/assets/{index-DUFh_idy.js → index-byQfZx9Y.js} +1 -1
- package/assets/{index-DJhDtQwz.js → index-hmLPqXUT.js} +1 -1
- package/assets/{index-BUde8Mm7.js → index-iDwZIVzi.js} +1 -1
- package/assets/{index-B_TY0tLT.js → index-sRNe5iWo.js} +1 -1
- package/assets/{index-CoNiRHcD.js → index-w0J-N3Bz.js} +1 -1
- package/assets/{index-CIsTR1zp.js → index-xSQSiTqU.js} +1 -1
- package/assets/{infoDiagram-f8f76790-C5lK_OdP.js → infoDiagram-f8f76790-D3aFK43x.js} +1 -1
- package/assets/{infoDiagram-f8f76790-DqxLIqvx.js → infoDiagram-f8f76790-plyhvVln.js} +1 -1
- package/assets/{inspiration-board-DELLwhlH.js → inspiration-board-WeHubIbH.js} +1 -1
- package/assets/{isEmpty-DF_ugZHw.js → isEmpty-DZgnI1Gi.js} +1 -1
- package/assets/{journeyDiagram-49397b02-f6bVwxyz.js → journeyDiagram-49397b02-BUEu9YZl.js} +1 -1
- package/assets/{journeyDiagram-49397b02-BJ9tbMfk.js → journeyDiagram-49397b02-CJLyWjZc.js} +1 -1
- package/assets/{layers-DAOrLzwi.js → layers-BZ-h9vGA.js} +1 -1
- package/assets/{layout-yMh6DKYs.js → layout-CB3iLEN-.js} +1 -1
- package/assets/{layout-fmUyEip8.js → layout-CfIv6ys6.js} +1 -1
- package/assets/{line-DANa88VO.js → line-Cl2IINpY.js} +1 -1
- package/assets/{line-DXiCFjwk.js → line-DEMH00tR.js} +1 -1
- package/assets/{linear-5iY8Cy-H.js → linear-CAlPBLIZ.js} +1 -1
- package/assets/{linear-ctDXkzM_.js → linear-CYligRij.js} +1 -1
- package/assets/{mermaid.core-Dgk12NKe.js → mermaid.core-HRa8_3iy.js} +5 -5
- package/assets/{mindmap-definition-fc14e90a-C7BlMhzr.js → mindmap-definition-fc14e90a-BE_BelNq.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-DLlf6Rx9.js → mindmap-definition-fc14e90a-BjEfE1ER.js} +1 -1
- package/assets/{model-benchmark-launcher-fleyPbmY.js → model-benchmark-launcher-DGhnqUWi.js} +1 -1
- package/assets/{photo-wall-splitter-xpPO2k5T.js → photo-wall-splitter-CEBkekUS.js} +1 -1
- package/assets/{pick-VCZntyna.js → pick-BDzXufGU.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-BBnaNSJ-.js → pieDiagram-8a3498a8-BOz79K-l.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-BvSfbq65.js → pieDiagram-8a3498a8-BXg1_0zb.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-Bnh-DNQv.js → quadrantDiagram-120e2f19-BNSax4Yv.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-Cm8pCCM5.js → quadrantDiagram-120e2f19-BW0c6246.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-CDm-DECv.js → requirementDiagram-deff3bca-BdKQCBBh.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-DMRUc1cx.js → requirementDiagram-deff3bca-DLC9wibM.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-CXC5R9JG.js → sankeyDiagram-04a897e0-gzh6unx3.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-BMtXJIXg.js → sankeyDiagram-04a897e0-mnwYvtIk.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-D42qglAv.js → sequenceDiagram-704730f1-9WzL_6Og.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-CNMmBUQx.js → sequenceDiagram-704730f1-CPrfOGmY.js} +1 -1
- package/assets/{settings-dialog-2ODvctTh.js → settings-dialog-DKi0S3Fj.js} +1 -1
- package/assets/{shard-sync-service-D3USLllH.js → shard-sync-service-DMBoL8-S.js} +1 -1
- package/assets/{stateDiagram-587899a1-DqPLyMub.js → stateDiagram-587899a1-D0lAIKBU.js} +1 -1
- package/assets/{stateDiagram-587899a1-DsEPR5ou.js → stateDiagram-587899a1-DHfaNuxL.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-DrlPKA21.js → stateDiagram-v2-d93cdb3a-BW2UOJGd.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-Bf_7sDs_.js → stateDiagram-v2-d93cdb3a-BkSMcdnU.js} +1 -1
- package/assets/{styles-6aaf32cf-YHAPMNO9.js → styles-6aaf32cf-BzV4m8wn.js} +1 -1
- package/assets/{styles-6aaf32cf-Bj2sDHb0.js → styles-6aaf32cf-DbLx1dQP.js} +1 -1
- package/assets/{styles-9a916d00-7jELss6_.js → styles-9a916d00-BWvAJ5en.js} +1 -1
- package/assets/{styles-9a916d00-CZUDnhpb.js → styles-9a916d00-DfAvsjKD.js} +1 -1
- package/assets/{styles-c10674c1-DC9073pI.js → styles-c10674c1-CeFiajQK.js} +1 -1
- package/assets/{styles-c10674c1-DLuj745u.js → styles-c10674c1-DOM3WQ5r.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-CrWF0HaY.js → svgDrawCommon-08f97a94-BVgqbMeh.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-D2AO9i1k.js → svgDrawCommon-08f97a94-BlKKsIl4.js} +1 -1
- package/assets/{timeline-definition-85554ec2-leTEuD1Q.js → timeline-definition-85554ec2-9aW1_D2N.js} +1 -1
- package/assets/{timeline-definition-85554ec2-7KS0GPh6.js → timeline-definition-85554ec2-DzpdYs0t.js} +1 -1
- package/assets/ttd-dialog-DEnnfHyO.js +115 -0
- package/assets/{upload-CQNwOcX2.js → upload-DNNZ8L4F.js} +1 -1
- package/assets/{video-recovery-service-BQIopXWm.js → video-recovery-service-CbVWiAGn.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-BCEY4mIx.js → xychartDiagram-e933f94c-DNl2ns7z.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-B_6b1Ojq.js → xychartDiagram-e933f94c-d54TQLOU.js} +1 -1
- package/changelog.json +13 -0
- package/package.json +1 -1
- package/precache-manifest.json +277 -277
- package/sw.js +1 -1
- package/version.json +3 -7
- package/assets/channel-Ckduo0Rh.js +0 -1
- package/assets/channel-DXN87Isu.js +0 -1
- package/assets/clone-CuD87pDT.js +0 -1
- package/assets/clone-DOLqw3Mb.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-BaJg3X7e.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-bslUZjmZ.js +0 -1
- package/assets/ttd-dialog-DZzhIaYG.js +0 -115
package/version.json
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.6.
|
|
3
|
-
"buildTime": "2026-04-
|
|
2
|
+
"version": "0.6.22",
|
|
3
|
+
"buildTime": "2026-04-13T08:16:36.639Z",
|
|
4
4
|
"gitCommit": "unknown",
|
|
5
5
|
"changelog": [
|
|
6
|
-
"
|
|
7
|
-
"避免 Milkdown 在 editorView 缺失时读取 markdown",
|
|
8
|
-
"收口关闭态工具箱与素材库弹窗挂载,修复用户页 Hook 崩溃",
|
|
9
|
-
"知识库素材嵌入 — Milkdown 自定义节点插件",
|
|
10
|
-
"修复媒体库弹窗条件渲染和音频封面URL处理"
|
|
6
|
+
"收口 AI 视频弹窗参数回写循环"
|
|
11
7
|
]
|
|
12
8
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{U as a,C as n}from"./index-Ia_xKhIZ.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{U as a,C as n}from"./mermaid.core-Dgk12NKe.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
|
package/assets/clone-CuD87pDT.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./graph-B_MH2EY9.js";var e=4;function a(o){return r(o,e)}export{a as c};
|
package/assets/clone-DOLqw3Mb.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aa as o}from"./index-BIv91qW9.js";var r=4;function n(a){return o(a,r)}export{n as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as o,p as e}from"./flowDb-956e92f1-BT8eaBZE.js";import{f as a,a as t}from"./styles-c10674c1-DC9073pI.js";import{y as i}from"./mermaid.core-Dgk12NKe.js";import"./graph-B_MH2EY9.js";import"./layout-fmUyEip8.js";import"./index-3862675e-D6LCgHcS.js";import"./clone-CuD87pDT.js";import"./edges-e0da2a9e-B9APkBSa.js";import"./createText-2e5e7dd3-iSllMU05.js";import"./index-BIv91qW9.js";import"./line-DANa88VO.js";import"./array-B5oSNiGi.js";import"./path-CY0bYimO.js";import"./channel-DXN87Isu.js";const n={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as o,p as e}from"./flowDb-956e92f1-5caTHN1T.js";import{f as a,a as t}from"./styles-c10674c1-DLuj745u.js";import{z as i}from"./index-Ia_xKhIZ.js";import"./graph-BPS27gwv.js";import"./layout-yMh6DKYs.js";import"./index-3862675e-FzFTrzJW.js";import"./index-BIv91qW9.js";import"./clone-DOLqw3Mb.js";import"./edges-e0da2a9e-B8N3S4AD.js";import"./createText-2e5e7dd3-CtWg9f_f.js";import"./index-B_TY0tLT.js";import"./line-DXiCFjwk.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./channel-Ckduo0Rh.js";import"./isEmpty-DF_ugZHw.js";import"./has-D0S1Zmzg.js";import"./hasIn-De9yBkgj.js";import"./pick-VCZntyna.js";const z={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{z as diagram};
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-Ia_xKhIZ.js","./index-BIv91qW9.js","./index-D73zwRQ2.css","./isEmpty-DF_ugZHw.js","./index-CoNiRHcD.js","./batch-image-generation-DEC8rrCP.js","./batch-image-generation-BePygpHd.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as a,fD as za,fE as $a,fF as jt,ew as Fa,bN as ce,fG as kt,bM as mt,bG as Ga,ek as Ba,ei as Et,fH as Wa,fI as Ka,fJ as Ha,fK as Ya,bO as pt,bP as Ye,I as Xa,_ as Ja,ab as e,bg as ze,fL as ia,ae as et,cS as Qa,fM as na,cl as Za,fe as oa,fN as es,fO as He,fP as ts,fQ as as,fd as ss,fR as is,fS as ns,fT as os,fU as rs,fV as ds,fW as ls,fX as cs,fY as us,dq as ms,bX as We,fZ as Ze,f_ as ps,f$ as fs,g0 as gs,d8 as hs,ch as ra,bh as da,cg as bs,g1 as xs,cf as Ns,g2 as vs,g3 as ys,g4 as Dt,g5 as ws,g6 as js,g7 as ks,g8 as Es,g9 as Ds,ga as Is,gb as Ss,gc as It,cV as it,gd as bt,bm as xt,ge as la,dA as ca,f9 as ua,dE as ft,dF as Vs,gf as ma,gg as pa,ds as le,bZ as Nt,z as be,gh as Us,gi as _s,gj as Cs,cs as St,y as qs,c8 as Le,bl as Te,gk as Ts,be as Ps,bf as Ms,gl as Os,cj as Vt,gm as Rs,gn as As,go as Ls,gp as zs,gq as $s,c9 as Fs,bY as fa,c0 as Be,c1 as Pe,c2 as _e,c3 as tt,c4 as Ue,c6 as Ne,gr as Ut,gs as rt,b_ as vt,c5 as Gs,gt as Bs,A as Me,gu as Ws,ce as ga,gv as ha,c$ as Xe,ca as Ks,cb as Hs,gw as _t,gx as Ct,gy as dt,gz as qt,gA as Ys,gB as Tt,gC as Xs,gD as Js,gE as Pt,gF as Qs,gG as lt,cZ as Mt,gH as Ot,gI as ct,gJ as Rt,gK as At,cC as Lt,cD as zt,d2 as $t,gL as Zs,dD as ei,gM as ti,gN as Ft,gO as Gt}from"./index-BIv91qW9.js";import{R as ba}from"./ResizableDivider-DfqWs8LM.js";import{S as xa}from"./index-DJhDtQwz.js";import"./pick-VCZntyna.js";import"./hasIn-De9yBkgj.js";/**
|
|
3
|
-
* tdesign v1.16.3
|
|
4
|
-
* (c) 2026 tdesign
|
|
5
|
-
* @license MIT
|
|
6
|
-
*/var Bt={allowUncheck:!1,defaultChecked:!1,disabled:void 0,readonly:void 0,readOnly:void 0,value:void 0},ai={allowUncheck:!1,disabled:void 0,readonly:void 0,readOnly:void 0,size:"medium",variant:"outline",theme:"radio"};/**
|
|
7
|
-
* tdesign v1.16.3
|
|
8
|
-
* (c) 2026 tdesign
|
|
9
|
-
* @license MIT
|
|
10
|
-
*/function si(s,t){var n=function(i){if(jt.test(i.key)||jt.test(i.code)){var d=i.target.querySelector("input");if(!d)return;var c=d.dataset||{};if(d.checked&&c.allowUncheck)t(void 0,{e:i});else{var l=isNaN(Number(c.value))?c.value:Number(c.value);l=typeof l=="string"&&{true:!0,false:!1}[l]||l,l=typeof l=="string"&&l[0]==="'"?l.replace(/'/g,""):l,t(l,{e:i})}}};a.useEffect(function(){return za(s.current,"keydown",n),function(){$a(s.current,"keydown",n)}},[])}/**
|
|
11
|
-
* tdesign v1.16.3
|
|
12
|
-
* (c) 2026 tdesign
|
|
13
|
-
* @license MIT
|
|
14
|
-
*/function Wt(s,t){var n=Object.keys(s);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(s);t&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(s,i).enumerable})),n.push.apply(n,o)}return n}function Kt(s){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Wt(Object(n),!0).forEach(function(o){Ye(s,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):Wt(Object(n)).forEach(function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(n,o))})}return s}var Na=function(t){var n=Ga(),o=n.classPrefix,i=mt(t,ai),d=i.disabled,c=i.children,l=i.onChange,U=i.size,u=i.variant,f=i.options,x=f===void 0?[]:f,D=i.className,m=i.style,b=i.theme,p=i.readOnly||i.readonly,v=Ba(i,"value",l),N=Et(v,2),W=N[0],V=N[1],y=a.useState(null),g=Et(y,2),I=g[0],R=g[1],k=a.useRef(null),L=a.useRef(null);si(k,V);var Y=".".concat(o,"-radio-button.").concat(o,"-is-checked"),X=Wa(),_=X.SIZE,oe={inject:function(A){if(typeof A.checked<"u")return A;var q=A.value;return Kt(Kt({},A),{},{name:i.name,allowUncheck:A.allowUncheck||i.allowUncheck,checked:W===A.value,disabled:A.disabled||d,readonly:A.readOnly||A.readonly||p,onChange:function(ie,J){var pe=J.e;typeof A.onChange=="function"&&A.onChange(ie,{e:pe}),V(ie?q:void 0,{e:pe,name:i.name})}})}},H=function(){var A,q;if(u.includes("filled")){var ne=(A=(q=k.current).querySelector)===null||A===void 0?void 0:A.call(q,Y);if(!ne){R(null);return}var ie=ne.offsetWidth,J=ne.offsetHeight,pe=ne.offsetLeft,fe=ne.offsetTop;R({width:"".concat(ie,"px"),height:"".concat(J,"px"),left:"".concat(pe,"px"),top:"".concat(fe,"px")})}};Ka(k.current,function($){var A=$.some(function(q){var ne=q.target;if(q.type==="attributes"&&q.attributeName==="class"){var ie;return(ie=ne.classList)===null||ie===void 0?void 0:ie.contains("".concat(o,"-radio-button"))}return!1});A&&H()},{config:{attributes:!0,attributeFilter:["class"],childList:!1,characterData:!1,subtree:!0}}),a.useEffect(function(){if(H(),!!k.current){var $=Ha(k.current,null,H,0);return L.current=$,function(){var A;(A=L.current)===null||A===void 0||A.disconnect(),L.current=null}}},[]);var F=function(){return!u.includes("filled")||!I?null:ce.createElement("div",{style:I,className:"".concat(o,"-radio-group__bg-block")})},O=function(){var A=b==="button"?at.Button:at;return x.map(function(q,ne){var ie,J,pe;return typeof q=="string"||typeof q=="number"?(ie=q,J=q):(ie=q.label,J=q.value,pe=q.disabled),ce.createElement(A,{value:J,key:ne,disabled:pe},ie)})};return ce.createElement(Ya.Provider,{value:oe},ce.createElement("div",{ref:k,style:m,className:pt("".concat(o,"-radio-group"),_[U],D,Ye(Ye(Ye({},"".concat(o,"-radio-group__outline"),u==="outline"),"".concat(o,"-radio-group--filled"),u.includes("filled")),"".concat(o,"-radio-group--primary-filled"),u==="primary-filled"))},c||O(),F()))};Na.displayName="RadioGroup";function Ht(s,t){var n=Object.keys(s);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(s);t&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(s,i).enumerable})),n.push.apply(n,o)}return n}function Yt(s){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ht(Object(n),!0).forEach(function(o){Ye(s,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):Ht(Object(n)).forEach(function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(n,o))})}return s}var va=Fa(function(s,t){return ce.createElement(kt,Yt({ref:t,type:"radio"},mt(s,Bt)))},{Group:Na,Button:a.forwardRef(function(s,t){return ce.createElement(kt,Yt({ref:t,type:"radio-button"},mt(s,Bt)))})});va.displayName="Radio";var at=va;/**
|
|
15
|
-
* tdesign v1.16.3
|
|
16
|
-
* (c) 2026 tdesign
|
|
17
|
-
* @license MIT
|
|
18
|
-
*/var Xt=at;at.Group;function Jt(s,t){var n=Object.keys(s);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(s);t&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(s,i).enumerable})),n.push.apply(n,o)}return n}function Qt(s){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Jt(Object(n),!0).forEach(function(o){Ja(s,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):Jt(Object(n)).forEach(function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(n,o))})}return s}var ii={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21ZM23 12C23 18.0751 18.0751 23 12 23C5.92487 23 0.999999 18.0751 1 12C1 5.92487 5.92487 0.999999 12 1C18.0751 1 23 5.92487 23 12ZM15 16.4142L11 12.4142L11 5.5H13L13 11.5858L16.4142 15L15 16.4142Z"}}]},gt=a.forwardRef(function(s,t){return a.createElement(Xa,Qt(Qt({},s),{},{id:"time",ref:t,icon:ii}))});gt.displayName="TimeIcon";const Zt=(s,t,n)=>{const o=n==="image"?{isGenerating:s,imageLoading:t}:{isGenerating:s,videoLoading:t};window.dispatchEvent(new CustomEvent("ai-generation-state-change",{detail:o}))},ya=(s,t,n)=>{a.useEffect(()=>{const o=i=>{(i.metaKey||i.ctrlKey)&&i.key==="Enter"&&(i.preventDefault(),!s&&t.trim()&&n())};return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o)}},[s,t,n])},wa=s=>{const[t,n]=a.useState(!1),[o,i]=a.useState(!1),d=a.useCallback(l=>{n(l),Zt(l,o,s)},[o,s]),c=a.useCallback(l=>{i(l),Zt(t,l,s)},[t,s]);return{isGenerating:t,isLoading:o,updateIsGenerating:d,updateIsLoading:c}},ni=(s,t,n)=>t==="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":n==="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",oi=[1,2,3,4,5,10,20,50,100],ri="aitu_image_generation_quantity",di="aitu_video_generation_quantity",ut=100,ja=({language:s,type:t,isGenerating:n,hasGenerated:o,canGenerate:i,onGenerate:d,onReset:c,leftContent:l})=>{const U=t==="video"?di:ri,[u,f]=a.useState(()=>{try{const g=localStorage.getItem(U);if(g){const I=parseInt(g,10);if(!isNaN(I)&&I>=1&&I<=ut)return I}}catch{}return 1}),[x,D]=a.useState(!1),[m,b]=a.useState(()=>u.toString()),p=a.useRef(null);a.useEffect(()=>{b(u.toString());try{localStorage.setItem(U,u.toString())}catch{}},[u,U]),a.useEffect(()=>{const g=I=>{p.current&&!p.current.contains(I.target)&&(D(!1),v())};return document.addEventListener("mousedown",g),()=>document.removeEventListener("mousedown",g)},[m]);const v=()=>{let g=parseInt(m,10);(isNaN(g)||g<1)&&(g=1),g>ut&&(g=ut),b(g.toString()),f(g)},N=g=>{const I=g.target.value;(I===""||/^\d*$/.test(I))&&b(I)},W=g=>{f(g),b(g.toString()),D(!1)},V=()=>{n||D(!x)},y=()=>{d(u)};return e.jsxDEV("div",{className:"section-actions unified-action-bar",children:[l&&e.jsxDEV("div",{className:"action-bar-left",children:l},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ActionButtons.tsx",lineNumber:111,columnNumber:23},void 0),e.jsxDEV("div",{className:`unified-action-box ${n?"is-generating":""} ${i?"can-generate":""}`,children:[e.jsxDEV("div",{className:"quantity-section",ref:p,children:[e.jsxDEV(ze,{content:s==="zh"?"生成数量":"Quantity",theme:"light",children:e.jsxDEV("div",{className:`quantity-control ${x?"is-open":""} ${n?"is-disabled":""}`,children:[e.jsxDEV("input",{type:"text",inputMode:"numeric",value:m,onChange:N,onBlur:v,"data-track":"ai_click_quantity_input",onClick:()=>!n&&D(!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:119,columnNumber:15},void 0),e.jsxDEV("button",{type:"button","data-track":"ai_click_quantity_toggle",onClick:g=>{g.stopPropagation(),V()},disabled:n,className:"quantity-toggle",children:e.jsxDEV(ia,{className:`quantity-icon ${x?"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),x&&e.jsxDEV("div",{className:"quantity-dropdown",children:[e.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),oi.map(g=>e.jsxDEV("button",{type:"button","data-track":"ai_click_quantity_select",onClick:()=>W(g),className:`quantity-option ${u===g?"is-selected":""}`,children:[e.jsxDEV("span",{children:[g," ",t==="video"?s==="zh"?"个":g>1?"videos":"video":s==="zh"?"张":g>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),u===g&&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: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)]},g,!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),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:179,columnNumber:9},void 0),e.jsxDEV("button",{"data-track":"ai_click_generate",onClick:y,disabled:n||!i,className:`generate-button ${n?"loading":""}`,children:n?s==="zh"?"生成中...":"Generating...":o?s==="zh"?"重新生成":"Regenerate":t==="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),e.jsxDEV(ze,{content:s==="zh"?"重置表单":"Reset form",theme:"light",children:e.jsxDEV(et,{"data-track":"ai_click_reset",onClick:c,disabled:n,variant:"text",shape:"circle",icon:e.jsxDEV(Qa,{},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)},ka=({error:s})=>s?e.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,Ea=({visible:s,query:t,position:n,showBelow:o=!1,selectedIndex:i,onSelect:d,onClose:c})=>{const{completedCharacters:l,isLoading:U}=na(),u=a.useRef(null),f=a.useMemo(()=>{if(!t)return l;const m=t.toLowerCase();return l.filter(b=>b.username.toLowerCase().includes(m))},[l,t]);a.useEffect(()=>{if(!s||!u.current)return;const m=u.current.querySelector(".character-mention-popup__item--selected");m&&m.scrollIntoView({block:"nearest"})},[s,i]),a.useEffect(()=>{if(!s)return;const m=b=>{u.current&&!u.current.contains(b.target)&&c()};return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[s,c]);const x=a.useCallback(m=>{Za.track("character_used_in_prompt",{characterId:m.id,username:m.username}),d(m)},[d]);if(!s)return null;const D={position:"fixed",top:n.top,left:n.left,transform:o?"none":"translateY(-100%)",zIndex:oa.DROPDOWN_PORTAL,maxHeight:"200px",overflowY:"auto"};return U?e.jsxDEV("div",{ref:u,className:"character-mention-popup",style:D,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):f.length===0?e.jsxDEV("div",{ref:u,className:"character-mention-popup",style:D,children:e.jsxDEV("div",{className:"character-mention-popup__empty",children:t?`未找到 "${t}" 相关角色`:"暂无可用角色"},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:u,className:"character-mention-popup",style:D,children:f.map((m,b)=>e.jsxDEV("div",{className:`character-mention-popup__item ${b===i?"character-mention-popup__item--selected":""}`,onClick:()=>x(m),"data-track":"character_click_mention",children:[e.jsxDEV("div",{className:"character-mention-popup__item-avatar",children:e.jsxDEV(es,{characterId:m.id,profilePictureUrl:m.profilePictureUrl,alt:m.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:["@",m.username]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterMentionPopup.tsx",lineNumber:154,columnNumber:11},void 0)]},m.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 Da({enabled:s=!0,onPromptChange:t,prompt:n}){const[o,i]=a.useState(li),d=a.useRef(null),{completedCharacters:c}=na(),l=a.useCallback(m=>{if(!d.current)return{top:0,left:0,showBelow:!1};const b=d.current,p=b.getBoundingClientRect(),v=document.createElement("div"),N=window.getComputedStyle(b),W=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","lineHeight","textTransform","wordSpacing","whiteSpace","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing"];v.style.position="absolute",v.style.top="0",v.style.left="-9999px",v.style.visibility="hidden",v.style.whiteSpace="pre-wrap",v.style.overflowWrap="break-word",v.style.overflow="hidden",v.style.width=`${b.clientWidth}px`,W.forEach(oe=>{v.style[oe]=N.getPropertyValue(oe.replace(/([A-Z])/g,"-$1").toLowerCase())}),document.body.appendChild(v);let V=0,y=0;try{const oe=b.value.substring(0,m),H=document.createTextNode(oe),F=document.createElement("span");F.textContent="",v.appendChild(H),v.appendChild(F);const O=F.getBoundingClientRect(),$=v.getBoundingClientRect();V=O.top-$.top,y=O.left-$.left}finally{document.body.removeChild(v)}const g=b.scrollTop,I=parseInt(N.lineHeight)||20;let R=p.top+V-g,k=p.left+y;const L=240,Y=window.innerWidth;k+L>Y-16&&(k=Y-L-16),k<16&&(k=16);const _=R<220+16;return _?R=R+I+4:R=R-48,{top:R,left:k,showBelow:_}},[]),U=a.useCallback((m,b)=>{if(!s)return;const p=m.substring(0,b),v=p.lastIndexOf("@");if(v===-1){i(y=>({...y,visible:!1}));return}const N=v>0?m[v-1]:" ";if(!/\s/.test(N)&&v!==0){i(y=>({...y,visible:!1}));return}const W=p.substring(v+1);if(W.includes(" ")){i(y=>({...y,visible:!1}));return}const V=l(b);i({visible:!0,query:W,position:{top:V.top,left:V.left},showBelow:V.showBelow,startIndex:v,selectedIndex:0})},[s,l]),u=a.useCallback(m=>{var W;if(o.startIndex===-1)return;const b=n.substring(0,o.startIndex),p=((W=d.current)==null?void 0:W.selectionStart)||n.length,v=n.substring(p),N=`${b}@${m.username} ${v}`;t(N),i(V=>({...V,visible:!1})),setTimeout(()=>{if(d.current){const V=b.length+m.username.length+2;d.current.focus(),d.current.setSelectionRange(V,V)}},0)},[o.startIndex,n,t]),f=a.useCallback(m=>{if(!o.visible)return;const b=o.query?c.filter(p=>p.username.toLowerCase().includes(o.query.toLowerCase())):c;switch(m.key){case"ArrowDown":m.preventDefault(),i(p=>({...p,selectedIndex:Math.min(p.selectedIndex+1,b.length-1)}));break;case"ArrowUp":m.preventDefault(),i(p=>({...p,selectedIndex:Math.max(p.selectedIndex-1,0)}));break;case"Enter":case"Tab":b.length>0&&(m.preventDefault(),u(b[o.selectedIndex]));break;case"Escape":m.preventDefault(),i(p=>({...p,visible:!1}));break}},[o,c,u]),x=a.useCallback((m,b)=>{t(m),U(m,b)},[t,U]),D=a.useCallback(()=>{i(m=>({...m,visible:!1}))},[]);return{mentionState:o,setMentionState:i,textareaRef:d,completedCharacters:c,handleTextChange:x,handleKeyDown:f,handleCharacterSelect:u,closeMentionPopup:D,calculateMentionPosition:l}}const Ia=({prompt:s,onPromptChange:t,presetPrompts:n,language:o,type:i,disabled:d=!1,onError:c,enableMention:l=!0,videoProvider:U})=>{const[u,f]=a.useState(!1),x=a.useRef(null),D=a.useRef(null),[m,b]=a.useState(null),[p,v]=a.useState(0),N=a.useMemo(()=>He.sortPrompts(i,n).map((O,$)=>({id:`preset-${$}-${O.slice(0,20)}`,content:O,pinned:He.isPinned(i,O)})),[i,n,p]),W=l&&i==="video"&&U==="sora",{mentionState:V,textareaRef:y,handleTextChange:g,handleKeyDown:I,handleCharacterSelect:R,closeMentionPopup:k}=Da({enabled:W,onPromptChange:t,prompt:s}),L=a.useCallback(()=>{if(D.current&&u){const F=D.current.getBoundingClientRect(),O=8,$=320,A=400,q=window.innerHeight-F.top+4,ne=Math.min($,window.innerWidth-O*2),ie=window.innerWidth-F.right,J=window.innerWidth-ne-O,pe=Math.max(Math.min(ie,J),O),fe=Math.min(A,F.top-O,window.innerHeight*.45);b({bottom:q,right:pe,maxHeight:fe})}},[u]);a.useEffect(()=>{if(u)return L(),window.addEventListener("scroll",L,!0),window.addEventListener("resize",L),()=>{window.removeEventListener("scroll",L,!0),window.removeEventListener("resize",L)}},[u,L]),a.useEffect(()=>{const F=O=>{const $=O.target;if(x.current&&!x.current.contains($)){const A=document.querySelector(".preset-prompt-panel-portal");A!=null&&A.contains($)||f(!1)}};if(u)return document.addEventListener("mousedown",F),()=>document.removeEventListener("mousedown",F)},[u]);const Y=a.useCallback(F=>{const O=typeof F=="string"?F:F.content;t(O),c==null||c(null),f(!1)},[t,c]),X=a.useCallback(F=>{const O=N.find($=>$.id===F);O&&(O.pinned?He.unpinPrompt(i,O.content):He.pinPrompt(i,O.content),v($=>$+1))},[i,N]),_=a.useCallback(F=>{const O=N.find($=>$.id===F);O&&(He.deletePrompt(i,O.content),v($=>$+1))},[i,N]),oe=a.useCallback(F=>{const O=F.target.value,$=F.target.selectionStart||0;g(O,$),c==null||c(null)},[g,c]);a.useEffect(()=>{i!=="video"&&k()},[i,k]);const H=()=>{if(!u||!m)return null;const F=o==="zh"?`${i==="image"?"图片":"视频"}描述预设`:`${i==="image"?"Image":"Video"} Description Presets`,O=e.jsxDEV("div",{className:"preset-prompt-panel-portal",style:{position:"fixed",bottom:m.bottom,right:m.right,zIndex:oa.DIALOG_POPOVER,"--panel-max-width":"calc(100vw - 16px)","--panel-max-height":`${m.maxHeight}px`},children:e.jsxDEV(as,{title:F,items:N,onSelect:Y,onTogglePin:X,onDelete:_,language:o,disabled:d,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 ss.createPortal(O,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:o==="zh"?`${i==="image"?"图片":"视频"}描述`:`${i==="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),e.jsxDEV("div",{className:"textarea-with-preset",children:e.jsxDEV("div",{className:"preset-tooltip-container",ref:x,children:[e.jsxDEV("button",{ref:D,type:"button",className:"preset-icon-button",disabled:d,onClick:()=>f(!u),children:e.jsxDEV(ts,{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),H()]},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),e.jsxDEV("textarea",{ref:y,className:"form-textarea",value:s,onChange:oe,onKeyDown:I,placeholder:ni(o,i,U),rows:4,disabled:d},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/PromptInput.tsx",lineNumber:231,columnNumber:7},void 0),W&&e.jsxDEV(Ea,{visible:V.visible,query:V.query,position:V.position,showBelow:V.showBelow,selectedIndex:V.selectedIndex,onSelect:R,onClose:k},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 ci(s){return s.map(t=>t.prompt.trim()).filter(t=>t.length>0).filter((t,n,o)=>o.indexOf(t)===n)}const Sa=(s,t,n)=>{const o=s==="image"?rs(t):ds(t),i=ci(n);return[...[...s==="video"?is():ns(),...i].filter((U,u,f)=>f.indexOf(U)===u).slice(0,os),...o].filter((U,u,f)=>f.indexOf(U)===u).slice(0,ls)},Va=(s,t,n)=>{!t||!t.trim()||(s==="video"?cs(t.trim()):us(t.trim()))},ui=({model:s,configOverride:t,duration:n,size:o,onDurationChange:i,onSizeChange:d,disabled:c=!1})=>{const l=t||ms(s);a.useEffect(()=>{const f={duration:l.defaultDuration,size:l.defaultSize};l.durationOptions.find(m=>m.value===n)||i(f.duration),l.sizeOptions.find(m=>m.value===o)||d(f.size)},[l,n,s,i,d,o]);const U=l.durationOptions.map(f=>({label:f.label,value:f.value})),u=l.sizeOptions.map(f=>({label:`${f.label} (${f.value})`,value:f.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:71,columnNumber:9},void 0),e.jsxDEV("div",{className:"video-model-options__control",children:l.durationOptions.length===1?e.jsxDEV("span",{className:"video-model-options__fixed-value",children:l.durationOptions[0].label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:75,columnNumber:13},void 0):e.jsxDEV(Xt.Group,{value:n,onChange:f=>i(f),disabled:c,variant:"default-filled",size:"small",children:U.map(f=>e.jsxDEV(Xt.Button,{value:f.value,children:f.label},f.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:88,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:80,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:72,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:70,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:99,columnNumber:9},void 0),e.jsxDEV("div",{className:"video-model-options__control",children:e.jsxDEV(xa,{value:o,onChange:f=>d(f),disabled:c,size:"small",options:u,style:{width:"200px"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:101,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:100,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:98,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/VideoModelOptions.tsx",lineNumber:68,columnNumber:5},void 0)},mi=({value:s,onChange:t,compact:n=!0,options:o})=>{const{language:i}=We(),[d,c]=a.useState(!1),l=a.useRef(null),U=o&&o.length>0?o:Ze,u=a.useMemo(()=>s==="auto"?ps:fs(s),[s]);a.useEffect(()=>{const x=D=>{l.current&&!l.current.contains(D.target)&&c(!1)};return d&&document.addEventListener("mousedown",x),()=>{document.removeEventListener("mousedown",x)}},[d]);const f=x=>{t(x.value),c(!1)};return n?e.jsxDEV("div",{className:"aspect-ratio-selector aspect-ratio-selector--compact",ref:l,children:[e.jsxDEV(ze,{content:i==="zh"?"选择图片比例":"Select aspect ratio",theme:"light",children:e.jsxDEV("div",{className:`aspect-ratio-selector__trigger ${d?"aspect-ratio-selector__trigger--open":""}`,"data-track":"ai_click_ratio_toggle",onClick:()=>c(!d),children:[e.jsxDEV("span",{className:"aspect-ratio-selector__trigger-value",children:(u==null?void 0:u.label)||s},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:69,columnNumber:13},void 0),e.jsxDEV(ia,{className:`aspect-ratio-selector__trigger-icon ${d?"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:72,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:64,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:63,columnNumber:9},void 0),d&&e.jsxDEV("div",{className:"aspect-ratio-selector__dropdown",children:e.jsxDEV("div",{className:"aspect-ratio-selector__dropdown-grid",children:U.map(x=>e.jsxDEV(ze,{content:x.description,theme:"light",placement:"top",showArrow:!1,children:e.jsxDEV("div",{className:`aspect-ratio-selector__dropdown-item ${s===x.value?"aspect-ratio-selector__dropdown-item--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>f(x),children:x.label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:87,columnNumber:19},void 0)},x.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:80,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:78,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:77,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:62,columnNumber:7},void 0):e.jsxDEV("div",{className:"aspect-ratio-selector",children:[e.jsxDEV("div",{className:"aspect-ratio-selector__label",children:i==="zh"?"图片比例":"Aspect Ratio"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:108,columnNumber:7},void 0),e.jsxDEV("div",{className:"aspect-ratio-selector__options",children:U.map(x=>e.jsxDEV(ze,{content:x.description,theme:"light",placement:"top",showArrow:!1,children:e.jsxDEV("div",{className:`aspect-ratio-selector__option ${s===x.value?"aspect-ratio-selector__option--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>t(x.value),children:e.jsxDEV("span",{className:"aspect-ratio-selector__option-ratio",children:x.label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:128,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:121,columnNumber:13},void 0)},x.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:114,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:112,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/AspectRatioSelector.tsx",lineNumber:107,columnNumber:5},void 0)};function Ua(){return gs("scene")}function ea(s,t){return{id:Ua(),order:s,duration:t,prompt:""}}function pi(s,t,n=1){if(s.length===0)return{valid:!1,error:"至少需要一个场景"};for(const i of s){if(i.duration<n)return{valid:!1,error:`场景 ${i.order} 时长不能少于 ${n} 秒`};if(i.duration>t)return{valid:!1,error:`场景 ${i.order} 时长不能超过 ${t} 秒`}}const o=s.find(i=>!i.prompt.trim());return o?{valid:!1,error:`场景 ${o.order} 需要填写提示词`}:{valid:!0}}function fi(s){return s.sort((t,n)=>t.order-n.order).map((t,n)=>`Shot ${n+1}:
|
|
19
|
-
duration: ${t.duration}sec
|
|
20
|
-
Scene: ${t.prompt.trim()}`).join(`
|
|
21
|
-
|
|
22
|
-
`)}function gi(s){const t=/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 o;for(;(o=t.exec(s))!==null;){const i=parseInt(o[1],10),d=parseFloat(o[2]),c=o[3].trim();n.push({id:Ua(),order:i,duration:d,prompt:c})}return n.length===0?null:n.sort((i,d)=>i.order-d.order)}const hi=({value:s,onChange:t,placeholder:n,disabled:o=!1,autoFocus:i=!1,enableMention:d=!0})=>{const{mentionState:c,textareaRef:l,handleTextChange:U,handleKeyDown:u,handleCharacterSelect:f,closeMentionPopup:x}=Da({enabled:d,onPromptChange:t,prompt:s}),D=a.useCallback(m=>{const b=m.target.value,p=m.target.selectionStart||0;U(b,p)},[U]);return a.useEffect(()=>{i&&l.current&&l.current.focus()},[i,l]),e.jsxDEV("div",{className:"scene-prompt-input",children:[e.jsxDEV("textarea",{ref:l,className:"scene-prompt-input__textarea",value:s,onChange:D,onKeyDown:u,placeholder:n,disabled:o,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),d&&e.jsxDEV(Ea,{visible:c.visible,query:c.query,position:c.position,showBelow:c.showBelow,selectedIndex:c.selectedIndex,onSelect:f,onClose:x},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:s,onEnabledChange:t,totalDuration:n,maxScenes:o,minSceneDuration:i,scenes:d,onScenesChange:c,disabled:l=!1})=>{const[U,u]=a.useState(null),f=a.useRef(null);a.useEffect(()=>{s&&d.length>0&&!U&&u(d[0].id)},[s,d,U]);const x=a.useCallback(()=>{if(d.length>=o)return;const y=d.reduce((k,L)=>k+L.duration,0),g=n-y;let I=Math.max(i,g/2);I=parseFloat(I.toFixed(1)),I<i&&(I=i);const R=ea(d.length+1,I);c([...d,R]),u(R.id),setTimeout(()=>{var k;(k=f.current)==null||k.scrollIntoView({behavior:"smooth"})},100)},[d,o,n,i,c]),D=a.useCallback(y=>{var R;if(d.length<=1)return;const I=d.filter(k=>k.id!==y).map((k,L)=>({...k,order:L+1}));c(I),U===y&&u(((R=I[0])==null?void 0:R.id)||null)},[d,c,U]),m=a.useCallback(y=>{const g=d.filter(I=>I.id!==y).reduce((I,R)=>I+R.duration,0);return Math.max(i,n-g)},[d,n,i]),b=a.useCallback(y=>{const g=m(y),I=[],R=.1;for(let k=i;k<=g+.001;k+=R){const L=parseFloat(k.toFixed(1));L<=g&&I.push({label:`${L}`,value:L})}return I},[i,m]),p=a.useCallback((y,g)=>{const I=typeof g=="string"?parseFloat(g):g;if(isNaN(I))return;const R=m(y),k=d.map(L=>{if(L.id===y){const Y=Math.max(i,Math.min(I,R)),X=parseFloat(Y.toFixed(1));return{...L,duration:X}}return L});c(k)},[d,i,m,c]),v=a.useCallback((y,g)=>{const I=d.map(R=>R.id===y?{...R,prompt:g}:R);c(I)},[d,c]),N=a.useCallback(y=>{if(t(y),y&&d.length===0){const g=ea(1,n);c([g]),u(g.id)}},[d,n,t,c]),W=a.useCallback(y=>{u(y)},[]),V=d.length<o;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(hs,{value:s,onChange:N,disabled:l,size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:206,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:213,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:214,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:212,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:205,columnNumber:9},void 0),s&&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:220,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:204,columnNumber:7},void 0),s&&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:229,columnNumber:13},void 0),e.jsxDEV("span",{className:"storyboard-editor__section-hint",children:["共 ",d.length," 个场景,已用 ",d.reduce((y,g)=>y+g.duration,0).toFixed(1)," 秒 / 总时长 ",n," 秒"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:230,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:228,columnNumber:11},void 0),e.jsxDEV("div",{className:"storyboard-editor__scenes",children:[d.map((y,g)=>{const I=U===y.id,R=g===d.length-1;return e.jsxDEV("div",{className:`storyboard-editor__scene-wrapper ${I?"is-selected":""}`,children:[e.jsxDEV("div",{className:`storyboard-editor__timeline-line ${R?"is-last":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:247,columnNumber:19},void 0),e.jsxDEV("div",{className:`storyboard-editor__timeline-node ${I?"is-selected":""}`,children:I?g+1:""},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:250,columnNumber:19},void 0),!I&&e.jsxDEV("div",{className:"storyboard-editor__scene storyboard-editor__scene--compact",onClick:()=>W(y.id),children:[e.jsxDEV("span",{className:"storyboard-editor__scene-index",children:g+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:260,columnNumber:23},void 0),e.jsxDEV("div",{className:"storyboard-editor__scene-preview",children:e.jsxDEV("p",{className:"storyboard-editor__scene-preview-text",children:y.prompt||"暂无场景描述..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:262,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:261,columnNumber:23},void 0),e.jsxDEV("div",{className:"storyboard-editor__scene-duration-badge",children:[e.jsxDEV(gt,{size:"12px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:267,columnNumber:25},void 0),e.jsxDEV("span",{children:[y.duration,"s"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:268,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:266,columnNumber:23},void 0),e.jsxDEV(ra,{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:270,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:256,columnNumber:21},void 0),I&&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:280,columnNumber:29},void 0),"场景 ",g+1]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:279,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:278,columnNumber:25},void 0),e.jsxDEV("div",{className:"storyboard-editor__scene-controls",children:[e.jsxDEV(gt,{className:"storyboard-editor__time-icon"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:285,columnNumber:27},void 0),e.jsxDEV(xa,{value:parseFloat(y.duration.toFixed(1)),onChange:k=>p(y.id,k),disabled:l,className:"storyboard-editor__duration-select",size:"small",options:b(y.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:286,columnNumber:27},void 0),d.length>1&&e.jsxDEV(et,{theme:"default",variant:"text",size:"small",icon:e.jsxDEV(da,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:302,columnNumber:37},void 0),onClick:k=>{k.stopPropagation(),D(y.id)},disabled:l,className:"storyboard-editor__scene-delete"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:298,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:284,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:277,columnNumber:23},void 0),e.jsxDEV("div",{className:"storyboard-editor__scene-prompt",children:e.jsxDEV(hi,{value:y.prompt,onChange:k=>v(y.id,k),placeholder:`描述场景 ${g+1} 的内容,输入 @ 可引用角色`,disabled:l,autoFocus:!0,enableMention:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:314,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:313,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:276,columnNumber:21},void 0)]},y.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:242,columnNumber:17},void 0)}),e.jsxDEV("div",{ref:f},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:328,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:236,columnNumber:11},void 0),V&&e.jsxDEV(et,{theme:"default",variant:"dashed",size:"medium",icon:e.jsxDEV(bs,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:337,columnNumber:21},void 0),onClick:x,disabled:l,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:333,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:226,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/StoryboardEditor.tsx",lineNumber:202,columnNumber:5},void 0)},_a="aitu-dialog-task-list-width-",yt=240,wt=800,xi=()=>{const s=Math.round(660);return Math.max(yt,Math.min(wt,s))},Ca=s=>{try{const t=localStorage.getItem(_a+s);if(t){const n=parseInt(t,10);if(!isNaN(n)&&n>=yt&&n<=wt)return n}}catch{}return xi()},ta=(s,t)=>{try{localStorage.setItem(_a+s,t.toString())}catch{}},qa=({isRightPanelVisible:s,onToggleRightPanel:t,onWidthChange:n,rightPanelWidth:o,minWidth:i=yt,maxWidth:d=wt,onResizeStart:c,onResizeEnd:l,language:U="zh",disabled:u=!1,storageKey:f="image"})=>{const[x,D]=a.useState(!1),m=a.useRef(0),b=a.useRef(0);a.useEffect(()=>(x?(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=""}),[x]);const p=a.useCallback(N=>{if(u||!s)return;N.preventDefault(),N.stopPropagation(),D(!0),m.current=N.clientX,b.current=o,c==null||c();const W=y=>{const g=m.current-y.clientX,I=Math.max(i,Math.min(d,b.current+g));n(I)},V=()=>{D(!1),l==null||l(),b.current+(m.current-document.body.getBoundingClientRect().left),ta(f,o),document.removeEventListener("mousemove",W),document.removeEventListener("mouseup",V)};document.addEventListener("mousemove",W),document.addEventListener("mouseup",V)},[u,s,o,i,d,n,c,l,f]);a.useEffect(()=>{!x&&s&&ta(f,o)},[o,x,s,f]);const v=s?U==="zh"?"隐藏任务列表":"Hide Task List":U==="zh"?"显示任务列表":"Show Task List";return e.jsxDEV("div",{className:`resizable-divider ${x?"is-dragging":""} ${s?"":"is-collapsed"} ${u?"is-disabled":""}`,onMouseDown:p,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:170,columnNumber:7},void 0),e.jsxDEV(ze,{content:v,theme:"light",placement:"left",children:e.jsxDEV("button",{type:"button",className:"resizable-divider__toggle",onClick:N=>{N.stopPropagation(),t()},"aria-label":v,children:s?e.jsxDEV(ra,{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):e.jsxDEV(xs,{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)},Ta=({storageKey:s,language:t})=>{const[n,o]=a.useState(()=>{try{return localStorage.getItem(s)!=="false"}catch{return!0}}),i=a.useCallback(d=>{o(d);try{localStorage.setItem(s,String(d))}catch{}},[s]);return e.jsxDEV(ze,{content:t==="zh"?"生成后自动插入画布":"Auto insert to canvas after generation",theme:"light",children:e.jsxDEV(Ns,{checked:n,onChange:i,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 ht(s){try{return localStorage.getItem(s)!=="false"}catch{return!0}}const Pa=({children:s})=>e.jsxDEV("div",{className:"ttd-dialog-panels",children:s},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),st=({label:s,children:t,panelAction:n,panelActionDisabled:o=!1,onTextSubmitInProgress:i,renderTopRight:d,renderSubmitShortcut:c,renderBottomRight:l})=>e.jsxDEV("div",{className:"ttd-dialog-panel",children:[e.jsxDEV("div",{className:"ttd-dialog-panel__header",children:[e.jsxDEV("label",{children:s},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),d==null?void 0:d()]},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),t,e.jsxDEV("div",{className:pt("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:o||i,children:e.jsxDEV("div",{className:pt({invisible:i}),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),!o&&!i&&(c==null?void 0:c()),l==null?void 0:l()]},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),aa={CTRL_OR_CMD:vs||ys?"metaKey":"ctrlKey",ENTER:"Enter"},Ma=({input:s,placeholder:t,onChange:n,onKeyboardSubmit:o})=>{const i=a.useRef(null),d=a.useRef(o);return d.current=o,a.useEffect(()=>{if(!d.current)return;const c=i.current;if(c){const l=U=>{var u;U[aa.CTRL_OR_CMD]&&U.key===aa.ENTER&&(U.preventDefault(),(u=d.current)==null||u.call(d))};return c.addEventListener(Dt.KEYDOWN,l),()=>{c.removeEventListener(Dt.KEYDOWN,l)}}},[]),e.jsxDEV("textarea",{className:"ttd-dialog-input",onChange:n,value:s,placeholder:t,autoFocus:!0,ref:i},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)},Ni=({error:s})=>e.jsxDEV("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",e.jsxDEV("p",{children:s},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),Oa=({error:s,value:t,loaded:n})=>{const o=[js,ks,Es,Ds],i={readonly:!0,hideScrollbar:!1,disabledScrollOnNonFocus:!0,themeColors:Is};return e.jsxDEV("div",{className:"ttd-dialog-output-wrapper",children:[s&&e.jsxDEV(Ni,{error:s.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:s?"0.15":1},className:"ttd-dialog-output-canvas-container",children:e.jsxDEV(ws,{value:t,options:i,plugins:o,children:e.jsxDEV(Ss,{},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)},Ra=()=>e.jsxDEV("div",{className:"ttd-dialog-submit-shortcut",children:[e.jsxDEV("div",{className:"ttd-dialog-submit-shortcut__key",children:It("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:It("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),vi=`flowchart TD
|
|
23
|
-
A[Christmas] -->|Get money| B(Go shopping)
|
|
24
|
-
B --> C{Let me think}
|
|
25
|
-
C -->|One| D[Laptop]
|
|
26
|
-
C -->|Two| E[iPhone]
|
|
27
|
-
C -->|Three| F[Car]`,yi=()=>{const{closeDialog:s}=it(),{t,language:n}=We(),[o,i]=a.useState({loaded:!1,api:Promise.resolve({parseMermaidToDrawnix:async()=>({elements:[]})})});a.useEffect(()=>{(async()=>{try{const p=await xt(()=>import("./index-Ia_xKhIZ.js").then(v=>v.aq),__vite__mapDeps([0,1,2,3]),import.meta.url);i({loaded:!0,api:Promise.resolve(p)})}catch(p){console.error("Failed to load mermaid library:",p),x(new Error(t("dialog.error.loadMermaid")))}})()},[]);const[d,c]=a.useState(()=>vi),[l,U]=a.useState(()=>[]),u=a.useDeferredValue(d.trim()),[f,x]=a.useState(null),D=bt();a.useEffect(()=>{(async()=>{try{const p=await o.api;let v;try{v=await p.parseMermaidToDrawnix(u)}catch{v=await p.parseMermaidToDrawnix(u.replace(/"/g,"'"))}const{elements:N}=v;U(N),x(null)}catch(p){x(p)}})()},[u,o]);const m=()=>{if(!l.length)return;let b;const p=la(D);if(p)b=p;else{const v=ca.getBoardContainer(D).getBoundingClientRect(),N=[v.width/2,v.height/2],W=D.viewport.zoom,V=ua(D),y=V[0]+N[0]/W,g=V[1]+N[1]/W,I=l,R=ft.getBoundingRectangle(I.filter(k=>!Vs.isGroup(k)).map(k=>ft.getRectangleByPoints(k.points)));b=[y-R.width/2,g-R.height/2]}D.insertFragment({elements:JSON.parse(JSON.stringify(l))},b,ma.paste),b&&requestAnimationFrame(()=>{pa(D,b)}),s(le.mermaidToDrawnix)};return e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ttd-dialog-desc",children:n==="zh"?e.jsxDEV(e.Fragment,{children:[t("dialog.mermaid.description")," ",e.jsxDEV("a",{href:"https://mermaid.js.org/syntax/flowchart.html",target:"_blank",rel:"noreferrer",children:t("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:t("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:t("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),t("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:[t("dialog.mermaid.description")," ",e.jsxDEV("a",{href:"https://mermaid.js.org/syntax/flowchart.html",target:"_blank",rel:"noreferrer",children:t("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:t("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:t("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),t("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(Pa,{children:[e.jsxDEV(st,{label:t("dialog.mermaid.syntax"),children:e.jsxDEV(Ma,{input:d,placeholder:t("dialog.mermaid.placeholder"),onChange:b=>c(b.target.value),onKeyboardSubmit:()=>{m()}},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(st,{label:t("dialog.mermaid.preview"),panelAction:{action:()=>{m()},label:t("dialog.mermaid.insert")},renderSubmitShortcut:()=>e.jsxDEV(Ra,{},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(Oa,{value:l,loaded:o.loaded,error:f},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)},sa=s=>s==="zh"?`# Milkdown 入门
|
|
28
|
-
|
|
29
|
-
Milkdown 是一个强大的所见即所得 Markdown 编辑器,兼具 Markdown 的简洁和现代编辑器的灵活性。它轻量且可扩展,适合从简单到复杂的编辑需求。
|
|
30
|
-
|
|
31
|
-
## 快速开始
|
|
32
|
-
最快的方式是使用 @milkdown/crepe。
|
|
33
|
-
|
|
34
|
-
## 核心概念
|
|
35
|
-
Milkdown 由两部分组成:
|
|
36
|
-
1. 核心包(@milkdown/core)
|
|
37
|
-
- 插件加载器
|
|
38
|
-
- 内置插件
|
|
39
|
-
2. 扩展插件
|
|
40
|
-
- 语法支持
|
|
41
|
-
- 命令
|
|
42
|
-
- UI 组件
|
|
43
|
-
- 自定义能力
|
|
44
|
-
|
|
45
|
-
## 关键特性
|
|
46
|
-
- 📝 所见即所得 Markdown
|
|
47
|
-
- 🎨 可主题化
|
|
48
|
-
- 🎮 可扩展
|
|
49
|
-
- ⚡ Slash 与 Tooltip
|
|
50
|
-
- 🧮 LaTeX 数学公式
|
|
51
|
-
- 📊 表格
|
|
52
|
-
- 🍻 协作(yjs)
|
|
53
|
-
- 💾 剪贴板
|
|
54
|
-
- 👍 Emoji
|
|
55
|
-
|
|
56
|
-
## 技术栈
|
|
57
|
-
- Prosemirror
|
|
58
|
-
- Remark
|
|
59
|
-
- TypeScript
|
|
60
|
-
|
|
61
|
-
## 创建你的第一个编辑器
|
|
62
|
-
Milkdown 提供两种方式:
|
|
63
|
-
|
|
64
|
-
### 🍼 使用 @milkdown/kit(从零构建)
|
|
65
|
-
适合需要完全控制、自由组合功能的场景。
|
|
66
|
-
|
|
67
|
-
### 🥞 使用 @milkdown/crepe(开箱即用)
|
|
68
|
-
适合快速落地、开箱即用的生产环境。
|
|
69
|
-
|
|
70
|
-
## 下一步
|
|
71
|
-
🍼 有趣的事实:这个文档也是由 Milkdown 渲染的!`:`# Getting Started with Milkdown
|
|
72
|
-
|
|
73
|
-
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.
|
|
74
|
-
|
|
75
|
-
## Quick Start
|
|
76
|
-
The fastest way to get started is using @milkdown/crepe.
|
|
77
|
-
|
|
78
|
-
## Core Concepts
|
|
79
|
-
Milkdown consists of two main parts:
|
|
80
|
-
1. Core Package (@milkdown/core)
|
|
81
|
-
- Plugin loader
|
|
82
|
-
- Internal plugins
|
|
83
|
-
2. Additional Plugins
|
|
84
|
-
- Syntax support
|
|
85
|
-
- Commands
|
|
86
|
-
- UI components
|
|
87
|
-
- Custom features
|
|
88
|
-
|
|
89
|
-
## Key Features
|
|
90
|
-
- 📝 WYSIWYG Markdown
|
|
91
|
-
- 🎨 Themable
|
|
92
|
-
- 🎮 Hackable
|
|
93
|
-
- ⚡ Slash & Tooltip
|
|
94
|
-
- 🧮 Math (LaTeX)
|
|
95
|
-
- 📊 Table
|
|
96
|
-
- 🍻 Collaborate (yjs)
|
|
97
|
-
- 💾 Clipboard
|
|
98
|
-
- 👍 Emoji
|
|
99
|
-
|
|
100
|
-
## Tech Stack
|
|
101
|
-
- Prosemirror
|
|
102
|
-
- Remark
|
|
103
|
-
- TypeScript
|
|
104
|
-
|
|
105
|
-
## Creating Your First Editor
|
|
106
|
-
Milkdown provides two distinct approaches to create an editor:
|
|
107
|
-
|
|
108
|
-
### 🍼 Using @milkdown/kit (Build from Scratch)
|
|
109
|
-
Use this if you want full control and a custom editor from the ground up.
|
|
110
|
-
|
|
111
|
-
### 🥞 Using @milkdown/crepe (Ready to Use)
|
|
112
|
-
Use this if you want a production-ready editor with minimal setup.
|
|
113
|
-
|
|
114
|
-
## Next Steps
|
|
115
|
-
🍼 Fun fact: This documentation is rendered by Milkdown itself!`,wi=()=>{const{closeDialog:s}=it(),{t,language:n}=We(),[o,i]=a.useState({loaded:!1,api:Promise.resolve({parseMarkdownToDrawnix:(b,p)=>null})});a.useEffect(()=>{(async()=>{try{const p=await xt(()=>import("./index-CoNiRHcD.js"),__vite__mapDeps([4,1,2]),import.meta.url);i({loaded:!0,api:Promise.resolve(p)})}catch(p){console.error("Failed to load mermaid library:",p),x(new Error(t("dialog.error.loadMermaid")))}})()},[]);const[d,c]=a.useState(()=>sa(n)),[l,U]=a.useState(()=>[]),u=a.useDeferredValue(d.trim()),[f,x]=a.useState(null),D=bt();a.useEffect(()=>{c(sa(n))},[n]),a.useEffect(()=>{(async()=>{try{const p=await o.api;let v;try{v=await p.parseMarkdownToDrawnix(u)}catch{v=await p.parseMarkdownToDrawnix(u.replace(/"/g,"'"))}const N=v;N.points=[[0,0]],N&&(U([N]),x(null))}catch(p){x(p)}})()},[u,o]);const m=()=>{if(!l.length)return;let b;const p=la(D);if(p)b=p;else{const N=ca.getBoardContainer(D).getBoundingClientRect(),W=[N.width/4,N.height/2-20],V=D.viewport.zoom,y=ua(D),g=y[0]+W[0]/V,I=y[1]+W[1]/V;b=[g,I]}const v=l;D.insertFragment({elements:JSON.parse(JSON.stringify(v))},b,ma.paste),b&&requestAnimationFrame(()=>{pa(D,b)}),s(le.markdownToDrawnix)};return e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ttd-dialog-desc",children:t("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(Pa,{children:[e.jsxDEV(st,{label:t("dialog.markdown.syntax"),children:e.jsxDEV(Ma,{input:d,placeholder:t("dialog.markdown.placeholder"),onChange:b=>c(b.target.value),onKeyboardSubmit:()=>{m()}},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(st,{label:t("dialog.markdown.preview"),panelAction:{action:()=>{m()},label:t("dialog.markdown.insert")},renderSubmitShortcut:()=>e.jsxDEV(Ra,{},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(Oa,{value:l,loaded:o.loaded,error:f},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 Aa(){const{completedTasks:s}=Nt(),t=a.useMemo(()=>s.filter(i=>{var d;return i.type===be.IMAGE&&((d=i.result)==null?void 0:d.url)}).map(i=>({id:i.id,type:"image",prompt:i.params.prompt,timestamp:i.completedAt||i.createdAt,imageUrl:i.result.url,width:i.result.width||1024,height:i.result.height||1024,uploadedImages:i.params.uploadedImages})).sort((i,d)=>d.timestamp-i.timestamp),[s]),n=a.useMemo(()=>s.filter(i=>{var d;return i.type===be.VIDEO&&((d=i.result)==null?void 0:d.url)}).map(i=>({id:i.id,type:"video",prompt:i.params.prompt,timestamp:i.completedAt||i.createdAt,imageUrl:i.result.thumbnailUrl||i.result.url,width:i.result.width||400,height:i.result.height||225,previewUrl:i.result.url,downloadUrl:i.result.url,uploadedImage:i.params.uploadedImage})).sort((i,d)=>d.timestamp-i.timestamp),[s]),o=a.useMemo(()=>[...t,...n].sort((i,d)=>d.timestamp-i.timestamp),[t,n]);return{imageHistory:t,videoHistory:n,allHistory:o}}function ji(s={}){const{taskType:t}=s,{tasks:n,isLoading:o}=Us(),{retryTask:i,deleteTask:d}=_s(),c=a.useMemo(()=>[...t?n.filter(f=>f.type===t):n].sort((f,x)=>x.createdAt-f.createdAt),[n,t]),l=a.useCallback(async()=>{},[]),U=a.useCallback(async()=>{if(Cs(),!await St.isAvailable())return;const f=await St.getAllTasks();f.length>0&&qs.restoreTasks(f)},[]);return{tasks:c,isLoading:o,isLoadingMore:!1,hasMore:!1,totalCount:c.length,loadedCount:c.length,loadMore:l,refresh:U,retryTask:i,deleteTask:d}}const La=({taskIds:s,taskType:t,onEditTask:n})=>{const{tasks:o,isLoading:i,isLoadingMore:d,hasMore:c,totalCount:l,loadedCount:U,loadMore:u,retryTask:f,deleteTask:x}=ji({taskType:t}),{board:D,openDialog:m}=it(),[b,p]=a.useState(!1),[v,N]=a.useState(null),[W,V]=a.useState(!1),[y,g]=a.useState(0),[I,R]=a.useState("single"),[k,L]=a.useState(""),[Y,X]=a.useState(null),[_,oe]=a.useState(!1),H=a.useMemo(()=>o.filter(h=>h.status===Le.FAILED).length,[o]),F=a.useCallback(()=>{const h=o.filter(r=>r.status===Le.FAILED);h.forEach(r=>x(r.id)),oe(!1),Te.success(`已清除 ${h.length} 个失败任务`)},[o,x]),O=(h,r)=>{var me,P,Ce,Ie,xe,ve,ye,Z,he,Se,we;if(!r.trim())return!0;const z=r.toLowerCase().split(/\s+/).filter(Boolean),C={[Le.PENDING]:"处理中",[Le.PROCESSING]:"处理中",[Le.COMPLETED]:"已完成",[Le.FAILED]:"失败",[Le.CANCELLED]:"已取消"},T=[],K=(me=h.params)!=null&&me.params&&typeof h.params.params=="object"?h.params.params:null;T.push(((P=h.params)==null?void 0:P.prompt)??""),T.push(((Ce=h.params)==null?void 0:Ce.model)??""),T.push(h.id??""),T.push(C[h.status]??String(h.status)),(Ie=h.params)!=null&&Ie.batchId&&T.push(String(h.params.batchId)),(xe=h.params)!=null&&xe.batchIndex&&T.push(String(h.params.batchIndex)),(ve=h.params)!=null&&ve.batchTotal&&T.push(String(h.params.batchTotal)),typeof(K==null?void 0:K.model_name)=="string"&&T.push(K.model_name),typeof(K==null?void 0:K.mode)=="string"&&T.push(K.mode),typeof(K==null?void 0:K.klingAction2)=="string"&&T.push(K.klingAction2),(ye=h.result)!=null&&ye.format&&T.push(String(h.result.format)),(Z=h.result)!=null&&Z.width&&((he=h.result)!=null&&he.height)?T.push(`${h.result.width}x${h.result.height}`):(Se=h.params)!=null&&Se.width&&((we=h.params)!=null&&we.height)&&T.push(`${h.params.width}x${h.params.height}`);const te=T.join(" ").toLowerCase();return z.every(Ve=>te.includes(Ve))},$=a.useMemo(()=>{let h=o;return s&&s.length>0&&(h=h.filter(r=>s.includes(r.id))),k.trim()&&(h=h.filter(r=>O(r,k))),h.sort((r,z)=>z.createdAt-r.createdAt)},[o,s,k]),A=h=>{f(h)},q=h=>{N(h),p(!0)},ne=()=>{v&&x(v),p(!1),N(null)},ie=async h=>{const r=o.find(C=>C.id===h);if(!r)return;const z=$s(r);if(z.length!==0)try{await Fs(z),Te.success(r.type===be.AUDIO?z.length>1?"多条音频已开始下载":"音频下载成功":z.length>1?"多图已开始下载":"下载成功")}catch(C){console.error("Download failed:",C),Te.error("下载失败,请稍后重试")}},J=async h=>{var z,C,T,K;const r=o.find(te=>te.id===h);if(!((z=r==null?void 0:r.result)!=null&&z.url)&&!((T=(C=r==null?void 0:r.result)==null?void 0:C.urls)!=null&&T.length)||!D){console.warn("Cannot insert: task result or board not available"),Te.warning("无法插入:白板未就绪");return}try{if(r.type===be.IMAGE){const te=(K=r.result.urls)!=null&&K.length?r.result.urls:[r.result.url];for(const me of te)await Ls(D,me);Te.success(te.length>1?"多图已插入到白板":"图片已插入到白板")}else r.type===be.VIDEO&&(await zs(D,r.result.url),Te.success("视频已插入到白板"))}catch(te){console.error("Failed to insert to board:",te),Te.error(`插入失败: ${te instanceof Error?te.message:"未知错误"}`)}},pe=h=>{var z,C,T,K;const r=o.find(te=>te.id===h);if(!r){console.warn("Cannot edit: task not found");return}if(n){n(r);return}if(r.type===be.IMAGE){const te={initialPrompt:r.params.prompt,initialWidth:r.params.width,initialHeight:r.params.height,initialImages:r.params.uploadedImages,initialResultUrl:(z=r.result)==null?void 0:z.url,initialResultUrls:(C=r.result)==null?void 0:C.urls};m(le.aiImageGeneration,te)}else if(r.type===be.VIDEO){const te={initialPrompt:r.params.prompt,initialDuration:typeof r.params.seconds=="string"?parseInt(r.params.seconds,10):r.params.seconds,initialModel:r.params.model,initialSize:r.params.size,initialImages:r.params.uploadedImages,initialResultUrl:(T=r.result)==null?void 0:T.url,initialResultUrls:(K=r.result)==null?void 0:K.urls};m(le.aiVideoGeneration,te)}},fe=h=>{const r=o.find(z=>z.id===h);r&&X(r)},Ee=a.useMemo(()=>{const h=new Set;return $.filter(r=>{var z,C,T,K;return r.status!==Le.COMPLETED||!((z=r.result)!=null&&z.url)&&!((T=(C=r.result)==null?void 0:C.urls)!=null&&T.length)||r.type!==be.IMAGE&&r.type!==be.VIDEO&&!(r.type===be.AUDIO&&((K=r.result)==null?void 0:K.resultKind)!=="lyrics")||h.has(r.id)?!1:(h.add(r.id),!0)})},[$]),{previewMediaItems:je,taskIdToPreviewConfig:j}=a.useMemo(()=>{var z,C,T,K,te,me;const h=[],r=new Map;for(const P of Ee){const Ce=h.length,Ie=((z=P.result)==null?void 0:z.title)||P.params.title||((C=P.params.prompt)==null?void 0:C.substring(0,50))||"媒体预览";if(P.type===be.AUDIO){const ve=((K=(T=P.result)==null?void 0:T.clips)==null?void 0:K.filter(he=>!!he.audioUrl).map((he,Se)=>{var we,Ve,Oe;return{id:he.clipId||he.id||`${P.id}-${Se}`,url:he.audioUrl,type:"audio",title:he.title||((we=P.result)!=null&&we.clips&&P.result.clips.length>1?`${Ie} (${Se+1}/${P.result.clips.length})`:Ie),posterUrl:he.imageLargeUrl||he.imageUrl||((Ve=P.result)==null?void 0:Ve.previewImageUrl),duration:typeof he.duration=="number"?he.duration:(Oe=P.result)==null?void 0:Oe.duration,prompt:P.params.prompt,tags:typeof P.params.tags=="string"?P.params.tags:void 0,artist:P.params.model||P.params.mv||"Aitu",album:"Aitu Generated"}}))??[],ye=(te=P.result.urls)!=null&&te.length?P.result.urls:P.result.url?[P.result.url]:[],Z=ve.length>0?ve:ye.map((he,Se)=>{var we,Ve;return{id:ye.length>1?`${P.id}-${Se}`:P.id,url:he,type:"audio",title:ye.length>1?`${Ie} (${Se+1}/${ye.length})`:Ie,posterUrl:(we=P.result)==null?void 0:we.previewImageUrl,duration:(Ve=P.result)==null?void 0:Ve.duration,prompt:P.params.prompt,tags:typeof P.params.tags=="string"?P.params.tags:void 0,artist:P.params.model||P.params.mv||"Aitu",album:"Aitu Generated"}});h.push(...Z)}else{const ve=(me=P.result.urls)!=null&&me.length?P.result.urls:[P.result.url],ye=P.type===be.VIDEO?"video":"image";for(let Z=0;Z<ve.length;Z++)h.push({id:ve.length>1?`${P.id}-${Z}`:P.id,url:ye==="image"?Ts(ve[Z]):ve[Z],type:ye,title:ve.length>1?`${Ie} (${Z+1}/${ve.length})`:Ie})}const xe=h.length-Ce;r.set(P.id,{mode:P.type===be.AUDIO&&xe>1?"compare":"single",index:P.type===be.AUDIO&&xe>1?Array.from({length:Math.min(xe,4)},(ve,ye)=>Ce+ye):Ce})}return{previewMediaItems:h,taskIdToPreviewConfig:r}},[Ee]),re=a.useCallback(h=>{const r=j.get(h);r!==void 0&&(R(r.mode),g(r.index),V(!0))},[j]),De=a.useCallback(()=>{V(!1)},[]),ge=k.trim()&&$.length===0&&o.length>0,ue=l>0?l:o.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:["生成任务 (",ue,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:440,columnNumber:13},void 0),e.jsxDEV("div",{className:"dialog-task-list__header-actions",children:H>0&&e.jsxDEV(ze,{content:`清除全部失败任务 (${H})`,theme:"light",children:e.jsxDEV(et,{size:"small",variant:"text",icon:e.jsxDEV(da,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:450,columnNumber:27},void 0),onClick:()=>oe(!0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:447,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:443,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:441,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:439,columnNumber:11},void 0),e.jsxDEV("div",{className:"dialog-task-list__search",children:e.jsxDEV(Ps,{value:k,onChange:h=>L(h),placeholder:"搜索任务(提示词/模型/...)",clearable:!0,prefixIcon:e.jsxDEV(Ms,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:463,columnNumber:27},void 0),size:"small"},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,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:457,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:438,columnNumber:9},void 0),e.jsxDEV(Os,{tasks:$,onRetry:A,onDelete:q,onDownload:ie,onInsert:J,onEdit:pe,onPreviewOpen:re,onExtractCharacter:fe,hasMore:c,isLoadingMore:d,onLoadMore:u,totalCount:ue,loadedCount:U,className:"dialog-task-list__content",emptyContent:e.jsxDEV("div",{className:"dialog-task-list__empty",children:i?e.jsxDEV("p",{children:"加载中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:486,columnNumber:17},void 0):ge?e.jsxDEV("p",{children:"未找到匹配的任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:488,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:490,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:484,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:468,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:437,columnNumber:7},void 0),e.jsxDEV(Vt,{visible:b,header:"确认删除",onClose:()=>p(!1),onConfirm:ne,onCancel:()=>p(!1),children:"确定要删除此任务吗?此操作无法撤销。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:498,columnNumber:7},void 0),e.jsxDEV(Vt,{visible:_,header:"清除失败任务",onClose:()=>oe(!1),onConfirm:F,onCancel:()=>oe(!1),children:["确定要清除全部 ",H," 个失败任务吗?此操作无法撤销。"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:509,columnNumber:7},void 0),e.jsxDEV(Rs,{visible:W,items:je,initialMode:I,initialIndex:y,onClose:De,showThumbnails:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:520,columnNumber:7},void 0),e.jsxDEV(As,{visible:!!Y,task:Y,onClose:()=>X(null),onCreateComplete:h=>{X(null)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:530,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/DialogTaskList.tsx",lineNumber:436,columnNumber:5},void 0)},ki=({initialPrompt:s="",initialImages:t=[],selectedElementIds:n=[],initialWidth:o,initialHeight:i,initialResultUrl:d,initialAspectRatio:c,targetFrameId:l,targetFrameDimensions:U,selectedModel:u,selectedModelRef:f,onModelChange:x,onModelRefChange:D,externalBatchId:m}={})=>{var Ve,Oe,Ke;const b=fa("image"),p=Be("image"),v=Pe(b,p.modelId,_e(p.profileId,p.modelId))||tt("image",p.modelId,_e(p.profileId,p.modelId)),[N,W]=a.useState((v==null?void 0:v.id)||((Ve=b[0])==null?void 0:Ve.id)||"gemini-2.5-flash-image-vip"),[V,y]=a.useState(Ue(v)||_e(p.profileId,p.modelId)),g=Ne((v==null?void 0:v.id)||((Oe=b[0])==null?void 0:Oe.id)||"gemini-2.5-flash-image-vip",Ue(v)||_e(p.profileId,p.modelId)),I=Ut((v==null?void 0:v.id)||((Ke=b[0])==null?void 0:Ke.id)||"gemini-2.5-flash-image-vip",g),[R,k]=a.useState(s),[L,Y]=a.useState(I.extraParams),X=a.useMemo(()=>{if(Pe(b,N,V)||!N)return b;const G=tt("image",N,V);return G?[G,...b]:b},[N,V,b]),[_,oe]=a.useState(o||1024),[H,F]=a.useState(i||1024),[O,$]=a.useState(c||I.aspectRatio||rt),[A,q]=a.useState(null),[ne,ie]=a.useState(t),[J,pe]=a.useState(!0),[fe,Ee]=a.useState(()=>Ca("image")),[je,j]=a.useState("config"),re=a.useRef(null),{viewportWidth:De}=vt(),ge=De<=768,{imageHistory:ue}=Aa(),{isGenerating:h}=wa("image"),{language:r}=We(),{createTask:z}=Nt(),C=N.startsWith("mj"),T=ce.useMemo(()=>{if(C)return[];const E=Gs(N);if(E.length===0)return Ze;const G=new Map(Ze.map(se=>[se.value,se])),Q=[];return E.forEach(se=>{const ke=se.value==="auto"?"auto":se.value.replace("x",":"),Re=G.get(ke);Re&&!Q.some(qe=>qe.value===Re.value)&&Q.push(Re)}),Q.length>0?Q:Ze},[N,C]),K=ce.useMemo(()=>{const E=Bs(N);return C?E.length>0:E.some(G=>G.id!=="size")},[N,C]),[te,me]=a.useState(!1);a.useEffect(()=>{if(te)return;const E=Ut(N,Ne(N,V));Y(E.extraParams),$(E.aspectRatio)},[N,V,te]);const P=a.useCallback((E,G)=>{if(!G||G==="default"){Y(Q=>{const se={...Q};return delete se[E],se});return}Y(Q=>({...Q,[E]:G}))},[]),Ce=a.useCallback(E=>{Ee(E)},[]),Ie=a.useCallback(()=>{pe(E=>!E)},[]),xe=ce.useRef("");a.useEffect(()=>{if(te)return;const E=JSON.stringify({prompt:s,images:t==null?void 0:t.map(G=>G.url),elementIds:n,width:o,height:i,result:d,aspectRatio:c});xe.current!==E&&(xe.current=E,k(s),ie(t||[]),o&&oe(o),i&&F(i),c&&$(c))},[s,t,n,o,i,d,c,te]),a.useEffect(()=>{const E=G=>{var se;const Q=G.imageModelName||((se=X[0])==null?void 0:se.id)||"gemini-2.5-flash-image-vip";if(Q!==N){W(Q);const ke=Pe(X,Q,V);y(Ue(ke)||null)}};return Me.addListener(E),()=>Me.removeListener(E)},[N,V,X]),a.useEffect(()=>{if(X.length===0)return;if(!Pe(X,N,V)){const G=X[0];W(G.id);const Q=Ue(G);y(se=>se&&Q&&se.profileId===Q.profileId&&se.modelId===Q.modelId?se:Q)}},[N,V,X]),a.useEffect(()=>{if(!u)return;const E=Ne(N,V),G=Ne(u,f);if(E!==G){W(u);const Q=Pe(X,u,f),se=Ue(Q)||f||null;y(ke=>ke&&se&&ke.profileId===se.profileId&&ke.modelId===se.modelId?ke:se)}},[N,V,u,f,X]),a.useEffect(()=>{!K&&Object.keys(L).length>0&&Y({})},[K,L]),a.useEffect(()=>{var G;if(C||T.length===0)return;const E=new Set(T.map(Q=>Q.value));if(!E.has(O)){const Q=E.has("auto")?"auto":((G=T[0])==null?void 0:G.value)||rt;$(Q)}},[O,C,T]),a.useEffect(()=>{Ws({currentModel:N,currentSelectionKey:Ne(N,V),extraParams:L,aspectRatio:O})},[N,V,L,O]),a.useEffect(()=>(q(null),()=>{q(null)}),[]);const ve=()=>{k(""),Y({}),ie([]),q(null),$(rt),j("config"),me(!1),window.dispatchEvent(new CustomEvent("ai-image-clear"))},ye=ce.useMemo(()=>Sa("image",r,ue),[ue,r]),Z=E=>{Va("image",E)},he=E=>{if(me(!0),j("config"),k(E.params.prompt||""),Y({}),oe(E.params.width||1024),F(E.params.height||1024),E.params.uploadedImages&&E.params.uploadedImages.length>0?ie(E.params.uploadedImages):ie([]),E.params.model){W(E.params.model),y(E.params.modelRef||null);const G=Me.get();Me.update({...G,imageModelName:E.params.model})}E.params.aspectRatio&&$(E.params.aspectRatio),q(null)},Se=async()=>Promise.all(ne.map(async E=>{if(E.file)return new Promise((G,Q)=>{const se=new FileReader;se.onload=()=>{G({type:"url",url:se.result,name:E.name})},se.onerror=Q,se.readAsDataURL(E.file)});if(E.url)return{type:"url",url:E.url,name:E.name};throw new Error("Invalid image data")})),we=async(E=1)=>{if(!R||!R.trim()){q(r==="zh"?"请输入图像描述":"Please enter image description");return}if(!Ks("image",V||N)&&!await Hs()){q(r==="zh"?"需要 API Key 才能生成图片":"API Key is required to generate images");return}C&&q(null);try{const G=typeof _=="string"?parseInt(_)||1024:_,Q=typeof H=="string"?parseInt(H)||1024:H,se=await Se();if(E>1){const $e=[],w=`batch_${Date.now()}`,S=N||Be("image").modelId,M=S.startsWith("mj")?[R.trim(),_t(L)].filter(Boolean).join(" "):(R||"").trim(),B=!S.startsWith("mj")&&Object.keys(L).length>0?L:void 0,ae=B!=null&&B.size?B.size:Ct(O);for(let ee=0;ee<E;ee++){const de={prompt:M,width:G,height:Q,aspectRatio:O,size:ae,model:S,modelRef:V||null,uploadedImages:se,batchId:w,batchIndex:ee+1,batchTotal:E,autoInsertToCanvas:ht(Xe.AI_IMAGE_AUTO_INSERT),targetFrameId:l,targetFrameDimensions:U,...B?{params:B}:{}},Ae=z(de,be.IMAGE);Ae&&$e.push(Ae.id)}$e.length>0?(Te.success(r==="zh"?`已添加 ${$e.length} 个任务到队列`:`Added ${$e.length} tasks to queue`),Z(M),q(null),j("tasks"),me(!1)):q(r==="zh"?"批量任务创建失败,请稍后重试":"Failed to create batch tasks, please try again later");return}const ke=N||Be("image").modelId,Re=ke.startsWith("mj")?[R.trim(),_t(L)].filter(Boolean).join(" "):(R||"").trim(),qe=!ke.startsWith("mj")&&Object.keys(L).length>0?L:void 0,Je=qe!=null&&qe.size?qe.size:Ct(O),Qe={prompt:Re,width:G,height:Q,aspectRatio:O,size:Je,model:ke,modelRef:V||null,uploadedImages:se,autoInsertToCanvas:ht(Xe.AI_IMAGE_AUTO_INSERT),batchId:m||`image_single_${Date.now()}`,batchIndex:1,batchTotal:1,targetFrameId:l,targetFrameDimensions:U,...qe?{params:qe}:{}};z(Qe,be.IMAGE)?(Te.success(r==="zh"?"任务已添加到队列,将在后台生成":"Task added to queue, will be generated in background"),Z(Re),q(null),j("tasks"),me(!1)):q(r==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch(G){console.error("Failed to create task:",G);let Q=r==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";G.message&&(G.message.includes("exceed 5000 characters")?Q=r==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":G.message.includes("Duplicate submission")?Q=r==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":G.message.includes("Invalid parameters")&&(Q=r==="zh"?`参数错误: ${G.message.replace("Invalid parameters: ","")}`:G.message)),q(Q)}};return ya(h,R,()=>we(1)),e.jsxDEV("div",{className:"ai-image-generation-container",children:[ge?e.jsxDEV("div",{className:"ai-generation-mobile-switcher",role:"tablist",children:[e.jsxDEV("button",{type:"button",className:`ai-generation-mobile-switcher__tab ${je==="config"?"ai-generation-mobile-switcher__tab--active":""}`,onClick:()=>j("config"),children:"生成设置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:743,columnNumber:11},void 0),e.jsxDEV("button",{type:"button",className:`ai-generation-mobile-switcher__tab ${je==="tasks"?"ai-generation-mobile-switcher__tab--active":""}`,onClick:()=>j("tasks"),children:"生成任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:754,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:742,columnNumber:9},void 0):null,e.jsxDEV("div",{className:`main-content ${ge?"main-content--mobile-panels":""}`,ref:re,children:[e.jsxDEV("div",{className:`ai-image-generation-section ${ge&&je!=="config"?"ai-generation-mobile-panel--hidden":""}`,children:[e.jsxDEV("div",{className:"ai-image-generation-form",children:[u!==void 0&&x&&e.jsxDEV("div",{className:"form-header-row",children:e.jsxDEV("div",{className:"model-selector-wrapper",children:e.jsxDEV(ga,{selectedModel:N,selectedSelectionKey:Ne(N,V),onSelect:E=>{W(E),y(null),x(E),D==null||D(null)},onSelectModel:E=>{W(E.id);const G=Ue(E);y(G),x(E.id),D==null||D(G)},language:r,models:X,placement:"down",variant:"form",disabled:h},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:787,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:786,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:785,columnNumber:15},void 0),K&&e.jsxDEV("div",{className:"model-params-row",children:e.jsxDEV(ha,{selectedParams:L,onParamChange:P,modelId:N,language:r,disabled:h,excludeParamIds:C?void 0:["size"]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:819,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:818,columnNumber:15},void 0),e.jsxDEV(ba,{images:ne,onImagesChange:ie,language:r,disabled:h,multiple:!0,label:r==="zh"?"参考图片 (可选)":"Reference Images (Optional)",onError:q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:831,columnNumber:13},void 0),e.jsxDEV(Ia,{prompt:R,onPromptChange:k,presetPrompts:ye,language:r,type:"image",disabled:h,onError:q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:845,columnNumber:13},void 0),e.jsxDEV(ka,{error:A},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:855,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:782,columnNumber:11},void 0),e.jsxDEV(ja,{language:r,type:"image",isGenerating:h,hasGenerated:!1,canGenerate:!!(R&&R.trim()),onGenerate:we,onReset:ve,leftContent:e.jsxDEV(e.Fragment,{children:[e.jsxDEV(Ta,{storageKey:Xe.AI_IMAGE_AUTO_INSERT,language:r},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:868,columnNumber:17},void 0),!C&&e.jsxDEV(mi,{value:O,onChange:$,compact:!0,options:T},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:873,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:867,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:858,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:775,columnNumber:9},void 0),ge?null:e.jsxDEV(qa,{isRightPanelVisible:J,onToggleRightPanel:Ie,onWidthChange:Ce,rightPanelWidth:fe,language:r,storageKey:"image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:886,columnNumber:11},void 0),(ge||J)&&e.jsxDEV("div",{className:`task-sidebar ${ge?"task-sidebar--mobile-panel":""} ${ge&&je!=="tasks"?"ai-generation-mobile-panel--hidden":""}`,style:ge?void 0:{width:fe,flexShrink:0},children:e.jsxDEV(La,{taskType:be.IMAGE,onEditTask:he},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:912,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:898,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:768,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-image-generation.tsx",lineNumber:740,columnNumber:5},void 0)},Ei=({initialPrompt:s="",initialImage:t,initialImages:n,initialDuration:o,initialModel:i,initialSize:d,initialResultUrl:c,selectedModel:l,selectedModelRef:U,onModelChange:u,onModelRefChange:f}={})=>{var Qe,nt,$e;const x=fa("video"),[D,m]=a.useState(s),[b,p]=a.useState(null),[v,N]=a.useState(!0),[W,V]=a.useState(()=>Ca("video")),[y,g]=a.useState("config"),I=a.useRef(null),{viewportWidth:R}=vt(),k=R<=768,L=Be("video"),Y=i||L.modelId,X=Pe(x,Y,_e(L.profileId,Y))||tt("video",Y,_e(L.profileId,Y)),[_,oe]=a.useState((X==null?void 0:X.id)||((Qe=x[0])==null?void 0:Qe.id)||dt("veo3")),[H,F]=a.useState(Ue(X)||_e(L.profileId,Y)),O=Ne((X==null?void 0:X.id)||((nt=x[0])==null?void 0:nt.id)||dt("veo3"),Ue(X)||_e(L.profileId,Y)),$=qt((X==null?void 0:X.id)||(($e=x[0])==null?void 0:$e.id)||dt("veo3"),O),A=ce.useMemo(()=>{if(Pe(x,_,H)||!_)return x;const S=tt("video",_,H);return S?[S,...x]:x},[_,H,x]),[q,ne]=a.useState(()=>$.extraParams),ie=ce.useMemo(()=>Ys(_,H||_,q),[_,H,q]),J=ce.useMemo(()=>Tt(_,H||_,q),[_,H,q]),pe=ce.useMemo(()=>Xs(_,H||_,q),[_,H,q]),[fe,Ee]=a.useState((o==null?void 0:o.toString())||$.duration),[je,j]=a.useState(d||$.size),re=ce.useMemo(()=>ie.some(w=>w.id!=="size"&&w.id!=="duration"),[ie]),De=a.useCallback((w,S)=>{if(!S||S==="default"){ne(M=>{const B={...M};return delete B[w],B});return}ne(M=>({...M,[w]:S}))},[]);a.useEffect(()=>{const w=(M,B)=>{const ae=Object.keys(M),ee=Object.keys(B);return ae.length!==ee.length?!1:ae.every(de=>M[de]===B[de])},S=ie.reduce((M,B)=>{const ae=q[B.id],ee=!ae||B.valueType!=="enum"||!B.options||B.options.some(de=>de.value===ae);return ae&&ee?M[B.id]=ae:B.defaultValue&&(M[B.id]=B.defaultValue),M},{});w(q,S)||ne(S)},[ie,q]);const[ge,ue]=a.useState(()=>n&&n.length>0?n:t?[{slot:0,slotLabel:"参考图",url:t.url||"",name:t.name,file:t.file}]:[]),[h,r]=a.useState(()=>{const w=J.imageUpload.maxCount,S=J.imageUpload.labels||[];let M=[];return n&&n.length>0?M=n:t&&(M=[{slot:0,slotLabel:S[0]||"参考图",url:t.url||"",name:t.name,file:t.file}]),M.slice(0,w).map((B,ae)=>({...B,slot:ae,slotLabel:S[ae]||`参考图${ae+1}`}))}),[z,C]=a.useState(!1),[T,K]=a.useState([]),te=ce.useMemo(()=>Js(_),[_]),me=Pt(_),{videoHistory:P}=Aa(),[Ce,Ie]=a.useState(0),{isGenerating:xe}=wa("video"),ve=a.useCallback(w=>{V(w)},[]),ye=a.useCallback(()=>{N(w=>!w)},[]),{language:Z}=We(),{createTask:he}=Nt();a.useEffect(()=>{const w=S=>{const M=S.videoModelName||"veo3";if(M!==_){oe(M);const B=Pe(A,M,H);F(Ue(B)||null)}};return Me.addListener(w),()=>Me.removeListener(w)},[_,H,A]),a.useEffect(()=>{if(A.length===0)return;Pe(A,_,H)||(oe(A[0].id),F(Ue(A[0])))},[_,H,A]),a.useEffect(()=>{if(!l)return;const w=Ne(_,H),S=Ne(l,U);if(w!==S){oe(l);const M=Pe(A,l,U);F(Ue(M)||U||null)}},[_,H,l,U,A]);const[Se,we]=a.useState(!1),[Ve,Oe]=a.useState(!1);a.useEffect(()=>{if(Ve){Oe(!1);return}const w=J.imageUpload.maxCount,S=J.imageUpload.labels||[],M=qt(_,Ne(_,H));if(ne(M.extraParams),Ee(M.duration),j(M.size),ge.length>0){const B=ge.slice(0,w).map((ae,ee)=>({...ae,slot:ee,slotLabel:S[ee]||`参考图${ee+1}`}));r(B)}else r([]);Pt(_)||(C(!1),K([]))},[ge,_,H,Ve,J.imageUpload]),a.useEffect(()=>{Qs({currentModel:_,currentSelectionKey:Ne(_,H),extraParams:q,duration:fe,size:je})},[_,H,fe,je,q]);const Ke=ce.useRef("");a.useEffect(()=>{if(Se)return;const w=JSON.stringify({prompt:s,image:t==null?void 0:t.url,images:n==null?void 0:n.map(ee=>ee.url),duration:o,model:i,size:d,result:c});if(Ke.current===w)return;Ke.current=w,m(s);const S=J.imageUpload.maxCount,M=J.imageUpload.labels||[];let B=[];n&&n.length>0?B=n:t&&(B=[{slot:0,slotLabel:"参考图",url:t.url||"",name:t.name,file:t.file}]),ue(B);const ae=B.slice(0,S).map((ee,de)=>({...ee,slot:de,slotLabel:M[de]||`参考图${de+1}`}));r(ae),o!==void 0&&Ee(o.toString()),d&&j(d),p(null)},[s,t,n,o,d,c,J.imageUpload,Se]),a.useEffect(()=>(p(null),()=>{p(null)}),[]);const E=()=>{m(""),ue([]),r([]),p(null),g("config"),Ee(pe.duration),j(pe.size),we(!1),C(!1),K([]),ne(lt(_,H||_)),window.dispatchEvent(new CustomEvent("ai-video-clear"))},G=ce.useCallback((w,S)=>w.map((M,B)=>({slot:B,slotLabel:S[B]||`参考图${B+1}`,url:M.url,name:M.name,file:M.file})),[]),Q=ce.useCallback(w=>w.map(S=>({url:S.url,name:S.name,file:S.file})),[]),se=ce.useCallback(w=>{const S=J.imageUpload.labels||[],M=G(w,S);r(M),ue(M)},[J.imageUpload.labels,G]),ke=ce.useMemo(()=>Sa("video",Z,P),[P,Z,Ce]),Re=w=>{Va("video",w),Ie(S=>S+1)},qe=w=>{var M,B;if(we(!0),g("config"),Oe(!0),w.params.model){oe(w.params.model),F(w.params.modelRef||null);const ae=Me.get();Me.update({...ae,videoModelName:w.params.model})}if((M=w.params.storyboard)!=null&&M.enabled&&((B=w.params.storyboard)!=null&&B.scenes))C(!0),K(w.params.storyboard.scenes),m("");else{const ae=w.params.prompt||"",ee=gi(ae);ee&&ee.length>0?(C(!0),K(ee),m("")):(C(!1),K([]),m(ae))}if(w.params.seconds!==void 0){const ae=typeof w.params.seconds=="string"?w.params.seconds:w.params.seconds.toString();Ee(ae)}const S=w.params.params&&typeof w.params.params=="object"?Object.entries(w.params.params).reduce((ae,[ee,de])=>(de!=null&&String(de).trim()&&(ae[ee]=String(de)),ae),{}):{};if(ne(S),w.params.size&&j(w.params.size),w.params.uploadedImages&&w.params.uploadedImages.length>0){ue(w.params.uploadedImages);const ae=w.params.model||_,ee=Tt(ae,w.params.modelRef||ae,S),de=ee.imageUpload.maxCount,Ae=ee.imageUpload.labels||[],Fe=w.params.uploadedImages.slice(0,de).map((Ge,ot)=>({...Ge,slot:ot,slotLabel:Ae[ot]||`参考图${ot+1}`}));r(Fe)}else ue([]),r([]);p(null)},Je=async(w=1)=>{if(z){const S=pi(T,parseFloat(fe),te.minSceneDuration);if(!S.valid){p(S.error||"场景配置无效");return}}else if(!D||!D.trim()){p(Z==="zh"?"请输入视频描述":"Please enter video description");return}try{const S=[];for(const ee of h)if(ee.file){const de=await new Promise((Ae,Fe)=>{const Ge=new FileReader;Ge.onload=()=>Ae(Ge.result),Ge.onerror=Fe,Ge.readAsDataURL(ee.file)});S.push({...ee,url:de,file:void 0})}else S.push({...ee,file:void 0});const M=z?fi(T):(D||"").trim(),B=[],ae=`video_batch_${Date.now()}`;for(let ee=0;ee<w;ee++){const de=Object.keys(q).length>0?q:void 0,Ae={prompt:M,model:_,modelRef:H||null,seconds:fe,size:je,uploadedImages:S,...z&&{storyboard:{enabled:!0,scenes:T,totalDuration:parseFloat(fe)}},batchId:ae,batchIndex:ee+1,batchTotal:w,autoInsertToCanvas:ht(Xe.AI_VIDEO_AUTO_INSERT),...de?{params:de}:{}},Fe=he(Ae,be.VIDEO);Fe&&B.push(Fe.id)}B.length>0?(Te.success(Z==="zh"?w>1?`${B.length} 个视频任务已添加到队列,将在后台生成`:"视频任务已添加到队列,将在后台生成":w>1?`${B.length} video tasks added to queue, will be generated in background`:"Video task added to queue, will be generated in background"),Re(M),m(""),ue([]),r([]),C(!1),K([]),p(null),g("tasks"),we(!1)):p(Z==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch(S){console.error("Failed to create task:",S);let M=Z==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";S.message&&(S.message.includes("exceed 5000 characters")?M=Z==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":S.message.includes("Duplicate submission")?M=Z==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":S.message.includes("Invalid parameters")&&(M=Z==="zh"?`参数错误: ${S.message.replace("Invalid parameters: ","")}`:S.message)),p(M)}};return ya(xe,D,Je),e.jsxDEV("div",{className:"ai-video-generation-container",children:[k?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:()=>g("config"),children:"生成设置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:912,columnNumber:11},void 0),e.jsxDEV("button",{type:"button",className:`ai-generation-mobile-switcher__tab ${y==="tasks"?"ai-generation-mobile-switcher__tab--active":""}`,onClick:()=>g("tasks"),children:"生成任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:923,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:911,columnNumber:9},void 0):null,e.jsxDEV("div",{className:`main-content ${k?"main-content--mobile-panels":""}`,ref:I,children:[e.jsxDEV("div",{className:`ai-image-generation-section ${k&&y!=="config"?"ai-generation-mobile-panel--hidden":""}`,children:[e.jsxDEV("div",{className:"ai-image-generation-form",children:[l!==void 0&&u&&e.jsxDEV("div",{className:"form-header-row",children:e.jsxDEV("div",{className:"model-selector-wrapper",children:e.jsxDEV(ga,{selectedModel:_,selectedSelectionKey:Ne(_,H),onSelect:w=>{const S=w;oe(S),F(null),ne(lt(S,S)),u(w),f==null||f(null)},onSelectModel:w=>{const S=w.id;oe(S);const M=Ue(w);F(M),ne(lt(S,M||S)),u(w.id),f==null||f(M)},language:Z,models:A,placement:"down",variant:"form",placeholder:Z==="zh"?"选择视频模型":"Select Video Model",disabled:xe},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:956,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:955,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:954,columnNumber:15},void 0),re&&e.jsxDEV("div",{className:"model-params-row",children:e.jsxDEV(ha,{selectedParams:q,onParamChange:De,compatibleParams:ie,modelId:_,language:Z,disabled:xe,excludeParamIds:["size","duration"]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1002,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1001,columnNumber:15},void 0),e.jsxDEV(ui,{model:_,configOverride:J,duration:fe,size:je,onDurationChange:Ee,onSizeChange:j,disabled:xe},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1015,columnNumber:13},void 0),e.jsxDEV(ba,{images:Q(h),onImagesChange:se,language:Z,disabled:xe,multiple:J.imageUpload.maxCount>1,maxCount:J.imageUpload.maxCount,slotLabels:J.imageUpload.mode==="frames"?J.imageUpload.labels:void 0,label:J.imageUpload.mode==="frames"?Z==="zh"?"首尾帧图片 (可选)":"Start/End Frames (Optional)":Z==="zh"?"参考图片 (可选)":"Reference Images (Optional)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1026,columnNumber:13},void 0),me&&e.jsxDEV(bi,{enabled:z,onEnabledChange:C,totalDuration:parseFloat(fe),maxScenes:te.maxScenes,minSceneDuration:te.minSceneDuration,scenes:T,onScenesChange:K,disabled:xe},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1051,columnNumber:15},void 0),!z&&e.jsxDEV(Ia,{prompt:D,onPromptChange:m,presetPrompts:ke,language:Z,type:"video",disabled:xe,onError:p,videoProvider:J.provider},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1065,columnNumber:15},void 0),e.jsxDEV(ka,{error:b},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1077,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:951,columnNumber:11},void 0),e.jsxDEV(ja,{language:Z,type:"video",isGenerating:xe,hasGenerated:!1,canGenerate:z?T.length>0:!!(D&&D.trim()),onGenerate:Je,onReset:E,leftContent:e.jsxDEV(Ta,{storageKey:Xe.AI_VIDEO_AUTO_INSERT,language:Z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1093,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1080,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:944,columnNumber:9},void 0),k?null:e.jsxDEV(qa,{isRightPanelVisible:v,onToggleRightPanel:ye,onWidthChange:ve,rightPanelWidth:W,language:Z,storageKey:"video"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1102,columnNumber:11},void 0),(k||v)&&e.jsxDEV("div",{className:`task-sidebar ${k?"task-sidebar--mobile-panel":""} ${k&&y!=="tasks"?"ai-generation-mobile-panel--hidden":""}`,style:k?void 0:{width:W,flexShrink:0},children:e.jsxDEV(La,{taskType:be.VIDEO,onEditTask:qe},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1128,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:1114,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:937,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ai-video-generation.tsx",lineNumber:909,columnNumber:5},void 0)},Di=a.lazy(()=>xt(()=>import("./batch-image-generation-DEC8rrCP.js"),__vite__mapDeps([5,1,2,6]),import.meta.url)),Ii=({container:s})=>{var J,pe,fe,Ee,je;const{appState:t,openDialog:n,closeDialog:o}=it(),{language:i}=We(),d=bt(),{isMobile:c,isTablet:l}=vt(),U=!c&&!l,u=a.useRef(!1),f=a.useRef(null),[x,D]=a.useState(""),[m,b]=a.useState(null),[p,v]=a.useState(""),[N,W]=a.useState(null),V=a.useRef(null),y=a.useRef(null),g=a.useCallback(()=>{const j=Be("image"),re=Be("video"),De=j.modelId||"gemini-3-pro-image-preview-vip",ge=_e(j.profileId,De),ue=re.modelId||"veo3",h=_e(re.profileId,ue);D(r=>r===De?r:De),b(r=>Ne(De,r)===Ne(De,ge)?r:ge),v(r=>r===ue?r:ue),W(r=>Ne(ue,r)===Ne(ue,h)?r:h)},[]);a.useEffect(()=>{g()},[g]),a.useEffect(()=>{const j=()=>{g()};return Me.addListener(j),Mt.addListener(j),()=>{Me.removeListener(j),Mt.removeListener(j)}},[g]);const I=j=>{D(j)},R=j=>{v(j)},k=j=>{b(j)},L=j=>{W(j)};a.useEffect(()=>{if(!x)return;const j=Ne(x,m);V.current!==j&&(V.current=j,Ot("image",_e(m==null?void 0:m.profileId,x)))},[x,m]),a.useEffect(()=>{if(!p)return;const j=Ne(p,N);y.current!==j&&(y.current=j,Ot("video",_e(N==null?void 0:N.profileId,p)))},[p,N]);const[Y,X]=a.useState({initialPrompt:"",initialImages:[],selectedElementIds:[]}),[_,oe]=a.useState({initialPrompt:"",initialImage:void 0}),[H,F]=a.useState(!1),[O,$]=a.useState(()=>{try{return localStorage.getItem(ct)==="batch"?"batch":"single"}catch{return"single"}});a.useEffect(()=>{!U&&O==="batch"&&$("single")},[U,O]);const A=a.useCallback(j=>{$(j),j==="batch"&&(F(!0),setTimeout(()=>F(!1),50));try{localStorage.setItem(ct,j)}catch(re){console.warn("Failed to save image mode:",re)}},[]);a.useEffect(()=>{if(t.openDialogTypes.has(le.aiImageGeneration)){if(Y.initialImages&&Y.initialImages.length>0||Y.initialPrompt&&Y.initialPrompt.trim()!==""){F(!1);return}try{localStorage.getItem(ct)==="batch"&&(F(!0),setTimeout(()=>F(!1),50))}catch{F(!1)}}},[t.openDialogTypes,Y.initialImages,Y.initialPrompt]);const q=a.useRef(new Set);a.useEffect(()=>{if(!d)return;const j=t.openDialogTypes,re=q.current,De=j.has(le.aiImageGeneration)&&!re.has(le.aiImageGeneration),ge=j.has(le.aiVideoGeneration)&&!re.has(le.aiVideoGeneration);q.current=new Set(j),!u.current&&(De&&(async()=>{u.current=!0,f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{console.warn("Processing timeout, resetting processing state"),u.current=!1},1e4);try{if(t.dialogInitialData){X({initialPrompt:t.dialogInitialData.initialPrompt||t.dialogInitialData.prompt||"",initialImages:t.dialogInitialData.initialImages||t.dialogInitialData.uploadedImages||[],selectedElementIds:[],initialResultUrl:t.dialogInitialData.initialResultUrl||t.dialogInitialData.resultUrl});return}const h=t.lastSelectedElementIds||[];let r,z,C;const T=Zs(d);if(T.length===1&&ei(T[0])){const me=T[0],P=ft.getRectangleByPoints(me.points);r=ti(P.width,P.height),z=me.id,C={width:P.width,height:P.height}}const K=await Ft(d,h),te=[];K.remainingImages.forEach(me=>{te.push({url:me.url,name:me.name||`selected-image-${Date.now()}.png`})}),K.graphicsImage&&te.push({url:K.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),X({initialPrompt:K.remainingText||"",initialImages:te,selectedElementIds:h,initialAspectRatio:r,targetFrameId:z,targetFrameDimensions:C})}catch(h){console.warn("Error processing selected content for AI:",h);const r=Gt(d),z=r.images.map(C=>({url:C.url,name:C.name||`selected-image-${Date.now()}.png`}));X({initialPrompt:r.text||"",initialImages:z,selectedElementIds:[]})}finally{u.current=!1,f.current&&(clearTimeout(f.current),f.current=null)}})(),ge&&(async()=>{u.current=!0,f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{console.warn("Video processing timeout, resetting processing state"),u.current=!1},1e4);try{if(t.dialogInitialData){const C={initialPrompt:t.dialogInitialData.initialPrompt||t.dialogInitialData.prompt||"",initialImage:t.dialogInitialData.initialImage||t.dialogInitialData.uploadedImage,initialImages:t.dialogInitialData.initialImages||t.dialogInitialData.uploadedImages,initialDuration:t.dialogInitialData.initialDuration||t.dialogInitialData.duration,initialModel:t.dialogInitialData.initialModel||t.dialogInitialData.model,initialSize:t.dialogInitialData.initialSize||t.dialogInitialData.size,initialResultUrl:t.dialogInitialData.initialResultUrl||t.dialogInitialData.resultUrl};oe(C);return}const h=t.lastSelectedElementIds||[],r=await Ft(d,h),z=[];r.remainingImages.length>0?r.remainingImages.forEach((C,T)=>{z.push({url:C.url,name:C.name||`selected-image-${T+1}-${Date.now()}.png`})}):r.graphicsImage&&z.push({url:r.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),oe({initialPrompt:r.remainingText||"",initialImage:z.length>0?z[0]:void 0,initialImages:z.map((C,T)=>({slot:T,slotLabel:`参考图${T+1}`,url:C.url,name:C.name}))})}catch(h){console.warn("Error processing selected content for AI video:",h);const r=Gt(d),z=r.images.map((C,T)=>({url:C.url,name:C.name||`selected-image-${T+1}-${Date.now()}.png`}));oe({initialPrompt:r.text||"",initialImage:z.length>0?z[0]:void 0,initialImages:z.map((C,T)=>({slot:T,slotLabel:`参考图${T+1}`,url:C.url,name:C.name}))})}finally{u.current=!1,f.current&&(clearTimeout(f.current),f.current=null)}})())},[t.openDialogTypes]),a.useEffect(()=>{t.openDialogTypes.size===0&&(u.current=!1,q.current=new Set)},[t.openDialogTypes]);const ne=a.useCallback(()=>{const j=localStorage.getItem(Rt);if(j)try{const re=JSON.parse(j);re.timestamp=Date.now(),localStorage.setItem(Rt,JSON.stringify(re))}catch(re){console.warn("Failed to update cache timestamp:",re)}o(le.aiImageGeneration)},[o]),ie=a.useCallback(()=>{const j=localStorage.getItem(At);if(j)try{const re=JSON.parse(j);re.timestamp=Date.now(),localStorage.setItem(At,JSON.stringify(re))}catch(re){console.warn("Failed to update cache timestamp:",re)}o(le.aiVideoGeneration)},[o]);return e.jsxDEV(e.Fragment,{children:[e.jsxDEV(Lt,{open:t.openDialogTypes.has(le.mermaidToDrawnix),onOpenChange:j=>{j?n(le.mermaidToDrawnix):o(le.mermaidToDrawnix)},children:e.jsxDEV(zt,{className:"Dialog ttd-dialog",container:s,children:e.jsxDEV(yi,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:621,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:620,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:610,columnNumber:7},void 0),e.jsxDEV(Lt,{open:t.openDialogTypes.has(le.markdownToDrawnix),onOpenChange:j=>{j?n(le.markdownToDrawnix):o(le.markdownToDrawnix)},children:e.jsxDEV(zt,{className:"Dialog ttd-dialog",container:s,children:e.jsxDEV(wi,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:635,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:634,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:624,columnNumber:7},void 0),e.jsxDEV($t,{id:"ai-image-dialog",visible:t.openDialogTypes.has(le.aiImageGeneration),title:O==="batch"?i==="zh"?"批量出图":"Batch Generation":i==="zh"?"AI 图片生成":"AI Image Generation",headerContent:U?e.jsxDEV("div",{className:"image-generation-mode-tabs",onMouseDown:j=>j.stopPropagation(),onTouchStart:j=>j.stopPropagation(),onPointerDown:j=>j.stopPropagation(),children:[e.jsxDEV("button",{type:"button",className:`mode-tab ${O==="single"?"active":""}`,onClick:j=>{j.stopPropagation(),j.preventDefault(),A("single")},children:i==="zh"?"AI 图片生成":"AI Image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:659,columnNumber:15},void 0),e.jsxDEV("button",{type:"button",className:`mode-tab ${O==="batch"?"active":""}`,onClick:j=>{j.stopPropagation(),j.preventDefault(),A("batch")},children:i==="zh"?"批量出图":"Batch"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:672,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:653,columnNumber:13},void 0):void 0,onClose:ne,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:s,autoMaximize:H||c,children:t.openDialogTypes.has(le.aiImageGeneration)&&(O==="batch"?e.jsxDEV(a.Suspense,{fallback:e.jsxDEV("div",{className:"loading-fallback",children:i==="zh"?"加载中...":"Loading..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:705,columnNumber:17},void 0),children:e.jsxDEV(Di,{onSwitchToSingle:()=>A("single"),selectedModel:x,selectedModelRef:m,onModelChange:I,onModelRefChange:k},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:710,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:703,columnNumber:13},void 0):e.jsxDEV(ki,{initialPrompt:Y.initialPrompt,initialImages:Y.initialImages,selectedElementIds:Y.selectedElementIds,initialWidth:((J=t.dialogInitialData)==null?void 0:J.initialWidth)||((pe=t.dialogInitialData)==null?void 0:pe.width),initialHeight:((fe=t.dialogInitialData)==null?void 0:fe.initialHeight)||((Ee=t.dialogInitialData)==null?void 0:Ee.height),initialResultUrl:Y.initialResultUrl,initialAspectRatio:Y.initialAspectRatio,targetFrameId:Y.targetFrameId,targetFrameDimensions:Y.targetFrameDimensions,selectedModel:x,selectedModelRef:m,onModelChange:I,onModelRefChange:k,externalBatchId:(je=t.dialogInitialData)==null?void 0:je.batchId},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:719,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:639,columnNumber:7},void 0),e.jsxDEV($t,{id:"ai-video-dialog",visible:t.openDialogTypes.has(le.aiVideoGeneration),title:i==="zh"?"AI 视频生成":"AI Video Generation",onClose:ie,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:s,autoMaximize:c,children:t.openDialogTypes.has(le.aiVideoGeneration)&&e.jsxDEV(Ei,{initialPrompt:_.initialPrompt,initialImage:_.initialImage,initialImages:_.initialImages,initialDuration:_.initialDuration,initialModel:_.initialModel,initialSize:_.initialSize,initialResultUrl:_.initialResultUrl,selectedModel:p,selectedModelRef:N,onModelChange:R,onModelRefChange:L},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:762,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:744,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/ttd-dialog.tsx",lineNumber:609,columnNumber:5},void 0)},qi=a.memo(Ii,(s,t)=>s.container===t.container);export{qi as TTDDialog};
|