aitu-app 0.5.14 → 0.5.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aitu-app might be problematic. Click here for more details.

Files changed (110) hide show
  1. package/README.md +3 -2
  2. package/assets/{ChatMessagesArea-CkUX81uB.js → ChatMessagesArea-CJPMwgOQ.js} +3 -3
  3. package/assets/{ToolboxDrawer-By1XMh8B.js → ToolboxDrawer-BZkRey45.js} +1 -1
  4. package/assets/{ai-analyze-Db-iXol6.js → ai-analyze-CKKkojLn.js} +1 -1
  5. package/assets/{arc-ajYHRRnk.js → arc-DpZjyIR9.js} +1 -1
  6. package/assets/{arc-BZXVqUcI.js → arc-amy12ZHI.js} +1 -1
  7. package/assets/{batch-image-generation-Baqb01Lm.js → batch-image-generation-CqSButZp.js} +1 -1
  8. package/assets/{blockDiagram-38ab4fdb-BT3H_WVv.js → blockDiagram-38ab4fdb-Bb_sM5Hm.js} +1 -1
  9. package/assets/{blockDiagram-38ab4fdb-u0xYP3Lt.js → blockDiagram-38ab4fdb-DO5SLxgD.js} +1 -1
  10. package/assets/{c4Diagram-3d4e48cf-CBvM6zjM.js → c4Diagram-3d4e48cf-D1hzTotE.js} +1 -1
  11. package/assets/{c4Diagram-3d4e48cf-WOIEVidH.js → c4Diagram-3d4e48cf-IYlxbdWH.js} +1 -1
  12. package/assets/channel-DuH6cax_.js +1 -0
  13. package/assets/channel-V941kNNl.js +1 -0
  14. package/assets/{classDiagram-70f12bd4-Cl9U1r5F.js → classDiagram-70f12bd4-CMCkiBrF.js} +1 -1
  15. package/assets/{classDiagram-70f12bd4-BMutcvFi.js → classDiagram-70f12bd4-C_DG-_VE.js} +1 -1
  16. package/assets/{classDiagram-v2-f2320105-C0agtbR4.js → classDiagram-v2-f2320105-DdbTRsFm.js} +1 -1
  17. package/assets/{classDiagram-v2-f2320105-tCBzATK6.js → classDiagram-v2-f2320105-Y5yPoT7w.js} +1 -1
  18. package/assets/clone-BoLnjeh7.js +1 -0
  19. package/assets/clone-DufRhyQM.js +1 -0
  20. package/assets/{createText-2e5e7dd3-CZ9_fscE.js → createText-2e5e7dd3-DWMoiN14.js} +1 -1
  21. package/assets/{createText-2e5e7dd3-idrqgJjU.js → createText-2e5e7dd3-Q_TpnKHS.js} +1 -1
  22. package/assets/{edges-e0da2a9e-C-RyePMV.js → edges-e0da2a9e-Br_hn5Hn.js} +1 -1
  23. package/assets/{edges-e0da2a9e-DJXAjJSL.js → edges-e0da2a9e-DMfYzMhl.js} +1 -1
  24. package/assets/{erDiagram-9861fffd-x2Kcy95-.js → erDiagram-9861fffd-8s6fny9G.js} +1 -1
  25. package/assets/{erDiagram-9861fffd-DWJR_3zL.js → erDiagram-9861fffd-CslzjwB2.js} +1 -1
  26. package/assets/{flowDb-956e92f1-CF6y18Tn.js → flowDb-956e92f1-BsxQxnaW.js} +1 -1
  27. package/assets/{flowDb-956e92f1-BgKjOIdz.js → flowDb-956e92f1-Bsz7tEUu.js} +1 -1
  28. package/assets/{flowDiagram-66a62f08-CSAllSFf.js → flowDiagram-66a62f08-C0iQ7Eg0.js} +1 -1
  29. package/assets/{flowDiagram-66a62f08-BPPw0wPU.js → flowDiagram-66a62f08-DLXaK0x0.js} +1 -1
  30. package/assets/flowDiagram-v2-96b9c2cf-Be_fSVIi.js +1 -0
  31. package/assets/flowDiagram-v2-96b9c2cf-C-_-kXrI.js +1 -0
  32. package/assets/{flowchart-elk-definition-4a651766-DWFN9DN3.js → flowchart-elk-definition-4a651766-2JQap1Bs.js} +1 -1
  33. package/assets/{flowchart-elk-definition-4a651766-9XSRJbsr.js → flowchart-elk-definition-4a651766-UQLaW6cl.js} +1 -1
  34. package/assets/{ganttDiagram-c361ad54-D9tbz9tQ.js → ganttDiagram-c361ad54-Cfdrec1H.js} +1 -1
  35. package/assets/{ganttDiagram-c361ad54-ot5pUYpT.js → ganttDiagram-c361ad54-hShkYpY_.js} +1 -1
  36. package/assets/{gitGraphDiagram-72cf32ee-C6qFzgGh.js → gitGraphDiagram-72cf32ee-CJw4loHZ.js} +1 -1
  37. package/assets/{gitGraphDiagram-72cf32ee-BFV3Mt8C.js → gitGraphDiagram-72cf32ee-D6obWSUI.js} +1 -1
  38. package/assets/{graph-BxwlF7JS.js → graph-CUK2kA3Q.js} +1 -1
  39. package/assets/{graph-D-2Ldvxg.js → graph-DvHs9g2k.js} +1 -1
  40. package/assets/{grid-image-cM9AmYC8.js → grid-image-DioDaenp.js} +1 -1
  41. package/assets/{has-CgdIPiQG.js → has-C9yYx3eK.js} +1 -1
  42. package/assets/{hasIn-4iY02rGN.js → hasIn-DZErb2GY.js} +1 -1
  43. package/assets/{index-3862675e-CVZnpwDN.js → index-3862675e-CmpgM8FI.js} +1 -1
  44. package/assets/{index-3862675e-DqdI9cab.js → index-3862675e-DIpatAx8.js} +1 -1
  45. package/assets/{index-DBWqXBIQ.js → index-6dh_xpWk.js} +1 -1
  46. package/assets/{index-DWUAFoZG.js → index-BBCAc4Al.js} +9 -9
  47. package/assets/{index-BicRPzXC.js → index-BENzx6Jm.js} +1 -1
  48. package/assets/{index-BwSGXyRr.js → index-CMnHM-d8.js} +4 -4
  49. package/assets/{index-e05Rs4M6.js → index-D6IbVyW6.js} +1 -1
  50. package/assets/{index-CkpXFt8n.js → index-DDjAsbde.js} +1 -1
  51. package/assets/{index-Dn0YtZ2R.js → index-Dg-P8uA3.js} +1 -1
  52. package/assets/{index-CrxF9gFe.js → index-JzVvCLEO.js} +1 -1
  53. package/assets/{infoDiagram-f8f76790-FKC1Sy9Y.js → infoDiagram-f8f76790-DVba3P4U.js} +1 -1
  54. package/assets/{infoDiagram-f8f76790-CnrpwoOt.js → infoDiagram-f8f76790-n-jV57cF.js} +1 -1
  55. package/assets/{inspiration-board-B_-BBBHt.js → inspiration-board--PQTKq9U.js} +1 -1
  56. package/assets/{isEmpty-Dj2GV0v-.js → isEmpty-CRiX5iwN.js} +1 -1
  57. package/assets/{journeyDiagram-49397b02-B7fP21sU.js → journeyDiagram-49397b02-DxSFNQYs.js} +1 -1
  58. package/assets/{journeyDiagram-49397b02-Dp3X9XWq.js → journeyDiagram-49397b02-WGL-3jNv.js} +1 -1
  59. package/assets/{layout-BD3yCK_X.js → layout-25V5jGUW.js} +1 -1
  60. package/assets/{layout-DHHYqX7p.js → layout-CawIP_cF.js} +1 -1
  61. package/assets/{line-B3bNrkzn.js → line-D5ZQcCU6.js} +1 -1
  62. package/assets/{line-B86HLuqu.js → line-DuKdCx_E.js} +1 -1
  63. package/assets/{linear-wCAlMhOS.js → linear-3V_n7zlW.js} +1 -1
  64. package/assets/{linear-DU2Ciymb.js → linear-BlVhwFrV.js} +1 -1
  65. package/assets/{mermaid.core-DfVvnpgz.js → mermaid.core--Np12uGY.js} +4 -4
  66. package/assets/{mindmap-definition-fc14e90a-D1sxE3xG.js → mindmap-definition-fc14e90a-C96nL64E.js} +1 -1
  67. package/assets/{mindmap-definition-fc14e90a-YuSOJC7P.js → mindmap-definition-fc14e90a-UZifAYnn.js} +1 -1
  68. package/assets/{photo-wall-splitter-BVU2e0aS.js → photo-wall-splitter-DZyQuDUg.js} +1 -1
  69. package/assets/{pick-Cvlwra4g.js → pick-B51S9oWq.js} +1 -1
  70. package/assets/{pieDiagram-8a3498a8-B6mJUqro.js → pieDiagram-8a3498a8-B_UU-v6b.js} +1 -1
  71. package/assets/{pieDiagram-8a3498a8-B91bWgo_.js → pieDiagram-8a3498a8-DXEMg8-z.js} +1 -1
  72. package/assets/{quadrantDiagram-120e2f19-BxS8fQEz.js → quadrantDiagram-120e2f19-BpCIEZWH.js} +1 -1
  73. package/assets/{quadrantDiagram-120e2f19-DwudONqx.js → quadrantDiagram-120e2f19-THiHerb8.js} +1 -1
  74. package/assets/{requirementDiagram-deff3bca-DygaMIoy.js → requirementDiagram-deff3bca-BLEvJckC.js} +1 -1
  75. package/assets/{requirementDiagram-deff3bca-v9xlgfS8.js → requirementDiagram-deff3bca-qJ4hHh6O.js} +1 -1
  76. package/assets/{sankeyDiagram-04a897e0-BXCiXiyw.js → sankeyDiagram-04a897e0-C5moR6iD.js} +1 -1
  77. package/assets/{sankeyDiagram-04a897e0-BV23dp4l.js → sankeyDiagram-04a897e0-Clk-gmpQ.js} +1 -1
  78. package/assets/{sequenceDiagram-704730f1-CObRpNi4.js → sequenceDiagram-704730f1-Ch9GmBP7.js} +1 -1
  79. package/assets/{sequenceDiagram-704730f1-Ck69A6wI.js → sequenceDiagram-704730f1-DRHB_a_K.js} +1 -1
  80. package/assets/{settings-dialog-BlCO49C4.js → settings-dialog-Cgmye4jO.js} +1 -1
  81. package/assets/{stateDiagram-587899a1-J_G6I0oo.js → stateDiagram-587899a1-Bu42pkUv.js} +1 -1
  82. package/assets/{stateDiagram-587899a1-z-tKclr3.js → stateDiagram-587899a1-bnuzZWVC.js} +1 -1
  83. package/assets/{stateDiagram-v2-d93cdb3a-DsThtOzP.js → stateDiagram-v2-d93cdb3a-3bX_yI1j.js} +1 -1
  84. package/assets/{stateDiagram-v2-d93cdb3a-XIvq5t8a.js → stateDiagram-v2-d93cdb3a-DLzO3ON3.js} +1 -1
  85. package/assets/{styles-6aaf32cf-1fjuNMUk.js → styles-6aaf32cf-CyzTJ9FB.js} +1 -1
  86. package/assets/{styles-6aaf32cf-DT2rVNfQ.js → styles-6aaf32cf-qL7GgrGp.js} +1 -1
  87. package/assets/{styles-9a916d00-fLeUSina.js → styles-9a916d00-DYu1WXui.js} +1 -1
  88. package/assets/{styles-9a916d00-q64Umkis.js → styles-9a916d00-Dv_u24Fv.js} +1 -1
  89. package/assets/{styles-c10674c1-CtYpjMYU.js → styles-c10674c1-C8mVn82x.js} +1 -1
  90. package/assets/{styles-c10674c1-BWlxVc3Q.js → styles-c10674c1-CBAvChyC.js} +1 -1
  91. package/assets/{svgDrawCommon-08f97a94-C_DhKfny.js → svgDrawCommon-08f97a94-Cma2KGuK.js} +1 -1
  92. package/assets/{svgDrawCommon-08f97a94-DSBqmUv2.js → svgDrawCommon-08f97a94-p3hABH7b.js} +1 -1
  93. package/assets/{timeline-definition-85554ec2-dTkYwoLF.js → timeline-definition-85554ec2-SwmuytFv.js} +1 -1
  94. package/assets/{timeline-definition-85554ec2-AKpzwLPN.js → timeline-definition-85554ec2-XppLsb9g.js} +1 -1
  95. package/assets/{ttd-dialog-CxiaIUuJ.js → ttd-dialog-DeYFjfFN.js} +5 -5
  96. package/assets/{upload-4sxUU7q_.js → upload-B0RQ9yYL.js} +1 -1
  97. package/assets/{video-recovery-service-BckHbSyK.js → video-recovery-service-XnlUYAOr.js} +1 -1
  98. package/assets/{xychartDiagram-e933f94c-DCmvL0ag.js → xychartDiagram-e933f94c-C8xFRDll.js} +1 -1
  99. package/assets/{xychartDiagram-e933f94c-aqOiXp_u.js → xychartDiagram-e933f94c-CedgK1zZ.js} +1 -1
  100. package/index.html +2 -2
  101. package/package.json +1 -1
  102. package/sw.js +1 -1
  103. package/version.json +3 -7
  104. package/versions.html +374 -0
  105. package/assets/channel-BP25wTsw.js +0 -1
  106. package/assets/channel-HzrLNFUg.js +0 -1
  107. package/assets/clone-B69pF7Y_.js +0 -1
  108. package/assets/clone-oX7o-l4R.js +0 -1
  109. package/assets/flowDiagram-v2-96b9c2cf-B-UGyXRi.js +0 -1
  110. package/assets/flowDiagram-v2-96b9c2cf-Cm596kxZ.js +0 -1
