aitu-app 0.6.48 → 0.6.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/assets/CanvasAudioPlayer-DITqjh6L.js +2 -0
- package/assets/CanvasAudioPlayer-mm7y75Ol.css +1 -0
- package/assets/ChatMessagesArea-D9jmGx5a.js +250 -0
- package/assets/ChatMessagesArea-DyR_wHFQ.css +1 -0
- package/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/assets/KnowledgeBaseContent-C_BAVG2b.css +1 -0
- package/assets/KnowledgeBaseContent-za__rOJH.js +53 -0
- package/assets/MVCreator-CTG316DL.js +152 -0
- package/assets/MVCreator-D2l2Gm4W.css +1 -0
- package/assets/MediaLibrarySidebar-CNCXXhfY.css +1 -0
- package/assets/ModelBenchmarkWorkbench-CAF7qCOz.css +1 -0
- package/assets/ModelBenchmarkWorkbench-JCQglDx0.js +2 -0
- package/assets/MusicAnalyzer-DE_rzhdo.js +1 -0
- package/assets/MusicAnalyzer-DhtRGpAp.css +1 -0
- package/assets/MusicAnalyzer-QQf3iMVf.js +6 -0
- package/assets/ResizableDivider-CNJfwuMZ.js +1 -0
- package/assets/ResizableDivider-ClzYJk-6.css +1 -0
- package/assets/Tableau10-B-NsZVaP.js +1 -0
- package/assets/Tableau10-Dnlau_Wv.js +1 -0
- package/assets/TaskQueuePanel-CcKV6Mtu.js +1 -0
- package/assets/VideoAnalyzer-4jAswALN.js +2 -0
- package/assets/VideoAnalyzer-BNHBu5xL.css +1 -0
- package/assets/__vite-browser-external-UePf-KSV.js +1 -0
- package/assets/apl-B4CMkyY2.js +1 -0
- package/assets/arc-CUJYo2bm.js +1 -0
- package/assets/arc-Do7iheP0.js +1 -0
- package/assets/array-B5oSNiGi.js +1 -0
- package/assets/array-BKyUJesY.js +1 -0
- package/assets/asciiarmor-Df11BRmG.js +1 -0
- package/assets/asn1-EdZsLKOL.js +1 -0
- package/assets/asterisk-B-8jnY81.js +1 -0
- package/assets/batch-image-generation-BcGzhZc6.js +6 -0
- package/assets/batch-image-generation-BePygpHd.css +1 -0
- package/assets/blockDiagram-38ab4fdb-7dWD8NFK.js +118 -0
- package/assets/blockDiagram-38ab4fdb-CQhYv8hA.js +118 -0
- package/assets/brainfuck-C4LP7Hcl.js +1 -0
- package/assets/browser-Dlc7rtso.js +1 -0
- package/assets/c4Diagram-3d4e48cf-DcDSmMC1.js +10 -0
- package/assets/c4Diagram-3d4e48cf-YiNiIQMx.js +10 -0
- package/assets/channel-CbiJkWzq.js +1 -0
- package/assets/channel-CmPwOS9o.js +1 -0
- package/assets/character-Bo9jcTNu.css +1 -0
- package/assets/classDiagram-70f12bd4--vcKyE3X.js +2 -0
- package/assets/classDiagram-70f12bd4-uRbi4Ob8.js +2 -0
- package/assets/classDiagram-v2-f2320105-CJVRZ6AN.js +2 -0
- package/assets/classDiagram-v2-f2320105-vzjVMHkr.js +2 -0
- package/assets/clike-B9uivgTg.js +1 -0
- package/assets/clipper-DOGfacWv.js +1 -0
- package/assets/clojure-BMjYHr_A.js +1 -0
- package/assets/clone-D79TnM4U.js +1 -0
- package/assets/cmake-BQqOBYOt.js +1 -0
- package/assets/cobol-CWcv1MsR.js +1 -0
- package/assets/coffeescript-S37ZYGWr.js +1 -0
- package/assets/commonlisp-DBKNyK5s.js +1 -0
- package/assets/createText-2e5e7dd3-BwZkEiuo.js +8 -0
- package/assets/createText-2e5e7dd3-Caeqt6QH.js +5 -0
- package/assets/crystal-SjHAIU92.js +1 -0
- package/assets/css-BnMrqG3P.js +1 -0
- package/assets/cypher-C_CwsFkJ.js +1 -0
- package/assets/d-pRatUO7H.js +1 -0
- package/assets/diff-DbItnlRl.js +1 -0
- package/assets/dockerfile-BKs6k2Af.js +1 -0
- package/assets/dtd-DF_7sFjM.js +1 -0
- package/assets/dylan-DwRh75JA.js +1 -0
- package/assets/ebnf-CDyGwa7X.js +1 -0
- package/assets/ecl-Cabwm37j.js +1 -0
- package/assets/edges-e0da2a9e-C0phcDTf.js +4 -0
- package/assets/edges-e0da2a9e-izyAbn2P.js +4 -0
- package/assets/eiffel-CnydiIhH.js +1 -0
- package/assets/elm-vLlmbW-K.js +1 -0
- package/assets/erDiagram-9861fffd-2xZLFO3_.js +51 -0
- package/assets/erDiagram-9861fffd-CbdcBVpG.js +51 -0
- package/assets/erlang-BNw1qcRV.js +1 -0
- package/assets/external-skills-BcV6ATYi.js +1 -0
- package/assets/factor-kuTfRLto.js +1 -0
- package/assets/fcl-Kvtd6kyn.js +1 -0
- package/assets/flowDb-956e92f1-CKDRVial.js +10 -0
- package/assets/flowDb-956e92f1-X_4p-qaU.js +10 -0
- package/assets/flowDiagram-66a62f08-CujQt6CJ.js +4 -0
- package/assets/flowDiagram-66a62f08-DBi4rRPf.js +4 -0
- package/assets/flowDiagram-v2-96b9c2cf-BLkw2ciq.js +1 -0
- package/assets/flowDiagram-v2-96b9c2cf-DVKQK2hY.js +1 -0
- package/assets/flowchart-elk-definition-4a651766-Uf06y1Ck.js +139 -0
- package/assets/flowchart-elk-definition-4a651766-wpAztAJn.js +139 -0
- package/assets/forth-Ffai-XNe.js +1 -0
- package/assets/fortran-DYz_wnZ1.js +1 -0
- package/assets/ganttDiagram-c361ad54-B3JxRUoo.js +257 -0
- package/assets/ganttDiagram-c361ad54-CIb_MFVi.js +257 -0
- package/assets/gas-Bneqetm1.js +1 -0
- package/assets/gherkin-heZmZLOM.js +1 -0
- package/assets/gitGraphDiagram-72cf32ee-PuJBoZww.js +70 -0
- package/assets/gitGraphDiagram-72cf32ee-i6oLazGK.js +70 -0
- package/assets/graph-CbDG5PTO.js +1 -0
- package/assets/graph-DUQ4GGpV.js +1 -0
- package/assets/groovy-D9Dt4D0W.js +1 -0
- package/assets/haskell-Cw1EW3IL.js +1 -0
- package/assets/haxe-H-WmDvRZ.js +1 -0
- package/assets/http-DBlCnlav.js +1 -0
- package/assets/idl-BEugSyMb.js +1 -0
- package/assets/index-04BPVAKr.js +1 -0
- package/assets/index-3862675e-CLvnWYyN.js +1 -0
- package/assets/index-3862675e-CxQdmW6r.js +1 -0
- package/assets/index-3K3oLjal.js +1 -0
- package/assets/index-Ayt_kr_j.js +1 -0
- package/assets/index-B0aeak-l.js +1 -0
- package/assets/index-BAeTUD9a.js +1 -0
- package/assets/index-BECtRsXJ.js +6 -0
- package/assets/index-BScFd-2h.js +4 -0
- package/assets/index-BUB5I7zd.js +1 -0
- package/assets/index-BWokxWXg.js +1 -0
- package/assets/index-BYAyLEaG.js +1 -0
- package/assets/index-BZS4gNhO.js +7 -0
- package/assets/index-Bc75bQXQ.js +2 -0
- package/assets/index-BjxNPKa3.js +1 -0
- package/assets/index-BkvYpt-1.js +1 -0
- package/assets/index-Bnb0fjWR.js +1 -0
- package/assets/index-CGq-gcht.js +12 -0
- package/assets/index-CJ7peDFP.css +1 -0
- package/assets/index-CJCAjGj3.js +2 -0
- package/assets/index-CdYUDSvm.js +1 -0
- package/assets/index-CxEkGLrr.js +686 -0
- package/assets/index-DHQdBbnC.js +3 -0
- package/assets/index-DYdelMnT.js +1 -0
- package/assets/index-Dk5t_-56.js +99 -0
- package/assets/index-DlZybecc.js +1 -0
- package/assets/index-DmWG413C.js +1 -0
- package/assets/index-DzlsyVkU.js +1 -0
- package/assets/index-EYhL1Kgt.js +1 -0
- package/assets/index-c441JIOr.js +13 -0
- package/assets/index-fqJaUvT1.js +1 -0
- package/assets/index-hGrN05cs.js +1 -0
- package/assets/index-zV_AIntM.js +2 -0
- package/assets/infoDiagram-f8f76790-BYO9kBqO.js +7 -0
- package/assets/infoDiagram-f8f76790-D_TYtc3S.js +7 -0
- package/assets/init-A0kIFD9x.js +1 -0
- package/assets/init-Gi6I4Gst.js +1 -0
- package/assets/javascript-iXu5QeM3.js +1 -0
- package/assets/journeyDiagram-49397b02-DWfiJTLK.js +139 -0
- package/assets/journeyDiagram-49397b02-Dv5EEshV.js +139 -0
- package/assets/julia-DuME0IfC.js +1 -0
- package/assets/katex-Cu_Erd72.js +261 -0
- package/assets/layout-Bc2296BZ.js +1 -0
- package/assets/layout-Dm28IvOg.js +1 -0
- package/assets/line-C3mpslQb.js +1 -0
- package/assets/line-DTTPRZLU.js +1 -0
- package/assets/linear-YwuGF1HZ.js +1 -0
- package/assets/linear-g8AgbOem.js +1 -0
- package/assets/livescript-BwQOo05w.js +1 -0
- package/assets/lua-BgMRiT3U.js +1 -0
- package/assets/main-DlDiDA_U.css +9 -0
- package/assets/main-sSl0uAQQ.js +564 -0
- package/assets/mathematica-DTrFuWx2.js +1 -0
- package/assets/mbox-CNhZ1qSd.js +1 -0
- package/assets/mermaid.core-GIkiJOrg.js +91 -0
- package/assets/mindmap-definition-fc14e90a-Chuh4Ixc.js +425 -0
- package/assets/mindmap-definition-fc14e90a-D_ZKvIES.js +425 -0
- package/assets/mirc-CjQqDB4T.js +1 -0
- package/assets/mllike-CXdrOF99.js +1 -0
- package/assets/modelica-Dc1JOy9r.js +1 -0
- package/assets/mscgen-BA5vi2Kp.js +1 -0
- package/assets/mumps-BT43cFF4.js +1 -0
- package/assets/nginx-DdIZxoE0.js +1 -0
- package/assets/nsis-LdVXkNf5.js +1 -0
- package/assets/ntriples-BfvgReVJ.js +1 -0
- package/assets/octave-Ck1zUtKM.js +1 -0
- package/assets/ordinal-BRr1uYdk.js +1 -0
- package/assets/ordinal-Cboi1Yqb.js +1 -0
- package/assets/oz-BzwKVEFT.js +1 -0
- package/assets/pascal--L3eBynH.js +1 -0
- package/assets/path-CY0bYimO.js +1 -0
- package/assets/path-CbwjOpE9.js +1 -0
- package/assets/perl-CdXCOZ3F.js +1 -0
- package/assets/photo-wall-splitter-CY0T_wNE.js +1 -0
- package/assets/pieDiagram-8a3498a8-DRsICc_f.js +35 -0
- package/assets/pieDiagram-8a3498a8-Dah8ahbr.js +35 -0
- package/assets/pig-CevX1Tat.js +1 -0
- package/assets/powershell-CFHJl5sT.js +1 -0
- package/assets/properties-C78fOPTZ.js +1 -0
- package/assets/protobuf-ChK-085T.js +1 -0
- package/assets/pug-DeIclll2.js +1 -0
- package/assets/puppet-DMA9R1ak.js +1 -0
- package/assets/python-BuPzkPfP.js +1 -0
- package/assets/q-pXgVlZs6.js +1 -0
- package/assets/quadrantDiagram-120e2f19-Fh6InPVY.js +7 -0
- package/assets/quadrantDiagram-120e2f19-gL-_zV58.js +7 -0
- package/assets/r-B6wPVr8A.js +1 -0
- package/assets/requirementDiagram-deff3bca-CNSkJJCh.js +52 -0
- package/assets/requirementDiagram-deff3bca-CfDffyTL.js +52 -0
- package/assets/rpm-CTu-6PCP.js +1 -0
- package/assets/ruby-B2Rjki9n.js +1 -0
- package/assets/sankeyDiagram-04a897e0-Bk-KjkRU.js +8 -0
- package/assets/sankeyDiagram-04a897e0-JvhHugQc.js +8 -0
- package/assets/sas-B4kiWyti.js +1 -0
- package/assets/scheme-C41bIUwD.js +1 -0
- package/assets/sequenceDiagram-704730f1-DtYYZkJD.js +122 -0
- package/assets/sequenceDiagram-704730f1-Hcr6n9p8.js +122 -0
- package/assets/shell-CjFT_Tl9.js +1 -0
- package/assets/sieve-C3Gn_uJK.js +1 -0
- package/assets/simple-mode-GW_nhZxv.js +1 -0
- package/assets/smalltalk-CnHTOXQT.js +1 -0
- package/assets/solr-DehyRSwq.js +1 -0
- package/assets/sparql-DkYu6x3z.js +1 -0
- package/assets/spreadsheet-BCZA_wO0.js +1 -0
- package/assets/sql-D0XecflT.js +1 -0
- package/assets/stateDiagram-587899a1-BBe_EhAD.js +1 -0
- package/assets/stateDiagram-587899a1-DqdI8yJY.js +1 -0
- package/assets/stateDiagram-v2-d93cdb3a-BFy9jG1p.js +1 -0
- package/assets/stateDiagram-v2-d93cdb3a-CR8nQq3k.js +1 -0
- package/assets/stex-C3f8Ysf7.js +1 -0
- package/assets/styles-6aaf32cf-B3jetBAL.js +207 -0
- package/assets/styles-6aaf32cf-CtTk65AO.js +207 -0
- package/assets/styles-9a916d00-BzAmphe7.js +160 -0
- package/assets/styles-9a916d00-CC9GaYxg.js +160 -0
- package/assets/styles-c10674c1-CNAwL7Ic.js +116 -0
- package/assets/styles-c10674c1-Db2Kd6RJ.js +116 -0
- package/assets/stylus-B533Al4x.js +1 -0
- package/assets/svgDrawCommon-08f97a94-C5qlB1eZ.js +1 -0
- package/assets/svgDrawCommon-08f97a94-JdKl-BWQ.js +1 -0
- package/assets/swift-BzpIVaGY.js +1 -0
- package/assets/tcl-DVfN8rqt.js +1 -0
- package/assets/textile-CnDTJFAw.js +1 -0
- package/assets/tiddlywiki-DO-Gjzrf.js +1 -0
- package/assets/tiki-DGYXhP31.js +1 -0
- package/assets/timeline-definition-85554ec2-DOdYNzv7.js +61 -0
- package/assets/timeline-definition-85554ec2-o-R8VXA5.js +61 -0
- package/assets/toml-Bm5Em-hy.js +1 -0
- package/assets/tool-windows-Cuh0TRgJ.css +1 -0
- package/assets/tool-windows-DWUG3k_L.js +2846 -0
- package/assets/troff-wAsdV37c.js +1 -0
- package/assets/ttcn-CfJYG6tj.js +1 -0
- package/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- package/assets/ttd-dialog-BQiy0hwR.js +99 -0
- package/assets/ttd-dialog-BlUvpMr5.css +1 -0
- package/assets/turtle-B1tBg_DP.js +1 -0
- package/assets/useCharacters-BJLEgDAP.css +1 -0
- package/assets/useCharacters-BxKzeyv4.js +6 -0
- package/assets/vb-CmGdzxic.js +1 -0
- package/assets/vbscript-BuJXcnF6.js +1 -0
- package/assets/velocity-D8B20fx6.js +1 -0
- package/assets/verilog-C6RDOZhf.js +1 -0
- package/assets/version-update-prompt-HA-CqLZW.js +1 -0
- package/assets/version-update-prompt-P9Rd5ve2.css +1 -0
- package/assets/vhdl-lSbBsy5d.js +1 -0
- package/assets/video-recovery-service-C0PZsfFC.js +1 -0
- package/assets/web-vitals-DcvjKPr-.js +1 -0
- package/assets/webidl-ZXfAyPTL.js +1 -0
- package/assets/winbox.bundle.min-CoRPjCs5.js +1 -0
- package/assets/workflow-generation-utils-DspPdLxa.js +3 -0
- package/assets/xlsx-CkFp8p6R.js +105 -0
- package/assets/xquery-DzFWVndE.js +1 -0
- package/assets/xychartDiagram-e933f94c-D13oeSTj.js +7 -0
- package/assets/xychartDiagram-e933f94c-DwikDAhJ.js +7 -0
- package/assets/yacas-BJ4BC0dw.js +1 -0
- package/assets/z80-Hz9HOZM7.js +1 -0
- package/idle-prefetch-manifest.json +18 -4
- package/package.json +1 -1
- package/precache-manifest.json +1015 -3
- package/sw.js +1 -1
- package/version.json +2 -2
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import{nI as hs,nJ as bs,nK as xs,nL as ys,y as a,aI as js,nM as ws,ia as Ee,nu as Ta,nN as ks,nO as Es,iI as rs,nP as Vs,r,hL as Le,nn as le,eK as ue,eP as Ds,eO as he,gK as Ie,im as Ya,nQ as Ps,no as Fe,hS as He,ns as $a,n4 as ts,n7 as ns,n9 as is,ni as ya,nj as ja,na as Ss,nb as _s,nd as Us,nz as wa,nA as qs,nB as Is,nC as Cs,bL as Ms,nD as ka,al as Xe,nE as As,cX as oa,nF as Ea,nG as Va,gp as Da,gv as Ts,bV as Oe,kZ as $s,nR as Gs,nS as zs,ir as Ja,as as Pa,bx as Za,m$ as ca,n0 as Os,n1 as Rs,mq as Ls,fW as Fs}from"./tool-windows-DWUG3k_L.js";import{e as Hs}from"./MusicAnalyzer-DE_rzhdo.js";import{j as Be,D as Xa,A as Qa,d as os}from"./main-sSl0uAQQ.js";/* empty css */import{R as Bs}from"./ResizableDivider-CNJfwuMZ.js";import{r as Ks,a as Ws,b as la,w as Sa,d as Ys,f as Js}from"./workflow-generation-utils-DspPdLxa.js";/* empty css *//* empty css */const pa="mv-creator:records",Zs=50;async function fa(){return hs(pa)}async function Xs(e){return bs(pa,e,Zs)}async function Q(e,n){return xs(pa,e,n)}async function Qs(e){return ys(pa,e)}const es=[{id:"analyze",label:"分析"},{id:"script",label:"脚本"},{id:"generate",label:"生成"}],er=({current:e,onNavigate:n,hasRecord:m,hasShots:N})=>{const u=es.findIndex(p=>p.id===e);return a.jsxDEV("div",{className:"va-step-bar",children:es.map((p,y)=>{const P=p.id===e,S=y<u,k=!m&&y>0||(p.id==="script"||p.id==="generate")&&!N;return a.jsxDEV(js.Fragment,{children:[y>0&&a.jsxDEV("span",{className:"va-step-arrow",children:"→"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/components/StepBar.tsx",lineNumber:36,columnNumber:27},void 0),a.jsxDEV("button",{className:`va-step ${P?"active":""} ${S?"past":""}`,onClick:()=>!k&&n(p.id),disabled:k,children:[a.jsxDEV("span",{className:"va-step-num",children:y+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/components/StepBar.tsx",lineNumber:42,columnNumber:15},void 0),p.label]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/components/StepBar.tsx",lineNumber:37,columnNumber:13},void 0)]},p.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/components/StepBar.tsx",lineNumber:35,columnNumber:11},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/components/StepBar.tsx",lineNumber:27,columnNumber:5},void 0)},ar=10;function cs(e,n,m){return{id:rs(),createdAt:Date.now(),label:n,prompt:m,shots:structuredClone(e)}}function ls(e,n){return Vs(e,"storyboardVersions",n,ar,{editedShots:n.shots})}const ma=ws;function sr(e,n){return Es(e,"storyboardVersions",n,{getVersionPatch:m=>({editedShots:m.shots}),getOriginalPatch:m=>{var u;const N=(u=m.storyboardVersions)==null?void 0:u[m.storyboardVersions.length-1];return N?{editedShots:[...N.shots]}:null},originalVersionId:ma})}function Me(e,n){return ks(e,"storyboardVersions",n)}function us(e,n=e.editedShots||[]){var P,S,k;const m=e.selectedClipDuration||n.reduce((v,f)=>Math.max(v,f.endTime||0),0),N=(P=e.musicStyleTags)==null?void 0:P.filter(Boolean).join(", "),u=e.characters||[],p=["# 爆款MV脚本","",`**创意描述:** ${e.creationPrompt||"-"}`,`**音乐标题:** ${e.musicTitle||"-"}`,`**音乐风格:** ${N||"-"}`,`**时长:** ${m||0}s`,`**画面比例:** ${e.aspectRatio||"16x9"}`,`**视频风格:** ${e.videoStyle||"-"}`];(S=e.musicLyrics)!=null&&S.trim()&&p.push("","## 歌词","",e.musicLyrics.trim()),(k=e.rewritePrompt)!=null&&k.trim()&&p.push("","## 改编提示词","",e.rewritePrompt.trim()),u.length>0&&(p.push("","## 角色设定",""),u.forEach((v,f)=>{p.push(`### ${f+1}. ${v.name||v.id}`),p.push(`- ID:${v.id}`),p.push(`- 外观提示词:${v.description||"-"}`),v.referenceImageUrl&&p.push(`- 参考图:${v.referenceImageUrl}`),p.push("")}));const y=n.map((v,f)=>{var _;return[`### ${f+1}. ${v.label||`镜头 ${f+1}`} (${v.startTime}s-${v.endTime}s)`,"",`**画面描述:** ${v.description||"-"}`,"",`**旁白:** ${v.narration||"-"}`,v.dialogue?`
|
|
2
|
+
**角色对白:** ${v.dialogue}`:"",v.dialogue_speakers?`
|
|
3
|
+
**对白角色:** ${v.dialogue_speakers}`:"",v.speech_relation?`
|
|
4
|
+
**语音关系:** ${v.speech_relation}`:"",v.camera_movement?`
|
|
5
|
+
**运镜:** ${v.camera_movement}`:"",v.first_frame_prompt?`
|
|
6
|
+
**首帧 Prompt:** ${v.first_frame_prompt}`:"",v.last_frame_prompt?`
|
|
7
|
+
**尾帧 Prompt:** ${v.last_frame_prompt}`:"",v.transition_hint?`
|
|
8
|
+
**转场:** ${v.transition_hint}`:"",(_=v.character_ids)!=null&&_.length?`
|
|
9
|
+
**角色:** ${v.character_ids.join(", ")}`:""].filter(Boolean).join(`
|
|
10
|
+
`)});return`${p.join(`
|
|
11
|
+
`)}
|
|
12
|
+
|
|
13
|
+
## 分镜
|
|
14
|
+
|
|
15
|
+
${y.join(`
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
`)}`}function rr(e){const{creationPrompt:n,musicTitle:m,musicStyleTags:N,musicLyrics:u,clipDuration:p,videoModel:y,segmentDuration:P,aspectRatio:S,videoStyle:k,hasAudio:v}=e,f=Ee(y),q=P||parseInt(f.defaultDuration,10)||8,_=[{label:`${q}秒`,value:String(q)}],O=Ta(p,_),{segments:d,actualTotal:b,isFixed:z,overflow:A}=O,D=d.length,I=z?`视频模型(${y})为固定时长模型,每段固定 ${d[0]} 秒。实际总时长:${b} 秒(${D} 段)${A>0?`,比音乐时长 ${p} 秒多出 ${A} 秒`:""}。`:`分段方案:${d.map((F,T)=>`第${T+1}段 ${F}s`).join("、")},实际总时长 ${b} 秒。`,w=[m?`- 标题:${m}`:"",N!=null&&N.length?`- 风格标签:${N.join(", ")}`:"",`- 时长:${p}秒`,u?`- 歌词:
|
|
20
|
+
${u}`:""].filter(Boolean).join(`
|
|
21
|
+
`),G=v?`
|
|
22
|
+
⚠️ 重要:本次请求附带了音频文件。你必须先完整听完这段音乐,基于你听到的实际节奏、节拍、情绪变化来编排分镜,而不是仅凭歌词文本猜测。
|
|
23
|
+
|
|
24
|
+
第一步:音频分析(必须基于你听到的音乐)
|
|
25
|
+
- 听完整段音乐,标记关键时间节点:前奏结束时间、主歌开始/结束、副歌开始/结束、间奏、尾奏等
|
|
26
|
+
- 识别节拍变化:哪里节奏加快、哪里放缓、哪里有停顿或重音
|
|
27
|
+
- 识别情绪曲线:铺垫→推进→高潮→回落的精确时间点
|
|
28
|
+
- 如果有歌词,标注每句歌词对应的实际演唱时间`:`
|
|
29
|
+
第一步:歌词结构分析
|
|
30
|
+
- 将歌词按段落划分(Intro/Verse/Pre-Chorus/Chorus/Bridge/Outro 等)
|
|
31
|
+
- 估算每个段落在 ${p} 秒音乐中的大致时间位置
|
|
32
|
+
- 识别情绪曲线:哪里是铺垫、哪里是高潮、哪里是收尾`;return`你是一个专业的 MV 分镜导演。请根据音乐和创意描述,规划一组视频分镜脚本。
|
|
33
|
+
|
|
34
|
+
音乐信息:
|
|
35
|
+
${w}
|
|
36
|
+
|
|
37
|
+
创意描述:
|
|
38
|
+
${n}
|
|
39
|
+
|
|
40
|
+
视频生成约束:
|
|
41
|
+
- 视频模型:${y}
|
|
42
|
+
- ${I}
|
|
43
|
+
- 需要 ${D} 个视频片段
|
|
44
|
+
- 画面比例:${S||"16x9"}
|
|
45
|
+
${k?`- 画面风格:${k}`:""}
|
|
46
|
+
|
|
47
|
+
角色提取要求(极其重要!):
|
|
48
|
+
1. 分析创意描述中涉及的角色(人物、动物等有外貌特征的主体),无角色则 characters 为空数组
|
|
49
|
+
2. 为每个角色生成:id("char_1", "char_2"...)、name(展示名)、description(英文外貌描述,包含发型、服装、体型、肤色等,可直接用于文生图)
|
|
50
|
+
3. 每个镜头标注 character_ids(该镜头涉及的角色 ID 列表,无角色则为空数组)
|
|
51
|
+
4. first_frame_prompt 和 last_frame_prompt 中若有角色,必须包含对应角色的完整外貌描述
|
|
52
|
+
|
|
53
|
+
分镜规划步骤(请严格按顺序执行):
|
|
54
|
+
${G}
|
|
55
|
+
|
|
56
|
+
第二步:时间轴对齐
|
|
57
|
+
- 将 ${D} 个视频片段(${d.map((F,T)=>`第${T+1}段=${F}s`).join("、")})映射到音乐时间轴上
|
|
58
|
+
- 每个镜头的切换点必须对齐音乐的节奏变化点(段落切换、节拍重音、情绪转折)
|
|
59
|
+
- 不允许镜头内容与音乐时间错位(例如:副歌在 30s 开始,对应镜头不能放在 10s)
|
|
60
|
+
|
|
61
|
+
第三步:逐镜头编排
|
|
62
|
+
- 每个镜头的 description 必须体现该时间段音乐的情感和节奏
|
|
63
|
+
- 前奏/无歌词段:氛围铺垫(环境、光影、空镜),节奏跟随音乐律动
|
|
64
|
+
- 主歌段:叙事性画面,运镜节奏匹配音乐节拍
|
|
65
|
+
- 副歌段:情绪爆发,运镜更强烈,色彩更饱满,剪辑节奏加快
|
|
66
|
+
- 间奏段:转折或留白,可用特写或抽象画面
|
|
67
|
+
- 尾奏段:情绪回落,运镜放缓,呼应开场
|
|
68
|
+
|
|
69
|
+
分镜格式要求:
|
|
70
|
+
1. 每个镜头的 duration 必须等于对应段的时长:${d.map((F,T)=>`第${T+1}段=${F}s`).join("、")}
|
|
71
|
+
2. startTime 从 0 开始,每个镜头的 startTime = 上一个镜头的 endTime
|
|
72
|
+
3. 镜头之间要有视觉连贯性(共同视觉元素、运镜方向延续、色调一致)
|
|
73
|
+
4. 所有字段使用与创意描述相同的语言
|
|
74
|
+
|
|
75
|
+
每个镜头输出字段:
|
|
76
|
+
- id: 镜头ID(如 "shot_1")
|
|
77
|
+
- startTime: 开始时间(秒)
|
|
78
|
+
- endTime: 结束时间(秒)
|
|
79
|
+
- duration: 时长(秒)
|
|
80
|
+
- label: 镜头标签(如"前奏 0:00-0:08"、"主歌A 0:08-0:16"),标注时间范围和对应歌词片段
|
|
81
|
+
- type: 镜头类型(opening/scene/detail/cta/other)
|
|
82
|
+
- description: 画面描述(详细描述场景、人物、动作、光线、色调,必须与该时间段的音乐节奏和歌词内容呼应)
|
|
83
|
+
- narration: 旁白(MV 通常为空字符串)
|
|
84
|
+
- camera_movement: 运镜方式(必须匹配该段音乐的节奏感)
|
|
85
|
+
- first_frame_prompt: 首帧图片提示词(精确描述主体位置、动作起始状态、构图、光线与背景;若该镜头有角色,必须包含对应角色的完整外貌描述)
|
|
86
|
+
- last_frame_prompt: 尾帧图片提示词(精确描述主体位置、动作定格状态、构图、光线与背景;若该镜头有角色,必须包含对应角色的完整外貌描述)
|
|
87
|
+
- transition_hint: 转场方式(cut/dissolve/match_cut/fade_to_black)
|
|
88
|
+
- character_ids: 该镜头涉及的角色 ID 列表(无角色则为空数组 [])
|
|
89
|
+
|
|
90
|
+
返回 JSON 对象(不要 markdown 格式),格式如下:
|
|
91
|
+
{
|
|
92
|
+
"characters": [
|
|
93
|
+
{ "id": "char_1", "name": "角色名", "description": "English appearance description for text-to-image" }
|
|
94
|
+
],
|
|
95
|
+
"shots": [ ...镜头数组... ]
|
|
96
|
+
}`}function tr(e){var F;const{record:n,currentShots:m,rewritePrompt:N,videoModel:u,segmentDuration:p,videoStyle:y}=e,P=n.selectedClipDuration||30,S=n.characters||[],k=S.length>0,v=Ee(u),f=p||parseInt(v.defaultDuration,10)||8,q=[{label:`${f}秒`,value:String(f)}],_=Ta(P,q),{segments:O,actualTotal:d,isFixed:b,overflow:z}=_,A=O.length,D=b?`视频模型(${u})为固定时长模型,每段固定 ${O[0]} 秒。实际总时长:${d} 秒(${A} 段)${z>0?`,比音乐时长 ${P} 秒多出 ${z} 秒`:""}。`:`分段方案:${O.map((T,X)=>`第${X+1}段 ${T}s`).join("、")},实际总时长 ${d} 秒。`,I=[n.musicTitle?`- 标题:${n.musicTitle}`:"",(F=n.musicStyleTags)!=null&&F.length?`- 风格标签:${n.musicStyleTags.join(", ")}`:"",`- 时长:${P}秒`,n.musicLyrics?`- 歌词:
|
|
97
|
+
${n.musicLyrics}`:""].filter(Boolean).join(`
|
|
98
|
+
`),w=JSON.stringify(m.map(T=>({id:T.id,label:T.label,type:T.type,startTime:T.startTime,endTime:T.endTime,duration:T.duration,description:T.description,narration:T.narration||"",first_frame_prompt:T.first_frame_prompt,last_frame_prompt:T.last_frame_prompt,camera_movement:T.camera_movement,character_ids:T.character_ids||[]}))),G=y||n.videoStyle||"";return`你是一个专业的 MV 脚本改编专家。请基于以下 MV 分镜脚本,根据用户提示词进行改编。
|
|
99
|
+
|
|
100
|
+
音乐信息:
|
|
101
|
+
${I}
|
|
102
|
+
|
|
103
|
+
创意描述:
|
|
104
|
+
${n.creationPrompt||""}
|
|
105
|
+
${G?`
|
|
106
|
+
画面风格:${G}`:""}
|
|
107
|
+
${k?`
|
|
108
|
+
当前角色信息:
|
|
109
|
+
${S.map(T=>`- ${T.id}(${T.name}):${T.description}`).join(`
|
|
110
|
+
`)}
|
|
111
|
+
`:""}
|
|
112
|
+
当前分镜脚本:
|
|
113
|
+
${w}
|
|
114
|
+
${N?`
|
|
115
|
+
用户改编提示词:
|
|
116
|
+
${N}`:""}
|
|
117
|
+
|
|
118
|
+
视频生成约束:
|
|
119
|
+
- 视频模型:${u}
|
|
120
|
+
- ${D}
|
|
121
|
+
- 需要 ${A} 个视频片段
|
|
122
|
+
|
|
123
|
+
改编要求(所有字段必须使用与用户提示词相同的语言):
|
|
124
|
+
1. description(画面描述):根据用户提示词改编画面内容,必须与该时间段的音乐节奏和歌词内容呼应${G?`,画面风格统一为"${G}"`:""}
|
|
125
|
+
2. narration(旁白):MV 通常为空字符串
|
|
126
|
+
3. first_frame_prompt(首帧图片提示词):精确描述主体位置、动作起始状态、构图、光线与背景${k?";若该镜头有角色,必须包含对应角色的完整外貌描述":""}
|
|
127
|
+
4. last_frame_prompt(尾帧图片提示词):精确描述主体位置、动作定格状态、构图、光线与背景${k?";若该镜头有角色,必须包含对应角色的完整外貌描述":""}
|
|
128
|
+
5. camera_movement(运镜方式):根据新内容和音乐节奏适当调整
|
|
129
|
+
6. character_ids(角色 ID 列表):保留或调整角色出场
|
|
130
|
+
|
|
131
|
+
角色调整规则(极其重要!):
|
|
132
|
+
- 如果用户提示词要求修改角色(如更换性别、年龄、外貌、服装等),必须在 characters 数组中更新对应角色的 description
|
|
133
|
+
- 如果用户提示词要求新增角色,在 characters 数组中添加新角色(id 格式 "char_N")
|
|
134
|
+
- 如果用户提示词要求删除角色,从 characters 数组中移除,并清理相关镜头的 character_ids
|
|
135
|
+
- 角色的 description 必须是英文外貌描述,可直接用于文生图
|
|
136
|
+
|
|
137
|
+
拼接衔接要求:
|
|
138
|
+
1. 相邻镜头之间必须有共同的视觉元素,确保画面连贯
|
|
139
|
+
2. 运镜方向延续,不能突然反向
|
|
140
|
+
3. 所有镜头统一色调和光线风格
|
|
141
|
+
4. 动作连贯,上一镜头结尾动作延续到下一镜头开头
|
|
142
|
+
|
|
143
|
+
返回 JSON 对象(不要 markdown 格式),格式如下:
|
|
144
|
+
{
|
|
145
|
+
"characters": [
|
|
146
|
+
{ "id": "char_1", "name": "角色名", "description": "English appearance description for text-to-image" }
|
|
147
|
+
],
|
|
148
|
+
"shots": [ ...镜头数组,每个元素包含 id、startTime、endTime、duration、description、narration、first_frame_prompt、last_frame_prompt、camera_movement、label、type、transition_hint、character_ids 字段... ]
|
|
149
|
+
}`}const Ma="mv-creator:creation-prompt",_a="mv-creator:video-model",Ua="mv-creator:storyboard-model",as="gemini-2.5-pro";function nr(){try{return sessionStorage.getItem(Ma)||""}catch{return""}}function ir(e){try{e?sessionStorage.setItem(Ma,e):sessionStorage.removeItem(Ma)}catch{}}const or=({existingRecord:e,onComplete:n,onRecordsChange:m,onNext:N})=>{const[u,p]=r.useState(()=>(e==null?void 0:e.creationPrompt)||nr()),[y,P]=r.useState((e==null?void 0:e.selectedClipId)||null),[S,k]=r.useState(!1),v=Le("video"),[f,q]=r.useState(()=>(e==null?void 0:e.videoModel)||le(_a,"veo3").modelId),[_,O]=r.useState(()=>(e==null?void 0:e.videoModelRef)||le(_a,"veo3").modelRef),d=r.useMemo(()=>Ee(f),[f]),[b,z]=r.useState(()=>(e==null?void 0:e.segmentDuration)||parseInt(d.defaultDuration,10)||8),A=r.useMemo(()=>(d.durationOptions||[]).map(t=>({value:parseInt(t.value,10),label:t.label})),[d]),D=Le("text"),I=r.useMemo(()=>D.filter(t=>/^gemini/i.test(t.id)),[D]),[w,G]=r.useState(()=>le(Ua,as).modelId),[F,T]=r.useState(()=>le(Ua,as).modelRef),[X,Se]=r.useState(!1),[ee,ne]=r.useState(""),W=r.useRef(!1);r.useEffect(()=>{e&&(p(e.creationPrompt||""),P(e.selectedClipId||null))},[e]);const ie=(e==null?void 0:e.editedShots)||[];r.useEffect(()=>{ie.length>0&&k(!0)},[ie.length]),r.useEffect(()=>{e||ir(u)},[u,e]),r.useEffect(()=>{var J;const t=e==null?void 0:e.pendingStoryboardTaskId;if(!t){ne("");return}const x=ue.getTask(t);if((x==null?void 0:x.status)==="failed"){ne(`分镜生成失败: ${((J=x.error)==null?void 0:J.message)||"未知错误"}`);return}if((x==null?void 0:x.status)==="completed"){ne("");return}const Y=ue.observeTaskUpdates().subscribe(re=>{var te;re.task.id===t&&(re.task.status==="failed"?ne(`分镜生成失败: ${((te=re.task.error)==null?void 0:te.message)||"未知错误"}`):re.task.status==="completed"&&ne(""))});return()=>Y.unsubscribe()},[e==null?void 0:e.pendingStoryboardTaskId]);const[ae,be]=r.useState([]);r.useEffect(()=>{let t=!1;return Ds.getAllTasks({type:Ie.AUDIO,status:he.COMPLETED,includeArchived:!0}).then(x=>{if(t)return;const Y=[];for(const J of x){const re=Hs(J);for(const te of re)Y.push({...te,prompt:String(J.params.prompt||"")})}be(Y)}).catch(()=>{}),()=>{t=!0}},[]);const R=r.useMemo(()=>{var t;return y&&(((t=e==null?void 0:e.generatedClips)==null?void 0:t.find(x=>x.clipId===y))||ae.find(x=>x.clipId===y))||null},[y,e==null?void 0:e.generatedClips,ae]),de=(e==null?void 0:e.selectedClipDuration)||(R==null?void 0:R.duration)||30,Ve=r.useCallback(()=>{const t=Ya.getPrimaryToolState("mv-creator"),x=t==null?void 0:t.position,Y=x?{x:x.x+((t==null?void 0:t.tool.defaultWidth)||520)+16,y:x.y}:void 0;Ya.openTool(Ps.manifest,{launchMode:"reuse",position:Y})},[]),Ke=r.useCallback(async t=>{var Y;t.prompt&&!u.trim()&&p(t.prompt);let x=e||null;if(x){const J=x.generatedClips||[],Ue={generatedClips:J.some(Ce=>Ce.clipId===t.clipId)?J:[...J,t],selectedClipId:t.clipId,selectedClipDuration:t.duration??null,selectedClipAudioUrl:t.audioUrl,musicTitle:x.musicTitle||t.title||""},Ae=await Q(x.id,Ue);m(Ae),n({...x,...Ue})}else{const J=t.title||((Y=t.prompt)==null?void 0:Y.slice(0,20))||"已有音频";x={id:rs(),createdAt:Date.now(),creationPrompt:u.trim()||t.prompt||"",sourceLabel:J,starred:!1,musicTitle:t.title||"",generatedClips:[t],selectedClipId:t.clipId,selectedClipDuration:t.duration??null,selectedClipAudioUrl:t.audioUrl};const re=await Xs(x);m(re),n(x)}P(t.clipId)},[e,u,n,m]),xe=r.useCallback((t,x)=>{q(t),O(x||null),Fe(_a,t,x);const Y=Ee(t);z(parseInt(Y.defaultDuration,10)||8)},[]),De=r.useCallback((t,x)=>{G(t),T(x||null),Fe(Ua,t,x)},[]),_e=r.useCallback(async()=>{if(!(W.current||!e)){W.current=!0,Se(!0),ne("");try{const t=rr({creationPrompt:u||e.creationPrompt,musicTitle:e.musicTitle,musicStyleTags:e.musicStyleTags,musicLyrics:e.musicLyrics,clipDuration:de,videoModel:f,segmentDuration:b,hasAudio:!!(R!=null&&R.audioUrl)}),Y={pendingStoryboardTaskId:ue.createTask({prompt:t,model:w,modelRef:F,mvCreatorAction:"storyboard",mvCreatorRecordId:e.id,audioCacheUrl:R==null?void 0:R.audioUrl},Ie.CHAT).id,creationPrompt:u||e.creationPrompt,videoModel:f,videoModelRef:_,segmentDuration:b},J=await Q(e.id,Y);m(J),n({...e,...Y}),ne("分镜规划任务已提交,等待 AI 生成...")}catch(t){ne(t.message||"提交失败")}finally{Se(!1),W.current=!1}}},[e,u,de,f,_,b,w,F,R,n,m]);return a.jsxDEV("div",{className:"va-page",children:[ie.length>0&&a.jsxDEV("button",{className:"va-collapse-toggle",onClick:()=>k(t=>!t),children:S?"▶ 展开配置":"▼ 收起配置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:284,columnNumber:9},void 0),!S&&a.jsxDEV(a.Fragment,{children:[a.jsxDEV("div",{className:"ma-card ma-card--grow",children:[a.jsxDEV("div",{className:"ma-card-header",children:[a.jsxDEV("span",{children:["选择配乐 (",ae.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:297,columnNumber:15},void 0),a.jsxDEV("button",{className:"ma-chip ma-chip--accent",style:{cursor:"pointer",fontSize:"11px",padding:"2px 8px"},onClick:Ve,children:"+ 生成新音乐"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:298,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:296,columnNumber:13},void 0),ae.length===0?a.jsxDEV("div",{className:"ma-hint",children:["暂无已完成的音频,",a.jsxDEV("button",{onClick:Ve,style:{background:"none",border:"none",color:"#E67E22",cursor:"pointer",textDecoration:"underline",padding:0,font:"inherit"},children:"去生成音乐"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:309,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:307,columnNumber:15},void 0):a.jsxDEV("div",{className:"ma-clips-gallery",children:ae.map((t,x)=>{var Y;return a.jsxDEV("div",{className:`ma-clip-row ${y===t.clipId?"is-selected":""}`,onClick:()=>Ke(t),style:{cursor:"pointer"},children:[t.imageUrl?a.jsxDEV("img",{src:t.imageUrl,alt:"",className:"ma-clip-thumb",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:330,columnNumber:23},void 0):a.jsxDEV("div",{className:"ma-clip-thumb ma-clip-thumb--placeholder",children:"♪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:332,columnNumber:23},void 0),a.jsxDEV("div",{className:"ma-clip-meta",children:[a.jsxDEV("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[a.jsxDEV("span",{className:"ma-clip-title",children:t.title||((Y=t.prompt)==null?void 0:Y.slice(0,30))||t.clipId},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:336,columnNumber:25},void 0),y===t.clipId&&a.jsxDEV("span",{className:"ma-chip ma-chip--accent",style:{flexShrink:0,padding:"0 4px",fontSize:"10px",height:"16px",lineHeight:"14px"},children:"已选"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:338,columnNumber:27},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:335,columnNumber:23},void 0),t.duration!=null&&a.jsxDEV("span",{className:"ma-clip-duration",children:[Math.round(t.duration),"s"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:342,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:334,columnNumber:21},void 0),a.jsxDEV("audio",{controls:!0,src:t.audioUrl,preload:"metadata",className:"ma-clip-player",onClick:J=>J.stopPropagation()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:345,columnNumber:21},void 0)]},`${t.clipId||x}`,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:323,columnNumber:19},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:321,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:295,columnNumber:11},void 0),a.jsxDEV("div",{className:"ma-card",children:[a.jsxDEV("div",{className:"ma-card-header",children:a.jsxDEV("span",{children:"MV 创意描述"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:354,columnNumber:45},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:354,columnNumber:13},void 0),a.jsxDEV("textarea",{className:"ma-textarea",rows:2,placeholder:"描述你想要的 MV 主题、风格、情绪、画面...",value:u,onChange:t=>p(t.target.value)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:355,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:353,columnNumber:11},void 0),y&&a.jsxDEV("div",{className:"ma-card",children:[a.jsxDEV("div",{className:"ma-card-header",children:a.jsxDEV("span",{children:"视频参数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:367,columnNumber:47},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:367,columnNumber:15},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:369,columnNumber:17},void 0),a.jsxDEV(He,{models:v,selectedModel:f,selectedSelectionKey:Be(f,_),onSelect:(t,x)=>xe(t,x),variant:"form",placement:"down"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:370,columnNumber:17},void 0),a.jsxDEV("div",{className:"va-segment-duration-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"单段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:379,columnNumber:19},void 0),a.jsxDEV("select",{className:"va-form-select",value:String(b),onChange:t=>z(parseInt(t.target.value,10)),disabled:A.length<=1,children:A.map(t=>a.jsxDEV("option",{value:t.value,children:t.label},t.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:387,columnNumber:23},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:380,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:378,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:368,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:366,columnNumber:13},void 0),y&&a.jsxDEV("div",{className:"ma-card",children:[a.jsxDEV("div",{className:"ma-card-header",children:a.jsxDEV("span",{children:"AI 分镜模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:398,columnNumber:47},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:398,columnNumber:15},void 0),a.jsxDEV(He,{models:I,selectedModel:w,selectedSelectionKey:Be(w,F),onSelect:(t,x)=>De(t,x),variant:"form",placement:"down"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:399,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:397,columnNumber:13},void 0),ee&&a.jsxDEV("div",{className:"ma-progress",children:ee},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:410,columnNumber:23},void 0),y&&a.jsxDEV("div",{className:"va-page-actions",children:a.jsxDEV("button",{className:"va-btn-primary",onClick:_e,disabled:X||!e,children:X?"提交中...":ie.length>0?"重新生成分镜":"AI 生成分镜"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:415,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:414,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:293,columnNumber:9},void 0),ie.length>0&&a.jsxDEV(a.Fragment,{children:[R&&S&&a.jsxDEV("div",{className:"ma-card",children:a.jsxDEV("div",{className:"ma-clip-row is-selected",children:[R.imageUrl?a.jsxDEV("img",{src:R.imageUrl,alt:"",className:"ma-clip-thumb",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:436,columnNumber:19},void 0):a.jsxDEV("div",{className:"ma-clip-thumb ma-clip-thumb--placeholder",children:"♪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:438,columnNumber:19},void 0),a.jsxDEV("div",{className:"ma-clip-meta",children:[a.jsxDEV("span",{className:"ma-clip-title",children:R.title||R.clipId},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:441,columnNumber:19},void 0),a.jsxDEV("span",{className:"ma-clip-duration",children:[Math.round(de),"s"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:442,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:440,columnNumber:17},void 0),a.jsxDEV("audio",{controls:!0,src:R.audioUrl,preload:"metadata",className:"ma-clip-player"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:444,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:434,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:433,columnNumber:13},void 0),(e==null?void 0:e.characters)&&e.characters.length>0&&a.jsxDEV("div",{className:"ma-card",children:[a.jsxDEV("div",{className:"ma-card-header",children:a.jsxDEV("span",{children:["角色(",e.characters.length," 个)"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:452,columnNumber:47},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:452,columnNumber:15},void 0),a.jsxDEV("div",{className:"va-characters",children:e.characters.map(t=>a.jsxDEV("div",{className:"va-character-item",children:a.jsxDEV("div",{className:"va-character-info",children:[a.jsxDEV("span",{className:"va-character-name",children:t.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:457,columnNumber:23},void 0),a.jsxDEV("span",{className:"va-character-desc",children:t.description},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:458,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:456,columnNumber:21},void 0)},t.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:455,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:453,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:451,columnNumber:13},void 0),a.jsxDEV("div",{className:"ma-card",children:[a.jsxDEV("div",{className:"ma-card-header",children:a.jsxDEV("span",{children:["分镜脚本(",ie.length," 个镜头)"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:468,columnNumber:45},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:468,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-shots",children:ie.map((t,x)=>a.jsxDEV($a,{shot:t,index:x,compact:!0},t.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:471,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:469,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:467,columnNumber:11},void 0),N&&a.jsxDEV("div",{className:"va-page-actions",children:a.jsxDEV("button",{className:"va-btn-primary",onClick:N,children:"下一步:编辑脚本 →"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:479,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:478,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:430,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/AnalyzePage.tsx",lineNumber:281,columnNumber:5},void 0)};function Ga(e){return Us(e,"mvCreatorAction",["storyboard","rewrite"])}function cr(e){return Ga(e)!==null}function lr(e){var k,v;let n=is(e);if(!n)throw new Error("分镜任务缺少结果内容");const m=n.match(/```(?:json)?\s*([\s\S]*?)\s*```/);m&&(n=m[1].trim());const N=n.match(/\{[\s\S]*\}/);if(N)try{const f=JSON.parse(N[0]);if(Array.isArray(f.shots)){const q=f.shots.map((O,d)=>({...O,id:O.id||`shot_${d+1}`})),_=Array.isArray(f.characters)?f.characters:[];return{shots:q,characters:_}}}catch{}const u=n.match(/\[[\s\S]*\]/);if(u)try{return{shots:JSON.parse(u[0]).map((q,_)=>({...q,id:q.id||`shot_${_+1}`})),characters:[]}}catch{}const p=[],y=[],P=/\{[^{}]*(?:\{[^{}]*\}[^{}]*)*\}/g;let S;for(;(S=P.exec(n))!==null;)try{const f=JSON.parse(S[0]);f&&typeof f=="object"&&((k=f.id)!=null&&k.startsWith("char_")&&f.name&&f.description?y.push(f):((v=f.id)!=null&&v.startsWith("shot_")||f.startTime!==void 0)&&p.push({...f,id:f.id||`shot_${p.length+1}`}))}catch{}if(p.length>0)return{shots:p,characters:y};throw new Error("响应中未找到有效 JSON(可能因输出过长被截断)")}async function ur(e){if(e.status!=="completed"||Ga(e)!=="storyboard")return null;const n=ts(e,"mvCreatorRecordId");if(!n)return null;const N=(await fa()).find(k=>k.id===n);if(!N||N.pendingStoryboardTaskId!==e.id)return null;const{shots:u,characters:p}=lr(e),y=(N.storyboardVersions||[]).length,P=cs(u,`AI 分镜 #${y+1}`,e.params.prompt),S=ls(N,P);return ns(N,{editedShots:u,pendingStoryboardTaskId:null,storyboardGeneratedAt:Date.now(),...p.length>0?{characters:p}:{},...S},Q)}async function Aa(e){if(e.status!=="completed"||Ga(e)!=="rewrite")return null;const n=ts(e,"mvCreatorRecordId");if(!n)return null;const N=(await fa()).find(f=>f.id===n);if(!N||N.pendingRewriteTaskId!==e.id)return null;const u=is(e);if(!u)return null;let p,y=null;const P=u.match(/\{[\s\S]*\}/);if(P)try{const f=JSON.parse(P[0]);if(Array.isArray(f.shots))p=f.shots.map((q,_)=>({...q,id:q.id||`shot_${_+1}`})),Array.isArray(f.characters)&&f.characters.length>0&&(y=f.characters);else{const q=ya(u),_=N.editedShots||[];p=ja(_,q)}}catch{const f=ya(u),q=N.editedShots||[];p=ja(q,f)}else{const f=ya(u),q=N.editedShots||[];p=ja(q,f)}const S=(N.storyboardVersions||[]).length,k=cs(p,`AI 改编 #${S+1}`,e.params.prompt),v=ls(N,k);return ns(N,{editedShots:p,pendingRewriteTaskId:null,storyboardGeneratedAt:Date.now(),...y?{characters:y}:{},...v},Q)}function dr(e){if(e.type!==Ie.AUDIO)return null;const n=e.params.batchId;return n?Ss(n,{prefix:"mv_",marker:"_music_"}):null}async function mr(e,n){return _s(e,n,{loadRecords:fa,updateRecord:Q})}function Re(e){e.style.height="auto",e.style.height=e.scrollHeight+"px"}function Qe(e){e&&Re(e)}function ea(e,n=30){if(!e)return 1;const m=e.split(`
|
|
150
|
+
`);let N=0;for(const u of m)N+=Math.max(1,Math.ceil(u.length/n));return Math.max(1,N)}const pr=["固定镜头 (Static)","缓慢推近 (Dolly In)","缓慢拉远 (Dolly Out)","水平平移 (Pan)","垂直摇移 (Tilt)","跟随拍摄 (Follow)","手持感 (Handheld)","环绕拍摄 (Orbit)","升降镜头 (Crane)","快速推移 (Zoom In)","快速拉远 (Zoom Out)","航拍俯冲 (Drone Dive)"],fr=[{label:"硬切 (cut)",value:"cut"},{label:"交叉溶解 (dissolve)",value:"dissolve"},{label:"匹配切 (match_cut)",value:"match_cut"},{label:"淡出到黑 (fade_to_black)",value:"fade_to_black"}],qa="mv-creator:script-model",ss="gemini-2.5-pro",gr=({record:e,onRecordUpdate:n,onRecordsChange:m,onNext:N})=>{var Ce,aa;const[u,p]=r.useState(e.editedShots||[]),[y,P]=r.useState(e.rewritePrompt||""),[S,k]=r.useState(!1),[v,f]=r.useState(""),[q,_]=r.useState(""),[O,d]=r.useState(e.pendingRewriteTaskId||null),[b,z]=r.useState(!1),A=r.useRef(null),D=r.useRef(!1),I=Le("video"),w="mv-creator:video-model",[G,F]=r.useState(()=>e.videoModel||le(w,"veo3").modelId),[T,X]=r.useState(()=>e.videoModelRef||le(w,"veo3").modelRef),Se=r.useMemo(()=>Ee(G),[G]),[ee,ne]=r.useState(()=>e.segmentDuration||parseInt(Se.defaultDuration,10)||8),W=r.useMemo(()=>(Se.durationOptions||[]).map(o=>({value:parseInt(o.value,10),label:o.label})),[Se]),ie=e.selectedClipDuration||30,ae=r.useMemo(()=>{const o=[{label:`${ee}秒`,value:String(ee)}];return Ta(ie,o)},[ie,ee]),[be,R]=r.useState(e.videoStyle||""),de=r.useCallback((o,$)=>{F(o),X($||null),Fe(w,o,$);const C=Ee(o),Z=parseInt(C.defaultDuration,10)||8;ne(Z)},[]),Ve=r.useCallback(async o=>{const $=await Q(e.id,o);m($),n({...e,...o})},[e,n,m]),Ke=r.useCallback((o,$)=>{const Z=(e.characters||[]).map(me=>me.id===o?{...me,description:$}:me);Ve({characters:Z})},[e,Ve]),xe=Le("text"),[De,_e]=r.useState(()=>le(qa,ss).modelId),[t,x]=r.useState(()=>le(qa,ss).modelRef),Y=r.useCallback((o,$)=>{_e(o),x($||null),Fe(qa,o,$)},[]),J=r.useRef();r.useEffect(()=>(clearTimeout(J.current),J.current=setTimeout(async()=>{const o=await Q(e.id,{rewritePrompt:y,videoModel:G,videoModelRef:T,segmentDuration:ee,videoStyle:be});m(o),n({...e,rewritePrompt:y,videoModel:G,videoModelRef:T,segmentDuration:ee,videoStyle:be})},500),()=>clearTimeout(J.current)),[y,G,T,ee,be]),r.useEffect(()=>{p(e.editedShots||[])},[e.editedShots]);const re=r.useCallback(async o=>{p(o);const $=Me(e,o),C=await Q(e.id,$);m(C),n({...e,...$})},[e,n,m]),te=r.useCallback((o,$,C)=>{const Z=u.map(me=>me.id===o?{...me,[$]:C}:me);re(Z)},[u,re]),Ue=r.useCallback(async()=>{if(!D.current){D.current=!0,k(!0),_("");try{const o=tr({record:e,currentShots:u,rewritePrompt:y,videoModel:G,segmentDuration:ee,videoStyle:be}),$=ue.createTask({prompt:o,model:De,modelRef:t,mvCreatorAction:"rewrite",mvCreatorRecordId:e.id},Ie.CHAT);d($.id);const C=await Q(e.id,{pendingRewriteTaskId:$.id});m(C),n({...e,pendingRewriteTaskId:$.id}),f("AI 改编中...")}catch(o){_(o.message||"提交失败")}finally{k(!1),D.current=!1}}},[e,u,y,De,t,n,m]);r.useEffect(()=>{var C;if(!O)return;const o=ue.getTask(O);if((o==null?void 0:o.status)==="failed"){d(null),f(""),_(((C=o.error)==null?void 0:C.message)||"改编失败");return}if((o==null?void 0:o.status)==="completed"){Aa(o).then(Z=>{Z&&(m(Z.records),n(Z.record),p(Z.record.editedShots||[]))}).finally(()=>{d(null),f("")});return}typeof(o==null?void 0:o.progress)=="number"&&f(`AI 改编中 ${Math.round(o.progress)}%`);const $=ue.observeTaskUpdates().subscribe(Z=>{var me;if(Z.task.id===O){if(Z.task.status==="failed"){d(null),f(""),_(((me=Z.task.error)==null?void 0:me.message)||"改编失败"),Q(e.id,{pendingRewriteTaskId:null}).then(ve=>{m(ve),n({...e,pendingRewriteTaskId:null})});return}if(Z.task.status==="completed"){Aa(Z.task).then(ve=>{ve&&(m(ve.records),n(ve.record),p(ve.record.editedShots||[]))}).catch(ve=>{_(ve.message||"改编结果同步失败")}).finally(()=>{d(null),f("")});return}typeof Z.task.progress=="number"&&f(`AI 改编中 ${Math.round(Z.task.progress)}%`)}});return()=>$.unsubscribe()},[O,e,n,m]);const Ae=r.useCallback(async o=>{const $=sr(e,o);if(!$)return;z(!1),p($.editedShots);const C=await Q(e.id,$);m(C),n({...e,...$})},[e,n,m]);return r.useEffect(()=>{if(!b)return;const o=$=>{A.current&&!A.current.contains($.target)&&z(!1)};return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[b]),a.jsxDEV("div",{className:"va-page",children:[a.jsxDEV("div",{className:"va-product-form",children:[a.jsxDEV("textarea",{ref:Qe,className:"va-form-textarea va-auto-resize",placeholder:"输入改编提示词,描述你想要的调整方向...",rows:Math.max(3,ea(y)),value:y,onChange:o=>P(o.target.value),onInput:o=>Re(o.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:317,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"改编模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:327,columnNumber:11},void 0),a.jsxDEV(He,{variant:"form",selectedModel:De,selectedSelectionKey:Be(De,t),onSelect:Y,models:xe,placement:"down",disabled:!!O,placeholder:"选择文本模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:328,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:326,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:340,columnNumber:11},void 0),a.jsxDEV(He,{variant:"form",selectedModel:G,selectedSelectionKey:Be(G,T),onSelect:de,models:I,placement:"down",disabled:!!O,placeholder:"选择视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:341,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-segment-duration-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"单段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:352,columnNumber:13},void 0),a.jsxDEV("select",{className:"va-form-select",value:String(ee),onChange:o=>ne(parseInt(o.target.value,10)),disabled:W.length<=1,children:W.map(o=>a.jsxDEV("option",{value:o.value,children:o.label},o.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:360,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:353,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:351,columnNumber:11},void 0),ae.overflow>0&&a.jsxDEV("span",{className:"va-duration-overflow",children:["实际 ",ae.actualTotal,"s(+",parseFloat(ae.overflow.toFixed(2)),"s)"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:365,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:339,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-form-row",children:a.jsxDEV("div",{style:{flex:1},children:[a.jsxDEV("label",{className:"va-edit-label",children:"画面风格"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:373,columnNumber:13},void 0),a.jsxDEV(wa,{className:"va-style-combo",value:be,onChange:R,options:Is,placeholder:qs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:374,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:372,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:371,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-version-row",children:[a.jsxDEV("button",{className:"va-analyze-btn",style:{flex:1},onClick:Ue,disabled:S||!!O,children:S||O?v||"AI 改编中...":"AI 改编脚本"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:384,columnNumber:11},void 0),e.storyboardVersions&&e.storyboardVersions.length>0&&a.jsxDEV("div",{className:"va-version-select",ref:A,children:[a.jsxDEV("button",{className:"va-version-btn",onClick:()=>z(o=>!o),children:[e.activeVersionId===ma?"原始版本":((Ce=e.storyboardVersions.find(o=>o.id===e.activeVersionId))==null?void 0:Ce.label)||`v${e.storyboardVersions.length}`," ▾"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:394,columnNumber:15},void 0),b&&a.jsxDEV("div",{className:"va-version-menu",children:[e.storyboardVersions.map(o=>a.jsxDEV("div",{className:`va-version-item ${o.id===e.activeVersionId?"active":""}`,onClick:()=>Ae(o.id),children:[a.jsxDEV("span",{children:o.label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:410,columnNumber:23},void 0),o.prompt&&a.jsxDEV("span",{className:"va-version-prompt",children:o.prompt.length>30?o.prompt.slice(0,30)+"...":o.prompt},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:411,columnNumber:36},void 0),a.jsxDEV("span",{className:"va-version-time",children:[o.shots.length," 镜头 · ",new Date(o.createdAt).toLocaleTimeString()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:412,columnNumber:23},void 0)]},o.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:405,columnNumber:21},void 0)),a.jsxDEV("div",{className:`va-version-item ${e.activeVersionId===ma||!e.activeVersionId?"active":""}`,onClick:()=>Ae(ma),children:[a.jsxDEV("span",{children:"原始版本"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:419,columnNumber:21},void 0),a.jsxDEV("span",{className:"va-version-time",children:[(((aa=e.storyboardVersions[e.storyboardVersions.length-1])==null?void 0:aa.shots)||[]).length," 镜头"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:420,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:415,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:403,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:393,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:383,columnNumber:9},void 0),q&&a.jsxDEV("div",{className:"va-error",children:q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:427,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:316,columnNumber:7},void 0),v&&!S&&a.jsxDEV("div",{className:"ma-progress",children:v},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:430,columnNumber:41},void 0),a.jsxDEV(Cs,{characters:e.characters||[],onChange:Ke},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:432,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-shots",children:u.map((o,$)=>a.jsxDEV($a,{shot:o,index:$,compact:!0,children:a.jsxDEV("div",{className:"va-edit-fields",children:[a.jsxDEV("label",{className:"va-edit-label",children:"画面描述"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:442,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Qe,className:"va-edit-textarea va-auto-resize",rows:ea(o.description),value:o.description||"",onChange:C=>te(o.id,"description",C.target.value),onInput:C=>Re(C.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:443,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"旁白"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:444,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Qe,className:"va-edit-textarea va-auto-resize",rows:ea(o.narration),value:o.narration||"",onChange:C=>te(o.id,"narration",C.target.value),onInput:C=>Re(C.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:445,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"运镜方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:446,columnNumber:15},void 0),a.jsxDEV(wa,{value:o.camera_movement||"",onChange:C=>te(o.id,"camera_movement",C),options:pr,placeholder:"选择或输入运镜方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:447,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"首帧 Prompt"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:448,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Qe,className:"va-edit-textarea va-auto-resize",rows:ea(o.first_frame_prompt),value:o.first_frame_prompt||"",onChange:C=>te(o.id,"first_frame_prompt",C.target.value),onInput:C=>Re(C.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:449,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"尾帧 Prompt"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:450,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Qe,className:"va-edit-textarea va-auto-resize",rows:ea(o.last_frame_prompt),value:o.last_frame_prompt||"",onChange:C=>te(o.id,"last_frame_prompt",C.target.value),onInput:C=>Re(C.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:451,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"转场方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:452,columnNumber:15},void 0),a.jsxDEV(wa,{value:o.transition_hint||"",onChange:C=>te(o.id,"transition_hint",C),options:fr,placeholder:"选择转场方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:453,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:441,columnNumber:13},void 0)},o.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:440,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:438,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-page-actions",children:a.jsxDEV("button",{className:"va-btn-primary",onClick:N,children:"下一步:批量生成 →"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:460,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:459,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/ScriptPage.tsx",lineNumber:314,columnNumber:5},void 0)};function vr(e,n,m){var u,p;const N=e.selectedClipAudioUrl||((p=(u=e.generatedClips)==null?void 0:u.find(y=>y.clipId===e.selectedClipId))==null?void 0:p.audioUrl)||null;return{recordId:e.id,fileNamePrefix:"mv",zipBaseName:"mv_assets",scriptMarkdown:us(e,n),recordMeta:{id:e.id,creationPrompt:e.creationPrompt||"",musicTitle:e.musicTitle||"",musicStyleTags:e.musicStyleTags||[],aspectRatio:e.aspectRatio||"16x9",videoStyle:e.videoStyle||"",shotCount:n.length},shots:n,assets:m,audioAsset:N?{url:N,fallbackExtension:"mp3",downloadErrorMessage:"音乐下载失败"}:{url:"",missingErrorMessage:"缺少已选中的音乐文件"}}}function Nr(e,n){return Ks(n,e.characters||[])}const Ia="mv-creator:image-model",ua="mv-creator:gen-video-model",Ca=({size:e=14})=>a.jsxDEV("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",width:e,height:e,"aria-hidden":"true",children:[a.jsxDEV("rect",{x:"3",y:"3",width:"8",height:"8",rx:"1.5"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:61,columnNumber:5},void 0),a.jsxDEV("circle",{cx:"17",cy:"7",r:"4"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:62,columnNumber:5},void 0),a.jsxDEV("rect",{x:"3",y:"13",width:"8",height:"8",rx:"1.5"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:63,columnNumber:5},void 0),a.jsxDEV("rect",{x:"13",y:"13",width:"8",height:"8",rx:"1.5"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:64,columnNumber:5},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:50,columnNumber:3},void 0),hr=({record:e,onRecordUpdate:n,onRecordsChange:m,onRestart:N})=>{const u=r.useMemo(()=>e.editedShots||[],[e.editedShots]),p=e.aspectRatio||"16x9",y=e.batchId||`mv_${e.id}`,{openDialog:P,board:S}=Ms(),k=r.useRef(e),v=r.useRef(u),f=r.useRef(!1),q=r.useRef(null),_=r.useRef(null),[O,d]=r.useState([]),b=r.useMemo(()=>e.characters||[],[e.characters]),[z,A]=r.useState(null),D=Le("image"),I=Le("video"),[w,G]=r.useState(()=>le(Ia,"").modelId),[F,T]=r.useState(()=>le(Ia,"").modelRef),[X,Se]=r.useState(()=>e.videoModel||le(ua,"veo3").modelId),[ee,ne]=r.useState(()=>e.videoModelRef||le(ua,"veo3").modelRef),[W,ie]=r.useState(()=>ka(e.videoModel||le(ua,"veo3").modelId,e.videoSize,p)),[ae,be]=r.useState(()=>e.segmentDuration||parseInt(Ee(e.videoModel||"veo3").defaultDuration,10)||8),[R,de]=r.useState({running:!1,stopping:!1,currentIndex:-1,retryCount:0}),[Ve,Ke]=r.useState(!1),xe=r.useMemo(()=>Ee(X),[X]),De=r.useMemo(()=>xe.durationOptions,[xe]),_e=r.useMemo(()=>xe.sizeOptions,[xe]);r.useEffect(()=>{k.current=e},[e]),r.useEffect(()=>{v.current=u},[u]);const t=r.useCallback(async s=>{const i=k.current,l={...i,...s};k.current=l,l.editedShots&&(v.current=l.editedShots);const c=await Q(i.id,s);return m(c),n(l),l},[n,m]),x=r.useCallback(async s=>{const i=k.current,l=Me(i,s);return v.current=s,await t(l),s},[t]),Y=r.useCallback((s,i)=>{G(s),T(i||null),Fe(Ia,s,i)},[]),J=r.useCallback((s,i)=>{Se(s),ne(i||null),Fe(ua,s,i);const l=Ee(s),c=parseInt(l.defaultDuration,10)||8,g=ka(s,W,p);be(c),ie(g),t({videoModel:s,videoModelRef:i||null,segmentDuration:c,videoSize:g})},[t,p,W]),re=r.useCallback(s=>{be(s),t({segmentDuration:s})},[t]),te=r.useCallback(s=>{const i=ka(X,s,p);ie(i),t({videoSize:i})},[t,p,X]),Ue=r.useMemo(()=>O.map(s=>s.url).filter(Boolean),[O]),Ae=r.useMemo(()=>Ws(u),[u]),Ce=r.useCallback(async(s,i)=>{const c=(k.current.characters||[]).map(g=>g.id===s?{...g,referenceImageUrl:i}:g);await t({characters:c})},[t]),aa=r.useCallback(async()=>{try{const s=k.current,i=v.current;Xa(S);const l=await Qa("text",us(s,i));if(!l.success)throw new Error(l.error||"插入失败,请确认画布已打开");Xe.success("脚本已插入画布")}catch(s){console.error("[MVCreator] Failed to insert script to canvas:",s);const i=s instanceof Error?s.message:"脚本插入画布失败";Xe.error(i)}},[S]),o=r.useCallback(async s=>{if(!S)return!1;try{Xa(S);const i=await Qa("video",s);if(!i.success)throw new Error(i.error||"插入失败,请确认画布已打开");return!0}catch(i){return console.error("[MVCreator] Failed to insert generated video to canvas:",i),!1}},[S]),{isExportingAssets:$,exportProgress:C,handleExportAssets:Z}=As({onExport:async s=>{const i=k.current,l=v.current;return await Js({...vr(i,l,Ae),onProgress:s})},onExportSuccess:s=>{Xe.success(`素材导出完成,共 ${s.assetCount} 个文件`)},onExportError:s=>{console.error("[MVCreator] Failed to export mv assets:",s),Xe.error("素材导出失败")}}),me=r.useCallback(s=>{const i=`mv_${e.id}_char${s.id}_ref`,l=e.videoStyle?`${e.videoStyle} style. `:"";P(oa.aiImageGeneration,{initialPrompt:`${l}${s.description}`,batchId:i,initialAspectRatio:"1:1",initialModel:w||void 0,initialModelRef:F,autoInsertToCanvas:!1})},[e.id,e.videoStyle,P,w,F]),ve=r.useCallback(async()=>{e.batchId||await t({batchId:y})},[e.batchId,y,t]),{tasks:za}=os(),Te=r.useRef(new Set),ga=r.useRef(new Set),Oa=r.useCallback(async(s,i,l)=>{let c=[...i],g=!1;for(const{shotId:V,videoUrl:j}of l){const U=`auto_${V}`;if(!ga.current.has(U)){ga.current.add(U);try{const L=c.findIndex(E=>E.id===V);if(L===-1)continue;const h=L>0?c[L-1]:void 0;if(h&&!h.generated_last_frame_url&&!h.generated_video_url){const E=await la(j,h.id,"last","first");E&&(c=c.map(M=>M.id===h.id?{...M,generated_last_frame_url:E}:M),g=!0)}}finally{ga.current.delete(U)}}}if(g){const V=e;Q(s,Me(V,c)).then(j=>{m(j),n({...V,editedShots:c})})}},[e,n,m]);r.useEffect(()=>{var j,U,L,h;const s=`mv_${e.id}_shot`,i=`mv_${e.id}_char`;let l=!1;const c=e;let g=c.editedShots||[];const V=[];for(const E of za){if(E.status!==he.COMPLETED||Te.current.has(E.id))continue;const M=(j=E.params)==null?void 0:j.batchId;if(!M)continue;if(M.startsWith(i)){const K=(U=E.result)==null?void 0:U.url;if(Te.current.add(E.id),K){const ce=M.slice(i.length),Pe=ce.lastIndexOf("_ref");if(Pe!==-1){const Wa=ce.slice(0,Pe),Ns=(k.current.characters||[]).map(xa=>xa.id===Wa?{...xa,referenceImageUrl:K}:xa);t({characters:Ns})}}continue}if(!M.startsWith(s))continue;if(e.storyboardGeneratedAt&&E.createdAt<e.storyboardGeneratedAt){Te.current.add(E.id);continue}const B=(L=E.result)==null?void 0:L.url;if(!B)continue;const se=M.slice(s.length),Ne=se.lastIndexOf("_");if(Ne===-1)continue;const ge=se.slice(0,Ne),H=se.slice(Ne+1);if(H!=="first"&&H!=="last"&&H!=="video")continue;const we=H==="first"?"generated_first_frame_url":H==="last"?"generated_last_frame_url":"generated_video_url",ke=g.find(K=>K.id===ge),oe=(h=ke==null?void 0:ke.suppressed_generated_urls)==null?void 0:h[H];if(oe&&oe===B){Te.current.add(E.id);continue}if(!ke||ke[we]===B){Te.current.add(E.id);continue}g=g.map(K=>K.id===ge?{...K,[we]:B,suppressed_generated_urls:K.suppressed_generated_urls?{...K.suppressed_generated_urls,[H]:void 0}:void 0}:K),Te.current.add(E.id),l=!0,H==="video"&&V.push({shotId:ge,videoUrl:B})}l&&Q(c.id,Me(c,g)).then(E=>{m(E),n({...c,editedShots:g})}),V.length>0&&Oa(c.id,g,V)},[za,Oa,e,n,m,t]);const[ye,We]=r.useState(null),ds=r.useCallback(async s=>{if(!ye)return;We(null);const{shotId:i,assetType:l}=ye,c=l==="first"?"generated_first_frame_url":l==="last"?"generated_last_frame_url":"generated_video_url",g=u.map(j=>j.id===i?{...j,[c]:s.url}:j),V=await Q(e.id,Me(e,g));m(V),n({...e,editedShots:g})},[ye,e,u,m,n]),[$e,va]=r.useState(null),Ye=r.useRef(null),je=r.useCallback(()=>{Ye.current!==null&&(window.clearTimeout(Ye.current),Ye.current=null)},[]),Ra=r.useCallback(()=>{je(),va(null)},[je]),La=r.useCallback(()=>{je(),Ye.current=window.setTimeout(()=>{Ye.current=null,va(null)},120)},[je]),sa=r.useCallback((s,i,l)=>{je();const c=l.currentTarget.getBoundingClientRect();va({url:s,type:i,x:c.left+c.width/2,y:c.top-8})},[je]),ra=r.useCallback(()=>{La()},[La]),ms=r.useCallback(()=>{je()},[je]),ps=r.useCallback(()=>{Ra()},[Ra]);r.useEffect(()=>()=>{je()},[je]);const Je=r.useMemo(()=>{var i;const s=(i=_e.find(l=>l.value===W))==null?void 0:i.aspectRatio;if(s)return s;if(W!=null&&W.includes("x")){const[l,c]=W.split("x").map(Number);if(l&&c){const g=(j,U)=>U===0?j:g(U,j%U),V=g(l,c);return`${l/V}:${c/V}`}}return p.replace("x",":")},[p,_e,W]),Ge=Je,qe=r.useCallback(s=>s.map(i=>({url:i.url,name:i.name})),[]),ta=r.useCallback((s=[],i=[])=>s.length===i.length&&s.every((l,c)=>{var g,V;return l.url===((g=i[c])==null?void 0:g.url)&&l.name===((V=i[c])==null?void 0:V.name)}),[]),ze=r.useCallback(async(s,i,l)=>{let c=!1;const g=qe(l.images),V=v.current.map(j=>{if(j.id!==s)return j;if(i==="first"){const h=j.first_frame_draft,E={prompt:l.prompt,images:g,aspectRatio:l.aspectRatio};return(h==null?void 0:h.prompt)===E.prompt&&(h==null?void 0:h.aspectRatio)===E.aspectRatio&&ta(h==null?void 0:h.images,E.images)?j:(c=!0,{...j,first_frame_draft:E})}if(i==="last"){const h=j.last_frame_draft,E={prompt:l.prompt,images:g,aspectRatio:l.aspectRatio};return(h==null?void 0:h.prompt)===E.prompt&&(h==null?void 0:h.aspectRatio)===E.aspectRatio&&ta(h==null?void 0:h.images,E.images)?j:(c=!0,{...j,last_frame_draft:E})}const U=j.video_draft,L={prompt:l.prompt,images:g,duration:l.duration,size:l.size};return(U==null?void 0:U.prompt)===L.prompt&&(U==null?void 0:U.duration)===L.duration&&(U==null?void 0:U.size)===L.size&&ta(U==null?void 0:U.images,L.images)?j:(c=!0,{...j,video_draft:L})});c&&await x(V)},[x,ta,qe]),pe=r.useMemo(()=>({totalDuration:e.selectedClipDuration||30,productExposureDuration:0,productExposureRatio:0,shotCount:u.length,firstProductAppearance:0,aspect_ratio:p,video_style:e.videoStyle||"",bgm_mood:"",suggestion:"",shots:u}),[e,u,p]),fe=r.useMemo(()=>({prompt:e.creationPrompt||"",videoStyle:e.videoStyle||""}),[e]),Na=r.useCallback(s=>{const i=s.first_frame_prompt||s.description||"";if(!i)return;const l=Ea(i,pe,fe),c=s.first_frame_draft,g=`mv_${e.id}_shot${s.id}_first`;P(oa.aiImageGeneration,{initialPrompt:(c==null?void 0:c.prompt)||l,batchId:g,initialAspectRatio:(c==null?void 0:c.aspectRatio)??Ge,initialModel:w||void 0,initialModelRef:F,autoInsertToCanvas:!1,initialImages:c?qe(c.images||[]):s.generated_first_frame_url?[{url:s.generated_first_frame_url,name:"首帧"}]:void 0,onDraftChange:V=>ze(s.id,"first",V)})},[e.id,pe,fe,P,Ge,w,F,ze,qe]),Ze=r.useCallback((s,i)=>{var l;return s.generated_last_frame_url?s.generated_last_frame_url:(l=u[i+1])==null?void 0:l.generated_first_frame_url},[u]),na=r.useCallback((s,i)=>{const l=s.last_frame_prompt||s.description||"";if(!l)return;const c=Ea(l,pe,fe),g=s.last_frame_draft,V=`mv_${e.id}_shot${s.id}_last`,j=Ze(s,i);P(oa.aiImageGeneration,{initialPrompt:(g==null?void 0:g.prompt)||c,batchId:V,initialAspectRatio:(g==null?void 0:g.aspectRatio)??Ge,initialModel:w||void 0,initialModelRef:F,autoInsertToCanvas:!1,initialImages:g?qe(g.images||[]):j?[{url:j,name:"尾帧"}]:void 0,onDraftChange:U=>ze(s.id,"last",U)})},[e.id,pe,fe,P,Ze,Ge,w,F,ze,qe]),ha=r.useCallback(async(s,i)=>{const l=Va(s,pe,fe);if(!l)return;const c=s.video_draft,g=`mv_${e.id}_shot${s.id}_video`,V=[];s.generated_first_frame_url&&V.push({url:s.generated_first_frame_url,name:"首帧"});const j=Ze(s,i);j&&V.push({url:j,name:"尾帧"});const U=qe((c==null?void 0:c.images)||[]),L=U.length>0?U:V.length>0?V:void 0,h=Ee(X),E=String((c==null?void 0:c.duration)??ae),M=h.durationOptions.some(se=>se.value===E)?(c==null?void 0:c.duration)??ae:void 0,B=h.sizeOptions.some(se=>se.value===((c==null?void 0:c.size)??W))?(c==null?void 0:c.size)??W:void 0;P(oa.aiVideoGeneration,{initialPrompt:(c==null?void 0:c.prompt)||l,initialImages:L,initialDuration:M,initialSize:B,initialModel:X||void 0,initialModelRef:ee,batchId:g,autoInsertToCanvas:!1,onDraftChange:se=>ze(s.id,"video",se)})},[e.id,pe,fe,ae,W,X,ee,P,Ze,ze,qe]),ba=r.useCallback((s,i)=>{const l=i==="first"?"generated_first_frame_url":i==="last"?"generated_last_frame_url":"generated_video_url",c=u.map(g=>g.id===s?{...g,[l]:void 0,suppressed_generated_urls:g[l]?{...g.suppressed_generated_urls||{},[i]:g[l]}:g.suppressed_generated_urls}:g);Q(e.id,Me(e,c)).then(g=>{m(g),n({...e,editedShots:c})})},[e,u,n,m]),Fa=r.useCallback(async(s,i,l)=>{if(!s.generated_video_url)return;const c=l==="next-first"?u[i+1]:u[i-1];if(!c)return;const g=l==="next-first"?"first":"last",V=l==="next-first"?"last":"first",j=await la(s.generated_video_url,c.id,g,V);if(!j)return;const U=g==="first"?"generated_first_frame_url":"generated_last_frame_url",L=u.map(h=>h.id===c.id?{...h,[U]:j}:h);Q(e.id,Me(e,L)).then(h=>{m(h),n({...e,editedShots:L})})},[e,u,n,m]),Ha=r.useCallback(async(s,i,l)=>{const c=s[i];if(!c||c.generated_video_url===l)return s;const g=s.map((V,j)=>j===i?{...V,generated_video_url:l}:V);return await x(g),g},[x]),Ba=r.useCallback(async(s,i,l)=>{var B,se,Ne;const c=s.first_frame_prompt||s.description||"";if(!c)return null;let g=Ea(c,pe,fe);const V=[];if(s.character_ids&&s.character_ids.length>0)for(const ge of s.character_ids){const H=l.find(we=>we.id===ge);H!=null&&H.description&&V.push(`${H.name}: ${H.description}`)}V.length>0&&(g+=`
|
|
151
|
+
Characters in this frame: ${V.join("; ")}`),i&&(g+=`
|
|
152
|
+
This frame should visually continue from the previous shot's last frame (provided as reference image #1).`);const j=[];if(i&&j.push(i),s.character_ids&&s.character_ids.length>0)for(const ge of s.character_ids){const H=l.find(we=>we.id===ge);H!=null&&H.referenceImageUrl&&!j.includes(H.referenceImageUrl)&&j.push(H.referenceImageUrl)}const U=`mv_${e.id}_shot${s.id}_first`,L=await Da.executeTool({name:"generate_image",arguments:{prompt:g.trim(),count:1,size:Ge,referenceImages:j.length>0?j:void 0,batchId:U,autoInsertToCanvas:!1,...w?{model:w,modelRef:F}:{}}},{mode:"queue"}),h=L.taskId||((B=L.data)==null?void 0:B.taskId);if(!L.success||!h)return null;const E=await Sa(h,(se=q.current)==null?void 0:se.signal);if(!E.success)return null;const M=E.task||ue.getTask(h);return((Ne=M==null?void 0:M.result)==null?void 0:Ne.url)||null},[e.id,pe,fe,Ge,w,F]),Ka=r.useCallback(async(s,i,l)=>{var E,M;const c=Va(s,pe,fe);if(!c)return null;const g=i===0?Ue[0]:s.generated_first_frame_url,V=s.generated_last_frame_url||((E=l[i+1])==null?void 0:E.generated_first_frame_url),{referenceImages:j}=Ys({model:X,firstFrameUrl:g,lastFrameUrl:V,extraReferenceUrls:Ue.slice(i===0?1:0)}),U=`mv_${e.id}_shot${s.id}_video`,L=await Da.executeTool({name:"generate_video",arguments:{prompt:c,size:W,seconds:String(ae),count:1,batchId:U,model:X,modelRef:ee,referenceImages:j,autoInsertToCanvas:!1,params:xe.provider==="seedance"?{aspect_ratio:Je}:void 0}},{mode:"queue"}),h=L.taskId||((M=L.data)==null?void 0:M.taskId);if(!L.success||!h)throw new Error(L.error||"创建视频任务失败");return h},[pe,fe,Ue,e.id,ae,X,xe.provider,ee,W,Je]),fs=r.useCallback(()=>{var s;f.current=!0,de(i=>i.running?{...i,stopping:!0}:i),_.current&&ue.cancelTask(_.current),(s=q.current)==null||s.abort()},[]);r.useEffect(()=>()=>{var s;f.current=!0,(s=q.current)==null||s.abort()},[]);const gs=r.useCallback(async()=>{var i,l,c,g,V;if(R.running)return;let s=Ve;s&&!S&&(Xe.warning("画布未就绪,本次将只生成不插入画布"),s=!1),await ve(),f.current=!1,q.current=new AbortController,_.current=null,de({running:!0,stopping:!1,currentIndex:-1,retryCount:0});try{let j=k.current.characters||[];const U=j.filter(M=>!M.referenceImageUrl),L=k.current.videoStyle?`${k.current.videoStyle} style. `:"";if(U.length>0&&!f.current){for(const M of U){if(f.current)break;const B=`mv_${e.id}_char${M.id}_ref`,se=await Da.executeTool({name:"generate_image",arguments:{prompt:`${L}${M.description}`,count:1,size:"1:1",batchId:B,autoInsertToCanvas:!1,...w?{model:w,modelRef:F}:{}}},{mode:"queue"}),Ne=se.taskId||((i=se.data)==null?void 0:i.taskId);if(Ne){const ge=await Sa(Ne,(l=q.current)==null?void 0:l.signal);if(ge.success){const H=ge.task||ue.getTask(Ne),we=(c=H==null?void 0:H.result)==null?void 0:c.url;if(we){const oe=(k.current.characters||[]).map(K=>K.id===M.id?{...K,referenceImageUrl:we}:K);await t({characters:oe})}}}}j=k.current.characters||[]}let h=v.current,E;for(let M=0;M<h.length&&!f.current;M++){h=v.current;const B=h[M];if(!B||!Va(B,pe,fe))continue;if(de(K=>({...K,currentIndex:M,retryCount:0})),B.generated_video_url){s&&await o(B.generated_video_url);try{E=await la(B.generated_video_url,B.id,"last","last")||void 0}catch{E=void 0}continue}j=k.current.characters||[];const ge=(B.character_ids||[]).length>0||E!==void 0,H=!!B.generated_first_frame_url;if(ge&&!H&&!f.current){const K=await Ba(B,E,j);K&&(h=h.map((ce,Pe)=>Pe===M?{...ce,generated_first_frame_url:K}:ce),await x(h))}let ke=0,oe=null;for(;!f.current&&(oe||(oe=await Ka(h[M]||B,M,h)),!!oe);){_.current=oe,de({running:!0,stopping:!1,currentIndex:M,retryCount:ke});const K=await Sa(oe,(g=q.current)==null?void 0:g.signal);if(f.current)break;const ce=K.task||ue.getTask(oe),Pe=(V=ce==null?void 0:ce.result)==null?void 0:V.url;if(K.success&&ce&&Pe){h=await Ha(h,M,Pe),s&&await o(Pe);try{E=await la(Pe,B.id,"last","last")||void 0}catch{E=void 0}break}if(ke+=1,de({running:!0,stopping:!1,currentIndex:M,retryCount:ke}),(ce==null?void 0:ce.status)===he.FAILED){ue.retryTask(oe);continue}oe=null}_.current=null}}finally{_.current=null,q.current=null,de({running:!1,stopping:!1,currentIndex:-1,retryCount:0})}},[R.running,Ka,ve,Ba,pe,fe,x,t,e.id,w,F,o,Ve,Ha,S]),vs=r.useCallback(async()=>{const s=Nr(e,u);await x(s.shots),await t({characters:s.characters})},[u,e.characters,x,t]),ia=r.useMemo(()=>{const[s,i]=Je.split(":").map(Number);if(!s||!i)return{};const l=Math.round(54*s/i);return{width:Math.max(l,48),height:l<48?Math.round(48*i/s):54}},[Je]);return a.jsxDEV("div",{className:"va-page",children:[a.jsxDEV("div",{className:"va-batch-config",children:[a.jsxDEV("div",{className:"va-batch-config-title",children:"批量生成配置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1152,columnNumber:9},void 0),a.jsxDEV(Bs,{images:O,onImagesChange:d,multiple:!0,label:"参考图 (可选)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1153,columnNumber:9},void 0),b.length>0&&a.jsxDEV("div",{className:"va-characters",children:[a.jsxDEV("div",{className:"va-characters-title",children:"角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1156,columnNumber:13},void 0),b.map(s=>a.jsxDEV("div",{className:"va-character-item",children:[a.jsxDEV("div",{className:"va-character-info",children:[a.jsxDEV("span",{className:"va-character-name",children:s.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1160,columnNumber:19},void 0),a.jsxDEV("span",{className:"va-character-desc",children:s.description},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1161,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1159,columnNumber:17},void 0),a.jsxDEV("div",{className:"va-character-ref",children:[s.referenceImageUrl?a.jsxDEV("div",{className:"va-character-ref-thumb",children:[a.jsxDEV("img",{src:s.referenceImageUrl,alt:s.name,referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1166,columnNumber:23},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>void Ce(s.id,void 0),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1167,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1165,columnNumber:21},void 0):a.jsxDEV("span",{className:"va-character-ref-empty",children:"未设置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1170,columnNumber:21},void 0),a.jsxDEV("button",{onClick:()=>me(s),children:"生成"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1172,columnNumber:19},void 0),a.jsxDEV("button",{onClick:()=>A(s.id),children:"素材库"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1173,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1163,columnNumber:17},void 0)]},s.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1158,columnNumber:15},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1155,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-product-form",children:[a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"图片模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1181,columnNumber:13},void 0),a.jsxDEV(He,{variant:"form",selectedModel:w,selectedSelectionKey:Be(w,F),onSelect:Y,models:D,placement:"down",placeholder:"选择图片模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1182,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1180,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1187,columnNumber:13},void 0),a.jsxDEV(He,{variant:"form",selectedModel:X,selectedSelectionKey:Be(X,ee),onSelect:J,models:I,placement:"down",placeholder:"选择视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1188,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-segment-duration-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"单段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1192,columnNumber:15},void 0),a.jsxDEV("select",{className:"va-form-select",value:String(ae),onChange:s=>re(parseInt(s.target.value,10)),disabled:De.length<=1,children:De.map(s=>a.jsxDEV("option",{value:s.value,children:s.label},s.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1197,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1193,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1191,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-segment-duration-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"尺寸"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1202,columnNumber:15},void 0),a.jsxDEV("select",{className:"va-form-select",value:W,onChange:s=>te(s.target.value),disabled:_e.length<=1,children:_e.map(s=>a.jsxDEV("option",{value:s.value,children:s.label},s.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1210,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1203,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1201,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1186,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1179,columnNumber:9},void 0),R.running&&a.jsxDEV("div",{className:"va-batch-config-title",children:["正在串行生成第 ",Math.max(R.currentIndex+1,1),"/",u.length," 段",R.retryCount>0?`,已重试 ${R.retryCount} 次`:""]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1217,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-page-actions",children:[N&&a.jsxDEV("button",{onClick:N,children:"重新开始"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1223,columnNumber:25},void 0),a.jsxDEV("button",{onClick:vs,children:"重置生成"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1224,columnNumber:11},void 0),a.jsxDEV("label",{className:"va-inline-checkbox",children:[a.jsxDEV("input",{type:"checkbox",checked:Ve,onChange:s=>Ke(s.target.checked)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1226,columnNumber:13},void 0),"生成后插入画布"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1225,columnNumber:11},void 0),a.jsxDEV("button",{onClick:gs,disabled:R.running,children:"全部→生成视频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1233,columnNumber:11},void 0),R.running&&a.jsxDEV("button",{onClick:fs,children:R.stopping?"停止中…":"停止全部生成"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1235,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1222,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1151,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-shots",children:u.map((s,i)=>a.jsxDEV($a,{shot:s,index:i,actions:a.jsxDEV(a.Fragment,{children:[s.generated_first_frame_url?a.jsxDEV("div",{className:"va-shot-frame-thumb",style:ia,onMouseEnter:l=>sa(s.generated_first_frame_url,"image",l),onMouseLeave:ra,children:[a.jsxDEV("img",{src:s.generated_first_frame_url,alt:"首帧",referrerPolicy:"no-referrer",onClick:()=>Na(s)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1250,columnNumber:19},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>ba(s.id,"first"),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1252,columnNumber:19},void 0),a.jsxDEV("button",{className:"va-shot-frame-regen",onClick:()=>Na(s),children:"↻"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1253,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1247,columnNumber:17},void 0):s.first_frame_prompt||s.description?a.jsxDEV("span",{className:"va-shot-frame-btn-group",children:[a.jsxDEV("button",{onClick:()=>Na(s),children:"生成首帧"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1257,columnNumber:21},void 0),a.jsxDEV(Oe,{content:"从素材库选择",showArrow:!1,children:a.jsxDEV("button",{className:"va-shot-frame-library-btn",onClick:()=>We({shotId:s.id,assetType:"first"}),children:a.jsxDEV(Ca,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1265,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1259,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1258,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1256,columnNumber:19},void 0):null,(()=>{const l=Ze(s,i);return s.generated_last_frame_url?a.jsxDEV("div",{className:"va-shot-frame-thumb",style:ia,onMouseEnter:c=>sa(s.generated_last_frame_url,"image",c),onMouseLeave:ra,children:[a.jsxDEV("img",{src:s.generated_last_frame_url,alt:"尾帧",referrerPolicy:"no-referrer",onClick:()=>na(s,i)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1277,columnNumber:23},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>ba(s.id,"last"),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1279,columnNumber:23},void 0),a.jsxDEV("button",{className:"va-shot-frame-regen",onClick:()=>na(s,i),children:"↻"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1280,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1274,columnNumber:21},void 0):!s.generated_last_frame_url&&l?a.jsxDEV("div",{className:"va-shot-frame-thumb va-shot-frame-thumb--borrowed",style:ia,onMouseEnter:c=>sa(l,"image",c),onMouseLeave:ra,children:[a.jsxDEV("img",{src:l,alt:"尾帧(下一镜头首帧)",referrerPolicy:"no-referrer",onClick:()=>na(s,i)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1289,columnNumber:23},void 0),a.jsxDEV("span",{className:"va-shot-frame-label",children:"下一镜头首帧"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1291,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1286,columnNumber:21},void 0):s.last_frame_prompt||s.description?a.jsxDEV("span",{className:"va-shot-frame-btn-group",children:[a.jsxDEV("button",{onClick:()=>na(s,i),children:"生成尾帧"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1298,columnNumber:23},void 0),a.jsxDEV(Oe,{content:"从素材库选择",showArrow:!1,children:a.jsxDEV("button",{className:"va-shot-frame-library-btn",onClick:()=>We({shotId:s.id,assetType:"last"}),children:a.jsxDEV(Ca,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1306,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1300,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1299,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1297,columnNumber:21},void 0):null})(),s.generated_video_url?a.jsxDEV("div",{className:"va-shot-video-wrap",children:[a.jsxDEV("div",{className:"va-shot-frame-thumb",style:ia,onMouseEnter:l=>sa(s.generated_video_url,"video",l),onMouseLeave:ra,children:[a.jsxDEV($s,{src:s.generated_video_url,alt:"生成视频缩略图",className:"va-shot-frame-media",thumbnailSize:"small",onClick:()=>ha(s,i),videoProps:{muted:!0,preload:"metadata",title:"重新生成视频"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1319,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>ba(s.id,"video"),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1331,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-regen",onClick:()=>ha(s,i),children:"↻"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1332,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1316,columnNumber:19},void 0),(i>0||i<u.length-1)&&a.jsxDEV("div",{className:"va-shot-frame-transfer",children:[i>0&&a.jsxDEV(Oe,{content:"提取首帧 → 前一片段尾帧",showArrow:!1,children:a.jsxDEV("button",{className:"va-shot-frame-transfer-btn",onClick:()=>Fa(s,i,"prev-last"),children:a.jsxDEV(Gs,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1345,columnNumber:29},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1341,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1337,columnNumber:25},void 0),i<u.length-1&&a.jsxDEV(Oe,{content:"提取尾帧 → 后一片段首帧",showArrow:!1,children:a.jsxDEV("button",{className:"va-shot-frame-transfer-btn",onClick:()=>Fa(s,i,"next-first"),children:a.jsxDEV(zs,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1358,columnNumber:29},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1354,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1350,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1335,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1315,columnNumber:17},void 0):s.description?a.jsxDEV("span",{className:"va-shot-frame-btn-group",children:[a.jsxDEV("button",{onClick:()=>ha(s,i),children:"生成视频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1367,columnNumber:19},void 0),a.jsxDEV(Oe,{content:"从素材库插入视频",showArrow:!1,children:a.jsxDEV("button",{className:"va-shot-frame-library-btn",onClick:()=>We({shotId:s.id,assetType:"video"}),children:a.jsxDEV(Ca,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1375,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1369,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1368,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1366,columnNumber:17},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1245,columnNumber:13},void 0)},s.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1244,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1242,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-page-actions mv-generate-footer-actions",children:[a.jsxDEV("button",{onClick:()=>void aa(),disabled:u.length===0,children:"脚本插入画布"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1386,columnNumber:9},void 0),a.jsxDEV("button",{onClick:()=>void Z(),disabled:$||u.length===0,children:$?`素材下载 ${C}%`:"素材下载 ZIP"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1389,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1385,columnNumber:7},void 0),a.jsxDEV("div",{className:"mv-generate-footer-hint",children:"若有素材未打包成功,解压后在 ZIP 根目录运行 `sh 00.补全下载.sh` 即可按 manifest 补全下载。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1393,columnNumber:7},void 0),a.jsxDEV(Ja,{isOpen:!!ye,onClose:()=>We(null),mode:Za.SELECT,filterType:(ye==null?void 0:ye.assetType)==="video"?Pa.VIDEO:Pa.IMAGE,onSelect:ds,selectButtonText:(ye==null?void 0:ye.assetType)==="video"?"使用此视频":"使用此图片"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1397,columnNumber:7},void 0),a.jsxDEV(Ja,{isOpen:!!z,onClose:()=>A(null),mode:Za.SELECT,filterType:Pa.IMAGE,onSelect:s=>{z&&Ce(z,s.url),A(null)},selectButtonText:"使用此图片"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1406,columnNumber:7},void 0),$e&&Ts.createPortal(a.jsxDEV("div",{className:"mv-hover-preview",style:{left:`${$e.x}px`,top:`${$e.y}px`},onMouseEnter:ms,onMouseLeave:ps,children:$e.type==="image"?a.jsxDEV("img",{src:$e.url,alt:"Preview",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1428,columnNumber:13},void 0):a.jsxDEV("video",{src:$e.url,controls:!0,muted:!0,preload:"metadata"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1430,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1421,columnNumber:9},void 0),document.body)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/GeneratePage.tsx",lineNumber:1150,columnNumber:5},void 0)};function br(e){switch(e){case he.COMPLETED:return"已完成";case he.PROCESSING:return"进行中";case he.PENDING:return"等待中";case he.FAILED:return"失败";default:return""}}function xr(e){switch(e){case he.COMPLETED:return"completed";case he.PROCESSING:return"processing";case he.PENDING:return"pending";case he.FAILED:return"failed";default:return"pending"}}function yr(e){const n=new Date(e);return`${n.getMonth()+1}/${n.getDate()} ${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}const jr=({records:e,onSelect:n,onRecordsChange:m,showStarredOnly:N=!1})=>{const u=N?e.filter(d=>d.starred):e,[p,y]=r.useState(null),[P,S]=r.useState(null),{tasks:k}=os(),v=r.useMemo(()=>{const d=new Map,b=new Set(e.map(A=>A.id)),z=()=>({storyboard:[],music:[],video:[],image:[]});for(const A of k){const D=A.params;if(A.type===Ie.CHAT&&D.mvCreatorAction==="storyboard"&&typeof D.mvCreatorRecordId=="string"&&b.has(D.mvCreatorRecordId)){const G=D.mvCreatorRecordId;ca(d,G,"storyboard",A,z);continue}const I=typeof D.batchId=="string"?D.batchId:"";if(!I.startsWith("mv_"))continue;const w=Os(I,"mv_",b);w&&(A.type===Ie.AUDIO?ca(d,w,"music",A,z):A.type===Ie.VIDEO?ca(d,w,"video",A,z):A.type===Ie.IMAGE&&ca(d,w,"image",A,z))}return Rs(d)},[k,e]),f=r.useCallback(async(d,b)=>{d.stopPropagation();const z=await Q(b.id,{starred:!b.starred});m(z)},[m]),q=r.useCallback((d,b)=>{d.stopPropagation(),S(b)},[]),_=r.useCallback(async()=>{if(!P)return;const d=await Qs(P);m(d),S(null)},[m,P]),O=r.useCallback((d,b)=>{d.stopPropagation(),y(z=>z===b?null:b)},[]);return u.length===0?a.jsxDEV("div",{className:"va-page va-empty",children:a.jsxDEV("span",{children:N?"暂无收藏":"暂无 MV 记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:145,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:144,columnNumber:7},void 0):a.jsxDEV(a.Fragment,{children:[a.jsxDEV("div",{className:"va-page",children:a.jsxDEV("div",{className:"va-history-list",children:u.map(d=>{var D;const b=v.get(d.id),z=b?b.storyboard.length+b.music.length+b.video.length+b.image.length:0,A=p===d.id;return a.jsxDEV("div",{className:"va-history-item",onClick:()=>n(d),children:[a.jsxDEV("div",{className:"va-history-header",children:[a.jsxDEV("span",{className:"va-history-source",children:[a.jsxDEV("span",{role:"img","aria-label":"mv",children:"🎬"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:165,columnNumber:21},void 0)," ",d.sourceLabel]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:164,columnNumber:19},void 0),a.jsxDEV("button",{className:`va-star-btn ${d.starred?"starred":""}`,onClick:I=>f(I,d),children:d.starred?"★":"☆"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:168,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:163,columnNumber:17},void 0),a.jsxDEV("div",{className:"va-history-meta",children:[z>0&&a.jsxDEV("button",{className:`va-history-expand-btn ${A?"expanded":""}`,onClick:I=>O(I,d.id),children:[a.jsxDEV(Ls,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:181,columnNumber:23},void 0),a.jsxDEV("span",{children:A?"收起":"关联任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:182,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:177,columnNumber:21},void 0),a.jsxDEV("span",{children:new Date(d.createdAt).toLocaleString()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:185,columnNumber:19},void 0),a.jsxDEV("button",{className:"va-history-delete",onClick:I=>q(I,d.id),children:"删除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:186,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:175,columnNumber:17},void 0),a.jsxDEV("div",{className:"ma-history-title",children:d.musicTitle||"未命名 MV"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:193,columnNumber:17},void 0),a.jsxDEV("div",{className:"ma-history-summary",children:((D=d.creationPrompt)==null?void 0:D.slice(0,80))||"暂无描述"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:194,columnNumber:17},void 0),d.generatedClips&&d.generatedClips.length>0&&a.jsxDEV("div",{className:"ma-history-clips-count",children:[d.generatedClips.length," 首音乐",d.editedShots?` · ${d.editedShots.length} 个镜头`:""]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:198,columnNumber:19},void 0),A&&b&&a.jsxDEV("div",{className:"va-history-related",onClick:I=>I.stopPropagation(),children:[b.music.length>0&&a.jsxDEV("div",{children:[a.jsxDEV("div",{className:"va-history-related-group-title",children:["音乐生成 (",b.music.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:207,columnNumber:25},void 0),b.music.map(I=>a.jsxDEV(da,{task:I},I.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:211,columnNumber:27},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:206,columnNumber:23},void 0),b.storyboard.length>0&&a.jsxDEV("div",{children:[a.jsxDEV("div",{className:"va-history-related-group-title",children:["分镜规划 (",b.storyboard.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:217,columnNumber:25},void 0),b.storyboard.map(I=>a.jsxDEV(da,{task:I},I.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:221,columnNumber:27},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:216,columnNumber:23},void 0),b.video.length>0&&a.jsxDEV("div",{children:[a.jsxDEV("div",{className:"va-history-related-group-title",children:["视频生成 (",b.video.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:227,columnNumber:25},void 0),b.video.map(I=>a.jsxDEV(da,{task:I},I.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:231,columnNumber:27},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:226,columnNumber:23},void 0),b.image.length>0&&a.jsxDEV("div",{children:[a.jsxDEV("div",{className:"va-history-related-group-title",children:["图片生成 (",b.image.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:237,columnNumber:25},void 0),b.image.map(I=>a.jsxDEV(da,{task:I},I.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:241,columnNumber:27},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:236,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:204,columnNumber:19},void 0)]},d.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:162,columnNumber:15},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:153,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:152,columnNumber:7},void 0),a.jsxDEV(Fs,{open:P!==null,title:"确认删除",description:"确定要删除这条 MV 记录吗?此操作不可撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:d=>{d||S(null)},onConfirm:_},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:253,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:151,columnNumber:5},void 0)},da=({task:e})=>a.jsxDEV(Oe,{content:br(e.status),showArrow:!1,children:a.jsxDEV("div",{className:"va-history-related-task",children:[a.jsxDEV("span",{className:`va-history-related-task-status ${xr(e.status)}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:270,columnNumber:7},void 0),a.jsxDEV("span",{className:"va-history-related-task-prompt",children:String(e.params.prompt||"").slice(0,40)||e.id.slice(0,8)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:273,columnNumber:7},void 0),a.jsxDEV("span",{className:"va-history-related-task-time",children:yr(e.createdAt)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:276,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:269,columnNumber:5},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/pages/HistoryPage.tsx",lineNumber:268,columnNumber:3},void 0),qr=()=>{var O;const[e,n]=r.useState("analyze"),[m,N]=r.useState(null),[u,p]=r.useState([]),[y,P]=r.useState(!1);r.useEffect(()=>{fa().then(p)},[]),r.useEffect(()=>{let d=!1;const b=new Set,z=async D=>{if(b.has(D.id))return;if(cr(D)){b.add(D.id);try{const w=await ur(D)||await Aa(D);if(!w||d)return;p(w.records),N(G=>(G==null?void 0:G.id)===w.record.id?w.record:G)}catch(w){console.error("[MVCreator] Failed to sync storyboard task:",w)}finally{b.delete(D.id)}return}const I=dr(D);if(I){b.add(D.id);try{const w=await mr(D,I);if(!w||d)return;p(w.records),N(G=>(G==null?void 0:G.id)===w.record.id?w.record:G)}catch(w){console.error("[MVCreator] Failed to sync music task:",w)}finally{b.delete(D.id)}}};ue.getAllTasks().forEach(D=>{D.status==="completed"&&z(D)});const A=ue.observeTaskUpdates().subscribe(D=>{D.task.status==="completed"&&z(D.task)});return()=>{d=!0,A.unsubscribe()}},[]);const S=r.useCallback(d=>{N(d)},[]),k=r.useCallback(d=>{N(d),d.editedShots&&d.editedShots.length>0?n("generate"):(d.selectedClipId,n("analyze"))},[]),v=r.useCallback(d=>{N(d)},[]),f=r.useCallback(()=>{N(null),n("analyze")},[]),q=r.useCallback(d=>{n(d)},[]),_=!!(m!=null&&m.editedShots&&m.editedShots.length>0);return a.jsxDEV("div",{className:"video-analyzer music-analyzer mv-creator",children:[a.jsxDEV("div",{className:"va-nav",children:e==="history"?a.jsxDEV(a.Fragment,{children:[a.jsxDEV("button",{className:"va-nav-back",onClick:()=>n("analyze"),children:"←"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:135,columnNumber:13},void 0),a.jsxDEV("span",{className:"va-nav-title",children:y?"收藏":"历史记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:136,columnNumber:13},void 0),a.jsxDEV("button",{className:`va-nav-btn ${y?"active":""}`,onClick:()=>P(d=>!d),children:y?"★ 收藏":"☆ 全部"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:137,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:134,columnNumber:11},void 0):a.jsxDEV(a.Fragment,{children:[a.jsxDEV(er,{current:e,onNavigate:q,hasRecord:!!m,hasShots:_},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:146,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-nav-actions",children:[a.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{P(!1),n("history")},children:[a.jsxDEV("span",{role:"img","aria-label":"history",children:"📋"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:154,columnNumber:17},void 0),u.length>0&&a.jsxDEV("span",{className:"va-nav-count",children:u.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:155,columnNumber:40},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:153,columnNumber:15},void 0),a.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{P(!0),n("history")},children:[a.jsxDEV("span",{role:"img","aria-label":"starred",children:"⭐"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:158,columnNumber:17},void 0),u.filter(d=>d.starred).length>0&&a.jsxDEV("span",{className:"va-nav-count",children:u.filter(d=>d.starred).length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:160,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:157,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:152,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:145,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:132,columnNumber:7},void 0),e==="analyze"&&a.jsxDEV(or,{existingRecord:m,onComplete:S,onRecordsChange:p,onCreateNew:f,onNext:(O=m==null?void 0:m.editedShots)!=null&&O.length?()=>n("script"):void 0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:169,columnNumber:9},void 0),e==="script"&&m&&_&&a.jsxDEV(gr,{record:m,onRecordUpdate:v,onRecordsChange:p,onNext:()=>n("generate")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:178,columnNumber:9},void 0),e==="generate"&&m&&_&&a.jsxDEV(hr,{record:m,onRecordUpdate:v,onRecordsChange:p,onRestart:f},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:186,columnNumber:9},void 0),e==="history"&&a.jsxDEV(jr,{records:u,onSelect:k,onRecordsChange:p,showStarredOnly:y},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:194,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/mv-creator/MVCreator.tsx",lineNumber:131,columnNumber:5},void 0)};export{qr as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";.mv-creator .va-collapse-toggle{display:flex;align-items:center;gap:4px;padding:6px 12px;font-size:12px;color:#888;background:#00000008;border:1px solid rgba(0,0,0,.06);border-radius:8px;cursor:pointer;transition:background .15s ease-out,color .15s ease-out}.mv-creator .va-collapse-toggle:hover{background:#f39c1214;color:#666}.mv-creator .va-shot-edit-fields{display:flex;flex-direction:column;gap:6px;margin-top:6px}.mv-creator .va-edit-field{display:flex;flex-direction:column;gap:2px}.mv-creator .va-edit-field-label{font-size:11px;color:#999}.mv-creator .ma-clips-gallery{max-height:50vh;overflow-y:auto}.mv-creator .va-edit-field-input{width:100%;padding:4px 8px;font-size:12px;border:1px solid rgba(0,0,0,.08);border-radius:6px;background:#fff;color:#333;resize:vertical;font-family:inherit;box-sizing:border-box}.mv-creator .va-edit-field-input:focus{outline:none;border-color:#f39c1266}.mv-creator .va-shot-video-wrap{display:flex;align-items:center;gap:4px}.mv-creator .va-shot-frame-transfer{display:flex;flex-direction:column;gap:4px}.mv-creator .va-shot-frame-transfer-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid rgba(0,0,0,.1);border-radius:6px;background:#f39c1214;color:#888;cursor:pointer;transition:background .15s ease-out,color .15s ease-out}.mv-creator .va-shot-frame-transfer-btn:hover{background:#f39c1233;color:#333}.mv-creator .mv-generate-footer-actions{margin-top:16px;justify-content:center}.mv-creator .mv-generate-footer-hint{margin-top:8px;text-align:center;font-size:12px;color:#999}.mv-hover-preview{position:fixed;z-index:20000;transform:translate(-50%,-100%);pointer-events:auto;max-width:360px;max-height:360px;border-radius:8px;overflow:hidden;box-shadow:0 8px 32px #00000047;background:#000}.mv-hover-preview img,.mv-hover-preview video{display:block;max-width:360px;max-height:360px;-o-object-fit:contain;object-fit:contain}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";.storage-bar{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:#fff;border-radius:12px;border:1px solid rgba(0,0,0,.04);box-shadow:0 2px 8px #00000008}.storage-bar__header{display:flex;align-items:center;justify-content:space-between}.storage-bar__header-left{display:flex;align-items:center;gap:8px}.storage-bar__icon{flex-shrink:0;color:#f39c12;width:16px;height:16px}.storage-bar__title{font-size:12px;font-weight:600;color:#1e293b}.storage-bar__count{color:#64748b;font-weight:500;font-size:11px;white-space:nowrap;background:#f39c1214;padding:2px 8px;border-radius:4px}.storage-bar__usage{display:flex;align-items:center;gap:4px}.storage-bar__usage-value{font-size:13px;color:#1e293b;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;letter-spacing:-.5px;font-weight:600}.storage-bar .t-progress{margin:0}.storage-bar .t-progress .t-progress__bar{background:#f1f5f9;border-radius:6px;overflow:hidden}.storage-bar .t-progress .t-progress__inner{background:#f39c12!important;border-radius:6px;transition:width .3s ease}.storage-bar .t-progress__info{font-size:11px;font-weight:700;color:#f39c12;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}@media(max-width:768px){.storage-bar{padding:12px 14px;gap:6px;border-radius:10px}.storage-bar__icon{width:14px;height:14px}.storage-bar__title{font-size:11px}.storage-bar__count{font-size:10px;padding:2px 6px}.storage-bar__usage-value{font-size:12px}}.media-library-sidebar{display:flex;flex-direction:column;gap:20px;height:100%}.media-library-sidebar__section{display:flex;flex-direction:column;gap:8px}.media-library-sidebar__section--storage{margin-top:auto;padding-top:16px;border-top:1px solid rgba(0,0,0,.06)}.media-library-sidebar__title{font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em;margin:0;padding:0 10px;display:flex;align-items:center;gap:6px}.media-library-sidebar__title:before{content:"";width:3px;height:12px;background:#f39c12;border-radius:2px}.media-library-sidebar__buttons{display:flex;flex-direction:column;gap:4px}.media-library-sidebar__buttons .t-button{justify-content:flex-start;padding:10px 12px;font-size:13px;font-weight:500;border-radius:10px;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:flex;align-items:center;gap:12px;height:auto;min-height:40px;border:1px solid transparent}.media-library-sidebar__buttons .t-button .t-icon,.media-library-sidebar__buttons .t-button svg{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;margin-right:10px!important;transition:transform .2s ease,color .2s ease}.media-library-sidebar__buttons .t-button>span{flex:1;text-align:left;line-height:1.4;display:flex;align-items:center}.media-library-sidebar__buttons .t-button .t-button__icon{margin:0!important}.media-library-sidebar__buttons .t-button .t-button__text{display:flex;align-items:center}.media-library-sidebar__buttons .t-button.t-button--variant-base{background:#f39c121a;color:#e67e22;border:1px solid rgba(243,156,18,.2)}.media-library-sidebar__buttons .t-button.t-button--variant-base svg{color:#f39c12}.media-library-sidebar__buttons .t-button.t-button--variant-base:hover{background:#f39c1226}.media-library-sidebar__buttons .t-button.t-button--variant-outline{background:transparent;color:#64748b;border-color:transparent}.media-library-sidebar__buttons .t-button.t-button--variant-outline svg{color:#94a3b8}.media-library-sidebar__buttons .t-button.t-button--variant-outline:hover{background:#f39c120f;color:#e67e22;border-color:#f39c121a;transform:translate(4px)}.media-library-sidebar__buttons .t-button.t-button--variant-outline:hover svg{color:#f39c12;transform:scale(1.1)}@media(max-width:768px){.media-library-sidebar{gap:10px;flex-direction:row;flex-wrap:wrap;padding:8px}.media-library-sidebar__section{gap:6px;flex:1 1 auto;min-width:120px}.media-library-sidebar__section--storage{padding-top:0;border-top:none;border-left:1px solid rgba(0,0,0,.06);padding-left:10px;margin-left:auto;display:none}.media-library-sidebar__title{font-size:9px;margin-bottom:4px;padding:0 6px}.media-library-sidebar__title:before{width:2px;height:10px}.media-library-sidebar__buttons{flex-direction:row;flex-wrap:wrap;gap:4px}.media-library-sidebar__buttons .t-button{padding:6px 10px;font-size:11px;min-height:32px;gap:6px;flex:1 1 auto;min-width:80px;border-radius:8px}.media-library-sidebar__buttons .t-button .t-icon,.media-library-sidebar__buttons .t-button svg{width:14px;height:14px;margin-right:6px!important}.media-library-sidebar__buttons .t-button.t-button--variant-base:hover,.media-library-sidebar__buttons .t-button.t-button--variant-outline:hover{transform:none}}@media(max-width:480px){.media-library-sidebar{padding:6px}.media-library-sidebar__section{min-width:100px;gap:4px}.media-library-sidebar__title{font-size:8px;margin-bottom:3px}.media-library-sidebar__title:before{display:none}.media-library-sidebar__buttons{gap:3px}.media-library-sidebar__buttons .t-button{padding:4px 8px;font-size:10px;min-height:28px;min-width:70px;gap:4px;border-radius:6px}.media-library-sidebar__buttons .t-button .t-icon,.media-library-sidebar__buttons .t-button svg{width:12px;height:12px;margin-right:4px!important}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";.model-benchmark{--mb-ink: #0f172a;--mb-muted: #64748b;--mb-line: rgba(15, 23, 42, .08);--mb-line-strong: rgba(15, 23, 42, .16);--mb-accent: #f39c12;--mb-accent-deep: #d35400;--mb-accent-soft: rgba(243, 156, 18, .1);--mb-accent-soft-strong: rgba(243, 156, 18, .18);--mb-secondary: #5a4fcf;--mb-surface: #ffffff;--mb-surface-soft: #f8f9ff;--mb-success: #00b894;--mb-danger: #e17055;width:100%;height:100%;min-height:0;display:grid;grid-template-columns:280px minmax(0,1fr);background:#f1f5f9;color:var(--mb-ink);font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,sans-serif}.model-benchmark__sidebar,.model-benchmark__main{min-height:0;height:100%}.model-benchmark__sidebar{display:flex;flex-direction:column;gap:16px;padding:16px;border-right:1px solid var(--mb-line);background:#fff;overflow:hidden}.model-benchmark__sidebar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.model-benchmark__sidebar-head .model-benchmark__panel-title{font-size:15px}.model-benchmark__sidebar-filters{display:flex;flex-direction:column;gap:8px}.model-benchmark__sidebar-filters .t-input,.model-benchmark__sidebar-filters .t-select{width:100%}.model-benchmark__sidebar-tabs{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none}.model-benchmark__sidebar-tabs::-webkit-scrollbar{display:none}.model-benchmark__sidebar-tab{width:34px;height:34px;min-width:34px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--mb-line);border-radius:999px;background:#fff;color:var(--mb-muted);cursor:pointer;transition:all .2s ease}.model-benchmark__sidebar-tab:hover{border-color:var(--mb-accent);color:var(--mb-accent-deep)}.model-benchmark__sidebar-tab--active{border-color:var(--mb-accent);background:var(--mb-accent-soft);color:var(--mb-accent-deep)}.model-benchmark__main{padding:20px;overflow-y:auto;overflow-x:hidden}.model-benchmark__main-shell{container-type:inline-size;display:flex;flex-direction:column;gap:20px;width:100%;max-width:1200px;margin:0 auto}.model-benchmark__config-dashboard{display:flex;flex-direction:column;gap:16px;padding:20px;border-radius:16px;background:#fff;border:1px solid var(--mb-line);box-shadow:0 4px 20px #0f172a0f}.model-benchmark__config-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.model-benchmark__config-row--top{justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--mb-line)}.model-benchmark__config-main{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:flex-start}@container (max-width: 640px){.model-benchmark__config-main{grid-template-columns:1fr}}.model-benchmark__config-controls,.model-benchmark__config-actions{display:flex;flex-direction:column;gap:12px}@container (max-width: 640px){.model-benchmark__config-actions{padding-top:16px;border-top:1px solid var(--mb-line)}}.model-benchmark__modality-tabs{display:flex;background:#f8fafc;padding:4px;border-radius:8px;border:1px solid var(--mb-line)}.model-benchmark__modality-tabs button{padding:6px 16px;border:none;background:transparent;border-radius:6px;font-size:13px;font-weight:600;color:var(--mb-muted);cursor:pointer;transition:all .2s}.model-benchmark__modality-tabs button:hover{color:var(--mb-ink);background:#0f172a0a}.model-benchmark__modality-tabs button.active{background:#fff;color:var(--mb-accent-deep);box-shadow:0 1px 3px #0000001a}.model-benchmark__mode-selector{display:flex;gap:8px}.model-benchmark__mode-selector button{padding:6px 12px;border:1px solid var(--mb-line);background:#fff;border-radius:8px;font-size:13px;font-weight:600;color:var(--mb-muted);cursor:pointer;transition:all .2s}.model-benchmark__mode-selector button:hover{border-color:var(--mb-accent);color:var(--mb-accent-deep)}.model-benchmark__mode-selector button.active{background:var(--mb-accent-soft);border-color:var(--mb-accent);color:var(--mb-accent-deep)}.model-benchmark__target-selector-wrap{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.model-benchmark__primary-select-row{display:flex;align-items:center;gap:12px}.model-benchmark__primary-select-row .t-select{flex:1}.model-benchmark__secondary-select-row .t-select{width:100%}.model-benchmark__prompt-area{display:flex;flex-direction:column;flex:1}.model-benchmark__prompt-area textarea{width:100%;flex:1;min-height:60px;padding:10px;border:1px solid var(--mb-line);border-radius:8px;font-size:13px;line-height:1.5;resize:none}.model-benchmark__prompt-area textarea:focus{outline:none;border-color:var(--mb-accent);box-shadow:0 0 0 2px var(--mb-accent-soft)}.model-benchmark__action-row-inline{display:flex;align-items:center;gap:12px}.model-benchmark__action-row-inline .model-benchmark__primary-button{flex:1;height:38px}.model-benchmark__start-btn-wrap{display:flex;align-items:center;gap:12px;margin-top:auto}.model-benchmark__start-btn-wrap .model-benchmark__primary-button{flex:1;height:42px}.model-benchmark__sidebar .model-benchmark__panel--sessions{border:none;box-shadow:none;background:transparent;padding:0;display:flex;flex-direction:column;flex:1;overflow:hidden}.model-benchmark__sidebar .model-benchmark__session-list{flex:1;overflow-y:auto;padding-right:4px}.model-benchmark__hero,.model-benchmark__panel,.model-benchmark__main-shell{position:relative}.model-benchmark__hero,.model-benchmark__panel,.model-benchmark__result-card,.model-benchmark__spotlight,.model-benchmark__empty,.model-benchmark__main-shell{border:1px solid var(--mb-line);box-shadow:0 4px 12px #0f172a0a}.model-benchmark__hero,.model-benchmark__panel,.model-benchmark__spotlight,.model-benchmark__result-card,.model-benchmark__empty{border-radius:12px;background:var(--mb-surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.model-benchmark__main-shell{border-radius:16px;padding:16px;background:#ffffffa6}.model-benchmark__hero{padding:18px;overflow:hidden}.model-benchmark__hero:after{content:"";position:absolute;inset:auto -36px -48px auto;width:140px;height:140px;border-radius:999px;background:radial-gradient(circle,rgba(243,156,18,.12),transparent 70%);pointer-events:none}.model-benchmark__hero-title,.model-benchmark h3,.model-benchmark h4{margin:4px 0 0;font-family:inherit;font-weight:700;letter-spacing:-.01em;color:var(--mb-ink)}.model-benchmark__hero-title{font-size:22px;line-height:1.2}.model-benchmark h3{font-size:20px;line-height:1.2}.model-benchmark h4{font-size:18px;line-height:1.2}.model-benchmark__hero-subtitle,.model-benchmark__main-desc,.model-benchmark__panel-desc{margin:4px 0 0;color:var(--mb-muted);font-size:11px;line-height:1.5;opacity:.8}.model-benchmark__eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--mb-accent-deep);text-transform:uppercase}.model-benchmark__hero-stats,.model-benchmark__summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.model-benchmark__summary-strip{grid-template-columns:repeat(4,minmax(0,1fr));min-width:360px;margin-top:0}.model-benchmark__hero-stat,.model-benchmark__summary-card{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid rgba(15,23,42,.05);border-radius:10px;background:#ffffff80}.model-benchmark__hero-stat strong,.model-benchmark__summary-card strong{font-size:18px;line-height:1.2;color:var(--mb-ink)}.model-benchmark__hero-stat span,.model-benchmark__summary-card span{font-size:11px;color:var(--mb-muted);font-weight:500}.model-benchmark__panel{display:flex;flex-direction:column;gap:12px;padding:16px}.model-benchmark__panel--accent{background:linear-gradient(135deg,#f39c120a,#fff)}.model-benchmark__config-dash{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--mb-line)}.model-benchmark__config-dash .model-benchmark__panel{padding:0;border:none;box-shadow:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.model-benchmark__config-dash .model-benchmark__panel-head{margin-bottom:8px;align-items:center}.model-benchmark__config-dash .model-benchmark__prompt{min-height:140px}.model-benchmark__queue-grid--dash{grid-template-columns:repeat(2,minmax(0,1fr));max-height:140px;overflow-y:auto;padding-right:4px}.model-benchmark__queue-grid--dash::-webkit-scrollbar{width:4px}.model-benchmark__queue-grid--dash::-webkit-scrollbar-thumb{background:var(--mb-line-strong);border-radius:2px}.model-benchmark__panel--transparent{padding:0;border:none;box-shadow:none;background:transparent!important;-webkit-backdrop-filter:none;backdrop-filter:none}.model-benchmark__concurrency{display:flex;align-items:center;gap:6px;margin-right:12px}.model-benchmark__concurrency span{font-size:11px;font-weight:700;color:var(--mb-muted);white-space:nowrap}.model-benchmark__concurrency input{width:80px;height:32px;padding:0 10px;border:1px solid var(--mb-line);border-radius:8px;box-sizing:border-box;background:#fff;color:var(--mb-ink);font-size:13px;font-weight:600;transition:all .2s ease}.model-benchmark__concurrency input:focus{outline:none;border-color:var(--mb-accent);box-shadow:0 0 0 3px var(--mb-accent-soft)}.model-benchmark__panel--sessions{flex:1;min-height:220px}.model-benchmark__panel-head,.model-benchmark__main-head,.model-benchmark__result-head,.model-benchmark__feedback{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.model-benchmark__panel-head--tight{gap:10px;align-items:center}.model-benchmark__panel-title{font-size:14px;font-weight:700;color:var(--mb-ink)}.model-benchmark__composer-divider{height:1px;margin:4px 0;background:linear-gradient(90deg,transparent,rgba(243,156,18,.12) 20%,var(--mb-line) 80%,transparent)}.model-benchmark__composer-hint{margin-top:6px;font-size:11px;line-height:1.5;color:var(--mb-accent-deep);font-weight:500}.model-benchmark__segmented{display:flex;gap:4px;padding:3px;background:var(--mb-surface-soft);border-radius:10px;border:1px solid var(--mb-line)}.model-benchmark__segmented--stack{flex-direction:column;padding:4px;background:transparent;border:none;gap:8px}.model-benchmark__segmented-button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-height:32px;padding:6px 10px;border-radius:7px;cursor:pointer;text-align:center;border:none;background:transparent;color:var(--mb-muted);font-size:12px;font-weight:600}.model-benchmark__segmented-button strong{font-size:13px;font-weight:700;color:inherit}.model-benchmark__segmented-button span{font-size:11px;line-height:1.4;color:inherit;opacity:.7}.model-benchmark__segmented-button:hover{color:var(--mb-ink);background:#0f172a0a}.model-benchmark__segmented-button--active{background:#fff;color:var(--mb-accent-deep);box-shadow:0 2px 6px #0f172a14}.model-benchmark__segmented-button--active:hover{background:#fff}.model-benchmark__segmented--stack .model-benchmark__segmented-button{align-items:flex-start;text-align:left;padding:10px 12px;border:1px solid var(--mb-line);background:#fff;border-radius:10px}.model-benchmark__segmented--stack .model-benchmark__segmented-button--active{border-color:var(--mb-accent);background:var(--mb-accent-soft);box-shadow:0 4px 12px #f39c1214}.model-benchmark__toolbar-button,.model-benchmark__preset-chip,.model-benchmark__score-chip,.model-benchmark__ghost-button,.model-benchmark__primary-button,.model-benchmark__picker-card,.model-benchmark__session-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--mb-line);background:#fff;color:var(--mb-ink);transition:all .2s cubic-bezier(.4,0,.2,1)}.model-benchmark__field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.model-benchmark__field{display:flex;flex-direction:column;gap:4px;min-width:0}.model-benchmark__field span{font-size:11px;font-weight:600;color:var(--mb-muted)}.model-benchmark__field--full{grid-column:1/-1}.model-benchmark__select,.model-benchmark__prompt{width:100%;box-sizing:border-box;color:var(--mb-ink);background:#fff;font-size:13px}.model-benchmark__prompt{border:1px solid var(--mb-line);border-radius:8px}.model-benchmark__prompt:focus{outline:none;border-color:var(--mb-accent);box-shadow:0 0 0 3px var(--mb-accent-soft)}.model-benchmark__select{border:none}.model-benchmark__select .t-input{border:1px solid var(--mb-line);border-radius:8px;font-size:13px}.model-benchmark__select.t-is-focused .t-input,.model-benchmark__select .t-input:focus-within{border-color:var(--mb-accent);box-shadow:0 0 0 3px var(--mb-accent-soft)}.model-benchmark__picker-toolbar,.model-benchmark__picker-controls,.model-benchmark__score-row,.model-benchmark__action-row,.model-benchmark__preset-list{display:flex;flex-wrap:wrap;gap:6px}.model-benchmark__picker-controls{display:flex;flex-direction:column;gap:8px}.model-benchmark__picker-actions{display:flex;align-items:center;gap:4px}.model-benchmark__action-divider{width:1px;height:14px;background:var(--mb-line-strong);margin:0 4px;opacity:.6}.model-benchmark__multi-select-wrap{display:flex;flex-direction:column}.model-benchmark__search{flex:1;min-width:0}.model-benchmark__search input{width:100%;height:36px;padding:0 12px;border:1px solid var(--mb-line);border-radius:8px;box-sizing:border-box;background:#fff;color:var(--mb-ink);font-size:13px;transition:all .2s ease}.model-benchmark__search input:focus{outline:none;border-color:var(--mb-accent);box-shadow:0 0 0 3px var(--mb-accent-soft)}.model-benchmark__toolbar-button,.model-benchmark__preset-chip,.model-benchmark__score-chip,.model-benchmark__ghost-button{min-height:28px;padding:0 10px;border-radius:6px;cursor:pointer;font-size:11px;font-weight:600;box-shadow:0 1px 2px #0f172a0a;transition:all .2s cubic-bezier(.4,0,.2,1)}.model-benchmark__toolbar-button:hover,.model-benchmark__preset-chip:hover,.model-benchmark__score-chip:hover,.model-benchmark__ghost-button:hover{background:var(--mb-surface-soft);border-color:var(--mb-line-strong);transform:translateY(-1px);box-shadow:0 2px 4px #0f172a14}.model-benchmark__toolbar-button:active,.model-benchmark__preset-chip:active,.model-benchmark__score-chip:active,.model-benchmark__ghost-button:active{transform:translateY(0);box-shadow:none}.model-benchmark__toolbar-button:disabled,.model-benchmark__preset-chip:disabled,.model-benchmark__score-chip:disabled,.model-benchmark__ghost-button:disabled{cursor:not-allowed;opacity:.55;transform:none;box-shadow:none}.model-benchmark__preset-chip,.model-benchmark__score-chip,.model-benchmark__ghost-button{background:#fff;border:1px solid var(--mb-line-strong);color:var(--mb-ink)}.model-benchmark__preset-chip:hover,.model-benchmark__score-chip:hover,.model-benchmark__ghost-button:hover{background:var(--mb-surface-soft);border-color:var(--mb-accent);color:var(--mb-accent-deep)}.model-benchmark__preset-chip{border-radius:4px}.model-benchmark__score-chip{border-radius:999px;min-width:44px;justify-content:center}.model-benchmark__ghost-button{border-radius:6px}.model-benchmark__status,.model-benchmark__queue-card-badge,.model-benchmark__spotlight-meta span{box-shadow:none!important;cursor:default!important;transform:none!important;font-weight:700;letter-spacing:.02em}.model-benchmark__toolbar-button,.model-benchmark__ghost-button{color:var(--mb-muted)}.model-benchmark__toolbar-button--active{border-color:var(--mb-accent);background:var(--mb-accent-soft);color:var(--mb-accent-deep)}.model-benchmark__multi-select{width:100%}.model-benchmark__multi-select .t-input{border:1px solid var(--mb-line);border-radius:8px;font-size:13px}.model-benchmark__multi-select.t-is-focused .t-input,.model-benchmark__multi-select .t-input:focus-within{border-color:var(--mb-accent);box-shadow:0 0 0 3px var(--mb-accent-soft)}.model-benchmark__select-actions{display:flex;gap:8px;padding:6px 12px;border-bottom:1px solid var(--mb-line)}.model-benchmark__select-actions button{padding:2px 10px;border:1px solid var(--mb-line);border-radius:6px;background:#fff;font-size:12px;color:var(--mb-muted);cursor:pointer;transition:all .15s}.model-benchmark__select-actions button:hover{border-color:var(--mb-accent);color:var(--mb-accent-deep)}.model-benchmark__ghost-button--active,.model-benchmark__score-chip--active,.model-benchmark__preset-chip--active{border-color:var(--mb-accent);background:var(--mb-accent-soft);color:var(--mb-accent-deep)}.model-benchmark__ghost-button--danger{border-color:#e1705533;background:#e170550d;color:var(--mb-danger)}.model-benchmark__prompt{min-height:100px;padding:12px;resize:vertical;line-height:1.6}.model-benchmark__picker-summary{display:flex;align-items:center;gap:4px;padding:2px 0}.model-benchmark__picker-summary strong{font-size:13px;color:var(--mb-accent-deep);font-weight:700}.model-benchmark__picker-summary span{font-size:11px;color:var(--mb-muted);font-weight:500}.model-benchmark__picker-grid,.model-benchmark__queue-grid,.model-benchmark__result-grid{display:grid;gap:8px}.model-benchmark__picker-grid{grid-template-columns:1fr;max-height:300px;overflow:auto}.model-benchmark__picker-empty{display:flex;align-items:center;justify-content:center;min-height:80px;padding:16px;border:1px dashed var(--mb-line-strong);border-radius:8px;color:var(--mb-muted);background:#fff6;font-size:12px}.model-benchmark__queue-grid{grid-template-columns:1fr}.model-benchmark__result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.model-benchmark__picker-card{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:8px;min-width:0;cursor:pointer;text-align:left}.model-benchmark__picker-card:hover{border-color:var(--mb-line-strong);background:var(--mb-surface-soft)}.model-benchmark__picker-card--active{border-color:var(--mb-accent);background:var(--mb-accent-soft);box-shadow:0 4px 12px #f39c120f}.model-benchmark__picker-card--active:hover{border-color:var(--mb-accent);background:var(--mb-accent-soft-strong)}.model-benchmark__picker-card-main{min-width:0}.model-benchmark__picker-card-title,.model-benchmark__result-title,.model-benchmark__queue-card strong{font-size:13px;font-weight:700;color:var(--mb-ink);line-height:1.4;overflow-wrap:anywhere}.model-benchmark__picker-card-meta,.model-benchmark__picker-card-state,.model-benchmark__queue-card span,.model-benchmark__result-subtitle,.model-benchmark__result-metrics,.model-benchmark__session-meta{font-size:11px;color:var(--mb-muted);line-height:1.5;overflow-wrap:anywhere}.model-benchmark__queue-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:6px;min-width:0;min-height:44px;border:1px solid var(--mb-accent-soft-strong);background:#fff;box-shadow:0 2px 8px #f39c120a}.model-benchmark__queue-card--more{align-items:center;justify-content:center;text-align:center;font-weight:700;color:var(--mb-accent-deep);font-size:11px}.model-benchmark__queue-card-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:0}.model-benchmark__queue-card-copy strong{font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.model-benchmark__queue-card-copy span{font-size:10px;line-height:1.2;display:block}.model-benchmark__queue-card-badge{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:18px;padding:0 4px;border-radius:4px;background:var(--mb-accent-soft);color:var(--mb-accent-deep);font-size:10px;font-weight:700}.model-benchmark__primary-button{min-height:40px;padding:0 20px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--mb-accent),var(--mb-accent-deep));border:none;box-shadow:0 4px 12px #f39c1233}.model-benchmark__primary-button:hover{transform:translateY(-1px);box-shadow:0 6px 16px #f39c1240}.model-benchmark__primary-button:active{transform:translateY(0)}.model-benchmark__primary-button:disabled{cursor:not-allowed;opacity:.5;transform:none!important;box-shadow:none!important}.model-benchmark__session-list{display:flex;flex-direction:column;gap:6px;min-height:0;overflow-y:auto;padding:2px 8px 2px 2px}.model-benchmark__session-list::-webkit-scrollbar{width:4px}.model-benchmark__session-list::-webkit-scrollbar-thumb{background:var(--mb-line-strong);border-radius:2px}.model-benchmark__session-list::-webkit-scrollbar-track{background:transparent}.model-benchmark__session-row{display:flex;gap:4px;align-items:center}.model-benchmark__session-empty{padding:24px 12px;border:1px dashed var(--mb-line-strong);border-radius:10px;background:var(--mb-surface-soft);color:var(--mb-muted);font-size:12px;line-height:1.6;text-align:center}.model-benchmark__session-item{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;border-radius:8px;cursor:pointer;text-align:left;min-width:0;min-height:82px}.model-benchmark__session-item:hover{border-color:var(--mb-line-strong);background:var(--mb-surface-soft)}.model-benchmark__session-item--active{border-color:var(--mb-accent);background:var(--mb-accent-soft);box-shadow:0 4px 12px #f39c120d}.model-benchmark__session-delete{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;height:28px;min-width:28px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--mb-muted);font-size:14px;cursor:pointer;transition:all .2s ease;opacity:.4}.model-benchmark__session-delete:hover{opacity:1;color:var(--mb-danger);background:#e1705514;border-color:#e1705526}.model-benchmark__session-title{font-size:12px;font-weight:700;color:var(--mb-ink);line-height:1.4}.model-benchmark__session-models{font-size:11px;line-height:1.45;color:var(--mb-ink);opacity:.82;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow-wrap:anywhere}.model-benchmark__main-head{align-items:center}.model-benchmark__spotlight{display:flex;justify-content:space-between;gap:16px;padding:16px;background:linear-gradient(135deg,#f39c120d,#fff)}.model-benchmark__spotlight-copy p{margin:8px 0 0;color:var(--mb-muted);font-size:13px;line-height:1.6}.model-benchmark__spotlight-meta{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px}.model-benchmark__spotlight-meta span{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--mb-accent-soft-strong);background:#fff;color:var(--mb-accent-deep);font-size:11px;font-weight:600}.model-benchmark__result-card{display:flex;flex-direction:column;gap:12px;padding:14px}.model-benchmark__result-card--completed{border-color:#00b89426;box-shadow:0 4px 12px #00b8940a}.model-benchmark__result-card--failed{border-color:#e1705526;background:#fffc}.model-benchmark__result-head{align-items:center}.model-benchmark__result-heading{flex:1;min-width:0}.model-benchmark__result-rank{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--mb-surface-soft);color:var(--mb-ink);font-size:12px;font-weight:700;border:1px solid var(--mb-line)}.model-benchmark__status,.model-benchmark__queue-card-badge,.model-benchmark__spotlight-meta span{box-shadow:none!important;cursor:default!important;transform:none!important;font-weight:700;letter-spacing:.01em;border-radius:4px;font-size:10px;padding:2px 6px;border:1px solid transparent}.model-benchmark__status{display:inline-flex;align-items:center;background:#f1f5f9;color:#64748b}.model-benchmark__status--completed{background:#00b8940f;color:var(--mb-success);border-color:#00b8941f}.model-benchmark__status--failed{background:#e170550f;color:var(--mb-danger);border-color:#e170551f}.model-benchmark__status--running{background:#5a4fcf0f;color:var(--mb-secondary);border-color:#5a4fcf1f}.model-benchmark__result-metrics{display:flex;flex-wrap:wrap;gap:6px}.model-benchmark__preview{border-radius:8px;overflow:hidden;background:#0f172a;border:1px solid var(--mb-line)}.model-benchmark__preview-image,.model-benchmark__preview-video{display:block;width:100%;max-height:300px;-o-object-fit:contain;object-fit:contain}.model-benchmark__preview-audio-shell{display:flex;flex-direction:column;gap:8px;padding:12px}.model-benchmark__preview-audio-shell audio{width:100%}.model-benchmark__preview-text{margin:0;padding:12px;max-height:240px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:11px;line-height:1.6;color:#fff}.model-benchmark__raw-data{margin-top:10px;border-top:1px solid var(--mb-line);padding-top:8px;width:100%}.model-benchmark__raw-data summary{font-size:11px;font-weight:700;color:var(--mb-accent-deep);cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:4px 0}.model-benchmark__raw-data summary:hover{opacity:.8}.model-benchmark__raw-data summary:before{content:"›";font-size:16px;line-height:1;transition:transform .2s;font-weight:400}.model-benchmark__raw-data[open] summary:before{transform:rotate(90deg)}.model-benchmark__raw-data pre{margin:8px 0 0;padding:10px;background:#0f172a;color:#cbd5e1;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:11px;line-height:1.6;border-radius:6px;max-height:240px;overflow:auto;white-space:pre-wrap;word-break:break-all;border:1px solid rgba(255,255,255,.05)}.model-benchmark__raw-data pre::-webkit-scrollbar{width:5px}.model-benchmark__raw-data pre::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.model-benchmark__preview-empty,.model-benchmark__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:200px;padding:20px;border:1px dashed var(--mb-line-strong);color:var(--mb-muted);text-align:center;background:#fff6;font-size:12px}.model-benchmark__preview-empty .model-benchmark__raw-data,.model-benchmark__empty .model-benchmark__raw-data{width:100%;text-align:left}.model-benchmark__queue-count{display:inline-flex;align-items:baseline;gap:4px;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--mb-accent-soft-strong);background:#fff}.model-benchmark__queue-count strong{font-size:14px;line-height:1;color:var(--mb-accent-deep)}.model-benchmark__queue-count span{font-size:10px;color:var(--mb-muted);line-height:1;font-weight:600}.model-benchmark__error{padding:8px 10px;border-radius:8px;background:#e170550d;color:var(--mb-danger);font-size:11px;border:1px solid rgba(225,112,85,.1)}@media(max-width:900px){.model-benchmark{grid-template-columns:300px minmax(0,1fr)}}@media(max-width:720px){.model-benchmark{grid-template-columns:240px minmax(0,1fr)}.model-benchmark__sidebar{padding:16px 10px}.model-benchmark__main{padding:16px}}@media(max-width:540px){.model-benchmark{grid-template-columns:minmax(0,1fr)}.model-benchmark__sidebar{border-right:none;border-bottom:1px solid var(--mb-line)}.model-benchmark__result-grid{grid-template-columns:1fr}}@media(max-width:480px){.model-benchmark__main,.model-benchmark__sidebar{padding:12px}.model-benchmark__main-shell{padding:10px}.model-benchmark__hero-title,.model-benchmark h3{font-size:18px}.model-benchmark__hero-stats,.model-benchmark__summary-strip,.model-benchmark__segmented,.model-benchmark__field-grid,.model-benchmark__queue-grid,.model-benchmark__config-main{grid-template-columns:1fr}.model-benchmark__config-main{gap:12px}.model-benchmark__summary-strip{min-width:0}.model-benchmark__main-head,.model-benchmark__panel-head,.model-benchmark__feedback,.model-benchmark__spotlight{flex-direction:column}.model-benchmark__picker-controls{flex-direction:column;align-items:stretch}}
|