framefields 2.0.2 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -32
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-x28ZgQBP.mjs → audio-COkiXyDb.mjs} +3 -3
- package/dist/{audio-x28ZgQBP.mjs.map → audio-COkiXyDb.mjs.map} +1 -1
- package/dist/{audio-Dvwwz8xU.d.mts → audio-nmU-BWxI.d.mts} +3 -3
- package/dist/{audio-Dvwwz8xU.d.mts.map → audio-nmU-BWxI.d.mts.map} +1 -1
- package/dist/{dist-1iUYuPct.mjs → dist-55MP0aN4.mjs} +59 -16
- package/dist/dist-55MP0aN4.mjs.map +1 -0
- package/dist/{dist-gjHmorxL.mjs → dist-DgIKXWZ1.mjs} +75 -16
- package/dist/dist-DgIKXWZ1.mjs.map +1 -0
- package/dist/effects/index.d.mts +4 -4
- package/dist/effects/index.mjs +23 -23
- package/dist/{effects-CHWORCYd.mjs → effects-m3FuatqZ.mjs} +2 -2
- package/dist/{effects-CHWORCYd.mjs.map → effects-m3FuatqZ.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +1 -1
- package/dist/{fonts-DrGTBJJk.mjs → fonts-C_AWIMdb.mjs} +13 -2
- package/dist/fonts-C_AWIMdb.mjs.map +1 -0
- package/dist/{index-DKFGNyMB.d.mts → index-Bx7JBFT6.d.mts} +9 -2
- package/dist/index-Bx7JBFT6.d.mts.map +1 -0
- package/dist/{index-B0BNPEoH.d.mts → index-C8rstr3Y.d.mts} +5 -5
- package/dist/index-C8rstr3Y.d.mts.map +1 -0
- package/dist/{index-D2wJqSl5.d.mts → index-CAGDH7l6.d.mts} +3 -3
- package/dist/{index-D2wJqSl5.d.mts.map → index-CAGDH7l6.d.mts.map} +1 -1
- package/dist/{index-DiSKzDGR.d.mts → index-CbzEM_o6.d.mts} +8 -1
- package/dist/index-CbzEM_o6.d.mts.map +1 -0
- package/dist/{index-BMVVmc4G.d.mts → index-DY3mLoPO.d.mts} +2 -2
- package/dist/{index-BMVVmc4G.d.mts.map → index-DY3mLoPO.d.mts.map} +1 -1
- package/dist/{index-D1ZsMpke.d.mts → index-i0xPY4Fe.d.mts} +3 -3
- package/dist/{index-D1ZsMpke.d.mts.map → index-i0xPY4Fe.d.mts.map} +1 -1
- package/dist/{index-D2jDC7O5.d.mts → index-ogL8Y-Ng.d.mts} +9 -1
- package/dist/index-ogL8Y-Ng.d.mts.map +1 -0
- package/dist/index.d.mts +88 -70
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +44 -39
- package/dist/index.mjs.map +1 -1
- package/dist/preview/index.d.mts +3 -3
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-uQM210iy.mjs → preview-BM0Zzcn1.mjs} +74 -66
- package/dist/preview-BM0Zzcn1.mjs.map +1 -0
- package/dist/preview-engine/{chunk-HAXK42HG.mjs → chunk-2RMSCL6V.mjs} +1 -1
- package/dist/preview-engine/chunk-45JOFIHE.mjs +8 -0
- package/dist/preview-engine/{chunk-MT2DZQHO.mjs → chunk-4Q7JG6WJ.mjs} +1 -1
- package/dist/preview-engine/chunk-7S6ZFYLI.mjs +418 -0
- package/dist/preview-engine/chunk-KNZU3Z2F.mjs +3 -0
- package/dist/preview-engine/{chunk-SWD76532.mjs → chunk-PCB2VB5K.mjs} +2 -2
- package/dist/preview-engine/{chunk-GYG2IIBR.mjs → chunk-RJJRPL42.mjs} +1 -1
- package/dist/preview-engine/chunk-UC7CSW2A.mjs +1 -0
- package/dist/preview-engine/{chunk-4BEJJKEU.mjs → chunk-YK4XHUP4.mjs} +7 -7
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +84 -76
- package/dist/preview-engine/player.mjs +5 -5
- package/dist/preview-engine/{renderers-YVN3EIOP.mjs → renderers-76MPTVZK.mjs} +1 -1
- package/dist/preview-engine/{renderers-R3XEYD5V.mjs → renderers-LFA5NW4V.mjs} +1 -1
- package/dist/{program-Dl510wmI.mjs → program-DGqyGGvj.mjs} +2 -2
- package/dist/{program-Dl510wmI.mjs.map → program-DGqyGGvj.mjs.map} +1 -1
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +2 -2
- package/dist/renderer--fkO4O8d.mjs +3 -0
- package/dist/{renderer-D7EX8IjU.mjs → renderer-0gJC-sc8.mjs} +2 -2
- package/dist/{renderer-D7EX8IjU.mjs.map → renderer-0gJC-sc8.mjs.map} +1 -1
- package/dist/{renderer-7DOcIxFG.mjs → renderer-2r4EgfdZ.mjs} +2 -2
- package/dist/{renderer-7DOcIxFG.mjs.map → renderer-2r4EgfdZ.mjs.map} +1 -1
- package/dist/{renderer-COkcU3db.mjs → renderer-5OiVjQan.mjs} +4 -4
- package/dist/{renderer-COkcU3db.mjs.map → renderer-5OiVjQan.mjs.map} +1 -1
- package/dist/renderer-6x7CgHhJ.mjs +3 -0
- package/dist/renderer-B0RDWv1C.mjs +3 -0
- package/dist/{renderer-CMzEjdzi.mjs → renderer-B9l641o-.mjs} +2 -2
- package/dist/{renderer-CMzEjdzi.mjs.map → renderer-B9l641o-.mjs.map} +1 -1
- package/dist/renderer-BFOkGS0N.mjs +3 -0
- package/dist/{renderer-pxXf9dvk.mjs → renderer-BJiL-BQY.mjs} +2 -2
- package/dist/{renderer-pxXf9dvk.mjs.map → renderer-BJiL-BQY.mjs.map} +1 -1
- package/dist/{renderer-B1CvhW4p.mjs → renderer-BMrm2Zbz.mjs} +2 -2
- package/dist/{renderer-B1CvhW4p.mjs.map → renderer-BMrm2Zbz.mjs.map} +1 -1
- package/dist/{renderer-Cj-whdVr.mjs → renderer-BUHMkkLU.mjs} +2 -2
- package/dist/{renderer-Cj-whdVr.mjs.map → renderer-BUHMkkLU.mjs.map} +1 -1
- package/dist/{renderer-CB5aWAaf.mjs → renderer-BYsmLk63.mjs} +2 -2
- package/dist/{renderer-CB5aWAaf.mjs.map → renderer-BYsmLk63.mjs.map} +1 -1
- package/dist/renderer-BaoJiMJO.mjs +3 -0
- package/dist/{renderer-DbaQLI4z.mjs → renderer-BtkU0BT-.mjs} +2 -2
- package/dist/{renderer-DbaQLI4z.mjs.map → renderer-BtkU0BT-.mjs.map} +1 -1
- package/dist/{renderer-Dt6fzgX5.mjs → renderer-Bwsh5TUv.mjs} +2 -2
- package/dist/{renderer-Dt6fzgX5.mjs.map → renderer-Bwsh5TUv.mjs.map} +1 -1
- package/dist/{renderer-vCFTm0oe.mjs → renderer-C28Bab-M.mjs} +2 -2
- package/dist/{renderer-vCFTm0oe.mjs.map → renderer-C28Bab-M.mjs.map} +1 -1
- package/dist/{renderer-HFfcJlmR.mjs → renderer-C3L9SNRO.mjs} +2 -2
- package/dist/{renderer-HFfcJlmR.mjs.map → renderer-C3L9SNRO.mjs.map} +1 -1
- package/dist/renderer-C4O-L73n.mjs +3 -0
- package/dist/{renderer-CB7lH5K8.mjs → renderer-C9BKcHZb.mjs} +1 -1
- package/dist/renderer-CGVuhBbA.mjs +3 -0
- package/dist/renderer-CHKB-Or4.mjs +3 -0
- package/dist/renderer-CL9gPcfZ.mjs +3 -0
- package/dist/{renderer-BXMmISWG.mjs → renderer-CMM4DZ1i.mjs} +2 -2
- package/dist/{renderer-BXMmISWG.mjs.map → renderer-CMM4DZ1i.mjs.map} +1 -1
- package/dist/{renderer-C17wL9QX.mjs → renderer-COkFM1KL.mjs} +2 -2
- package/dist/{renderer-C17wL9QX.mjs.map → renderer-COkFM1KL.mjs.map} +1 -1
- package/dist/renderer-CSkFF-qe.mjs +3 -0
- package/dist/renderer-CU2c6zWc.mjs +3 -0
- package/dist/{renderer-CDOUAN7X.mjs → renderer-CXUohIJ9.mjs} +2 -2
- package/dist/{renderer-CDOUAN7X.mjs.map → renderer-CXUohIJ9.mjs.map} +1 -1
- package/dist/{renderer-ByDhfrPE.mjs → renderer-CeADvUU_.mjs} +2 -2
- package/dist/{renderer-ByDhfrPE.mjs.map → renderer-CeADvUU_.mjs.map} +1 -1
- package/dist/{renderer-CH8sdfYX.mjs → renderer-CgVdRbc-.mjs} +2 -2
- package/dist/{renderer-CH8sdfYX.mjs.map → renderer-CgVdRbc-.mjs.map} +1 -1
- package/dist/renderer-CiLiH6w_.mjs +3 -0
- package/dist/{renderer-Dp_FfvF-.mjs → renderer-CnRoblJF.mjs} +2 -2
- package/dist/{renderer-Dp_FfvF-.mjs.map → renderer-CnRoblJF.mjs.map} +1 -1
- package/dist/{renderer-BAQmR0Zo.mjs → renderer-CsQ7nY0z.mjs} +1 -1
- package/dist/{renderer-CclIvsLO.mjs → renderer-CwAjqb2o.mjs} +1 -1
- package/dist/{renderer-CszOjcRW.mjs → renderer-Cx5H41JR.mjs} +1 -1
- package/dist/{renderer-Fco4EmAu.mjs → renderer-D1Zs78PQ.mjs} +126 -105
- package/dist/{renderer-Fco4EmAu.mjs.map → renderer-D1Zs78PQ.mjs.map} +1 -1
- package/dist/{renderer-BQHbp-Sp.mjs → renderer-D1ib-wB3.mjs} +2 -2
- package/dist/{renderer-BQHbp-Sp.mjs.map → renderer-D1ib-wB3.mjs.map} +1 -1
- package/dist/{renderer-Tp6OXWNZ.mjs → renderer-D54yO_M_.mjs} +2 -2
- package/dist/{renderer-Tp6OXWNZ.mjs.map → renderer-D54yO_M_.mjs.map} +1 -1
- package/dist/{renderer-Cl1oUXMi.mjs → renderer-D5N2JO7g.mjs} +2 -2
- package/dist/{renderer-Cl1oUXMi.mjs.map → renderer-D5N2JO7g.mjs.map} +1 -1
- package/dist/{renderer-BsgIcBKH.mjs → renderer-DBp6A7tR.mjs} +2 -2
- package/dist/{renderer-BsgIcBKH.mjs.map → renderer-DBp6A7tR.mjs.map} +1 -1
- package/dist/{renderer-vvpdx1vk.mjs → renderer-DI2RcpKU.mjs} +2 -2
- package/dist/{renderer-vvpdx1vk.mjs.map → renderer-DI2RcpKU.mjs.map} +1 -1
- package/dist/renderer-DMaYsSM4.mjs +3 -0
- package/dist/renderer-DZ7t_l1d.mjs +3 -0
- package/dist/{renderer-Ryo2CEFD.mjs → renderer-D_QS6p1q.mjs} +2 -2
- package/dist/{renderer-Ryo2CEFD.mjs.map → renderer-D_QS6p1q.mjs.map} +1 -1
- package/dist/{renderer-DDp7_TUi.d.mts → renderer-DcPOsAVu.d.mts} +2 -2
- package/dist/{renderer-DDp7_TUi.d.mts.map → renderer-DcPOsAVu.d.mts.map} +1 -1
- package/dist/{renderer-B_NuVaIP.mjs → renderer-Dcd-Pkzd.mjs} +2 -2
- package/dist/{renderer-B_NuVaIP.mjs.map → renderer-Dcd-Pkzd.mjs.map} +1 -1
- package/dist/{renderer-WkVrkCVA.mjs → renderer-DjiUZ0Vs.mjs} +2 -2
- package/dist/{renderer-WkVrkCVA.mjs.map → renderer-DjiUZ0Vs.mjs.map} +1 -1
- package/dist/renderer-DkJEnKQu.mjs +3 -0
- package/dist/renderer-DlkrKqQj.mjs +3 -0
- package/dist/renderer-DxOQ5S8T.mjs +3 -0
- package/dist/renderer-Ibvw1tE_.mjs +3 -0
- package/dist/{renderer-CwQhzcUn.mjs → renderer-JjMO41Cv.mjs} +2 -2
- package/dist/{renderer-CwQhzcUn.mjs.map → renderer-JjMO41Cv.mjs.map} +1 -1
- package/dist/renderer-M0jeFo6S.mjs +4 -0
- package/dist/renderer-NhSzqWsQ.mjs +3 -0
- package/dist/renderer-OrhgkzVu.mjs +3 -0
- package/dist/{renderer-DxjVQV6f.mjs → renderer-Q7_DUcnu.mjs} +2 -2
- package/dist/{renderer-DxjVQV6f.mjs.map → renderer-Q7_DUcnu.mjs.map} +1 -1
- package/dist/{renderer-I-Sw3JBB.mjs → renderer-QfSB-cRU.mjs} +2 -2
- package/dist/{renderer-I-Sw3JBB.mjs.map → renderer-QfSB-cRU.mjs.map} +1 -1
- package/dist/{renderer-OWQmmg4Z.mjs → renderer-WXylxlu2.mjs} +2 -2
- package/dist/{renderer-OWQmmg4Z.mjs.map → renderer-WXylxlu2.mjs.map} +1 -1
- package/dist/renderer-WrFAaLxW.mjs +3 -0
- package/dist/renderer-bbOALT4F.mjs +3 -0
- package/dist/{renderer-BGXU6vcW.mjs → renderer-bebAt6Dz.mjs} +2 -2
- package/dist/{renderer-BGXU6vcW.mjs.map → renderer-bebAt6Dz.mjs.map} +1 -1
- package/dist/{renderer-B9-QSJcG.mjs → renderer-eC1gRPRo.mjs} +2 -2
- package/dist/{renderer-B9-QSJcG.mjs.map → renderer-eC1gRPRo.mjs.map} +1 -1
- package/dist/renderer-lXmyzdcx.mjs +3 -0
- package/dist/renderer-ospMsCzr.mjs +3 -0
- package/dist/{renderer-k2JL79kM.mjs → renderer-vUjNMbLq.mjs} +2 -2
- package/dist/{renderer-k2JL79kM.mjs.map → renderer-vUjNMbLq.mjs.map} +1 -1
- package/dist/renderer-xc9wkiC7.mjs +3 -0
- package/dist/{renderer-XcmYTd6P.mjs → renderer-z6Qb5Z-W.mjs} +143 -4
- package/dist/renderer-z6Qb5Z-W.mjs.map +1 -0
- package/dist/{renderers-BWg16W-V-BXG_cjhM.mjs → renderers-BWg16W-V-jhdCp6Vd.mjs} +2 -2
- package/dist/{renderers-BWg16W-V-BXG_cjhM.mjs.map → renderers-BWg16W-V-jhdCp6Vd.mjs.map} +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +4 -4
- package/package.json +55 -55
- package/dist/dist-1iUYuPct.mjs.map +0 -1
- package/dist/dist-gjHmorxL.mjs.map +0 -1
- package/dist/fonts-DrGTBJJk.mjs.map +0 -1
- package/dist/index-B0BNPEoH.d.mts.map +0 -1
- package/dist/index-D2jDC7O5.d.mts.map +0 -1
- package/dist/index-DKFGNyMB.d.mts.map +0 -1
- package/dist/index-DiSKzDGR.d.mts.map +0 -1
- package/dist/preview-engine/chunk-47VT677S.mjs +0 -8
- package/dist/preview-engine/chunk-DPST2XLC.mjs +0 -418
- package/dist/preview-engine/chunk-DRLEOHN5.mjs +0 -1
- package/dist/preview-engine/chunk-SZ7YRPKO.mjs +0 -3
- package/dist/preview-uQM210iy.mjs.map +0 -1
- package/dist/renderer-3BNskNuJ.mjs +0 -3
- package/dist/renderer-9dHlMQGX.mjs +0 -3
- package/dist/renderer-BGvORwkQ.mjs +0 -3
- package/dist/renderer-BLikd6BK.mjs +0 -3
- package/dist/renderer-BSbTJBWc.mjs +0 -3
- package/dist/renderer-BU1rwNRT.mjs +0 -3
- package/dist/renderer-BZJm3m4f.mjs +0 -3
- package/dist/renderer-BqyAgNt3.mjs +0 -3
- package/dist/renderer-BryTM2g7.mjs +0 -3
- package/dist/renderer-CQCoggIa.mjs +0 -3
- package/dist/renderer-CV2m6k1V.mjs +0 -3
- package/dist/renderer-CYY-poLe.mjs +0 -3
- package/dist/renderer-C_Ki91kc.mjs +0 -3
- package/dist/renderer-CmApuKjS.mjs +0 -3
- package/dist/renderer-Cu074POw.mjs +0 -3
- package/dist/renderer-D4qLmox-.mjs +0 -3
- package/dist/renderer-D6cJ6MSq.mjs +0 -3
- package/dist/renderer-DQLGnEFc.mjs +0 -3
- package/dist/renderer-DY2SVYUW.mjs +0 -3
- package/dist/renderer-DoAY5JbB.mjs +0 -4
- package/dist/renderer-DuplLRbp.mjs +0 -3
- package/dist/renderer-DvfUbZ31.mjs +0 -3
- package/dist/renderer-Q_uUQipO.mjs +0 -3
- package/dist/renderer-UQFCgeNx.mjs +0 -3
- package/dist/renderer-XcmYTd6P.mjs.map +0 -1
- package/dist/renderer-eMsnzJg9.mjs +0 -3
- package/dist/renderer-pHiz78e0.mjs +0 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as En}from"./chunk-JPXQPP6J.mjs";import{a as ln}from"./chunk-CNSHAFEA.mjs";import{h as Qn,l as Cn}from"./chunk-24P6DAB3.mjs";import{d as Bn}from"./chunk-6YJP57MZ.mjs";import{d as ZA,e as cn,f as NA,g as ft,h as un}from"./chunk-4BEJJKEU.mjs";import{r as yA}from"./chunk-MTJHQATU.mjs";import{d as Ct}from"./chunk-HYBAPT6I.mjs";import{o as JA}from"./chunk-YAQFFQPG.mjs";import{a as gn,c as In,e as $}from"./chunk-BVF64D6H.mjs";var bn=gn((Wo,wn)=>{$();var Ke=()=>new Proxy(function(){},{get:(A,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":Ke(),apply:()=>Ke(),construct:()=>Ke()});wn.exports=Ke()});var $n=gn((xs,_n)=>{$();var tt=()=>new Proxy(function(){},{get:(A,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":tt(),apply:()=>tt(),construct:()=>tt()});_n.exports=tt()});$();var dn=new Float32Array(2048);for(let A=0;A<2048;A++)dn[A]=.5*(1-Math.cos(2*Math.PI*A/2047));var hn=new Uint16Array(2048);for(let A=0;A<2048;A++){let e=0,t=A;for(let n=0;n<11;n++)e=e<<1|t&1,t>>=1;hn[A]=e}var mn=new Float32Array(2048/2),yn=new Float32Array(2048/2);for(let A=0;A<2048/2;A++){let e=-2*Math.PI*A/2048;mn[A]=Math.cos(e),yn[A]=Math.sin(e)}function Jr(A,e){for(let t=0;t<2048;t++){let n=hn[t]??0;if(n>t){let r=A[t]??0;A[t]=A[n]??0,A[n]=r;let o=e[t]??0;e[t]=e[n]??0,e[n]=o}}for(let t=2;t<=2048;t<<=1){let n=t>>1,r=2048/t;for(let o=0;o<2048;o+=t)for(let i=0;i<n;i++){let a=i*r,s=mn[a]??1,g=yn[a]??0,I=A[o+i]??0,B=e[o+i]??0,u=A[o+i+n]??0,E=e[o+i+n]??0,Q=u*s-E*g,C=u*g+E*s;A[o+i]=I+Q,e[o+i]=B+C,A[o+i+n]=I-Q,e[o+i+n]=B-C}}}var Te=class A{tempReal=new Float32Array(2048);tempImag=new Float32Array(2048);previousBins=new Float32Array(1024);extractAtTime(e,t,n){let r=e.length,o=r>0?e[0]?.length??0:0,a=Math.round(n*t)-1024;for(let M=0;M<2048;M++){let b=a+M,x=0;b>=0&&b<o&&(r===1?x=e[0]?.[b]??0:r>=2&&(x=((e[0]?.[b]??0)+(e[1]?.[b]??0))*.5)),this.tempReal[M]=x*(dn[M]??1),this.tempImag[M]=0}Jr(this.tempReal,this.tempImag);let s=new Float32Array(1024),g=2/2048;for(let M=0;M<1024;M++){let b=this.tempReal[M]??0,x=this.tempImag[M]??0;s[M]=Math.sqrt(b*b+x*x)*g*2}let I=t/2048,B=Math.max(1,Math.round(20/I)),u=Math.max(B+1,Math.round(150/I)),E=0;for(let M=B;M<=u&&M<1024;M++)E+=(s[M]??0)*(s[M]??0);let Q=Math.min(1,Math.sqrt(E/(u-B+1))*4),C=0;for(let M=0;M<1024;M++){let b=(s[M]??0)-(this.previousBins[M]??0);b>0&&(C+=b),this.previousBins[M]=s[M]??0}let h=Math.min(1,C*.15),m=Math.round(300/I),y=Math.min(1023,Math.round(3400/I)),D=0;for(let M=m;M<=y;M++)D+=(s[M]??0)*(s[M]??0);let U=Math.min(1,Math.sqrt(D/(y-m+1))*3.5);return{fftBins:s,bassEnergy:Q,drumTransient:h,vocalEnergy:U,timeMs:n*1e3}}static packBufferData(e){let t=new Float32Array(1028);return t.set(e.fftBins,0),t[1024]=e.bassEnergy,t[1025]=e.drumTransient,t[1026]=e.vocalEnergy,t[1027]=e.timeMs,t}static createGpuBuffer(e,t){let n=t?A.packBufferData(t):new Float32Array(1028),r=e.createBuffer({label:"AudioLatentBuffer",size:4112,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,mappedAtCreation:!0});return new Float32Array(r.getMappedRange()).set(n),r.unmap(),r}static updateGpuBuffer(e,t,n){let r=A.packBufferData(n);e.queue.writeBuffer(t,0,r)}},fn=class{constructor(e,t,n,r){this.channels=e;this.sampleRate=t;this.fps=n;this.totalFrames=r;let o=new Te,i=t||48e3,a=n||30,s=e[0]?.length??0,g=Math.max(10,Math.ceil(s/i*a)+10),I=typeof r=="number"&&Number.isFinite(r)&&r>0?Math.round(r):g;this.frames=new Array(I);for(let B=0;B<I;B++){let u=B/a;this.frames[B]=o.extractAtTime(e,i,u)}}channels;sampleRate;fps;totalFrames;frames=[];gpuBuffers=new WeakMap;getFrameData(e){let t=Math.max(0,Math.min(this.totalFrames-1,Math.round(e)));return this.frames[t]??{fftBins:new Float32Array(1024),bassEnergy:0,drumTransient:0,vocalEnergy:0,timeMs:t/this.fps*1e3}}getGpuBuffer(e,t){let n=this.gpuBuffers.get(e);n||(n=new Map,this.gpuBuffers.set(e,n));let r=Math.max(0,Math.min(this.totalFrames-1,Math.round(t))),o=n.get(r);if(!o){let i=this.getFrameData(r);o=Te.createGpuBuffer(e,i),n.set(r,o)}return o}};$();$();$();var k={create(A=0,e=0,t=0){return[A,e,t]},copy(A){return[A[0],A[1],A[2]]},set(A,e,t,n){return A[0]=e,A[1]=t,A[2]=n,A},add(A,e){return[A[0]+e[0],A[1]+e[1],A[2]+e[2]]},subtract(A,e){return[A[0]-e[0],A[1]-e[1],A[2]-e[2]]},multiplyScalar(A,e){return[A[0]*e,A[1]*e,A[2]*e]},dot(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]},cross(A,e){return[A[1]*e[2]-A[2]*e[1],A[2]*e[0]-A[0]*e[2],A[0]*e[1]-A[1]*e[0]]},lengthSq(A){return A[0]*A[0]+A[1]*A[1]+A[2]*A[2]},length(A){return Math.hypot(A[0],A[1],A[2])},distance(A,e){return Math.hypot(A[0]-e[0],A[1]-e[1],A[2]-e[2])},normalize(A){let e=Math.hypot(A[0],A[1],A[2]);if(e===0)return[0,0,0];let t=1/e;return[A[0]*t,A[1]*t,A[2]*t]},lerp(A,e,t){return[A[0]+(e[0]-A[0])*t,A[1]+(e[1]-A[1])*t,A[2]+(e[2]-A[2])*t]},equals(A,e,t=1e-6){return Math.abs(A[0]-e[0])<=t&&Math.abs(A[1]-e[1])<=t&&Math.abs(A[2]-e[2])<=t}};var cA={identity(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},copy(A){return[...A]},multiply(A,e){let t=new Array(16);for(let n=0;n<4;n++)for(let r=0;r<4;r++)t[r*4+n]=A[0+n]*e[r*4+0]+A[4+n]*e[r*4+1]+A[8+n]*e[r*4+2]+A[12+n]*e[r*4+3];return t},translate(A,e,t=0){return[1,0,0,0,0,1,0,0,0,0,1,0,A,e,t,1]},scale(A,e,t=1){return[A,0,0,0,0,e,0,0,0,0,t,0,0,0,0,1]},rotateX(A){let e=Math.cos(A),t=Math.sin(A);return[1,0,0,0,0,e,t,0,0,-t,e,0,0,0,0,1]},rotateY(A){let e=Math.cos(A),t=Math.sin(A);return[e,0,-t,0,0,1,0,0,t,0,e,0,0,0,0,1]},rotateZ(A){let e=Math.cos(A),t=Math.sin(A);return[e,t,0,0,-t,e,0,0,0,0,1,0,0,0,0,1]},rotateAxis(A,e){let t=k.normalize(A),n=t[0],r=t[1],o=t[2],i=Math.cos(e),a=Math.sin(e),s=1-i;return[s*n*n+i,s*n*r+a*o,s*n*o-a*r,0,s*n*r-a*o,s*r*r+i,s*r*o+a*n,0,s*n*o+a*r,s*r*o-a*n,s*o*o+i,0,0,0,0,1]},lookAt(A,e,t=[0,-1,0]){let n=k.subtract(e,A);k.lengthSq(n)===0?n=[0,0,1]:n=k.normalize(n);let r=k.cross(n,t);k.lengthSq(r)===0?r=[1,0,0]:r=k.normalize(r);let o=k.cross(r,n);return[r[0],o[0],n[0],0,r[1],o[1],n[1],0,r[2],o[2],n[2],0,-k.dot(r,A),-k.dot(o,A),-k.dot(n,A),1]},perspective(A,e,t,n){let r=1/Math.tan(A/2),o=1/(n-t);return[r/e,0,0,0,0,r,0,0,0,0,n*o,1,0,0,-t*n*o,0]},orthographic(A,e,t,n,r,o){let i=1/(e-A),a=1/(n-t),s=1/(o-r);return[2*i,0,0,0,0,2*a,0,0,0,0,s,0,-(e+A)*i,-(n+t)*a,-r*s,1]},invert(A){let e=new Array(16);e[0]=A[5]*A[10]*A[15]-A[5]*A[11]*A[14]-A[9]*A[6]*A[15]+A[9]*A[7]*A[14]+A[13]*A[6]*A[11]-A[13]*A[7]*A[10],e[4]=-A[4]*A[10]*A[15]+A[4]*A[11]*A[14]+A[8]*A[6]*A[15]-A[8]*A[7]*A[14]-A[12]*A[6]*A[11]+A[12]*A[7]*A[10],e[8]=A[4]*A[9]*A[15]-A[4]*A[11]*A[13]-A[8]*A[5]*A[15]+A[8]*A[7]*A[13]+A[12]*A[5]*A[11]-A[12]*A[7]*A[9],e[12]=-A[4]*A[9]*A[14]+A[4]*A[10]*A[13]+A[8]*A[5]*A[14]-A[8]*A[6]*A[13]-A[12]*A[5]*A[10]+A[12]*A[6]*A[9],e[1]=-A[1]*A[10]*A[15]+A[1]*A[11]*A[14]+A[9]*A[2]*A[15]-A[9]*A[3]*A[14]-A[13]*A[2]*A[11]+A[13]*A[3]*A[10],e[5]=A[0]*A[10]*A[15]-A[0]*A[11]*A[14]-A[8]*A[2]*A[15]+A[8]*A[3]*A[14]+A[12]*A[2]*A[11]-A[12]*A[3]*A[10],e[9]=-A[0]*A[9]*A[15]+A[0]*A[11]*A[13]+A[8]*A[1]*A[15]-A[8]*A[3]*A[13]-A[12]*A[1]*A[11]+A[12]*A[3]*A[9],e[13]=A[0]*A[9]*A[14]-A[0]*A[10]*A[13]-A[8]*A[1]*A[14]+A[8]*A[2]*A[13]+A[12]*A[1]*A[10]-A[12]*A[2]*A[9],e[2]=A[1]*A[6]*A[15]-A[1]*A[7]*A[14]-A[5]*A[2]*A[15]+A[5]*A[3]*A[14]+A[13]*A[2]*A[7]-A[13]*A[3]*A[6],e[6]=-A[0]*A[6]*A[15]+A[0]*A[7]*A[14]+A[4]*A[2]*A[15]-A[4]*A[3]*A[14]-A[12]*A[2]*A[7]+A[12]*A[3]*A[6],e[10]=A[0]*A[5]*A[15]-A[0]*A[7]*A[13]-A[4]*A[1]*A[15]+A[4]*A[3]*A[13]+A[12]*A[1]*A[7]-A[12]*A[3]*A[5],e[14]=-A[0]*A[5]*A[14]+A[0]*A[6]*A[13]+A[4]*A[1]*A[14]-A[4]*A[2]*A[13]-A[12]*A[1]*A[6]+A[12]*A[2]*A[5],e[3]=-A[1]*A[6]*A[11]+A[1]*A[7]*A[10]+A[5]*A[2]*A[11]-A[5]*A[3]*A[10]-A[9]*A[2]*A[7]+A[9]*A[3]*A[6],e[7]=A[0]*A[6]*A[11]-A[0]*A[7]*A[10]-A[4]*A[2]*A[11]+A[4]*A[3]*A[10]+A[8]*A[2]*A[7]-A[8]*A[3]*A[6],e[11]=-A[0]*A[5]*A[11]+A[0]*A[7]*A[9]+A[4]*A[1]*A[11]-A[4]*A[3]*A[9]-A[8]*A[1]*A[7]+A[8]*A[3]*A[5],e[15]=A[0]*A[5]*A[10]-A[0]*A[6]*A[9]-A[4]*A[1]*A[10]+A[4]*A[2]*A[9]+A[8]*A[1]*A[6]-A[8]*A[2]*A[5];let t=A[0]*e[0]+A[1]*e[4]+A[2]*e[8]+A[3]*e[12];if(Math.abs(t)<1e-12)return null;t=1/t;for(let n=0;n<16;n++)e[n]*=t;return e},transpose(A){return[A[0],A[4],A[8],A[12],A[1],A[5],A[9],A[13],A[2],A[6],A[10],A[14],A[3],A[7],A[11],A[15]]},projectPoint(A,e){let t=e[0],n=e[1],r=e[2],o=A[0]*t+A[4]*n+A[8]*r+A[12],i=A[1]*t+A[5]*n+A[9]*r+A[13],a=A[2]*t+A[6]*n+A[10]*r+A[14],s=A[3]*t+A[7]*n+A[11]*r+A[15],g=Math.abs(s)>1e-6?1/s:1;return[o*g,i*g,a*g]},projectRectangle(A,e,t){return[cA.projectPoint(A,[0,0,0]),cA.projectPoint(A,[e,0,0]),cA.projectPoint(A,[e,t,0]),cA.projectPoint(A,[0,t,0])]},toFloat32Array(A){return new Float32Array(A)}};function ce(A,e,t=3){let n=0,r=1,o=1,i=0;for(let a=0;a<t;a++){let s=Math.sin(A*r*2*Math.PI+e+a*1.7),g=Math.cos(A*r*1.414*Math.PI+e*2.1+a*.9);n+=(s*.6+g*.4)*o,i+=o,r*=2,o*=.5}return i>0?n/i:0}var ne={createDefaultCamera(A,e,t=50){let n=t*Math.PI/180,r=e/2/Math.tan(n/2);return{eye:[A/2,e/2,-r],target:[A/2,e/2,0],up:[0,-1,0],fov:t,aspect:Math.max(1e-4,A/e),near:1,far:5e4,zoom:1,focusDistance:r,fStop:2.8,maxBlurRadius:32}},computeViewMatrix(A){return cA.lookAt(A.eye,A.target,A.up)},computeProjectionMatrix(A){let e=A.fov*Math.PI/180,t=cA.perspective(e,A.aspect,A.near,A.far);return A.zoom!==1&&A.zoom>0&&(t[0]*=A.zoom,t[5]*=A.zoom),t},computeViewProjectionMatrix(A){let e=ne.computeViewMatrix(A),t=ne.computeProjectionMatrix(A);return cA.multiply(t,e)},dolly(A,e,t){let n=k.normalize(k.subtract(e,A)),r=k.multiplyScalar(n,t);return{eye:k.add(A,r),target:e}},truckPedestal(A,e,t,n,r){let o=k.normalize(k.subtract(e,A)),i=k.normalize(k.cross(o,t)),a=k.cross(i,o),s=k.multiplyScalar(i,n),g=k.multiplyScalar(a,r),I=k.add(s,g);return{eye:k.add(A,I),target:k.add(e,I)}},orbit(A,e,t,n){let r=t*Math.PI/180,o=n*Math.PI/180,i=Math.cos(o),a=Math.sin(o),s=Math.cos(r),g=Math.sin(r),I=A[0]+e*i*g,B=A[1]-e*a,u=A[2]-e*i*s;return[I,B,u]},applyOrientation(A,e,t,n){if(e===0&&t===0&&n===0)return A;let r=k.normalize(k.subtract(A.target,A.eye)),o=k.normalize(k.cross(r,A.up)),i=k.cross(o,r),a=k.distance(A.eye,A.target),s=r,g=i;if(t!==0){let u=t*Math.PI/180,E=Math.cos(u),Q=Math.sin(u);s=k.normalize(k.subtract(k.multiplyScalar(s,E),k.multiplyScalar(o,Q)))}let I=k.normalize(k.cross(s,g));if(e!==0){let u=e*Math.PI/180,E=Math.cos(u),Q=Math.sin(u);s=k.normalize(k.add(k.multiplyScalar(s,E),k.multiplyScalar(g,Q))),g=k.normalize(k.cross(I,s))}if(n!==0){let u=n*Math.PI/180,E=Math.cos(u),Q=Math.sin(u);g=k.normalize(k.add(k.multiplyScalar(g,E),k.multiplyScalar(I,Q)))}let B=k.add(A.eye,k.multiplyScalar(s,a));return{...A,target:B,up:g}},applyCameraShake(A,e,t){let{translationAmplitude:n,rotationAmplitude:r,frequency:o=2.5,octaves:i=3,seed:a=42}=t;if(n<=0&&r<=0)return A;let s=e*o,g=ce(s,a,i)*n,I=ce(s,a+101.5,i)*n,B=ce(s,a+203.7,i)*(n*.5),u=ce(s,a+307.1,i)*r,E=ce(s,a+409.3,i)*r,Q=k.normalize(k.subtract(A.target,A.eye)),C=k.normalize(k.cross(Q,A.up)),h=k.cross(C,Q),m=k.add(k.multiplyScalar(C,g),k.add(k.multiplyScalar(h,I),k.multiplyScalar(Q,B))),y=k.add(A.eye,m),D=k.add(A.target,k.add(k.multiplyScalar(C,E*10),k.multiplyScalar(h,u*10)));return{...A,eye:y,target:D}},computeCircleOfConfusion(A,e,t,n,r=32){if(e<=0||n<=0||A<=0)return 0;let o=Math.abs(A-e),i=t/n,a=o/A*i*.5;return Math.min(r,Math.max(0,a))},computeCameraFrustumPlanes(A){let e=t=>{let n=Math.hypot(t[0],t[1],t[2]);return n===0?t:[t[0]/n,t[1]/n,t[2]/n,t[3]/n]};return{left:e([A[3]+A[0],A[7]+A[4],A[11]+A[8],A[15]+A[12]]),right:e([A[3]-A[0],A[7]-A[4],A[11]-A[8],A[15]-A[12]]),bottom:e([A[3]+A[1],A[7]+A[5],A[11]+A[9],A[15]+A[13]]),top:e([A[3]-A[1],A[7]-A[5],A[11]-A[9],A[15]-A[13]]),near:e([A[2],A[6],A[10],A[14]]),far:e([A[3]-A[2],A[7]-A[6],A[11]-A[10],A[15]-A[14]])}},isBoxInFrustum(A,e,t){let n=[t.left,t.right,t.bottom,t.top,t.near,t.far];for(let r of n){let o=r[0]>0?e[0]:A[0],i=r[1]>0?e[1]:A[1],a=r[2]>0?e[2]:A[2];if(r[0]*o+r[1]*i+r[2]*a+r[3]<0)return!1}return!0}};$();var pn=8,dt=544;function Dn(A){if(!A)return[1,1,1];if(Array.isArray(A)){let r=A[0]??1,o=A[1]??1,i=A[2]??1;return[r>1?r/255:r,o>1?o/255:o,i>1?i/255:i]}if(typeof A=="object"&&A!==null){let r=A.r??1,o=A.g??1,i=A.b??1;return[r>1?r/255:r,o>1?o/255:o,i>1?i/255:i]}if(typeof A!="string")return[1,1,1];let e=A.trim().toLowerCase();if(e.startsWith("#")){let r=e.slice(1);if(r.length===3){let o=Number.parseInt(r[0]+r[0],16)/255,i=Number.parseInt(r[1]+r[1],16)/255,a=Number.parseInt(r[2]+r[2],16)/255;return[o,i,a]}if(r.length>=6){let o=Number.parseInt(r.slice(0,2),16)/255,i=Number.parseInt(r.slice(2,4),16)/255,a=Number.parseInt(r.slice(4,6),16)/255;return[o,i,a]}}let t=e.match(/rgba?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/);if(t){let r=Number.parseFloat(t[1])/255,o=Number.parseFloat(t[2])/255,i=Number.parseFloat(t[3])/255;return[Math.max(0,Math.min(1,r)),Math.max(0,Math.min(1,o)),Math.max(0,Math.min(1,i))]}let n=e.match(/hsla?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?/);if(n){let r=Number.parseFloat(n[1])/360,o=Number.parseFloat(n[2])/100,i=Number.parseFloat(n[3])/100;return Tr(r,o,i)}return[1,1,1]}function Tr(A,e,t){if(e===0)return[t,t,t];let n=(i,a,s)=>{let g=s;return g<0&&(g+=1),g>1&&(g-=1),g<1/6?i+(a-i)*6*g:g<1/2?a:g<2/3?i+(a-i)*(2/3-g)*6:i},r=t<.5?t*(1+e):t+e-t*e,o=2*t-r;return[n(o,r,A+1/3),n(o,r,A),n(o,r,A-1/3)]}var re={computeNormalMatrix(A){let e=cA.invert(A);return e?[e[0],e[4],e[8],0,e[1],e[5],e[9],0,e[2],e[6],e[10],0,0,0,0,1]:cA.identity()},processLight(A){let e=Dn(A.color),t=A.intensity??1,n=A.position?A.position[0]:A.x??0,r=A.position?A.position[1]:A.y??0,o=A.position?A.position[2]:A.z??0,i=A.lightType??A.type??"directional",a=1;i==="ambient"?a=0:i==="directional"?a=1:i==="point"?a=2:i==="spot"&&(a=3);let s=[0,0,-1];if(A.direction)s=k.normalize(A.direction);else if(A.target||A.targetX!==void 0||A.targetY!==void 0||A.targetZ!==void 0){let m=A.target?A.target[0]:A.targetX??n,y=A.target?A.target[1]:A.targetY??r,D=A.target?A.target[2]:A.targetZ??o,U=[m,y,D],M=k.subtract(U,[n,r,o]);k.length(M)>1e-4&&(s=k.normalize(M))}let g=Math.max(1,A.radius??1e3),I=A.decay??2,B=Math.max(.1,Math.min(180,A.angle??45)),u=Math.max(0,Math.min(1,A.penumbra??.2)),E=B*Math.PI/180,Q=E*(1-u),C=Math.cos(E),h=Math.cos(Q);return{posType:[n,r,o,a],dirRadius:[s[0],s[1],s[2],g],colorIntensity:[e[0],e[1],e[2],t],spotParams:[C,h,I,0]}},packLightsUniforms(A){let e=new Float32Array(dt/4);if(!A||A.length===0)return e[4]=0,e[5]=0,e;let t=0,n=0,r=0,o=[];for(let a of A)if((a.lightType??a.type)==="ambient"){let g=Dn(a.color),I=a.intensity??1;t+=g[0]*I,n+=g[1]*I,r+=g[2]*I}else o.length<pn&&o.push(re.processLight(a));e[0]=t,e[1]=n,e[2]=r,e[3]=1,e[4]=o.length,e[5]=1,e[6]=0,e[7]=0;let i=8;for(let a=0;a<pn;a++){if(a<o.length){let s=o[a];e[i+0]=s.posType[0],e[i+1]=s.posType[1],e[i+2]=s.posType[2],e[i+3]=s.posType[3],e[i+4]=s.dirRadius[0],e[i+5]=s.dirRadius[1],e[i+6]=s.dirRadius[2],e[i+7]=s.dirRadius[3],e[i+8]=s.colorIntensity[0],e[i+9]=s.colorIntensity[1],e[i+10]=s.colorIntensity[2],e[i+11]=s.colorIntensity[3],e[i+12]=s.spotParams[0],e[i+13]=s.spotParams[1],e[i+14]=s.spotParams[2],e[i+15]=s.spotParams[3]}else for(let s=0;s<16;s++)e[i+s]=0;i+=16}return e}};$();var ue=class A{static parse(e,t,n){let r=typeof t=="object"&&t!==null?t:n??{},o=typeof t=="string"?t:r.mtlText,i=[],a=[],s=[],g=[],I={materialName:"default",faces:[]};g.push(I);let B={};o&&Object.assign(B,A.parseMtl(o));let u=e.split(/\r?\n/);for(let R=0;R<u.length;R++){let gA=u[R]?.trim();if(!gA||gA.startsWith("#"))continue;let AA=gA.split(/\s+/),IA=AA[0]?.toLowerCase();if(IA==="mtllib"){let q=AA.slice(1).join(" ").trim();if(r.basePath&&typeof yA<"u"&&yA.existsSync)try{let w=JA.resolve(r.basePath,q);if(yA.existsSync(w)){let L=yA.readFileSync(w,"utf-8");Object.assign(B,A.parseMtl(L))}}catch{}}else if(IA==="v"){let q=Number.parseFloat(AA[1]??"0"),w=Number.parseFloat(AA[2]??"0"),L=Number.parseFloat(AA[3]??"0");i.push([q,w,L])}else if(IA==="vn"){let q=Number.parseFloat(AA[1]??"0"),w=Number.parseFloat(AA[2]??"0"),L=Number.parseFloat(AA[3]??"0");a.push([q,w,L])}else if(IA==="vt"){let q=Number.parseFloat(AA[1]??"0"),w=AA[2]!==void 0?Number.parseFloat(AA[2]):0;s.push([q,w])}else if(IA==="usemtl"){let q=AA[1]??"default";I.faces.length>0?(I={materialName:q,faces:[]},g.push(I)):I.materialName=q}else if(IA==="f"){let q=[];for(let w=1;w<AA.length;w++){let L=AA[w];if(!L)continue;let z=L.split("/"),iA=Number.parseInt(z[0]??"0",10),EA=z[1]&&z[1].length>0?Number.parseInt(z[1],10):0,CA=z[2]&&z[2].length>0?Number.parseInt(z[2],10):0;iA<0&&(iA=i.length+iA+1),EA<0&&(EA=s.length+EA+1),CA<0&&(CA=a.length+CA+1),q.push({v:iA-1,vt:EA-1,vn:CA-1})}if(q.length>=3)for(let w=1;w<q.length-1;w++){let L=q[0],z=q[w],iA=q[w+1];L&&z&&iA&&I.faces.push([L,z,iA])}}}let E=1/0,Q=1/0,C=1/0,h=-1/0,m=-1/0,y=-1/0;for(let R of i){let[gA,AA,IA]=R;gA===void 0||AA===void 0||IA===void 0||(gA<E&&(E=gA),AA<Q&&(Q=AA),IA<C&&(C=IA),gA>h&&(h=gA),AA>m&&(m=AA),IA>y&&(y=IA))}Number.isFinite(E)||(E=-1,Q=-1,C=-1,h=1,m=1,y=1);let D=(E+h)*.5,U=(Q+m)*.5,M=(C+y)*.5,b=Math.max(1e-4,h-E),x=Math.max(1e-4,m-Q),N=Math.max(1e-4,y-C),T=Math.max(b,x,N),Y=1;r.normalizeSize&&r.normalizeSize>0&&(Y=r.normalizeSize/T),typeof r.scale=="number"&&(Y*=r.scale);let O=r.center??!1,v=O?D:0,tA=O?U:0,X=O?M:0,F=[];for(let R=0;R<g.length;R++){let gA=g[R];if(!gA||gA.faces.length===0)continue;let AA=new Map,IA=[],q=[],w=[],L=[],z=!1;for(let CA of gA.faces)for(let QA of CA){let mA=`${QA.v}_${QA.vt}_${QA.vn}`,dA=AA.get(mA);if(dA===void 0){dA=IA.length/3,AA.set(mA,dA);let DA=i[QA.v]??[0,0,0],wA=((DA[0]??0)-v)*Y,UA=((DA[1]??0)-tA)*Y,SA=((DA[2]??0)-X)*Y;if(IA.push(wA,UA,SA),QA.vt>=0&&s[QA.vt]){let kA=s[QA.vt];w.push(kA[0]??0,1-(kA[1]??0))}else w.push(0,0);if(QA.vn>=0&&a[QA.vn]){z=!0;let kA=a[QA.vn];q.push(kA[0]??0,kA[1]??0,kA[2]??0)}else q.push(0,0,0)}L.push(dA)}if(!z||r.smoothNormals){let CA=new Float32Array(IA.length);for(let QA=0;QA<L.length;QA+=3){let mA=L[QA],dA=L[QA+1],DA=L[QA+2],wA=[IA[mA*3],IA[mA*3+1],IA[mA*3+2]],UA=[IA[dA*3],IA[dA*3+1],IA[dA*3+2]],SA=[IA[DA*3],IA[DA*3+1],IA[DA*3+2]],kA=k.subtract(UA,wA),ot=k.subtract(SA,wA),RA=k.cross(kA,ot);CA[mA*3]+=RA[0],CA[mA*3+1]+=RA[1],CA[mA*3+2]+=RA[2],CA[dA*3]+=RA[0],CA[dA*3+1]+=RA[1],CA[dA*3+2]+=RA[2],CA[DA*3]+=RA[0],CA[DA*3+1]+=RA[1],CA[DA*3+2]+=RA[2]}for(let QA=0;QA<IA.length/3;QA++){let mA=CA[QA*3],dA=CA[QA*3+1],DA=CA[QA*3+2],wA=Math.hypot(mA,dA,DA)||1;q[QA*3]=mA/wA,q[QA*3+1]=dA/wA,q[QA*3+2]=DA/wA}}let EA=IA.length/3>65535?new Uint32Array(L):new Uint16Array(L);F.push({id:`mesh_${R}`,name:gA.materialName,positions:new Float32Array(IA),normals:new Float32Array(q),uvs:new Float32Array(w),indices:EA,materialName:gA.materialName})}let sA=(E-v)*Y,H=(Q-tA)*Y,V=(C-X)*Y,rA=(h-v)*Y,K=(m-tA)*Y,S=(y-X)*Y,_=rA-sA,j=K-H,W=S-V,nA=(sA+rA)*.5,lA=(H+K)*.5,oA=(V+S)*.5,aA=Math.hypot(_,j,W)*.5;return{meshes:F,materials:B,animations:[],bounds:{min:[sA,H,V],max:[rA,K,S],center:[nA,lA,oA],size:[_,j,W],boundingSphereRadius:aA}}}static parseMtl(e){let t={},n=null,r=e.split(/\r?\n/);for(let o of r){let i=o.trim();if(!i||i.startsWith("#"))continue;let a=i.split(/\s+/),s=a[0]?.toLowerCase();if(s==="newmtl"){let g=a[1]??"default";n={name:g,diffuseColor:[1,1,1,1],specularColor:[1,1,1],ambientColor:[.2,.2,.2],shininess:32,opacity:1},t[g]=n}else if(n)if(s==="kd"){let g=Number.parseFloat(a[1]??"1"),I=Number.parseFloat(a[2]??"1"),B=Number.parseFloat(a[3]??"1");n.diffuseColor=[g,I,B,n.diffuseColor?.[3]??1]}else if(s==="ks"){let g=Number.parseFloat(a[1]??"1"),I=Number.parseFloat(a[2]??"1"),B=Number.parseFloat(a[3]??"1");n.specularColor=[g,I,B],n.specularIntensity=(g+I+B)/3}else if(s==="ka"){let g=Number.parseFloat(a[1]??"0.2"),I=Number.parseFloat(a[2]??"0.2"),B=Number.parseFloat(a[3]??"0.2");n.ambientColor=[g,I,B]}else if(s==="ns")n.shininess=Number.parseFloat(a[1]??"32");else if(s==="d"||s==="tr"){let g=Number.parseFloat(a[1]??"1");n.opacity=s==="d"?g:1-g,n.diffuseColor&&(n.diffuseColor[3]=n.opacity)}else s==="map_kd"?n.diffuseTexture=a.slice(1).join(" "):(s==="map_bump"||s==="bump")&&(n.normalTexture=a.slice(1).join(" "))}return t}};function Ko(A,e,t={}){return ue.parse(A,e,t)}function Yo(A){return ue.parseMtl(A)}function Ee(A,e,t={}){let n;if(typeof A!="string")n=new TextDecoder().decode(A);else{let r=A.trim();if(!(r.startsWith("v ")||r.startsWith("#")||r.includes(`
|
|
1
|
+
import{a as En}from"./chunk-JPXQPP6J.mjs";import{a as ln}from"./chunk-CNSHAFEA.mjs";import{h as Qn,l as Cn}from"./chunk-24P6DAB3.mjs";import{d as Bn}from"./chunk-6YJP57MZ.mjs";import{d as ZA,e as cn,f as NA,g as ft,h as un}from"./chunk-YK4XHUP4.mjs";import{r as yA}from"./chunk-MTJHQATU.mjs";import{d as Ct}from"./chunk-HYBAPT6I.mjs";import{o as JA}from"./chunk-YAQFFQPG.mjs";import{a as gn,c as In,e as $}from"./chunk-BVF64D6H.mjs";var bn=gn((Wo,wn)=>{$();var Ke=()=>new Proxy(function(){},{get:(A,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":Ke(),apply:()=>Ke(),construct:()=>Ke()});wn.exports=Ke()});var $n=gn((xs,_n)=>{$();var tt=()=>new Proxy(function(){},{get:(A,e)=>e==="__esModule"?!0:e===Symbol.toPrimitive?()=>"":tt(),apply:()=>tt(),construct:()=>tt()});_n.exports=tt()});$();var dn=new Float32Array(2048);for(let A=0;A<2048;A++)dn[A]=.5*(1-Math.cos(2*Math.PI*A/2047));var hn=new Uint16Array(2048);for(let A=0;A<2048;A++){let e=0,t=A;for(let n=0;n<11;n++)e=e<<1|t&1,t>>=1;hn[A]=e}var mn=new Float32Array(2048/2),yn=new Float32Array(2048/2);for(let A=0;A<2048/2;A++){let e=-2*Math.PI*A/2048;mn[A]=Math.cos(e),yn[A]=Math.sin(e)}function Jr(A,e){for(let t=0;t<2048;t++){let n=hn[t]??0;if(n>t){let r=A[t]??0;A[t]=A[n]??0,A[n]=r;let o=e[t]??0;e[t]=e[n]??0,e[n]=o}}for(let t=2;t<=2048;t<<=1){let n=t>>1,r=2048/t;for(let o=0;o<2048;o+=t)for(let i=0;i<n;i++){let a=i*r,s=mn[a]??1,g=yn[a]??0,I=A[o+i]??0,B=e[o+i]??0,u=A[o+i+n]??0,E=e[o+i+n]??0,Q=u*s-E*g,C=u*g+E*s;A[o+i]=I+Q,e[o+i]=B+C,A[o+i+n]=I-Q,e[o+i+n]=B-C}}}var Te=class A{tempReal=new Float32Array(2048);tempImag=new Float32Array(2048);previousBins=new Float32Array(1024);extractAtTime(e,t,n){let r=e.length,o=r>0?e[0]?.length??0:0,a=Math.round(n*t)-1024;for(let M=0;M<2048;M++){let b=a+M,x=0;b>=0&&b<o&&(r===1?x=e[0]?.[b]??0:r>=2&&(x=((e[0]?.[b]??0)+(e[1]?.[b]??0))*.5)),this.tempReal[M]=x*(dn[M]??1),this.tempImag[M]=0}Jr(this.tempReal,this.tempImag);let s=new Float32Array(1024),g=2/2048;for(let M=0;M<1024;M++){let b=this.tempReal[M]??0,x=this.tempImag[M]??0;s[M]=Math.sqrt(b*b+x*x)*g*2}let I=t/2048,B=Math.max(1,Math.round(20/I)),u=Math.max(B+1,Math.round(150/I)),E=0;for(let M=B;M<=u&&M<1024;M++)E+=(s[M]??0)*(s[M]??0);let Q=Math.min(1,Math.sqrt(E/(u-B+1))*4),C=0;for(let M=0;M<1024;M++){let b=(s[M]??0)-(this.previousBins[M]??0);b>0&&(C+=b),this.previousBins[M]=s[M]??0}let h=Math.min(1,C*.15),m=Math.round(300/I),y=Math.min(1023,Math.round(3400/I)),D=0;for(let M=m;M<=y;M++)D+=(s[M]??0)*(s[M]??0);let U=Math.min(1,Math.sqrt(D/(y-m+1))*3.5);return{fftBins:s,bassEnergy:Q,drumTransient:h,vocalEnergy:U,timeMs:n*1e3}}static packBufferData(e){let t=new Float32Array(1028);return t.set(e.fftBins,0),t[1024]=e.bassEnergy,t[1025]=e.drumTransient,t[1026]=e.vocalEnergy,t[1027]=e.timeMs,t}static createGpuBuffer(e,t){let n=t?A.packBufferData(t):new Float32Array(1028),r=e.createBuffer({label:"AudioLatentBuffer",size:4112,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,mappedAtCreation:!0});return new Float32Array(r.getMappedRange()).set(n),r.unmap(),r}static updateGpuBuffer(e,t,n){let r=A.packBufferData(n);e.queue.writeBuffer(t,0,r)}},fn=class{constructor(e,t,n,r){this.channels=e;this.sampleRate=t;this.fps=n;this.totalFrames=r;let o=new Te,i=t||48e3,a=n||30,s=e[0]?.length??0,g=Math.max(10,Math.ceil(s/i*a)+10),I=typeof r=="number"&&Number.isFinite(r)&&r>0?Math.round(r):g;this.frames=new Array(I);for(let B=0;B<I;B++){let u=B/a;this.frames[B]=o.extractAtTime(e,i,u)}}channels;sampleRate;fps;totalFrames;frames=[];gpuBuffers=new WeakMap;getFrameData(e){let t=Math.max(0,Math.min(this.totalFrames-1,Math.round(e)));return this.frames[t]??{fftBins:new Float32Array(1024),bassEnergy:0,drumTransient:0,vocalEnergy:0,timeMs:t/this.fps*1e3}}getGpuBuffer(e,t){let n=this.gpuBuffers.get(e);n||(n=new Map,this.gpuBuffers.set(e,n));let r=Math.max(0,Math.min(this.totalFrames-1,Math.round(t))),o=n.get(r);if(!o){let i=this.getFrameData(r);o=Te.createGpuBuffer(e,i),n.set(r,o)}return o}};$();$();$();var k={create(A=0,e=0,t=0){return[A,e,t]},copy(A){return[A[0],A[1],A[2]]},set(A,e,t,n){return A[0]=e,A[1]=t,A[2]=n,A},add(A,e){return[A[0]+e[0],A[1]+e[1],A[2]+e[2]]},subtract(A,e){return[A[0]-e[0],A[1]-e[1],A[2]-e[2]]},multiplyScalar(A,e){return[A[0]*e,A[1]*e,A[2]*e]},dot(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]},cross(A,e){return[A[1]*e[2]-A[2]*e[1],A[2]*e[0]-A[0]*e[2],A[0]*e[1]-A[1]*e[0]]},lengthSq(A){return A[0]*A[0]+A[1]*A[1]+A[2]*A[2]},length(A){return Math.hypot(A[0],A[1],A[2])},distance(A,e){return Math.hypot(A[0]-e[0],A[1]-e[1],A[2]-e[2])},normalize(A){let e=Math.hypot(A[0],A[1],A[2]);if(e===0)return[0,0,0];let t=1/e;return[A[0]*t,A[1]*t,A[2]*t]},lerp(A,e,t){return[A[0]+(e[0]-A[0])*t,A[1]+(e[1]-A[1])*t,A[2]+(e[2]-A[2])*t]},equals(A,e,t=1e-6){return Math.abs(A[0]-e[0])<=t&&Math.abs(A[1]-e[1])<=t&&Math.abs(A[2]-e[2])<=t}};var cA={identity(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},copy(A){return[...A]},multiply(A,e){let t=new Array(16);for(let n=0;n<4;n++)for(let r=0;r<4;r++)t[r*4+n]=A[0+n]*e[r*4+0]+A[4+n]*e[r*4+1]+A[8+n]*e[r*4+2]+A[12+n]*e[r*4+3];return t},translate(A,e,t=0){return[1,0,0,0,0,1,0,0,0,0,1,0,A,e,t,1]},scale(A,e,t=1){return[A,0,0,0,0,e,0,0,0,0,t,0,0,0,0,1]},rotateX(A){let e=Math.cos(A),t=Math.sin(A);return[1,0,0,0,0,e,t,0,0,-t,e,0,0,0,0,1]},rotateY(A){let e=Math.cos(A),t=Math.sin(A);return[e,0,-t,0,0,1,0,0,t,0,e,0,0,0,0,1]},rotateZ(A){let e=Math.cos(A),t=Math.sin(A);return[e,t,0,0,-t,e,0,0,0,0,1,0,0,0,0,1]},rotateAxis(A,e){let t=k.normalize(A),n=t[0],r=t[1],o=t[2],i=Math.cos(e),a=Math.sin(e),s=1-i;return[s*n*n+i,s*n*r+a*o,s*n*o-a*r,0,s*n*r-a*o,s*r*r+i,s*r*o+a*n,0,s*n*o+a*r,s*r*o-a*n,s*o*o+i,0,0,0,0,1]},lookAt(A,e,t=[0,-1,0]){let n=k.subtract(e,A);k.lengthSq(n)===0?n=[0,0,1]:n=k.normalize(n);let r=k.cross(n,t);k.lengthSq(r)===0?r=[1,0,0]:r=k.normalize(r);let o=k.cross(r,n);return[r[0],o[0],n[0],0,r[1],o[1],n[1],0,r[2],o[2],n[2],0,-k.dot(r,A),-k.dot(o,A),-k.dot(n,A),1]},perspective(A,e,t,n){let r=1/Math.tan(A/2),o=1/(n-t);return[r/e,0,0,0,0,r,0,0,0,0,n*o,1,0,0,-t*n*o,0]},orthographic(A,e,t,n,r,o){let i=1/(e-A),a=1/(n-t),s=1/(o-r);return[2*i,0,0,0,0,2*a,0,0,0,0,s,0,-(e+A)*i,-(n+t)*a,-r*s,1]},invert(A){let e=new Array(16);e[0]=A[5]*A[10]*A[15]-A[5]*A[11]*A[14]-A[9]*A[6]*A[15]+A[9]*A[7]*A[14]+A[13]*A[6]*A[11]-A[13]*A[7]*A[10],e[4]=-A[4]*A[10]*A[15]+A[4]*A[11]*A[14]+A[8]*A[6]*A[15]-A[8]*A[7]*A[14]-A[12]*A[6]*A[11]+A[12]*A[7]*A[10],e[8]=A[4]*A[9]*A[15]-A[4]*A[11]*A[13]-A[8]*A[5]*A[15]+A[8]*A[7]*A[13]+A[12]*A[5]*A[11]-A[12]*A[7]*A[9],e[12]=-A[4]*A[9]*A[14]+A[4]*A[10]*A[13]+A[8]*A[5]*A[14]-A[8]*A[6]*A[13]-A[12]*A[5]*A[10]+A[12]*A[6]*A[9],e[1]=-A[1]*A[10]*A[15]+A[1]*A[11]*A[14]+A[9]*A[2]*A[15]-A[9]*A[3]*A[14]-A[13]*A[2]*A[11]+A[13]*A[3]*A[10],e[5]=A[0]*A[10]*A[15]-A[0]*A[11]*A[14]-A[8]*A[2]*A[15]+A[8]*A[3]*A[14]+A[12]*A[2]*A[11]-A[12]*A[3]*A[10],e[9]=-A[0]*A[9]*A[15]+A[0]*A[11]*A[13]+A[8]*A[1]*A[15]-A[8]*A[3]*A[13]-A[12]*A[1]*A[11]+A[12]*A[3]*A[9],e[13]=A[0]*A[9]*A[14]-A[0]*A[10]*A[13]-A[8]*A[1]*A[14]+A[8]*A[2]*A[13]+A[12]*A[1]*A[10]-A[12]*A[2]*A[9],e[2]=A[1]*A[6]*A[15]-A[1]*A[7]*A[14]-A[5]*A[2]*A[15]+A[5]*A[3]*A[14]+A[13]*A[2]*A[7]-A[13]*A[3]*A[6],e[6]=-A[0]*A[6]*A[15]+A[0]*A[7]*A[14]+A[4]*A[2]*A[15]-A[4]*A[3]*A[14]-A[12]*A[2]*A[7]+A[12]*A[3]*A[6],e[10]=A[0]*A[5]*A[15]-A[0]*A[7]*A[13]-A[4]*A[1]*A[15]+A[4]*A[3]*A[13]+A[12]*A[1]*A[7]-A[12]*A[3]*A[5],e[14]=-A[0]*A[5]*A[14]+A[0]*A[6]*A[13]+A[4]*A[1]*A[14]-A[4]*A[2]*A[13]-A[12]*A[1]*A[6]+A[12]*A[2]*A[5],e[3]=-A[1]*A[6]*A[11]+A[1]*A[7]*A[10]+A[5]*A[2]*A[11]-A[5]*A[3]*A[10]-A[9]*A[2]*A[7]+A[9]*A[3]*A[6],e[7]=A[0]*A[6]*A[11]-A[0]*A[7]*A[10]-A[4]*A[2]*A[11]+A[4]*A[3]*A[10]+A[8]*A[2]*A[7]-A[8]*A[3]*A[6],e[11]=-A[0]*A[5]*A[11]+A[0]*A[7]*A[9]+A[4]*A[1]*A[11]-A[4]*A[3]*A[9]-A[8]*A[1]*A[7]+A[8]*A[3]*A[5],e[15]=A[0]*A[5]*A[10]-A[0]*A[6]*A[9]-A[4]*A[1]*A[10]+A[4]*A[2]*A[9]+A[8]*A[1]*A[6]-A[8]*A[2]*A[5];let t=A[0]*e[0]+A[1]*e[4]+A[2]*e[8]+A[3]*e[12];if(Math.abs(t)<1e-12)return null;t=1/t;for(let n=0;n<16;n++)e[n]*=t;return e},transpose(A){return[A[0],A[4],A[8],A[12],A[1],A[5],A[9],A[13],A[2],A[6],A[10],A[14],A[3],A[7],A[11],A[15]]},projectPoint(A,e){let t=e[0],n=e[1],r=e[2],o=A[0]*t+A[4]*n+A[8]*r+A[12],i=A[1]*t+A[5]*n+A[9]*r+A[13],a=A[2]*t+A[6]*n+A[10]*r+A[14],s=A[3]*t+A[7]*n+A[11]*r+A[15],g=Math.abs(s)>1e-6?1/s:1;return[o*g,i*g,a*g]},projectRectangle(A,e,t){return[cA.projectPoint(A,[0,0,0]),cA.projectPoint(A,[e,0,0]),cA.projectPoint(A,[e,t,0]),cA.projectPoint(A,[0,t,0])]},toFloat32Array(A){return new Float32Array(A)}};function ce(A,e,t=3){let n=0,r=1,o=1,i=0;for(let a=0;a<t;a++){let s=Math.sin(A*r*2*Math.PI+e+a*1.7),g=Math.cos(A*r*1.414*Math.PI+e*2.1+a*.9);n+=(s*.6+g*.4)*o,i+=o,r*=2,o*=.5}return i>0?n/i:0}var ne={createDefaultCamera(A,e,t=50){let n=t*Math.PI/180,r=e/2/Math.tan(n/2);return{eye:[A/2,e/2,-r],target:[A/2,e/2,0],up:[0,-1,0],fov:t,aspect:Math.max(1e-4,A/e),near:1,far:5e4,zoom:1,focusDistance:r,fStop:2.8,maxBlurRadius:32}},computeViewMatrix(A){return cA.lookAt(A.eye,A.target,A.up)},computeProjectionMatrix(A){let e=A.fov*Math.PI/180,t=cA.perspective(e,A.aspect,A.near,A.far);return A.zoom!==1&&A.zoom>0&&(t[0]*=A.zoom,t[5]*=A.zoom),t},computeViewProjectionMatrix(A){let e=ne.computeViewMatrix(A),t=ne.computeProjectionMatrix(A);return cA.multiply(t,e)},dolly(A,e,t){let n=k.normalize(k.subtract(e,A)),r=k.multiplyScalar(n,t);return{eye:k.add(A,r),target:e}},truckPedestal(A,e,t,n,r){let o=k.normalize(k.subtract(e,A)),i=k.normalize(k.cross(o,t)),a=k.cross(i,o),s=k.multiplyScalar(i,n),g=k.multiplyScalar(a,r),I=k.add(s,g);return{eye:k.add(A,I),target:k.add(e,I)}},orbit(A,e,t,n){let r=t*Math.PI/180,o=n*Math.PI/180,i=Math.cos(o),a=Math.sin(o),s=Math.cos(r),g=Math.sin(r),I=A[0]+e*i*g,B=A[1]-e*a,u=A[2]-e*i*s;return[I,B,u]},applyOrientation(A,e,t,n){if(e===0&&t===0&&n===0)return A;let r=k.normalize(k.subtract(A.target,A.eye)),o=k.normalize(k.cross(r,A.up)),i=k.cross(o,r),a=k.distance(A.eye,A.target),s=r,g=i;if(t!==0){let u=t*Math.PI/180,E=Math.cos(u),Q=Math.sin(u);s=k.normalize(k.subtract(k.multiplyScalar(s,E),k.multiplyScalar(o,Q)))}let I=k.normalize(k.cross(s,g));if(e!==0){let u=e*Math.PI/180,E=Math.cos(u),Q=Math.sin(u);s=k.normalize(k.add(k.multiplyScalar(s,E),k.multiplyScalar(g,Q))),g=k.normalize(k.cross(I,s))}if(n!==0){let u=n*Math.PI/180,E=Math.cos(u),Q=Math.sin(u);g=k.normalize(k.add(k.multiplyScalar(g,E),k.multiplyScalar(I,Q)))}let B=k.add(A.eye,k.multiplyScalar(s,a));return{...A,target:B,up:g}},applyCameraShake(A,e,t){let{translationAmplitude:n,rotationAmplitude:r,frequency:o=2.5,octaves:i=3,seed:a=42}=t;if(n<=0&&r<=0)return A;let s=e*o,g=ce(s,a,i)*n,I=ce(s,a+101.5,i)*n,B=ce(s,a+203.7,i)*(n*.5),u=ce(s,a+307.1,i)*r,E=ce(s,a+409.3,i)*r,Q=k.normalize(k.subtract(A.target,A.eye)),C=k.normalize(k.cross(Q,A.up)),h=k.cross(C,Q),m=k.add(k.multiplyScalar(C,g),k.add(k.multiplyScalar(h,I),k.multiplyScalar(Q,B))),y=k.add(A.eye,m),D=k.add(A.target,k.add(k.multiplyScalar(C,E*10),k.multiplyScalar(h,u*10)));return{...A,eye:y,target:D}},computeCircleOfConfusion(A,e,t,n,r=32){if(e<=0||n<=0||A<=0)return 0;let o=Math.abs(A-e),i=t/n,a=o/A*i*.5;return Math.min(r,Math.max(0,a))},computeCameraFrustumPlanes(A){let e=t=>{let n=Math.hypot(t[0],t[1],t[2]);return n===0?t:[t[0]/n,t[1]/n,t[2]/n,t[3]/n]};return{left:e([A[3]+A[0],A[7]+A[4],A[11]+A[8],A[15]+A[12]]),right:e([A[3]-A[0],A[7]-A[4],A[11]-A[8],A[15]-A[12]]),bottom:e([A[3]+A[1],A[7]+A[5],A[11]+A[9],A[15]+A[13]]),top:e([A[3]-A[1],A[7]-A[5],A[11]-A[9],A[15]-A[13]]),near:e([A[2],A[6],A[10],A[14]]),far:e([A[3]-A[2],A[7]-A[6],A[11]-A[10],A[15]-A[14]])}},isBoxInFrustum(A,e,t){let n=[t.left,t.right,t.bottom,t.top,t.near,t.far];for(let r of n){let o=r[0]>0?e[0]:A[0],i=r[1]>0?e[1]:A[1],a=r[2]>0?e[2]:A[2];if(r[0]*o+r[1]*i+r[2]*a+r[3]<0)return!1}return!0}};$();var pn=8,dt=544;function Dn(A){if(!A)return[1,1,1];if(Array.isArray(A)){let r=A[0]??1,o=A[1]??1,i=A[2]??1;return[r>1?r/255:r,o>1?o/255:o,i>1?i/255:i]}if(typeof A=="object"&&A!==null){let r=A.r??1,o=A.g??1,i=A.b??1;return[r>1?r/255:r,o>1?o/255:o,i>1?i/255:i]}if(typeof A!="string")return[1,1,1];let e=A.trim().toLowerCase();if(e.startsWith("#")){let r=e.slice(1);if(r.length===3){let o=Number.parseInt(r[0]+r[0],16)/255,i=Number.parseInt(r[1]+r[1],16)/255,a=Number.parseInt(r[2]+r[2],16)/255;return[o,i,a]}if(r.length>=6){let o=Number.parseInt(r.slice(0,2),16)/255,i=Number.parseInt(r.slice(2,4),16)/255,a=Number.parseInt(r.slice(4,6),16)/255;return[o,i,a]}}let t=e.match(/rgba?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/);if(t){let r=Number.parseFloat(t[1])/255,o=Number.parseFloat(t[2])/255,i=Number.parseFloat(t[3])/255;return[Math.max(0,Math.min(1,r)),Math.max(0,Math.min(1,o)),Math.max(0,Math.min(1,i))]}let n=e.match(/hsla?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?/);if(n){let r=Number.parseFloat(n[1])/360,o=Number.parseFloat(n[2])/100,i=Number.parseFloat(n[3])/100;return Tr(r,o,i)}return[1,1,1]}function Tr(A,e,t){if(e===0)return[t,t,t];let n=(i,a,s)=>{let g=s;return g<0&&(g+=1),g>1&&(g-=1),g<1/6?i+(a-i)*6*g:g<1/2?a:g<2/3?i+(a-i)*(2/3-g)*6:i},r=t<.5?t*(1+e):t+e-t*e,o=2*t-r;return[n(o,r,A+1/3),n(o,r,A),n(o,r,A-1/3)]}var re={computeNormalMatrix(A){let e=cA.invert(A);return e?[e[0],e[4],e[8],0,e[1],e[5],e[9],0,e[2],e[6],e[10],0,0,0,0,1]:cA.identity()},processLight(A){let e=Dn(A.color),t=A.intensity??1,n=A.position?A.position[0]:A.x??0,r=A.position?A.position[1]:A.y??0,o=A.position?A.position[2]:A.z??0,i=A.lightType??A.type??"directional",a=1;i==="ambient"?a=0:i==="directional"?a=1:i==="point"?a=2:i==="spot"&&(a=3);let s=[0,0,-1];if(A.direction)s=k.normalize(A.direction);else if(A.target||A.targetX!==void 0||A.targetY!==void 0||A.targetZ!==void 0){let m=A.target?A.target[0]:A.targetX??n,y=A.target?A.target[1]:A.targetY??r,D=A.target?A.target[2]:A.targetZ??o,U=[m,y,D],M=k.subtract(U,[n,r,o]);k.length(M)>1e-4&&(s=k.normalize(M))}let g=Math.max(1,A.radius??1e3),I=A.decay??2,B=Math.max(.1,Math.min(180,A.angle??45)),u=Math.max(0,Math.min(1,A.penumbra??.2)),E=B*Math.PI/180,Q=E*(1-u),C=Math.cos(E),h=Math.cos(Q);return{posType:[n,r,o,a],dirRadius:[s[0],s[1],s[2],g],colorIntensity:[e[0],e[1],e[2],t],spotParams:[C,h,I,0]}},packLightsUniforms(A){let e=new Float32Array(dt/4);if(!A||A.length===0)return e[4]=0,e[5]=0,e;let t=0,n=0,r=0,o=[];for(let a of A)if((a.lightType??a.type)==="ambient"){let g=Dn(a.color),I=a.intensity??1;t+=g[0]*I,n+=g[1]*I,r+=g[2]*I}else o.length<pn&&o.push(re.processLight(a));e[0]=t,e[1]=n,e[2]=r,e[3]=1,e[4]=o.length,e[5]=1,e[6]=0,e[7]=0;let i=8;for(let a=0;a<pn;a++){if(a<o.length){let s=o[a];e[i+0]=s.posType[0],e[i+1]=s.posType[1],e[i+2]=s.posType[2],e[i+3]=s.posType[3],e[i+4]=s.dirRadius[0],e[i+5]=s.dirRadius[1],e[i+6]=s.dirRadius[2],e[i+7]=s.dirRadius[3],e[i+8]=s.colorIntensity[0],e[i+9]=s.colorIntensity[1],e[i+10]=s.colorIntensity[2],e[i+11]=s.colorIntensity[3],e[i+12]=s.spotParams[0],e[i+13]=s.spotParams[1],e[i+14]=s.spotParams[2],e[i+15]=s.spotParams[3]}else for(let s=0;s<16;s++)e[i+s]=0;i+=16}return e}};$();var ue=class A{static parse(e,t,n){let r=typeof t=="object"&&t!==null?t:n??{},o=typeof t=="string"?t:r.mtlText,i=[],a=[],s=[],g=[],I={materialName:"default",faces:[]};g.push(I);let B={};o&&Object.assign(B,A.parseMtl(o));let u=e.split(/\r?\n/);for(let R=0;R<u.length;R++){let gA=u[R]?.trim();if(!gA||gA.startsWith("#"))continue;let AA=gA.split(/\s+/),IA=AA[0]?.toLowerCase();if(IA==="mtllib"){let q=AA.slice(1).join(" ").trim();if(r.basePath&&typeof yA<"u"&&yA.existsSync)try{let w=JA.resolve(r.basePath,q);if(yA.existsSync(w)){let L=yA.readFileSync(w,"utf-8");Object.assign(B,A.parseMtl(L))}}catch{}}else if(IA==="v"){let q=Number.parseFloat(AA[1]??"0"),w=Number.parseFloat(AA[2]??"0"),L=Number.parseFloat(AA[3]??"0");i.push([q,w,L])}else if(IA==="vn"){let q=Number.parseFloat(AA[1]??"0"),w=Number.parseFloat(AA[2]??"0"),L=Number.parseFloat(AA[3]??"0");a.push([q,w,L])}else if(IA==="vt"){let q=Number.parseFloat(AA[1]??"0"),w=AA[2]!==void 0?Number.parseFloat(AA[2]):0;s.push([q,w])}else if(IA==="usemtl"){let q=AA[1]??"default";I.faces.length>0?(I={materialName:q,faces:[]},g.push(I)):I.materialName=q}else if(IA==="f"){let q=[];for(let w=1;w<AA.length;w++){let L=AA[w];if(!L)continue;let z=L.split("/"),iA=Number.parseInt(z[0]??"0",10),EA=z[1]&&z[1].length>0?Number.parseInt(z[1],10):0,CA=z[2]&&z[2].length>0?Number.parseInt(z[2],10):0;iA<0&&(iA=i.length+iA+1),EA<0&&(EA=s.length+EA+1),CA<0&&(CA=a.length+CA+1),q.push({v:iA-1,vt:EA-1,vn:CA-1})}if(q.length>=3)for(let w=1;w<q.length-1;w++){let L=q[0],z=q[w],iA=q[w+1];L&&z&&iA&&I.faces.push([L,z,iA])}}}let E=1/0,Q=1/0,C=1/0,h=-1/0,m=-1/0,y=-1/0;for(let R of i){let[gA,AA,IA]=R;gA===void 0||AA===void 0||IA===void 0||(gA<E&&(E=gA),AA<Q&&(Q=AA),IA<C&&(C=IA),gA>h&&(h=gA),AA>m&&(m=AA),IA>y&&(y=IA))}Number.isFinite(E)||(E=-1,Q=-1,C=-1,h=1,m=1,y=1);let D=(E+h)*.5,U=(Q+m)*.5,M=(C+y)*.5,b=Math.max(1e-4,h-E),x=Math.max(1e-4,m-Q),N=Math.max(1e-4,y-C),T=Math.max(b,x,N),Y=1;r.normalizeSize&&r.normalizeSize>0&&(Y=r.normalizeSize/T),typeof r.scale=="number"&&(Y*=r.scale);let O=r.center??!1,v=O?D:0,tA=O?U:0,X=O?M:0,F=[];for(let R=0;R<g.length;R++){let gA=g[R];if(!gA||gA.faces.length===0)continue;let AA=new Map,IA=[],q=[],w=[],L=[],z=!1;for(let CA of gA.faces)for(let QA of CA){let mA=`${QA.v}_${QA.vt}_${QA.vn}`,dA=AA.get(mA);if(dA===void 0){dA=IA.length/3,AA.set(mA,dA);let DA=i[QA.v]??[0,0,0],wA=((DA[0]??0)-v)*Y,UA=((DA[1]??0)-tA)*Y,SA=((DA[2]??0)-X)*Y;if(IA.push(wA,UA,SA),QA.vt>=0&&s[QA.vt]){let kA=s[QA.vt];w.push(kA[0]??0,1-(kA[1]??0))}else w.push(0,0);if(QA.vn>=0&&a[QA.vn]){z=!0;let kA=a[QA.vn];q.push(kA[0]??0,kA[1]??0,kA[2]??0)}else q.push(0,0,0)}L.push(dA)}if(!z||r.smoothNormals){let CA=new Float32Array(IA.length);for(let QA=0;QA<L.length;QA+=3){let mA=L[QA],dA=L[QA+1],DA=L[QA+2],wA=[IA[mA*3],IA[mA*3+1],IA[mA*3+2]],UA=[IA[dA*3],IA[dA*3+1],IA[dA*3+2]],SA=[IA[DA*3],IA[DA*3+1],IA[DA*3+2]],kA=k.subtract(UA,wA),ot=k.subtract(SA,wA),RA=k.cross(kA,ot);CA[mA*3]+=RA[0],CA[mA*3+1]+=RA[1],CA[mA*3+2]+=RA[2],CA[dA*3]+=RA[0],CA[dA*3+1]+=RA[1],CA[dA*3+2]+=RA[2],CA[DA*3]+=RA[0],CA[DA*3+1]+=RA[1],CA[DA*3+2]+=RA[2]}for(let QA=0;QA<IA.length/3;QA++){let mA=CA[QA*3],dA=CA[QA*3+1],DA=CA[QA*3+2],wA=Math.hypot(mA,dA,DA)||1;q[QA*3]=mA/wA,q[QA*3+1]=dA/wA,q[QA*3+2]=DA/wA}}let EA=IA.length/3>65535?new Uint32Array(L):new Uint16Array(L);F.push({id:`mesh_${R}`,name:gA.materialName,positions:new Float32Array(IA),normals:new Float32Array(q),uvs:new Float32Array(w),indices:EA,materialName:gA.materialName})}let sA=(E-v)*Y,H=(Q-tA)*Y,V=(C-X)*Y,rA=(h-v)*Y,K=(m-tA)*Y,S=(y-X)*Y,_=rA-sA,j=K-H,W=S-V,nA=(sA+rA)*.5,lA=(H+K)*.5,oA=(V+S)*.5,aA=Math.hypot(_,j,W)*.5;return{meshes:F,materials:B,animations:[],bounds:{min:[sA,H,V],max:[rA,K,S],center:[nA,lA,oA],size:[_,j,W],boundingSphereRadius:aA}}}static parseMtl(e){let t={},n=null,r=e.split(/\r?\n/);for(let o of r){let i=o.trim();if(!i||i.startsWith("#"))continue;let a=i.split(/\s+/),s=a[0]?.toLowerCase();if(s==="newmtl"){let g=a[1]??"default";n={name:g,diffuseColor:[1,1,1,1],specularColor:[1,1,1],ambientColor:[.2,.2,.2],shininess:32,opacity:1},t[g]=n}else if(n)if(s==="kd"){let g=Number.parseFloat(a[1]??"1"),I=Number.parseFloat(a[2]??"1"),B=Number.parseFloat(a[3]??"1");n.diffuseColor=[g,I,B,n.diffuseColor?.[3]??1]}else if(s==="ks"){let g=Number.parseFloat(a[1]??"1"),I=Number.parseFloat(a[2]??"1"),B=Number.parseFloat(a[3]??"1");n.specularColor=[g,I,B],n.specularIntensity=(g+I+B)/3}else if(s==="ka"){let g=Number.parseFloat(a[1]??"0.2"),I=Number.parseFloat(a[2]??"0.2"),B=Number.parseFloat(a[3]??"0.2");n.ambientColor=[g,I,B]}else if(s==="ns")n.shininess=Number.parseFloat(a[1]??"32");else if(s==="d"||s==="tr"){let g=Number.parseFloat(a[1]??"1");n.opacity=s==="d"?g:1-g,n.diffuseColor&&(n.diffuseColor[3]=n.opacity)}else s==="map_kd"?n.diffuseTexture=a.slice(1).join(" "):(s==="map_bump"||s==="bump")&&(n.normalTexture=a.slice(1).join(" "))}return t}};function Ko(A,e,t={}){return ue.parse(A,e,t)}function Yo(A){return ue.parseMtl(A)}function Ee(A,e,t={}){let n;if(typeof A!="string")n=new TextDecoder().decode(A);else{let r=A.trim();if(!(r.startsWith("v ")||r.startsWith("#")||r.includes(`
|
|
2
2
|
v `)||r.includes("\rv "))&&typeof yA<"u"&&yA.existsSync)try{let i=A.startsWith("file://")?A.slice(7):A;try{i=decodeURIComponent(i)}catch{}yA.existsSync(i)?(n=yA.readFileSync(i,"utf-8"),t={basePath:t.basePath??JA.dirname(i),...t}):n=A}catch{n=A}else n=A}return ue.parse(n,e,t)}$();var xn=In(bn(),1);var qA=class A{static FBX_KTIME=46186158e3;static parse(e,t={}){let n=typeof e=="string"?A.parseAscii(e):A.isBinary(e)?A.parseBinary(e):A.parseAscii(new TextDecoder().decode(e));return A.buildModelFromTree(n,t)}static isBinary(e){let t=e instanceof Uint8Array?e:new Uint8Array(e);if(t.length<27)return!1;let n="Kaydara FBX Binary \0\0";for(let r=0;r<n.length;r++)if(t[r]!==n.charCodeAt(r))return!1;return!0}static parseBinary(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n=new DataView(t.buffer,t.byteOffset,t.byteLength),o=n.getUint32(23,!0)>=7500,i=27,a={name:"Root",props:[],children:[]},s=()=>{if(i>=t.byteLength)return null;let g,I,B;if(o){if(i+25>t.byteLength)return null;g=Number(n.getBigUint64(i,!0)),I=Number(n.getBigUint64(i+8,!0)),B=n.getUint8(i+24),i+=25}else{if(i+13>t.byteLength)return null;g=n.getUint32(i,!0),I=n.getUint32(i+4,!0),B=n.getUint8(i+12),i+=13}if(g===0)return null;let u=new TextDecoder().decode(t.subarray(i,i+B));i+=B;let E=[];for(let C=0;C<I;C++){let h=String.fromCharCode(t[i]);switch(i+=1,h){case"Y":{E.push(n.getInt16(i,!0)),i+=2;break}case"C":case"B":{E.push(n.getUint8(i)!==0),i+=1;break}case"I":{E.push(n.getInt32(i,!0)),i+=4;break}case"F":{E.push(n.getFloat32(i,!0)),i+=4;break}case"D":{E.push(n.getFloat64(i,!0)),i+=8;break}case"L":{E.push(Number(n.getBigInt64(i,!0))),i+=8;break}case"S":{let m=n.getUint32(i,!0);i+=4;let y=new TextDecoder().decode(t.subarray(i,i+m));E.push(y),i+=m;break}case"R":{let m=n.getUint32(i,!0);i+=4;let y=t.subarray(i,i+m);E.push(y),i+=m;break}case"f":case"d":case"i":case"l":case"b":case"c":{let m=n.getUint32(i,!0),y=n.getUint32(i+4,!0),D=n.getUint32(i+8,!0);i+=12;let U;if(y===1){let b=t.subarray(i,i+D);U=(0,xn.inflateSync)(b),i+=D}else{let x=m*(h==="d"||h==="l"?8:h==="f"||h==="i"?4:1);U=t.subarray(i,i+x),i+=x}let M=new DataView(U.buffer,U.byteOffset,U.byteLength);if(h==="f"){let b=new Float32Array(m);for(let x=0;x<m;x++)b[x]=M.getFloat32(x*4,!0);E.push(b)}else if(h==="d"){let b=new Float64Array(m);for(let x=0;x<m;x++)b[x]=M.getFloat64(x*8,!0);E.push(b)}else if(h==="i"){let b=new Int32Array(m);for(let x=0;x<m;x++)b[x]=M.getInt32(x*4,!0);E.push(b)}else if(h==="l"){let b=new Float64Array(m);for(let x=0;x<m;x++)b[x]=Number(M.getBigInt64(x*8,!0));E.push(b)}else if(h==="b"){let b=new Uint8Array(m);for(let x=0;x<m;x++)b[x]=M.getUint8(x);E.push(b)}else E.push(U);break}default:break}}let Q=[];for(;i<g;){let C=s();if(C)Q.push(C);else break}return i=g,{name:u,props:E,children:Q}};for(;i<t.byteLength-(o?25:13);){let g=s();if(g)a.children.push(g);else break}return a}static parseAscii(e){let t={name:"Root",props:[],children:[]},n=[t],r=e.split(/\r?\n/);for(let o=0;o<r.length;o++){let i=r[o]?.trim();if(!i||i.startsWith(";"))continue;if(i==="}"){n.length>1&&n.pop();continue}let a=i.indexOf(":");if(a===-1)continue;let s=i.substring(0,a).trim(),g=i.substring(a+1).trim(),I=g.endsWith("{"),B=I?g.slice(0,-1).trim():g,u=[];if(B){let C=B.split(",").map(h=>h.trim());for(let h of C)h.startsWith('"')&&h.endsWith('"')?u.push(h.slice(1,-1)):Number.isNaN(Number(h))?u.push(h):u.push(Number(h))}let E={name:s,props:u,children:[]},Q=n[n.length-1];Q&&Q.children.push(E),I&&n.push(E)}return t}static buildModelFromTree(e,t={}){let n=e.children.find(N=>N.name==="Objects"),r=e.children.find(N=>N.name==="Connections"),o=new Map;if(n)for(let N of n.children){let T=N.props[0]??0,O=String(N.props[1]??"").split("::"),v=O.length>1?O[1]:O[0],tA=String(N.props[2]??N.name);o.set(T,{id:T,name:v,type:tA,node:N})}let i=[];if(r){for(let N of r.children)if(N.name==="C"||N.name==="Connect"){let T=String(N.props[0]),Y=N.props[1]??0,O=N.props[2]??0,v=T==="OP"?String(N.props[3]):void 0;i.push({childId:Y,parentId:O,propName:v})}}let a=[],s={};function g(N){if(!N)return[];if(N.props[0]instanceof Float32Array||N.props[0]instanceof Float64Array||N.props[0]instanceof Int32Array||Array.isArray(N.props[0]))return N.props[0];let T=N.children.find(Y=>Y.name==="a");return T&&T.props.length>0?T.props:Array.isArray(N.props)&&N.props.length>0&&typeof N.props[0]=="number"?N.props:[]}for(let[N,T]of o)if(T.node.name==="Geometry"&&(T.type==="Mesh"||T.node.props[2]==="Mesh"||T.type==="")){let Y=T.node,O=Y.children.find(w=>w.name==="Vertices"),v=Y.children.find(w=>w.name==="PolygonVertexIndex"),tA=Y.children.find(w=>w.name==="LayerElementNormal"),X=Y.children.find(w=>w.name==="LayerElementUV");if(!O||!v)continue;let F=g(O),sA=g(v),H=tA?.children.find(w=>w.name==="Normals"),V=g(H),rA=X?.children.find(w=>w.name==="UV"),K=X?.children.find(w=>w.name==="UVIndex"),S=g(rA),_=g(K),j=[],W=[],nA=[];for(let w=0;w<sA.length;w++){let L=sA[w];if(L<0){if(nA.push(-(L+1)),W.push(w),nA.length>=3)for(let z=1;z<nA.length-1;z++)j.push([nA[0],nA[z],nA[z+1]]);nA=[]}else nA.push(L),W.push(w)}let lA=[],oA=[],aA=[],R=[];for(let w=0;w<j.length;w++){let L=j[w];for(let z=0;z<3;z++){let iA=L[z],EA=lA.length/3,CA=F[iA*3]??0,QA=F[iA*3+1]??0,mA=F[iA*3+2]??0;if(lA.push(CA,QA,mA),V.length>0){let dA=V[iA*3]??0,DA=V[iA*3+1]??0,wA=V[iA*3+2]??0;oA.push(dA,DA,wA)}else oA.push(0,0,1);if(S.length>0){let dA=iA;_.length>0&&(dA=_[iA]??iA);let DA=S[dA*2]??0,wA=S[dA*2+1]??0;aA.push(DA,1-wA)}else aA.push(0,0);R.push(EA)}}if(V.length===0||t.smoothNormals){let w=new Float32Array(lA.length);for(let L=0;L<R.length;L+=3){let z=R[L],iA=R[L+1],EA=R[L+2],CA=[lA[z*3],lA[z*3+1],lA[z*3+2]],QA=[lA[iA*3],lA[iA*3+1],lA[iA*3+2]],mA=[lA[EA*3],lA[EA*3+1],lA[EA*3+2]],dA=k.subtract(QA,CA),DA=k.subtract(mA,CA),wA=k.cross(dA,DA);w[z*3]+=wA[0],w[z*3+1]+=wA[1],w[z*3+2]+=wA[2],w[iA*3]+=wA[0],w[iA*3+1]+=wA[1],w[iA*3+2]+=wA[2],w[EA*3]+=wA[0],w[EA*3+1]+=wA[1],w[EA*3+2]+=wA[2]}for(let L=0;L<lA.length/3;L++){let z=w[L*3],iA=w[L*3+1],EA=w[L*3+2],CA=Math.hypot(z,iA,EA)||1;oA[L*3]=z/CA,oA[L*3+1]=iA/CA,oA[L*3+2]=EA/CA}}let gA=i.find(w=>w.parentId===N&&o.get(w.childId)?.type==="Deformer"&&o.get(w.childId)?.node.props[2]==="Skin"),AA,IA;if(gA){let w=lA.length/3;AA=new Float32Array(w*4),IA=new Float32Array(w*4),i.filter(z=>z.parentId===gA.childId&&o.get(z.childId)?.type==="Deformer"&&o.get(z.childId)?.node.props[2]==="Cluster").forEach((z,iA)=>{let EA=o.get(z.childId)?.node,CA=EA?.children.find(mA=>mA.name==="Indexes"),QA=EA?.children.find(mA=>mA.name==="Weights");if(CA&&QA){let mA=g(CA),dA=g(QA);for(let DA=0;DA<mA.length;DA++){let wA=dA[DA]??0;for(let UA=0;UA<w;UA++)for(let SA=0;SA<4;SA++)if(IA[UA*4+SA]===0){AA[UA*4+SA]=iA,IA[UA*4+SA]=wA;break}}}})}let q=lA.length/3>65535;a.push({id:`fbx_mesh_${N}`,name:T.name,positions:new Float32Array(lA),normals:new Float32Array(oA),uvs:new Float32Array(aA),indices:q?new Uint32Array(R):new Uint16Array(R),jointIndices:AA,jointWeights:IA,materialName:T.name})}for(let[,N]of o)if(N.node.name==="Material"){let Y=N.node.children.find(X=>X.name==="Properties70"),O=[1,1,1,1],v=32,tA=1;if(Y){for(let X of Y.children)if(X.name==="P"){let F=String(X.props[0]);if(F==="DiffuseColor"||F==="Color"){let sA=Number(X.props[4]??1),H=Number(X.props[5]??1),V=Number(X.props[6]??1);O=[sA,H,V,1]}else F==="Shininess"||F==="ShininessExponent"?v=Number(X.props[4]??32):F==="Opacity"&&(tA=Number(X.props[4]??1),O[3]=tA)}}s[N.name]={name:N.name,diffuseColor:O,shininess:v,opacity:tA}}let I=[];for(let[N,T]of o)if(T.node.name==="AnimationStack"){let Y=T.name||"Take 001",O=[],v=i.find(X=>X.parentId===N&&o.get(X.childId)?.node.name==="AnimationLayer");if(v){let X=i.filter(sA=>sA.parentId===v.childId&&o.get(sA.childId)?.node.name==="AnimationCurveNode"),F=new Map;for(let sA of X){let H=o.get(sA.childId);if(!H)continue;let V=i.find(W=>W.childId===H.id&&o.get(W.parentId)?.node.name==="Model"),rA=V?o.get(V.parentId):void 0,K=Mn(V?.propName)??Mn(H.name);if(!K)continue;let S=`${rA?.id??H.id}|${K}`,_=F.get(S);if(!_){let W=rA?.node;_={nodeName:rA?.name??H.name,model:W,kind:K,defaults:Yr(W,H.node,K),channels:[void 0,void 0,void 0]},F.set(S,_)}i.filter(W=>W.parentId===H.id&&o.get(W.childId)?.node.name==="AnimationCurve").forEach((W,nA)=>{let lA=Kr(W.propName)??nA;if(lA>2)return;let oA=o.get(W.childId)?.node,aA=g(oA?.children.find(AA=>AA.name==="KeyTime")),R=g(oA?.children.find(AA=>AA.name==="KeyValueFloat")),gA=Math.min(aA.length,R.length);gA!==0&&(_.channels[lA]={times:Array.from(aA.slice(0,gA),AA=>Number(AA)),values:Array.from(R.slice(0,gA),AA=>Number(AA))})})}for(let sA of F.values()){let H=zr(sA);H&&O.push(H)}}let tA=1;for(let X of O)if(X.times.length>0){let F=X.times[X.times.length-1]??0;F>tA&&(tA=F)}I.push({name:Y,duration:tA,fps:30,tracks:O})}let B=1/0,u=1/0,E=1/0,Q=-1/0,C=-1/0,h=-1/0;for(let N of a)for(let T=0;T<N.positions.length;T+=3){let Y=N.positions[T],O=N.positions[T+1],v=N.positions[T+2];Y<B&&(B=Y),O<u&&(u=O),v<E&&(E=v),Y>Q&&(Q=Y),O>C&&(C=O),v>h&&(h=v)}Number.isFinite(B)||(B=-1,u=-1,E=-1,Q=1,C=1,h=1);let m=Q-B,y=C-u,D=h-E,U=(B+Q)*.5,M=(u+C)*.5,b=(E+h)*.5,x=Math.hypot(m,y,D)*.5;return{meshes:a,materials:s,animations:I,bounds:{min:[B,u,E],max:[Q,C,h],center:[U,M,b],size:[m,y,D],boundingSphereRadius:x}}}};function Mn(A){switch(A){case"Lcl Translation":case"T":return"T";case"Lcl Rotation":case"R":return"R";case"Lcl Scaling":case"S":return"S";default:return}}function Kr(A){switch(A){case"d|X":return 0;case"d|Y":return 1;case"d|Z":return 2;default:return}}function ht(A,e){let n=A?.children.find(r=>r.name==="Properties70")?.children.find(r=>r.name==="P"&&r.props[0]===e);if(n)return n.props.slice(4).map(r=>Number(r))}function Yr(A,e,t){let n=t==="S"?1:0,r=ht(A,t==="T"?"Lcl Translation":t==="R"?"Lcl Rotation":"Lcl Scaling"),o=[n,n,n];for(let i=0;i<3;i++){let a=r?.[i],s=ht(e,`d|${"XYZ"[i]}`)?.[0],g=a??s;g!==void 0&&Number.isFinite(g)&&(o[i]=g)}return o}var Or=["XYZ","XZY","YZX","YXZ","ZXY","ZYX"];function Vr(A){let e=ht(A,"RotationOrder")?.[0]??0;return Or[e]??"XYZ"}function Wr(A,e="XYZ"){let t=[0,0,0,1];for(let n of e){let r="XYZ".indexOf(n),o=(A[r]??0)*Math.PI/360,i=Math.sin(o),a=[0,0,0,Math.cos(o)];a[r]=i,t=[a[3]*t[0]+a[0]*t[3]+a[1]*t[2]-a[2]*t[1],a[3]*t[1]-a[0]*t[2]+a[1]*t[3]+a[2]*t[0],a[3]*t[2]+a[0]*t[1]-a[1]*t[0]+a[2]*t[3],a[3]*t[3]-a[0]*t[0]-a[1]*t[1]-a[2]*t[2]]}return t}function Xr(A,e){let{times:t,values:n}=A,r=t.length-1;if(e<=t[0])return n[0];if(e>=t[r])return n[r];let o=0;for(;o<r-1&&t[o+1]<=e;)o++;let i=t[o],a=t[o+1],s=a>i?(e-i)/(a-i):0;return n[o]+(n[o+1]-n[o])*s}function zr(A){let e=new Set;for(let s of A.channels)for(let g of s?.times??[])e.add(g);if(e.size===0)return;let t=[...e].sort((s,g)=>s-g),n=new Float32Array(t.length),r=A.kind==="R",o=new Float32Array(t.length*(r?4:3)),i=r?Vr(A.model):"XYZ",a;return t.forEach((s,g)=>{n[g]=s/qA.FBX_KTIME;let I=[0,1,2].map(u=>{let E=A.channels[u];return E?Xr(E,s):A.defaults[u]});if(!r){o.set(I,g*3);return}let B=Wr(I,i);if(a&&a[0]*B[0]+a[1]*B[1]+a[2]*B[2]+a[3]*B[3]<0)for(let u=0;u<4;u++)B[u]=-B[u];a=B,o.set(B,g*4)}),{nodeName:A.nodeName,times:n,translations:A.kind==="T"?o:void 0,rotations:r?o:void 0,scales:A.kind==="S"?o:void 0}}function qo(A,e={}){return qA.parse(A,e)}function Qe(A,e={}){let t=A;if(typeof A=="string"){let n=A.trim();if(!(n.includes("FBXHeaderExtension")||n.includes("Kaydara FBX"))&&typeof yA<"u"&&yA.existsSync)try{let o=A.startsWith("file://")?A.slice(7):A;try{o=decodeURIComponent(o)}catch{}if(yA.existsSync(o)){let i=yA.readFileSync(o);t=new Uint8Array(i.buffer,i.byteOffset,i.byteLength)}}catch{}}return qA.parse(t,e)}$();$();var Fn=`
|
|
3
3
|
struct AudioLatentBuffer {
|
|
4
4
|
fftBins : array<f32, 1024>,
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{a as ht}from"./chunk-CNSHAFEA.mjs";import{d as Xt}from"./chunk-6YJP57MZ.mjs";import{c as ne,d as H,e as Ct}from"./chunk-YK4XHUP4.mjs";import{d as jt}from"./chunk-HYBAPT6I.mjs";import{d as wt,e as lt}from"./chunk-BVF64D6H.mjs";lt();lt();function Bt(e,n=180,t=12,a=1,i=0){if(e<=0)return 0;let r=Math.sqrt(Math.max(1e-4,n)/Math.max(1e-4,a)),o=t/(2*Math.sqrt(Math.max(1e-4,n*a)));if(o<1){let s=r*Math.sqrt(1-o*o),l=Math.exp(-o*r*e),d=-1,u=(i-o*r*-1)/Math.max(1e-6,s),m=l*(d*Math.cos(s*e)+u*Math.sin(s*e));return Math.min(2,Math.max(-1,1+m))}else if(Math.abs(o-1)<1e-4){let s=Math.exp(-r*e);return 1+(-1+(i-r)*e)*s}else{let s=-r*(o-Math.sqrt(o*o-1)),l=-r*(o+Math.sqrt(o*o-1)),d=(i+l)/Math.max(1e-6,s-l),u=-1-d;return 1+(d*Math.exp(s*e)+u*Math.exp(l*e))}}function ae(e,n=0){if(e===0)return[1,0,0,1];let t=e*Math.PI/180,a=n*Math.PI/180,i=Math.cos(a),r=Math.sin(a),o=Math.tan(t),s=1-o*i*r,l=o*i*i,d=-o*r*r,u=1+o*r*i;return[s,l,d,u]}function ie(e,n){let t=n.anchorX,a=n.anchorY;switch(n.preset){case"center":t=.5,a=.5;break;case"baseline":t=.5,a=e.height>0?e.ascender/e.height:.8;break;case"bottom_left":t=0,a=1;break;case"bottom_center":t=.5,a=1;break;case"bottom_right":t=1,a=1;break;case"top_left":t=0,a=0;break;case"top_center":t=.5,a=0;break;case"top_right":t=1,a=0;break;default:t=.5,a=.5;break}let i=(t-.5)*e.width+n.offsetX,r=(a-.5)*e.height+n.offsetY;return{px:i,py:r}}function re(e,n,t,a=0){if(t===0||n<=1)return 0;let i=a*(n-1);return(e-i)*t}function oe(e,n){try{let t={textIndex:n.charIndex,textTotal:Math.max(1,n.totalChars),wordIndex:n.wordIndex,wordTotal:Math.max(1,n.totalWords),lineIndex:n.lineIndex,lineTotal:Math.max(1,n.totalLines),time:n.time,frame:n.frame,fps:n.fps,sin:Math.sin,cos:Math.cos,tan:Math.tan,exp:Math.exp,log:Math.log,abs:Math.abs,min:Math.min,max:Math.max,sqrt:Math.sqrt,pow:Math.pow,floor:Math.floor,ceil:Math.ceil,round:Math.round,PI:Math.PI,clamp:(s,l,d)=>Math.max(l,Math.min(d,s)),noise:s=>{let l=Math.sin(s*12.9898+n.frame*.1)*43758.5453;return(l-Math.floor(l))*2-1},signals:n.signals??{}},a=Object.keys(t),i=Object.values(t),r=new Function(...a,`return (${e});`),o=Number(r(...i));return Number.isFinite(o)?Math.max(-1,Math.min(1,o)):0}catch{return 0}}function se(e,n,t){let a=Math.max(1,n),i=a>1?e/(a-1):0,r=t.totalAngle*Math.PI/180,o=i*r,s=0,l=0,d=0,u=0,m=0,c=0,I=1;switch(t.mode){case"cylinder":{let w=t.totalAngle<360?(i-.5)*r:o;t.axis==="y"?(s=t.radius*Math.sin(w),d=t.radius*Math.cos(w)-t.radius,m=w*180/Math.PI):t.axis==="x"?(l=t.radius*Math.sin(w),d=t.radius*Math.cos(w)-t.radius,u=w*180/Math.PI):(s=t.radius*Math.sin(w),l=t.radius*Math.cos(w),c=w*180/Math.PI);let S=Math.cos(w);I=Math.max(.25,(S+1)*.5);break}case"vortex":{let S=-Math.PI/2+o,T=t.radius*(1-i*.35);s=T*Math.cos(S),l=T*Math.sin(S),d=-e*t.pitch||0;let C=-.35*t.radius/(r||1),q=C*Math.cos(S)-T*Math.sin(S),G=C*Math.sin(S)+T*Math.cos(S);c=Math.atan2(G,q)*180/Math.PI,I=Math.max(.65,1-i*.35);break}case"helix":{if(t.axis==="x"){let w=t.pitch>10?t.pitch:28;s=(e-(a-1)/2)*w,l=t.radius*Math.sin(o),d=t.radius*Math.cos(o)-t.radius,u=Math.sin(o)*22,I=.75+.25*((Math.cos(o)+1)*.5)}else{let w=(i-.5)*r;s=t.radius*Math.sin(w),l=(e-(a-1)/2)*t.pitch,d=t.radius*Math.cos(w)-t.radius,m=w*180/Math.PI;let S=Math.cos(w);I=Math.max(.65,(S+1)*.5)}break}default:{d=0;break}}let M=Math.max(100,t.perspective??1200),g=M-d,y=g>1?M/g:1;return{x:s*y,y:l*y,z:d,rotX:u,rotY:m,rotZ:c,scaleMult:Math.max(.1,y),depthOpacity:I}}function ce(e,n,t,a,i){let o=(n>0?Math.max(n,t):t)+a.repeatGap;if(o<=0)return e;let s=a.velocity*i;if(a.snap?.enabled){let l=a.snap.stopIndex??0,d=a.snap.granularity==="character"?40:120,u=l*d,m=Math.min(1,i*1.5);s=s*(1-m)+u*m}if((a.direction==="right"||a.direction==="down")&&(s=-s),a.loop){let l=(e-s)%o;return l<-t?l+o:l}return e-s}function le(e,n,t,a,i,r){let o=Math.max(1,n),s=o>1?e/(o-1):.5,l=Math.max(20,t.minFreqHz),d=Math.max(l+100,t.maxFreqHz),u=l*(d/l)**s,m=0,c=Xt.getChannelSamples(t.signalChannel,"primary");if(c&&c.length>0){let M=r>0?r:24,g=Math.max(0,Math.min(c.length-1,Math.round(i/M*24)));m=Number(c[g])||0}else if(a){let M=a[t.signalChannel];if(typeof M=="number")m=M;else if(typeof M=="function")m=Number(M(i,r,u))||0;else if(typeof M=="object"&&M!==null){let g=M;if(typeof g.get=="function")m=Number(g.get({frame:i,fps:r,freq:u}))||0;else if(Array.isArray(g.samples)||ArrayBuffer.isView(g.samples)){let y=g.samples,w=Math.floor(s*(y.length-1));m=Number(y[w])||0}}}let I=Math.max(0,Math.min(1,m));return t.minScale+I*(t.maxScale-t.minScale)}lt();function ue(e,n,t,a,i,r=0,o=0){let s=n+a,l=t+a;if(l<=s)return 0;let d=(e-s)/(l-s),u=0;switch(i){case"square":u=d>=0&&d<=1?1:0;break;case"ramp_up":u=Math.max(0,Math.min(1,d));break;case"ramp_down":u=1-Math.max(0,Math.min(1,d));break;case"triangle":{d<0||d>1?u=0:d<.5?u=d*2:u=(1-d)*2;break}case"round":{d<0||d>1?u=0:u=.5-.5*Math.cos(d*2*Math.PI);break}case"smooth":{d<=0?u=0:d>=1?u=1:u=d*d*(3-2*d);break}}if(u>0&&u<1){if(r!==0&&u>.5){let m=(u-.5)*2,c=r>0?1+r*3:1/(1-r*3);u=.5+.5*m**c}if(o!==0&&u<=.5){let m=u*2,c=o>0?1+o*3:1/(1-o*3);u=.5*m**c}}return Math.max(0,Math.min(1,u))}function de(e,n,t,a){let i=(n*(1-a)+a)*12.9898+t+e*78.233,r=Math.sin(i)*43758.5453;return(r-Math.floor(r))*2-1}function he(e,n){let t=n,a=()=>(t=(t*9301+49297)%233280,t/233280),i=Array.from({length:e},(r,o)=>o);for(let r=i.length-1;r>0;r--){let o=Math.floor(a()*(r+1)),s=i[r];i[r]=i[o],i[o]=s}return i}function me(e,n,t){switch(t){case"add":return Math.max(0,Math.min(1,e+n));case"subtract":return Math.max(0,Math.min(1,e-n));case"intersect":return e*n;case"min":return Math.min(e,n);case"max":return Math.max(e,n);case"difference":return Math.abs(e-n)}}lt();var fe={ascii:"!@#$%^&*()_+{}[]:;<>,.?",alphanumeric:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",matrix:"010101<>[]{}+=*~#%&!?/\\:;|X0123456789",binary:"01",hex:"0123456789ABCDEF"};function Ie(e,n){return e==="custom"&&n&&n.length>0?n:fe[e]??fe.alphanumeric}function ge(e,n,t,a,i={mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7},r={enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25},o=2,s="character",l){if(l===void 0&&n<t)return{visibleChars:0,currentDisplayString:"",isCursorVisible:!1};let d=l!==void 0?Math.max(0,Math.min(1,l)):Math.min(1,(n-t)/Math.max(1,a)),u=l!==void 0?d*a:n-t,m=e.length,c=Math.floor(d*m);if(s==="word"){let g=e.split(/(\s+)/),y=[];g.forEach((S,T)=>{S.trim().length>0&&y.push(T)});let w=Math.min(y.length,Math.floor(d*(y.length+1)));if(w<=0)c=0;else{let S=y[Math.min(y.length-1,w-1)];c=g.slice(0,S+1).join("").length}}else if(s==="line"){let g=e.split(`
|
|
2
|
+
`),y=Math.min(g.length,Math.floor(d*(g.length+1)));c=g.slice(0,y).join(`
|
|
3
|
+
`).length}else if(i.mode==="human"&&d<1){let g=0,y=0,w=a/Math.max(1,m);for(let S=0;S<m;S++){let T=e[S],C=1,q=i.commaPauseMultiplier??3,G=i.sentencePauseMultiplier??5.5,Q=i.paragraphPauseMultiplier??7,D=i.jitter??.35;T===","||T===";"?C=q:T==="."||T==="!"||T==="?"?C=G:T===`
|
|
4
|
+
`&&(C=Q);let nt=1+Math.sin(S*17.3+42)*.5*D,at=w*C*nt;if(y+=at,y<=u)g=S+1;else break}c=Math.min(m,g)}let I=e.slice(0,c);if(r.enabled&&c<m&&c>0){let g=Ie(r.charset,r.customCharset),y=Math.min(c,Math.max(1,r.scrambleFramesPerChar>4?3:2)),w="";for(let S=0;S<y;S++){let T=Math.floor(Math.abs(Math.sin(n*7+S*13))*g.length)%g.length;w+=g[T]}I=I.slice(0,I.length-y)+w}let M=!0;if(o>0){let g=Math.max(1,Math.round(30/(2*o)));M=Math.floor(u/g)%2===0}return{visibleChars:c,currentDisplayString:I,isCursorVisible:M}}function Pe(e,n,t,a,i=0,r=0){let o=Xt.getChannelSamples(n,"primary");if(o&&o.length>0){let l=a>0?a:24,d=t/l,u=i!==0?r*i/(2*Math.PI):0,m=Math.max(0,d+u),c=Math.max(0,Math.min(o.length-1,Math.round(m*l)));return Number(o[c])||0}if(!e)return 0;let s=e[n];if(s==null)return 0;if(typeof s=="number")return s;if(typeof s=="function")return Number(s(t,a))||0;if(typeof s=="object"){let l=s;if(typeof l.get=="function"){let d=a>0?t/a:0,u=i!==0?r*i/(2*Math.PI):0;return Number(l.get({frame:t,fps:a,time:d+u}))||0}if(Array.isArray(l.samples)||ArrayBuffer.isView(l.samples)){let d=l.samples,u=Math.max(0,Math.min(d.length-1,Math.round(t)));return Number(d[u])||0}}return 0}function be(e){return e<.5?2*e*e:1-(-2*e+2)**2/2}function ke(e){let n=0;for(let t=0;t<e.length;t++)n=e.charCodeAt(t)+((n<<5)-n);return()=>{let t=Math.sin(n++)*1e4;return t-Math.floor(t)}}function Ae(e,n){let t=ke(n),a=Array.from({length:e},(i,r)=>r);for(let i=a.length-1;i>0;i--){let r=Math.floor(t()*(i+1)),o=a[i];a[i]=a[r],a[r]=o}return a}function ve(e,n,t){let a=`${n}-${t}`,i=H.emojiTextureCache.get(a);if(i)return i;let r=4,o=Math.max(16,Math.ceil(t*1.5*r)),s=Math.ceil(o/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),i=e.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),H.emojiTextureCache.set(a,i),i;let d=new OffscreenCanvas(s,s),u=d.getContext("2d");return u&&(u.font=`${t*r}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,u.textBaseline="middle",u.textAlign="center",u.fillText(n,s/2,s/2)),i=e.createTexture({label:`Emoji-${n}`,size:[s,s],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),e.queue.copyExternalImageToTexture({source:d},{texture:i,premultipliedAlpha:!0},[s,s]),H.emojiTextureCache.set(a,i),i}function Yt(e,n,t,a,i,r,o){if(!o)return{p_in:1,p_out:1};let s=1;if(t>0){let d=t*.5,u=r>1?t*.5/(r-1):0,m=i*u,c=m+d;e<m?s=0:e>c?s=1:s=(e-m)/(c-m)}let l=1;if(a>0){let d=n-a;if(e>d){let u=a*.5,m=r>1?a*.5/(r-1):0,c=d+i*m,I=c+u;e<c?l=1:e>I?l=0:l=1-(e-c)/(I-c)}}return{p_in:s,p_out:l}}function _t(e,n,t,a,i,r,o,s,l,d,u,m,c){let I=t?be(e):e,M=t?be(n):n,g=I*M;if(I<=0&&a!=="blur"||M<=0&&i!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let y=m;if(a==="fade"||a==="slideUp"||a==="blur"?y*=I:a==="appear"&&I<.5&&(y=0),i==="fade"||i==="slideUp"||i==="blur"?y*=M:i==="appear"&&M<.5&&(y=0),y<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let w=0,S=0,T=0,C=1;a==="slideUp"&&o<l&&(S+=(1-I)*30),i==="slideUp"&&o>s-d&&(S-=(1-M)*30);let q=c?1:Math.PI/180;r==="stack"?(C=.8+.2*g,T=(1-g)*15*q):r==="wave"?S+=10*Math.sin(o*.005-u*.5):r==="wiggle"?(w+=5*Math.sin(o*.008+u*1.7),S+=5*Math.cos(o*.006+u*1.3),T+=4*Math.sin(o*.005+u*2.1)*q):r==="shuffle"&&(w+=3*Math.sin(o*.015+u*3.1),S+=3*Math.cos(o*.012+u*2.3),T+=8*Math.sin(o*.02+u*1.1)*q);let G=0;return a==="blur"&&(G=Math.max(G,(1-I)*20)),i==="blur"&&(G=Math.max(G,(1-M)*20)),{opacity:y,transX:w,transY:S,rot:T,scale:C,blurAmount:G,visible:!0}}var Re={linear:e=>e,none:e=>e,smoothstep:e=>e,"power1.out":e=>1-(1-e)**2,"quad.out":e=>1-(1-e)**2,"power1.in":e=>e**2,"quad.in":e=>e**2,"power1.inout":e=>e<.5?2*e*e:1-(-2*e+2)**2/2,"quad.inout":e=>e<.5?2*e*e:1-(-2*e+2)**2/2,"power2.out":e=>1-(1-e)**3,"cubic.out":e=>1-(1-e)**3,"power2.in":e=>e**3,"cubic.in":e=>e**3,"power2.inout":e=>e<.5?4*e**3:1-(-2*e+2)**3/2,"cubic.inout":e=>e<.5?4*e**3:1-(-2*e+2)**3/2,"power3.out":e=>1-(1-e)**4,"quart.out":e=>1-(1-e)**4,"power3.in":e=>e**4,"quart.in":e=>e**4,"power3.inout":e=>e<.5?8*e**4:1-(-2*e+2)**4/2,"quart.inout":e=>e<.5?8*e**4:1-(-2*e+2)**4/2,"power4.out":e=>1-(1-e)**5,"quint.out":e=>1-(1-e)**5,"power4.in":e=>e**5,"quint.in":e=>e**5,"sine.out":e=>Math.sin(e*Math.PI/2),"sine.in":e=>1-Math.cos(e*Math.PI/2),"sine.inout":e=>-(Math.cos(Math.PI*e)-1)/2,"expo.out":e=>e===1?1:1-2**(-10*e),"back.out":e=>1+2.70158*(e-1)**3+1.70158*(e-1)**2};function Te(e,n){let t=Math.max(0,Math.min(1,n));if(!e)return t;let a=Re[e.toLowerCase().trim()];return a?a(t):t}function Ee(e,n,t){if(t<=0)return 0;let a=t>1?n/(t-1):.5,i=e.offset??0,r=(e.rangeStart??0)+i,o=(e.rangeEnd??1)+i,s=0;o<=r?s=a>=r?1:0:s=Math.max(0,Math.min(1,(a-r)/(o-r)));let l=s*s*(3-2*s);return Te(e.easing??"power2.out",l)}function Me(e,n,t,a,i,r){let o=Math.max(1,t.charsCount??1),s=Math.max(1,t.wordsCount??1),l=Math.max(1,t.linesCount??1),d=e.selectors??[];if(d.length===0)return 1;let u=0;for(let m=0;m<d.length;m++){let c=d[m],I=0;if(c.type==="range"){let M=o,g=n.charIndex??0;c.basedOn==="words"?(M=s,g=n.wordIndex??0):c.basedOn==="lines"&&(M=l,g=n.lineIndex??0),c.randomizeOrder&&(g=he(M,c.randomSeed??12345)[g%M]??g);let y=c.units==="index"?g:M>1?g/(M-1):.5,w=c.start??e.rangeStart??0,S=c.end??e.rangeEnd??(c.units==="index"?M:1),T=c.offset??e.offset??0;I=ue(y,w,S,T,c.shape??"smooth",c.easeHigh??0,c.easeLow??0)*(c.amount??1)}else if(c.type==="wiggly"){let M=r>0?i/r:0,g=(c.temporalPhaseDeg??0)*Math.PI/180,y=(c.spatialPhaseDeg??0)*Math.PI/180,w=M*(c.wigglesPerSecond??2)*2*Math.PI+g+y,S=de(c.randomSeed??42,n.charIndex??0,w,c.correlation??.5),T=c.minAmount??-1,C=c.maxAmount??1;I=T+(S*.5+.5)*(C-T)}else if(c.type==="signal")I=Pe(a,c.signalId,i,r,c.phaseSpread??0,n.charIndex??0)*(c.multiplier??1)+(c.offset??0);else if(c.type==="expression"){let M=c,g=r>0?i/r:0,y={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:o,totalWords:s,totalLines:l,frame:i,fps:r,time:g,signals:a};I=oe(M.expression,y)*(M.amount??1)}m===0?u=I:u=me(u,I,c.mode??"add")}return u}function xe(e,n,t,a,i=!1,r=0,o=24,s){if(!e||e.length===0)return a;let{transX:l,transY:d,rot:u,scale:m,scaleX:c,scaleY:I,opacity:M,blurAmount:g}=a,y=a.transZ??0,w=a.color,S=a.chromaticShift??0,T=a.dissolveProgress??0,C=a.vfxParam??0,q=a.skewM01??0,G=a.skewM10??0,Q=a.anchorConfig,D=a.fillOpacity??1,nt=a.strokeWidth,at=a.strokeColor,$=a.longShadow,gt=a.lineSpacing,z=a.lineAnchor,L=i?1:Math.PI/180,tt=Math.max(1,t.charsCount??1),it=Math.max(1,t.wordsCount??1),bt=Math.max(1,t.linesCount??1);for(let ut of e)if("selectors"in ut&&Array.isArray(ut.selectors)){let J=ut,f=J.props??{},et=Me(J,n,{charsCount:tt,wordsCount:it,linesCount:bt},s,r,o),x=et,X=1,rt=1;if(f.spring){let P=(n.charIndex??0)*.035,N=Math.max(0,(o>0?r/o:0)-P);rt=Bt(N,f.spring.stiffness,f.spring.damping,f.spring.mass,f.spring.initialVelocity),X=1-rt,x=et*X}if(x!==0||et!==0){if(f.x!==void 0&&(l+=f.x*x),f.y!==void 0&&(d+=f.y*x),f.scale!==void 0&&(m*=1+(f.scale-1)*x),f.scaleX!==void 0&&(c*=1+(f.scaleX-1)*x),f.scaleY!==void 0&&(I*=1+(f.scaleY-1)*x),f.rotation!==void 0&&(u+=f.rotation*L*x),f.rotationX!==void 0){let P=f.rotationX*x*Math.PI/180;I*=Math.max(.08,Math.abs(Math.cos(P)))}if(f.rotationY!==void 0){let P=f.rotationY*x*Math.PI/180;c*=Math.max(.08,Math.abs(Math.cos(P)))}if(f.rotationZ!==void 0&&(u+=f.rotationZ*L*x),f.translateZ!==void 0&&(y+=f.translateZ*x),f.skew!==void 0){let[,P,N]=ae(f.skew*x,f.skewAxis??0);q+=P,G+=N}if(f.formation!==void 0){let P=se(n.charIndex??0,tt,f.formation),N=t.layoutCenter?.x??0,Z=t.layoutCenter?.y??0,xt=n.x??0,Ft=n.y??0,pt=N+P.x,Mt=Z+P.y;if(l+=(pt-xt)*x,d+=(Mt-Ft)*x,y+=P.z*x,P.rotX){let yt=P.rotX*x*Math.PI/180;I*=Math.max(.5,Math.abs(Math.cos(yt)))}if(P.rotY){let yt=P.rotY*x*Math.PI/180;c*=Math.max(.5,Math.abs(Math.cos(yt)))}P.rotZ&&(u+=P.rotZ*Math.PI/180*x),P.depthOpacity!==void 0&&(M*=1+(P.depthOpacity-1)*x)}if(f.anchor!==void 0&&(Q=f.anchor),f.opacity!==void 0&&(M*=1+(f.opacity-1)*x),f.blur!==void 0&&(g=Math.max(g,f.blur*x)),f.chromaticGlitch!==void 0){let P=(f.chromaticGlitch.redShiftX??0)*Math.max(0,x),N=f.chromaticGlitch.sliceProbability??.35,Z=Math.sin(r*17.13+(n.charIndex??0)*43.17),xt=Math.abs(Z-Math.floor(Z));xt<N&&(P+=(f.chromaticGlitch.sliceAmplitude??12)*(xt*2-1)),S+=P}if(f.particleDissolve!==void 0&&(T=Math.max(T,(f.particleDissolve.progress??0)*(f.spring?rt:Math.max(0,x)))),f.longShadow!==void 0&&($=f.longShadow),f.audioSpectrum!==void 0){let P=le(n.charIndex??0,tt,f.audioSpectrum,s,r,o);f.audioSpectrum.scaleAxis==="scaleY"?I*=P:f.audioSpectrum.scaleAxis==="scaleX"?c*=P:m*=P}if(f.stroke!==void 0&&(f.stroke.fillOpacity!==void 0&&(D*=1-x+f.stroke.fillOpacity*x),f.stroke.strokeWidth!==void 0&&(nt=(f.stroke.strokeWidth??0)*x),f.stroke.strokeColor&&(at=f.stroke.strokeColor)),f.lineSpacing!==void 0&&(gt=f.lineSpacing*(f.spring?rt:x),z=f.lineAnchor??0),f.fillColor){let P=ht(f.fillColor),N=w??{r:1,g:1,b:1,a:1},Z=et;w={r:N.r*(1-Z)+P.r*Z,g:N.g*(1-Z)+P.g*Z,b:N.b*(1-Z)+P.b*Z,a:N.a*(1-Z)+P.a*Z}}}}else{let J=ut,f=n.charIndex??n.unitIndex??0,et=Math.max(1,t.charsCount??1);J.unit==="word"?(f=n.wordIndex??0,et=Math.max(1,t.wordsCount??1)):J.unit==="line"&&(f=n.lineIndex??0,et=Math.max(1,t.linesCount??1));let x=Ee(J,f,et),X=J.transform;if(!X||x<=0)continue;X.x!==void 0&&(l+=X.x*x),X.y!==void 0&&(d+=X.y*x),X.rotation!==void 0&&(u+=X.rotation*L*x),X.scale!==void 0&&(m*=1+(X.scale-1)*x),X.scaleX!==void 0&&(c*=1+(X.scaleX-1)*x);let rt=1+((X.scaleY??1)-1)*x;if(X.rotationX){let P=X.rotationX*x*Math.PI/180;rt*=Math.cos(P)}if(I*=rt,X.opacity!==void 0&&(M*=1+(X.opacity-1)*x),X.blur!==void 0&&(g=Math.max(g,X.blur*x)),X.color){let P=ht(X.color),N=w??{r:1,g:1,b:1,a:1};w={r:N.r*(1-x)+P.r*x,g:N.g*(1-x)+P.g*x,b:N.b*(1-x)+P.b*x,a:N.a*(1-x)+P.a*x}}}return{transX:l,transY:d,transZ:y,rot:u,scale:m,scaleX:c,scaleY:I,opacity:Math.max(0,Math.min(1,M)),blurAmount:g,color:w,chromaticShift:S,dissolveProgress:T,vfxParam:C,skewM01:q,skewM10:G,anchorConfig:Q,fillOpacity:Math.max(0,Math.min(1,D)),strokeWidth:nt,strokeColor:at,longShadow:$,lineSpacing:gt,lineAnchor:z}}function ye(e,n,t){let a=t.fontFamily??"Inter";if(H.isFailed(a)&&(a="Inter"),H.isFailed(a))return;let i=t.fontSize??48,r=H.getFont(a,t.fontWeight,e.device,void 0,i,t.variableAxes),o=t.stroke&&t.strokeWidth&&t.strokeWidth>0,s=null;if(r&&o&&e.device){let h=t.strokeAlign==="outside"?2:1,A=(t.strokeWidth??0)*h*(r.unitsPerEm/i);s=H.getFont(a,t.fontWeight,e.device,A,i,t.variableAxes)??null}if(!r?.curvesTex||o&&!s?.curvesTex){let h=jt(a);H.preloadSlugFont(e.device,a,h,void 0,t.renderId).catch(b=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${a}:`,b)});return}let l=t.letterSpacing??0,d=t.lineHeight!==void 0&&t.lineHeight<10?t.lineHeight*i:t.lineHeight??i*1.2,u=t.align??"left",m=t.isCaption?0:t.textBackgroundColor?t.padding??0:0,c=t.text,I;if(t.typewriter){let h=t.fps??24,b=t.durationMs!==void 0?Math.round(t.durationMs/1e3*h):60;I=ge(t.text,t.frame??0,0,b,t.typewriter.cadence,t.typewriter.scramble,t.typewriter.cursor?.blinkFrequency??2,t.typewriter.granularity??"character",t.textProgress),c=I.currentDisplayString}let M=t.pathOptions?{...t.pathOptions,firstMargin:t.firstMargin!==void 0?t.firstMargin:t.pathOptions.firstMargin,lastMargin:t.lastMargin!==void 0?t.lastMargin:t.pathOptions.lastMargin,baselineShift:t.baselineShift!==void 0?t.baselineShift:t.pathOptions.baselineShift}:void 0,g,y;t.width!=null?(g=Math.max(0,t.width-m*2),y=Ct.measure(c,r,i,l,d,g,t.spans)):(y=Ct.measure(c,r,i,l,d,void 0,t.spans),g=y.width);let w=t.isCaption?t.dstRect.width:g,S=t.animation?.applyBy??"word",C=u==="left"&&(w===void 0||w===g)&&!M&&S==="word"&&!!y?.layout&&y.layout?y.layout:Ct.layout(c,r,i,l,d,g,u,S,w,M,t.spans),q=t.verticalAlign??"top",G=t.height!=null&&!M&&!t.isCaption?t.height-(y.height+m*2):0,Q={...t.dstRect,y:t.dstRect.y+(q==="middle"?G/2:q==="bottom"?G:0)},D=t.animation,nt=t.fontWeight==="bold"||typeof t.fontWeight=="number"&&t.fontWeight>=600||typeof t.fontWeight=="string"&&parseInt(t.fontWeight,10)>=600,at="hasTrueWeight"in r&&!!r.hasTrueWeight,$=r;if(nt&&!at&&e.device){let h=ne(t.fontWeight),b=Math.max(0,(h-400)/500)*.055*i;if(b>0){let A=b*(r.unitsPerEm/i),v=H.getFont(a,400,e.device,A,i,t.variableAxes);v?.curvesTex&&($=v)}}let gt=C.glyphs.length,z=t.elapsedMs!==void 0?t.elapsedMs:t.frame!==void 0&&t.fps!==void 0?t.frame/t.fps*1e3:0,L=t.durationMs!==void 0?t.durationMs:3e3,tt=t.isCaption?D?.in==="none"||!D?.in?0:L:D?.entranceMs?D.entranceMs:D?.in==="none"||!D?.in?0:L,it=t.isCaption?0:D?.exitMs?D.exitMs:D?.out==="none"||!D?.out?0:L,bt=D?.in||"none",ut=D?.out||"none",J=D?.kinetic||"none",f=D?.smoothing!==!1,et=0;for(let h of C.glyphs)!h.isSpace&&h.unitIndex>et&&(et=h.unitIndex);let x=et+1,X=J==="shuffle"||bt==="shuffle"?Ae(x,t.text):Array.from({length:x},(h,b)=>b);if(t.textBackgroundColor){let h=t.strokeRadius??t.borderRadius??8,b=0,A=t.opacity??1;if(t.isVideoMode===!1)b=A;else{for(let v of C.glyphs){if(v.isSpace)continue;let k=v.unitIndex,F=X[k]??k,{p_in:W,p_out:p}=Yt(z,L,tt,it,F,x,!0),E=_t(W,p,f,bt,ut,J,z,L,tt,it,F,A,!1);E.visible&&E.opacity>b&&(b=E.opacity)}for(let v of C.emojis){let k=t.animation?.applyBy==="line"?0:Math.floor(v.x/(i+l)),F=X[k%x]??0,{p_in:W,p_out:p}=Yt(z,L,tt,it,F,x,!0),E=_t(W,p,f,bt,ut,J,z,L,tt,it,F,A,!0);E.visible&&E.opacity>b&&(b=E.opacity)}}if(b>.001){let v=t.width!=null?t.width:y.width+m*2,k=t.height!=null?t.height:y.height+m*2;e.renderer.drawRRect(n,{rect:{x:t.dstRect.x,y:t.dstRect.y,width:v,height:k},rx:h,ry:h},t.textBackgroundColor,{opacity:b})}}if(C.marks&&C.marks.length>0)for(let h of C.marks){let b=h.borderRadius??4;e.renderer.drawRRect(n,{rect:{x:t.dstRect.x+m+h.x,y:Q.y+m+h.y,width:h.width,height:h.height},rx:b,ry:b},h.background,{opacity:t.opacity??1})}let rt=ht(t.color??"white"),P=ht(t.highlightColor??"yellow"),N=new Float32Array(C.glyphs.length),Z=0,xt=0;if(C.glyphs.length>0){let h=C.glyphs.filter(b=>!b.isSpace);h.length>0&&(Z=(h[0].x+h[h.length-1].x)/2,xt=(h[0].y+h[h.length-1].y)/2)}let Ft={charsCount:C.charsCount,wordsCount:C.wordsCount,linesCount:C.linesCount,layoutCenter:{x:Z,y:xt}};if(t.animators&&t.animators.length>0){for(let h of t.animators)if("selectors"in h&&Array.isArray(h.selectors)){let b=h;if(b.props?.tracking!==void 0&&b.props.tracking!==0){let A=b.props.tracking,v=new Map;for(let k=0;k<C.glyphs.length;k++){let W=C.glyphs[k].lineIndex??0,p=v.get(W);p||(p=[],v.set(W,p)),p.push(k)}for(let k of v.values()){let F=[];for(let E of k){let O=C.glyphs[E],R=Me(b,O,Ft,t.signals,t.frame??0,t.fps??24);F.push(R)}let W=0;for(let E=0;E<k.length-1;E++)W+=A*F[E];let p=0;for(let E=0;E<k.length;E++){let O=k[E],R=p;u==="center"?R-=W*.5:(u==="right"||u==="end")&&(R-=W),N[O]+=R,E<k.length-1&&(p+=A*F[E])}}}}}let pt=new Float32Array(Math.max(1024,gt*24)),Mt=(h,b,A=0,v=0,k,F)=>{let W=gt*24;pt.length<W&&(pt=new Float32Array(W));let p=pt,E=0;for(let O=0;O<C.glyphs.length;O++){let R=C.glyphs[O];if(R.isSpace||F&&!F(R))continue;let _=h.codePoints.get(R.cp.codePoint)||R.cp;if(!_||_.width===0||_.height===0)continue;let V=R.unitIndex,mt=X[V]??V,ot=t.opacity??1,dt=0,K=0,st=0,B=1,St=k!==void 0?k:0;if(t.isVideoMode!==!1){let{p_in:j,p_out:Y}=Yt(z,L,tt,it,mt,x,!0),U=_t(j,Y,f,bt,ut,J,z,L,tt,it,mt,t.opacity??1,!1);if(!U.visible)continue;ot=U.opacity,dt=U.transX,K=U.transY,st=U.rot,B=U.scale,k===void 0&&(St=U.blurAmount)}let It=1,Dt=1,Kt,Nt=0,Qt=0,Jt=0,te=0,Gt=0,Ut=0,Ht,ee=1;if(t.animators&&t.animators.length>0){let j=xe(t.animators,R,Ft,{transX:dt,transY:K,rot:st,scale:B,scaleX:It,scaleY:Dt,opacity:ot,blurAmount:St,color:rt},!1,t.frame??0,t.fps??24,t.signals);dt=j.transX,K=j.transY,st=j.rot,B=j.scale,It=j.scaleX,Dt=j.scaleY,ot=j.opacity,k===void 0&&(St=j.blurAmount),j.color&&(Kt=j.color),j.lineSpacing!==void 0&&(K+=re(R.lineIndex,C.linesCount,j.lineSpacing,j.lineAnchor??0)),Nt=j.transZ??0,Qt=j.chromaticShift??0,Jt=j.dissolveProgress??0,te=j.vfxParam??0,Gt=j.skewM01??0,Ut=j.skewM10??0,Ht=j.anchorConfig,ee=j.fillOpacity??1}dt+=N[O];let qt=R.x;if(t.marquee){let j=(t.frame??0)/(t.fps??24),Y=C.glyphs.length>0?C.glyphs[C.glyphs.length-1].x+i:t.dstRect.width;qt=ce(R.x,t.dstRect.width,Y,t.marquee,j)}let Ce=t.highlightWordIndex!==void 0&&R.wordIndex===t.highlightWordIndex,pe=R.fill?ht(R.fill):void 0,Wt=Kt??b??(Ce?P:pe??rt);(j=>{let Y=E*24,U=R.fontScale??i/h.unitsPerEm,Pt=_.width*U/2*It,kt=_.height*U/2*Dt;if(Nt!==0){let ct=Math.max(100,1200-Nt),ft=ct>1?1200/ct:1;Pt*=ft,kt*=ft}let At=st+(R.pathTangentAngleRad??0),vt,Rt;if(R.pathTangentAngleRad!==void 0){let Tt=_.bearingX*U+Pt,ct=-_.bearingY*U+kt,ft=Math.cos(At),Et=Math.sin(At),Lt=Tt*ft-ct*Et,Vt=Tt*Et+ct*ft;vt=qt+Lt+t.dstRect.x+m+A+j,Rt=R.y+Vt+Q.y+m+v}else vt=qt+_.bearingX*U+Pt+t.dstRect.x+m+A+j,Rt=R.y-_.bearingY*U+kt+Q.y+m+v;if(Ht){let Tt={width:_.width*U,height:_.height*U,ascender:(h.ascender??800)*U,descender:(h.descender??-200)*U},ct=ie(Tt,Ht),ft=Math.cos(At),Et=Math.sin(At),Lt=ct.px*(1-ft*B)+ct.py*(Et*B),Vt=-ct.px*(Et*B)+ct.py*(1-ft*B);vt+=Lt,Rt+=Vt}(Gt!==0||Ut!==0)&&(vt+=kt*Gt,Rt+=Pt*Ut),p[Y+0]=Pt,p[Y+1]=kt,p[Y+2]=vt,p[Y+3]=Rt,p[Y+4]=_.width,p[Y+5]=_.height,p[Y+6]=_.width/_.bandDimX,p[Y+7]=_.height/_.bandDimY,p[Y+8]=_.bandCount-1,p[Y+9]=_.bandCount-1,p[Y+10]=_.bandsTexCoordX,p[Y+11]=_.bandsTexCoordY,p[Y+12]=At,p[Y+13]=B,p[Y+14]=dt,p[Y+15]=K,p[Y+16]=Wt.r,p[Y+17]=Wt.g,p[Y+18]=Wt.b;let Se=R.opacity??1;p[Y+19]=Wt.a*ot*ee*Se,p[Y+20]=St,p[Y+21]=Qt,p[Y+22]=Jt,p[Y+23]=te,E++})(0)}return{data:p,visibleCount:E}};if(t.shadows&&t.shadows.length>0)for(let h of t.shadows){let b=ht(h.color),A=h.offset?.x??0,v=h.offset?.y??0,k=h.blurRadius??0,{data:F,visibleCount:W}=Mt($,b,A,v,k);if(W>0){let p=F.subarray(0,W*24),O=t.fontStyle==="italic"?.21:0;e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),$,p,W,h.color,e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:O})}}let yt=t.animators?.find(h=>"props"in h&&h.props?.longShadow&&(h.props?.longShadow?.length??0)>0);if(yt&&"props"in yt){let h=yt,b=h.props?.longShadow;if(b){let A=h.props?.spring,v=b.length,k=b.angle;if(A){let O=(t.frame??0)/(t.fps??30),R=Bt(O,A.stiffness,A.damping,A.mass,A.initialVelocity);v=Math.max(0,b.length*R),k=b.angle+(1-Math.min(1,R))*25}else{let R=1-(1-Math.min(1,(t.frame??0)/36))**3;v=b.length*R}let F=k*Math.PI/180,W=Math.max(4,Math.min(64,b.steps??16)),p=v/W,E=ht(b.color??"#000000");for(let O=1;O<=W;O++){let R=O*p,_=R*Math.cos(F),V=R*Math.sin(F),mt=O/W,ot=(b.startOpacity??.8)*(1-mt)+(b.endOpacity??0)*mt,dt={...E,a:E.a*ot},{data:K,visibleCount:st}=Mt(r,dt,_,V,0);if(st>0){let B=K.subarray(0,st*24),It=t.fontStyle==="italic"?.21:0;e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),$,B,st,b.color??"black",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:(t.opacity??1)*ot,transform:t.matrix,customParam:It})}}}}if(o&&s){let h=ht(t.stroke),{data:b,visibleCount:A}=Mt(s,h);if(A>0){let v=b.subarray(0,A*24),F=t.fontStyle==="italic"?.21:0;e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),s,v,A,t.stroke??"#000000",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:F})}}let Ot=new Set,Zt=!1;for(let h of C.glyphs)h.font&&h.font!==$&&(Ot.add(h.font),Zt=!0);let $t=t.fontStyle==="italic"?.21:0;if(Zt){Ot.add($);for(let h of Ot){if(e.device&&!h.curvesTex&&H.ensureTextures(e.device,h),!h.curvesTex)continue;let{data:b,visibleCount:A}=Mt(h,void 0,0,0,void 0,v=>(v.font??$)===h);if(A>0){let v=b.subarray(0,A*24);e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),h,v,A,t.color??"white",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:$t})}}}else{let{data:h,visibleCount:b}=Mt($);if(b>0){let A=h.subarray(0,b*24);e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),$,A,b,t.color??"white",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:$t})}}for(let h of C.emojis){let b=t.animation?.applyBy==="line"?0:Math.floor(h.x/(i+l)),A=X[b%x]??0,v=t.opacity??1,k=0,F=0,W=0,p=1;if(t.isVideoMode!==!1){let{p_in:K,p_out:st}=Yt(z,L,tt,it,A,x,!0),B=_t(K,st,f,bt,ut,J,z,L,tt,it,A,t.opacity??1,!0);if(!B.visible)continue;v=B.opacity,k=B.transX,F=B.transY,W=B.rot,p=B.scale}if(t.animators&&t.animators.length>0){let K=xe(t.animators,{charIndex:b,wordIndex:0,lineIndex:h.lineIndex},{charsCount:C.charsCount,wordsCount:C.wordsCount,linesCount:C.linesCount},{transX:k,transY:F,rot:W,scale:p,scaleX:1,scaleY:1,opacity:v,blurAmount:0},!0);k=K.transX,F=K.transY,W=K.rot,p=K.scale,v=K.opacity}let E=ve(e.device,h.char,h.size),O=h.size*1.5,R=(O-h.size)/2,_={x:t.dstRect.x+h.x+m-R,y:Q.y+h.y+m-R,width:O,height:O},V=new DOMMatrix,mt=_.x+O/2,ot=_.y+O/2;V=V.translate(mt,ot),(k!==0||F!==0)&&(V=V.translate(k,F)),W!==0&&(V=V.rotate(W)),p!==1&&(V=V.scale(p)),V=V.translate(-mt,-ot);let dt=t.matrix?t.matrix.multiply(V):V;e.renderer.drawTextureRegion(n,E,{x:0,y:0,width:E.width,height:E.height},_,{opacity:v,transform:dt})}if(t.typewriter?.cursor?.enabled&&I&&I.isCursorVisible&&(!t.typewriter.cursor.hideOnComplete||I.visibleChars<t.text.length)){let h=t.typewriter.cursor,b=h.color??t.color??"white",A=h.width??2.5,v=h.spacing??3,k=t.dstRect.x+m,F=Q.y+m;if(C.glyphs.length>0){let W=C.glyphs[C.glyphs.length-1],p=i/r.unitsPerEm,E=(W.cp?.advanceWidth||0)*p;k=W.x+t.dstRect.x+m+E+v,F=W.y+Q.y+m}h.style==="underscore"?e.renderer.drawRect(n,{x:k,y:F,width:i*.5,height:A},b,0,{opacity:t.opacity??1}):h.style==="block"?e.renderer.drawRect(n,{x:k,y:F-i*.8,width:i*.5,height:i},b,0,{opacity:t.opacity??1}):e.renderer.drawRect(n,{x:k,y:F-i*.8,width:A,height:i},b,0,{opacity:t.opacity??1})}}lt();function we(e){let t=e.trim().replace(",",".").split(":");if(t.length<2||t.length>3)throw new Error(`Invalid timestamp: ${e}`);if(t.length===2){let[o,s]=t;return parseInt(o,10)*60+parseFloat(s)}let[a,i,r]=t;return parseInt(a,10)*3600+parseInt(i,10)*60+parseFloat(r)}function Fe(e){let n=e.replace(/\r\n/g,`
|
|
5
|
+
`).split(`
|
|
6
|
+
`),t=[];for(let a=0;a<n.length;a++){let i=n[a],r=n[a+1];if(i?.match(/([0-9]+)/)&&r?.includes(" --> ")){let o=r.split(" --> "),s=we(o[0]),l=we(o[1]);t.push({text:"",startMs:s*1e3,endMs:l*1e3,confidence:1,timestampMs:(s+l)/2*1e3})}else i?.includes(" --> ")||(i?.trim()===""?t.length>0&&(t[t.length-1].text=t[t.length-1].text.trim()):t.length>0&&(t[t.length-1].text+=i+`
|
|
7
|
+
`))}return{captions:t.map(a=>({...a,text:a.text.trimEnd()}))}}function We(e,n,t=!0){if(!e||e.length===0)return null;let a=e.find(i=>n>=i.startMs&&n<i.endMs);return a||(!t&&e.length>0?e[0]:null)}function nn(e,n,t){if(!e||e.length===0)return 160;let a=n.fontSize??48,i=n.letterSpacing??0,r=n.lineHeight!==void 0&&n.lineHeight<10?n.lineHeight*a:n.lineHeight??a*1.2,o=n.padding??(n.background?12:0),s=t?Math.max(10,t-o*2):void 0,l=n.fontFamily??"Inter";H.isFailed(l)&&(l="Inter");let d=H.getFont(l,n.fontWeight,null),u=0;for(let m of e){if(!m.text)continue;let c=0;if(d&&d.codePoints){let M=Ct.measure(m.text,d,a,i,r,s);c=Math.ceil(M.height)}else{let M=m.text.split(`
|
|
8
|
+
`),g=0;for(let y of M)if(s){let w=y.length*a*.55+i*y.length,S=Math.max(1,Math.ceil(w/s));g+=S}else g+=1;c=Math.ceil(g*r)}let I=c+o*2;I>u&&(u=I)}return Math.max(20,u||160)}var zt=class{cache=new Map;resolvedCache=new Map;getCached(n){return this.resolvedCache.get(n)}setCached(n,t){this.resolvedCache.set(n,t)}clear(){this.cache.clear(),this.resolvedCache.clear()}async load(n){if(!n)return[];let t=this.resolvedCache.get(n);if(t)return t;let a=this.cache.get(n);return a||(a=(async()=>{let i="";if(n.startsWith("data:")){let o=n.indexOf(",");if(o!==-1){let s=n.substring(0,o),l=n.substring(o+1);i=s.includes(";base64")?typeof Buffer<"u"?Buffer.from(l,"base64").toString("utf-8"):new TextDecoder().decode(Uint8Array.from(atob(l),u=>u.charCodeAt(0))):decodeURIComponent(l)}}else if(n.includes("-->"))i=n;else if(n.startsWith("http://")||n.startsWith("https://")){let o=await fetch(n);if(!o.ok)throw new Error(`Failed to fetch SRT: ${n}`);i=await o.text()}else{let o=n;if(o.startsWith("file://"))try{o=new URL(o).pathname}catch{o=o.replace(/^file:\/\//,"")}if(typeof wt<"u"&&wt.versions?.node)try{i=await(await import("./shims/fs-promises.mjs")).readFile(o,"utf-8")}catch{let s=await fetch(n);if(!s.ok)throw new Error(`Failed to fetch SRT: ${n}`);i=await s.text()}else{let s=await fetch(n);if(!s.ok)throw new Error(`Failed to fetch SRT: ${n}`);i=await s.text()}}let r=Fe(i).captions;return this.resolvedCache.set(n,r),r})(),this.cache.set(n,a),a.catch(()=>{this.cache.delete(n),this.resolvedCache.delete(n)})),a}},Xe=new zt;async function an(e,n,t){if(!t.src)return;let a=await Xe.load(t.src);if(!a||a.length===0)return;let i=t.frame/t.fps*1e3,r=We(a,i,t.isVideoMode!==!1);if(!r)return;let o=r.text,s=t.dstRect.width,l=t.padding??(t.textBackgroundColor?12:0),d=Math.max(10,s-l*2),u=t.maxWidth!==void 0?Math.min(t.maxWidth,d):d,m=t.fontSize??48,c=t.fontFamily??"Inter";if(H.isFailed(c)&&(c="Inter"),H.isFailed(c))return;let I=t.letterSpacing??0,M=H.getFont(c,t.fontWeight,e.device);if(!M||!M.curvesTex){let z=jt(c);H.preloadSlugFont(e.device,c,z,void 0,t.renderId).catch(L=>{console.warn(`[drawCaptionNode] Failed to load Slug font for ${c}:`,L)});return}let g=t.lineHeight!==void 0&&t.lineHeight<10?t.lineHeight*m:t.lineHeight??m*1.2,y=Ct.measure(o,M,m,I,g,u),w=y.width,S=y.height,T=w+l*2,C=S+l*2,q=t.align??"center",G=0;q==="center"?G=Math.max(0,(s-T)/2):q==="right"&&(G=Math.max(0,s-T));let Q=t.dstRect.height,D=t.verticalAlign??t.textAlignVertical??"bottom",nt=0;D==="top"?nt=0:D==="middle"?nt=(Q-C)/2:nt=Q-C;let at={x:t.dstRect.x+G,y:t.dstRect.y+nt,width:T,height:C},$=t.opacity??1;if(t.textBackgroundColor){let z=t.strokeRadius??t.borderRadius??8;e.renderer.drawRRect(n,{rect:at,rx:z,ry:z},t.textBackgroundColor,{opacity:$})}let gt={x:at.x+l,y:at.y+l,width:w,height:S};ye(e,n,{...t,text:o,dstRect:gt,width:u,height:S,align:q,opacity:$,isCaption:!0,animation:void 0,textBackgroundColor:void 0})}export{ye as a,nn as b,Xe as c,an as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as o}from"./chunk-SWD76532.mjs";import{a as S}from"./chunk-EDIZNO3P.mjs";import{d as x}from"./chunk-P3HBP725.mjs";import{d as c,e as i}from"./chunk-BVF64D6H.mjs";i();i();i();i();i();i();function E(r){return typeof c<"u"?c.env?.[r]:void 0}function w(){let r=E("FRAMEFIELDS_STRICT_PROPS");return r==="1"||r==="true"}function z(){return w()||E("NODE_ENV")!=="production"}var v=new Set;function g(r){if(w())throw new Error(r);v.has(r)||(v.add(r),console.warn(`[framefields] ${r}`))}function C(r){if(typeof r!="object"||r===null||Array.isArray(r)||x(r))return!1;let e=Object.getPrototypeOf(r);return e===Object.prototype||e===null}function Z(r,e){let t=Array.from({length:e.length+1},(n,l)=>l);for(let n=1;n<=r.length;n++){let l=t[0];t[0]=n;for(let a=1;a<=e.length;a++){let s=t[a];t[a]=Math.min(t[a]+1,t[a-1]+1,l+(r[n-1]===e[a-1]?0:1)),l=s}}return t[e.length]}function J(r,e){let t,n=Number.POSITIVE_INFINITY,l=r.toLowerCase();for(let s of e){let u=s.toLowerCase(),d=u.includes(l)||l.includes(u)?1:Z(l,u);d<n&&(n=d,t=s)}return t&&n<=Math.max(2,Math.ceil(r.length/2))?` Did you mean "${t}"?`:` Known props: ${e.join(", ")}.`}function Q(r,e,t){if(typeof e=="number"){let{min:n,max:l}=t,a=n!==void 0&&e<n,s=l!==void 0&&e>l;if(a||s||Number.isNaN(e)){let u=n!==void 0&&l!==void 0?`${n} to ${l}`:n!==void 0?`\u2265 ${n}`:`\u2264 ${l}`;g(Number.isNaN(e)?`${r} is NaN`:`${r} = ${e} is outside ${u}`)}return}t.enum&&(typeof e=="string"||typeof e=="boolean")&&!t.enum.includes(e)&&g(`${r} = ${JSON.stringify(e)} is not one of ${t.enum.map(n=>JSON.stringify(n)).join(", ")}`)}function M(r,e,t){let n=Object.keys(t);for(let[l,a]of Object.entries(e)){if(a===void 0)continue;let s=t[l];if(!s){g(`${r}: unknown prop "${l}".${J(l,n)}`);continue}x(a)||typeof a=="function"||(s.props&&C(a)?M(`${r}.${l}`,a,s.props):Q(`${r}.${l}`,a,s))}}function ee(r){return typeof r=="object"&&r!==null?structuredClone(r):r}function b(r,e,t,n){let l=t;z()&&M(r,l,n);let a={};for(let[s,u]of Object.entries(e))a[s]=ee(u);for(let[s,u]of Object.entries(l)){if(u===void 0)continue;let d=a[s];a[s]=C(d)&&C(u)?{...d,...Object.fromEntries(Object.entries(u).filter(([,q])=>q!==void 0))}:u}return a}i();var p={Blur:{blurType:{enum:["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]},strength:{min:0,max:100},angle:{min:0,max:360},sigmaColor:{min:.01,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1},partialBlur:{},radius:{min:.01,max:1},radiusY:{min:0,max:1},shape:{enum:["ellipse","circle","rect"]}},ColorBalance:{shadows:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},midtones:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},highlights:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},preserveLuminosity:{}},ColorKey:{keyColor:{},similarity:{min:0,max:1},smoothness:{min:0,max:1},spillSuppression:{min:0,max:1},colorSpace:{enum:["YUV","RGB"]},spillSuppressionType:{enum:["Desaturate","Neutralize","None"]}},Vignette:{strength:{min:0,max:100},radius:{min:.1,max:2},softness:{min:0,max:1},roundness:{min:0,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1}}};var re={blurType:"Gaussian",strength:5,angle:0,sigmaColor:.1,centerX:.5,centerY:.5,partialBlur:!1,radius:.3,radiusY:0,shape:"circle"},y=class extends o{op="Blur";constructor(e={}){super(b("Blur",re,e,p.Blur))}},te={shadows:{cyanRed:0,magentaGreen:0,yellowBlue:0},midtones:{cyanRed:0,magentaGreen:0,yellowBlue:0},highlights:{cyanRed:0,magentaGreen:0,yellowBlue:0},preserveLuminosity:!0},m=class extends o{op="ColorBalance";constructor(e={}){super(b("ColorBalance",te,e,p.ColorBalance))}},oe={keyColor:"#00ff00",similarity:.4,smoothness:.1,spillSuppression:.2,colorSpace:"YUV",spillSuppressionType:"Desaturate"},h=class extends o{op="ColorKey";constructor(e={}){super(b("ColorKey",oe,e,p.ColorKey))}},ne={strength:50,radius:1,softness:.5,roundness:.5,centerX:.5,centerY:.5},f=class extends o{op="Vignette";constructor(e={}){super(b("Vignette",ne,e,p.Vignette))}};function le(r){return{partialBlur:!0,centerX:r.center.x,centerY:r.center.y,radius:r.bounds.width.multiply(.55),radiusY:r.bounds.height.multiply(.55),shape:"ellipse",strength:r.active.multiply(25)}}var P=class extends y{constructor(e={}){let{track:t,...n}=e;super(t?{...le(t),...ae(n)}:n)}};function ae(r){return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}i();var se={blur:r=>new P(r),colorBalance:r=>new m(r),colorKey:r=>new h(r),vignette:r=>new f(r)};var R=class extends o{op="Levels";constructor(e={}){let t={inBlack:0,inWhite:1,outBlack:0,outWhite:1};super({master:e.master??{...t},red:e.red??{...t},green:e.green??{...t},blue:e.blue??{...t},...e})}},B=class extends o{op="FilmGrain";constructor(e={}){super({strength:e.strength??15,size:e.size??1.5,monochrome:e.monochrome??!0,animated:e.animated??!0,speed:e.speed??50,shadows:e.shadows??.2,midtones:e.midtones??1,highlights:e.highlights??.2,...e})}},A=class extends o{op;constructor(e,t={}){super(t),this.op=e}},T=class extends o{op="AudioSignalExtractor";constructor(e={}){super({extractionMode:e.extractionMode??"rms_envelope",attackMs:e.attackMs??10,releaseMs:e.releaseMs??120,sensitivity:e.sensitivity??1,noiseFloorDb:e.noiseFloorDb??-48,dynamicRangeDb:e.dynamicRangeDb??48,autoRange:e.autoRange??!0,smoothing:e.smoothing??.15,curve:e.curve??"linear",beatThreshold:e.beatThreshold??.08,beatDecayMs:e.beatDecayMs??80,previewMode:e.previewMode??"envelope",nodeId:e.nodeId??"audio_extractor",...e})}async extract(e,t={}){return S.extract(e,{extractionMode:this.extractionMode,attackMs:this.attackMs,releaseMs:this.releaseMs,sensitivity:this.sensitivity,noiseFloorDb:this.noiseFloorDb,dynamicRangeDb:this.dynamicRangeDb,smoothing:this.smoothing,curve:this.curve,beatThreshold:this.beatThreshold,beatDecayMs:this.beatDecayMs,previewMode:this.previewMode,...t})}},k=class extends o{op="Curves";constructor(e={}){super({...e,curveType:e.curveType??"rgb",master:e.master??[{x:0,y:0},{x:1,y:1}],red:e.red??[{x:0,y:0},{x:1,y:1}],green:e.green??[{x:0,y:0},{x:1,y:1}],blue:e.blue??[{x:0,y:0},{x:1,y:1}],hueVsHue:e.hueVsHue??[{x:0,y:.5},{x:1,y:.5}],hueVsSat:e.hueVsSat??[{x:0,y:1},{x:1,y:1}],lumVsSat:e.lumVsSat??[{x:0,y:1},{x:1,y:1}],satVsSat:e.satVsSat??[{x:0,y:1},{x:1,y:1}]})}},D=class extends o{op="SelectiveColor";constructor(e={}){let t={cyan:0,magenta:0,yellow:0,black:0};super({...e,method:e.method??"Relative",reds:{...t,...e.reds},yellows:{...t,...e.yellows},greens:{...t,...e.greens},cyans:{...t,...e.cyans},blues:{...t,...e.blues},magentas:{...t,...e.magentas},whites:{...t,...e.whites},neutrals:{...t,...e.neutrals},blacks:{...t,...e.blacks}})}},j=class extends o{op="GradientMap";constructor(e={}){let t=[{position:0,color:"#000000"},{position:1,color:"#ffffff"}];super({...e,stops:e.stops??t,smooth:e.smooth??!0,dither:e.dither??!0,opacity:e.opacity??1})}},V=class extends o{op="ShadowsHighlights";constructor(e={}){super({...e,shadowAmount:e.shadowAmount??0,shadowTonalWidth:e.shadowTonalWidth??50,shadowRadius:e.shadowRadius??30,highlightAmount:e.highlightAmount??0,highlightTonalWidth:e.highlightTonalWidth??50,highlightRadius:e.highlightRadius??30,colorCorrection:e.colorCorrection??0,midtoneContrast:e.midtoneContrast??0})}},O=class extends o{op="ApplyLUT";constructor(e={}){super({...e,lutUrl:e.lutUrl??"",intensity:e.intensity??1})}},L=class extends o{op="UnsharpMask";constructor(e={}){super({...e,amount:e.amount??100,radius:e.radius??1.5,threshold:e.threshold??3})}},G=class extends o{op="HighPass";constructor(e={}){super({...e,radius:e.radius??3,contrastBoost:e.contrastBoost??1,monochrome:e.monochrome??!0})}},Y=class extends o{op="HalftoneScreen";constructor(e={}){super({...e,mode:e.mode??"Monochrome",dotShape:e.dotShape??"Circle",frequency:e.frequency??30,angle:e.angle??45,contrast:e.contrast??1,dotColor:e.dotColor??"#000000",paperColor:e.paperColor??"#ffffff",smooth:e.smooth??!0,invert:e.invert??!1,cyanAngle:e.cyanAngle??15,magentaAngle:e.magentaAngle??75,yellowAngle:e.yellowAngle??0,blackAngle:e.blackAngle??45,opacity:e.opacity??1})}},H=class extends o{op="TileOffset";constructor(e={}){super({...e,offsetX:e.offsetX??0,offsetY:e.offsetY??0,wrap:e.wrap??!0,edgeMode:e.edgeMode??"wrap"})}},N=class extends o{op="MotionBlur";constructor(e={}){super({...e,shutterAngle:e.shutterAngle??180,samples:e.samples??16,maxVelocity:e.maxVelocity??64,shutterCurve:e.shutterCurve??"gaussian",depthAware:e.depthAware??!0})}},$=class extends o{op="SSAO";constructor(e={}){super({...e,radius:e.radius??45,bias:e.bias??.025,intensity:e.intensity??1.5,kernelSamples:e.kernelSamples??16,blurRadius:e.blurRadius??4})}},F=class extends o{op="PBRGlass";constructor(e={}){super({...e,ior:e.ior??1.49,roughness:e.roughness??.15,transmission:e.transmission??.92,dispersion:e.dispersion??.015,fresnelPower:e.fresnelPower??5,tintColor:e.tintColor??"#ffffff"})}},I=class extends o{op="DepthOfField";constructor(e={}){super({...e,focusDistance:e.focusDistance??500,focalLength:e.focalLength??50,aperture:e.aperture??2.8,maxBlur:e.maxBlur??16,quality:e.quality??"high"})}},K=class extends o{op="Crop";constructor(e={}){super({cropType:e.cropType??"rect",leftPercentage:e.leftPercentage??0,topPercentage:e.topPercentage??0,widthPercentage:e.widthPercentage??100,heightPercentage:e.heightPercentage??100,roundness:e.roundness??0,...e})}},W=class extends o{op="Vision";constructor(e={}){super({enableDetection:e.enableDetection!==!1,enableSegmentation:e.enableSegmentation===!0,enablePose:e.enablePose===!0,enableMatte:e.enableMatte===!0,confidence:e.confidence??.3,variant:e.variant??"s",mode:e.mode??"passthrough",matteSource:e.matteSource??"instance",...e})}},X=class extends o{op="Relight3D";constructor(e={}){super({lightType:e.lightType??"Point",intensity:e.intensity??1,lightPosX:e.lightPosX??.5,lightPosY:e.lightPosY??.5,lightPosZ:e.lightPosZ??.3,lightRadius:e.lightRadius??.8,spotConeAngle:e.spotConeAngle??45,specularRoughness:e.specularRoughness??.35,specularStrength:e.specularStrength??.7,metallic:e.metallic??0,ambientIntensity:e.ambientIntensity??.4,volumetricDensity:e.volumetricDensity??.2,depthScale:e.depthScale??1,depthInvert:e.depthInvert??!1,lightColor:e.lightColor??"#ffffff",ambientColor:e.ambientColor??"#ffffff",normalMap:e.normalMap,...e})}},U=class extends o{op="TemporalDeflicker";constructor(e={}){super({blendWeight:e.blendWeight??.35,disocclusionThreshold:e.disocclusionThreshold??.15,maxMotionPixels:e.maxMotionPixels??64,scale:e.scale??.5,windowSize:e.windowSize??2,...e})}},_=class extends o{op="Modulate";constructor(e={}){super({hue:e.hue??0,brightness:e.brightness??1,contrast:e.contrast??1,exposure:e.exposure??0,saturation:e.saturation??1,sepia:e.sepia??0,...e})}};export{p as a,m as b,h as c,f as d,P as e,se as f,R as g,B as h,A as i,T as j,k,D as l,j as m,V as n,O as o,L as p,G as q,Y as r,H as s,N as t,$ as u,F as v,I as w,K as x,W as y,X as z,U as A,_ as B};
|
|
1
|
+
import{a as o}from"./chunk-PCB2VB5K.mjs";import{a as S}from"./chunk-EDIZNO3P.mjs";import{d as x}from"./chunk-P3HBP725.mjs";import{d as c,e as i}from"./chunk-BVF64D6H.mjs";i();i();i();i();i();i();function E(r){return typeof c<"u"?c.env?.[r]:void 0}function w(){let r=E("FRAMEFIELDS_STRICT_PROPS");return r==="1"||r==="true"}function z(){return w()||E("NODE_ENV")!=="production"}var v=new Set;function g(r){if(w())throw new Error(r);v.has(r)||(v.add(r),console.warn(`[framefields] ${r}`))}function C(r){if(typeof r!="object"||r===null||Array.isArray(r)||x(r))return!1;let e=Object.getPrototypeOf(r);return e===Object.prototype||e===null}function Z(r,e){let t=Array.from({length:e.length+1},(n,l)=>l);for(let n=1;n<=r.length;n++){let l=t[0];t[0]=n;for(let a=1;a<=e.length;a++){let s=t[a];t[a]=Math.min(t[a]+1,t[a-1]+1,l+(r[n-1]===e[a-1]?0:1)),l=s}}return t[e.length]}function J(r,e){let t,n=Number.POSITIVE_INFINITY,l=r.toLowerCase();for(let s of e){let u=s.toLowerCase(),d=u.includes(l)||l.includes(u)?1:Z(l,u);d<n&&(n=d,t=s)}return t&&n<=Math.max(2,Math.ceil(r.length/2))?` Did you mean "${t}"?`:` Known props: ${e.join(", ")}.`}function Q(r,e,t){if(typeof e=="number"){let{min:n,max:l}=t,a=n!==void 0&&e<n,s=l!==void 0&&e>l;if(a||s||Number.isNaN(e)){let u=n!==void 0&&l!==void 0?`${n} to ${l}`:n!==void 0?`\u2265 ${n}`:`\u2264 ${l}`;g(Number.isNaN(e)?`${r} is NaN`:`${r} = ${e} is outside ${u}`)}return}t.enum&&(typeof e=="string"||typeof e=="boolean")&&!t.enum.includes(e)&&g(`${r} = ${JSON.stringify(e)} is not one of ${t.enum.map(n=>JSON.stringify(n)).join(", ")}`)}function M(r,e,t){let n=Object.keys(t);for(let[l,a]of Object.entries(e)){if(a===void 0)continue;let s=t[l];if(!s){g(`${r}: unknown prop "${l}".${J(l,n)}`);continue}x(a)||typeof a=="function"||(s.props&&C(a)?M(`${r}.${l}`,a,s.props):Q(`${r}.${l}`,a,s))}}function ee(r){return typeof r=="object"&&r!==null?structuredClone(r):r}function b(r,e,t,n){let l=t;z()&&M(r,l,n);let a={};for(let[s,u]of Object.entries(e))a[s]=ee(u);for(let[s,u]of Object.entries(l)){if(u===void 0)continue;let d=a[s];a[s]=C(d)&&C(u)?{...d,...Object.fromEntries(Object.entries(u).filter(([,q])=>q!==void 0))}:u}return a}i();var p={Blur:{blurType:{enum:["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]},strength:{min:0,max:100},angle:{min:0,max:360},sigmaColor:{min:.01,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1},partialBlur:{},radius:{min:.01,max:1},radiusY:{min:0,max:1},shape:{enum:["ellipse","circle","rect"]}},ColorBalance:{shadows:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},midtones:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},highlights:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},preserveLuminosity:{}},ColorKey:{keyColor:{},similarity:{min:0,max:1},smoothness:{min:0,max:1},spillSuppression:{min:0,max:1},colorSpace:{enum:["YUV","RGB"]},spillSuppressionType:{enum:["Desaturate","Neutralize","None"]}},Vignette:{strength:{min:0,max:100},radius:{min:.1,max:2},softness:{min:0,max:1},roundness:{min:0,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1}}};var re={blurType:"Gaussian",strength:5,angle:0,sigmaColor:.1,centerX:.5,centerY:.5,partialBlur:!1,radius:.3,radiusY:0,shape:"circle"},y=class extends o{op="Blur";constructor(e={}){super(b("Blur",re,e,p.Blur))}},te={shadows:{cyanRed:0,magentaGreen:0,yellowBlue:0},midtones:{cyanRed:0,magentaGreen:0,yellowBlue:0},highlights:{cyanRed:0,magentaGreen:0,yellowBlue:0},preserveLuminosity:!0},m=class extends o{op="ColorBalance";constructor(e={}){super(b("ColorBalance",te,e,p.ColorBalance))}},oe={keyColor:"#00ff00",similarity:.4,smoothness:.1,spillSuppression:.2,colorSpace:"YUV",spillSuppressionType:"Desaturate"},h=class extends o{op="ColorKey";constructor(e={}){super(b("ColorKey",oe,e,p.ColorKey))}},ne={strength:50,radius:1,softness:.5,roundness:.5,centerX:.5,centerY:.5},f=class extends o{op="Vignette";constructor(e={}){super(b("Vignette",ne,e,p.Vignette))}};function le(r){return{partialBlur:!0,centerX:r.center.x,centerY:r.center.y,radius:r.bounds.width.multiply(.55),radiusY:r.bounds.height.multiply(.55),shape:"ellipse",strength:r.active.multiply(25)}}var P=class extends y{constructor(e={}){let{track:t,...n}=e;super(t?{...le(t),...ae(n)}:n)}};function ae(r){return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}i();var se={blur:r=>new P(r),colorBalance:r=>new m(r),colorKey:r=>new h(r),vignette:r=>new f(r)};var R=class extends o{op="Levels";constructor(e={}){let t={inBlack:0,inWhite:1,outBlack:0,outWhite:1};super({master:e.master??{...t},red:e.red??{...t},green:e.green??{...t},blue:e.blue??{...t},...e})}},B=class extends o{op="FilmGrain";constructor(e={}){super({strength:e.strength??15,size:e.size??1.5,monochrome:e.monochrome??!0,animated:e.animated??!0,speed:e.speed??50,shadows:e.shadows??.2,midtones:e.midtones??1,highlights:e.highlights??.2,...e})}},A=class extends o{op;constructor(e,t={}){super(t),this.op=e}},T=class extends o{op="AudioSignalExtractor";constructor(e={}){super({extractionMode:e.extractionMode??"rms_envelope",attackMs:e.attackMs??10,releaseMs:e.releaseMs??120,sensitivity:e.sensitivity??1,noiseFloorDb:e.noiseFloorDb??-48,dynamicRangeDb:e.dynamicRangeDb??48,autoRange:e.autoRange??!0,smoothing:e.smoothing??.15,curve:e.curve??"linear",beatThreshold:e.beatThreshold??.08,beatDecayMs:e.beatDecayMs??80,previewMode:e.previewMode??"envelope",nodeId:e.nodeId??"audio_extractor",...e})}async extract(e,t={}){return S.extract(e,{extractionMode:this.extractionMode,attackMs:this.attackMs,releaseMs:this.releaseMs,sensitivity:this.sensitivity,noiseFloorDb:this.noiseFloorDb,dynamicRangeDb:this.dynamicRangeDb,smoothing:this.smoothing,curve:this.curve,beatThreshold:this.beatThreshold,beatDecayMs:this.beatDecayMs,previewMode:this.previewMode,...t})}},k=class extends o{op="Curves";constructor(e={}){super({...e,curveType:e.curveType??"rgb",master:e.master??[{x:0,y:0},{x:1,y:1}],red:e.red??[{x:0,y:0},{x:1,y:1}],green:e.green??[{x:0,y:0},{x:1,y:1}],blue:e.blue??[{x:0,y:0},{x:1,y:1}],hueVsHue:e.hueVsHue??[{x:0,y:.5},{x:1,y:.5}],hueVsSat:e.hueVsSat??[{x:0,y:1},{x:1,y:1}],lumVsSat:e.lumVsSat??[{x:0,y:1},{x:1,y:1}],satVsSat:e.satVsSat??[{x:0,y:1},{x:1,y:1}]})}},D=class extends o{op="SelectiveColor";constructor(e={}){let t={cyan:0,magenta:0,yellow:0,black:0};super({...e,method:e.method??"Relative",reds:{...t,...e.reds},yellows:{...t,...e.yellows},greens:{...t,...e.greens},cyans:{...t,...e.cyans},blues:{...t,...e.blues},magentas:{...t,...e.magentas},whites:{...t,...e.whites},neutrals:{...t,...e.neutrals},blacks:{...t,...e.blacks}})}},j=class extends o{op="GradientMap";constructor(e={}){let t=[{position:0,color:"#000000"},{position:1,color:"#ffffff"}];super({...e,stops:e.stops??t,smooth:e.smooth??!0,dither:e.dither??!0,opacity:e.opacity??1})}},V=class extends o{op="ShadowsHighlights";constructor(e={}){super({...e,shadowAmount:e.shadowAmount??0,shadowTonalWidth:e.shadowTonalWidth??50,shadowRadius:e.shadowRadius??30,highlightAmount:e.highlightAmount??0,highlightTonalWidth:e.highlightTonalWidth??50,highlightRadius:e.highlightRadius??30,colorCorrection:e.colorCorrection??0,midtoneContrast:e.midtoneContrast??0})}},O=class extends o{op="ApplyLUT";constructor(e={}){super({...e,lutUrl:e.lutUrl??"",intensity:e.intensity??1})}},L=class extends o{op="UnsharpMask";constructor(e={}){super({...e,amount:e.amount??100,radius:e.radius??1.5,threshold:e.threshold??3})}},G=class extends o{op="HighPass";constructor(e={}){super({...e,radius:e.radius??3,contrastBoost:e.contrastBoost??1,monochrome:e.monochrome??!0})}},Y=class extends o{op="HalftoneScreen";constructor(e={}){super({...e,mode:e.mode??"Monochrome",dotShape:e.dotShape??"Circle",frequency:e.frequency??30,angle:e.angle??45,contrast:e.contrast??1,dotColor:e.dotColor??"#000000",paperColor:e.paperColor??"#ffffff",smooth:e.smooth??!0,invert:e.invert??!1,cyanAngle:e.cyanAngle??15,magentaAngle:e.magentaAngle??75,yellowAngle:e.yellowAngle??0,blackAngle:e.blackAngle??45,opacity:e.opacity??1})}},H=class extends o{op="TileOffset";constructor(e={}){super({...e,offsetX:e.offsetX??0,offsetY:e.offsetY??0,wrap:e.wrap??!0,edgeMode:e.edgeMode??"wrap"})}},N=class extends o{op="MotionBlur";constructor(e={}){super({...e,shutterAngle:e.shutterAngle??180,samples:e.samples??16,maxVelocity:e.maxVelocity??64,shutterCurve:e.shutterCurve??"gaussian",depthAware:e.depthAware??!0})}},$=class extends o{op="SSAO";constructor(e={}){super({...e,radius:e.radius??45,bias:e.bias??.025,intensity:e.intensity??1.5,kernelSamples:e.kernelSamples??16,blurRadius:e.blurRadius??4})}},F=class extends o{op="PBRGlass";constructor(e={}){super({...e,ior:e.ior??1.49,roughness:e.roughness??.15,transmission:e.transmission??.92,dispersion:e.dispersion??.015,fresnelPower:e.fresnelPower??5,tintColor:e.tintColor??"#ffffff"})}},I=class extends o{op="DepthOfField";constructor(e={}){super({...e,focusDistance:e.focusDistance??500,focalLength:e.focalLength??50,aperture:e.aperture??2.8,maxBlur:e.maxBlur??16,quality:e.quality??"high"})}},K=class extends o{op="Crop";constructor(e={}){super({cropType:e.cropType??"rect",leftPercentage:e.leftPercentage??0,topPercentage:e.topPercentage??0,widthPercentage:e.widthPercentage??100,heightPercentage:e.heightPercentage??100,roundness:e.roundness??0,...e})}},W=class extends o{op="Vision";constructor(e={}){super({enableDetection:e.enableDetection!==!1,enableSegmentation:e.enableSegmentation===!0,enablePose:e.enablePose===!0,enableMatte:e.enableMatte===!0,confidence:e.confidence??.3,variant:e.variant??"s",mode:e.mode??"passthrough",matteSource:e.matteSource??"instance",...e})}},X=class extends o{op="Relight3D";constructor(e={}){super({lightType:e.lightType??"Point",intensity:e.intensity??1,lightPosX:e.lightPosX??.5,lightPosY:e.lightPosY??.5,lightPosZ:e.lightPosZ??.3,lightRadius:e.lightRadius??.8,spotConeAngle:e.spotConeAngle??45,specularRoughness:e.specularRoughness??.35,specularStrength:e.specularStrength??.7,metallic:e.metallic??0,ambientIntensity:e.ambientIntensity??.4,volumetricDensity:e.volumetricDensity??.2,depthScale:e.depthScale??1,depthInvert:e.depthInvert??!1,lightColor:e.lightColor??"#ffffff",ambientColor:e.ambientColor??"#ffffff",normalMap:e.normalMap,...e})}},U=class extends o{op="TemporalDeflicker";constructor(e={}){super({blendWeight:e.blendWeight??.35,disocclusionThreshold:e.disocclusionThreshold??.15,maxMotionPixels:e.maxMotionPixels??64,scale:e.scale??.5,windowSize:e.windowSize??2,...e})}},_=class extends o{op="Modulate";constructor(e={}){super({hue:e.hue??0,brightness:e.brightness??1,contrast:e.contrast??1,exposure:e.exposure??0,saturation:e.saturation??1,sepia:e.sepia??0,...e})}};export{p as a,m as b,h as c,f as d,P as e,se as f,R as g,B as h,A as i,T as j,k,D as l,j as m,V as n,O as o,L as p,G as q,Y as r,H as s,N as t,$ as u,F as v,I as w,K as x,W as y,X as z,U as A,_ as B};
|