@@ -1,10 +1,10 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-BwSGXyRr.js","./index-DWUAFoZG.js","./index-B2dvADz8.css","./isEmpty-Dj2GV0v-.js","./index-Dn0YtZ2R.js","./index-BicRPzXC.js","./index.dom-C3-224fz.js","./batch-image-generation-Baqb01Lm.js","./index-DBWqXBIQ.js","./pick-Cvlwra4g.js","./hasIn-4iY02rGN.js","./index-C1XdOOAn.css","./batch-image-generation-CbLMWmjk.css","./settings-dialog-QUxXj54T.css"])))=>i.map(i=>d[i]);
2
- import{r as s,I as Nt,_ as Et,C as e,aA as Pe,bU as Tt,bV as Pt,bW as Me,bX as Mt,bY as kt,bZ as Rt,b_ as Ot,b$ as At,c0 as zt,c1 as Lt,c2 as ke,y as we,z as he,c3 as Te,U as be,c4 as at,by as st,bz as rt,c5 as Re,c6 as Ft,c7 as nt,c8 as ot,L as ye,m as X,c9 as it,ca as $t,cb as ge,cc as Ut,cd as Vt,ce as lt,cf as Bt,cg as Gt,ch as Wt,ci as Ht,cj as qt,ck as Kt,cl as Yt,cm as Jt,cn as Se,co as De,cp as Oe,H as Ae,cq as Qt,aW as ct,aQ as de,aY as Xt,aV as Zt,M as ea,Q,N as ze,R as ta,a0 as aa,a1 as sa,cr as Le,cs as Fe,ct as ra,W as pe,aT as na,aU as oa,cu as ia,$ as $e,cv as la,cw as ca,cx as ee,cy as da,cz as ua,cA as ma,u as pa,cB as ha,cC as fa,cD as ga,aD as ne,J as va,n as J,Y as xa,cE as wa,cF as Ue,V as ba,cG as ya,cH as Ie,cI as Ve,cJ as Be,E as Ge,F as We,cK as He,cL as qe}from"./index-DWUAFoZG.js";/* empty css */import{S as _e}from"./index-DBWqXBIQ.js";import"./pick-Cvlwra4g.js";import"./hasIn-4iY02rGN.js";function Ke(a,t){var n=Object.keys(a);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(a);t&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(a,r).enumerable})),n.push.apply(n,o)}return n}function Ye(a){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ke(Object(n),!0).forEach(function(o){Et(a,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach(function(o){Object.defineProperty(a,o,Object.getOwnPropertyDescriptor(n,o))})}return a}var _a={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21ZM23 12C23 18.0751 18.0751 23 12 23C5.92487 23 0.999999 18.0751 1 12C1 5.92487 5.92487 0.999999 12 1C18.0751 1 23 5.92487 23 12ZM15 16.4142L11 12.4142L11 5.5H13L13 11.5858L16.4142 15L15 16.4142Z"}}]},Ne=s.forwardRef(function(a,t){return s.createElement(Nt,Ye(Ye({},a),{},{id:"time",ref:t,icon:_a}))});Ne.displayName="TimeIcon";const dt=({children:a})=>e.jsx("div",{className:"ttd-dialog-panels",children:a}),xe=({label:a,children:t,panelAction:n,panelActionDisabled:o=!1,onTextSubmitInProgress:r,renderTopRight:c,renderSubmitShortcut:m,renderBottomRight:v})=>e.jsxs("div",{className:"ttd-dialog-panel",children:[e.jsxs("div",{className:"ttd-dialog-panel__header",children:[e.jsx("label",{children:a}),c==null?void 0:c()]}),t,e.jsxs("div",{className:Pe("ttd-dialog-panel-button-container",{invisible:!n}),style:{display:"flex",alignItems:"center"},children:[e.jsx("button",{className:"ttd-dialog-panel-button drawnix-button ","data-track":"ttd_click_panel_action",onClick:n&&n.action,disabled:o||r,children:e.jsxs("div",{className:Pe({invisible:r}),children:[n==null?void 0:n.label,(n==null?void 0:n.icon)&&e.jsx("span",{children:n.icon})]})}),!o&&!r&&(m==null?void 0:m()),v==null?void 0:v()]})]}),Je={CTRL_OR_CMD:Tt||Pt?"metaKey":"ctrlKey",ENTER:"Enter"},ut=({input:a,placeholder:t,onChange:n,onKeyboardSubmit:o})=>{const r=s.useRef(null),c=s.useRef(o);return c.current=o,s.useEffect(()=>{if(!c.current)return;const m=r.current;if(m){const v=x=>{var u;x[Je.CTRL_OR_CMD]&&x.key===Je.ENTER&&(x.preventDefault(),(u=c.current)==null||u.call(c))};return m.addEventListener(Me.KEYDOWN,v),()=>{m.removeEventListener(Me.KEYDOWN,v)}}},[]),e.jsx("textarea",{className:"ttd-dialog-input",onChange:n,value:a,placeholder:t,autoFocus:!0,ref:r})},ja=({error:a})=>e.jsxs("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",e.jsx("p",{children:a})]}),mt=({error:a,value:t,loaded:n})=>{const o=[kt,Rt,Ot,At],r={readonly:!0,hideScrollbar:!1,disabledScrollOnNonFocus:!0,themeColors:zt};return e.jsxs("div",{className:"ttd-dialog-output-wrapper",children:[a&&e.jsx(ja,{error:a.message}),e.jsx("div",{style:{opacity:a?"0.15":1},className:"ttd-dialog-output-canvas-container",children:e.jsx(Mt,{value:t,options:r,plugins:o,children:e.jsx(Lt,{})})})]})},pt=()=>e.jsxs("div",{className:"ttd-dialog-submit-shortcut",children:[e.jsx("div",{className:"ttd-dialog-submit-shortcut__key",children:ke("CtrlOrCmd")}),e.jsx("div",{className:"ttd-dialog-submit-shortcut__key",children:ke("Enter")})]}),Ia=`flowchart TD
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CMnHM-d8.js","./index-BBCAc4Al.js","./index-B2dvADz8.css","./isEmpty-CRiX5iwN.js","./index-Dg-P8uA3.js","./index-BENzx6Jm.js","./index.dom-C3-224fz.js","./batch-image-generation-CqSButZp.js","./index-6dh_xpWk.js","./pick-B51S9oWq.js","./hasIn-DZErb2GY.js","./index-C1XdOOAn.css","./batch-image-generation-CbLMWmjk.css","./settings-dialog-QUxXj54T.css"])))=>i.map(i=>d[i]);
2
+ import{r as s,I as Nt,_ as Et,C as e,aA as Pe,bU as Tt,bV as Pt,bW as Me,bX as Mt,bY as kt,bZ as Rt,b_ as Ot,b$ as At,c0 as zt,c1 as Lt,c2 as ke,y as we,z as he,c3 as Te,U as be,c4 as at,by as st,bz as rt,c5 as Re,c6 as Ft,c7 as nt,c8 as ot,L as ye,m as X,c9 as it,ca as $t,cb as ge,cc as Ut,cd as Vt,ce as lt,cf as Bt,cg as Gt,ch as Wt,ci as Ht,cj as qt,ck as Kt,cl as Yt,cm as Jt,cn as Se,co as De,cp as Oe,H as Ae,cq as Qt,aW as ct,aQ as de,aY as Xt,aV as Zt,M as ea,Q,N as ze,R as ta,a0 as aa,a1 as sa,cr as Le,cs as Fe,ct as ra,W as pe,aT as na,aU as oa,cu as ia,$ as $e,cv as la,cw as ca,cx as ee,cy as da,cz as ua,cA as ma,u as pa,cB as ha,cC as fa,cD as ga,aD as ne,J as va,n as J,Y as xa,cE as wa,cF as Ue,V as ba,cG as ya,cH as Ie,cI as Ve,cJ as Be,E as Ge,F as We,cK as He,cL as qe}from"./index-BBCAc4Al.js";/* empty css */import{S as _e}from"./index-6dh_xpWk.js";import"./pick-B51S9oWq.js";import"./hasIn-DZErb2GY.js";function Ke(a,t){var n=Object.keys(a);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(a);t&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(a,r).enumerable})),n.push.apply(n,o)}return n}function Ye(a){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ke(Object(n),!0).forEach(function(o){Et(a,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach(function(o){Object.defineProperty(a,o,Object.getOwnPropertyDescriptor(n,o))})}return a}var _a={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21ZM23 12C23 18.0751 18.0751 23 12 23C5.92487 23 0.999999 18.0751 1 12C1 5.92487 5.92487 0.999999 12 1C18.0751 1 23 5.92487 23 12ZM15 16.4142L11 12.4142L11 5.5H13L13 11.5858L16.4142 15L15 16.4142Z"}}]},Ne=s.forwardRef(function(a,t){return s.createElement(Nt,Ye(Ye({},a),{},{id:"time",ref:t,icon:_a}))});Ne.displayName="TimeIcon";const dt=({children:a})=>e.jsx("div",{className:"ttd-dialog-panels",children:a}),xe=({label:a,children:t,panelAction:n,panelActionDisabled:o=!1,onTextSubmitInProgress:r,renderTopRight:c,renderSubmitShortcut:m,renderBottomRight:v})=>e.jsxs("div",{className:"ttd-dialog-panel",children:[e.jsxs("div",{className:"ttd-dialog-panel__header",children:[e.jsx("label",{children:a}),c==null?void 0:c()]}),t,e.jsxs("div",{className:Pe("ttd-dialog-panel-button-container",{invisible:!n}),style:{display:"flex",alignItems:"center"},children:[e.jsx("button",{className:"ttd-dialog-panel-button drawnix-button ","data-track":"ttd_click_panel_action",onClick:n&&n.action,disabled:o||r,children:e.jsxs("div",{className:Pe({invisible:r}),children:[n==null?void 0:n.label,(n==null?void 0:n.icon)&&e.jsx("span",{children:n.icon})]})}),!o&&!r&&(m==null?void 0:m()),v==null?void 0:v()]})]}),Je={CTRL_OR_CMD:Tt||Pt?"metaKey":"ctrlKey",ENTER:"Enter"},ut=({input:a,placeholder:t,onChange:n,onKeyboardSubmit:o})=>{const r=s.useRef(null),c=s.useRef(o);return c.current=o,s.useEffect(()=>{if(!c.current)return;const m=r.current;if(m){const v=x=>{var u;x[Je.CTRL_OR_CMD]&&x.key===Je.ENTER&&(x.preventDefault(),(u=c.current)==null||u.call(c))};return m.addEventListener(Me.KEYDOWN,v),()=>{m.removeEventListener(Me.KEYDOWN,v)}}},[]),e.jsx("textarea",{className:"ttd-dialog-input",onChange:n,value:a,placeholder:t,autoFocus:!0,ref:r})},ja=({error:a})=>e.jsxs("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",e.jsx("p",{children:a})]}),mt=({error:a,value:t,loaded:n})=>{const o=[kt,Rt,Ot,At],r={readonly:!0,hideScrollbar:!1,disabledScrollOnNonFocus:!0,themeColors:zt};return e.jsxs("div",{className:"ttd-dialog-output-wrapper",children:[a&&e.jsx(ja,{error:a.message}),e.jsx("div",{style:{opacity:a?"0.15":1},className:"ttd-dialog-output-canvas-container",children:e.jsx(Mt,{value:t,options:r,plugins:o,children:e.jsx(Lt,{})})})]})},pt=()=>e.jsxs("div",{className:"ttd-dialog-submit-shortcut",children:[e.jsx("div",{className:"ttd-dialog-submit-shortcut__key",children:ke("CtrlOrCmd")}),e.jsx("div",{className:"ttd-dialog-submit-shortcut__key",children:ke("Enter")})]}),Ia=`flowchart TD
3
3
  A[Christmas] -->|Get money| B(Go shopping)
4
4
  B --> C{Let me think}
5
5
  C -->|One| D[Laptop]
6
6
  C -->|Two| E[iPhone]
7
- C -->|Three| F[Car]`,Ca=()=>{const{appState:a,setAppState:t}=we(),{t:n,language:o}=he(),[r,c]=s.useState({loaded:!1,api:Promise.resolve({parseMermaidToDrawnix:async()=>({elements:[]})})});s.useEffect(()=>{(async()=>{try{const w=await be(()=>import("./index-BwSGXyRr.js").then(I=>I.aq),__vite__mapDeps([0,1,2,3]),import.meta.url);c({loaded:!0,api:Promise.resolve(w)})}catch(w){console.error("Failed to load mermaid library:",w),_(new Error(n("dialog.error.loadMermaid")))}})()},[]);const[m,v]=s.useState(()=>Ia),[x,u]=s.useState(()=>[]),C=s.useDeferredValue(m.trim()),[U,_]=s.useState(null),d=Te();s.useEffect(()=>{(async()=>{try{const w=await r.api;let I;try{I=await w.parseMermaidToDrawnix(C)}catch{I=await w.parseMermaidToDrawnix(C.replace(/"/g,"'"))}const{elements:z}=I;u(z),_(null)}catch(w){_(w)}})()},[C,r]);const j=()=>{if(!x.length)return;let f;const w=at(d);if(w)f=w;else{const I=st.getBoardContainer(d).getBoundingClientRect(),z=[I.width/2,I.height/2],y=d.viewport.zoom,b=rt(d),p=b[0]+z[0]/y,h=b[1]+z[1]/y,L=x,N=Re.getBoundingRectangle(L.filter(A=>!Ft.isGroup(A)).map(A=>Re.getRectangleByPoints(A.points)));f=[p-N.width/2,h-N.height/2]}d.insertFragment({elements:JSON.parse(JSON.stringify(x))},f,nt.paste),f&&requestAnimationFrame(()=>{ot(d,f)}),t({...a,openDialogType:null})};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"ttd-dialog-desc",children:o==="zh"?e.jsxs(e.Fragment,{children:[n("dialog.mermaid.description")," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/flowchart.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.flowchart")}),"、",e.jsx("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.sequence")})," ","和"," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.class")}),n("dialog.mermaid.otherTypes")]}):e.jsxs(e.Fragment,{children:[n("dialog.mermaid.description")," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/flowchart.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.flowchart")}),","," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.sequence")}),","," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.class")}),n("dialog.mermaid.otherTypes")]})}),e.jsxs(dt,{children:[e.jsx(xe,{label:n("dialog.mermaid.syntax"),children:e.jsx(ut,{input:m,placeholder:n("dialog.mermaid.placeholder"),onChange:f=>v(f.target.value),onKeyboardSubmit:()=>{j()}})}),e.jsx(xe,{label:n("dialog.mermaid.preview"),panelAction:{action:()=>{j()},label:n("dialog.mermaid.insert")},renderSubmitShortcut:()=>e.jsx(pt,{}),children:e.jsx(mt,{value:x,loaded:r.loaded,error:U})})]})]})},Qe=a=>a==="zh"?`# 我开始了
7
+ C -->|Three| F[Car]`,Ca=()=>{const{appState:a,setAppState:t}=we(),{t:n,language:o}=he(),[r,c]=s.useState({loaded:!1,api:Promise.resolve({parseMermaidToDrawnix:async()=>({elements:[]})})});s.useEffect(()=>{(async()=>{try{const w=await be(()=>import("./index-CMnHM-d8.js").then(I=>I.aq),__vite__mapDeps([0,1,2,3]),import.meta.url);c({loaded:!0,api:Promise.resolve(w)})}catch(w){console.error("Failed to load mermaid library:",w),_(new Error(n("dialog.error.loadMermaid")))}})()},[]);const[m,v]=s.useState(()=>Ia),[x,u]=s.useState(()=>[]),C=s.useDeferredValue(m.trim()),[U,_]=s.useState(null),d=Te();s.useEffect(()=>{(async()=>{try{const w=await r.api;let I;try{I=await w.parseMermaidToDrawnix(C)}catch{I=await w.parseMermaidToDrawnix(C.replace(/"/g,"'"))}const{elements:z}=I;u(z),_(null)}catch(w){_(w)}})()},[C,r]);const j=()=>{if(!x.length)return;let f;const w=at(d);if(w)f=w;else{const I=st.getBoardContainer(d).getBoundingClientRect(),z=[I.width/2,I.height/2],y=d.viewport.zoom,b=rt(d),p=b[0]+z[0]/y,h=b[1]+z[1]/y,L=x,N=Re.getBoundingRectangle(L.filter(A=>!Ft.isGroup(A)).map(A=>Re.getRectangleByPoints(A.points)));f=[p-N.width/2,h-N.height/2]}d.insertFragment({elements:JSON.parse(JSON.stringify(x))},f,nt.paste),f&&requestAnimationFrame(()=>{ot(d,f)}),t({...a,openDialogType:null})};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"ttd-dialog-desc",children:o==="zh"?e.jsxs(e.Fragment,{children:[n("dialog.mermaid.description")," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/flowchart.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.flowchart")}),"、",e.jsx("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.sequence")})," ","和"," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.class")}),n("dialog.mermaid.otherTypes")]}):e.jsxs(e.Fragment,{children:[n("dialog.mermaid.description")," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/flowchart.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.flowchart")}),","," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.sequence")}),","," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.class")}),n("dialog.mermaid.otherTypes")]})}),e.jsxs(dt,{children:[e.jsx(xe,{label:n("dialog.mermaid.syntax"),children:e.jsx(ut,{input:m,placeholder:n("dialog.mermaid.placeholder"),onChange:f=>v(f.target.value),onKeyboardSubmit:()=>{j()}})}),e.jsx(xe,{label:n("dialog.mermaid.preview"),panelAction:{action:()=>{j()},label:n("dialog.mermaid.insert")},renderSubmitShortcut:()=>e.jsx(pt,{}),children:e.jsx(mt,{value:x,loaded:r.loaded,error:U})})]})]})},Qe=a=>a==="zh"?`# 我开始了
8
8
 
9
9
  - 让我看看是谁搞出了这个 bug 🕵️ ♂️ 🔍
10
10
  - 😯 💣
@@ -40,8 +40,8 @@ import{r as s,I as Nt,_ as Et,C as e,aA as Pe,bU as Tt,bV as Pt,bW as Me,bX as M
40
40
 
41
41
  ### Hello world 👋 🌍 ✨ 💻
42
42
 
43
- #### Wow, a programmer 🤯 ⌨️ 💡 👩 💻`,Sa=()=>{const{appState:a,setAppState:t}=we(),{t:n,language:o}=he(),[r,c]=s.useState({loaded:!1,api:Promise.resolve({parseMarkdownToDrawnix:(f,w)=>null})});s.useEffect(()=>{(async()=>{try{const w=await be(()=>import("./index-Dn0YtZ2R.js"),__vite__mapDeps([4,1,2,5,6]),import.meta.url);c({loaded:!0,api:Promise.resolve(w)})}catch(w){console.error("Failed to load mermaid library:",w),_(new Error(n("dialog.error.loadMermaid")))}})()},[]);const[m,v]=s.useState(()=>Qe(o)),[x,u]=s.useState(()=>[]),C=s.useDeferredValue(m.trim()),[U,_]=s.useState(null),d=Te();s.useEffect(()=>{v(Qe(o))},[o]),s.useEffect(()=>{(async()=>{try{const w=await r.api;let I;try{I=await w.parseMarkdownToDrawnix(C)}catch{I=await w.parseMarkdownToDrawnix(C.replace(/"/g,"'"))}const z=I;z.points=[[0,0]],z&&(u([z]),_(null))}catch(w){_(w)}})()},[C,r]);const j=()=>{if(!x.length)return;let f;const w=at(d);if(w)f=w;else{const z=st.getBoardContainer(d).getBoundingClientRect(),y=[z.width/4,z.height/2-20],b=d.viewport.zoom,p=rt(d),h=p[0]+y[0]/b,L=p[1]+y[1]/b;f=[h,L]}const I=x;d.insertFragment({elements:JSON.parse(JSON.stringify(I))},f,nt.paste),f&&requestAnimationFrame(()=>{ot(d,f)}),t({...a,openDialogType:null})};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"ttd-dialog-desc",children:n("dialog.markdown.description")}),e.jsxs(dt,{children:[e.jsx(xe,{label:n("dialog.markdown.syntax"),children:e.jsx(ut,{input:m,placeholder:n("dialog.markdown.placeholder"),onChange:f=>v(f.target.value),onKeyboardSubmit:()=>{j()}})}),e.jsx(xe,{label:n("dialog.markdown.preview"),panelAction:{action:()=>{j()},label:n("dialog.markdown.insert")},renderSubmitShortcut:()=>e.jsx(pt,{}),children:e.jsx(mt,{value:x,loaded:r.loaded,error:U})})]})]})};function ht(){const{completedTasks:a}=ye(),t=s.useMemo(()=>a.filter(r=>{var c;return r.type===X.IMAGE&&((c=r.result)==null?void 0:c.url)}).map(r=>({id:r.id,type:"image",prompt:r.params.prompt,timestamp:r.completedAt||r.createdAt,imageUrl:r.result.url,width:r.result.width||1024,height:r.result.height||1024,uploadedImages:r.params.uploadedImages})).sort((r,c)=>c.timestamp-r.timestamp),[a]),n=s.useMemo(()=>a.filter(r=>{var c;return r.type===X.VIDEO&&((c=r.result)==null?void 0:c.url)}).map(r=>({id:r.id,type:"video",prompt:r.params.prompt,timestamp:r.completedAt||r.createdAt,imageUrl:r.result.thumbnailUrl||r.result.url,width:r.result.width||400,height:r.result.height||225,previewUrl:r.result.url,downloadUrl:r.result.url,uploadedImage:r.params.uploadedImage})).sort((r,c)=>c.timestamp-r.timestamp),[a]),o=s.useMemo(()=>[...t,...n].sort((r,c)=>c.timestamp-r.timestamp),[t,n]);return{imageHistory:t,videoHistory:n,allHistory:o}}const Xe=(a,t,n)=>{const o=n==="image"?{isGenerating:a,imageLoading:t}:{isGenerating:a,videoLoading:t};window.dispatchEvent(new CustomEvent("ai-generation-state-change",{detail:o}))},ft=(a,t,n)=>{s.useEffect(()=>{const o=r=>{(r.metaKey||r.ctrlKey)&&r.key==="Enter"&&(r.preventDefault(),!a&&t.trim()&&n())};return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o)}},[a,t,n])},gt=a=>{const[t,n]=s.useState(!1),[o,r]=s.useState(!1),c=s.useCallback(v=>{n(v),Xe(v,o,a)},[o,a]),m=s.useCallback(v=>{r(v),Xe(t,v,a)},[t,a]);return{isGenerating:t,isLoading:o,updateIsGenerating:c,updateIsLoading:m}},Da=(a,t,n)=>t==="image"?a==="zh"?"一只可爱的小猫坐在窗台上,阳光透过窗户洒在它的毛发上,背景是温馨的家居环境":"A cute kitten sitting on a windowsill, with sunlight streaming through the window onto its fur, with a cozy home environment in the background":n==="sora"?a==="zh"?"描述视频内容,输入 @ 可引用已创建的角色,如 @username 在海边漫步...":"Describe video content, type @ to reference created characters, e.g. @username walking on the beach...":a==="zh"?"生成一个美丽的日出场景,阳光从山峰后缓缓升起,云朵轻柔地飘动":"Generate a beautiful sunrise scene where the sun slowly rises from behind mountains with clouds gently floating",Na=[1,2,3,4,5,10,20,50,100],Ea="aitu_image_generation_quantity",Ta="aitu_video_generation_quantity",Ce=100,vt=({language:a,type:t,isGenerating:n,hasGenerated:o,canGenerate:r,onGenerate:c,onReset:m,leftContent:v})=>{const x=t==="video"?Ta:Ea,[u,C]=s.useState(()=>{try{const p=localStorage.getItem(x);if(p){const h=parseInt(p,10);if(!isNaN(h)&&h>=1&&h<=Ce)return h}}catch{}return 1}),[U,_]=s.useState(!1),[d,j]=s.useState(()=>u.toString()),f=s.useRef(null);s.useEffect(()=>{j(u.toString());try{localStorage.setItem(x,u.toString())}catch{}},[u,x]),s.useEffect(()=>{const p=h=>{f.current&&!f.current.contains(h.target)&&(_(!1),w())};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[d]);const w=()=>{let p=parseInt(d,10);(isNaN(p)||p<1)&&(p=1),p>Ce&&(p=Ce),j(p.toString()),C(p)},I=p=>{const h=p.target.value;(h===""||/^\d*$/.test(h))&&j(h)},z=p=>{C(p),j(p.toString()),_(!1)},y=()=>{n||_(!U)},b=()=>{c(u)};return e.jsxs("div",{className:"section-actions unified-action-bar",children:[v&&e.jsx("div",{className:"action-bar-left",children:v}),e.jsxs("div",{className:`unified-action-box ${n?"is-generating":""} ${r?"can-generate":""}`,children:[e.jsxs("div",{className:"quantity-section",ref:f,children:[e.jsx("span",{className:"quantity-label",children:a==="zh"?"数量":"Count"}),e.jsxs("div",{className:`quantity-control ${U?"is-open":""} ${n?"is-disabled":""}`,children:[e.jsx("input",{type:"text",inputMode:"numeric",value:d,onChange:I,onBlur:w,"data-track":"ai_click_quantity_input",onClick:()=>!n&&_(!0),disabled:n,className:"quantity-input"}),e.jsx("button",{type:"button","data-track":"ai_click_quantity_toggle",onClick:p=>{p.stopPropagation(),y()},disabled:n,className:"quantity-toggle",children:e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:`quantity-icon ${U?"is-open":""}`,children:e.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),U&&e.jsxs("div",{className:"quantity-dropdown",children:[e.jsx("div",{className:"quantity-dropdown-header",children:a==="zh"?"选择数量":"Select Quantity"}),Na.map(p=>e.jsxs("button",{type:"button","data-track":"ai_click_quantity_select",onClick:()=>z(p),className:`quantity-option ${u===p?"is-selected":""}`,children:[e.jsxs("span",{children:[p," ",t==="video"?a==="zh"?"个":p>1?"videos":"video":a==="zh"?"张":p>1?"images":"image"]}),u===p&&e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"20 6 9 17 4 12"})})]},p))]})]}),e.jsx("div",{className:"action-divider"}),e.jsx("button",{"data-track":"ai_click_generate",onClick:b,disabled:n||!r,className:`generate-button ${n?"loading":""}`,children:n?a==="zh"?"生成中...":"Generating...":o?a==="zh"?"重新生成":"Regenerate":t==="video"?a==="zh"?"生成视频":"Generate Video":a==="zh"?"生成":"Generate"})]}),e.jsx("button",{"data-track":"ai_click_reset",onClick:m,disabled:n,className:"action-button secondary",children:a==="zh"?"重置":"Reset"})]})},xt=({error:a})=>a?e.jsx("div",{className:"form-error",children:a}):null,wt=({visible:a,query:t,position:n,showBelow:o=!1,selectedIndex:r,onSelect:c,onClose:m})=>{const{completedCharacters:v,isLoading:x}=it(),u=s.useRef(null),C=s.useMemo(()=>{if(!t)return v;const d=t.toLowerCase();return v.filter(j=>j.username.toLowerCase().includes(d))},[v,t]);s.useEffect(()=>{if(!a||!u.current)return;const d=u.current.querySelector(".character-mention-popup__item--selected");d&&d.scrollIntoView({block:"nearest"})},[a,r]),s.useEffect(()=>{if(!a)return;const d=j=>{u.current&&!u.current.contains(j.target)&&m()};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[a,m]);const U=s.useCallback(d=>{c(d)},[c]);if(!a)return null;const _={position:"fixed",top:n.top,left:n.left,transform:o?"none":"translateY(-100%)",zIndex:1e4,maxHeight:"200px",overflowY:"auto"};return x?e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:e.jsx("div",{className:"character-mention-popup__empty",children:"加载中..."})}):C.length===0?e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:e.jsx("div",{className:"character-mention-popup__empty",children:t?`未找到 "${t}" 相关角色`:"暂无可用角色"})}):e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:C.map((d,j)=>e.jsxs("div",{className:`character-mention-popup__item ${j===r?"character-mention-popup__item--selected":""}`,onClick:()=>U(d),"data-track":"character_click_mention",children:[e.jsx("div",{className:"character-mention-popup__item-avatar",children:e.jsx($t,{characterId:d.id,profilePictureUrl:d.profilePictureUrl,alt:d.username})}),e.jsxs("span",{className:"character-mention-popup__item-name",children:["@",d.username]})]},d.id))})},Pa={visible:!1,query:"",position:{top:0,left:0},showBelow:!1,startIndex:-1,selectedIndex:0};function bt({enabled:a=!0,onPromptChange:t,prompt:n}){const[o,r]=s.useState(Pa),c=s.useRef(null),{completedCharacters:m}=it(),v=s.useCallback(d=>{if(!c.current)return{top:0,left:0,showBelow:!1};const j=c.current,f=j.getBoundingClientRect(),w=document.createElement("div"),I=window.getComputedStyle(j),z=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","lineHeight","textTransform","wordSpacing","whiteSpace","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing"];w.style.position="absolute",w.style.top="0",w.style.left="-9999px",w.style.visibility="hidden",w.style.whiteSpace="pre-wrap",w.style.overflowWrap="break-word",w.style.overflow="hidden",w.style.width=`${j.clientWidth}px`,z.forEach(E=>{w.style[E]=I.getPropertyValue(E.replace(/([A-Z])/g,"-$1").toLowerCase())}),document.body.appendChild(w);let y=0,b=0;try{const E=j.value.substring(0,d),D=document.createTextNode(E),T=document.createElement("span");T.textContent="​",w.appendChild(D),w.appendChild(T);const P=T.getBoundingClientRect(),g=w.getBoundingClientRect();y=P.top-g.top,b=P.left-g.left}finally{document.body.removeChild(w)}const p=j.scrollTop,h=parseInt(I.lineHeight)||20;let L=f.top+y-p,N=f.left+b;const A=240,H=window.innerWidth;N+A>H-16&&(N=H-A-16),N<16&&(N=16);const S=L<220+16;return S?L=L+h+4:L=L-48,{top:L,left:N,showBelow:S}},[]),x=s.useCallback((d,j)=>{if(!a)return;const f=d.substring(0,j),w=f.lastIndexOf("@");if(w===-1){r(b=>({...b,visible:!1}));return}const I=w>0?d[w-1]:" ";if(!/\s/.test(I)&&w!==0){r(b=>({...b,visible:!1}));return}const z=f.substring(w+1);if(z.includes(" ")){r(b=>({...b,visible:!1}));return}const y=v(j);r({visible:!0,query:z,position:{top:y.top,left:y.left},showBelow:y.showBelow,startIndex:w,selectedIndex:0})},[a,v]),u=s.useCallback(d=>{var z;if(o.startIndex===-1)return;const j=n.substring(0,o.startIndex),f=((z=c.current)==null?void 0:z.selectionStart)||n.length,w=n.substring(f),I=`${j}@${d.username} ${w}`;t(I),r(y=>({...y,visible:!1})),setTimeout(()=>{if(c.current){const y=j.length+d.username.length+2;c.current.focus(),c.current.setSelectionRange(y,y)}},0)},[o.startIndex,n,t]),C=s.useCallback(d=>{if(!o.visible)return;const j=o.query?m.filter(f=>f.username.toLowerCase().includes(o.query.toLowerCase())):m;switch(d.key){case"ArrowDown":d.preventDefault(),r(f=>({...f,selectedIndex:Math.min(f.selectedIndex+1,j.length-1)}));break;case"ArrowUp":d.preventDefault(),r(f=>({...f,selectedIndex:Math.max(f.selectedIndex-1,0)}));break;case"Enter":case"Tab":j.length>0&&(d.preventDefault(),u(j[o.selectedIndex]));break;case"Escape":d.preventDefault(),r(f=>({...f,visible:!1}));break}},[o,m,u]),U=s.useCallback((d,j)=>{t(d),x(d,j)},[t,x]),_=s.useCallback(()=>{r(d=>({...d,visible:!1}))},[]);return{mentionState:o,setMentionState:r,textareaRef:c,completedCharacters:m,handleTextChange:U,handleKeyDown:C,handleCharacterSelect:u,closeMentionPopup:_,calculateMentionPosition:v}}const yt=({prompt:a,onPromptChange:t,presetPrompts:n,language:o,type:r,disabled:c=!1,onError:m,enableMention:v=!0,videoProvider:x})=>{const[u,C]=s.useState(!1),U=s.useRef(null),_=s.useRef(null),[d,j]=s.useState(null),[f,w]=s.useState(0),I=s.useMemo(()=>ge.sortPrompts(r,n).map((P,g)=>({id:`preset-${g}-${P.slice(0,20)}`,content:P,pinned:ge.isPinned(r,P)})),[r,n,f]),z=v&&r==="video"&&x==="sora",{mentionState:y,textareaRef:b,handleTextChange:p,handleKeyDown:h,handleCharacterSelect:L,closeMentionPopup:N}=bt({enabled:z,onPromptChange:t,prompt:a}),A=s.useCallback(()=>{if(_.current&&u){const T=_.current.getBoundingClientRect();j({top:T.top-4,left:T.right})}},[u]);s.useEffect(()=>{if(u)return A(),window.addEventListener("scroll",A,!0),window.addEventListener("resize",A),()=>{window.removeEventListener("scroll",A,!0),window.removeEventListener("resize",A)}},[u,A]),s.useEffect(()=>{const T=P=>{const g=P.target;if(U.current&&!U.current.contains(g)){const V=document.querySelector(".preset-prompt-panel-portal");V!=null&&V.contains(g)||C(!1)}};if(u)return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[u]);const H=s.useCallback(T=>{t(T),m==null||m(null),C(!1)},[t,m]),G=s.useCallback(T=>{const P=I.find(g=>g.id===T);P&&(P.pinned?ge.unpinPrompt(r,P.content):ge.pinPrompt(r,P.content),w(g=>g+1))},[r,I]),S=s.useCallback(T=>{const P=I.find(g=>g.id===T);P&&(ge.deletePrompt(r,P.content),w(g=>g+1))},[r,I]),E=s.useCallback(T=>{const P=T.target.value,g=T.target.selectionStart||0;p(P,g),m==null||m(null)},[p,m]);s.useEffect(()=>{r!=="video"&&N()},[r,N]);const D=()=>{if(!u||!d)return null;const T=o==="zh"?`${r==="image"?"图片":"视频"}描述预设`:`${r==="image"?"Image":"Video"} Description Presets`,P=e.jsx("div",{className:"preset-prompt-panel-portal",style:{position:"fixed",top:d.top,left:d.left,transform:"translate(-100%, -100%)",zIndex:Ut.DIALOG_POPOVER},children:e.jsx(Vt,{title:T,items:I,onSelect:H,onTogglePin:G,onDelete:S,language:o,disabled:c,showCount:!0})});return lt.createPortal(P,document.body)};return e.jsxs("div",{className:"form-field",children:[e.jsxs("div",{className:"form-label-with-icon",children:[e.jsx("label",{className:"form-label",children:o==="zh"?`${r==="image"?"图片":"视频"}描述`:`${r==="image"?"Image":"Video"} Description`}),e.jsx("div",{className:"textarea-with-preset",children:e.jsxs("div",{className:"preset-tooltip-container",ref:U,children:[e.jsx("button",{ref:_,type:"button",className:"preset-icon-button",disabled:c,onClick:()=>C(!u),children:"💡"}),D()]})})]}),e.jsx("textarea",{ref:b,className:"form-textarea",value:a,onChange:E,onKeyDown:h,placeholder:Da(o,r,x),rows:4,disabled:c}),z&&e.jsx(wt,{visible:y.visible,query:y.query,position:y.position,showBelow:y.showBelow,selectedIndex:y.selectedIndex,onSelect:L,onClose:N})]})};function Ma(a){return a.map(t=>t.prompt.trim()).filter(t=>t.length>0).filter((t,n,o)=>o.indexOf(t)===n)}const _t=(a,t,n)=>{const o=a==="image"?Ht(t):qt(t),r=Ma(n);return[...[...a==="video"?Bt():Gt(),...r].filter((x,u,C)=>C.indexOf(x)===u).slice(0,Wt),...o].filter((x,u,C)=>C.indexOf(x)===u).slice(0,Kt)},jt=(a,t,n)=>{!t||!t.trim()||(a==="video"?Yt(t.trim()):Jt(t.trim()))},ka=({model:a,duration:t,size:n,onDurationChange:o,onSizeChange:r,disabled:c=!1})=>{const m=De(a);s.useEffect(()=>{const u=Se(a);m.durationOptions.find(_=>_.value===t)||o(u.duration),m.sizeOptions.find(_=>_.value===n)||r(u.size)},[a]);const v=m.durationOptions.map(u=>({label:u.label,value:u.value})),x=m.sizeOptions.map(u=>({label:`${u.label} (${u.value})`,value:u.value}));return e.jsxs("div",{className:"video-model-options",children:[e.jsxs("div",{className:"video-model-options__row",children:[e.jsx("label",{className:"video-model-options__label",children:"时长"}),e.jsx("div",{className:"video-model-options__control",children:m.durationOptions.length===1?e.jsx("span",{className:"video-model-options__fixed-value",children:m.durationOptions[0].label}):e.jsx(Oe.Group,{value:t,onChange:u=>o(u),disabled:c,variant:"default-filled",size:"small",children:v.map(u=>e.jsx(Oe.Button,{value:u.value,children:u.label},u.value))})})]}),e.jsxs("div",{className:"video-model-options__row",children:[e.jsx("label",{className:"video-model-options__label",children:"尺寸"}),e.jsx("div",{className:"video-model-options__control",children:e.jsx(_e,{value:n,onChange:u=>r(u),disabled:c,size:"small",options:x,style:{width:"200px"}})})]})]})},It={label:"自动",value:"auto",width:0,height:0,description:"由模型自动决定最佳比例"},Ee=[It,{label:"1:1",value:"1:1",width:1,height:1,description:"正方形"},{label:"2:3",value:"2:3",width:2,height:3,description:"竖版标准"},{label:"3:2",value:"3:2",width:3,height:2,description:"横版标准"},{label:"3:4",value:"3:4",width:3,height:4,description:"竖版"},{label:"4:3",value:"4:3",width:4,height:3,description:"横版"},{label:"4:5",value:"4:5",width:4,height:5,description:"竖版社交"},{label:"5:4",value:"5:4",width:5,height:4,description:"横版"},{label:"9:16",value:"9:16",width:9,height:16,description:"竖屏全屏"},{label:"16:9",value:"16:9",width:16,height:9,description:"横屏全屏"},{label:"21:9",value:"21:9",width:21,height:9,description:"超宽屏"}],Ze="auto";function Ra(a){return Ee.find(t=>t.value===a)}const Oa=({value:a,onChange:t,compact:n=!0})=>{const{language:o}=he(),[r,c]=s.useState(!1),m=s.useRef(null),v=s.useMemo(()=>a==="auto"?It:Ra(a),[a]);s.useEffect(()=>{const u=C=>{m.current&&!m.current.contains(C.target)&&c(!1)};return r&&document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[r]);const x=u=>{t(u.value),c(!1)};return n?e.jsxs("div",{className:"aspect-ratio-selector aspect-ratio-selector--compact",ref:m,children:[e.jsx("div",{className:"aspect-ratio-selector__label",children:o==="zh"?"比例":"Ratio"}),e.jsxs("div",{className:`aspect-ratio-selector__trigger ${r?"aspect-ratio-selector__trigger--open":""}`,"data-track":"ai_click_ratio_toggle",onClick:()=>c(!r),children:[e.jsx("span",{className:"aspect-ratio-selector__trigger-value",children:(v==null?void 0:v.label)||a}),e.jsx("span",{className:`aspect-ratio-selector__trigger-icon ${r?"aspect-ratio-selector__trigger-icon--open":""}`,children:"▼"})]}),r&&e.jsx("div",{className:"aspect-ratio-selector__dropdown",children:e.jsx("div",{className:"aspect-ratio-selector__dropdown-grid",children:Ee.map(u=>e.jsx(Ae,{content:u.description,theme:"light",placement:"top",children:e.jsx("div",{className:`aspect-ratio-selector__dropdown-item ${a===u.value?"aspect-ratio-selector__dropdown-item--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>x(u),children:u.label})},u.value))})})]}):e.jsxs("div",{className:"aspect-ratio-selector",children:[e.jsx("div",{className:"aspect-ratio-selector__label",children:o==="zh"?"图片比例":"Aspect Ratio"}),e.jsx("div",{className:"aspect-ratio-selector__options",children:Ee.map(u=>e.jsx(Ae,{content:u.description,theme:"light",placement:"top",children:e.jsx("div",{className:`aspect-ratio-selector__option ${a===u.value?"aspect-ratio-selector__option--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>t(u.value),children:e.jsx("span",{className:"aspect-ratio-selector__option-ratio",children:u.label})})},u.value))})]})};function Ct(){return`scene-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function et(a,t){return{id:Ct(),order:a,duration:t,prompt:""}}function Aa(a,t,n=1){if(a.length===0)return{valid:!1,error:"至少需要一个场景"};for(const r of a){if(r.duration<n)return{valid:!1,error:`场景 ${r.order} 时长不能少于 ${n} 秒`};if(r.duration>t)return{valid:!1,error:`场景 ${r.order} 时长不能超过 ${t} 秒`}}const o=a.find(r=>!r.prompt.trim());return o?{valid:!1,error:`场景 ${o.order} 需要填写提示词`}:{valid:!0}}function za(a){return a.sort((t,n)=>t.order-n.order).map((t,n)=>`Shot ${n+1}:
43
+ #### Wow, a programmer 🤯 ⌨️ 💡 👩 💻`,Sa=()=>{const{appState:a,setAppState:t}=we(),{t:n,language:o}=he(),[r,c]=s.useState({loaded:!1,api:Promise.resolve({parseMarkdownToDrawnix:(f,w)=>null})});s.useEffect(()=>{(async()=>{try{const w=await be(()=>import("./index-Dg-P8uA3.js"),__vite__mapDeps([4,1,2,5,6]),import.meta.url);c({loaded:!0,api:Promise.resolve(w)})}catch(w){console.error("Failed to load mermaid library:",w),_(new Error(n("dialog.error.loadMermaid")))}})()},[]);const[m,v]=s.useState(()=>Qe(o)),[x,u]=s.useState(()=>[]),C=s.useDeferredValue(m.trim()),[U,_]=s.useState(null),d=Te();s.useEffect(()=>{v(Qe(o))},[o]),s.useEffect(()=>{(async()=>{try{const w=await r.api;let I;try{I=await w.parseMarkdownToDrawnix(C)}catch{I=await w.parseMarkdownToDrawnix(C.replace(/"/g,"'"))}const z=I;z.points=[[0,0]],z&&(u([z]),_(null))}catch(w){_(w)}})()},[C,r]);const j=()=>{if(!x.length)return;let f;const w=at(d);if(w)f=w;else{const z=st.getBoardContainer(d).getBoundingClientRect(),y=[z.width/4,z.height/2-20],b=d.viewport.zoom,p=rt(d),h=p[0]+y[0]/b,L=p[1]+y[1]/b;f=[h,L]}const I=x;d.insertFragment({elements:JSON.parse(JSON.stringify(I))},f,nt.paste),f&&requestAnimationFrame(()=>{ot(d,f)}),t({...a,openDialogType:null})};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"ttd-dialog-desc",children:n("dialog.markdown.description")}),e.jsxs(dt,{children:[e.jsx(xe,{label:n("dialog.markdown.syntax"),children:e.jsx(ut,{input:m,placeholder:n("dialog.markdown.placeholder"),onChange:f=>v(f.target.value),onKeyboardSubmit:()=>{j()}})}),e.jsx(xe,{label:n("dialog.markdown.preview"),panelAction:{action:()=>{j()},label:n("dialog.markdown.insert")},renderSubmitShortcut:()=>e.jsx(pt,{}),children:e.jsx(mt,{value:x,loaded:r.loaded,error:U})})]})]})};function ht(){const{completedTasks:a}=ye(),t=s.useMemo(()=>a.filter(r=>{var c;return r.type===X.IMAGE&&((c=r.result)==null?void 0:c.url)}).map(r=>({id:r.id,type:"image",prompt:r.params.prompt,timestamp:r.completedAt||r.createdAt,imageUrl:r.result.url,width:r.result.width||1024,height:r.result.height||1024,uploadedImages:r.params.uploadedImages})).sort((r,c)=>c.timestamp-r.timestamp),[a]),n=s.useMemo(()=>a.filter(r=>{var c;return r.type===X.VIDEO&&((c=r.result)==null?void 0:c.url)}).map(r=>({id:r.id,type:"video",prompt:r.params.prompt,timestamp:r.completedAt||r.createdAt,imageUrl:r.result.thumbnailUrl||r.result.url,width:r.result.width||400,height:r.result.height||225,previewUrl:r.result.url,downloadUrl:r.result.url,uploadedImage:r.params.uploadedImage})).sort((r,c)=>c.timestamp-r.timestamp),[a]),o=s.useMemo(()=>[...t,...n].sort((r,c)=>c.timestamp-r.timestamp),[t,n]);return{imageHistory:t,videoHistory:n,allHistory:o}}const Xe=(a,t,n)=>{const o=n==="image"?{isGenerating:a,imageLoading:t}:{isGenerating:a,videoLoading:t};window.dispatchEvent(new CustomEvent("ai-generation-state-change",{detail:o}))},ft=(a,t,n)=>{s.useEffect(()=>{const o=r=>{(r.metaKey||r.ctrlKey)&&r.key==="Enter"&&(r.preventDefault(),!a&&t.trim()&&n())};return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o)}},[a,t,n])},gt=a=>{const[t,n]=s.useState(!1),[o,r]=s.useState(!1),c=s.useCallback(v=>{n(v),Xe(v,o,a)},[o,a]),m=s.useCallback(v=>{r(v),Xe(t,v,a)},[t,a]);return{isGenerating:t,isLoading:o,updateIsGenerating:c,updateIsLoading:m}},Da=(a,t,n)=>t==="image"?a==="zh"?"一只可爱的小猫坐在窗台上,阳光透过窗户洒在它的毛发上,背景是温馨的家居环境":"A cute kitten sitting on a windowsill, with sunlight streaming through the window onto its fur, with a cozy home environment in the background":n==="sora"?a==="zh"?"描述视频内容,输入 @ 可引用已创建的角色,如 @username 在海边漫步...":"Describe video content, type @ to reference created characters, e.g. @username walking on the beach...":a==="zh"?"生成一个美丽的日出场景,阳光从山峰后缓缓升起,云朵轻柔地飘动":"Generate a beautiful sunrise scene where the sun slowly rises from behind mountains with clouds gently floating",Na=[1,2,3,4,5,10,20,50,100],Ea="aitu_image_generation_quantity",Ta="aitu_video_generation_quantity",Ce=100,vt=({language:a,type:t,isGenerating:n,hasGenerated:o,canGenerate:r,onGenerate:c,onReset:m,leftContent:v})=>{const x=t==="video"?Ta:Ea,[u,C]=s.useState(()=>{try{const p=localStorage.getItem(x);if(p){const h=parseInt(p,10);if(!isNaN(h)&&h>=1&&h<=Ce)return h}}catch{}return 1}),[U,_]=s.useState(!1),[d,j]=s.useState(()=>u.toString()),f=s.useRef(null);s.useEffect(()=>{j(u.toString());try{localStorage.setItem(x,u.toString())}catch{}},[u,x]),s.useEffect(()=>{const p=h=>{f.current&&!f.current.contains(h.target)&&(_(!1),w())};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[d]);const w=()=>{let p=parseInt(d,10);(isNaN(p)||p<1)&&(p=1),p>Ce&&(p=Ce),j(p.toString()),C(p)},I=p=>{const h=p.target.value;(h===""||/^\d*$/.test(h))&&j(h)},z=p=>{C(p),j(p.toString()),_(!1)},y=()=>{n||_(!U)},b=()=>{c(u)};return e.jsxs("div",{className:"section-actions unified-action-bar",children:[v&&e.jsx("div",{className:"action-bar-left",children:v}),e.jsxs("div",{className:`unified-action-box ${n?"is-generating":""} ${r?"can-generate":""}`,children:[e.jsxs("div",{className:"quantity-section",ref:f,children:[e.jsx("span",{className:"quantity-label",children:a==="zh"?"数量":"Count"}),e.jsxs("div",{className:`quantity-control ${U?"is-open":""} ${n?"is-disabled":""}`,children:[e.jsx("input",{type:"text",inputMode:"numeric",value:d,onChange:I,onBlur:w,"data-track":"ai_click_quantity_input",onClick:()=>!n&&_(!0),disabled:n,className:"quantity-input"}),e.jsx("button",{type:"button","data-track":"ai_click_quantity_toggle",onClick:p=>{p.stopPropagation(),y()},disabled:n,className:"quantity-toggle",children:e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:`quantity-icon ${U?"is-open":""}`,children:e.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),U&&e.jsxs("div",{className:"quantity-dropdown",children:[e.jsx("div",{className:"quantity-dropdown-header",children:a==="zh"?"选择数量":"Select Quantity"}),Na.map(p=>e.jsxs("button",{type:"button","data-track":"ai_click_quantity_select",onClick:()=>z(p),className:`quantity-option ${u===p?"is-selected":""}`,children:[e.jsxs("span",{children:[p," ",t==="video"?a==="zh"?"个":p>1?"videos":"video":a==="zh"?"张":p>1?"images":"image"]}),u===p&&e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"20 6 9 17 4 12"})})]},p))]})]}),e.jsx("div",{className:"action-divider"}),e.jsx("button",{"data-track":"ai_click_generate",onClick:b,disabled:n||!r,className:`generate-button ${n?"loading":""}`,children:n?a==="zh"?"生成中...":"Generating...":o?a==="zh"?"重新生成":"Regenerate":t==="video"?a==="zh"?"生成视频":"Generate Video":a==="zh"?"生成":"Generate"})]}),e.jsx("button",{"data-track":"ai_click_reset",onClick:m,disabled:n,className:"action-button secondary",children:a==="zh"?"重置":"Reset"})]})},xt=({error:a})=>a?e.jsx("div",{className:"form-error",children:a}):null,wt=({visible:a,query:t,position:n,showBelow:o=!1,selectedIndex:r,onSelect:c,onClose:m})=>{const{completedCharacters:v,isLoading:x}=it(),u=s.useRef(null),C=s.useMemo(()=>{if(!t)return v;const d=t.toLowerCase();return v.filter(j=>j.username.toLowerCase().includes(d))},[v,t]);s.useEffect(()=>{if(!a||!u.current)return;const d=u.current.querySelector(".character-mention-popup__item--selected");d&&d.scrollIntoView({block:"nearest"})},[a,r]),s.useEffect(()=>{if(!a)return;const d=j=>{u.current&&!u.current.contains(j.target)&&m()};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[a,m]);const U=s.useCallback(d=>{c(d)},[c]);if(!a)return null;const _={position:"fixed",top:n.top,left:n.left,transform:o?"none":"translateY(-100%)",zIndex:1e4,maxHeight:"200px",overflowY:"auto"};return x?e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:e.jsx("div",{className:"character-mention-popup__empty",children:"加载中..."})}):C.length===0?e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:e.jsx("div",{className:"character-mention-popup__empty",children:t?`未找到 "${t}" 相关角色`:"暂无可用角色"})}):e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:C.map((d,j)=>e.jsxs("div",{className:`character-mention-popup__item ${j===r?"character-mention-popup__item--selected":""}`,onClick:()=>U(d),"data-track":"character_click_mention",children:[e.jsx("div",{className:"character-mention-popup__item-avatar",children:e.jsx($t,{characterId:d.id,profilePictureUrl:d.profilePictureUrl,alt:d.username})}),e.jsxs("span",{className:"character-mention-popup__item-name",children:["@",d.username]})]},d.id))})},Pa={visible:!1,query:"",position:{top:0,left:0},showBelow:!1,startIndex:-1,selectedIndex:0};function bt({enabled:a=!0,onPromptChange:t,prompt:n}){const[o,r]=s.useState(Pa),c=s.useRef(null),{completedCharacters:m}=it(),v=s.useCallback(d=>{if(!c.current)return{top:0,left:0,showBelow:!1};const j=c.current,f=j.getBoundingClientRect(),w=document.createElement("div"),I=window.getComputedStyle(j),z=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","lineHeight","textTransform","wordSpacing","whiteSpace","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing"];w.style.position="absolute",w.style.top="0",w.style.left="-9999px",w.style.visibility="hidden",w.style.whiteSpace="pre-wrap",w.style.overflowWrap="break-word",w.style.overflow="hidden",w.style.width=`${j.clientWidth}px`,z.forEach(E=>{w.style[E]=I.getPropertyValue(E.replace(/([A-Z])/g,"-$1").toLowerCase())}),document.body.appendChild(w);let y=0,b=0;try{const E=j.value.substring(0,d),D=document.createTextNode(E),T=document.createElement("span");T.textContent="​",w.appendChild(D),w.appendChild(T);const P=T.getBoundingClientRect(),g=w.getBoundingClientRect();y=P.top-g.top,b=P.left-g.left}finally{document.body.removeChild(w)}const p=j.scrollTop,h=parseInt(I.lineHeight)||20;let L=f.top+y-p,N=f.left+b;const A=240,H=window.innerWidth;N+A>H-16&&(N=H-A-16),N<16&&(N=16);const S=L<220+16;return S?L=L+h+4:L=L-48,{top:L,left:N,showBelow:S}},[]),x=s.useCallback((d,j)=>{if(!a)return;const f=d.substring(0,j),w=f.lastIndexOf("@");if(w===-1){r(b=>({...b,visible:!1}));return}const I=w>0?d[w-1]:" ";if(!/\s/.test(I)&&w!==0){r(b=>({...b,visible:!1}));return}const z=f.substring(w+1);if(z.includes(" ")){r(b=>({...b,visible:!1}));return}const y=v(j);r({visible:!0,query:z,position:{top:y.top,left:y.left},showBelow:y.showBelow,startIndex:w,selectedIndex:0})},[a,v]),u=s.useCallback(d=>{var z;if(o.startIndex===-1)return;const j=n.substring(0,o.startIndex),f=((z=c.current)==null?void 0:z.selectionStart)||n.length,w=n.substring(f),I=`${j}@${d.username} ${w}`;t(I),r(y=>({...y,visible:!1})),setTimeout(()=>{if(c.current){const y=j.length+d.username.length+2;c.current.focus(),c.current.setSelectionRange(y,y)}},0)},[o.startIndex,n,t]),C=s.useCallback(d=>{if(!o.visible)return;const j=o.query?m.filter(f=>f.username.toLowerCase().includes(o.query.toLowerCase())):m;switch(d.key){case"ArrowDown":d.preventDefault(),r(f=>({...f,selectedIndex:Math.min(f.selectedIndex+1,j.length-1)}));break;case"ArrowUp":d.preventDefault(),r(f=>({...f,selectedIndex:Math.max(f.selectedIndex-1,0)}));break;case"Enter":case"Tab":j.length>0&&(d.preventDefault(),u(j[o.selectedIndex]));break;case"Escape":d.preventDefault(),r(f=>({...f,visible:!1}));break}},[o,m,u]),U=s.useCallback((d,j)=>{t(d),x(d,j)},[t,x]),_=s.useCallback(()=>{r(d=>({...d,visible:!1}))},[]);return{mentionState:o,setMentionState:r,textareaRef:c,completedCharacters:m,handleTextChange:U,handleKeyDown:C,handleCharacterSelect:u,closeMentionPopup:_,calculateMentionPosition:v}}const yt=({prompt:a,onPromptChange:t,presetPrompts:n,language:o,type:r,disabled:c=!1,onError:m,enableMention:v=!0,videoProvider:x})=>{const[u,C]=s.useState(!1),U=s.useRef(null),_=s.useRef(null),[d,j]=s.useState(null),[f,w]=s.useState(0),I=s.useMemo(()=>ge.sortPrompts(r,n).map((P,g)=>({id:`preset-${g}-${P.slice(0,20)}`,content:P,pinned:ge.isPinned(r,P)})),[r,n,f]),z=v&&r==="video"&&x==="sora",{mentionState:y,textareaRef:b,handleTextChange:p,handleKeyDown:h,handleCharacterSelect:L,closeMentionPopup:N}=bt({enabled:z,onPromptChange:t,prompt:a}),A=s.useCallback(()=>{if(_.current&&u){const T=_.current.getBoundingClientRect();j({top:T.top-4,left:T.right})}},[u]);s.useEffect(()=>{if(u)return A(),window.addEventListener("scroll",A,!0),window.addEventListener("resize",A),()=>{window.removeEventListener("scroll",A,!0),window.removeEventListener("resize",A)}},[u,A]),s.useEffect(()=>{const T=P=>{const g=P.target;if(U.current&&!U.current.contains(g)){const V=document.querySelector(".preset-prompt-panel-portal");V!=null&&V.contains(g)||C(!1)}};if(u)return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[u]);const H=s.useCallback(T=>{t(T),m==null||m(null),C(!1)},[t,m]),G=s.useCallback(T=>{const P=I.find(g=>g.id===T);P&&(P.pinned?ge.unpinPrompt(r,P.content):ge.pinPrompt(r,P.content),w(g=>g+1))},[r,I]),S=s.useCallback(T=>{const P=I.find(g=>g.id===T);P&&(ge.deletePrompt(r,P.content),w(g=>g+1))},[r,I]),E=s.useCallback(T=>{const P=T.target.value,g=T.target.selectionStart||0;p(P,g),m==null||m(null)},[p,m]);s.useEffect(()=>{r!=="video"&&N()},[r,N]);const D=()=>{if(!u||!d)return null;const T=o==="zh"?`${r==="image"?"图片":"视频"}描述预设`:`${r==="image"?"Image":"Video"} Description Presets`,P=e.jsx("div",{className:"preset-prompt-panel-portal",style:{position:"fixed",top:d.top,left:d.left,transform:"translate(-100%, -100%)",zIndex:Ut.DIALOG_POPOVER},children:e.jsx(Vt,{title:T,items:I,onSelect:H,onTogglePin:G,onDelete:S,language:o,disabled:c,showCount:!0})});return lt.createPortal(P,document.body)};return e.jsxs("div",{className:"form-field",children:[e.jsxs("div",{className:"form-label-with-icon",children:[e.jsx("label",{className:"form-label",children:o==="zh"?`${r==="image"?"图片":"视频"}描述`:`${r==="image"?"Image":"Video"} Description`}),e.jsx("div",{className:"textarea-with-preset",children:e.jsxs("div",{className:"preset-tooltip-container",ref:U,children:[e.jsx("button",{ref:_,type:"button",className:"preset-icon-button",disabled:c,onClick:()=>C(!u),children:"💡"}),D()]})})]}),e.jsx("textarea",{ref:b,className:"form-textarea",value:a,onChange:E,onKeyDown:h,placeholder:Da(o,r,x),rows:4,disabled:c}),z&&e.jsx(wt,{visible:y.visible,query:y.query,position:y.position,showBelow:y.showBelow,selectedIndex:y.selectedIndex,onSelect:L,onClose:N})]})};function Ma(a){return a.map(t=>t.prompt.trim()).filter(t=>t.length>0).filter((t,n,o)=>o.indexOf(t)===n)}const _t=(a,t,n)=>{const o=a==="image"?Ht(t):qt(t),r=Ma(n);return[...[...a==="video"?Bt():Gt(),...r].filter((x,u,C)=>C.indexOf(x)===u).slice(0,Wt),...o].filter((x,u,C)=>C.indexOf(x)===u).slice(0,Kt)},jt=(a,t,n)=>{!t||!t.trim()||(a==="video"?Yt(t.trim()):Jt(t.trim()))},ka=({model:a,duration:t,size:n,onDurationChange:o,onSizeChange:r,disabled:c=!1})=>{const m=De(a);s.useEffect(()=>{const u=Se(a);m.durationOptions.find(_=>_.value===t)||o(u.duration),m.sizeOptions.find(_=>_.value===n)||r(u.size)},[a]);const v=m.durationOptions.map(u=>({label:u.label,value:u.value})),x=m.sizeOptions.map(u=>({label:`${u.label} (${u.value})`,value:u.value}));return e.jsxs("div",{className:"video-model-options",children:[e.jsxs("div",{className:"video-model-options__row",children:[e.jsx("label",{className:"video-model-options__label",children:"时长"}),e.jsx("div",{className:"video-model-options__control",children:m.durationOptions.length===1?e.jsx("span",{className:"video-model-options__fixed-value",children:m.durationOptions[0].label}):e.jsx(Oe.Group,{value:t,onChange:u=>o(u),disabled:c,variant:"default-filled",size:"small",children:v.map(u=>e.jsx(Oe.Button,{value:u.value,children:u.label},u.value))})})]}),e.jsxs("div",{className:"video-model-options__row",children:[e.jsx("label",{className:"video-model-options__label",children:"尺寸"}),e.jsx("div",{className:"video-model-options__control",children:e.jsx(_e,{value:n,onChange:u=>r(u),disabled:c,size:"small",options:x,style:{width:"200px"}})})]})]})},It={label:"自动",value:"auto",width:0,height:0,description:"由模型自动决定最佳比例"},Ee=[It,{label:"1:1",value:"1:1",width:1,height:1,description:"正方形"},{label:"2:3",value:"2:3",width:2,height:3,description:"竖版标准"},{label:"3:2",value:"3:2",width:3,height:2,description:"横版标准"},{label:"3:4",value:"3:4",width:3,height:4,description:"竖版"},{label:"4:3",value:"4:3",width:4,height:3,description:"横版"},{label:"4:5",value:"4:5",width:4,height:5,description:"竖版社交"},{label:"5:4",value:"5:4",width:5,height:4,description:"横版"},{label:"9:16",value:"9:16",width:9,height:16,description:"竖屏全屏"},{label:"16:9",value:"16:9",width:16,height:9,description:"横屏全屏"},{label:"21:9",value:"21:9",width:21,height:9,description:"超宽屏"}],Ze="auto";function Ra(a){return Ee.find(t=>t.value===a)}const Oa=({value:a,onChange:t,compact:n=!0})=>{const{language:o}=he(),[r,c]=s.useState(!1),m=s.useRef(null),v=s.useMemo(()=>a==="auto"?It:Ra(a),[a]);s.useEffect(()=>{const u=C=>{m.current&&!m.current.contains(C.target)&&c(!1)};return r&&document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[r]);const x=u=>{t(u.value),c(!1)};return n?e.jsxs("div",{className:"aspect-ratio-selector aspect-ratio-selector--compact",ref:m,children:[e.jsx("div",{className:"aspect-ratio-selector__label",children:o==="zh"?"比例":"Ratio"}),e.jsxs("div",{className:`aspect-ratio-selector__trigger ${r?"aspect-ratio-selector__trigger--open":""}`,"data-track":"ai_click_ratio_toggle",onClick:()=>c(!r),children:[e.jsx("span",{className:"aspect-ratio-selector__trigger-value",children:(v==null?void 0:v.label)||a}),e.jsx("span",{className:`aspect-ratio-selector__trigger-icon ${r?"aspect-ratio-selector__trigger-icon--open":""}`,children:"▼"})]}),r&&e.jsx("div",{className:"aspect-ratio-selector__dropdown",children:e.jsx("div",{className:"aspect-ratio-selector__dropdown-grid",children:Ee.map(u=>e.jsx(Ae,{content:u.description,theme:"light",placement:"top",children:e.jsx("div",{className:`aspect-ratio-selector__dropdown-item ${a===u.value?"aspect-ratio-selector__dropdown-item--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>x(u),children:u.label})},u.value))})})]}):e.jsxs("div",{className:"aspect-ratio-selector",children:[e.jsx("div",{className:"aspect-ratio-selector__label",children:o==="zh"?"图片比例":"Aspect Ratio"}),e.jsx("div",{className:"aspect-ratio-selector__options",children:Ee.map(u=>e.jsx(Ae,{content:u.description,theme:"light",placement:"top",children:e.jsx("div",{className:`aspect-ratio-selector__option ${a===u.value?"aspect-ratio-selector__option--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>t(u.value),children:e.jsx("span",{className:"aspect-ratio-selector__option-ratio",children:u.label})})},u.value))})]})};function Ct(){return`scene-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function et(a,t){return{id:Ct(),order:a,duration:t,prompt:""}}function Aa(a,t,n=1){if(a.length===0)return{valid:!1,error:"至少需要一个场景"};for(const r of a){if(r.duration<n)return{valid:!1,error:`场景 ${r.order} 时长不能少于 ${n} 秒`};if(r.duration>t)return{valid:!1,error:`场景 ${r.order} 时长不能超过 ${t} 秒`}}const o=a.find(r=>!r.prompt.trim());return o?{valid:!1,error:`场景 ${o.order} 需要填写提示词`}:{valid:!0}}function za(a){return a.sort((t,n)=>t.order-n.order).map((t,n)=>`Shot ${n+1}:
44
44
  duration: ${t.duration}sec
45
45
  Scene: ${t.prompt.trim()}`).join(`
46
46
 
47
- `)}function La(a){const t=/Shot\s+(\d+):\s*\n\s*duration:\s*([\d.]+)\s*sec\s*\n\s*Scene:\s*([^\n]+(?:\n(?!Shot\s+\d+:)[^\n]*)*)/gi,n=[];let o;for(;(o=t.exec(a))!==null;){const r=parseInt(o[1],10),c=parseFloat(o[2]),m=o[3].trim();n.push({id:Ct(),order:r,duration:c,prompt:m})}return n.length===0?null:n.sort((r,c)=>r.order-c.order)}const Fa=({value:a,onChange:t,placeholder:n,disabled:o=!1,autoFocus:r=!1,enableMention:c=!0})=>{const{mentionState:m,textareaRef:v,handleTextChange:x,handleKeyDown:u,handleCharacterSelect:C,closeMentionPopup:U}=bt({enabled:c,onPromptChange:t,prompt:a}),_=s.useCallback(d=>{const j=d.target.value,f=d.target.selectionStart||0;x(j,f)},[x]);return s.useEffect(()=>{r&&v.current&&v.current.focus()},[r,v]),e.jsxs("div",{className:"scene-prompt-input",children:[e.jsx("textarea",{ref:v,className:"scene-prompt-input__textarea",value:a,onChange:_,onKeyDown:u,placeholder:n,disabled:o,rows:3}),c&&e.jsx(wt,{visible:m.visible,query:m.query,position:m.position,showBelow:m.showBelow,selectedIndex:m.selectedIndex,onSelect:C,onClose:U})]})},$a=({enabled:a,onEnabledChange:t,totalDuration:n,maxScenes:o,minSceneDuration:r,scenes:c,onScenesChange:m,disabled:v=!1})=>{const[x,u]=s.useState(null),C=s.useRef(null);s.useEffect(()=>{a&&c.length>0&&!x&&u(c[0].id)},[a,c,x]);const U=s.useCallback(()=>{if(c.length>=o)return;const b=c.reduce((N,A)=>N+A.duration,0),p=n-b;let h=Math.max(r,p/2);h=parseFloat(h.toFixed(1)),h<r&&(h=r);const L=et(c.length+1,h);m([...c,L]),u(L.id),setTimeout(()=>{var N;(N=C.current)==null||N.scrollIntoView({behavior:"smooth"})},100)},[c,o,n,r,m]),_=s.useCallback(b=>{var L;if(c.length<=1)return;const h=c.filter(N=>N.id!==b).map((N,A)=>({...N,order:A+1}));m(h),x===b&&u(((L=h[0])==null?void 0:L.id)||null)},[c,m,x]),d=s.useCallback(b=>{const p=c.filter(h=>h.id!==b).reduce((h,L)=>h+L.duration,0);return Math.max(r,n-p)},[c,n,r]),j=s.useCallback(b=>{const p=d(b),h=[],L=.1;for(let N=r;N<=p+.001;N+=L){const A=parseFloat(N.toFixed(1));A<=p&&h.push({label:`${A}`,value:A})}return h},[r,d]),f=s.useCallback((b,p)=>{const h=typeof p=="string"?parseFloat(p):p;if(isNaN(h))return;const L=d(b),N=c.map(A=>{if(A.id===b){const H=Math.max(r,Math.min(h,L)),G=parseFloat(H.toFixed(1));return{...A,duration:G}}return A});m(N)},[c,r,d,m]),w=s.useCallback((b,p)=>{const h=c.map(L=>L.id===b?{...L,prompt:p}:L);m(h)},[c,m]),I=s.useCallback(b=>{if(t(b),b&&c.length===0){const p=et(1,n);m([p]),u(p.id)}},[c,n,t,m]),z=s.useCallback(b=>{u(b)},[]),y=c.length<o;return e.jsxs("div",{className:"storyboard-editor",children:[e.jsxs("div",{className:"storyboard-editor__header",children:[e.jsxs("div",{className:"storyboard-editor__toggle",children:[e.jsx(Qt,{value:a,onChange:I,disabled:v,size:"small"}),e.jsxs("div",{className:"storyboard-editor__title",children:[e.jsx("span",{className:"storyboard-editor__title-text",children:"故事场景模式"}),e.jsx("span",{className:"storyboard-editor__title-desc",children:"定义多个场景及其时长"})]})]}),a&&e.jsx("span",{className:"storyboard-editor__new-badge",children:"NEW"})]}),a&&e.jsxs("div",{className:"storyboard-editor__content",children:[e.jsxs("div",{className:"storyboard-editor__section-header",children:[e.jsx("span",{className:"storyboard-editor__section-title",children:"场景列表"}),e.jsxs("span",{className:"storyboard-editor__section-hint",children:["共 ",c.length," 个场景,已用 ",c.reduce((b,p)=>b+p.duration,0).toFixed(1)," 秒 / 总时长 ",n," 秒"]})]}),e.jsxs("div",{className:"storyboard-editor__scenes",children:[c.map((b,p)=>{const h=x===b.id,L=p===c.length-1;return e.jsxs("div",{className:`storyboard-editor__scene-wrapper ${h?"is-selected":""}`,children:[e.jsx("div",{className:`storyboard-editor__timeline-line ${L?"is-last":""}`}),e.jsx("div",{className:`storyboard-editor__timeline-node ${h?"is-selected":""}`,children:h?p+1:""}),!h&&e.jsxs("div",{className:"storyboard-editor__scene storyboard-editor__scene--compact",onClick:()=>z(b.id),children:[e.jsx("span",{className:"storyboard-editor__scene-index",children:p+1}),e.jsx("div",{className:"storyboard-editor__scene-preview",children:e.jsx("p",{className:"storyboard-editor__scene-preview-text",children:b.prompt||"暂无场景描述..."})}),e.jsxs("div",{className:"storyboard-editor__scene-duration-badge",children:[e.jsx(Ne,{size:"12px"}),e.jsxs("span",{children:[b.duration,"s"]})]}),e.jsx(ct,{className:"storyboard-editor__scene-arrow",size:"14px"})]}),h&&e.jsxs("div",{className:"storyboard-editor__scene storyboard-editor__scene--expanded",children:[e.jsxs("div",{className:"storyboard-editor__scene-header",children:[e.jsx("div",{className:"storyboard-editor__scene-info",children:e.jsxs("span",{className:"storyboard-editor__scene-label",children:[e.jsx("span",{className:"storyboard-editor__active-indicator"}),"场景 ",p+1]})}),e.jsxs("div",{className:"storyboard-editor__scene-controls",children:[e.jsx(Ne,{className:"storyboard-editor__time-icon"}),e.jsx(_e,{value:parseFloat(b.duration.toFixed(1)),onChange:N=>f(b.id,N),disabled:v,className:"storyboard-editor__duration-select",size:"small",options:j(b.id),filterable:!0,creatable:!0,popupProps:{overlayClassName:"storyboard-editor__duration-popup"}}),c.length>1&&e.jsx(de,{theme:"default",variant:"text",size:"small",icon:e.jsx(Xt,{}),onClick:N=>{N.stopPropagation(),_(b.id)},disabled:v,className:"storyboard-editor__scene-delete"})]})]}),e.jsx("div",{className:"storyboard-editor__scene-prompt",children:e.jsx(Fa,{value:b.prompt,onChange:N=>w(b.id,N),placeholder:`描述场景 ${p+1} 的内容,输入 @ 可引用角色`,disabled:v,autoFocus:!0,enableMention:!0})})]})]},b.id)}),e.jsx("div",{ref:C})]}),y&&e.jsx(de,{theme:"default",variant:"dashed",size:"medium",icon:e.jsx(Zt,{}),onClick:U,disabled:v,className:"storyboard-editor__add-btn",block:!0,children:"添加场景"})]})]})},St=({images:a,onImagesChange:t,language:n="zh",disabled:o=!1,multiple:r=!0,maxCount:c=10,label:m,slotLabels:v,onError:x})=>{const[u,C]=s.useState(!1),[U,_]=s.useState(!1),[d,j]=s.useState(0),f=s.useRef(null),w=s.useRef(null),{addAsset:I}=ea(),y={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 10MB",someFilesInvalid:"部分文件格式不支持或超过10MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 10MB",someFilesInvalid:"Some files are not supported or exceed 10MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[n],b=s.useCallback(i=>i.type.startsWith("image/")?i.size>10*1024*1024?(Q.error(y.fileTooLarge),!1):!0:(Q.error(y.invalidFile),!1),[y]),p=s.useCallback(i=>new Promise((l,k)=>{const R=new FileReader;R.onload=()=>{l({url:R.result,name:i.name,file:i})},R.onerror=k,R.readAsDataURL(i)}),[]),h=s.useCallback(async(i,l)=>{const R=Array.from(i).filter(b);if(R.length!==0){r&&a.length+R.length>c&&(Q.warning(y.maxCountReached.replace("{count}",String(c))),R.splice(c-a.length)),R.forEach(O=>{I(O,ze.IMAGE,ta.LOCAL,O.name).catch(q=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",q)})});try{const O=await Promise.all(R.map(p));if(v&&l!==void 0){const q=[...a];q[l]=O[0],t(q.filter(Boolean))}else t(r?[...a,...O]:O.slice(0,1));x==null||x(null)}catch(O){console.error("[ReferenceImageUpload] Failed to process files:",O),x==null||x(y.loadFailed)}}},[a,r,c,v,b,p,I,t,x,y]),L=s.useCallback(i=>{const l=i.target.files;l&&l.length>0&&h(l,v?d:void 0),i.target.value=""},[h,v,d]),N=s.useCallback(async i=>{try{const k=await(await fetch(i.url)).blob(),R=new FileReader;R.onload=()=>{const O={url:R.result,name:i.name};if(v){const q=[...a];q[d]=O,t(q.filter(Boolean))}else if(r){if(a.length>=c){Q.warning(y.maxCountReached.replace("{count}",String(c)));return}t([...a,O])}else t([O]);C(!1),x==null||x(null)},R.readAsDataURL(k)}catch(l){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",l),x==null||x(y.loadFailed),C(!1)}},[a,r,c,v,d,t,x,y]),A=s.useCallback(i=>{i.preventDefault(),i.stopPropagation(),o||_(!0)},[o]),H=s.useCallback(i=>{var k;i.preventDefault(),i.stopPropagation();const l=(k=f.current)==null?void 0:k.getBoundingClientRect();if(l){const{clientX:R,clientY:O}=i;(R<l.left||R>l.right||O<l.top||O>l.bottom)&&_(!1)}},[]),G=s.useCallback(i=>{i.preventDefault(),i.stopPropagation()},[]),S=s.useCallback((i,l)=>{if(i.preventDefault(),i.stopPropagation(),_(!1),o)return;const k=i.dataTransfer.files;k&&k.length>0&&h(k,l)},[o,h]);s.useEffect(()=>{const i=async l=>{var le;if(o)return;const k=document.activeElement,R=f.current;if(!R||!(R.contains(k)||k===document.body||(k==null?void 0:k.tagName)==="BODY"))return;const q=(le=l.clipboardData)==null?void 0:le.items;if(!q)return;const ae=[];for(let re=0;re<q.length;re++){const se=q[re];if(se.type.startsWith("image/")){const oe=se.getAsFile();oe&&ae.push(oe)}}ae.length>0&&(l.preventDefault(),h(ae))};return document.addEventListener("paste",i),()=>{document.removeEventListener("paste",i)}},[o,h]);const E=s.useCallback(i=>{const l=a.filter((k,R)=>R!==i);t(l)},[a,t]),D=s.useCallback(i=>{var l;i!==void 0&&j(i),(l=w.current)==null||l.click()},[]),T=s.useCallback(i=>{i!==void 0&&j(i),C(!0)},[]),P=i=>e.jsx("div",{className:`reference-image-upload__placeholder ${U?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:A,onDragLeave:H,onDragOver:G,onDrop:l=>S(l,i),children:e.jsxs("div",{className:"reference-image-upload__buttons",children:[e.jsx(de,{variant:"outline",icon:e.jsx(Le,{size:16}),onClick:()=>D(i),disabled:o,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:y.local}),e.jsx(de,{variant:"outline",icon:e.jsx(Fe,{size:16}),onClick:()=>T(i),disabled:o,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:y.library})]})}),g=(i,l)=>e.jsxs("div",{className:"reference-image-upload__preview",children:[e.jsx("img",{src:i.url,alt:i.name,className:"reference-image-upload__image"}),e.jsx("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>E(l),disabled:o,"data-track":"reference_image_upload_remove",children:e.jsx(ra,{size:14})}),v&&v[l]&&e.jsx("div",{className:"reference-image-upload__slot-label",children:v[l]})]},l),V=()=>v?e.jsx("div",{className:"reference-image-upload__slots",children:v.map((i,l)=>{const k=a[l];return e.jsxs("div",{className:"reference-image-upload__slot",children:[e.jsx("div",{className:"reference-image-upload__slot-title",children:i}),k?g(k,l):e.jsx("div",{className:`reference-image-upload__slot-placeholder ${U?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:A,onDragLeave:H,onDragOver:G,onDrop:R=>S(R,l),children:e.jsxs("div",{className:"reference-image-upload__slot-buttons",children:[e.jsx(de,{variant:"outline",icon:e.jsx(Le,{size:16}),onClick:()=>D(l),disabled:o,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:y.local}),e.jsx(de,{variant:"outline",icon:e.jsx(Fe,{size:16}),onClick:()=>T(l),disabled:o,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:y.library})]})})]},l)})}):null,$=()=>{const i=r&&a.length<c;return e.jsxs("div",{className:"reference-image-upload__grid",children:[a.map((l,k)=>g(l,k)),i&&P(),a.length===0&&!i&&P()]})},K=()=>a.length>0?e.jsxs("div",{className:"reference-image-upload__single",children:[g(a[0],0),e.jsx("div",{className:"reference-image-upload__replace",children:P()})]}):P();return e.jsxs("div",{ref:f,className:`reference-image-upload ${o?"reference-image-upload--disabled":""}`,tabIndex:0,children:[m&&e.jsx("div",{className:"reference-image-upload__label",children:m}),e.jsx("input",{ref:w,type:"file",accept:"image/*",multiple:r&&!v,onChange:L,className:"reference-image-upload__input",disabled:o}),v?V():r?$():K(),e.jsx(aa,{isOpen:u,onClose:()=>C(!1),mode:sa.SELECT,filterType:ze.IMAGE,onSelect:N})]})},Dt=({taskIds:a,taskType:t,onEditTask:n})=>{var K;const{tasks:o,retryTask:r,deleteTask:c}=ye(),{board:m,openDialog:v}=we(),[x,u]=s.useState(!1),[C,U]=s.useState(null),[_,d]=s.useState(null),[j,f]=s.useState(""),[w,I]=s.useState(null),z=(i,l)=>{var ae,le,re,se,oe,ue,fe,M,F,B;if(!l.trim())return!0;const k=l.toLowerCase().split(/\s+/).filter(Boolean),R={[pe.PENDING]:"待处理",[pe.PROCESSING]:"处理中",[pe.COMPLETED]:"已完成",[pe.FAILED]:"失败",[pe.CANCELLED]:"已取消"},O=[];O.push(((ae=i.params)==null?void 0:ae.prompt)??""),O.push(((le=i.params)==null?void 0:le.model)??""),O.push(i.id??""),O.push(R[i.status]??String(i.status)),(re=i.params)!=null&&re.batchId&&O.push(String(i.params.batchId)),(se=i.params)!=null&&se.batchIndex&&O.push(String(i.params.batchIndex)),(oe=i.params)!=null&&oe.batchTotal&&O.push(String(i.params.batchTotal)),(ue=i.result)!=null&&ue.format&&O.push(String(i.result.format)),(fe=i.result)!=null&&fe.width&&((M=i.result)!=null&&M.height)?O.push(`${i.result.width}x${i.result.height}`):(F=i.params)!=null&&F.width&&((B=i.params)!=null&&B.height)&&O.push(`${i.params.width}x${i.params.height}`);const q=O.join(" ").toLowerCase();return k.every(W=>q.includes(W))},y=s.useMemo(()=>{let i=o;return a&&a.length>0&&(i=i.filter(l=>a.includes(l.id))),t!==void 0&&(i=i.filter(l=>l.type===t)),j.trim()&&(i=i.filter(l=>z(l,j))),i.sort((l,k)=>k.createdAt-l.createdAt)},[o,a,t,j]),b=i=>{r(i)},p=i=>{U(i),u(!0)},h=()=>{C&&c(C),u(!1),U(null)},L=async i=>{var R;const l=o.find(O=>O.id===i);if(!((R=l==null?void 0:l.result)!=null&&R.url))return;const k=`${ma(l.params.prompt)||l.type}.${l.result.format}`;try{const O=await pa.getCachedBlob(l.result.url);if(O){ha(O,k),Q.success("下载成功");return}const q=await fa(l.result.url,l.params.prompt,l.result.format,l.type);q&&"opened"in q?Q.success("已在新标签页打开,请右键另存为"):Q.success("下载成功")}catch(O){console.error("Download failed:",O),Q.error("下载失败,请稍后重试")}},N=async i=>{var k;const l=o.find(R=>R.id===i);if(!((k=l==null?void 0:l.result)!=null&&k.url)||!m){console.warn("Cannot insert: task result or board not available"),Q.warning("无法插入:白板未就绪");return}try{l.type===X.IMAGE?(await da(m,l.result.url),Q.success("图片已插入到白板")):l.type===X.VIDEO&&(await ua(m,l.result.url),Q.success("视频已插入到白板"))}catch(R){console.error("Failed to insert to board:",R),Q.error(`插入失败: ${R instanceof Error?R.message:"未知错误"}`)}},A=i=>{var k,R;const l=o.find(O=>O.id===i);if(!l){console.warn("Cannot edit: task not found");return}if(n){n(l);return}if(l.type===X.IMAGE){const O={initialPrompt:l.params.prompt,initialWidth:l.params.width,initialHeight:l.params.height,initialImages:l.params.uploadedImages,initialResultUrl:(k=l.result)==null?void 0:k.url};v(ee.aiImageGeneration,O)}else if(l.type===X.VIDEO){const O={initialPrompt:l.params.prompt,initialDuration:typeof l.params.seconds=="string"?parseInt(l.params.seconds,10):l.params.seconds,initialModel:l.params.model,initialSize:l.params.size,initialImages:l.params.uploadedImages,initialResultUrl:(R=l.result)==null?void 0:R.url};v(ee.aiVideoGeneration,O)}},H=i=>{const l=o.find(k=>k.id===i);l&&I(l)},G=s.useMemo(()=>y.filter(i=>{var l;return i.status===pe.COMPLETED&&((l=i.result)==null?void 0:l.url)}),[y]),S=s.useMemo(()=>{if(!_)return null;const i=G.findIndex(l=>l.id===_);return i===-1?null:{currentIndex:i,total:G.length,hasPrevious:i>0,hasNext:i<G.length-1}},[_,G]),E=i=>{d(i)},D=()=>{d(null)},T=()=>{!S||!S.hasPrevious||d(G[S.currentIndex-1].id)},P=()=>{!S||!S.hasNext||d(G[S.currentIndex+1].id)},g=s.useMemo(()=>_?o.find(i=>i.id===_):null,[_,o]);s.useEffect(()=>{if(!_)return;const i=l=>{l.key==="ArrowLeft"||l.key==="ArrowUp"?(l.preventDefault(),T()):l.key==="ArrowRight"||l.key==="ArrowDown"?(l.preventDefault(),P()):l.key==="Escape"&&(l.preventDefault(),D())};return window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i)},[_,S]);const V=s.useMemo(()=>{let i=o;return a&&a.length>0&&(i=i.filter(l=>a.includes(l.id))),t!==void 0&&(i=i.filter(l=>l.type===t)),i.length},[o,a,t]),$=j.trim()&&y.length===0&&V>0;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"dialog-task-list",children:[e.jsxs("div",{className:"dialog-task-list__header",style:{display:"flex",alignItems:"center",gap:8,justifyContent:"space-between"},children:[e.jsxs("h4",{children:["生成任务 (",y.length,")"]}),e.jsx("div",{style:{minWidth:"180px",maxWidth:"240px",flexShrink:0},children:e.jsx(na,{value:j,onChange:i=>f(i),placeholder:"搜索任务(提示词/模型/...)",clearable:!0,prefixIcon:e.jsx(oa,{}),size:"small"})})]}),e.jsx(ia,{tasks:y,onRetry:b,onDelete:p,onDownload:L,onInsert:N,onEdit:A,onPreviewOpen:E,onExtractCharacter:H,className:"dialog-task-list__content",emptyContent:e.jsx("div",{className:"dialog-task-list__empty",children:$?e.jsx("p",{children:"未找到匹配的任务"}):e.jsx("p",{children:"暂无生成任务"})})})]}),e.jsx($e,{visible:x,header:"确认删除",onClose:()=>u(!1),onConfirm:h,onCancel:()=>u(!1),children:"确定要删除此任务吗?此操作无法撤销。"}),g&&((K=g.result)==null?void 0:K.url)&&e.jsx($e,{visible:!!_,onClose:D,width:"90vw",header:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsx("span",{children:g.type===X.IMAGE?"图片预览":g.type===X.CHARACTER?"角色预览":"视频预览"}),S&&e.jsxs("span",{style:{fontSize:"14px",color:"#757575",fontWeight:"normal"},children:[S.currentIndex+1," / ",S.total]})]}),footer:null,className:"task-preview-dialog",children:e.jsxs("div",{className:"task-preview-container",children:[e.jsx(de,{className:"task-preview-nav task-preview-nav--left",icon:e.jsx(la,{}),"data-track":"task_click_preview_previous",onClick:T,size:"large",shape:"circle",variant:"outline",disabled:!(S!=null&&S.hasPrevious)}),e.jsx(Ua,{task:g}),e.jsx(de,{className:"task-preview-nav task-preview-nav--right",icon:e.jsx(ct,{}),"data-track":"task_click_preview_next",onClick:P,size:"large",shape:"circle",variant:"outline",disabled:!(S!=null&&S.hasNext)})]})}),e.jsx(ca,{visible:!!w,task:w,onClose:()=>I(null),onCreateComplete:i=>{I(null)}})]})},Ua=({task:a})=>{var o;const{url:t,isFromCache:n}=ga(a.id,(o=a.result)==null?void 0:o.url);return t?e.jsxs("div",{className:"task-preview-content",children:[a.type===X.IMAGE||a.type===X.CHARACTER?e.jsx("img",{src:t,alt:"Preview",style:{maxWidth:"100%",maxHeight:"85vh",objectFit:"contain"}},a.id):e.jsx("video",{src:t,controls:!0,autoPlay:!0,style:{maxWidth:"100%",maxHeight:"85vh"}},a.id),n&&e.jsx("div",{className:"task-preview-cache-badge",children:"已缓存"})]}):e.jsx("div",{className:"task-preview-content",children:"加载中..."})},Va=({initialPrompt:a="",initialImages:t=[],selectedElementIds:n=[],initialWidth:o,initialHeight:r,initialResultUrl:c,selectedModel:m,onModelChange:v}={})=>{const[x,u]=s.useState(a),[C,U]=s.useState(o||1024),[_,d]=s.useState(r||1024),[j,f]=s.useState(Ze),[w,I]=s.useState(null),[z,y]=s.useState(t),{imageHistory:b}=ht(),{isGenerating:p}=gt("image"),{language:h}=he(),{createTask:L}=ye(),[N,A]=s.useState(!1),H=ne.useRef("");s.useEffect(()=>{if(N)return;const g=JSON.stringify({prompt:a,images:t==null?void 0:t.map(V=>V.url),elementIds:n,width:o,height:r,result:c});H.current!==g&&(H.current=g,u(a),y(t||[]),o&&U(o),r&&d(r))},[a,t,n,o,r,c,N]),s.useEffect(()=>(I(null),()=>{I(null)}),[]);const G=()=>{u(""),y([]),I(null),f(Ze),A(!1),window.dispatchEvent(new CustomEvent("ai-image-clear"))},S=ne.useMemo(()=>_t("image",h,b),[b,h]),E=g=>{jt("image",g)},D=g=>{if(A(!0),u(g.params.prompt||""),U(g.params.width||1024),d(g.params.height||1024),g.params.uploadedImages&&g.params.uploadedImages.length>0?y(g.params.uploadedImages):y([]),g.params.model){const V=J.get();J.update({...V,imageModelName:g.params.model})}g.params.aspectRatio&&f(g.params.aspectRatio),I(null)},T=async()=>Promise.all(z.map(async g=>{if(g.file)return new Promise((V,$)=>{const K=new FileReader;K.onload=()=>{V({type:"url",url:K.result,name:g.name})},K.onerror=$,K.readAsDataURL(g.file)});if(g.url)return{type:"url",url:g.url,name:g.name};throw new Error("Invalid image data")})),P=async(g=1)=>{if(!x.trim()){I(h==="zh"?"请输入图像描述":"Please enter image description");return}if(!J.get().apiKey&&!await xa()){I(h==="zh"?"需要 API Key 才能生成图片":"API Key is required to generate images");return}try{const $=typeof C=="string"?parseInt(C)||1024:C,K=typeof _=="string"?parseInt(_)||1024:_,i=await T();if(g>1){const q=[],ae=`batch_${Date.now()}`,re=J.get().imageModelName||"gemini-3-pro-image-preview-vip";for(let se=0;se<g;se++){const oe={prompt:x.trim(),width:$,height:K,aspectRatio:j,model:re,uploadedImages:i,batchId:ae,batchIndex:se+1,batchTotal:g,autoInsertToCanvas:!0},ue=L(oe,X.IMAGE);ue&&q.push(ue.id)}q.length>0?(Q.success(h==="zh"?`已添加 ${q.length} 个任务到队列`:`Added ${q.length} tasks to queue`),E(x),I(null),A(!1)):I(h==="zh"?"批量任务创建失败,请稍后重试":"Failed to create batch tasks, please try again later");return}const k=J.get().imageModelName||"gemini-2.5-flash-image-vip",R={prompt:x.trim(),width:$,height:K,aspectRatio:j,model:k,uploadedImages:i,autoInsertToCanvas:!0};L(R,X.IMAGE)?(Q.success(h==="zh"?"任务已添加到队列,将在后台生成":"Task added to queue, will be generated in background"),E(x),I(null),A(!1)):I(h==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch($){console.error("Failed to create task:",$);let K=h==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";$.message&&($.message.includes("exceed 5000 characters")?K=h==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":$.message.includes("Duplicate submission")?K=h==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":$.message.includes("Invalid parameters")&&(K=h==="zh"?`参数错误: ${$.message.replace("Invalid parameters: ","")}`:$.message)),I(K)}};return ft(p,x,()=>P(1)),e.jsx("div",{className:"ai-image-generation-container",children:e.jsxs("div",{className:"main-content",children:[e.jsxs("div",{className:"ai-image-generation-section",children:[e.jsxs("div",{className:"ai-image-generation-form",children:[m!==void 0&&v&&e.jsx("div",{className:"form-header-row",children:e.jsx("div",{className:"model-selector-wrapper",children:e.jsx(_e,{value:m,onChange:g=>v(g),options:va,size:"small",placeholder:h==="zh"?"选择图片模型":"Select Image Model",filterable:!0,creatable:!0,disabled:p})})}),e.jsx(St,{images:z,onImagesChange:y,language:h,disabled:p,multiple:!0,label:h==="zh"?"参考图片 (可选)":"Reference Images (Optional)",onError:I}),e.jsx(yt,{prompt:x,onPromptChange:u,presetPrompts:S,language:h,type:"image",disabled:p,onError:I}),e.jsx(xt,{error:w})]}),e.jsx(vt,{language:h,type:"image",isGenerating:p,hasGenerated:!1,canGenerate:!!x.trim(),onGenerate:P,onReset:G,leftContent:e.jsx(Oa,{value:j,onChange:f,compact:!0})})]}),e.jsx("div",{className:"task-sidebar",children:e.jsx(Dt,{taskType:X.IMAGE,onEditTask:D})})]})})},Ba=({initialPrompt:a="",initialImage:t,initialImages:n,initialDuration:o,initialModel:r,initialSize:c,initialResultUrl:m,selectedModel:v,onModelChange:x}={})=>{const[u,C]=s.useState(a),[U,_]=s.useState(null),[d,j]=s.useState(()=>{const M=J.get();return r||M.videoModelName||"veo3"}),f=ne.useMemo(()=>De(d),[d]),w=ne.useMemo(()=>Se(d),[d]),[I,z]=s.useState((o==null?void 0:o.toString())||w.duration),[y,b]=s.useState(c||w.size),[p,h]=s.useState(()=>n&&n.length>0?n:t?[{slot:0,slotLabel:"参考图",url:t.url||"",name:t.name,file:t.file}]:[]),[L,N]=s.useState(()=>{const M=f.imageUpload.maxCount,F=f.imageUpload.labels||[];let B=[];return n&&n.length>0?B=n:t&&(B=[{slot:0,slotLabel:F[0]||"参考图",url:t.url||"",name:t.name,file:t.file}]),B.slice(0,M).map((W,Y)=>({...W,slot:Y,slotLabel:F[Y]||`参考图${Y+1}`}))}),[A,H]=s.useState(!1),[G,S]=s.useState([]),E=ne.useMemo(()=>wa(d),[d]),D=Ue(d),{videoHistory:T}=ht(),[P,g]=s.useState(0),{isGenerating:V}=gt("video"),{language:$}=he(),{createTask:K}=ye();s.useEffect(()=>{const M=F=>{const B=F.videoModelName||"veo3";B!==d&&j(B)};return J.addListener(M),()=>J.removeListener(M)},[d]),s.useEffect(()=>{v&&v!==d&&j(v)},[v]);const[i,l]=s.useState(!1),[k,R]=s.useState(!1);s.useEffect(()=>{if(k){R(!1);return}const M=f.imageUpload.maxCount,F=f.imageUpload.labels||[];if(z(w.duration),b(w.size),p.length>0){const B=p.slice(0,M).map((W,Y)=>({...W,slot:Y,slotLabel:F[Y]||`参考图${Y+1}`}));N(B)}else N([]);Ue(d)||(H(!1),S([]))},[d,w,k,p,f.imageUpload]);const O=ne.useRef("");s.useEffect(()=>{if(i)return;const M=JSON.stringify({prompt:a,image:t==null?void 0:t.url,images:n==null?void 0:n.map(Z=>Z.url),duration:o,model:r,size:c,result:m});if(O.current===M)return;O.current=M,C(a);const F=f.imageUpload.maxCount,B=f.imageUpload.labels||[];let W=[];n&&n.length>0?W=n:t&&(W=[{slot:0,slotLabel:"参考图",url:t.url||"",name:t.name,file:t.file}]),h(W);const Y=W.slice(0,F).map((Z,ie)=>({...Z,slot:ie,slotLabel:B[ie]||`参考图${ie+1}`}));N(Y),o!==void 0&&z(o.toString()),c&&b(c),_(null)},[a,t,n,o,c,m,f.imageUpload,i]),s.useEffect(()=>(_(null),()=>{_(null)}),[]);const q=()=>{C(""),h([]),N([]),_(null);const M=Se(d);z(M.duration),b(M.size),l(!1),H(!1),S([]),window.dispatchEvent(new CustomEvent("ai-video-clear"))},ae=ne.useCallback((M,F)=>M.map((B,W)=>({slot:W,slotLabel:F[W]||`参考图${W+1}`,url:B.url,name:B.name,file:B.file})),[]),le=ne.useCallback(M=>M.map(F=>({url:F.url,name:F.name,file:F.file})),[]),re=ne.useCallback(M=>{const F=f.imageUpload.labels||[],B=ae(M,F);N(B),h(B)},[f.imageUpload.labels,ae]),se=ne.useMemo(()=>_t("video",$,T),[T,$,P]),oe=M=>{jt("video",M),g(F=>F+1)},ue=M=>{var F,B;if(l(!0),R(!0),M.params.model){j(M.params.model);const W=J.get();J.update({...W,videoModelName:M.params.model})}if((F=M.params.storyboard)!=null&&F.enabled&&((B=M.params.storyboard)!=null&&B.scenes))H(!0),S(M.params.storyboard.scenes),C("");else{const W=M.params.prompt||"",Y=La(W);Y&&Y.length>0?(H(!0),S(Y),C("")):(H(!1),S([]),C(W))}if(M.params.seconds!==void 0){const W=typeof M.params.seconds=="string"?M.params.seconds:M.params.seconds.toString();z(W)}if(M.params.size&&b(M.params.size),M.params.uploadedImages&&M.params.uploadedImages.length>0){h(M.params.uploadedImages);const W=M.params.model||d,Y=De(W),Z=Y.imageUpload.maxCount,ie=Y.imageUpload.labels||[],me=M.params.uploadedImages.slice(0,Z).map((je,ce)=>({...je,slot:ce,slotLabel:ie[ce]||`参考图${ce+1}`}));N(me)}else h([]),N([]);_(null)},fe=async(M=1)=>{if(A){const F=Aa(G,parseFloat(I),E.minSceneDuration);if(!F.valid){_(F.error||"场景配置无效");return}}else if(!u.trim()){_($==="zh"?"请输入视频描述":"Please enter video description");return}try{const F=[];for(const Z of L)if(Z.file){const ie=await new Promise((me,je)=>{const ce=new FileReader;ce.onload=()=>me(ce.result),ce.onerror=je,ce.readAsDataURL(Z.file)});F.push({...Z,url:ie,file:void 0})}else F.push({...Z,file:void 0});const B=A?za(G):u.trim(),W=[],Y=M>1?`video_batch_${Date.now()}`:void 0;for(let Z=0;Z<M;Z++){const ie={prompt:B,model:d,seconds:I,size:y,uploadedImages:F,...A&&{storyboard:{enabled:!0,scenes:G,totalDuration:parseFloat(I)}},...Y&&{batchId:Y,batchIndex:Z+1,batchTotal:M},autoInsertToCanvas:!0},me=K(ie,X.VIDEO);me&&W.push(me.id)}W.length>0?(Q.success($==="zh"?M>1?`${W.length} 个视频任务已添加到队列,将在后台生成`:"视频任务已添加到队列,将在后台生成":M>1?`${W.length} video tasks added to queue, will be generated in background`:"Video task added to queue, will be generated in background"),oe(B),C(""),h([]),N([]),H(!1),S([]),_(null),l(!1)):_($==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch(F){console.error("Failed to create task:",F);let B=$==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";F.message&&(F.message.includes("exceed 5000 characters")?B=$==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":F.message.includes("Duplicate submission")?B=$==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":F.message.includes("Invalid parameters")&&(B=$==="zh"?`参数错误: ${F.message.replace("Invalid parameters: ","")}`:F.message)),_(B)}};return ft(V,u,fe),e.jsx("div",{className:"ai-video-generation-container",children:e.jsxs("div",{className:"main-content",children:[e.jsxs("div",{className:"ai-image-generation-section",children:[e.jsxs("div",{className:"ai-image-generation-form",children:[v!==void 0&&x&&e.jsx("div",{className:"model-selector-wrapper",children:e.jsx(_e,{value:v,onChange:M=>x(M),options:ba,size:"small",placeholder:$==="zh"?"选择视频模型":"Select Video Model",filterable:!0,creatable:!0,disabled:V})}),e.jsx(ka,{model:d,duration:I,size:y,onDurationChange:z,onSizeChange:b,disabled:V}),e.jsx(St,{images:le(L),onImagesChange:re,language:$,disabled:V,multiple:f.imageUpload.maxCount>1,maxCount:f.imageUpload.maxCount,slotLabels:f.imageUpload.mode==="frames"?f.imageUpload.labels:void 0,label:f.imageUpload.mode==="frames"?$==="zh"?"首尾帧图片 (可选)":"Start/End Frames (Optional)":$==="zh"?"参考图片 (可选)":"Reference Images (Optional)"}),D&&e.jsx($a,{enabled:A,onEnabledChange:H,totalDuration:parseFloat(I),maxScenes:E.maxScenes,minSceneDuration:E.minSceneDuration,scenes:G,onScenesChange:S,disabled:V}),!A&&e.jsx(yt,{prompt:u,onPromptChange:C,presetPrompts:se,language:$,type:"video",disabled:V,onError:_,videoProvider:f.provider}),e.jsx(xt,{error:U})]}),e.jsx(vt,{language:$,type:"video",isGenerating:V,hasGenerated:!1,canGenerate:A?G.length>0:!!u.trim(),onGenerate:fe,onReset:q})]}),e.jsx("div",{className:"task-sidebar",children:e.jsx(Dt,{taskType:X.VIDEO,onEditTask:ue})})]})})};let te=null,ve=null;const Ga=async()=>te||(typeof window<"u"&&window.WinBox?(te=window.WinBox,te):ve||(ve=(async()=>{try{if(await be(()=>import("./winbox.bundle.min-CoRPjCs5.js"),[],import.meta.url),te=window.WinBox,te)return te;throw new Error("WinBox not found after import")}catch(a){return console.warn("Dynamic import failed, falling back to CDN:",a),new Promise((t,n)=>{const o=document.createElement("script");o.src="https://cdn.jsdelivr.net/npm/winbox@0.2.82/dist/winbox.bundle.min.js",o.async=!0,o.onload=()=>{te=window.WinBox,te?t(te):n(new Error("WinBox not found after CDN loading"))},o.onerror=n,document.head.appendChild(o)})}})(),ve)),tt=({visible:a,title:t,onClose:n,children:o,width:r="80%",height:c="80%",minWidth:m=400,minHeight:v=300,x="center",y:u="center",maximizable:C=!0,minimizable:U=!0,resizable:_=!0,movable:d=!0,modal:j=!1,background:f="linear-gradient(135deg, #5A4FCF 0%, #7B68EE 50%, #E91E63 100%)",border:w=0,className:I,id:z,headerContent:y,container:b,onMaximize:p,onRestore:h,onFocus:L,onBlur:N,onMove:A,onResize:H,autoMaximize:G=!1})=>{const S=s.useRef(null),E=s.useRef(null),D=s.useRef(null),[T,P]=s.useState(null),[g,V]=s.useState(!1),[$,K]=s.useState(!!te),i=ya(D,{enablePositionTracking:!1,enableScaleCompensation:!0});s.useEffect(()=>{$||Ga().then(()=>K(!0))},[$]);const l=s.useCallback(()=>(n==null||n(),!1),[n]);return s.useEffect(()=>{if(!(!$||!te)){if(!a){if(S.current){try{S.current.close(!0)}catch{}S.current=null,D.current=null,P(null),V(!1)}return}if(a&&!S.current&&E.current){const k=["winbox-react"];C||k.push("no-max"),U||k.push("no-min"),_||k.push("no-resize"),d||k.push("no-move"),k.push("no-full"),I&&k.push(I);const R=new te({id:z,title:t,mount:E.current,width:r,height:c,minwidth:m,minheight:v,x,y:u,modal:j,background:f,border:w,class:k,root:b||document.body,onclose:l,onmaximize:p,onrestore:h,onfocus:L,onblur:N,onmove:A,onresize:H});if(S.current=R,R.window&&(D.current=R.window,requestAnimationFrame(()=>{i()})),y&&R.window){const O=R.window.querySelector(".wb-drag");if(O){const q=document.createElement("div");q.className="wb-header-custom",O.appendChild(q),P(q)}}V(!0),G&&setTimeout(()=>{S.current&&S.current.maximize()},100)}}},[a,$,G]),s.useEffect(()=>()=>{if(S.current){try{S.current.onclose=null,S.current.close(!0)}catch{}S.current=null,D.current=null}},[]),s.useEffect(()=>{S.current&&t&&S.current.setTitle(t)},[t]),s.useEffect(()=>{S.current&&(a?(S.current.show(),S.current.focus()):S.current.hide())},[a]),s.useEffect(()=>{S.current&&G&&S.current.maximize()},[G]),e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{display:"none"},"data-winbox-placeholder":"true",children:e.jsx("div",{ref:E,className:"winbox-content-wrapper",style:{display:a?"block":"none"},children:o})}),g&&y&&T&&lt.createPortal(y,T)]})},Wa=s.lazy(()=>be(()=>import("./batch-image-generation-Baqb01Lm.js"),__vite__mapDeps([7,1,2,8,9,10,11,12,13]),import.meta.url)),Ha=({container:a})=>{var A,H,G,S;const{appState:t,setAppState:n}=we(),{language:o}=he(),r=Te(),c=s.useRef(!1),m=s.useRef(null),[v,x]=s.useState(""),[u,C]=s.useState("");s.useEffect(()=>{const E=J.get();x(E.imageModelName||"gemini-3-pro-image-preview-vip"),C(E.videoModelName||"veo3")},[]),s.useEffect(()=>{const E=D=>{D.imageModelName&&x(D.imageModelName),D.videoModelName&&C(D.videoModelName)};return J.addListener(E),()=>J.removeListener(E)},[]);const U=E=>{x(E);const D=J.get();J.update({...D,imageModelName:E})},_=E=>{C(E);const D=J.get();J.update({...D,videoModelName:E})},[d,j]=s.useState({initialPrompt:"",initialImages:[],selectedElementIds:[]}),[f,w]=s.useState({initialPrompt:"",initialImage:void 0}),[I,z]=s.useState(!1),[y,b]=s.useState(()=>{try{return localStorage.getItem(Ie)==="batch"?"batch":"single"}catch{return"single"}}),p=s.useCallback(E=>{b(E),z(E==="batch");try{localStorage.setItem(Ie,E)}catch(D){console.warn("Failed to save image mode:",D)}},[]);s.useEffect(()=>{if(t.openDialogType===ee.aiImageGeneration){if(d.initialImages&&d.initialImages.length>0||d.initialPrompt&&d.initialPrompt.trim()!==""){z(!1);return}try{const D=localStorage.getItem(Ie);z(D==="batch")}catch{z(!1)}}},[t.openDialogType,d.initialImages,d.initialPrompt]);const h=s.useRef(null);s.useEffect(()=>{if(!r||!t.openDialogType){h.current=t.openDialogType;return}h.current!==t.openDialogType&&(c.current||(h.current=t.openDialogType,t.openDialogType===ee.aiImageGeneration&&(async()=>{c.current=!0,m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{console.warn("Processing timeout, resetting processing state"),c.current=!1},1e4);try{if(t.dialogInitialData){j({initialPrompt:t.dialogInitialData.initialPrompt||t.dialogInitialData.prompt||"",initialImages:t.dialogInitialData.initialImages||t.dialogInitialData.uploadedImages||[],selectedElementIds:[],initialResultUrl:t.dialogInitialData.initialResultUrl||t.dialogInitialData.resultUrl});return}const D=t.lastSelectedElementIds||[],T=await He(r,D),P=[];T.remainingImages.forEach(g=>{P.push({url:g.url,name:g.name||`selected-image-${Date.now()}.png`})}),T.graphicsImage&&P.push({url:T.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),j({initialPrompt:T.remainingText||"",initialImages:P,selectedElementIds:D})}catch(D){console.warn("Error processing selected content for AI:",D);const T=qe(r),P=T.images.map(g=>({url:g.url,name:g.name||`selected-image-${Date.now()}.png`}));j({initialPrompt:T.text||"",initialImages:P,selectedElementIds:[]})}finally{c.current=!1,m.current&&(clearTimeout(m.current),m.current=null)}})(),t.openDialogType===ee.aiVideoGeneration&&(async()=>{c.current=!0,m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{console.warn("Video processing timeout, resetting processing state"),c.current=!1},1e4);try{if(t.dialogInitialData){const g={initialPrompt:t.dialogInitialData.initialPrompt||t.dialogInitialData.prompt||"",initialImage:t.dialogInitialData.initialImage||t.dialogInitialData.uploadedImage,initialImages:t.dialogInitialData.initialImages||t.dialogInitialData.uploadedImages,initialDuration:t.dialogInitialData.initialDuration||t.dialogInitialData.duration,initialModel:t.dialogInitialData.initialModel||t.dialogInitialData.model,initialSize:t.dialogInitialData.initialSize||t.dialogInitialData.size,initialResultUrl:t.dialogInitialData.initialResultUrl||t.dialogInitialData.resultUrl};w(g);return}const D=t.lastSelectedElementIds||[],T=await He(r,D),P=[];T.remainingImages.length>0?T.remainingImages.forEach((g,V)=>{P.push({url:g.url,name:g.name||`selected-image-${V+1}-${Date.now()}.png`})}):T.graphicsImage&&P.push({url:T.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),w({initialPrompt:T.remainingText||"",initialImage:P.length>0?P[0]:void 0,initialImages:P.map((g,V)=>({slot:V,slotLabel:`参考图${V+1}`,url:g.url,name:g.name}))})}catch(D){console.warn("Error processing selected content for AI video:",D);const T=qe(r),P=T.images.map((g,V)=>({url:g.url,name:g.name||`selected-image-${V+1}-${Date.now()}.png`}));w({initialPrompt:T.text||"",initialImage:P.length>0?P[0]:void 0,initialImages:P.map((g,V)=>({slot:V,slotLabel:`参考图${V+1}`,url:g.url,name:g.name}))})}finally{c.current=!1,m.current&&(clearTimeout(m.current),m.current=null)}})()))},[t.openDialogType]),s.useEffect(()=>{t.openDialogType||(c.current=!1,h.current=null)},[t.openDialogType]);const L=s.useCallback(()=>{const E=localStorage.getItem(Ve);if(E)try{const D=JSON.parse(E);D.timestamp=Date.now(),localStorage.setItem(Ve,JSON.stringify(D))}catch(D){console.warn("Failed to update cache timestamp:",D)}n(D=>({...D,openDialogType:null}))},[n]),N=s.useCallback(()=>{const E=localStorage.getItem(Be);if(E)try{const D=JSON.parse(E);D.timestamp=Date.now(),localStorage.setItem(Be,JSON.stringify(D))}catch(D){console.warn("Failed to update cache timestamp:",D)}n(D=>({...D,openDialogType:null}))},[n]);return e.jsxs(e.Fragment,{children:[e.jsx(Ge,{open:t.openDialogType===ee.mermaidToDrawnix,onOpenChange:E=>{n({...t,openDialogType:E?ee.mermaidToDrawnix:null})},children:e.jsx(We,{className:"Dialog ttd-dialog",container:a,children:e.jsx(Ca,{})})}),e.jsx(Ge,{open:t.openDialogType===ee.markdownToDrawnix,onOpenChange:E=>{n({...t,openDialogType:E?ee.markdownToDrawnix:null})},children:e.jsx(We,{className:"Dialog ttd-dialog",container:a,children:e.jsx(Sa,{})})}),e.jsx(tt,{visible:t.openDialogType===ee.aiImageGeneration,title:y==="batch"?o==="zh"?"批量出图":"Batch Generation":o==="zh"?"AI 图片生成":"AI Image Generation",headerContent:e.jsxs("div",{className:"image-generation-mode-tabs",children:[e.jsx("button",{className:`mode-tab ${y==="single"?"active":""}`,onClick:()=>p("single"),children:o==="zh"?"AI 图片生成":"AI Image"}),e.jsx("button",{className:`mode-tab ${y==="batch"?"active":""}`,onClick:()=>p("batch"),children:o==="zh"?"批量出图":"Batch"})]}),onClose:L,width:"80%",height:"60%",minWidth:1024,minHeight:500,x:"center",y:"center",modal:!1,minimizable:!1,className:"winbox-ai-generation winbox-ai-image-generation",container:a,autoMaximize:I,children:t.openDialogType===ee.aiImageGeneration&&(y==="batch"?e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"loading-fallback",children:o==="zh"?"加载中...":"Loading..."}),children:e.jsx(Wa,{onSwitchToSingle:()=>p("single")})}):e.jsx(Va,{initialPrompt:d.initialPrompt,initialImages:d.initialImages,selectedElementIds:d.selectedElementIds,initialWidth:((A=t.dialogInitialData)==null?void 0:A.initialWidth)||((H=t.dialogInitialData)==null?void 0:H.width),initialHeight:((G=t.dialogInitialData)==null?void 0:G.initialHeight)||((S=t.dialogInitialData)==null?void 0:S.height),initialResultUrl:d.initialResultUrl,selectedModel:v,onModelChange:U}))}),e.jsx(tt,{visible:t.openDialogType===ee.aiVideoGeneration,title:o==="zh"?"AI 视频生成":"AI Video Generation",onClose:N,width:"70%",height:"60%",minWidth:800,minHeight:600,x:"center",y:"center",modal:!1,minimizable:!1,className:"winbox-ai-generation winbox-ai-video-generation",container:a,children:t.openDialogType===ee.aiVideoGeneration&&e.jsx(Ba,{initialPrompt:f.initialPrompt,initialImage:f.initialImage,initialImages:f.initialImages,initialDuration:f.initialDuration,initialModel:f.initialModel,initialSize:f.initialSize,initialResultUrl:f.initialResultUrl,selectedModel:u,onModelChange:_})})]})},Xa=s.memo(Ha,(a,t)=>a.container===t.container);export{Xa as TTDDialog};
47
+ `)}function La(a){const t=/Shot\s+(\d+):\s*\n\s*duration:\s*([\d.]+)\s*sec\s*\n\s*Scene:\s*([^\n]+(?:\n(?!Shot\s+\d+:)[^\n]*)*)/gi,n=[];let o;for(;(o=t.exec(a))!==null;){const r=parseInt(o[1],10),c=parseFloat(o[2]),m=o[3].trim();n.push({id:Ct(),order:r,duration:c,prompt:m})}return n.length===0?null:n.sort((r,c)=>r.order-c.order)}const Fa=({value:a,onChange:t,placeholder:n,disabled:o=!1,autoFocus:r=!1,enableMention:c=!0})=>{const{mentionState:m,textareaRef:v,handleTextChange:x,handleKeyDown:u,handleCharacterSelect:C,closeMentionPopup:U}=bt({enabled:c,onPromptChange:t,prompt:a}),_=s.useCallback(d=>{const j=d.target.value,f=d.target.selectionStart||0;x(j,f)},[x]);return s.useEffect(()=>{r&&v.current&&v.current.focus()},[r,v]),e.jsxs("div",{className:"scene-prompt-input",children:[e.jsx("textarea",{ref:v,className:"scene-prompt-input__textarea",value:a,onChange:_,onKeyDown:u,placeholder:n,disabled:o,rows:3}),c&&e.jsx(wt,{visible:m.visible,query:m.query,position:m.position,showBelow:m.showBelow,selectedIndex:m.selectedIndex,onSelect:C,onClose:U})]})},$a=({enabled:a,onEnabledChange:t,totalDuration:n,maxScenes:o,minSceneDuration:r,scenes:c,onScenesChange:m,disabled:v=!1})=>{const[x,u]=s.useState(null),C=s.useRef(null);s.useEffect(()=>{a&&c.length>0&&!x&&u(c[0].id)},[a,c,x]);const U=s.useCallback(()=>{if(c.length>=o)return;const b=c.reduce((N,A)=>N+A.duration,0),p=n-b;let h=Math.max(r,p/2);h=parseFloat(h.toFixed(1)),h<r&&(h=r);const L=et(c.length+1,h);m([...c,L]),u(L.id),setTimeout(()=>{var N;(N=C.current)==null||N.scrollIntoView({behavior:"smooth"})},100)},[c,o,n,r,m]),_=s.useCallback(b=>{var L;if(c.length<=1)return;const h=c.filter(N=>N.id!==b).map((N,A)=>({...N,order:A+1}));m(h),x===b&&u(((L=h[0])==null?void 0:L.id)||null)},[c,m,x]),d=s.useCallback(b=>{const p=c.filter(h=>h.id!==b).reduce((h,L)=>h+L.duration,0);return Math.max(r,n-p)},[c,n,r]),j=s.useCallback(b=>{const p=d(b),h=[],L=.1;for(let N=r;N<=p+.001;N+=L){const A=parseFloat(N.toFixed(1));A<=p&&h.push({label:`${A}`,value:A})}return h},[r,d]),f=s.useCallback((b,p)=>{const h=typeof p=="string"?parseFloat(p):p;if(isNaN(h))return;const L=d(b),N=c.map(A=>{if(A.id===b){const H=Math.max(r,Math.min(h,L)),G=parseFloat(H.toFixed(1));return{...A,duration:G}}return A});m(N)},[c,r,d,m]),w=s.useCallback((b,p)=>{const h=c.map(L=>L.id===b?{...L,prompt:p}:L);m(h)},[c,m]),I=s.useCallback(b=>{if(t(b),b&&c.length===0){const p=et(1,n);m([p]),u(p.id)}},[c,n,t,m]),z=s.useCallback(b=>{u(b)},[]),y=c.length<o;return e.jsxs("div",{className:"storyboard-editor",children:[e.jsxs("div",{className:"storyboard-editor__header",children:[e.jsxs("div",{className:"storyboard-editor__toggle",children:[e.jsx(Qt,{value:a,onChange:I,disabled:v,size:"small"}),e.jsxs("div",{className:"storyboard-editor__title",children:[e.jsx("span",{className:"storyboard-editor__title-text",children:"故事场景模式"}),e.jsx("span",{className:"storyboard-editor__title-desc",children:"定义多个场景及其时长"})]})]}),a&&e.jsx("span",{className:"storyboard-editor__new-badge",children:"NEW"})]}),a&&e.jsxs("div",{className:"storyboard-editor__content",children:[e.jsxs("div",{className:"storyboard-editor__section-header",children:[e.jsx("span",{className:"storyboard-editor__section-title",children:"场景列表"}),e.jsxs("span",{className:"storyboard-editor__section-hint",children:["共 ",c.length," 个场景,已用 ",c.reduce((b,p)=>b+p.duration,0).toFixed(1)," 秒 / 总时长 ",n," 秒"]})]}),e.jsxs("div",{className:"storyboard-editor__scenes",children:[c.map((b,p)=>{const h=x===b.id,L=p===c.length-1;return e.jsxs("div",{className:`storyboard-editor__scene-wrapper ${h?"is-selected":""}`,children:[e.jsx("div",{className:`storyboard-editor__timeline-line ${L?"is-last":""}`}),e.jsx("div",{className:`storyboard-editor__timeline-node ${h?"is-selected":""}`,children:h?p+1:""}),!h&&e.jsxs("div",{className:"storyboard-editor__scene storyboard-editor__scene--compact",onClick:()=>z(b.id),children:[e.jsx("span",{className:"storyboard-editor__scene-index",children:p+1}),e.jsx("div",{className:"storyboard-editor__scene-preview",children:e.jsx("p",{className:"storyboard-editor__scene-preview-text",children:b.prompt||"暂无场景描述..."})}),e.jsxs("div",{className:"storyboard-editor__scene-duration-badge",children:[e.jsx(Ne,{size:"12px"}),e.jsxs("span",{children:[b.duration,"s"]})]}),e.jsx(ct,{className:"storyboard-editor__scene-arrow",size:"14px"})]}),h&&e.jsxs("div",{className:"storyboard-editor__scene storyboard-editor__scene--expanded",children:[e.jsxs("div",{className:"storyboard-editor__scene-header",children:[e.jsx("div",{className:"storyboard-editor__scene-info",children:e.jsxs("span",{className:"storyboard-editor__scene-label",children:[e.jsx("span",{className:"storyboard-editor__active-indicator"}),"场景 ",p+1]})}),e.jsxs("div",{className:"storyboard-editor__scene-controls",children:[e.jsx(Ne,{className:"storyboard-editor__time-icon"}),e.jsx(_e,{value:parseFloat(b.duration.toFixed(1)),onChange:N=>f(b.id,N),disabled:v,className:"storyboard-editor__duration-select",size:"small",options:j(b.id),filterable:!0,creatable:!0,popupProps:{overlayClassName:"storyboard-editor__duration-popup"}}),c.length>1&&e.jsx(de,{theme:"default",variant:"text",size:"small",icon:e.jsx(Xt,{}),onClick:N=>{N.stopPropagation(),_(b.id)},disabled:v,className:"storyboard-editor__scene-delete"})]})]}),e.jsx("div",{className:"storyboard-editor__scene-prompt",children:e.jsx(Fa,{value:b.prompt,onChange:N=>w(b.id,N),placeholder:`描述场景 ${p+1} 的内容,输入 @ 可引用角色`,disabled:v,autoFocus:!0,enableMention:!0})})]})]},b.id)}),e.jsx("div",{ref:C})]}),y&&e.jsx(de,{theme:"default",variant:"dashed",size:"medium",icon:e.jsx(Zt,{}),onClick:U,disabled:v,className:"storyboard-editor__add-btn",block:!0,children:"添加场景"})]})]})},St=({images:a,onImagesChange:t,language:n="zh",disabled:o=!1,multiple:r=!0,maxCount:c=10,label:m,slotLabels:v,onError:x})=>{const[u,C]=s.useState(!1),[U,_]=s.useState(!1),[d,j]=s.useState(0),f=s.useRef(null),w=s.useRef(null),{addAsset:I}=ea(),y={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 10MB",someFilesInvalid:"部分文件格式不支持或超过10MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 10MB",someFilesInvalid:"Some files are not supported or exceed 10MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[n],b=s.useCallback(i=>i.type.startsWith("image/")?i.size>10*1024*1024?(Q.error(y.fileTooLarge),!1):!0:(Q.error(y.invalidFile),!1),[y]),p=s.useCallback(i=>new Promise((l,k)=>{const R=new FileReader;R.onload=()=>{l({url:R.result,name:i.name,file:i})},R.onerror=k,R.readAsDataURL(i)}),[]),h=s.useCallback(async(i,l)=>{const R=Array.from(i).filter(b);if(R.length!==0){r&&a.length+R.length>c&&(Q.warning(y.maxCountReached.replace("{count}",String(c))),R.splice(c-a.length)),R.forEach(O=>{I(O,ze.IMAGE,ta.LOCAL,O.name).catch(q=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",q)})});try{const O=await Promise.all(R.map(p));if(v&&l!==void 0){const q=[...a];q[l]=O[0],t(q.filter(Boolean))}else t(r?[...a,...O]:O.slice(0,1));x==null||x(null)}catch(O){console.error("[ReferenceImageUpload] Failed to process files:",O),x==null||x(y.loadFailed)}}},[a,r,c,v,b,p,I,t,x,y]),L=s.useCallback(i=>{const l=i.target.files;l&&l.length>0&&h(l,v?d:void 0),i.target.value=""},[h,v,d]),N=s.useCallback(async i=>{try{const k=await(await fetch(i.url)).blob(),R=new FileReader;R.onload=()=>{const O={url:R.result,name:i.name};if(v){const q=[...a];q[d]=O,t(q.filter(Boolean))}else if(r){if(a.length>=c){Q.warning(y.maxCountReached.replace("{count}",String(c)));return}t([...a,O])}else t([O]);C(!1),x==null||x(null)},R.readAsDataURL(k)}catch(l){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",l),x==null||x(y.loadFailed),C(!1)}},[a,r,c,v,d,t,x,y]),A=s.useCallback(i=>{i.preventDefault(),i.stopPropagation(),o||_(!0)},[o]),H=s.useCallback(i=>{var k;i.preventDefault(),i.stopPropagation();const l=(k=f.current)==null?void 0:k.getBoundingClientRect();if(l){const{clientX:R,clientY:O}=i;(R<l.left||R>l.right||O<l.top||O>l.bottom)&&_(!1)}},[]),G=s.useCallback(i=>{i.preventDefault(),i.stopPropagation()},[]),S=s.useCallback((i,l)=>{if(i.preventDefault(),i.stopPropagation(),_(!1),o)return;const k=i.dataTransfer.files;k&&k.length>0&&h(k,l)},[o,h]);s.useEffect(()=>{const i=async l=>{var le;if(o)return;const k=document.activeElement,R=f.current;if(!R||!(R.contains(k)||k===document.body||(k==null?void 0:k.tagName)==="BODY"))return;const q=(le=l.clipboardData)==null?void 0:le.items;if(!q)return;const ae=[];for(let re=0;re<q.length;re++){const se=q[re];if(se.type.startsWith("image/")){const oe=se.getAsFile();oe&&ae.push(oe)}}ae.length>0&&(l.preventDefault(),h(ae))};return document.addEventListener("paste",i),()=>{document.removeEventListener("paste",i)}},[o,h]);const E=s.useCallback(i=>{const l=a.filter((k,R)=>R!==i);t(l)},[a,t]),D=s.useCallback(i=>{var l;i!==void 0&&j(i),(l=w.current)==null||l.click()},[]),T=s.useCallback(i=>{i!==void 0&&j(i),C(!0)},[]),P=i=>e.jsx("div",{className:`reference-image-upload__placeholder ${U?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:A,onDragLeave:H,onDragOver:G,onDrop:l=>S(l,i),children:e.jsxs("div",{className:"reference-image-upload__buttons",children:[e.jsx(de,{variant:"outline",icon:e.jsx(Le,{size:16}),onClick:()=>D(i),disabled:o,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:y.local}),e.jsx(de,{variant:"outline",icon:e.jsx(Fe,{size:16}),onClick:()=>T(i),disabled:o,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:y.library})]})}),g=(i,l)=>e.jsxs("div",{className:"reference-image-upload__preview",children:[e.jsx("img",{src:i.url,alt:i.name,className:"reference-image-upload__image"}),e.jsx("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>E(l),disabled:o,"data-track":"reference_image_upload_remove",children:e.jsx(ra,{size:14})}),v&&v[l]&&e.jsx("div",{className:"reference-image-upload__slot-label",children:v[l]})]},l),V=()=>v?e.jsx("div",{className:"reference-image-upload__slots",children:v.map((i,l)=>{const k=a[l];return e.jsxs("div",{className:"reference-image-upload__slot",children:[e.jsx("div",{className:"reference-image-upload__slot-title",children:i}),k?g(k,l):e.jsx("div",{className:`reference-image-upload__slot-placeholder ${U?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:A,onDragLeave:H,onDragOver:G,onDrop:R=>S(R,l),children:e.jsxs("div",{className:"reference-image-upload__slot-buttons",children:[e.jsx(de,{variant:"outline",icon:e.jsx(Le,{size:16}),onClick:()=>D(l),disabled:o,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:y.local}),e.jsx(de,{variant:"outline",icon:e.jsx(Fe,{size:16}),onClick:()=>T(l),disabled:o,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:y.library})]})})]},l)})}):null,$=()=>{const i=r&&a.length<c;return e.jsxs("div",{className:"reference-image-upload__grid",children:[a.map((l,k)=>g(l,k)),i&&P(),a.length===0&&!i&&P()]})},K=()=>a.length>0?e.jsxs("div",{className:"reference-image-upload__single",children:[g(a[0],0),e.jsx("div",{className:"reference-image-upload__replace",children:P()})]}):P();return e.jsxs("div",{ref:f,className:`reference-image-upload ${o?"reference-image-upload--disabled":""}`,tabIndex:0,children:[m&&e.jsx("div",{className:"reference-image-upload__label",children:m}),e.jsx("input",{ref:w,type:"file",accept:"image/*",multiple:r&&!v,onChange:L,className:"reference-image-upload__input",disabled:o}),v?V():r?$():K(),e.jsx(aa,{isOpen:u,onClose:()=>C(!1),mode:sa.SELECT,filterType:ze.IMAGE,onSelect:N})]})},Dt=({taskIds:a,taskType:t,onEditTask:n})=>{var K;const{tasks:o,retryTask:r,deleteTask:c}=ye(),{board:m,openDialog:v}=we(),[x,u]=s.useState(!1),[C,U]=s.useState(null),[_,d]=s.useState(null),[j,f]=s.useState(""),[w,I]=s.useState(null),z=(i,l)=>{var ae,le,re,se,oe,ue,fe,M,F,B;if(!l.trim())return!0;const k=l.toLowerCase().split(/\s+/).filter(Boolean),R={[pe.PENDING]:"待处理",[pe.PROCESSING]:"处理中",[pe.COMPLETED]:"已完成",[pe.FAILED]:"失败",[pe.CANCELLED]:"已取消"},O=[];O.push(((ae=i.params)==null?void 0:ae.prompt)??""),O.push(((le=i.params)==null?void 0:le.model)??""),O.push(i.id??""),O.push(R[i.status]??String(i.status)),(re=i.params)!=null&&re.batchId&&O.push(String(i.params.batchId)),(se=i.params)!=null&&se.batchIndex&&O.push(String(i.params.batchIndex)),(oe=i.params)!=null&&oe.batchTotal&&O.push(String(i.params.batchTotal)),(ue=i.result)!=null&&ue.format&&O.push(String(i.result.format)),(fe=i.result)!=null&&fe.width&&((M=i.result)!=null&&M.height)?O.push(`${i.result.width}x${i.result.height}`):(F=i.params)!=null&&F.width&&((B=i.params)!=null&&B.height)&&O.push(`${i.params.width}x${i.params.height}`);const q=O.join(" ").toLowerCase();return k.every(W=>q.includes(W))},y=s.useMemo(()=>{let i=o;return a&&a.length>0&&(i=i.filter(l=>a.includes(l.id))),t!==void 0&&(i=i.filter(l=>l.type===t)),j.trim()&&(i=i.filter(l=>z(l,j))),i.sort((l,k)=>k.createdAt-l.createdAt)},[o,a,t,j]),b=i=>{r(i)},p=i=>{U(i),u(!0)},h=()=>{C&&c(C),u(!1),U(null)},L=async i=>{var R;const l=o.find(O=>O.id===i);if(!((R=l==null?void 0:l.result)!=null&&R.url))return;const k=`${ma(l.params.prompt)||l.type}.${l.result.format}`;try{const O=await pa.getCachedBlob(l.result.url);if(O){ha(O,k),Q.success("下载成功");return}const q=await fa(l.result.url,l.params.prompt,l.result.format,l.type);q&&"opened"in q?Q.success("已在新标签页打开,请右键另存为"):Q.success("下载成功")}catch(O){console.error("Download failed:",O),Q.error("下载失败,请稍后重试")}},N=async i=>{var k;const l=o.find(R=>R.id===i);if(!((k=l==null?void 0:l.result)!=null&&k.url)||!m){console.warn("Cannot insert: task result or board not available"),Q.warning("无法插入:白板未就绪");return}try{l.type===X.IMAGE?(await da(m,l.result.url),Q.success("图片已插入到白板")):l.type===X.VIDEO&&(await ua(m,l.result.url),Q.success("视频已插入到白板"))}catch(R){console.error("Failed to insert to board:",R),Q.error(`插入失败: ${R instanceof Error?R.message:"未知错误"}`)}},A=i=>{var k,R;const l=o.find(O=>O.id===i);if(!l){console.warn("Cannot edit: task not found");return}if(n){n(l);return}if(l.type===X.IMAGE){const O={initialPrompt:l.params.prompt,initialWidth:l.params.width,initialHeight:l.params.height,initialImages:l.params.uploadedImages,initialResultUrl:(k=l.result)==null?void 0:k.url};v(ee.aiImageGeneration,O)}else if(l.type===X.VIDEO){const O={initialPrompt:l.params.prompt,initialDuration:typeof l.params.seconds=="string"?parseInt(l.params.seconds,10):l.params.seconds,initialModel:l.params.model,initialSize:l.params.size,initialImages:l.params.uploadedImages,initialResultUrl:(R=l.result)==null?void 0:R.url};v(ee.aiVideoGeneration,O)}},H=i=>{const l=o.find(k=>k.id===i);l&&I(l)},G=s.useMemo(()=>y.filter(i=>{var l;return i.status===pe.COMPLETED&&((l=i.result)==null?void 0:l.url)}),[y]),S=s.useMemo(()=>{if(!_)return null;const i=G.findIndex(l=>l.id===_);return i===-1?null:{currentIndex:i,total:G.length,hasPrevious:i>0,hasNext:i<G.length-1}},[_,G]),E=i=>{d(i)},D=()=>{d(null)},T=()=>{!S||!S.hasPrevious||d(G[S.currentIndex-1].id)},P=()=>{!S||!S.hasNext||d(G[S.currentIndex+1].id)},g=s.useMemo(()=>_?o.find(i=>i.id===_):null,[_,o]);s.useEffect(()=>{if(!_)return;const i=l=>{l.key==="ArrowLeft"||l.key==="ArrowUp"?(l.preventDefault(),T()):l.key==="ArrowRight"||l.key==="ArrowDown"?(l.preventDefault(),P()):l.key==="Escape"&&(l.preventDefault(),D())};return window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i)},[_,S]);const V=s.useMemo(()=>{let i=o;return a&&a.length>0&&(i=i.filter(l=>a.includes(l.id))),t!==void 0&&(i=i.filter(l=>l.type===t)),i.length},[o,a,t]),$=j.trim()&&y.length===0&&V>0;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"dialog-task-list",children:[e.jsxs("div",{className:"dialog-task-list__header",style:{display:"flex",alignItems:"center",gap:8,justifyContent:"space-between"},children:[e.jsxs("h4",{children:["生成任务 (",y.length,")"]}),e.jsx("div",{style:{minWidth:"180px",maxWidth:"240px",flexShrink:0},children:e.jsx(na,{value:j,onChange:i=>f(i),placeholder:"搜索任务(提示词/模型/...)",clearable:!0,prefixIcon:e.jsx(oa,{}),size:"small"})})]}),e.jsx(ia,{tasks:y,onRetry:b,onDelete:p,onDownload:L,onInsert:N,onEdit:A,onPreviewOpen:E,onExtractCharacter:H,className:"dialog-task-list__content",emptyContent:e.jsx("div",{className:"dialog-task-list__empty",children:$?e.jsx("p",{children:"未找到匹配的任务"}):e.jsx("p",{children:"暂无生成任务"})})})]}),e.jsx($e,{visible:x,header:"确认删除",onClose:()=>u(!1),onConfirm:h,onCancel:()=>u(!1),children:"确定要删除此任务吗?此操作无法撤销。"}),g&&((K=g.result)==null?void 0:K.url)&&e.jsx($e,{visible:!!_,onClose:D,width:"90vw",header:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsx("span",{children:g.type===X.IMAGE?"图片预览":g.type===X.CHARACTER?"角色预览":"视频预览"}),S&&e.jsxs("span",{style:{fontSize:"14px",color:"#757575",fontWeight:"normal"},children:[S.currentIndex+1," / ",S.total]})]}),footer:null,className:"task-preview-dialog",children:e.jsxs("div",{className:"task-preview-container",children:[e.jsx(de,{className:"task-preview-nav task-preview-nav--left",icon:e.jsx(la,{}),"data-track":"task_click_preview_previous",onClick:T,size:"large",shape:"circle",variant:"outline",disabled:!(S!=null&&S.hasPrevious)}),e.jsx(Ua,{task:g}),e.jsx(de,{className:"task-preview-nav task-preview-nav--right",icon:e.jsx(ct,{}),"data-track":"task_click_preview_next",onClick:P,size:"large",shape:"circle",variant:"outline",disabled:!(S!=null&&S.hasNext)})]})}),e.jsx(ca,{visible:!!w,task:w,onClose:()=>I(null),onCreateComplete:i=>{I(null)}})]})},Ua=({task:a})=>{var o;const{url:t,isFromCache:n}=ga(a.id,(o=a.result)==null?void 0:o.url);return t?e.jsxs("div",{className:"task-preview-content",children:[a.type===X.IMAGE||a.type===X.CHARACTER?e.jsx("img",{src:t,alt:"Preview",style:{maxWidth:"100%",maxHeight:"85vh",objectFit:"contain"}},a.id):e.jsx("video",{src:t,controls:!0,autoPlay:!0,style:{maxWidth:"100%",maxHeight:"85vh"}},a.id),n&&e.jsx("div",{className:"task-preview-cache-badge",children:"已缓存"})]}):e.jsx("div",{className:"task-preview-content",children:"加载中..."})},Va=({initialPrompt:a="",initialImages:t=[],selectedElementIds:n=[],initialWidth:o,initialHeight:r,initialResultUrl:c,selectedModel:m,onModelChange:v}={})=>{const[x,u]=s.useState(a),[C,U]=s.useState(o||1024),[_,d]=s.useState(r||1024),[j,f]=s.useState(Ze),[w,I]=s.useState(null),[z,y]=s.useState(t),{imageHistory:b}=ht(),{isGenerating:p}=gt("image"),{language:h}=he(),{createTask:L}=ye(),[N,A]=s.useState(!1),H=ne.useRef("");s.useEffect(()=>{if(N)return;const g=JSON.stringify({prompt:a,images:t==null?void 0:t.map(V=>V.url),elementIds:n,width:o,height:r,result:c});H.current!==g&&(H.current=g,u(a),y(t||[]),o&&U(o),r&&d(r))},[a,t,n,o,r,c,N]),s.useEffect(()=>(I(null),()=>{I(null)}),[]);const G=()=>{u(""),y([]),I(null),f(Ze),A(!1),window.dispatchEvent(new CustomEvent("ai-image-clear"))},S=ne.useMemo(()=>_t("image",h,b),[b,h]),E=g=>{jt("image",g)},D=g=>{if(A(!0),u(g.params.prompt||""),U(g.params.width||1024),d(g.params.height||1024),g.params.uploadedImages&&g.params.uploadedImages.length>0?y(g.params.uploadedImages):y([]),g.params.model){const V=J.get();J.update({...V,imageModelName:g.params.model})}g.params.aspectRatio&&f(g.params.aspectRatio),I(null)},T=async()=>Promise.all(z.map(async g=>{if(g.file)return new Promise((V,$)=>{const K=new FileReader;K.onload=()=>{V({type:"url",url:K.result,name:g.name})},K.onerror=$,K.readAsDataURL(g.file)});if(g.url)return{type:"url",url:g.url,name:g.name};throw new Error("Invalid image data")})),P=async(g=1)=>{if(!x.trim()){I(h==="zh"?"请输入图像描述":"Please enter image description");return}if(!J.get().apiKey&&!await xa()){I(h==="zh"?"需要 API Key 才能生成图片":"API Key is required to generate images");return}try{const $=typeof C=="string"?parseInt(C)||1024:C,K=typeof _=="string"?parseInt(_)||1024:_,i=await T();if(g>1){const q=[],ae=`batch_${Date.now()}`,re=J.get().imageModelName||"gemini-3-pro-image-preview-vip";for(let se=0;se<g;se++){const oe={prompt:x.trim(),width:$,height:K,aspectRatio:j,model:re,uploadedImages:i,batchId:ae,batchIndex:se+1,batchTotal:g,autoInsertToCanvas:!0},ue=L(oe,X.IMAGE);ue&&q.push(ue.id)}q.length>0?(Q.success(h==="zh"?`已添加 ${q.length} 个任务到队列`:`Added ${q.length} tasks to queue`),E(x),I(null),A(!1)):I(h==="zh"?"批量任务创建失败,请稍后重试":"Failed to create batch tasks, please try again later");return}const k=J.get().imageModelName||"gemini-2.5-flash-image-vip",R={prompt:x.trim(),width:$,height:K,aspectRatio:j,model:k,uploadedImages:i,autoInsertToCanvas:!0};L(R,X.IMAGE)?(Q.success(h==="zh"?"任务已添加到队列,将在后台生成":"Task added to queue, will be generated in background"),E(x),I(null),A(!1)):I(h==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch($){console.error("Failed to create task:",$);let K=h==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";$.message&&($.message.includes("exceed 5000 characters")?K=h==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":$.message.includes("Duplicate submission")?K=h==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":$.message.includes("Invalid parameters")&&(K=h==="zh"?`参数错误: ${$.message.replace("Invalid parameters: ","")}`:$.message)),I(K)}};return ft(p,x,()=>P(1)),e.jsx("div",{className:"ai-image-generation-container",children:e.jsxs("div",{className:"main-content",children:[e.jsxs("div",{className:"ai-image-generation-section",children:[e.jsxs("div",{className:"ai-image-generation-form",children:[m!==void 0&&v&&e.jsx("div",{className:"form-header-row",children:e.jsx("div",{className:"model-selector-wrapper",children:e.jsx(_e,{value:m,onChange:g=>v(g),options:va,size:"small",placeholder:h==="zh"?"选择图片模型":"Select Image Model",filterable:!0,creatable:!0,disabled:p})})}),e.jsx(St,{images:z,onImagesChange:y,language:h,disabled:p,multiple:!0,label:h==="zh"?"参考图片 (可选)":"Reference Images (Optional)",onError:I}),e.jsx(yt,{prompt:x,onPromptChange:u,presetPrompts:S,language:h,type:"image",disabled:p,onError:I}),e.jsx(xt,{error:w})]}),e.jsx(vt,{language:h,type:"image",isGenerating:p,hasGenerated:!1,canGenerate:!!x.trim(),onGenerate:P,onReset:G,leftContent:e.jsx(Oa,{value:j,onChange:f,compact:!0})})]}),e.jsx("div",{className:"task-sidebar",children:e.jsx(Dt,{taskType:X.IMAGE,onEditTask:D})})]})})},Ba=({initialPrompt:a="",initialImage:t,initialImages:n,initialDuration:o,initialModel:r,initialSize:c,initialResultUrl:m,selectedModel:v,onModelChange:x}={})=>{const[u,C]=s.useState(a),[U,_]=s.useState(null),[d,j]=s.useState(()=>{const M=J.get();return r||M.videoModelName||"veo3"}),f=ne.useMemo(()=>De(d),[d]),w=ne.useMemo(()=>Se(d),[d]),[I,z]=s.useState((o==null?void 0:o.toString())||w.duration),[y,b]=s.useState(c||w.size),[p,h]=s.useState(()=>n&&n.length>0?n:t?[{slot:0,slotLabel:"参考图",url:t.url||"",name:t.name,file:t.file}]:[]),[L,N]=s.useState(()=>{const M=f.imageUpload.maxCount,F=f.imageUpload.labels||[];let B=[];return n&&n.length>0?B=n:t&&(B=[{slot:0,slotLabel:F[0]||"参考图",url:t.url||"",name:t.name,file:t.file}]),B.slice(0,M).map((W,Y)=>({...W,slot:Y,slotLabel:F[Y]||`参考图${Y+1}`}))}),[A,H]=s.useState(!1),[G,S]=s.useState([]),E=ne.useMemo(()=>wa(d),[d]),D=Ue(d),{videoHistory:T}=ht(),[P,g]=s.useState(0),{isGenerating:V}=gt("video"),{language:$}=he(),{createTask:K}=ye();s.useEffect(()=>{const M=F=>{const B=F.videoModelName||"veo3";B!==d&&j(B)};return J.addListener(M),()=>J.removeListener(M)},[d]),s.useEffect(()=>{v&&v!==d&&j(v)},[v]);const[i,l]=s.useState(!1),[k,R]=s.useState(!1);s.useEffect(()=>{if(k){R(!1);return}const M=f.imageUpload.maxCount,F=f.imageUpload.labels||[];if(z(w.duration),b(w.size),p.length>0){const B=p.slice(0,M).map((W,Y)=>({...W,slot:Y,slotLabel:F[Y]||`参考图${Y+1}`}));N(B)}else N([]);Ue(d)||(H(!1),S([]))},[d,w,k,p,f.imageUpload]);const O=ne.useRef("");s.useEffect(()=>{if(i)return;const M=JSON.stringify({prompt:a,image:t==null?void 0:t.url,images:n==null?void 0:n.map(Z=>Z.url),duration:o,model:r,size:c,result:m});if(O.current===M)return;O.current=M,C(a);const F=f.imageUpload.maxCount,B=f.imageUpload.labels||[];let W=[];n&&n.length>0?W=n:t&&(W=[{slot:0,slotLabel:"参考图",url:t.url||"",name:t.name,file:t.file}]),h(W);const Y=W.slice(0,F).map((Z,ie)=>({...Z,slot:ie,slotLabel:B[ie]||`参考图${ie+1}`}));N(Y),o!==void 0&&z(o.toString()),c&&b(c),_(null)},[a,t,n,o,c,m,f.imageUpload,i]),s.useEffect(()=>(_(null),()=>{_(null)}),[]);const q=()=>{C(""),h([]),N([]),_(null);const M=Se(d);z(M.duration),b(M.size),l(!1),H(!1),S([]),window.dispatchEvent(new CustomEvent("ai-video-clear"))},ae=ne.useCallback((M,F)=>M.map((B,W)=>({slot:W,slotLabel:F[W]||`参考图${W+1}`,url:B.url,name:B.name,file:B.file})),[]),le=ne.useCallback(M=>M.map(F=>({url:F.url,name:F.name,file:F.file})),[]),re=ne.useCallback(M=>{const F=f.imageUpload.labels||[],B=ae(M,F);N(B),h(B)},[f.imageUpload.labels,ae]),se=ne.useMemo(()=>_t("video",$,T),[T,$,P]),oe=M=>{jt("video",M),g(F=>F+1)},ue=M=>{var F,B;if(l(!0),R(!0),M.params.model){j(M.params.model);const W=J.get();J.update({...W,videoModelName:M.params.model})}if((F=M.params.storyboard)!=null&&F.enabled&&((B=M.params.storyboard)!=null&&B.scenes))H(!0),S(M.params.storyboard.scenes),C("");else{const W=M.params.prompt||"",Y=La(W);Y&&Y.length>0?(H(!0),S(Y),C("")):(H(!1),S([]),C(W))}if(M.params.seconds!==void 0){const W=typeof M.params.seconds=="string"?M.params.seconds:M.params.seconds.toString();z(W)}if(M.params.size&&b(M.params.size),M.params.uploadedImages&&M.params.uploadedImages.length>0){h(M.params.uploadedImages);const W=M.params.model||d,Y=De(W),Z=Y.imageUpload.maxCount,ie=Y.imageUpload.labels||[],me=M.params.uploadedImages.slice(0,Z).map((je,ce)=>({...je,slot:ce,slotLabel:ie[ce]||`参考图${ce+1}`}));N(me)}else h([]),N([]);_(null)},fe=async(M=1)=>{if(A){const F=Aa(G,parseFloat(I),E.minSceneDuration);if(!F.valid){_(F.error||"场景配置无效");return}}else if(!u.trim()){_($==="zh"?"请输入视频描述":"Please enter video description");return}try{const F=[];for(const Z of L)if(Z.file){const ie=await new Promise((me,je)=>{const ce=new FileReader;ce.onload=()=>me(ce.result),ce.onerror=je,ce.readAsDataURL(Z.file)});F.push({...Z,url:ie,file:void 0})}else F.push({...Z,file:void 0});const B=A?za(G):u.trim(),W=[],Y=M>1?`video_batch_${Date.now()}`:void 0;for(let Z=0;Z<M;Z++){const ie={prompt:B,model:d,seconds:I,size:y,uploadedImages:F,...A&&{storyboard:{enabled:!0,scenes:G,totalDuration:parseFloat(I)}},...Y&&{batchId:Y,batchIndex:Z+1,batchTotal:M},autoInsertToCanvas:!0},me=K(ie,X.VIDEO);me&&W.push(me.id)}W.length>0?(Q.success($==="zh"?M>1?`${W.length} 个视频任务已添加到队列,将在后台生成`:"视频任务已添加到队列,将在后台生成":M>1?`${W.length} video tasks added to queue, will be generated in background`:"Video task added to queue, will be generated in background"),oe(B),C(""),h([]),N([]),H(!1),S([]),_(null),l(!1)):_($==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch(F){console.error("Failed to create task:",F);let B=$==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";F.message&&(F.message.includes("exceed 5000 characters")?B=$==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":F.message.includes("Duplicate submission")?B=$==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":F.message.includes("Invalid parameters")&&(B=$==="zh"?`参数错误: ${F.message.replace("Invalid parameters: ","")}`:F.message)),_(B)}};return ft(V,u,fe),e.jsx("div",{className:"ai-video-generation-container",children:e.jsxs("div",{className:"main-content",children:[e.jsxs("div",{className:"ai-image-generation-section",children:[e.jsxs("div",{className:"ai-image-generation-form",children:[v!==void 0&&x&&e.jsx("div",{className:"model-selector-wrapper",children:e.jsx(_e,{value:v,onChange:M=>x(M),options:ba,size:"small",placeholder:$==="zh"?"选择视频模型":"Select Video Model",filterable:!0,creatable:!0,disabled:V})}),e.jsx(ka,{model:d,duration:I,size:y,onDurationChange:z,onSizeChange:b,disabled:V}),e.jsx(St,{images:le(L),onImagesChange:re,language:$,disabled:V,multiple:f.imageUpload.maxCount>1,maxCount:f.imageUpload.maxCount,slotLabels:f.imageUpload.mode==="frames"?f.imageUpload.labels:void 0,label:f.imageUpload.mode==="frames"?$==="zh"?"首尾帧图片 (可选)":"Start/End Frames (Optional)":$==="zh"?"参考图片 (可选)":"Reference Images (Optional)"}),D&&e.jsx($a,{enabled:A,onEnabledChange:H,totalDuration:parseFloat(I),maxScenes:E.maxScenes,minSceneDuration:E.minSceneDuration,scenes:G,onScenesChange:S,disabled:V}),!A&&e.jsx(yt,{prompt:u,onPromptChange:C,presetPrompts:se,language:$,type:"video",disabled:V,onError:_,videoProvider:f.provider}),e.jsx(xt,{error:U})]}),e.jsx(vt,{language:$,type:"video",isGenerating:V,hasGenerated:!1,canGenerate:A?G.length>0:!!u.trim(),onGenerate:fe,onReset:q})]}),e.jsx("div",{className:"task-sidebar",children:e.jsx(Dt,{taskType:X.VIDEO,onEditTask:ue})})]})})};let te=null,ve=null;const Ga=async()=>te||(typeof window<"u"&&window.WinBox?(te=window.WinBox,te):ve||(ve=(async()=>{try{if(await be(()=>import("./winbox.bundle.min-CoRPjCs5.js"),[],import.meta.url),te=window.WinBox,te)return te;throw new Error("WinBox not found after import")}catch(a){return console.warn("Dynamic import failed, falling back to CDN:",a),new Promise((t,n)=>{const o=document.createElement("script");o.src="https://cdn.jsdelivr.net/npm/winbox@0.2.82/dist/winbox.bundle.min.js",o.async=!0,o.onload=()=>{te=window.WinBox,te?t(te):n(new Error("WinBox not found after CDN loading"))},o.onerror=n,document.head.appendChild(o)})}})(),ve)),tt=({visible:a,title:t,onClose:n,children:o,width:r="80%",height:c="80%",minWidth:m=400,minHeight:v=300,x="center",y:u="center",maximizable:C=!0,minimizable:U=!0,resizable:_=!0,movable:d=!0,modal:j=!1,background:f="linear-gradient(135deg, #5A4FCF 0%, #7B68EE 50%, #E91E63 100%)",border:w=0,className:I,id:z,headerContent:y,container:b,onMaximize:p,onRestore:h,onFocus:L,onBlur:N,onMove:A,onResize:H,autoMaximize:G=!1})=>{const S=s.useRef(null),E=s.useRef(null),D=s.useRef(null),[T,P]=s.useState(null),[g,V]=s.useState(!1),[$,K]=s.useState(!!te),i=ya(D,{enablePositionTracking:!1,enableScaleCompensation:!0});s.useEffect(()=>{$||Ga().then(()=>K(!0))},[$]);const l=s.useCallback(()=>(n==null||n(),!1),[n]);return s.useEffect(()=>{if(!(!$||!te)){if(!a){if(S.current){try{S.current.close(!0)}catch{}S.current=null,D.current=null,P(null),V(!1)}return}if(a&&!S.current&&E.current){const k=["winbox-react"];C||k.push("no-max"),U||k.push("no-min"),_||k.push("no-resize"),d||k.push("no-move"),k.push("no-full"),I&&k.push(I);const R=new te({id:z,title:t,mount:E.current,width:r,height:c,minwidth:m,minheight:v,x,y:u,modal:j,background:f,border:w,class:k,root:b||document.body,onclose:l,onmaximize:p,onrestore:h,onfocus:L,onblur:N,onmove:A,onresize:H});if(S.current=R,R.window&&(D.current=R.window,requestAnimationFrame(()=>{i()})),y&&R.window){const O=R.window.querySelector(".wb-drag");if(O){const q=document.createElement("div");q.className="wb-header-custom",O.appendChild(q),P(q)}}V(!0),G&&setTimeout(()=>{S.current&&S.current.maximize()},100)}}},[a,$,G]),s.useEffect(()=>()=>{if(S.current){try{S.current.onclose=null,S.current.close(!0)}catch{}S.current=null,D.current=null}},[]),s.useEffect(()=>{S.current&&t&&S.current.setTitle(t)},[t]),s.useEffect(()=>{S.current&&(a?(S.current.show(),S.current.focus()):S.current.hide())},[a]),s.useEffect(()=>{S.current&&G&&S.current.maximize()},[G]),e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{display:"none"},"data-winbox-placeholder":"true",children:e.jsx("div",{ref:E,className:"winbox-content-wrapper",style:{display:a?"block":"none"},children:o})}),g&&y&&T&&lt.createPortal(y,T)]})},Wa=s.lazy(()=>be(()=>import("./batch-image-generation-CqSButZp.js"),__vite__mapDeps([7,1,2,8,9,10,11,12,13]),import.meta.url)),Ha=({container:a})=>{var A,H,G,S;const{appState:t,setAppState:n}=we(),{language:o}=he(),r=Te(),c=s.useRef(!1),m=s.useRef(null),[v,x]=s.useState(""),[u,C]=s.useState("");s.useEffect(()=>{const E=J.get();x(E.imageModelName||"gemini-3-pro-image-preview-vip"),C(E.videoModelName||"veo3")},[]),s.useEffect(()=>{const E=D=>{D.imageModelName&&x(D.imageModelName),D.videoModelName&&C(D.videoModelName)};return J.addListener(E),()=>J.removeListener(E)},[]);const U=E=>{x(E);const D=J.get();J.update({...D,imageModelName:E})},_=E=>{C(E);const D=J.get();J.update({...D,videoModelName:E})},[d,j]=s.useState({initialPrompt:"",initialImages:[],selectedElementIds:[]}),[f,w]=s.useState({initialPrompt:"",initialImage:void 0}),[I,z]=s.useState(!1),[y,b]=s.useState(()=>{try{return localStorage.getItem(Ie)==="batch"?"batch":"single"}catch{return"single"}}),p=s.useCallback(E=>{b(E),z(E==="batch");try{localStorage.setItem(Ie,E)}catch(D){console.warn("Failed to save image mode:",D)}},[]);s.useEffect(()=>{if(t.openDialogType===ee.aiImageGeneration){if(d.initialImages&&d.initialImages.length>0||d.initialPrompt&&d.initialPrompt.trim()!==""){z(!1);return}try{const D=localStorage.getItem(Ie);z(D==="batch")}catch{z(!1)}}},[t.openDialogType,d.initialImages,d.initialPrompt]);const h=s.useRef(null);s.useEffect(()=>{if(!r||!t.openDialogType){h.current=t.openDialogType;return}h.current!==t.openDialogType&&(c.current||(h.current=t.openDialogType,t.openDialogType===ee.aiImageGeneration&&(async()=>{c.current=!0,m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{console.warn("Processing timeout, resetting processing state"),c.current=!1},1e4);try{if(t.dialogInitialData){j({initialPrompt:t.dialogInitialData.initialPrompt||t.dialogInitialData.prompt||"",initialImages:t.dialogInitialData.initialImages||t.dialogInitialData.uploadedImages||[],selectedElementIds:[],initialResultUrl:t.dialogInitialData.initialResultUrl||t.dialogInitialData.resultUrl});return}const D=t.lastSelectedElementIds||[],T=await He(r,D),P=[];T.remainingImages.forEach(g=>{P.push({url:g.url,name:g.name||`selected-image-${Date.now()}.png`})}),T.graphicsImage&&P.push({url:T.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),j({initialPrompt:T.remainingText||"",initialImages:P,selectedElementIds:D})}catch(D){console.warn("Error processing selected content for AI:",D);const T=qe(r),P=T.images.map(g=>({url:g.url,name:g.name||`selected-image-${Date.now()}.png`}));j({initialPrompt:T.text||"",initialImages:P,selectedElementIds:[]})}finally{c.current=!1,m.current&&(clearTimeout(m.current),m.current=null)}})(),t.openDialogType===ee.aiVideoGeneration&&(async()=>{c.current=!0,m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{console.warn("Video processing timeout, resetting processing state"),c.current=!1},1e4);try{if(t.dialogInitialData){const g={initialPrompt:t.dialogInitialData.initialPrompt||t.dialogInitialData.prompt||"",initialImage:t.dialogInitialData.initialImage||t.dialogInitialData.uploadedImage,initialImages:t.dialogInitialData.initialImages||t.dialogInitialData.uploadedImages,initialDuration:t.dialogInitialData.initialDuration||t.dialogInitialData.duration,initialModel:t.dialogInitialData.initialModel||t.dialogInitialData.model,initialSize:t.dialogInitialData.initialSize||t.dialogInitialData.size,initialResultUrl:t.dialogInitialData.initialResultUrl||t.dialogInitialData.resultUrl};w(g);return}const D=t.lastSelectedElementIds||[],T=await He(r,D),P=[];T.remainingImages.length>0?T.remainingImages.forEach((g,V)=>{P.push({url:g.url,name:g.name||`selected-image-${V+1}-${Date.now()}.png`})}):T.graphicsImage&&P.push({url:T.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),w({initialPrompt:T.remainingText||"",initialImage:P.length>0?P[0]:void 0,initialImages:P.map((g,V)=>({slot:V,slotLabel:`参考图${V+1}`,url:g.url,name:g.name}))})}catch(D){console.warn("Error processing selected content for AI video:",D);const T=qe(r),P=T.images.map((g,V)=>({url:g.url,name:g.name||`selected-image-${V+1}-${Date.now()}.png`}));w({initialPrompt:T.text||"",initialImage:P.length>0?P[0]:void 0,initialImages:P.map((g,V)=>({slot:V,slotLabel:`参考图${V+1}`,url:g.url,name:g.name}))})}finally{c.current=!1,m.current&&(clearTimeout(m.current),m.current=null)}})()))},[t.openDialogType]),s.useEffect(()=>{t.openDialogType||(c.current=!1,h.current=null)},[t.openDialogType]);const L=s.useCallback(()=>{const E=localStorage.getItem(Ve);if(E)try{const D=JSON.parse(E);D.timestamp=Date.now(),localStorage.setItem(Ve,JSON.stringify(D))}catch(D){console.warn("Failed to update cache timestamp:",D)}n(D=>({...D,openDialogType:null}))},[n]),N=s.useCallback(()=>{const E=localStorage.getItem(Be);if(E)try{const D=JSON.parse(E);D.timestamp=Date.now(),localStorage.setItem(Be,JSON.stringify(D))}catch(D){console.warn("Failed to update cache timestamp:",D)}n(D=>({...D,openDialogType:null}))},[n]);return e.jsxs(e.Fragment,{children:[e.jsx(Ge,{open:t.openDialogType===ee.mermaidToDrawnix,onOpenChange:E=>{n({...t,openDialogType:E?ee.mermaidToDrawnix:null})},children:e.jsx(We,{className:"Dialog ttd-dialog",container:a,children:e.jsx(Ca,{})})}),e.jsx(Ge,{open:t.openDialogType===ee.markdownToDrawnix,onOpenChange:E=>{n({...t,openDialogType:E?ee.markdownToDrawnix:null})},children:e.jsx(We,{className:"Dialog ttd-dialog",container:a,children:e.jsx(Sa,{})})}),e.jsx(tt,{visible:t.openDialogType===ee.aiImageGeneration,title:y==="batch"?o==="zh"?"批量出图":"Batch Generation":o==="zh"?"AI 图片生成":"AI Image Generation",headerContent:e.jsxs("div",{className:"image-generation-mode-tabs",children:[e.jsx("button",{className:`mode-tab ${y==="single"?"active":""}`,onClick:()=>p("single"),children:o==="zh"?"AI 图片生成":"AI Image"}),e.jsx("button",{className:`mode-tab ${y==="batch"?"active":""}`,onClick:()=>p("batch"),children:o==="zh"?"批量出图":"Batch"})]}),onClose:L,width:"80%",height:"60%",minWidth:1024,minHeight:500,x:"center",y:"center",modal:!1,minimizable:!1,className:"winbox-ai-generation winbox-ai-image-generation",container:a,autoMaximize:I,children:t.openDialogType===ee.aiImageGeneration&&(y==="batch"?e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"loading-fallback",children:o==="zh"?"加载中...":"Loading..."}),children:e.jsx(Wa,{onSwitchToSingle:()=>p("single")})}):e.jsx(Va,{initialPrompt:d.initialPrompt,initialImages:d.initialImages,selectedElementIds:d.selectedElementIds,initialWidth:((A=t.dialogInitialData)==null?void 0:A.initialWidth)||((H=t.dialogInitialData)==null?void 0:H.width),initialHeight:((G=t.dialogInitialData)==null?void 0:G.initialHeight)||((S=t.dialogInitialData)==null?void 0:S.height),initialResultUrl:d.initialResultUrl,selectedModel:v,onModelChange:U}))}),e.jsx(tt,{visible:t.openDialogType===ee.aiVideoGeneration,title:o==="zh"?"AI 视频生成":"AI Video Generation",onClose:N,width:"70%",height:"60%",minWidth:800,minHeight:600,x:"center",y:"center",modal:!1,minimizable:!1,className:"winbox-ai-generation winbox-ai-video-generation",container:a,children:t.openDialogType===ee.aiVideoGeneration&&e.jsx(Ba,{initialPrompt:f.initialPrompt,initialImage:f.initialImage,initialImages:f.initialImages,initialDuration:f.initialDuration,initialModel:f.initialModel,initialSize:f.initialSize,initialResultUrl:f.initialResultUrl,selectedModel:u,onModelChange:_})})]})},Xa=s.memo(Ha,(a,t)=>a.container===t.container);export{Xa as TTDDialog};
@@ -1 +1 @@
1
- import{r as o,I as i,_ as f}from"./index-DWUAFoZG.js";function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(p){return Object.getOwnPropertyDescriptor(e,p).enumerable})),t.push.apply(t,n)}return t}function c(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?a(Object(t),!0).forEach(function(n){f(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}var l={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12 2.58569L17.9142 8.49991L16.5 9.91412L13 6.41412L13 15.9999H11L11 6.41412L7.5 9.91412L6.08579 8.49991L12 2.58569ZM4.5 13.9999V18.9999H19.5V13.9999H21.5V20.9999H2.5V13.9999H4.5Z"}}]},s=o.forwardRef(function(e,r){return o.createElement(i,c(c({},e),{},{id:"upload",ref:r,icon:l}))});s.displayName="UploadIcon";export{s as U};
1
+ import{r as o,I as i,_ as f}from"./index-BBCAc4Al.js";function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(p){return Object.getOwnPropertyDescriptor(e,p).enumerable})),t.push.apply(t,n)}return t}function c(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?a(Object(t),!0).forEach(function(n){f(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}var l={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12 2.58569L17.9142 8.49991L16.5 9.91412L13 6.41412L13 15.9999H11L11 6.41412L7.5 9.91412L6.08579 8.49991L12 2.58569ZM4.5 13.9999V18.9999H19.5V13.9999H21.5V20.9999H2.5V13.9999H4.5Z"}}]},s=o.forwardRef(function(e,r){return o.createElement(i,c(c({},e),{},{id:"upload",ref:r,icon:l}))});s.displayName="UploadIcon";export{s as U};
@@ -1 +1 @@
1
- import{u as f,T as u}from"./index-DWUAFoZG.js";async function h(e){if(!e||!e.children)return 0;let n=0;for(const c of e.children){const r=c.url;if(r&&r.startsWith("blob:")&&r.includes("#merged-video-")){const s=r.indexOf("#merged-video-");if(s===-1)continue;const i=r.substring(s+1),d=i.indexOf("#",1),o=d>0?i.substring(0,d):i;try{const t=await f.getCachedBlob(o);if(t){const l=`${URL.createObjectURL(t)}#${o}`,a=e.children.indexOf(c);u.setNode(e,{url:l},[a]),n++}else console.warn("[VideoRecovery] Cache not found for taskId:",o)}catch(t){console.error("[VideoRecovery] Failed to recover video:",o,t)}}}return n}function x(e){e&&requestAnimationFrame(async()=>{try{await h(e)}catch(n){console.error("[VideoRecovery] Initialization failed:",n)}})}export{x as initVideoRecoveryService,h as recoverExpiredVideoUrls};
1
+ import{u as f,T as u}from"./index-BBCAc4Al.js";async function h(e){if(!e||!e.children)return 0;let n=0;for(const c of e.children){const r=c.url;if(r&&r.startsWith("blob:")&&r.includes("#merged-video-")){const s=r.indexOf("#merged-video-");if(s===-1)continue;const i=r.substring(s+1),d=i.indexOf("#",1),o=d>0?i.substring(0,d):i;try{const t=await f.getCachedBlob(o);if(t){const l=`${URL.createObjectURL(t)}#${o}`,a=e.children.indexOf(c);u.setNode(e,{url:l},[a]),n++}else console.warn("[VideoRecovery] Cache not found for taskId:",o)}catch(t){console.error("[VideoRecovery] Failed to recover video:",o,t)}}}return n}function x(e){e&&requestAnimationFrame(async()=>{try{await h(e)}catch(n){console.error("[VideoRecovery] Initialization failed:",n)}})}export{x as initVideoRecoveryService,h as recoverExpiredVideoUrls};
@@ -1,4 +1,4 @@
1
- import{s as zt,a as Ft,o as wt,p as Nt,b as Xt,c as Yt,l as St,B as Ht,e as $t,r as Ut,X as ot,a8 as Ct,Q as qt,R as jt,i as Gt}from"./mermaid.core-DfVvnpgz.js";import{a as Qt}from"./createText-2e5e7dd3-idrqgJjU.js";import{i as Kt}from"./init-A0kIFD9x.js";import{o as Zt}from"./ordinal-BRr1uYdk.js";import{l as ft}from"./linear-DU2Ciymb.js";import{l as pt}from"./line-B86HLuqu.js";import"./index-DWUAFoZG.js";import"./array-B5oSNiGi.js";import"./path-CY0bYimO.js";function Jt(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function st(){var e=Zt().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,c,f=!1,d=0,R=0,_=.5;delete e.unknown;function A(){var m=t().length,T=n<s,S=T?n:s,P=T?s:n;o=(P-S)/Math.max(1,m-d+R*2),f&&(o=Math.floor(o)),S+=(P-S-o*(m-d))*_,c=o*(1-d),f&&(S=Math.round(S),c=Math.round(c));var p=Jt(m).map(function(C){return S+o*C});return i(T?p.reverse():p)}return e.domain=function(m){return arguments.length?(t(m),A()):t()},e.range=function(m){return arguments.length?([s,n]=m,s=+s,n=+n,A()):[s,n]},e.rangeRound=function(m){return[s,n]=m,s=+s,n=+n,f=!0,A()},e.bandwidth=function(){return c},e.step=function(){return o},e.round=function(m){return arguments.length?(f=!!m,A()):f},e.padding=function(m){return arguments.length?(d=Math.min(1,R=+m),A()):d},e.paddingInner=function(m){return arguments.length?(d=Math.min(1,m),A()):d},e.paddingOuter=function(m){return arguments.length?(R=+m,A()):R},e.align=function(m){return arguments.length?(_=Math.max(0,Math.min(1,m)),A()):_},e.copy=function(){return st(t(),[s,n]).round(f).paddingInner(d).paddingOuter(R).align(_)},Kt.apply(A(),arguments)}var nt=(function(){var e=function(V,r,l,u){for(l=l||{},u=V.length;u--;l[V[u]]=r);return l},t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],c=[1,7],f=[1,5,10,12,14,16,18,19,21,23,34,35,36],d=[1,25],R=[1,26],_=[1,28],A=[1,29],m=[1,30],T=[1,31],S=[1,32],P=[1,33],p=[1,34],C=[1,35],h=[1,36],L=[1,37],z=[1,43],lt=[1,42],ct=[1,47],$=[1,50],w=[1,10,12,14,16,18,19,21,23,34,35,36],Q=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],E=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],ut=[1,64],K={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:function(r,l,u,g,b,a,F){var x=a.length-1;switch(b){case 5:g.setOrientation(a[x]);break;case 9:g.setDiagramTitle(a[x].text.trim());break;case 12:g.setLineData({text:"",type:"text"},a[x]);break;case 13:g.setLineData(a[x-1],a[x]);break;case 14:g.setBarData({text:"",type:"text"},a[x]);break;case 15:g.setBarData(a[x-1],a[x]);break;case 16:this.$=a[x].trim(),g.setAccTitle(this.$);break;case 17:case 18:this.$=a[x].trim(),g.setAccDescription(this.$);break;case 19:this.$=a[x-1];break;case 20:this.$=[Number(a[x-2]),...a[x]];break;case 21:this.$=[Number(a[x])];break;case 22:g.setXAxisTitle(a[x]);break;case 23:g.setXAxisTitle(a[x-1]);break;case 24:g.setXAxisTitle({type:"text",text:""});break;case 25:g.setXAxisBand(a[x]);break;case 26:g.setXAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 27:this.$=a[x-1];break;case 28:this.$=[a[x-2],...a[x]];break;case 29:this.$=[a[x]];break;case 30:g.setYAxisTitle(a[x]);break;case 31:g.setYAxisTitle(a[x-1]);break;case 32:g.setYAxisTitle({type:"text",text:""});break;case 33:g.setYAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 37:this.$={text:a[x],type:"text"};break;case 38:this.$={text:a[x],type:"text"};break;case 39:this.$={text:a[x],type:"markdown"};break;case 40:this.$=a[x];break;case 41:this.$=a[x-1]+""+a[x];break}},table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:c}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:c}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,36:c}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(f,[2,34]),e(f,[2,35]),e(f,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:c}),{1:[2,3]},e(f,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:c}),{11:23,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},{11:39,13:38,24:z,27:lt,29:40,30:41,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},{11:45,15:44,27:ct,33:46,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},{11:49,17:48,24:$,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},{11:52,17:51,24:$,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},{20:[1,53]},{22:[1,54]},e(w,[2,18]),{1:[2,2]},e(w,[2,8]),e(w,[2,9]),e(Q,[2,37],{40:55,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L}),e(Q,[2,38]),e(Q,[2,39]),e(E,[2,40]),e(E,[2,42]),e(E,[2,43]),e(E,[2,44]),e(E,[2,45]),e(E,[2,46]),e(E,[2,47]),e(E,[2,48]),e(E,[2,49]),e(E,[2,50]),e(E,[2,51]),e(w,[2,10]),e(w,[2,22],{30:41,29:56,24:z,27:lt}),e(w,[2,24]),e(w,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},e(w,[2,11]),e(w,[2,30],{33:60,27:ct}),e(w,[2,32]),{31:[1,61]},e(w,[2,12]),{17:62,24:$},{25:63,27:ut},e(w,[2,14]),{17:65,24:$},e(w,[2,16]),e(w,[2,17]),e(E,[2,41]),e(w,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(w,[2,31]),{27:[1,69]},e(w,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(w,[2,15]),e(w,[2,26]),e(w,[2,27]),{11:59,32:72,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},e(w,[2,33]),e(w,[2,19]),{25:73,27:ut},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:function(r,l){if(l.recoverable)this.trace(r);else{var u=new Error(r);throw u.hash=l,u}},parse:function(r){var l=this,u=[0],g=[],b=[null],a=[],F=this.table,x="",U=0,gt=0,Vt=2,xt=1,Bt=a.slice.call(arguments,1),k=Object.create(this.lexer),B={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(B.yy[J]=this.yy[J]);k.setInput(r,B.yy),B.yy.lexer=k,B.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var tt=k.yylloc;a.push(tt);var Wt=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var I;return I=g.pop()||k.lex()||xt,typeof I!="number"&&(I instanceof Array&&(g=I,I=g.pop()),I=l.symbols_[I]||I),I}for(var D,W,v,it,O={},q,M,dt,j;;){if(W=u[u.length-1],this.defaultActions[W]?v=this.defaultActions[W]:((D===null||typeof D>"u")&&(D=Ot()),v=F[W]&&F[W][D]),typeof v>"u"||!v.length||!v[0]){var et="";j=[];for(q in F[W])this.terminals_[q]&&q>Vt&&j.push("'"+this.terminals_[q]+"'");k.showPosition?et="Parse error on line "+(U+1)+`:
1
+ import{s as zt,a as Ft,o as wt,p as Nt,b as Xt,c as Yt,l as St,B as Ht,e as $t,r as Ut,X as ot,a8 as Ct,Q as qt,R as jt,i as Gt}from"./mermaid.core--Np12uGY.js";import{a as Qt}from"./createText-2e5e7dd3-Q_TpnKHS.js";import{i as Kt}from"./init-A0kIFD9x.js";import{o as Zt}from"./ordinal-BRr1uYdk.js";import{l as ft}from"./linear-BlVhwFrV.js";import{l as pt}from"./line-DuKdCx_E.js";import"./index-BBCAc4Al.js";import"./array-B5oSNiGi.js";import"./path-CY0bYimO.js";function Jt(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function st(){var e=Zt().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,c,f=!1,d=0,R=0,_=.5;delete e.unknown;function A(){var m=t().length,T=n<s,S=T?n:s,P=T?s:n;o=(P-S)/Math.max(1,m-d+R*2),f&&(o=Math.floor(o)),S+=(P-S-o*(m-d))*_,c=o*(1-d),f&&(S=Math.round(S),c=Math.round(c));var p=Jt(m).map(function(C){return S+o*C});return i(T?p.reverse():p)}return e.domain=function(m){return arguments.length?(t(m),A()):t()},e.range=function(m){return arguments.length?([s,n]=m,s=+s,n=+n,A()):[s,n]},e.rangeRound=function(m){return[s,n]=m,s=+s,n=+n,f=!0,A()},e.bandwidth=function(){return c},e.step=function(){return o},e.round=function(m){return arguments.length?(f=!!m,A()):f},e.padding=function(m){return arguments.length?(d=Math.min(1,R=+m),A()):d},e.paddingInner=function(m){return arguments.length?(d=Math.min(1,m),A()):d},e.paddingOuter=function(m){return arguments.length?(R=+m,A()):R},e.align=function(m){return arguments.length?(_=Math.max(0,Math.min(1,m)),A()):_},e.copy=function(){return st(t(),[s,n]).round(f).paddingInner(d).paddingOuter(R).align(_)},Kt.apply(A(),arguments)}var nt=(function(){var e=function(V,r,l,u){for(l=l||{},u=V.length;u--;l[V[u]]=r);return l},t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],c=[1,7],f=[1,5,10,12,14,16,18,19,21,23,34,35,36],d=[1,25],R=[1,26],_=[1,28],A=[1,29],m=[1,30],T=[1,31],S=[1,32],P=[1,33],p=[1,34],C=[1,35],h=[1,36],L=[1,37],z=[1,43],lt=[1,42],ct=[1,47],$=[1,50],w=[1,10,12,14,16,18,19,21,23,34,35,36],Q=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],E=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],ut=[1,64],K={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:function(r,l,u,g,b,a,F){var x=a.length-1;switch(b){case 5:g.setOrientation(a[x]);break;case 9:g.setDiagramTitle(a[x].text.trim());break;case 12:g.setLineData({text:"",type:"text"},a[x]);break;case 13:g.setLineData(a[x-1],a[x]);break;case 14:g.setBarData({text:"",type:"text"},a[x]);break;case 15:g.setBarData(a[x-1],a[x]);break;case 16:this.$=a[x].trim(),g.setAccTitle(this.$);break;case 17:case 18:this.$=a[x].trim(),g.setAccDescription(this.$);break;case 19:this.$=a[x-1];break;case 20:this.$=[Number(a[x-2]),...a[x]];break;case 21:this.$=[Number(a[x])];break;case 22:g.setXAxisTitle(a[x]);break;case 23:g.setXAxisTitle(a[x-1]);break;case 24:g.setXAxisTitle({type:"text",text:""});break;case 25:g.setXAxisBand(a[x]);break;case 26:g.setXAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 27:this.$=a[x-1];break;case 28:this.$=[a[x-2],...a[x]];break;case 29:this.$=[a[x]];break;case 30:g.setYAxisTitle(a[x]);break;case 31:g.setYAxisTitle(a[x-1]);break;case 32:g.setYAxisTitle({type:"text",text:""});break;case 33:g.setYAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 37:this.$={text:a[x],type:"text"};break;case 38:this.$={text:a[x],type:"text"};break;case 39:this.$={text:a[x],type:"markdown"};break;case 40:this.$=a[x];break;case 41:this.$=a[x-1]+""+a[x];break}},table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:c}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:c}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,36:c}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(f,[2,34]),e(f,[2,35]),e(f,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:c}),{1:[2,3]},e(f,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:c}),{11:23,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},{11:39,13:38,24:z,27:lt,29:40,30:41,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},{11:45,15:44,27:ct,33:46,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},{11:49,17:48,24:$,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},{11:52,17:51,24:$,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},{20:[1,53]},{22:[1,54]},e(w,[2,18]),{1:[2,2]},e(w,[2,8]),e(w,[2,9]),e(Q,[2,37],{40:55,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L}),e(Q,[2,38]),e(Q,[2,39]),e(E,[2,40]),e(E,[2,42]),e(E,[2,43]),e(E,[2,44]),e(E,[2,45]),e(E,[2,46]),e(E,[2,47]),e(E,[2,48]),e(E,[2,49]),e(E,[2,50]),e(E,[2,51]),e(w,[2,10]),e(w,[2,22],{30:41,29:56,24:z,27:lt}),e(w,[2,24]),e(w,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},e(w,[2,11]),e(w,[2,30],{33:60,27:ct}),e(w,[2,32]),{31:[1,61]},e(w,[2,12]),{17:62,24:$},{25:63,27:ut},e(w,[2,14]),{17:65,24:$},e(w,[2,16]),e(w,[2,17]),e(E,[2,41]),e(w,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(w,[2,31]),{27:[1,69]},e(w,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(w,[2,15]),e(w,[2,26]),e(w,[2,27]),{11:59,32:72,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:p,48:C,49:h,50:L},e(w,[2,33]),e(w,[2,19]),{25:73,27:ut},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:function(r,l){if(l.recoverable)this.trace(r);else{var u=new Error(r);throw u.hash=l,u}},parse:function(r){var l=this,u=[0],g=[],b=[null],a=[],F=this.table,x="",U=0,gt=0,Vt=2,xt=1,Bt=a.slice.call(arguments,1),k=Object.create(this.lexer),B={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(B.yy[J]=this.yy[J]);k.setInput(r,B.yy),B.yy.lexer=k,B.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var tt=k.yylloc;a.push(tt);var Wt=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var I;return I=g.pop()||k.lex()||xt,typeof I!="number"&&(I instanceof Array&&(g=I,I=g.pop()),I=l.symbols_[I]||I),I}for(var D,W,v,it,O={},q,M,dt,j;;){if(W=u[u.length-1],this.defaultActions[W]?v=this.defaultActions[W]:((D===null||typeof D>"u")&&(D=Ot()),v=F[W]&&F[W][D]),typeof v>"u"||!v.length||!v[0]){var et="";j=[];for(q in F[W])this.terminals_[q]&&q>Vt&&j.push("'"+this.terminals_[q]+"'");k.showPosition?et="Parse error on line "+(U+1)+`:
2
2
  `+k.showPosition()+`
3
3
  Expecting `+j.join(", ")+", got '"+(this.terminals_[D]||D)+"'":et="Parse error on line "+(U+1)+": Unexpected "+(D==xt?"end of input":"'"+(this.terminals_[D]||D)+"'"),this.parseError(et,{text:k.match,token:this.terminals_[D]||D,line:k.yylineno,loc:tt,expected:j})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+D);switch(v[0]){case 1:u.push(D),b.push(k.yytext),a.push(k.yylloc),u.push(v[1]),D=null,gt=k.yyleng,x=k.yytext,U=k.yylineno,tt=k.yylloc;break;case 2:if(M=this.productions_[v[1]][1],O.$=b[b.length-M],O._$={first_line:a[a.length-(M||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(M||1)].first_column,last_column:a[a.length-1].last_column},Wt&&(O._$.range=[a[a.length-(M||1)].range[0],a[a.length-1].range[1]]),it=this.performAction.apply(O,[x,gt,U,B.yy,v[1],b,a].concat(Bt)),typeof it<"u")return it;M&&(u=u.slice(0,-1*M*2),b=b.slice(0,-1*M),a=a.slice(0,-1*M)),u.push(this.productions_[v[1]][0]),b.push(O.$),a.push(O._$),dt=F[u[u.length-2]][u[u.length-1]],u.push(dt);break;case 3:return!0}}return!0}},It=(function(){var V={EOF:1,parseError:function(l,u){if(this.yy.parser)this.yy.parser.parseError(l,u);else throw new Error(l)},setInput:function(r,l){return this.yy=l||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var l=r.length,u=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===g.length?this.yylloc.first_column:0)+g[g.length-u.length].length-u[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
@@ -1,4 +1,4 @@
1
- import{s as zt,a as Ft,o as wt,p as Nt,b as Xt,c as Yt,l as St,D as Ht,e as $t,r as Ut,Y as ot,a9 as Ct,R as qt,S as jt,i as Gt}from"./index-BwSGXyRr.js";import{a as Qt}from"./createText-2e5e7dd3-CZ9_fscE.js";import{i as Kt}from"./init-Gi6I4Gst.js";import{o as Zt}from"./ordinal-Cboi1Yqb.js";import{l as pt}from"./linear-wCAlMhOS.js";import{l as ft}from"./line-B3bNrkzn.js";import"./index-DWUAFoZG.js";import"./isEmpty-Dj2GV0v-.js";import"./index-DI_5V2-m.js";import"./index.dom-C3-224fz.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function Jt(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function st(){var e=Zt().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,c,p=!1,d=0,R=0,_=.5;delete e.unknown;function A(){var m=t().length,T=n<s,S=T?n:s,P=T?s:n;o=(P-S)/Math.max(1,m-d+R*2),p&&(o=Math.floor(o)),S+=(P-S-o*(m-d))*_,c=o*(1-d),p&&(S=Math.round(S),c=Math.round(c));var f=Jt(m).map(function(C){return S+o*C});return i(T?f.reverse():f)}return e.domain=function(m){return arguments.length?(t(m),A()):t()},e.range=function(m){return arguments.length?([s,n]=m,s=+s,n=+n,A()):[s,n]},e.rangeRound=function(m){return[s,n]=m,s=+s,n=+n,p=!0,A()},e.bandwidth=function(){return c},e.step=function(){return o},e.round=function(m){return arguments.length?(p=!!m,A()):p},e.padding=function(m){return arguments.length?(d=Math.min(1,R=+m),A()):d},e.paddingInner=function(m){return arguments.length?(d=Math.min(1,m),A()):d},e.paddingOuter=function(m){return arguments.length?(R=+m,A()):R},e.align=function(m){return arguments.length?(_=Math.max(0,Math.min(1,m)),A()):_},e.copy=function(){return st(t(),[s,n]).round(p).paddingInner(d).paddingOuter(R).align(_)},Kt.apply(A(),arguments)}var nt=(function(){var e=function(V,r,l,u){for(l=l||{},u=V.length;u--;l[V[u]]=r);return l},t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],c=[1,7],p=[1,5,10,12,14,16,18,19,21,23,34,35,36],d=[1,25],R=[1,26],_=[1,28],A=[1,29],m=[1,30],T=[1,31],S=[1,32],P=[1,33],f=[1,34],C=[1,35],h=[1,36],L=[1,37],z=[1,43],lt=[1,42],ct=[1,47],$=[1,50],w=[1,10,12,14,16,18,19,21,23,34,35,36],Q=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],E=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],ut=[1,64],K={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:function(r,l,u,g,b,a,F){var x=a.length-1;switch(b){case 5:g.setOrientation(a[x]);break;case 9:g.setDiagramTitle(a[x].text.trim());break;case 12:g.setLineData({text:"",type:"text"},a[x]);break;case 13:g.setLineData(a[x-1],a[x]);break;case 14:g.setBarData({text:"",type:"text"},a[x]);break;case 15:g.setBarData(a[x-1],a[x]);break;case 16:this.$=a[x].trim(),g.setAccTitle(this.$);break;case 17:case 18:this.$=a[x].trim(),g.setAccDescription(this.$);break;case 19:this.$=a[x-1];break;case 20:this.$=[Number(a[x-2]),...a[x]];break;case 21:this.$=[Number(a[x])];break;case 22:g.setXAxisTitle(a[x]);break;case 23:g.setXAxisTitle(a[x-1]);break;case 24:g.setXAxisTitle({type:"text",text:""});break;case 25:g.setXAxisBand(a[x]);break;case 26:g.setXAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 27:this.$=a[x-1];break;case 28:this.$=[a[x-2],...a[x]];break;case 29:this.$=[a[x]];break;case 30:g.setYAxisTitle(a[x]);break;case 31:g.setYAxisTitle(a[x-1]);break;case 32:g.setYAxisTitle({type:"text",text:""});break;case 33:g.setYAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 37:this.$={text:a[x],type:"text"};break;case 38:this.$={text:a[x],type:"text"};break;case 39:this.$={text:a[x],type:"markdown"};break;case 40:this.$=a[x];break;case 41:this.$=a[x-1]+""+a[x];break}},table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:c}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:c}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,36:c}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(p,[2,34]),e(p,[2,35]),e(p,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:c}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:c}),{11:23,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},{11:39,13:38,24:z,27:lt,29:40,30:41,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},{11:45,15:44,27:ct,33:46,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},{11:49,17:48,24:$,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},{11:52,17:51,24:$,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},{20:[1,53]},{22:[1,54]},e(w,[2,18]),{1:[2,2]},e(w,[2,8]),e(w,[2,9]),e(Q,[2,37],{40:55,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L}),e(Q,[2,38]),e(Q,[2,39]),e(E,[2,40]),e(E,[2,42]),e(E,[2,43]),e(E,[2,44]),e(E,[2,45]),e(E,[2,46]),e(E,[2,47]),e(E,[2,48]),e(E,[2,49]),e(E,[2,50]),e(E,[2,51]),e(w,[2,10]),e(w,[2,22],{30:41,29:56,24:z,27:lt}),e(w,[2,24]),e(w,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},e(w,[2,11]),e(w,[2,30],{33:60,27:ct}),e(w,[2,32]),{31:[1,61]},e(w,[2,12]),{17:62,24:$},{25:63,27:ut},e(w,[2,14]),{17:65,24:$},e(w,[2,16]),e(w,[2,17]),e(E,[2,41]),e(w,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(w,[2,31]),{27:[1,69]},e(w,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(w,[2,15]),e(w,[2,26]),e(w,[2,27]),{11:59,32:72,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},e(w,[2,33]),e(w,[2,19]),{25:73,27:ut},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:function(r,l){if(l.recoverable)this.trace(r);else{var u=new Error(r);throw u.hash=l,u}},parse:function(r){var l=this,u=[0],g=[],b=[null],a=[],F=this.table,x="",U=0,gt=0,Vt=2,xt=1,Bt=a.slice.call(arguments,1),k=Object.create(this.lexer),B={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(B.yy[J]=this.yy[J]);k.setInput(r,B.yy),B.yy.lexer=k,B.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var tt=k.yylloc;a.push(tt);var Wt=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var I;return I=g.pop()||k.lex()||xt,typeof I!="number"&&(I instanceof Array&&(g=I,I=g.pop()),I=l.symbols_[I]||I),I}for(var D,W,v,it,O={},q,M,dt,j;;){if(W=u[u.length-1],this.defaultActions[W]?v=this.defaultActions[W]:((D===null||typeof D>"u")&&(D=Ot()),v=F[W]&&F[W][D]),typeof v>"u"||!v.length||!v[0]){var et="";j=[];for(q in F[W])this.terminals_[q]&&q>Vt&&j.push("'"+this.terminals_[q]+"'");k.showPosition?et="Parse error on line "+(U+1)+`:
1
+ import{s as zt,a as Ft,o as wt,p as Nt,b as Xt,c as Yt,l as St,D as Ht,e as $t,r as Ut,Y as ot,a9 as Ct,R as qt,S as jt,i as Gt}from"./index-CMnHM-d8.js";import{a as Qt}from"./createText-2e5e7dd3-DWMoiN14.js";import{i as Kt}from"./init-Gi6I4Gst.js";import{o as Zt}from"./ordinal-Cboi1Yqb.js";import{l as pt}from"./linear-3V_n7zlW.js";import{l as ft}from"./line-D5ZQcCU6.js";import"./index-BBCAc4Al.js";import"./isEmpty-CRiX5iwN.js";import"./index-DI_5V2-m.js";import"./index.dom-C3-224fz.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function Jt(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function st(){var e=Zt().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,c,p=!1,d=0,R=0,_=.5;delete e.unknown;function A(){var m=t().length,T=n<s,S=T?n:s,P=T?s:n;o=(P-S)/Math.max(1,m-d+R*2),p&&(o=Math.floor(o)),S+=(P-S-o*(m-d))*_,c=o*(1-d),p&&(S=Math.round(S),c=Math.round(c));var f=Jt(m).map(function(C){return S+o*C});return i(T?f.reverse():f)}return e.domain=function(m){return arguments.length?(t(m),A()):t()},e.range=function(m){return arguments.length?([s,n]=m,s=+s,n=+n,A()):[s,n]},e.rangeRound=function(m){return[s,n]=m,s=+s,n=+n,p=!0,A()},e.bandwidth=function(){return c},e.step=function(){return o},e.round=function(m){return arguments.length?(p=!!m,A()):p},e.padding=function(m){return arguments.length?(d=Math.min(1,R=+m),A()):d},e.paddingInner=function(m){return arguments.length?(d=Math.min(1,m),A()):d},e.paddingOuter=function(m){return arguments.length?(R=+m,A()):R},e.align=function(m){return arguments.length?(_=Math.max(0,Math.min(1,m)),A()):_},e.copy=function(){return st(t(),[s,n]).round(p).paddingInner(d).paddingOuter(R).align(_)},Kt.apply(A(),arguments)}var nt=(function(){var e=function(V,r,l,u){for(l=l||{},u=V.length;u--;l[V[u]]=r);return l},t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],c=[1,7],p=[1,5,10,12,14,16,18,19,21,23,34,35,36],d=[1,25],R=[1,26],_=[1,28],A=[1,29],m=[1,30],T=[1,31],S=[1,32],P=[1,33],f=[1,34],C=[1,35],h=[1,36],L=[1,37],z=[1,43],lt=[1,42],ct=[1,47],$=[1,50],w=[1,10,12,14,16,18,19,21,23,34,35,36],Q=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],E=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],ut=[1,64],K={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:function(r,l,u,g,b,a,F){var x=a.length-1;switch(b){case 5:g.setOrientation(a[x]);break;case 9:g.setDiagramTitle(a[x].text.trim());break;case 12:g.setLineData({text:"",type:"text"},a[x]);break;case 13:g.setLineData(a[x-1],a[x]);break;case 14:g.setBarData({text:"",type:"text"},a[x]);break;case 15:g.setBarData(a[x-1],a[x]);break;case 16:this.$=a[x].trim(),g.setAccTitle(this.$);break;case 17:case 18:this.$=a[x].trim(),g.setAccDescription(this.$);break;case 19:this.$=a[x-1];break;case 20:this.$=[Number(a[x-2]),...a[x]];break;case 21:this.$=[Number(a[x])];break;case 22:g.setXAxisTitle(a[x]);break;case 23:g.setXAxisTitle(a[x-1]);break;case 24:g.setXAxisTitle({type:"text",text:""});break;case 25:g.setXAxisBand(a[x]);break;case 26:g.setXAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 27:this.$=a[x-1];break;case 28:this.$=[a[x-2],...a[x]];break;case 29:this.$=[a[x]];break;case 30:g.setYAxisTitle(a[x]);break;case 31:g.setYAxisTitle(a[x-1]);break;case 32:g.setYAxisTitle({type:"text",text:""});break;case 33:g.setYAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 37:this.$={text:a[x],type:"text"};break;case 38:this.$={text:a[x],type:"text"};break;case 39:this.$={text:a[x],type:"markdown"};break;case 40:this.$=a[x];break;case 41:this.$=a[x-1]+""+a[x];break}},table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:c}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:c}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,36:c}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(p,[2,34]),e(p,[2,35]),e(p,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:c}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:c}),{11:23,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},{11:39,13:38,24:z,27:lt,29:40,30:41,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},{11:45,15:44,27:ct,33:46,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},{11:49,17:48,24:$,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},{11:52,17:51,24:$,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},{20:[1,53]},{22:[1,54]},e(w,[2,18]),{1:[2,2]},e(w,[2,8]),e(w,[2,9]),e(Q,[2,37],{40:55,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L}),e(Q,[2,38]),e(Q,[2,39]),e(E,[2,40]),e(E,[2,42]),e(E,[2,43]),e(E,[2,44]),e(E,[2,45]),e(E,[2,46]),e(E,[2,47]),e(E,[2,48]),e(E,[2,49]),e(E,[2,50]),e(E,[2,51]),e(w,[2,10]),e(w,[2,22],{30:41,29:56,24:z,27:lt}),e(w,[2,24]),e(w,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},e(w,[2,11]),e(w,[2,30],{33:60,27:ct}),e(w,[2,32]),{31:[1,61]},e(w,[2,12]),{17:62,24:$},{25:63,27:ut},e(w,[2,14]),{17:65,24:$},e(w,[2,16]),e(w,[2,17]),e(E,[2,41]),e(w,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(w,[2,31]),{27:[1,69]},e(w,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(w,[2,15]),e(w,[2,26]),e(w,[2,27]),{11:59,32:72,37:24,38:d,39:R,40:27,41:_,42:A,43:m,44:T,45:S,46:P,47:f,48:C,49:h,50:L},e(w,[2,33]),e(w,[2,19]),{25:73,27:ut},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:function(r,l){if(l.recoverable)this.trace(r);else{var u=new Error(r);throw u.hash=l,u}},parse:function(r){var l=this,u=[0],g=[],b=[null],a=[],F=this.table,x="",U=0,gt=0,Vt=2,xt=1,Bt=a.slice.call(arguments,1),k=Object.create(this.lexer),B={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(B.yy[J]=this.yy[J]);k.setInput(r,B.yy),B.yy.lexer=k,B.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var tt=k.yylloc;a.push(tt);var Wt=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var I;return I=g.pop()||k.lex()||xt,typeof I!="number"&&(I instanceof Array&&(g=I,I=g.pop()),I=l.symbols_[I]||I),I}for(var D,W,v,it,O={},q,M,dt,j;;){if(W=u[u.length-1],this.defaultActions[W]?v=this.defaultActions[W]:((D===null||typeof D>"u")&&(D=Ot()),v=F[W]&&F[W][D]),typeof v>"u"||!v.length||!v[0]){var et="";j=[];for(q in F[W])this.terminals_[q]&&q>Vt&&j.push("'"+this.terminals_[q]+"'");k.showPosition?et="Parse error on line "+(U+1)+`:
2
2
  `+k.showPosition()+`
3
3
  Expecting `+j.join(", ")+", got '"+(this.terminals_[D]||D)+"'":et="Parse error on line "+(U+1)+": Unexpected "+(D==xt?"end of input":"'"+(this.terminals_[D]||D)+"'"),this.parseError(et,{text:k.match,token:this.terminals_[D]||D,line:k.yylineno,loc:tt,expected:j})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+D);switch(v[0]){case 1:u.push(D),b.push(k.yytext),a.push(k.yylloc),u.push(v[1]),D=null,gt=k.yyleng,x=k.yytext,U=k.yylineno,tt=k.yylloc;break;case 2:if(M=this.productions_[v[1]][1],O.$=b[b.length-M],O._$={first_line:a[a.length-(M||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(M||1)].first_column,last_column:a[a.length-1].last_column},Wt&&(O._$.range=[a[a.length-(M||1)].range[0],a[a.length-1].range[1]]),it=this.performAction.apply(O,[x,gt,U,B.yy,v[1],b,a].concat(Bt)),typeof it<"u")return it;M&&(u=u.slice(0,-1*M*2),b=b.slice(0,-1*M),a=a.slice(0,-1*M)),u.push(this.productions_[v[1]][0]),b.push(O.$),a.push(O._$),dt=F[u[u.length-2]][u[u.length-1]],u.push(dt);break;case 3:return!0}}return!0}},It=(function(){var V={EOF:1,parseError:function(l,u){if(this.yy.parser)this.yy.parser.parseError(l,u);else throw new Error(l)},setInput:function(r,l){return this.yy=l||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var l=r.length,u=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===g.length?this.yylloc.first_column:0)+g[g.length-u.length].length-u[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
package/index.html CHANGED
@@ -61,7 +61,7 @@
61
61
  </script>
62
62
  <!-- base href 由构建工具处理,CDN 模式下使用相对路径 -->
63
63
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
64
- <meta name="app-version" content="0.5.14" />
64
+ <meta name="app-version" content="0.5.15" />
65
65
 
66
66
  <link rel="icon" type="image/svg+xml" sizes="16x16" href="./icons/favicon-16x16.svg" />
67
67
  <link rel="icon" type="image/svg+xml" sizes="32x32" href="./icons/favicon-32x32.svg" />
@@ -87,7 +87,7 @@
87
87
  <meta name="msapplication-TileImage" content="./icons/icon-192x192.svg" />
88
88
  <meta name="msapplication-square310x310logo" content="./icons/icon-512x512.svg" />
89
89
 
90
- <script type="module" crossorigin src="./assets/index-DWUAFoZG.js"></script>
90
+ <script type="module" crossorigin src="./assets/index-BBCAc4Al.js"></script>
91
91
  <link rel="stylesheet" crossorigin href="./assets/index-B2dvADz8.css">
92
92
  </head>
93
93
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aitu-app",
3
- "version": "0.5.14",
3
+ "version": "0.5.15",
4
4
  "description": "Aitu - AI-powered whiteboard app with image/video creation, mind mapping, flowcharts, and freehand drawing",
5
5
  "keywords": [
6
6
  "aitu",