framefields 2.0.5 → 2.0.7
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/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-COkiXyDb.mjs → audio-D6enPyAG.mjs} +4 -4
- package/dist/{audio-COkiXyDb.mjs.map → audio-D6enPyAG.mjs.map} +1 -1
- package/dist/{audio-nmU-BWxI.d.mts → audio-a6pY05g2.d.mts} +3 -3
- package/dist/{audio-nmU-BWxI.d.mts.map → audio-a6pY05g2.d.mts.map} +1 -1
- package/dist/{dist-Bx6J0VcM.mjs → dist-B9Afsv83.mjs} +47 -2
- package/dist/dist-B9Afsv83.mjs.map +1 -0
- package/dist/{dist-DKm2IyEJ.mjs → dist-DzUJmIHt.mjs} +2 -2
- package/dist/dist-DzUJmIHt.mjs.map +1 -0
- package/dist/{dist-55MP0aN4.mjs → dist-JkiL-qy7.mjs} +3 -3
- package/dist/{dist-55MP0aN4.mjs.map → dist-JkiL-qy7.mjs.map} +1 -1
- package/dist/{dist-DgIKXWZ1.mjs → dist-sHqWCB9M.mjs} +156 -113
- package/dist/dist-sHqWCB9M.mjs.map +1 -0
- package/dist/effects/index.d.mts +5 -5
- package/dist/effects/index.mjs +25 -25
- package/dist/effects-l0T61DPU.mjs +2086 -0
- package/dist/effects-l0T61DPU.mjs.map +1 -0
- package/dist/fonts/index.mjs +1 -1
- package/dist/{fonts-C_AWIMdb.mjs → fonts-CuG-05-_.mjs} +2 -2
- package/dist/{fonts-C_AWIMdb.mjs.map → fonts-CuG-05-_.mjs.map} +1 -1
- package/dist/{index-Bx7JBFT6.d.mts → index-BJUS4Nx6.d.mts} +2 -2
- package/dist/{index-Bx7JBFT6.d.mts.map → index-BJUS4Nx6.d.mts.map} +1 -1
- package/dist/{index-C8rstr3Y.d.mts → index-BJx_Qxc_.d.mts} +2510 -125
- package/dist/{index-C8rstr3Y.d.mts.map → index-BJx_Qxc_.d.mts.map} +1 -1
- package/dist/{index-i0xPY4Fe.d.mts → index-BLbUQolI.d.mts} +3 -3
- package/dist/{index-i0xPY4Fe.d.mts.map → index-BLbUQolI.d.mts.map} +1 -1
- package/dist/{index-CAGDH7l6.d.mts → index-Bi2nRZ_g.d.mts} +3 -3
- package/dist/{index-CAGDH7l6.d.mts.map → index-Bi2nRZ_g.d.mts.map} +1 -1
- package/dist/{index-DY3mLoPO.d.mts → index-CZChQhXZ.d.mts} +2 -2
- package/dist/index-CZChQhXZ.d.mts.map +1 -0
- package/dist/{index-ogL8Y-Ng.d.mts → index-WIPHLy5m.d.mts} +23 -2
- package/dist/index-WIPHLy5m.d.mts.map +1 -0
- package/dist/index.d.mts +41 -10
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +47 -45
- package/dist/index.mjs.map +1 -1
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-BM0Zzcn1.mjs → preview-4z1jNSej.mjs} +2 -2
- package/dist/{preview-BM0Zzcn1.mjs.map → preview-4z1jNSej.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-H5BPCY7N.mjs → chunk-24DXIKXL.mjs} +2 -2
- package/dist/preview-engine/{chunk-QP2NI4XD.mjs → chunk-2XXICKQV.mjs} +1 -1
- package/dist/preview-engine/{chunk-EDIZNO3P.mjs → chunk-3ROJ7JVY.mjs} +1 -1
- package/dist/preview-engine/{chunk-2RMSCL6V.mjs → chunk-5NYKHIQN.mjs} +10 -10
- package/dist/preview-engine/{chunk-VSSB73UU.mjs → chunk-66NVL4BN.mjs} +2 -2
- package/dist/preview-engine/{chunk-AOLAHYVV.mjs → chunk-6JW37VJA.mjs} +1 -1
- package/dist/preview-engine/chunk-7MJVROKR.mjs +98 -0
- package/dist/preview-engine/{chunk-Z4ERCLNF.mjs → chunk-7NVDTELW.mjs} +1 -1
- package/dist/preview-engine/{chunk-SXX7HX34.mjs → chunk-AMBSW6OA.mjs} +2 -2
- package/dist/preview-engine/{chunk-UDNCEHUI.mjs → chunk-BE3CEVJB.mjs} +1 -1
- package/dist/preview-engine/{chunk-CA5N7JRZ.mjs → chunk-BQ65MU6H.mjs} +1 -1
- package/dist/preview-engine/{chunk-LEEZXHQO.mjs → chunk-BWDARDO6.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZX6APG6E.mjs → chunk-CXFEQ5PM.mjs} +1 -1
- package/dist/preview-engine/chunk-D3TETPLI.mjs +5 -0
- package/dist/preview-engine/{chunk-B6PLCMBM.mjs → chunk-DMWSTYFF.mjs} +1 -1
- package/dist/preview-engine/{chunk-6ZOXGAYA.mjs → chunk-EJTGJVUA.mjs} +2 -2
- package/dist/preview-engine/{chunk-3O5OKR6D.mjs → chunk-EQ4QZRXB.mjs} +2 -2
- package/dist/preview-engine/{chunk-I4FH6HYU.mjs → chunk-FE6RSVKZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-U446SQP3.mjs → chunk-GHMCGTJ2.mjs} +1 -1
- package/dist/preview-engine/{chunk-M2GRYRLM.mjs → chunk-HPIULG7P.mjs} +1 -1
- package/dist/preview-engine/{chunk-G3HW4VER.mjs → chunk-HRIKNYPF.mjs} +1 -1
- package/dist/preview-engine/{chunk-G76HSKOS.mjs → chunk-IGFT3XLN.mjs} +1 -1
- package/dist/preview-engine/{chunk-NWRSVVTF.mjs → chunk-JQ4WY6BZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-JWNHTRED.mjs → chunk-LIHUEYI5.mjs} +2 -2
- package/dist/preview-engine/{chunk-DPPH3NK2.mjs → chunk-NRHSNPZV.mjs} +1 -1
- package/dist/preview-engine/{chunk-BUIQ5TUH.mjs → chunk-OWOSYNMF.mjs} +1 -1
- package/dist/preview-engine/{chunk-7S6ZFYLI.mjs → chunk-OZVCWK27.mjs} +1 -1
- package/dist/preview-engine/{chunk-D5PHI6ET.mjs → chunk-PO4VAAQC.mjs} +1 -1
- package/dist/preview-engine/{chunk-LP3EP33S.mjs → chunk-POPVFC5P.mjs} +1 -1
- package/dist/preview-engine/chunk-PQD5UPHG.mjs +5 -0
- package/dist/preview-engine/{chunk-SA3JUR6D.mjs → chunk-QGBSLNFI.mjs} +1 -1
- package/dist/preview-engine/{chunk-H2F5NVQ6.mjs → chunk-QM3XFEJN.mjs} +1 -1
- package/dist/preview-engine/{chunk-L62MRHGZ.mjs → chunk-R3ZH7YF3.mjs} +1 -1
- package/dist/preview-engine/{chunk-V7ZVVUQU.mjs → chunk-R6YNSBKL.mjs} +1 -1
- package/dist/preview-engine/chunk-S3P3MJYU.mjs +1 -0
- package/dist/preview-engine/chunk-SUUUYXXT.mjs +1 -0
- package/dist/preview-engine/{chunk-55CCFPUX.mjs → chunk-TNZENER3.mjs} +1 -1
- package/dist/preview-engine/chunk-V6VU46ZG.mjs +52 -0
- package/dist/preview-engine/{chunk-5XDHHOF2.mjs → chunk-XCYFPA34.mjs} +1 -1
- package/dist/preview-engine/{chunk-EHIIT4ZR.mjs → chunk-XFYXT76H.mjs} +1 -1
- package/dist/preview-engine/{chunk-V3H7WWOT.mjs → chunk-XLFYM7KH.mjs} +2 -2
- package/dist/preview-engine/{chunk-D7MZHP2Y.mjs → chunk-XSMK5E2V.mjs} +1 -1
- package/dist/preview-engine/{chunk-5UP7FSGT.mjs → chunk-Y6FEU4TV.mjs} +1 -1
- package/dist/preview-engine/{chunk-HXMDPMLB.mjs → chunk-YG35X5R5.mjs} +1 -1
- package/dist/preview-engine/{chunk-KZOLCZIV.mjs → chunk-YITWSOG4.mjs} +1 -1
- package/dist/preview-engine/chunk-ZNGOAGAI.mjs +1 -0
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +24 -24
- package/dist/preview-engine/player.mjs +4 -4
- package/dist/preview-engine/renderers-3Y3EMRDJ.mjs +1 -0
- package/dist/preview-engine/renderers-47UITXLZ.mjs +1 -0
- package/dist/preview-engine/renderers-4AHH6BHF.mjs +1 -0
- package/dist/preview-engine/renderers-54AQK6RF.mjs +1 -0
- package/dist/preview-engine/renderers-6PRVCTYV.mjs +1 -0
- package/dist/preview-engine/{renderers-GUKQUMGG.mjs → renderers-B52QT6MT.mjs} +1 -1
- package/dist/preview-engine/{renderers-AGMH5CRH.mjs → renderers-BE6RVJSE.mjs} +1 -1
- package/dist/preview-engine/renderers-BMM2BH56.mjs +1 -0
- package/dist/preview-engine/{renderers-YWRP23SZ.mjs → renderers-CAUWP4XH.mjs} +2 -2
- package/dist/preview-engine/renderers-CHJWUJVI.mjs +1 -0
- package/dist/preview-engine/renderers-CHOGQHVQ.mjs +1 -0
- package/dist/preview-engine/renderers-DEYDSGJX.mjs +1 -0
- package/dist/preview-engine/renderers-DZTNRCR7.mjs +1 -0
- package/dist/preview-engine/{renderers-BHVPLYNN.mjs → renderers-E3JYRLSD.mjs} +1 -1
- package/dist/preview-engine/renderers-ELO3KWTK.mjs +1 -0
- package/dist/preview-engine/{renderers-YKUQUCTO.mjs → renderers-F2KJNDWA.mjs} +1 -1
- package/dist/preview-engine/renderers-FCV4COVB.mjs +1 -0
- package/dist/preview-engine/{renderers-F2NFJI5L.mjs → renderers-GC7EGB5Z.mjs} +1 -1
- package/dist/preview-engine/renderers-GXCRINGC.mjs +1 -0
- package/dist/preview-engine/renderers-GYJTBVV2.mjs +1 -0
- package/dist/preview-engine/renderers-JA4SLMG3.mjs +1 -0
- package/dist/preview-engine/renderers-JLN77CFZ.mjs +1 -0
- package/dist/preview-engine/{renderers-6BJA6MSU.mjs → renderers-JQHUBWLL.mjs} +1 -1
- package/dist/preview-engine/{renderers-LX654SZ3.mjs → renderers-KBFW7B5F.mjs} +1 -1
- package/dist/preview-engine/{renderers-LK3NRMGR.mjs → renderers-KCP4TFHG.mjs} +1 -1
- package/dist/preview-engine/renderers-KS4HPV6Q.mjs +1 -0
- package/dist/preview-engine/renderers-LJRJMFCR.mjs +1 -0
- package/dist/preview-engine/renderers-LPAPZ5QS.mjs +1 -0
- package/dist/preview-engine/renderers-N5UPJY73.mjs +1 -0
- package/dist/preview-engine/renderers-NS3AIJVG.mjs +1 -0
- package/dist/preview-engine/renderers-OBMTU3QY.mjs +1 -0
- package/dist/preview-engine/{renderers-ZPWOUWZJ.mjs → renderers-PW4OJWHF.mjs} +1 -1
- package/dist/preview-engine/renderers-PXGLEFZO.mjs +1 -0
- package/dist/preview-engine/{renderers-7AO5746S.mjs → renderers-Q2ZDD5K2.mjs} +1 -1
- package/dist/preview-engine/renderers-Q3MD34JN.mjs +1 -0
- package/dist/preview-engine/renderers-QECJP22T.mjs +1 -0
- package/dist/preview-engine/{renderers-LFA5NW4V.mjs → renderers-R5WSHETG.mjs} +4 -4
- package/dist/preview-engine/renderers-RXGNA2Q7.mjs +1 -0
- package/dist/preview-engine/renderers-TG62LZTF.mjs +1 -0
- package/dist/preview-engine/{renderers-AHSGP6LY.mjs → renderers-TUYQLKHJ.mjs} +1 -1
- package/dist/preview-engine/renderers-VTTGFO55.mjs +1 -0
- package/dist/preview-engine/{renderers-UTFXZE3G.mjs → renderers-WG7QBD4D.mjs} +1 -1
- package/dist/preview-engine/{renderers-VGU3LNLT.mjs → renderers-WLH4HRUE.mjs} +1 -1
- package/dist/preview-engine/{renderers-5QYK6766.mjs → renderers-WSMLLSWX.mjs} +1 -1
- package/dist/preview-engine/renderers-XFC6ZPO5.mjs +1 -0
- package/dist/preview-engine/{renderers-UWPH7HBH.mjs → renderers-XUHRY3XH.mjs} +1 -1
- package/dist/preview-engine/renderers-YAOB5XU6.mjs +1 -0
- package/dist/preview-engine/renderers-YTB4FOHT.mjs +1 -0
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-DGqyGGvj.mjs → program-DPFDbeL9.mjs} +12 -7
- package/dist/{program-DGqyGGvj.mjs.map → program-DPFDbeL9.mjs.map} +1 -1
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-CXUohIJ9.mjs → renderer--akPySto.mjs} +2 -2
- package/dist/{renderer-CXUohIJ9.mjs.map → renderer--akPySto.mjs.map} +1 -1
- package/dist/{renderer-2r4EgfdZ.mjs → renderer-0ty5QtXg.mjs} +9 -8
- package/dist/renderer-0ty5QtXg.mjs.map +1 -0
- package/dist/renderer-145WIXyW.mjs +3 -0
- package/dist/{renderer-BJiL-BQY.mjs → renderer-7v-ZNKEJ.mjs} +2 -2
- package/dist/{renderer-BJiL-BQY.mjs.map → renderer-7v-ZNKEJ.mjs.map} +1 -1
- package/dist/renderer-9W8q4Y8D.mjs +3 -0
- package/dist/{renderer-QfSB-cRU.mjs → renderer-B1IXTeF2.mjs} +2 -2
- package/dist/{renderer-QfSB-cRU.mjs.map → renderer-B1IXTeF2.mjs.map} +1 -1
- package/dist/{renderer-CwAjqb2o.mjs → renderer-B52Y2SDC.mjs} +1 -1
- package/dist/renderer-B5HBViEG.mjs +3 -0
- package/dist/renderer-B7naoaVH.mjs +3 -0
- package/dist/{renderer-z6Qb5Z-W.mjs → renderer-BD6Jkc8j.mjs} +2 -2
- package/dist/{renderer-z6Qb5Z-W.mjs.map → renderer-BD6Jkc8j.mjs.map} +1 -1
- package/dist/renderer-BHYmRBem.mjs +3 -0
- package/dist/{renderer-CnRoblJF.mjs → renderer-BHsEOp1I.mjs} +2 -2
- package/dist/{renderer-CnRoblJF.mjs.map → renderer-BHsEOp1I.mjs.map} +1 -1
- package/dist/renderer-BL51bhvQ.mjs +3 -0
- package/dist/{renderer-Q7_DUcnu.mjs → renderer-BNBh4omF.mjs} +2 -2
- package/dist/{renderer-Q7_DUcnu.mjs.map → renderer-BNBh4omF.mjs.map} +1 -1
- package/dist/{renderer-Cx5H41JR.mjs → renderer-BShK_xMJ.mjs} +1 -1
- package/dist/{renderer-D5N2JO7g.mjs → renderer-BUJ6uaJE.mjs} +3 -3
- package/dist/{renderer-D5N2JO7g.mjs.map → renderer-BUJ6uaJE.mjs.map} +1 -1
- package/dist/{renderer-CeADvUU_.mjs → renderer-BV_d3D_3.mjs} +3 -3
- package/dist/{renderer-CeADvUU_.mjs.map → renderer-BV_d3D_3.mjs.map} +1 -1
- package/dist/{renderer-BMrm2Zbz.mjs → renderer-BXWu8aHU.mjs} +3 -3
- package/dist/{renderer-BMrm2Zbz.mjs.map → renderer-BXWu8aHU.mjs.map} +1 -1
- package/dist/{renderer-DcPOsAVu.d.mts → renderer-Bal8734U.d.mts} +2 -2
- package/dist/{renderer-DcPOsAVu.d.mts.map → renderer-Bal8734U.d.mts.map} +1 -1
- package/dist/{renderer-vUjNMbLq.mjs → renderer-BbwOEawB.mjs} +2 -2
- package/dist/{renderer-vUjNMbLq.mjs.map → renderer-BbwOEawB.mjs.map} +1 -1
- package/dist/renderer-BfvBHHNr.mjs +3 -0
- package/dist/{renderer-JjMO41Cv.mjs → renderer-BgrDGRNW.mjs} +2 -2
- package/dist/{renderer-JjMO41Cv.mjs.map → renderer-BgrDGRNW.mjs.map} +1 -1
- package/dist/{renderer-D_QS6p1q.mjs → renderer-BhfFVqCx.mjs} +2 -2
- package/dist/{renderer-D_QS6p1q.mjs.map → renderer-BhfFVqCx.mjs.map} +1 -1
- package/dist/{renderer-CsQ7nY0z.mjs → renderer-Bl9C9lIo.mjs} +1 -1
- package/dist/{renderer-Bwsh5TUv.mjs → renderer-BpTwFaja.mjs} +3 -3
- package/dist/{renderer-Bwsh5TUv.mjs.map → renderer-BpTwFaja.mjs.map} +1 -1
- package/dist/{renderer-Dcd-Pkzd.mjs → renderer-Bpf8EGY1.mjs} +2 -2
- package/dist/{renderer-Dcd-Pkzd.mjs.map → renderer-Bpf8EGY1.mjs.map} +1 -1
- package/dist/{renderer-D1Zs78PQ.mjs → renderer-By91JEn8.mjs} +42 -42
- package/dist/{renderer-D1Zs78PQ.mjs.map → renderer-By91JEn8.mjs.map} +1 -1
- package/dist/renderer-ByxrzTRg.mjs +3 -0
- package/dist/{renderer-eC1gRPRo.mjs → renderer-C-F91lPu.mjs} +2 -2
- package/dist/{renderer-eC1gRPRo.mjs.map → renderer-C-F91lPu.mjs.map} +1 -1
- package/dist/{renderer-B9l641o-.mjs → renderer-C5lJvf-h.mjs} +2 -2
- package/dist/{renderer-B9l641o-.mjs.map → renderer-C5lJvf-h.mjs.map} +1 -1
- package/dist/renderer-CDirzReW.mjs +3 -0
- package/dist/renderer-CGCmbeJ2.mjs +3 -0
- package/dist/renderer-CL3evUmF.mjs +3 -0
- package/dist/{renderer-BtkU0BT-.mjs → renderer-CLUPc9do.mjs} +3 -3
- package/dist/{renderer-BtkU0BT-.mjs.map → renderer-CLUPc9do.mjs.map} +1 -1
- package/dist/{renderer-C28Bab-M.mjs → renderer-CLWAbaCS.mjs} +9 -8
- package/dist/renderer-CLWAbaCS.mjs.map +1 -0
- package/dist/{renderer-COkFM1KL.mjs → renderer-CM5c8a7B.mjs} +8 -7
- package/dist/renderer-CM5c8a7B.mjs.map +1 -0
- package/dist/renderer-CO0KsnEg.mjs +3 -0
- package/dist/renderer-COO44HDO.mjs +3 -0
- package/dist/renderer-C_9SIgZX.mjs +3 -0
- package/dist/{renderer-BYsmLk63.mjs → renderer-Cgy1H0Ql.mjs} +2 -2
- package/dist/{renderer-BYsmLk63.mjs.map → renderer-Cgy1H0Ql.mjs.map} +1 -1
- package/dist/{renderer-5OiVjQan.mjs → renderer-CmMNU1-P.mjs} +9 -9
- package/dist/renderer-CmMNU1-P.mjs.map +1 -0
- package/dist/{renderer-DjiUZ0Vs.mjs → renderer-Cn-p1SyO.mjs} +34 -18
- package/dist/renderer-Cn-p1SyO.mjs.map +1 -0
- package/dist/renderer-CntaTaNq.mjs +3 -0
- package/dist/{renderer-C3L9SNRO.mjs → renderer-CsE9ztUa.mjs} +3 -3
- package/dist/{renderer-C3L9SNRO.mjs.map → renderer-CsE9ztUa.mjs.map} +1 -1
- package/dist/renderer-CtVkU_GA.mjs.map +1 -1
- package/dist/renderer-Cv9JLpL6.mjs +3 -0
- package/dist/{renderer-x2s9LmVL.mjs → renderer-D-4Yh-RK.mjs} +2 -2
- package/dist/{renderer-x2s9LmVL.mjs.map → renderer-D-4Yh-RK.mjs.map} +1 -1
- package/dist/renderer-D0FWIsWn.mjs +3 -0
- package/dist/{renderer-C9BKcHZb.mjs → renderer-D3FsnptO.mjs} +1 -1
- package/dist/renderer-D3jUYUDU.mjs +3 -0
- package/dist/renderer-D5Je-AeQ.mjs +3 -0
- package/dist/{renderer-bebAt6Dz.mjs → renderer-DJPuwTbS.mjs} +10 -8
- package/dist/renderer-DJPuwTbS.mjs.map +1 -0
- package/dist/renderer-DNPwpmYS.mjs +3 -0
- package/dist/{renderer-D54yO_M_.mjs → renderer-DRf4FLSq.mjs} +10 -9
- package/dist/renderer-DRf4FLSq.mjs.map +1 -0
- package/dist/{renderer-DI2RcpKU.mjs → renderer-DVj8jfmO.mjs} +9 -8
- package/dist/renderer-DVj8jfmO.mjs.map +1 -0
- package/dist/renderer-DawVsNLw.mjs +3 -0
- package/dist/renderer-Dl_6Kn87.mjs +3 -0
- package/dist/renderer-DlrJSfaw.mjs +3 -0
- package/dist/{renderer-BUHMkkLU.mjs → renderer-DnXQXk-8.mjs} +2 -2
- package/dist/{renderer-BUHMkkLU.mjs.map → renderer-DnXQXk-8.mjs.map} +1 -1
- package/dist/{renderer-CgVdRbc-.mjs → renderer-Dntxca07.mjs} +2 -2
- package/dist/{renderer-CgVdRbc-.mjs.map → renderer-Dntxca07.mjs.map} +1 -1
- package/dist/renderer-DpScOWGG.mjs +4 -0
- package/dist/{renderer-CMM4DZ1i.mjs → renderer-DvHpzsUV.mjs} +2 -2
- package/dist/{renderer-CMM4DZ1i.mjs.map → renderer-DvHpzsUV.mjs.map} +1 -1
- package/dist/renderer-DxYOA1MM.mjs +3 -0
- package/dist/{renderer-DBp6A7tR.mjs → renderer-E5D4H5dK.mjs} +3 -3
- package/dist/{renderer-DBp6A7tR.mjs.map → renderer-E5D4H5dK.mjs.map} +1 -1
- package/dist/{renderer-D1ib-wB3.mjs → renderer-L72D1mwv.mjs} +3 -3
- package/dist/{renderer-D1ib-wB3.mjs.map → renderer-L72D1mwv.mjs.map} +1 -1
- package/dist/renderer-S7jOr_jF.mjs +3 -0
- package/dist/{renderer-WXylxlu2.mjs → renderer-XRGwrdg8.mjs} +5 -5
- package/dist/renderer-XRGwrdg8.mjs.map +1 -0
- package/dist/{renderer-0gJC-sc8.mjs → renderer-doPt4zQZ.mjs} +2 -2
- package/dist/{renderer-0gJC-sc8.mjs.map → renderer-doPt4zQZ.mjs.map} +1 -1
- package/dist/{renderer-Dm08-hAU.mjs → renderer-h-HOoLwD.mjs} +2 -2
- package/dist/{renderer-Dm08-hAU.mjs.map → renderer-h-HOoLwD.mjs.map} +1 -1
- package/dist/renderer-kN2TeWks.mjs +3 -0
- package/dist/{renderers-BWg16W-V-jhdCp6Vd.mjs → renderers-CP8CFWDs-CAs5DgWj.mjs} +16 -13
- package/dist/renderers-CP8CFWDs-CAs5DgWj.mjs.map +1 -0
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +6 -6
- package/dist/{signals-BwbdO3AN.mjs → signals-CsxqD2AA.mjs} +3 -3
- package/dist/{signals-BwbdO3AN.mjs.map → signals-CsxqD2AA.mjs.map} +1 -1
- package/package.json +54 -54
- package/dist/dist-Bx6J0VcM.mjs.map +0 -1
- package/dist/dist-DKm2IyEJ.mjs.map +0 -1
- package/dist/dist-DgIKXWZ1.mjs.map +0 -1
- package/dist/effects-m3FuatqZ.mjs +0 -811
- package/dist/effects-m3FuatqZ.mjs.map +0 -1
- package/dist/index-DY3mLoPO.d.mts.map +0 -1
- package/dist/index-ogL8Y-Ng.d.mts.map +0 -1
- package/dist/preview-engine/chunk-4Q7JG6WJ.mjs +0 -1
- package/dist/preview-engine/chunk-CVGM2U4J.mjs +0 -47
- package/dist/preview-engine/chunk-N4PWLBZ7.mjs +0 -5
- package/dist/preview-engine/chunk-P3HBP725.mjs +0 -1
- package/dist/preview-engine/chunk-PCB2VB5K.mjs +0 -98
- package/dist/preview-engine/chunk-TMRLZV5X.mjs +0 -1
- package/dist/preview-engine/chunk-XD4GKD6H.mjs +0 -5
- package/dist/preview-engine/chunk-YSTLMWCG.mjs +0 -1
- package/dist/preview-engine/renderers-2AUSIYZN.mjs +0 -1
- package/dist/preview-engine/renderers-2QN6KZJP.mjs +0 -1
- package/dist/preview-engine/renderers-32SKW7ML.mjs +0 -1
- package/dist/preview-engine/renderers-6QAF3LQ2.mjs +0 -1
- package/dist/preview-engine/renderers-76MPTVZK.mjs +0 -1
- package/dist/preview-engine/renderers-AFYKNM6N.mjs +0 -1
- package/dist/preview-engine/renderers-ASTBICLA.mjs +0 -1
- package/dist/preview-engine/renderers-D7PVQFVU.mjs +0 -1
- package/dist/preview-engine/renderers-DB4ABTNA.mjs +0 -1
- package/dist/preview-engine/renderers-FI7YHNLY.mjs +0 -1
- package/dist/preview-engine/renderers-GBHULMPH.mjs +0 -1
- package/dist/preview-engine/renderers-HGT7QDY3.mjs +0 -1
- package/dist/preview-engine/renderers-HOYLA7ZK.mjs +0 -1
- package/dist/preview-engine/renderers-KKI2D3MZ.mjs +0 -1
- package/dist/preview-engine/renderers-KRAJNV4E.mjs +0 -1
- package/dist/preview-engine/renderers-KUGZKSVE.mjs +0 -1
- package/dist/preview-engine/renderers-L2EQQIOC.mjs +0 -1
- package/dist/preview-engine/renderers-MCFQFYEL.mjs +0 -1
- package/dist/preview-engine/renderers-OEVXCGE2.mjs +0 -1
- package/dist/preview-engine/renderers-QVD6C4CS.mjs +0 -1
- package/dist/preview-engine/renderers-RBFWJWVM.mjs +0 -1
- package/dist/preview-engine/renderers-RX3VLVLO.mjs +0 -1
- package/dist/preview-engine/renderers-SM6JP64K.mjs +0 -1
- package/dist/preview-engine/renderers-TKMAATVS.mjs +0 -1
- package/dist/preview-engine/renderers-UZGECFVO.mjs +0 -1
- package/dist/preview-engine/renderers-WJUTT5BB.mjs +0 -1
- package/dist/preview-engine/renderers-XA2M4YXK.mjs +0 -1
- package/dist/preview-engine/renderers-XIHRFEFQ.mjs +0 -1
- package/dist/preview-engine/renderers-XJTA5MFG.mjs +0 -1
- package/dist/preview-engine/renderers-XLTY5APF.mjs +0 -1
- package/dist/preview-engine/renderers-XZ3VXFGZ.mjs +0 -1
- package/dist/renderer--fkO4O8d.mjs +0 -3
- package/dist/renderer-2r4EgfdZ.mjs.map +0 -1
- package/dist/renderer-5OiVjQan.mjs.map +0 -1
- package/dist/renderer-6x7CgHhJ.mjs +0 -3
- package/dist/renderer-B0RDWv1C.mjs +0 -3
- package/dist/renderer-BFOkGS0N.mjs +0 -3
- package/dist/renderer-BaoJiMJO.mjs +0 -3
- package/dist/renderer-C28Bab-M.mjs.map +0 -1
- package/dist/renderer-C4O-L73n.mjs +0 -3
- package/dist/renderer-CGVuhBbA.mjs +0 -3
- package/dist/renderer-CHKB-Or4.mjs +0 -3
- package/dist/renderer-CL9gPcfZ.mjs +0 -3
- package/dist/renderer-COkFM1KL.mjs.map +0 -1
- package/dist/renderer-CSkFF-qe.mjs +0 -3
- package/dist/renderer-CU2c6zWc.mjs +0 -3
- package/dist/renderer-CiLiH6w_.mjs +0 -3
- package/dist/renderer-D54yO_M_.mjs.map +0 -1
- package/dist/renderer-DI2RcpKU.mjs.map +0 -1
- package/dist/renderer-DMaYsSM4.mjs +0 -3
- package/dist/renderer-DPSsf8-t.mjs +0 -3
- package/dist/renderer-DZ7t_l1d.mjs +0 -3
- package/dist/renderer-DjiUZ0Vs.mjs.map +0 -1
- package/dist/renderer-DkJEnKQu.mjs +0 -3
- package/dist/renderer-DlkrKqQj.mjs +0 -3
- package/dist/renderer-DxOQ5S8T.mjs +0 -3
- package/dist/renderer-Ibvw1tE_.mjs +0 -3
- package/dist/renderer-M0jeFo6S.mjs +0 -4
- package/dist/renderer-NhSzqWsQ.mjs +0 -3
- package/dist/renderer-OrhgkzVu.mjs +0 -3
- package/dist/renderer-WXylxlu2.mjs.map +0 -1
- package/dist/renderer-WrFAaLxW.mjs +0 -3
- package/dist/renderer-bbOALT4F.mjs +0 -3
- package/dist/renderer-bebAt6Dz.mjs.map +0 -1
- package/dist/renderer-lXmyzdcx.mjs +0 -3
- package/dist/renderer-ospMsCzr.mjs +0 -3
- package/dist/renderer-xc9wkiC7.mjs +0 -3
- package/dist/renderers-BWg16W-V-jhdCp6Vd.mjs.map +0 -1
- /package/dist/preview-engine/{chunk-VJGK7MLJ.mjs → chunk-CBM7B7EW.mjs} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{B as
|
|
1
|
+
import{B as Rl,C as Bl,D as Rn,E as Bn,F as Il,G as Ul,H as El,I as _l,J as Ur,K as Gl,a as pl,b as fl,c as X,d as Je,e as wl,f as Sl,g as Ml,h as kl,i as Pl,j as Tl,k as Cl,n as Al,o as Nl,p as Dl,q as Fl,r as Ho,s as og,t as ig,u as sg,v as cg,w as dg,x as mg,y as pg,z as fg}from"./chunk-5NYKHIQN.mjs";import{a as Ll}from"./chunk-PIAJWALT.mjs";import{a as Ln,b as $o}from"./chunk-PJ3DVG45.mjs";import{a as Wo,b as yl,d as vl,e as ug,f as lg}from"./chunk-OZVCWK27.mjs";import{a as bl}from"./chunk-LKYN3BM2.mjs";import"./chunk-JPXQPP6J.mjs";import{$ as ma,A as kc,B as Pc,C as Tc,D as Hn,E as lt,F as Yn,G as Xn,H as Zn,I as qn,J as Cc,K as Kn,L as Jn,M as Qn,N as ea,O as ta,P as ra,Q as na,R as aa,S as oa,T as ia,U as sa,V as ua,W as la,X as ar,Y as ct,Z as ca,_ as da,a as ec,b as tc,c as rc,d as nc,e as ac,f as oc,g as ic,h as sc,i as uc,j as lc,k as $n,l as Wn,m as cc,n as dc,o as mc,p as pc,q as fc,r as hc,s as gc,t as bc,u as xc,v as yc,w as vc,x as wc,y as Sc,z as Mc}from"./chunk-S3P3MJYU.mjs";import"./chunk-2XXICKQV.mjs";import"./chunk-BWDARDO6.mjs";import"./chunk-CXFEQ5PM.mjs";import{A as ng,B as ag,C as Yo,D as zl,E as Vl,F as En,G as jl,H as $l,I as Wl,J as Hl,K as Yl,L as Xl,M as _n,N as Zl,O as Gn,P as zn,Q as Vn,R as nr,a as zo,b as Bf,c as If,d as Uf,e as Ef,f as _f,g as Zf,h as qf,i as Kf,j as Jf,k as Qf,l as eh,m as th,n as yh,o as vh,p as wh,q as Sh,r as Mh,s as kh,t as Ph,u as Th,v as Ch,w as Ah,x as Eh,y as qh,z as rg}from"./chunk-7MJVROKR.mjs";import"./chunk-XCYFPA34.mjs";import"./chunk-TNZENER3.mjs";import"./chunk-HPIULG7P.mjs";import"./chunk-BJKH76OM.mjs";import"./chunk-YITWSOG4.mjs";import"./chunk-Y6FEU4TV.mjs";import"./chunk-R3ZH7YF3.mjs";import"./chunk-YG35X5R5.mjs";import"./chunk-JQ4WY6BZ.mjs";import"./chunk-GHMCGTJ2.mjs";import"./chunk-BE3CEVJB.mjs";import"./chunk-FE6RSVKZ.mjs";import"./chunk-5JD65JSJ.mjs";import"./chunk-XSMK5E2V.mjs";import"./chunk-R6YNSBKL.mjs";import"./chunk-HRIKNYPF.mjs";import"./chunk-6JW37VJA.mjs";import"./chunk-QGBSLNFI.mjs";import{a as Gf,b as zf}from"./chunk-YKMBRUAE.mjs";import"./chunk-XFYXT76H.mjs";import"./chunk-QM3XFEJN.mjs";import"./chunk-NRHSNPZV.mjs";import"./chunk-7NVDTELW.mjs";import{a as In,b as Un}from"./chunk-N4LHIPHZ.mjs";import"./chunk-OWOSYNMF.mjs";import{a as Kh,b as Jh,c as Qh,d as eg,e as tg}from"./chunk-VXUJWPIK.mjs";import"./chunk-MC7TZZLD.mjs";import"./chunk-BQ65MU6H.mjs";import"./chunk-POPVFC5P.mjs";import"./chunk-XOEEGC4Z.mjs";import{i as Dn}from"./chunk-XKO4RYKN.mjs";import"./chunk-PO4VAAQC.mjs";import"./chunk-UC7CSW2A.mjs";import"./chunk-CNSHAFEA.mjs";import{a as gl}from"./chunk-FKZ4XXPE.mjs";import{a as Kl,b as Jl,c as Ql,d as jn}from"./chunk-CURR5X7D.mjs";import"./chunk-V6VU46ZG.mjs";import"./chunk-24DXIKXL.mjs";import"./chunk-LIHUEYI5.mjs";import"./chunk-EJTGJVUA.mjs";import"./chunk-EQ4QZRXB.mjs";import"./chunk-AMBSW6OA.mjs";import"./chunk-XLFYM7KH.mjs";import"./chunk-D3TETPLI.mjs";import"./chunk-CBM7B7EW.mjs";import"./chunk-SUUUYXXT.mjs";import{a as ql}from"./chunk-3ROJ7JVY.mjs";import"./chunk-IGFT3XLN.mjs";import{a as fe}from"./chunk-IYVN2QEL.mjs";import{A as Nh,B as Dh,C as Fh,D as Lh,E as Oh,F as Rh,G as Bh,H as Ih,I as Uh,a as i,c as Vf,d as jf,e as $f,f as Wf,g as Hf,h as Yf,i as Xf,j as rh,k as nh,l as ah,m as oh,n as ih,o as sh,p as uh,q as lh,r as ch,s as dh,t as mh,u as ph,v as fh,w as hh,x as gh,y as bh,z as xh}from"./chunk-NQZKBFC6.mjs";import{b as hl}from"./chunk-CYY366IE.mjs";import"./chunk-PQD5UPHG.mjs";import{b as Ol}from"./chunk-DMWSTYFF.mjs";import{a as dl}from"./chunk-37EFVZWT.mjs";import{e as Fn}from"./chunk-66NVL4BN.mjs";import{a as _h,b as Gh,c as zh,d as Vh,e as jh,f as $h,g as Wh,h as Vo,i as Hh,j as jo,k as Yh,l as Xh,m as Zh}from"./chunk-24P6DAB3.mjs";import{a as Dt,b as Mf,c as kf,d as Pf,e as Tf,f as Cf,g as Af,h as Nf,i as ol,j as il,k as Df,l as Ff,m as Lf,n as Of,o as Rf,p as sl,q as ul,r as ll,s as cl}from"./chunk-ZNGOAGAI.mjs";import{d as ml}from"./chunk-6YJP57MZ.mjs";import{a as ut}from"./chunk-KNZU3Z2F.mjs";import"./chunk-RJJRPL42.mjs";import{d as Ft,f as On,i as xl}from"./chunk-YK4XHUP4.mjs";import{m as rr}from"./chunk-4GEWSUX5.mjs";import{r as he}from"./chunk-MTJHQATU.mjs";import"./chunk-HYBAPT6I.mjs";import{o as j}from"./chunk-YAQFFQPG.mjs";import{a as Er,b as _r}from"./chunk-ZEYUXJIV.mjs";import{a as Go,c as tr,d as S,e as g}from"./chunk-BVF64D6H.mjs";var Ou=Go((A2,Lu)=>{g();var wn=()=>new Proxy(function(){},{get:(e,t)=>t==="__esModule"?!0:t===Symbol.toPrimitive?()=>"":wn(),apply:()=>wn(),construct:()=>wn()});Lu.exports=wn()});var Bu=Go((V2,Ru)=>{g();var kn=()=>new Proxy(function(){},{get:(e,t)=>t==="__esModule"?!0:t===Symbol.toPrimitive?()=>"":kn(),apply:()=>kn(),construct:()=>kn()});Ru.exports=kn()});g();g();var Xo=`
|
|
2
2
|
struct MotionBlurUniforms {
|
|
3
3
|
shutterFraction: f32, // shutterAngle / 360.0
|
|
4
4
|
sampleCount: u32, // e.g. 16
|
|
@@ -102,7 +102,7 @@ fn fs(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
|
|
|
102
102
|
fn fs_motion_blur(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
|
|
103
103
|
return executeMotionBlur(pos);
|
|
104
104
|
}
|
|
105
|
-
`;g();var
|
|
105
|
+
`;g();var Zo=`
|
|
106
106
|
struct CameraUniforms {
|
|
107
107
|
viewMatrix: mat4x4<f32>,
|
|
108
108
|
projMatrix: mat4x4<f32>,
|
|
@@ -231,7 +231,7 @@ fn fs_main(in: VertexOutput) -> @location(0) vec4<f32> {
|
|
|
231
231
|
|
|
232
232
|
return vec4<f32>(blendedRGB * alpha, alpha);
|
|
233
233
|
}
|
|
234
|
-
`;g();var
|
|
234
|
+
`;g();var qo=`
|
|
235
235
|
struct SSAOUniforms {
|
|
236
236
|
projMatrix: mat4x4<f32>,
|
|
237
237
|
invProjMatrix: mat4x4<f32>,
|
|
@@ -317,7 +317,7 @@ fn fs_ssao(@builtin(position) pos: vec4<f32>) -> @location(0) f32 {
|
|
|
317
317
|
let ao = 1.0 - (occlusion / f32(max(count, 1u))) * u.intensity;
|
|
318
318
|
return clamp(ao, 0.0, 1.0);
|
|
319
319
|
}
|
|
320
|
-
`,
|
|
320
|
+
`,Ko=`
|
|
321
321
|
struct BlurUniforms {
|
|
322
322
|
viewportWidth: f32,
|
|
323
323
|
viewportHeight: f32,
|
|
@@ -377,7 +377,7 @@ fn fs_blur(@builtin(position) pos: vec4<f32>) -> @location(0) f32 {
|
|
|
377
377
|
}
|
|
378
378
|
return result / totalWeight;
|
|
379
379
|
}
|
|
380
|
-
`;g();var ma=class e{samples=[];frames=[];totalLength=0;constructor(t){if(t.length<2)throw new Error("Path3D requires at least 2 coordinate samples");this.samples=t,this.totalLength=t[t.length-1].distance,this.computeRotationMinimizingFrames()}computeRotationMinimizingFrames(){let t=this.samples.length;this.frames=new Array(t);let r=this.samples[0].tangent,n=[0,-1,0];Math.abs(X.dot(r,n))>.95&&(n=[0,0,1]);let a=X.normalize(X.subtract(n,X.multiplyScalar(r,X.dot(n,r))));X.lengthSq(a)<1e-4&&(a=[1,0,0]);let o=X.normalize(X.cross(r,a));this.frames[0]={normal:a,binormal:o,rotation:this.eulerFromFrame(r,a,o)};for(let s=0;s<t-1;s++){let u=this.samples[s].position,c=this.samples[s+1].position,l=this.samples[s].tangent,m=this.samples[s+1].tangent,d=this.frames[s].normal,p=X.subtract(c,u),h=X.dot(p,p),b;if(h>1e-8){let x=X.subtract(l,X.multiplyScalar(p,2*X.dot(p,l)/h)),y=X.subtract(d,X.multiplyScalar(p,2*X.dot(p,d)/h)),v=X.subtract(m,x),w=X.dot(v,v);w>1e-8?b=X.subtract(y,X.multiplyScalar(v,2*X.dot(v,y)/w)):b=y}else b=d;b=X.normalize(X.subtract(b,X.multiplyScalar(m,X.dot(m,b))));let f=X.normalize(X.cross(m,b));this.frames[s+1]={normal:b,binormal:f,rotation:this.eulerFromFrame(m,b,f)}}}eulerFromFrame(t,r,n){let a=Math.asin(Math.max(-1,Math.min(1,-t[1])))*(180/Math.PI),o=Math.atan2(t[0],t[2])*(180/Math.PI),s=Math.atan2(r[0],r[1])*(180/Math.PI);return[a,o,s]}getPointAt(t){let n=Math.max(0,Math.min(1,t))*this.totalLength;return this.getPointAtDistance(n)}getPointAtDistance(t){let r=Math.max(0,Math.min(this.totalLength,t)),n=this.samples.length,a=0,o=n-1;for(;a<o;){let w=a+o>>1;this.samples[w].distance<r?a=w+1:o=w}let s=Math.max(1,a),u=s-1,c=this.samples[u],l=this.samples[s],m=l.distance-c.distance,d=m>1e-6?(r-c.distance)/m:0,p=X.lerp(c.position,l.position,d),h=X.normalize(X.lerp(c.tangent,l.tangent,d)),b=this.frames[u],f=this.frames[s],x=X.normalize(X.lerp(b.normal,f.normal,d)),y=X.normalize(X.cross(h,x)),v=[b.rotation[0]+(f.rotation[0]-b.rotation[0])*d,b.rotation[1]+(f.rotation[1]-b.rotation[1])*d,b.rotation[2]+(f.rotation[2]-b.rotation[2])*d];return{position:p,tangent:h,normal:x,binormal:y,distance:r,t:this.totalLength>0?r/this.totalLength:0,rotation:v}}static catmullRom(t,r={}){if(t.length<2)throw new Error("Catmull-Rom spline requires at least 2 waypoints");let n=!!r.closed,a=r.samplesPerSegment??40,o=[];if(n)o.push(t[t.length-1]),o.push(...t),o.push(t[0]),o.push(t[1]);else{let m=t[0],d=t[1],p=t[t.length-1],h=t[t.length-2];o.push(X.subtract(m,X.subtract(d,m))),o.push(...t),o.push(X.add(p,X.subtract(p,h)))}let s=n?t.length:t.length-1,u=[];for(let m=0;m<s;m++){let d=o[m],p=o[m+1],h=o[m+2],b=o[m+3],f=m===s-1?a:a-1;for(let x=0;x<=f;x++){let y=x/a,v=y*y,w=v*y,M=-.5*w+v-.5*y,N=1.5*w-2.5*v+1,k=-1.5*w+2*v+.5*y,O=.5*w-.5*v,U=[M*d[0]+N*p[0]+k*h[0]+O*b[0],M*d[1]+N*p[1]+k*h[1]+O*b[1],M*d[2]+N*p[2]+k*h[2]+O*b[2]],V=-1.5*v+2*y-.5,q=4.5*v-5*y,te=-4.5*v+4*y+.5,R=1.5*v-1*y,P=[V*d[0]+q*p[0]+te*h[0]+R*b[0],V*d[1]+q*p[1]+te*h[1]+R*b[1],V*d[2]+q*p[2]+te*h[2]+R*b[2]],T=X.normalize(P);u.push({position:U,tangent:T})}}let c=0,l=[{position:u[0].position,tangent:u[0].tangent,distance:0}];for(let m=1;m<u.length;m++){let d=X.distance(u[m].position,u[m-1].position);c+=d,l.push({position:u[m].position,tangent:u[m].tangent,distance:c})}return new e(l)}static bezier(t,r=50){if(t.length===0)throw new Error("Bezier path requires at least 1 segment");let n=[];for(let s=0;s<t.length;s++){let u=t[s],c=s===t.length-1?r:r-1;for(let l=0;l<=c;l++){let m=l/r,d=1-m,p=d*d,h=p*d,b=m*m,f=b*m,x=[h*u.p0[0]+3*p*m*u.p1[0]+3*d*b*u.p2[0]+f*u.p3[0],h*u.p0[1]+3*p*m*u.p1[1]+3*d*b*u.p2[1]+f*u.p3[1],h*u.p0[2]+3*p*m*u.p1[2]+3*d*b*u.p2[2]+f*u.p3[2]],y=[3*p*(u.p1[0]-u.p0[0])+6*d*m*(u.p2[0]-u.p1[0])+3*b*(u.p3[0]-u.p2[0]),3*p*(u.p1[1]-u.p0[1])+6*d*m*(u.p2[1]-u.p1[1])+3*b*(u.p3[1]-u.p2[1]),3*p*(u.p1[2]-u.p0[2])+6*d*m*(u.p2[2]-u.p1[2])+3*b*(u.p3[2]-u.p2[2])],v=X.normalize(y);n.push({position:x,tangent:v})}}let a=0,o=[{position:n[0].position,tangent:n[0].tangent,distance:0}];for(let s=1;s<n.length;s++)a+=X.distance(n[s].position,n[s-1].position),o.push({position:n[s].position,tangent:n[s].tangent,distance:a});return new e(o)}static helix(t){let{center:r,radius:n,pitch:a,turns:o,axis:s="z",samplesPerTurn:u=60}=t,c=Math.max(10,Math.round(o*u)),l=[];for(let p=0;p<=c;p++){let h=p/c,b=h*o*Math.PI*2,f=(h-.5)*a*o,x=Math.cos(b),y=Math.sin(b),v,w;s==="z"?(v=[r[0]+n*x,r[1]+n*y,r[2]+f],w=[-n*y,n*x,a*o/(o*Math.PI*2)]):s==="y"?(v=[r[0]+n*x,r[1]+f,r[2]+n*y],w=[-n*y,a*o/(o*Math.PI*2),n*x]):(v=[r[0]+f,r[1]+n*x,r[2]+n*y],w=[a*o/(o*Math.PI*2),-n*y,n*x]),l.push({position:v,tangent:X.normalize(w)})}let m=0,d=[{position:l[0].position,tangent:l[0].tangent,distance:0}];for(let p=1;p<l.length;p++)m+=X.distance(l[p].position,l[p-1].position),d.push({position:l[p].position,tangent:l[p].tangent,distance:m});return new e(d)}static circle(t){let{center:r,radius:n,startAngleDeg:a=0,endAngleDeg:o=360,samples:s=128}=t,u=a*Math.PI/180,c=o*Math.PI/180,l=[];for(let p=0;p<=s;p++){let h=u+(c-u)*(p/s),b=Math.cos(h),f=Math.sin(h),x=[r[0]+n*b,r[1],r[2]+n*f],y=[-n*f,0,n*b];l.push({position:x,tangent:X.normalize(y)})}let m=0,d=[{position:l[0].position,tangent:l[0].tangent,distance:0}];for(let p=1;p<l.length;p++)m+=X.distance(l[p].position,l[p-1].position),d.push({position:l[p].position,tangent:l[p].tangent,distance:m});return new e(d)}};g();var pa=class{device;pipeline;cameraLayout;modelLayout;glassLayout;backdropLayout;modelPool;glassPool;vertexBuffer;indexBuffer;modelData=new Float32Array(40);glassData=new Float32Array(16);constructor(t,r,n="depth24plus",a){this.device=t,this.modelPool=new Ln(160,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.glassPool=new Ln(64,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST);let o=t.createShaderModule({label:"pbr-glass.wgsl",code:Xo});this.cameraLayout=a??t.createBindGroupLayout({label:"GlassCameraLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.modelLayout=t.createBindGroupLayout({label:"GlassModelLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.glassLayout=t.createBindGroupLayout({label:"GlassUniformLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.backdropLayout=t.createBindGroupLayout({label:"GlassBackdropLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]});let s=t.createPipelineLayout({bindGroupLayouts:[this.cameraLayout,this.modelLayout,this.glassLayout,this.backdropLayout]});this.pipeline=t.createRenderPipeline({label:"PBRGlassPipeline",layout:s,vertex:{module:o,entryPoint:"vs_main",buffers:[{arrayStride:32,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x2"},{shaderLocation:2,offset:20,format:"float32x3"}]}]},fragment:{module:o,entryPoint:"fs_main",targets:[{format:r,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},depthStencil:{format:n,depthWriteEnabled:!0,depthCompare:"less-equal"},primitive:{topology:"triangle-list",cullMode:"none"}});let u=new Float32Array([-.5,-.5,0,0,0,0,0,-1,.5,-.5,0,1,0,0,0,-1,.5,.5,0,1,1,0,0,-1,-.5,.5,0,0,1,0,0,-1]),c=new Uint16Array([0,1,2,0,2,3]);this.vertexBuffer=t.createBuffer({size:u.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Float32Array(this.vertexBuffer.getMappedRange()).set(u),this.vertexBuffer.unmap(),this.indexBuffer=t.createBuffer({size:c.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Uint16Array(this.indexBuffer.getMappedRange()).set(c),this.indexBuffer.unmap()}resetPools(){this.modelPool.reset(),this.glassPool.reset()}draw(t,r,n,a,o){let s=o.modelMatrix;for(let f=0;f<16;f++)this.modelData[f]=s[f]??0;let u=o.normalMatrix??s;for(let f=0;f<16;f++)this.modelData[16+f]=u[f]??0;let c=o.colorTint??[1,1,1,1];this.modelData[32]=c[0],this.modelData[33]=c[1],this.modelData[34]=c[2],this.modelData[35]=c[3],this.modelData[36]=o.opacity??1,this.modelData[37]=0,this.modelData[38]=1,this.modelData[39]=0;let l=this.modelPool.getBuffer(this.device,this.modelData);this.glassData[0]=o.ior??1.49,this.glassData[1]=o.roughness??.15,this.glassData[2]=o.f0??.04,this.glassData[3]=o.transmission??.92,this.glassData[4]=o.dispersion??.015,this.glassData[5]=o.envIntensity??.65,this.glassData[6]=o.fresnelPower??5,this.glassData[7]=0,this.glassData[8]=o.viewportWidth,this.glassData[9]=o.viewportHeight,this.glassData[10]=0,this.glassData[11]=0;let m=o.tintColor??[1,1,1,1];this.glassData[12]=m[0],this.glassData[13]=m[1],this.glassData[14]=m[2],this.glassData[15]=m[3];let d=this.glassPool.getBuffer(this.device,this.glassData),p=this.device.createBindGroup({layout:this.modelLayout,entries:[{binding:0,resource:{buffer:l}}]}),h=this.device.createBindGroup({layout:this.glassLayout,entries:[{binding:0,resource:{buffer:d}}]}),b=this.device.createBindGroup({layout:this.backdropLayout,entries:[{binding:0,resource:a},{binding:1,resource:n.createView()}]});t.setPipeline(this.pipeline),t.setBindGroup(0,r),t.setBindGroup(1,p),t.setBindGroup(2,h),t.setBindGroup(3,b),t.setVertexBuffer(0,this.vertexBuffer),t.setIndexBuffer(this.indexBuffer,"uint16"),t.drawIndexed(6)}destroy(){this.modelPool.destroy(),this.glassPool.destroy(),this.vertexBuffer.destroy(),this.indexBuffer.destroy()}};g();var fa=class{device;pipeline;bindGroupLayout;uniformBuffer;sampler;constructor(t){this.device=t;let r=t.createShaderModule({label:"motion-blur-shader",code:Yo});this.bindGroupLayout=t.createBindGroupLayout({label:"motion-blur-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]});let n=t.createPipelineLayout({label:"motion-blur-layout",bindGroupLayouts:[this.bindGroupLayout]});this.pipeline=t.createRenderPipeline({label:"motion-blur-pipeline",layout:n,vertex:{module:r,entryPoint:"vs_main"},fragment:{module:r,entryPoint:"fs_motion_blur",targets:[{format:"rgba8unorm",blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-strip"}}),this.uniformBuffer=t.createBuffer({label:"motion-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=t.createSampler({label:"motion-blur-sampler",magFilter:"linear",minFilter:"linear"})}render(t,r,n,a,o,s){let u=(s.shutterAngle??180)/360,c=s.sampleCount??16,l=s.maxVelocity??64,m=s.depthThreshold??.05,d=s.curveType==="box"?0:s.curveType==="triangle"?2:1,p=new ArrayBuffer(32),h=new Float32Array(p),b=new Uint32Array(p);h[0]=u,b[1]=c,h[2]=l,b[3]=16,h[4]=s.width,h[5]=s.height,h[6]=m,b[7]=d,this.device.queue.writeBuffer(this.uniformBuffer,0,p);let f=this.device.createBindGroup({label:"motion-blur-bg",layout:this.bindGroupLayout,entries:[{binding:0,resource:r},{binding:1,resource:n},{binding:2,resource:a},{binding:3,resource:this.sampler},{binding:4,resource:{buffer:this.uniformBuffer}}]}),x=t.beginRenderPass({label:"motion-blur-pass",colorAttachments:[{view:o,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});x.setPipeline(this.pipeline),x.setBindGroup(0,f),x.draw(4),x.end()}destroy(){this.uniformBuffer.destroy()}};g();var ha=class{shadowDepthTexture;shadowDepthView;shadowComparisonSampler;lightViewProjMatrix;constructor(t,r=2048){this.lightViewProjMatrix=Je.identity(),this.shadowDepthTexture=t.createTexture({label:"shadow-depth-map",size:[r,r,1],format:"depth32float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING}),this.shadowDepthView=this.shadowDepthTexture.createView({label:"shadow-depth-view"}),this.shadowComparisonSampler=t.createSampler({label:"shadow-pcf-sampler",compare:"less-equal",magFilter:"linear",minFilter:"linear"})}computeDirectionalLightMatrix(t,r,n=2e3,a=10,o=4e3){let s=Je.lookAt(t,r,[0,1,0]),u=n*.5,c=Je.orthographic(-u,u,-u,u,a,o);return this.lightViewProjMatrix=Je.multiply(c,s),this.lightViewProjMatrix}destroy(){this.shadowDepthTexture.destroy()}};g();var ga=class{device;ssaoPipeline;blurPipeline;ssaoBindGroupLayout;blurBindGroupLayout;ssaoUniformBuffer;blurUniformBuffer;kernelBuffer;noiseTexture;sampler;constructor(t){this.device=t,this.noiseTexture=t.createTexture({label:"ssao-noise-tex",size:[4,4,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST});let r=new Uint8Array(64);for(let s=0;s<16;s++)r[s*4+0]=Math.floor(Math.random()*255),r[s*4+1]=Math.floor(Math.random()*255),r[s*4+2]=128,r[s*4+3]=255;t.queue.writeTexture({texture:this.noiseTexture},r,{bytesPerRow:16},[4,4,1]);let n=new Float32Array(128);for(let s=0;s<32;s++){let u=Math.random(),c=Math.random(),l=Math.acos(Math.sqrt(1-u)),m=2*Math.PI*c,d=(s+1)/32;d=.1+.9*(d*d),n[s*4+0]=Math.sin(l)*Math.cos(m)*d,n[s*4+1]=Math.sin(l)*Math.sin(m)*d,n[s*4+2]=Math.cos(l)*d,n[s*4+3]=0}this.kernelBuffer=t.createBuffer({label:"ssao-kernel-buffer",size:n.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),t.queue.writeBuffer(this.kernelBuffer,0,n);let a=t.createShaderModule({label:"ssao-shader",code:Zo});this.ssaoBindGroupLayout=t.createBindGroupLayout({label:"ssao-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"read-only-storage"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.ssaoPipeline=t.createRenderPipeline({label:"ssao-eval-pipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.ssaoBindGroupLayout]}),vertex:{module:a,entryPoint:"vs_main"},fragment:{module:a,entryPoint:"fs_ssao",targets:[{format:"r8unorm"}]},primitive:{topology:"triangle-strip"}}),this.ssaoUniformBuffer=t.createBuffer({label:"ssao-uniforms",size:256,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});let o=t.createShaderModule({label:"ssao-blur-shader",code:qo});this.blurBindGroupLayout=t.createBindGroupLayout({label:"ssao-blur-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.blurPipeline=t.createRenderPipeline({label:"ssao-blur-pipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.blurBindGroupLayout]}),vertex:{module:o,entryPoint:"vs_main"},fragment:{module:o,entryPoint:"fs_blur",targets:[{format:"r8unorm"}]},primitive:{topology:"triangle-strip"}}),this.blurUniformBuffer=t.createBuffer({label:"ssao-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=t.createSampler({label:"ssao-sampler",magFilter:"linear",minFilter:"linear",addressModeU:"repeat",addressModeV:"repeat"})}render(t,r,n,a,o,s){let u=s.invProjMatrix??Je.invert(s.projMatrix)??Je.identity(),c=new Float32Array(64);c.set(s.projMatrix,0),c.set(u,16),c.set(s.viewMatrix,32),c[48]=s.radius??45,c[49]=s.bias??.025,c[50]=s.intensity??1.5,new Uint32Array(c.buffer)[51]=s.kernelSamples??16,c[52]=s.width,c[53]=s.height,this.device.queue.writeBuffer(this.ssaoUniformBuffer,0,c);let l=this.device.createBindGroup({label:"ssao-eval-bg",layout:this.ssaoBindGroupLayout,entries:[{binding:0,resource:r},{binding:1,resource:n},{binding:2,resource:this.noiseTexture.createView()},{binding:3,resource:this.sampler},{binding:4,resource:{buffer:this.kernelBuffer}},{binding:5,resource:{buffer:this.ssaoUniformBuffer}}]}),m=t.beginRenderPass({label:"ssao-eval-pass",colorAttachments:[{view:a,loadOp:"clear",storeOp:"store",clearValue:{r:1,g:1,b:1,a:1}}]});m.setPipeline(this.ssaoPipeline),m.setBindGroup(0,l),m.draw(4),m.end();let d=new ArrayBuffer(32),p=new Float32Array(d),h=new Int32Array(d);p[0]=s.width,p[1]=s.height,h[2]=s.blurRadius??4,p[3]=s.depthThreshold??.05,this.device.queue.writeBuffer(this.blurUniformBuffer,0,d);let b=this.device.createBindGroup({label:"ssao-blur-bg",layout:this.blurBindGroupLayout,entries:[{binding:0,resource:a},{binding:1,resource:r},{binding:2,resource:this.sampler},{binding:3,resource:{buffer:this.blurUniformBuffer}}]}),f=t.beginRenderPass({label:"ssao-blur-pass",colorAttachments:[{view:o,loadOp:"clear",storeOp:"store",clearValue:{r:1,g:1,b:1,a:1}}]});f.setPipeline(this.blurPipeline),f.setBindGroup(0,b),f.draw(4),f.end()}destroy(){this.ssaoUniformBuffer.destroy(),this.blurUniformBuffer.destroy(),this.noiseTexture.destroy()}};g();var ig=e=>{if(!e)return"srcOver";switch(e){case"source-over":return"srcOver";case"source-in":return"srcIn";case"source-out":return"srcOut";case"source-atop":return"srcATop";case"destination-over":return"dstOver";case"destination-in":return"dstIn";case"destination-out":return"dstOut";case"destination-atop":return"dstATop";case"copy":return"src";case"xor":return"xor";case"multiply":return"multiply";case"screen":return"screen";case"overlay":return"overlay";case"darken":return"darken";case"lighten":case"lighter":return"lighten";case"color-dodge":return"colorDodge";case"color-burn":return"colorBurn";case"hard-light":return"hardLight";case"soft-light":return"softLight";case"difference":return"difference";case"exclusion":return"exclusion";case"hue":return"hue";case"saturation":return"saturation";case"color":return"color";case"luminosity":return"luminosity";default:return"srcOver"}},sg=e=>e==="destination-in"||e==="source-in";g();function cg(e,t,r,n,a="outside"){if(a==="inside"){let o=n/2;return{x:o,y:o,width:Math.max(0,e-n),height:Math.max(0,t-n),radius:r===0?0:Math.max(0,r-o)}}if(a==="outside"){let o=n/2;return{x:-o,y:-o,width:e+n,height:t+n,radius:r===0?0:r+o}}return{x:0,y:0,width:e,height:t,radius:r}}g();g();var Ie={create(e=0,t=0,r=0){return[e,t,r]},copy(e){return[e[0],e[1],e[2]]},set(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e},add(e,t){return[e[0]+t[0],e[1]+t[1],e[2]+t[2]]},subtract(e,t){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]},multiplyScalar(e,t){return[e[0]*t,e[1]*t,e[2]*t]},dot(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},cross(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]},lengthSq(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]},length(e){return Math.hypot(e[0],e[1],e[2])},distance(e,t){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2])},normalize(e){let t=Math.hypot(e[0],e[1],e[2]);if(t===0)return[0,0,0];let r=1/t;return[e[0]*r,e[1]*r,e[2]*r]},lerp(e,t,r){return[e[0]+(t[0]-e[0])*r,e[1]+(t[1]-e[1])*r,e[2]+(t[2]-e[2])*r]},equals(e,t,r=1e-6){return Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r}};var Gr={identity(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},copy(e){return[...e]},multiply(e,t){let r=new Array(16);for(let n=0;n<4;n++)for(let a=0;a<4;a++)r[a*4+n]=e[0+n]*t[a*4+0]+e[4+n]*t[a*4+1]+e[8+n]*t[a*4+2]+e[12+n]*t[a*4+3];return r},translate(e,t,r=0){return[1,0,0,0,0,1,0,0,0,0,1,0,e,t,r,1]},scale(e,t,r=1){return[e,0,0,0,0,t,0,0,0,0,r,0,0,0,0,1]},rotateX(e){let t=Math.cos(e),r=Math.sin(e);return[1,0,0,0,0,t,r,0,0,-r,t,0,0,0,0,1]},rotateY(e){let t=Math.cos(e),r=Math.sin(e);return[t,0,-r,0,0,1,0,0,r,0,t,0,0,0,0,1]},rotateZ(e){let t=Math.cos(e),r=Math.sin(e);return[t,r,0,0,-r,t,0,0,0,0,1,0,0,0,0,1]},rotateAxis(e,t){let r=Ie.normalize(e),n=r[0],a=r[1],o=r[2],s=Math.cos(t),u=Math.sin(t),c=1-s;return[c*n*n+s,c*n*a+u*o,c*n*o-u*a,0,c*n*a-u*o,c*a*a+s,c*a*o+u*n,0,c*n*o+u*a,c*a*o-u*n,c*o*o+s,0,0,0,0,1]},lookAt(e,t,r=[0,-1,0]){let n=Ie.subtract(t,e);Ie.lengthSq(n)===0?n=[0,0,1]:n=Ie.normalize(n);let a=Ie.cross(n,r);Ie.lengthSq(a)===0?a=[1,0,0]:a=Ie.normalize(a);let o=Ie.cross(a,n);return[a[0],o[0],n[0],0,a[1],o[1],n[1],0,a[2],o[2],n[2],0,-Ie.dot(a,e),-Ie.dot(o,e),-Ie.dot(n,e),1]},perspective(e,t,r,n){let a=1/Math.tan(e/2),o=1/(n-r);return[a/t,0,0,0,0,a,0,0,0,0,n*o,1,0,0,-r*n*o,0]},orthographic(e,t,r,n,a,o){let s=1/(t-e),u=1/(n-r),c=1/(o-a);return[2*s,0,0,0,0,2*u,0,0,0,0,c,0,-(t+e)*s,-(n+r)*u,-a*c,1]},invert(e){let t=new Array(16);t[0]=e[5]*e[10]*e[15]-e[5]*e[11]*e[14]-e[9]*e[6]*e[15]+e[9]*e[7]*e[14]+e[13]*e[6]*e[11]-e[13]*e[7]*e[10],t[4]=-e[4]*e[10]*e[15]+e[4]*e[11]*e[14]+e[8]*e[6]*e[15]-e[8]*e[7]*e[14]-e[12]*e[6]*e[11]+e[12]*e[7]*e[10],t[8]=e[4]*e[9]*e[15]-e[4]*e[11]*e[13]-e[8]*e[5]*e[15]+e[8]*e[7]*e[13]+e[12]*e[5]*e[11]-e[12]*e[7]*e[9],t[12]=-e[4]*e[9]*e[14]+e[4]*e[10]*e[13]+e[8]*e[5]*e[14]-e[8]*e[6]*e[13]-e[12]*e[5]*e[10]+e[12]*e[6]*e[9],t[1]=-e[1]*e[10]*e[15]+e[1]*e[11]*e[14]+e[9]*e[2]*e[15]-e[9]*e[3]*e[14]-e[13]*e[2]*e[11]+e[13]*e[3]*e[10],t[5]=e[0]*e[10]*e[15]-e[0]*e[11]*e[14]-e[8]*e[2]*e[15]+e[8]*e[3]*e[14]+e[12]*e[2]*e[11]-e[12]*e[3]*e[10],t[9]=-e[0]*e[9]*e[15]+e[0]*e[11]*e[13]+e[8]*e[1]*e[15]-e[8]*e[3]*e[13]-e[12]*e[1]*e[11]+e[12]*e[3]*e[9],t[13]=e[0]*e[9]*e[14]-e[0]*e[10]*e[13]-e[8]*e[1]*e[14]+e[8]*e[2]*e[13]+e[12]*e[1]*e[10]-e[12]*e[2]*e[9],t[2]=e[1]*e[6]*e[15]-e[1]*e[7]*e[14]-e[5]*e[2]*e[15]+e[5]*e[3]*e[14]+e[13]*e[2]*e[7]-e[13]*e[3]*e[6],t[6]=-e[0]*e[6]*e[15]+e[0]*e[7]*e[14]+e[4]*e[2]*e[15]-e[4]*e[3]*e[14]-e[12]*e[2]*e[7]+e[12]*e[3]*e[6],t[10]=e[0]*e[5]*e[15]-e[0]*e[7]*e[13]-e[4]*e[1]*e[15]+e[4]*e[3]*e[13]+e[12]*e[1]*e[7]-e[12]*e[3]*e[5],t[14]=-e[0]*e[5]*e[14]+e[0]*e[6]*e[13]+e[4]*e[1]*e[14]-e[4]*e[2]*e[13]-e[12]*e[1]*e[6]+e[12]*e[2]*e[5],t[3]=-e[1]*e[6]*e[11]+e[1]*e[7]*e[10]+e[5]*e[2]*e[11]-e[5]*e[3]*e[10]-e[9]*e[2]*e[7]+e[9]*e[3]*e[6],t[7]=e[0]*e[6]*e[11]-e[0]*e[7]*e[10]-e[4]*e[2]*e[11]+e[4]*e[3]*e[10]+e[8]*e[2]*e[7]-e[8]*e[3]*e[6],t[11]=-e[0]*e[5]*e[11]+e[0]*e[7]*e[9]+e[4]*e[1]*e[11]-e[4]*e[3]*e[9]-e[8]*e[1]*e[7]+e[8]*e[3]*e[5],t[15]=e[0]*e[5]*e[10]-e[0]*e[6]*e[9]-e[4]*e[1]*e[10]+e[4]*e[2]*e[9]+e[8]*e[1]*e[6]-e[8]*e[2]*e[5];let r=e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12];if(Math.abs(r)<1e-12)return null;r=1/r;for(let n=0;n<16;n++)t[n]*=r;return t},transpose(e){return[e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15]]},projectPoint(e,t){let r=t[0],n=t[1],a=t[2],o=e[0]*r+e[4]*n+e[8]*a+e[12],s=e[1]*r+e[5]*n+e[9]*a+e[13],u=e[2]*r+e[6]*n+e[10]*a+e[14],c=e[3]*r+e[7]*n+e[11]*a+e[15],l=Math.abs(c)>1e-6?1/c:1;return[o*l,s*l,u*l]},projectRectangle(e,t,r){return[Gr.projectPoint(e,[0,0,0]),Gr.projectPoint(e,[t,0,0]),Gr.projectPoint(e,[t,r,0]),Gr.projectPoint(e,[0,r,0])]},toFloat32Array(e){return new Float32Array(e)}};g();var xg=8,yg=544;function vg(e){if(!e)return[1,1,1];if(Array.isArray(e)){let a=e[0]??1,o=e[1]??1,s=e[2]??1;return[a>1?a/255:a,o>1?o/255:o,s>1?s/255:s]}if(typeof e=="object"&&e!==null){let a=e.r??1,o=e.g??1,s=e.b??1;return[a>1?a/255:a,o>1?o/255:o,s>1?s/255:s]}if(typeof e!="string")return[1,1,1];let t=e.trim().toLowerCase();if(t.startsWith("#")){let a=t.slice(1);if(a.length===3){let o=Number.parseInt(a[0]+a[0],16)/255,s=Number.parseInt(a[1]+a[1],16)/255,u=Number.parseInt(a[2]+a[2],16)/255;return[o,s,u]}if(a.length>=6){let o=Number.parseInt(a.slice(0,2),16)/255,s=Number.parseInt(a.slice(2,4),16)/255,u=Number.parseInt(a.slice(4,6),16)/255;return[o,s,u]}}let r=t.match(/rgba?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/);if(r){let a=Number.parseFloat(r[1])/255,o=Number.parseFloat(r[2])/255,s=Number.parseFloat(r[3])/255;return[Math.max(0,Math.min(1,a)),Math.max(0,Math.min(1,o)),Math.max(0,Math.min(1,s))]}let n=t.match(/hsla?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?/);if(n){let a=Number.parseFloat(n[1])/360,o=Number.parseFloat(n[2])/100,s=Number.parseFloat(n[3])/100;return ec(a,o,s)}return[1,1,1]}function ec(e,t,r){if(t===0)return[r,r,r];let n=(s,u,c)=>{let l=c;return l<0&&(l+=1),l>1&&(l-=1),l<1/6?s+(u-s)*6*l:l<1/2?u:l<2/3?s+(u-s)*(2/3-l)*6:s},a=r<.5?r*(1+t):r+t-r*t,o=2*r-a;return[n(o,a,e+1/3),n(o,a,e),n(o,a,e-1/3)]}g();var Ko=new Map;function se(e){let t=(Ko.get(e)??0)+1;return Ko.set(e,t),`${e}-auto-${t}`}g();function tc(e,...t){let r=[];for(let n=0;n<e.length;n++){let a=e[n];if(a&&r.push({text:a}),n<t.length){let o=t[n];if(o==null)continue;if(Array.isArray(o))for(let s of o)typeof s=="string"?s&&r.push({text:s}):s&&typeof s=="object"&&"text"in s&&r.push(s);else typeof o=="object"&&"text"in o?r.push(o):typeof o=="object"&&"get"in o&&typeof o.get=="function"?r.push({text:o}):r.push({text:String(o)})}}return r}function rc(e,t={}){return{text:e,...t}}function nc(e,t={}){return{text:e,fontWeight:t.fontWeight??700,...t}}function ac(e,t={}){return{text:e,fontStyle:"italic",...t}}function oc(e,t={}){return{text:e,fill:t.fill??"#6366f1",...t}}function ic(e,t,r={}){return{text:e,fill:t,...r}}function sc(e,t,r={}){return{text:e,fontSize:t,...r}}function uc(e,t={}){let{bg:r,fill:n,radius:a,paddingX:o,paddingY:s,...u}=t;return{text:e,fill:n,mark:{background:r??"#6366f133",borderRadius:a??4,paddingX:o??6,paddingY:s??2},...u}}function lc(e,t={}){return{text:e,baselineShift:t.baselineShift??-8,...t}}function cc(e,t={}){return{text:e,baselineShift:t.baselineShift??6,...t}}function dc(e,t={}){return{text:e,fontFamily:t.fontFamily??"JetBrains Mono",mark:t.mark??{background:"#ffffff18",borderRadius:4,paddingX:6,paddingY:2},...t}}function zr(e){if(typeof e=="string")return{text:e};if(!Array.isArray(e))return{text:String(e)};let t=[],r="";for(let n of e)if(typeof n=="string")n&&(t.push({text:n}),r+=n);else if(n&&typeof n=="object"&&"text"in n){let a=n;t.push(a);let o=typeof a.text=="string"?a.text:a.text&&typeof a.text=="object"&&"get"in a.text&&typeof a.text.get=="function"?String(a.text.get()):String(a.text??"");r+=o}return{text:r,spans:t.length>0?t:void 0}}function mc(e){if(!e||!e.includes("<"))return[{text:e}];let t=[],r=/<(\/?[a-zA-Z0-9_-]+)([^>]*)>/g,n=0,a=[],o=()=>{let u={};for(let c of a)Object.assign(u,c.style);return u};for(;;){let u=r.exec(e);if(!u)break;let c=e.slice(n,u.index);c&&t.push({text:c,...o()}),n=u.index+u[0].length;let l=u[1].toLowerCase(),m=u[2];if(l.startsWith("/")){let d=l.slice(1);for(let p=a.length-1;p>=0;p--)if(a[p].tag===d){a.splice(p,1);break}}else{let d={},p=/([a-zA-Z0-9_-]+)=["']([^"']*)["']/g;for(;;){let b=p.exec(m);if(!b)break;d[b[1].toLowerCase()]=b[2]}let h={};if(l==="b"||l==="strong")h.fontWeight=700,(d.color||d.fill)&&(h.fill=d.color??d.fill);else if(l==="i"||l==="em")h.fontStyle="italic",(d.color||d.fill)&&(h.fill=d.color??d.fill);else if(l==="accent")h.fill="#6366f1";else if(l==="color")h.fill=d.value??d.hex??d.fill;else if(l==="size"){let b=parseFloat(d.value??d.px??d.pt??"0");b>0&&(h.fontSize=b)}else if(l==="mark")h.mark={background:d.bg??d.background??"#6366f133",borderRadius:d.radius?parseFloat(d.radius):4,paddingX:d.paddingx?parseFloat(d.paddingx):6,paddingY:d.paddingy?parseFloat(d.paddingy):2},(d.color||d.fill)&&(h.fill=d.color??d.fill);else if(l==="sup")h.baselineShift=-8;else if(l==="sub")h.baselineShift=6;else if(l==="code")h.fontFamily="JetBrains Mono",h.mark={background:d.bg??"#ffffff18",borderRadius:4,paddingX:6,paddingY:2};else if(l==="span"){if((d.color||d.fill)&&(h.fill=d.color??d.fill),d.fontfamily&&(h.fontFamily=d.fontfamily),d.fontsize&&(h.fontSize=parseFloat(d.fontsize)),d.fontweight){let b=parseInt(d.fontweight,10);h.fontWeight=Number.isNaN(b)?d.fontweight:b}(d.fontstyle==="italic"||d.fontstyle==="normal")&&(h.fontStyle=d.fontstyle),d.letterspacing&&(h.letterSpacing=parseFloat(d.letterspacing)),d.baselineshift&&(h.baselineShift=parseFloat(d.baselineshift)),d.opacity&&(h.opacity=parseFloat(d.opacity))}a.push({tag:l,style:h})}}let s=e.slice(n);return s&&t.push({text:s,...o()}),t}g();var or=class{textures=new Map;set(t,r){this.textures.set(t,r)}get(t){return this.textures.get(t)}has(t){return this.textures.has(t)}getOutputs(){return{canny:this.textures.get("canny"),depth:this.textures.get("depth"),normals:this.textures.get("normals"),poseSkeleton:this.textures.get("poseSkeleton"),segmentationMask:this.textures.get("segmentationMask"),faceLandmarks:this.textures.get("faceLandmarks"),motionVectors:this.textures.get("motionVectors"),deflickered:this.textures.get("deflickered")}}createBindGroupEntry(t,r){let n=this.textures.get(t);if(!n)throw new Error(`[ControlNetMultiplexer] Cannot create bind group entry: conditioning texture "${t}" is not registered in VRAM.`);return{binding:r,resource:n.createView({label:`controlnet_${t}_view`})}}exportTensorView(t){let r=this.textures.get(t);if(!r)throw new Error(`[ControlNetMultiplexer] Conditioning tensor "${t}" not found in multiplexer.`);return{texture:r,width:r.width,height:r.height,format:r.format}}async readPixelsAsync(t,r){let n=this.textures.get(r);if(!n)throw new Error(`[ControlNetMultiplexer] Cannot read pixels: conditioning texture "${r}" is missing.`);let a=n.width,o=n.height,s=n.format,u=4;s==="rgba16float"||s==="rg32float"?u=8:s==="r32float"?u=4:s==="rgba32float"&&(u=16);let c=a*u,l=Math.ceil(c/256)*256,m=l*o,d=t.createBuffer({size:m,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,label:`controlnet_readback_staging_${r}`}),p=t.createCommandEncoder({label:`readback_encoder_${r}`});p.copyTextureToBuffer({texture:n},{buffer:d,bytesPerRow:l,rowsPerImage:o},[a,o,1]),t.queue.submit([p.finish()]),await d.mapAsync(GPUMapMode.READ);let h=d.getMappedRange(),b=new Uint8Array(a*o*u),f=new Uint8Array(h);if(l===c)b.set(f.subarray(0,a*o*u));else for(let x=0;x<o;x++){let y=x*l,v=x*c;b.set(f.subarray(y,y+c),v)}return d.unmap(),d.destroy(),{width:a,height:o,format:s,data:b}}destroy(){for(let t of this.textures.values())try{t.destroy()}catch{}this.textures.clear()}};g();g();g();var Jo=`
|
|
380
|
+
`;g();var pa=class e{samples=[];frames=[];totalLength=0;constructor(t){if(t.length<2)throw new Error("Path3D requires at least 2 coordinate samples");this.samples=t,this.totalLength=t[t.length-1].distance,this.computeRotationMinimizingFrames()}computeRotationMinimizingFrames(){let t=this.samples.length;this.frames=new Array(t);let r=this.samples[0].tangent,n=[0,-1,0];Math.abs(X.dot(r,n))>.95&&(n=[0,0,1]);let a=X.normalize(X.subtract(n,X.multiplyScalar(r,X.dot(n,r))));X.lengthSq(a)<1e-4&&(a=[1,0,0]);let o=X.normalize(X.cross(r,a));this.frames[0]={normal:a,binormal:o,rotation:this.eulerFromFrame(r,a,o)};for(let s=0;s<t-1;s++){let u=this.samples[s].position,c=this.samples[s+1].position,l=this.samples[s].tangent,m=this.samples[s+1].tangent,d=this.frames[s].normal,p=X.subtract(c,u),h=X.dot(p,p),b;if(h>1e-8){let x=X.subtract(l,X.multiplyScalar(p,2*X.dot(p,l)/h)),y=X.subtract(d,X.multiplyScalar(p,2*X.dot(p,d)/h)),v=X.subtract(m,x),w=X.dot(v,v);w>1e-8?b=X.subtract(y,X.multiplyScalar(v,2*X.dot(v,y)/w)):b=y}else b=d;b=X.normalize(X.subtract(b,X.multiplyScalar(m,X.dot(m,b))));let f=X.normalize(X.cross(m,b));this.frames[s+1]={normal:b,binormal:f,rotation:this.eulerFromFrame(m,b,f)}}}eulerFromFrame(t,r,n){let a=Math.asin(Math.max(-1,Math.min(1,-t[1])))*(180/Math.PI),o=Math.atan2(t[0],t[2])*(180/Math.PI),s=Math.atan2(r[0],r[1])*(180/Math.PI);return[a,o,s]}getPointAt(t){let n=Math.max(0,Math.min(1,t))*this.totalLength;return this.getPointAtDistance(n)}getPointAtDistance(t){let r=Math.max(0,Math.min(this.totalLength,t)),n=this.samples.length,a=0,o=n-1;for(;a<o;){let w=a+o>>1;this.samples[w].distance<r?a=w+1:o=w}let s=Math.max(1,a),u=s-1,c=this.samples[u],l=this.samples[s],m=l.distance-c.distance,d=m>1e-6?(r-c.distance)/m:0,p=X.lerp(c.position,l.position,d),h=X.normalize(X.lerp(c.tangent,l.tangent,d)),b=this.frames[u],f=this.frames[s],x=X.normalize(X.lerp(b.normal,f.normal,d)),y=X.normalize(X.cross(h,x)),v=[b.rotation[0]+(f.rotation[0]-b.rotation[0])*d,b.rotation[1]+(f.rotation[1]-b.rotation[1])*d,b.rotation[2]+(f.rotation[2]-b.rotation[2])*d];return{position:p,tangent:h,normal:x,binormal:y,distance:r,t:this.totalLength>0?r/this.totalLength:0,rotation:v}}static catmullRom(t,r={}){if(t.length<2)throw new Error("Catmull-Rom spline requires at least 2 waypoints");let n=!!r.closed,a=r.samplesPerSegment??40,o=[];if(n)o.push(t[t.length-1]),o.push(...t),o.push(t[0]),o.push(t[1]);else{let m=t[0],d=t[1],p=t[t.length-1],h=t[t.length-2];o.push(X.subtract(m,X.subtract(d,m))),o.push(...t),o.push(X.add(p,X.subtract(p,h)))}let s=n?t.length:t.length-1,u=[];for(let m=0;m<s;m++){let d=o[m],p=o[m+1],h=o[m+2],b=o[m+3],f=m===s-1?a:a-1;for(let x=0;x<=f;x++){let y=x/a,v=y*y,w=v*y,M=-.5*w+v-.5*y,N=1.5*w-2.5*v+1,k=-1.5*w+2*v+.5*y,F=.5*w-.5*v,U=[M*d[0]+N*p[0]+k*h[0]+F*b[0],M*d[1]+N*p[1]+k*h[1]+F*b[1],M*d[2]+N*p[2]+k*h[2]+F*b[2]],V=-1.5*v+2*y-.5,q=4.5*v-5*y,te=-4.5*v+4*y+.5,R=1.5*v-1*y,T=[V*d[0]+q*p[0]+te*h[0]+R*b[0],V*d[1]+q*p[1]+te*h[1]+R*b[1],V*d[2]+q*p[2]+te*h[2]+R*b[2]],P=X.normalize(T);u.push({position:U,tangent:P})}}let c=0,l=[{position:u[0].position,tangent:u[0].tangent,distance:0}];for(let m=1;m<u.length;m++){let d=X.distance(u[m].position,u[m-1].position);c+=d,l.push({position:u[m].position,tangent:u[m].tangent,distance:c})}return new e(l)}static bezier(t,r=50){if(t.length===0)throw new Error("Bezier path requires at least 1 segment");let n=[];for(let s=0;s<t.length;s++){let u=t[s],c=s===t.length-1?r:r-1;for(let l=0;l<=c;l++){let m=l/r,d=1-m,p=d*d,h=p*d,b=m*m,f=b*m,x=[h*u.p0[0]+3*p*m*u.p1[0]+3*d*b*u.p2[0]+f*u.p3[0],h*u.p0[1]+3*p*m*u.p1[1]+3*d*b*u.p2[1]+f*u.p3[1],h*u.p0[2]+3*p*m*u.p1[2]+3*d*b*u.p2[2]+f*u.p3[2]],y=[3*p*(u.p1[0]-u.p0[0])+6*d*m*(u.p2[0]-u.p1[0])+3*b*(u.p3[0]-u.p2[0]),3*p*(u.p1[1]-u.p0[1])+6*d*m*(u.p2[1]-u.p1[1])+3*b*(u.p3[1]-u.p2[1]),3*p*(u.p1[2]-u.p0[2])+6*d*m*(u.p2[2]-u.p1[2])+3*b*(u.p3[2]-u.p2[2])],v=X.normalize(y);n.push({position:x,tangent:v})}}let a=0,o=[{position:n[0].position,tangent:n[0].tangent,distance:0}];for(let s=1;s<n.length;s++)a+=X.distance(n[s].position,n[s-1].position),o.push({position:n[s].position,tangent:n[s].tangent,distance:a});return new e(o)}static helix(t){let{center:r,radius:n,pitch:a,turns:o,axis:s="z",samplesPerTurn:u=60}=t,c=Math.max(10,Math.round(o*u)),l=[];for(let p=0;p<=c;p++){let h=p/c,b=h*o*Math.PI*2,f=(h-.5)*a*o,x=Math.cos(b),y=Math.sin(b),v,w;s==="z"?(v=[r[0]+n*x,r[1]+n*y,r[2]+f],w=[-n*y,n*x,a*o/(o*Math.PI*2)]):s==="y"?(v=[r[0]+n*x,r[1]+f,r[2]+n*y],w=[-n*y,a*o/(o*Math.PI*2),n*x]):(v=[r[0]+f,r[1]+n*x,r[2]+n*y],w=[a*o/(o*Math.PI*2),-n*y,n*x]),l.push({position:v,tangent:X.normalize(w)})}let m=0,d=[{position:l[0].position,tangent:l[0].tangent,distance:0}];for(let p=1;p<l.length;p++)m+=X.distance(l[p].position,l[p-1].position),d.push({position:l[p].position,tangent:l[p].tangent,distance:m});return new e(d)}static circle(t){let{center:r,radius:n,startAngleDeg:a=0,endAngleDeg:o=360,samples:s=128}=t,u=a*Math.PI/180,c=o*Math.PI/180,l=[];for(let p=0;p<=s;p++){let h=u+(c-u)*(p/s),b=Math.cos(h),f=Math.sin(h),x=[r[0]+n*b,r[1],r[2]+n*f],y=[-n*f,0,n*b];l.push({position:x,tangent:X.normalize(y)})}let m=0,d=[{position:l[0].position,tangent:l[0].tangent,distance:0}];for(let p=1;p<l.length;p++)m+=X.distance(l[p].position,l[p-1].position),d.push({position:l[p].position,tangent:l[p].tangent,distance:m});return new e(d)}};g();var fa=class{device;pipeline;cameraLayout;modelLayout;glassLayout;backdropLayout;modelPool;glassPool;vertexBuffer;indexBuffer;modelData=new Float32Array(40);glassData=new Float32Array(16);constructor(t,r,n="depth24plus",a){this.device=t,this.modelPool=new On(160,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST),this.glassPool=new On(64,GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST);let o=t.createShaderModule({label:"pbr-glass.wgsl",code:Zo});this.cameraLayout=a??t.createBindGroupLayout({label:"GlassCameraLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.modelLayout=t.createBindGroupLayout({label:"GlassModelLayout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.glassLayout=t.createBindGroupLayout({label:"GlassUniformLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.backdropLayout=t.createBindGroupLayout({label:"GlassBackdropLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]});let s=t.createPipelineLayout({bindGroupLayouts:[this.cameraLayout,this.modelLayout,this.glassLayout,this.backdropLayout]});this.pipeline=t.createRenderPipeline({label:"PBRGlassPipeline",layout:s,vertex:{module:o,entryPoint:"vs_main",buffers:[{arrayStride:32,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x2"},{shaderLocation:2,offset:20,format:"float32x3"}]}]},fragment:{module:o,entryPoint:"fs_main",targets:[{format:r,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},depthStencil:{format:n,depthWriteEnabled:!0,depthCompare:"less-equal"},primitive:{topology:"triangle-list",cullMode:"none"}});let u=new Float32Array([-.5,-.5,0,0,0,0,0,-1,.5,-.5,0,1,0,0,0,-1,.5,.5,0,1,1,0,0,-1,-.5,.5,0,0,1,0,0,-1]),c=new Uint16Array([0,1,2,0,2,3]);this.vertexBuffer=t.createBuffer({size:u.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Float32Array(this.vertexBuffer.getMappedRange()).set(u),this.vertexBuffer.unmap(),this.indexBuffer=t.createBuffer({size:c.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0}),new Uint16Array(this.indexBuffer.getMappedRange()).set(c),this.indexBuffer.unmap()}resetPools(){this.modelPool.reset(),this.glassPool.reset()}draw(t,r,n,a,o){let s=o.modelMatrix;for(let f=0;f<16;f++)this.modelData[f]=s[f]??0;let u=o.normalMatrix??s;for(let f=0;f<16;f++)this.modelData[16+f]=u[f]??0;let c=o.colorTint??[1,1,1,1];this.modelData[32]=c[0],this.modelData[33]=c[1],this.modelData[34]=c[2],this.modelData[35]=c[3],this.modelData[36]=o.opacity??1,this.modelData[37]=0,this.modelData[38]=1,this.modelData[39]=0;let l=this.modelPool.getBuffer(this.device,this.modelData);this.glassData[0]=o.ior??1.49,this.glassData[1]=o.roughness??.15,this.glassData[2]=o.f0??.04,this.glassData[3]=o.transmission??.92,this.glassData[4]=o.dispersion??.015,this.glassData[5]=o.envIntensity??.65,this.glassData[6]=o.fresnelPower??5,this.glassData[7]=0,this.glassData[8]=o.viewportWidth,this.glassData[9]=o.viewportHeight,this.glassData[10]=0,this.glassData[11]=0;let m=o.tintColor??[1,1,1,1];this.glassData[12]=m[0],this.glassData[13]=m[1],this.glassData[14]=m[2],this.glassData[15]=m[3];let d=this.glassPool.getBuffer(this.device,this.glassData),p=this.device.createBindGroup({layout:this.modelLayout,entries:[{binding:0,resource:{buffer:l}}]}),h=this.device.createBindGroup({layout:this.glassLayout,entries:[{binding:0,resource:{buffer:d}}]}),b=this.device.createBindGroup({layout:this.backdropLayout,entries:[{binding:0,resource:a},{binding:1,resource:n.createView()}]});t.setPipeline(this.pipeline),t.setBindGroup(0,r),t.setBindGroup(1,p),t.setBindGroup(2,h),t.setBindGroup(3,b),t.setVertexBuffer(0,this.vertexBuffer),t.setIndexBuffer(this.indexBuffer,"uint16"),t.drawIndexed(6)}destroy(){this.modelPool.destroy(),this.glassPool.destroy(),this.vertexBuffer.destroy(),this.indexBuffer.destroy()}};g();var ha=class{device;pipeline;bindGroupLayout;uniformBuffer;sampler;constructor(t){this.device=t;let r=t.createShaderModule({label:"motion-blur-shader",code:Xo});this.bindGroupLayout=t.createBindGroupLayout({label:"motion-blur-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]});let n=t.createPipelineLayout({label:"motion-blur-layout",bindGroupLayouts:[this.bindGroupLayout]});this.pipeline=t.createRenderPipeline({label:"motion-blur-pipeline",layout:n,vertex:{module:r,entryPoint:"vs_main"},fragment:{module:r,entryPoint:"fs_motion_blur",targets:[{format:"rgba8unorm",blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-strip"}}),this.uniformBuffer=t.createBuffer({label:"motion-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=t.createSampler({label:"motion-blur-sampler",magFilter:"linear",minFilter:"linear"})}render(t,r,n,a,o,s){let u=(s.shutterAngle??180)/360,c=s.sampleCount??16,l=s.maxVelocity??64,m=s.depthThreshold??.05,d=s.curveType==="box"?0:s.curveType==="triangle"?2:1,p=new ArrayBuffer(32),h=new Float32Array(p),b=new Uint32Array(p);h[0]=u,b[1]=c,h[2]=l,b[3]=16,h[4]=s.width,h[5]=s.height,h[6]=m,b[7]=d,this.device.queue.writeBuffer(this.uniformBuffer,0,p);let f=this.device.createBindGroup({label:"motion-blur-bg",layout:this.bindGroupLayout,entries:[{binding:0,resource:r},{binding:1,resource:n},{binding:2,resource:a},{binding:3,resource:this.sampler},{binding:4,resource:{buffer:this.uniformBuffer}}]}),x=t.beginRenderPass({label:"motion-blur-pass",colorAttachments:[{view:o,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});x.setPipeline(this.pipeline),x.setBindGroup(0,f),x.draw(4),x.end()}destroy(){this.uniformBuffer.destroy()}};g();var ga=class{shadowDepthTexture;shadowDepthView;shadowComparisonSampler;lightViewProjMatrix;constructor(t,r=2048){this.lightViewProjMatrix=Je.identity(),this.shadowDepthTexture=t.createTexture({label:"shadow-depth-map",size:[r,r,1],format:"depth32float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING}),this.shadowDepthView=this.shadowDepthTexture.createView({label:"shadow-depth-view"}),this.shadowComparisonSampler=t.createSampler({label:"shadow-pcf-sampler",compare:"less-equal",magFilter:"linear",minFilter:"linear"})}computeDirectionalLightMatrix(t,r,n=2e3,a=10,o=4e3){let s=Je.lookAt(t,r,[0,1,0]),u=n*.5,c=Je.orthographic(-u,u,-u,u,a,o);return this.lightViewProjMatrix=Je.multiply(c,s),this.lightViewProjMatrix}destroy(){this.shadowDepthTexture.destroy()}};g();var ba=class{device;ssaoPipeline;blurPipeline;ssaoBindGroupLayout;blurBindGroupLayout;ssaoUniformBuffer;blurUniformBuffer;kernelBuffer;noiseTexture;sampler;constructor(t){this.device=t,this.noiseTexture=t.createTexture({label:"ssao-noise-tex",size:[4,4,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST});let r=new Uint8Array(64);for(let s=0;s<16;s++)r[s*4+0]=Math.floor(Math.random()*255),r[s*4+1]=Math.floor(Math.random()*255),r[s*4+2]=128,r[s*4+3]=255;t.queue.writeTexture({texture:this.noiseTexture},r,{bytesPerRow:16},[4,4,1]);let n=new Float32Array(128);for(let s=0;s<32;s++){let u=Math.random(),c=Math.random(),l=Math.acos(Math.sqrt(1-u)),m=2*Math.PI*c,d=(s+1)/32;d=.1+.9*(d*d),n[s*4+0]=Math.sin(l)*Math.cos(m)*d,n[s*4+1]=Math.sin(l)*Math.sin(m)*d,n[s*4+2]=Math.cos(l)*d,n[s*4+3]=0}this.kernelBuffer=t.createBuffer({label:"ssao-kernel-buffer",size:n.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),t.queue.writeBuffer(this.kernelBuffer,0,n);let a=t.createShaderModule({label:"ssao-shader",code:qo});this.ssaoBindGroupLayout=t.createBindGroupLayout({label:"ssao-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"read-only-storage"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.ssaoPipeline=t.createRenderPipeline({label:"ssao-eval-pipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.ssaoBindGroupLayout]}),vertex:{module:a,entryPoint:"vs_main"},fragment:{module:a,entryPoint:"fs_ssao",targets:[{format:"r8unorm"}]},primitive:{topology:"triangle-strip"}}),this.ssaoUniformBuffer=t.createBuffer({label:"ssao-uniforms",size:256,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});let o=t.createShaderModule({label:"ssao-blur-shader",code:Ko});this.blurBindGroupLayout=t.createBindGroupLayout({label:"ssao-blur-bgl",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"depth"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.blurPipeline=t.createRenderPipeline({label:"ssao-blur-pipeline",layout:t.createPipelineLayout({bindGroupLayouts:[this.blurBindGroupLayout]}),vertex:{module:o,entryPoint:"vs_main"},fragment:{module:o,entryPoint:"fs_blur",targets:[{format:"r8unorm"}]},primitive:{topology:"triangle-strip"}}),this.blurUniformBuffer=t.createBuffer({label:"ssao-blur-uniforms",size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.sampler=t.createSampler({label:"ssao-sampler",magFilter:"linear",minFilter:"linear",addressModeU:"repeat",addressModeV:"repeat"})}render(t,r,n,a,o,s){let u=s.invProjMatrix??Je.invert(s.projMatrix)??Je.identity(),c=new Float32Array(64);c.set(s.projMatrix,0),c.set(u,16),c.set(s.viewMatrix,32),c[48]=s.radius??45,c[49]=s.bias??.025,c[50]=s.intensity??1.5,new Uint32Array(c.buffer)[51]=s.kernelSamples??16,c[52]=s.width,c[53]=s.height,this.device.queue.writeBuffer(this.ssaoUniformBuffer,0,c);let l=this.device.createBindGroup({label:"ssao-eval-bg",layout:this.ssaoBindGroupLayout,entries:[{binding:0,resource:r},{binding:1,resource:n},{binding:2,resource:this.noiseTexture.createView()},{binding:3,resource:this.sampler},{binding:4,resource:{buffer:this.kernelBuffer}},{binding:5,resource:{buffer:this.ssaoUniformBuffer}}]}),m=t.beginRenderPass({label:"ssao-eval-pass",colorAttachments:[{view:a,loadOp:"clear",storeOp:"store",clearValue:{r:1,g:1,b:1,a:1}}]});m.setPipeline(this.ssaoPipeline),m.setBindGroup(0,l),m.draw(4),m.end();let d=new ArrayBuffer(32),p=new Float32Array(d),h=new Int32Array(d);p[0]=s.width,p[1]=s.height,h[2]=s.blurRadius??4,p[3]=s.depthThreshold??.05,this.device.queue.writeBuffer(this.blurUniformBuffer,0,d);let b=this.device.createBindGroup({label:"ssao-blur-bg",layout:this.blurBindGroupLayout,entries:[{binding:0,resource:a},{binding:1,resource:r},{binding:2,resource:this.sampler},{binding:3,resource:{buffer:this.blurUniformBuffer}}]}),f=t.beginRenderPass({label:"ssao-blur-pass",colorAttachments:[{view:o,loadOp:"clear",storeOp:"store",clearValue:{r:1,g:1,b:1,a:1}}]});f.setPipeline(this.blurPipeline),f.setBindGroup(0,b),f.draw(4),f.end()}destroy(){this.ssaoUniformBuffer.destroy(),this.blurUniformBuffer.destroy(),this.noiseTexture.destroy()}};g();var Eg=e=>{if(!e)return"srcOver";switch(e){case"source-over":return"srcOver";case"source-in":return"srcIn";case"source-out":return"srcOut";case"source-atop":return"srcATop";case"destination-over":return"dstOver";case"destination-in":return"dstIn";case"destination-out":return"dstOut";case"destination-atop":return"dstATop";case"copy":return"src";case"xor":return"xor";case"multiply":return"multiply";case"screen":return"screen";case"overlay":return"overlay";case"darken":return"darken";case"lighten":case"lighter":return"lighten";case"color-dodge":return"colorDodge";case"color-burn":return"colorBurn";case"hard-light":return"hardLight";case"soft-light":return"softLight";case"difference":return"difference";case"exclusion":return"exclusion";case"hue":return"hue";case"saturation":return"saturation";case"color":return"color";case"luminosity":return"luminosity";default:return"srcOver"}},_g=e=>e==="destination-in"||e==="source-in";g();function Vg(e,t,r,n,a="outside"){if(a==="inside"){let o=n/2;return{x:o,y:o,width:Math.max(0,e-n),height:Math.max(0,t-n),radius:r===0?0:Math.max(0,r-o)}}if(a==="outside"){let o=n/2;return{x:-o,y:-o,width:e+n,height:t+n,radius:r===0?0:r+o}}return{x:0,y:0,width:e,height:t,radius:r}}g();g();var Ie={create(e=0,t=0,r=0){return[e,t,r]},copy(e){return[e[0],e[1],e[2]]},set(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e},add(e,t){return[e[0]+t[0],e[1]+t[1],e[2]+t[2]]},subtract(e,t){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]},multiplyScalar(e,t){return[e[0]*t,e[1]*t,e[2]*t]},dot(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},cross(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]},lengthSq(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]},length(e){return Math.hypot(e[0],e[1],e[2])},distance(e,t){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2])},normalize(e){let t=Math.hypot(e[0],e[1],e[2]);if(t===0)return[0,0,0];let r=1/t;return[e[0]*r,e[1]*r,e[2]*r]},lerp(e,t,r){return[e[0]+(t[0]-e[0])*r,e[1]+(t[1]-e[1])*r,e[2]+(t[2]-e[2])*r]},equals(e,t,r=1e-6){return Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r}};var Gr={identity(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},copy(e){return[...e]},multiply(e,t){let r=new Array(16);for(let n=0;n<4;n++)for(let a=0;a<4;a++)r[a*4+n]=e[0+n]*t[a*4+0]+e[4+n]*t[a*4+1]+e[8+n]*t[a*4+2]+e[12+n]*t[a*4+3];return r},translate(e,t,r=0){return[1,0,0,0,0,1,0,0,0,0,1,0,e,t,r,1]},scale(e,t,r=1){return[e,0,0,0,0,t,0,0,0,0,r,0,0,0,0,1]},rotateX(e){let t=Math.cos(e),r=Math.sin(e);return[1,0,0,0,0,t,r,0,0,-r,t,0,0,0,0,1]},rotateY(e){let t=Math.cos(e),r=Math.sin(e);return[t,0,-r,0,0,1,0,0,r,0,t,0,0,0,0,1]},rotateZ(e){let t=Math.cos(e),r=Math.sin(e);return[t,r,0,0,-r,t,0,0,0,0,1,0,0,0,0,1]},rotateAxis(e,t){let r=Ie.normalize(e),n=r[0],a=r[1],o=r[2],s=Math.cos(t),u=Math.sin(t),c=1-s;return[c*n*n+s,c*n*a+u*o,c*n*o-u*a,0,c*n*a-u*o,c*a*a+s,c*a*o+u*n,0,c*n*o+u*a,c*a*o-u*n,c*o*o+s,0,0,0,0,1]},lookAt(e,t,r=[0,-1,0]){let n=Ie.subtract(t,e);Ie.lengthSq(n)===0?n=[0,0,1]:n=Ie.normalize(n);let a=Ie.cross(n,r);Ie.lengthSq(a)===0?a=[1,0,0]:a=Ie.normalize(a);let o=Ie.cross(a,n);return[a[0],o[0],n[0],0,a[1],o[1],n[1],0,a[2],o[2],n[2],0,-Ie.dot(a,e),-Ie.dot(o,e),-Ie.dot(n,e),1]},perspective(e,t,r,n){let a=1/Math.tan(e/2),o=1/(n-r);return[a/t,0,0,0,0,a,0,0,0,0,n*o,1,0,0,-r*n*o,0]},orthographic(e,t,r,n,a,o){let s=1/(t-e),u=1/(n-r),c=1/(o-a);return[2*s,0,0,0,0,2*u,0,0,0,0,c,0,-(t+e)*s,-(n+r)*u,-a*c,1]},invert(e){let t=new Array(16);t[0]=e[5]*e[10]*e[15]-e[5]*e[11]*e[14]-e[9]*e[6]*e[15]+e[9]*e[7]*e[14]+e[13]*e[6]*e[11]-e[13]*e[7]*e[10],t[4]=-e[4]*e[10]*e[15]+e[4]*e[11]*e[14]+e[8]*e[6]*e[15]-e[8]*e[7]*e[14]-e[12]*e[6]*e[11]+e[12]*e[7]*e[10],t[8]=e[4]*e[9]*e[15]-e[4]*e[11]*e[13]-e[8]*e[5]*e[15]+e[8]*e[7]*e[13]+e[12]*e[5]*e[11]-e[12]*e[7]*e[9],t[12]=-e[4]*e[9]*e[14]+e[4]*e[10]*e[13]+e[8]*e[5]*e[14]-e[8]*e[6]*e[13]-e[12]*e[5]*e[10]+e[12]*e[6]*e[9],t[1]=-e[1]*e[10]*e[15]+e[1]*e[11]*e[14]+e[9]*e[2]*e[15]-e[9]*e[3]*e[14]-e[13]*e[2]*e[11]+e[13]*e[3]*e[10],t[5]=e[0]*e[10]*e[15]-e[0]*e[11]*e[14]-e[8]*e[2]*e[15]+e[8]*e[3]*e[14]+e[12]*e[2]*e[11]-e[12]*e[3]*e[10],t[9]=-e[0]*e[9]*e[15]+e[0]*e[11]*e[13]+e[8]*e[1]*e[15]-e[8]*e[3]*e[13]-e[12]*e[1]*e[11]+e[12]*e[3]*e[9],t[13]=e[0]*e[9]*e[14]-e[0]*e[10]*e[13]-e[8]*e[1]*e[14]+e[8]*e[2]*e[13]+e[12]*e[1]*e[10]-e[12]*e[2]*e[9],t[2]=e[1]*e[6]*e[15]-e[1]*e[7]*e[14]-e[5]*e[2]*e[15]+e[5]*e[3]*e[14]+e[13]*e[2]*e[7]-e[13]*e[3]*e[6],t[6]=-e[0]*e[6]*e[15]+e[0]*e[7]*e[14]+e[4]*e[2]*e[15]-e[4]*e[3]*e[14]-e[12]*e[2]*e[7]+e[12]*e[3]*e[6],t[10]=e[0]*e[5]*e[15]-e[0]*e[7]*e[13]-e[4]*e[1]*e[15]+e[4]*e[3]*e[13]+e[12]*e[1]*e[7]-e[12]*e[3]*e[5],t[14]=-e[0]*e[5]*e[14]+e[0]*e[6]*e[13]+e[4]*e[1]*e[14]-e[4]*e[2]*e[13]-e[12]*e[1]*e[6]+e[12]*e[2]*e[5],t[3]=-e[1]*e[6]*e[11]+e[1]*e[7]*e[10]+e[5]*e[2]*e[11]-e[5]*e[3]*e[10]-e[9]*e[2]*e[7]+e[9]*e[3]*e[6],t[7]=e[0]*e[6]*e[11]-e[0]*e[7]*e[10]-e[4]*e[2]*e[11]+e[4]*e[3]*e[10]+e[8]*e[2]*e[7]-e[8]*e[3]*e[6],t[11]=-e[0]*e[5]*e[11]+e[0]*e[7]*e[9]+e[4]*e[1]*e[11]-e[4]*e[3]*e[9]-e[8]*e[1]*e[7]+e[8]*e[3]*e[5],t[15]=e[0]*e[5]*e[10]-e[0]*e[6]*e[9]-e[4]*e[1]*e[10]+e[4]*e[2]*e[9]+e[8]*e[1]*e[6]-e[8]*e[2]*e[5];let r=e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12];if(Math.abs(r)<1e-12)return null;r=1/r;for(let n=0;n<16;n++)t[n]*=r;return t},transpose(e){return[e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15]]},projectPoint(e,t){let r=t[0],n=t[1],a=t[2],o=e[0]*r+e[4]*n+e[8]*a+e[12],s=e[1]*r+e[5]*n+e[9]*a+e[13],u=e[2]*r+e[6]*n+e[10]*a+e[14],c=e[3]*r+e[7]*n+e[11]*a+e[15],l=Math.abs(c)>1e-6?1/c:1;return[o*l,s*l,u*l]},projectRectangle(e,t,r){return[Gr.projectPoint(e,[0,0,0]),Gr.projectPoint(e,[t,0,0]),Gr.projectPoint(e,[t,r,0]),Gr.projectPoint(e,[0,r,0])]},toFloat32Array(e){return new Float32Array(e)}};g();var qg=8,Kg=544;function Jg(e){if(!e)return[1,1,1];if(Array.isArray(e)){let a=e[0]??1,o=e[1]??1,s=e[2]??1;return[a>1?a/255:a,o>1?o/255:o,s>1?s/255:s]}if(typeof e=="object"&&e!==null){let a=e.r??1,o=e.g??1,s=e.b??1;return[a>1?a/255:a,o>1?o/255:o,s>1?s/255:s]}if(typeof e!="string")return[1,1,1];let t=e.trim().toLowerCase();if(t.startsWith("#")){let a=t.slice(1);if(a.length===3){let o=Number.parseInt(a[0]+a[0],16)/255,s=Number.parseInt(a[1]+a[1],16)/255,u=Number.parseInt(a[2]+a[2],16)/255;return[o,s,u]}if(a.length>=6){let o=Number.parseInt(a.slice(0,2),16)/255,s=Number.parseInt(a.slice(2,4),16)/255,u=Number.parseInt(a.slice(4,6),16)/255;return[o,s,u]}}let r=t.match(/rgba?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/);if(r){let a=Number.parseFloat(r[1])/255,o=Number.parseFloat(r[2])/255,s=Number.parseFloat(r[3])/255;return[Math.max(0,Math.min(1,a)),Math.max(0,Math.min(1,o)),Math.max(0,Math.min(1,s))]}let n=t.match(/hsla?\s*\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?/);if(n){let a=Number.parseFloat(n[1])/360,o=Number.parseFloat(n[2])/100,s=Number.parseFloat(n[3])/100;return Ac(a,o,s)}return[1,1,1]}function Ac(e,t,r){if(t===0)return[r,r,r];let n=(s,u,c)=>{let l=c;return l<0&&(l+=1),l>1&&(l-=1),l<1/6?s+(u-s)*6*l:l<1/2?u:l<2/3?s+(u-s)*(2/3-l)*6:s},a=r<.5?r*(1+t):r+t-r*t,o=2*r-a;return[n(o,a,e+1/3),n(o,a,e),n(o,a,e-1/3)]}g();var Jo=new Map;function se(e){let t=(Jo.get(e)??0)+1;return Jo.set(e,t),`${e}-auto-${t}`}g();function Nc(e,...t){let r=[];for(let n=0;n<e.length;n++){let a=e[n];if(a&&r.push({text:a}),n<t.length){let o=t[n];if(o==null)continue;if(Array.isArray(o))for(let s of o)typeof s=="string"?s&&r.push({text:s}):s&&typeof s=="object"&&"text"in s&&r.push(s);else typeof o=="object"&&"text"in o?r.push(o):typeof o=="object"&&"get"in o&&typeof o.get=="function"?r.push({text:o}):r.push({text:String(o)})}}return r}function Dc(e,t={}){return{text:e,...t}}function Fc(e,t={}){return{text:e,fontWeight:t.fontWeight??700,...t}}function Lc(e,t={}){return{text:e,fontStyle:"italic",...t}}function Oc(e,t={}){return{text:e,fill:t.fill??"#6366f1",...t}}function Rc(e,t,r={}){return{text:e,fill:t,...r}}function Bc(e,t,r={}){return{text:e,fontSize:t,...r}}function Ic(e,t={}){let{bg:r,fill:n,radius:a,paddingX:o,paddingY:s,...u}=t;return{text:e,fill:n,mark:{background:r??"#6366f133",borderRadius:a??4,paddingX:o??6,paddingY:s??2},...u}}function Uc(e,t={}){return{text:e,baselineShift:t.baselineShift??-8,...t}}function Ec(e,t={}){return{text:e,baselineShift:t.baselineShift??6,...t}}function _c(e,t={}){return{text:e,fontFamily:t.fontFamily??"JetBrains Mono",mark:t.mark??{background:"#ffffff18",borderRadius:4,paddingX:6,paddingY:2},...t}}function zr(e){if(typeof e=="string")return{text:e};if(!Array.isArray(e))return{text:String(e)};let t=[],r="";for(let n of e)if(typeof n=="string")n&&(t.push({text:n}),r+=n);else if(n&&typeof n=="object"&&"text"in n){let a=n;t.push(a);let o=typeof a.text=="string"?a.text:a.text&&typeof a.text=="object"&&"get"in a.text&&typeof a.text.get=="function"?String(a.text.get()):String(a.text??"");r+=o}return{text:r,spans:t.length>0?t:void 0}}function Gc(e){if(!e||!e.includes("<"))return[{text:e}];let t=[],r=/<(\/?[a-zA-Z0-9_-]+)([^>]*)>/g,n=0,a=[],o=()=>{let u={};for(let c of a)Object.assign(u,c.style);return u};for(;;){let u=r.exec(e);if(!u)break;let c=e.slice(n,u.index);c&&t.push({text:c,...o()}),n=u.index+u[0].length;let l=u[1].toLowerCase(),m=u[2];if(l.startsWith("/")){let d=l.slice(1);for(let p=a.length-1;p>=0;p--)if(a[p].tag===d){a.splice(p,1);break}}else{let d={},p=/([a-zA-Z0-9_-]+)=["']([^"']*)["']/g;for(;;){let b=p.exec(m);if(!b)break;d[b[1].toLowerCase()]=b[2]}let h={};if(l==="b"||l==="strong")h.fontWeight=700,(d.color||d.fill)&&(h.fill=d.color??d.fill);else if(l==="i"||l==="em")h.fontStyle="italic",(d.color||d.fill)&&(h.fill=d.color??d.fill);else if(l==="accent")h.fill="#6366f1";else if(l==="color")h.fill=d.value??d.hex??d.fill;else if(l==="size"){let b=parseFloat(d.value??d.px??d.pt??"0");b>0&&(h.fontSize=b)}else if(l==="mark")h.mark={background:d.bg??d.background??"#6366f133",borderRadius:d.radius?parseFloat(d.radius):4,paddingX:d.paddingx?parseFloat(d.paddingx):6,paddingY:d.paddingy?parseFloat(d.paddingy):2},(d.color||d.fill)&&(h.fill=d.color??d.fill);else if(l==="sup")h.baselineShift=-8;else if(l==="sub")h.baselineShift=6;else if(l==="code")h.fontFamily="JetBrains Mono",h.mark={background:d.bg??"#ffffff18",borderRadius:4,paddingX:6,paddingY:2};else if(l==="span"){if((d.color||d.fill)&&(h.fill=d.color??d.fill),d.fontfamily&&(h.fontFamily=d.fontfamily),d.fontsize&&(h.fontSize=parseFloat(d.fontsize)),d.fontweight){let b=parseInt(d.fontweight,10);h.fontWeight=Number.isNaN(b)?d.fontweight:b}(d.fontstyle==="italic"||d.fontstyle==="normal")&&(h.fontStyle=d.fontstyle),d.letterspacing&&(h.letterSpacing=parseFloat(d.letterspacing)),d.baselineshift&&(h.baselineShift=parseFloat(d.baselineshift)),d.opacity&&(h.opacity=parseFloat(d.opacity))}a.push({tag:l,style:h})}}let s=e.slice(n);return s&&t.push({text:s,...o()}),t}g();var or=class{textures=new Map;set(t,r){this.textures.set(t,r)}get(t){return this.textures.get(t)}has(t){return this.textures.has(t)}getOutputs(){return{canny:this.textures.get("canny"),depth:this.textures.get("depth"),normals:this.textures.get("normals"),poseSkeleton:this.textures.get("poseSkeleton"),segmentationMask:this.textures.get("segmentationMask"),faceLandmarks:this.textures.get("faceLandmarks"),motionVectors:this.textures.get("motionVectors"),deflickered:this.textures.get("deflickered")}}createBindGroupEntry(t,r){let n=this.textures.get(t);if(!n)throw new Error(`[ControlNetMultiplexer] Cannot create bind group entry: conditioning texture "${t}" is not registered in VRAM.`);return{binding:r,resource:n.createView({label:`controlnet_${t}_view`})}}exportTensorView(t){let r=this.textures.get(t);if(!r)throw new Error(`[ControlNetMultiplexer] Conditioning tensor "${t}" not found in multiplexer.`);return{texture:r,width:r.width,height:r.height,format:r.format}}async readPixelsAsync(t,r){let n=this.textures.get(r);if(!n)throw new Error(`[ControlNetMultiplexer] Cannot read pixels: conditioning texture "${r}" is missing.`);let a=n.width,o=n.height,s=n.format,u=4;s==="rgba16float"||s==="rg32float"?u=8:s==="r32float"?u=4:s==="rgba32float"&&(u=16);let c=a*u,l=Math.ceil(c/256)*256,m=l*o,d=t.createBuffer({size:m,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,label:`controlnet_readback_staging_${r}`}),p=t.createCommandEncoder({label:`readback_encoder_${r}`});p.copyTextureToBuffer({texture:n},{buffer:d,bytesPerRow:l,rowsPerImage:o},[a,o,1]),t.queue.submit([p.finish()]),await d.mapAsync(GPUMapMode.READ);let h=d.getMappedRange(),b=new Uint8Array(a*o*u),f=new Uint8Array(h);if(l===c)b.set(f.subarray(0,a*o*u));else for(let x=0;x<o;x++){let y=x*l,v=x*c;b.set(f.subarray(y,y+c),v)}return d.unmap(),d.destroy(),{width:a,height:o,format:s,data:b}}destroy(){for(let t of this.textures.values())try{t.destroy()}catch{}this.textures.clear()}};g();g();g();var Qo=`
|
|
381
381
|
struct CannyParams {
|
|
382
382
|
lowThreshold: f32,
|
|
383
383
|
highThreshold: f32,
|
|
@@ -433,7 +433,7 @@ fn computeSobel(@builtin(global_invocation_id) id: vec3<u32>) {
|
|
|
433
433
|
|
|
434
434
|
textureStore(magnitudeTex, id.xy, vec4<f32>(mag, sector, 0.0, 1.0));
|
|
435
435
|
}
|
|
436
|
-
`,
|
|
436
|
+
`,ei=`
|
|
437
437
|
struct CannyParams {
|
|
438
438
|
lowThreshold: f32,
|
|
439
439
|
highThreshold: f32,
|
|
@@ -491,7 +491,7 @@ fn computeNonMaxSuppression(@builtin(global_invocation_id) id: vec3<u32>) {
|
|
|
491
491
|
|
|
492
492
|
textureStore(edgeTex, id.xy, vec4<f32>(edge, edge, edge, 1.0));
|
|
493
493
|
}
|
|
494
|
-
`,
|
|
494
|
+
`,ti=`
|
|
495
495
|
struct CannyParams {
|
|
496
496
|
lowThreshold: f32,
|
|
497
497
|
highThreshold: f32,
|
|
@@ -549,7 +549,7 @@ fn computeNonMaxSuppression(@builtin(global_invocation_id) id: vec3<u32>) {
|
|
|
549
549
|
|
|
550
550
|
textureStore(edgeTex, id.xy, vec4<f32>(edge, 0.0, 0.0, 1.0));
|
|
551
551
|
}
|
|
552
|
-
`;var ir=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"canny_sobel.wgsl",code:
|
|
552
|
+
`;var ir=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"canny_sobel.wgsl",code:Qo});this.sobelPipeline=t.createComputePipeline({label:"CannySobelPipeline",layout:"auto",compute:{module:r,entryPoint:"computeSobel"}});let n=t.createShaderModule({label:"canny_nms_rgba8.wgsl",code:ei});this.nmsRgba8Pipeline=t.createComputePipeline({label:"CannyNmsRgba8Pipeline",layout:"auto",compute:{module:n,entryPoint:"computeNonMaxSuppression"}});let a=t.createShaderModule({label:"canny_nms_r32f.wgsl",code:ti});this.nmsR32fPipeline=t.createComputePipeline({label:"CannyNmsR32fPipeline",layout:"auto",compute:{module:a,entryPoint:"computeNonMaxSuppression"}}),this.uniformBuffer=t.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"canny_uniform_buffer"})}device;sobelPipeline;nmsRgba8Pipeline;nmsR32fPipeline;uniformBuffer;cachedIntermediateTexture;cachedOutputTexture;execute(t,r={}){let n=t.width,a=t.height,o=r.low??.1,s=r.high??.3,u=r.outputFormat??"rgba8unorm",c=new ArrayBuffer(16),l=new Float32Array(c),m=new Uint32Array(c);l[0]=o,l[1]=s,m[2]=n,m[3]=a,this.device.queue.writeBuffer(this.uniformBuffer,0,c),(!this.cachedIntermediateTexture||this.cachedIntermediateTexture.width!==n||this.cachedIntermediateTexture.height!==a)&&(this.cachedIntermediateTexture?.destroy(),this.cachedIntermediateTexture=this.device.createTexture({label:"canny_magnitude_intermediate",size:[n,a],format:"rgba16float",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING})),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==a||this.cachedOutputTexture.format!==u)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:`canny_edge_output_${u}`,size:[n,a],format:u,usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let d=this.device.createCommandEncoder({label:"canny_command_encoder"}),p=this.device.createBindGroup({layout:this.sobelPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:t.createView()},{binding:1,resource:this.cachedIntermediateTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),h=d.beginComputePass({label:"canny_sobel_pass"});h.setPipeline(this.sobelPipeline),h.setBindGroup(0,p),h.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(a/16)),h.end();let b=u==="r32float"?this.nmsR32fPipeline:this.nmsRgba8Pipeline,f=this.device.createBindGroup({layout:b.getBindGroupLayout(0),entries:[{binding:0,resource:this.cachedIntermediateTexture.createView()},{binding:1,resource:this.cachedOutputTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),x=d.beginComputePass({label:"canny_nms_pass"});return x.setPipeline(b),x.setBindGroup(0,f),x.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(a/16)),x.end(),this.device.queue.submit([d.finish()]),this.cachedOutputTexture}destroy(){this.cachedIntermediateTexture?.destroy(),this.cachedOutputTexture?.destroy(),this.uniformBuffer.destroy()}};g();g();var ri=`
|
|
553
553
|
struct DepthNormalParams {
|
|
554
554
|
width: u32,
|
|
555
555
|
height: u32,
|
|
@@ -582,7 +582,7 @@ fn computeNormals(@builtin(global_invocation_id) id: vec3<u32>) {
|
|
|
582
582
|
let packedColor = vec4<f32>(normal * 0.5 + 0.5, 1.0);
|
|
583
583
|
textureStore(normalTex, id.xy, packedColor);
|
|
584
584
|
}
|
|
585
|
-
`,
|
|
585
|
+
`,ni=`
|
|
586
586
|
struct DepthNormalParams {
|
|
587
587
|
width: u32,
|
|
588
588
|
height: u32,
|
|
@@ -615,7 +615,7 @@ fn computeNormals(@builtin(global_invocation_id) id: vec3<u32>) {
|
|
|
615
615
|
let packedColor = vec4<f32>(normal * 0.5 + 0.5, 1.0);
|
|
616
616
|
textureStore(normalTex, id.xy, packedColor);
|
|
617
617
|
}
|
|
618
|
-
`;var sr=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"depth_normals_rgba16f.wgsl",code:
|
|
618
|
+
`;var sr=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"depth_normals_rgba16f.wgsl",code:ri});this.normalRgba16fPipeline=t.createComputePipeline({label:"DepthNormalsRgba16fPipeline",layout:"auto",compute:{module:r,entryPoint:"computeNormals"}});let n=t.createShaderModule({label:"depth_normals_rgba8.wgsl",code:ni});this.normalRgba8Pipeline=t.createComputePipeline({label:"DepthNormalsRgba8Pipeline",layout:"auto",compute:{module:n,entryPoint:"computeNormals"}}),this.uniformBuffer=t.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"depth_normals_uniform_buffer"})}device;normalRgba16fPipeline;normalRgba8Pipeline;uniformBuffer;cachedOutputTexture;execute(t,r={}){let n=t.width,a=t.height,o=r.depthScale??1,s=r.outputFormat??"rgba16float",u=new ArrayBuffer(16),c=new Uint32Array(u),l=new Float32Array(u);c[0]=n,c[1]=a,l[2]=o,l[3]=0,this.device.queue.writeBuffer(this.uniformBuffer,0,u),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==a||this.cachedOutputTexture.format!==s)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:`normal_output_${s}`,size:[n,a],format:s,usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let m=s==="rgba8unorm"?this.normalRgba8Pipeline:this.normalRgba16fPipeline,d=this.device.createCommandEncoder({label:"depth_normals_command_encoder"}),p=this.device.createBindGroup({layout:m.getBindGroupLayout(0),entries:[{binding:0,resource:t.createView()},{binding:1,resource:this.cachedOutputTexture.createView()},{binding:2,resource:{buffer:this.uniformBuffer}}]}),h=d.beginComputePass({label:"depth_normals_compute_pass"});return h.setPipeline(m),h.setBindGroup(0,p),h.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(a/16)),h.end(),this.device.queue.submit([d.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.uniformBuffer.destroy()}};g();g();var ai=`
|
|
619
619
|
struct FaceSegment {
|
|
620
620
|
start: vec2<f32>,
|
|
621
621
|
end: vec2<f32>,
|
|
@@ -672,7 +672,7 @@ fn computeFaceLandmarks(@builtin(global_invocation_id) id: vec3<u32>) {
|
|
|
672
672
|
|
|
673
673
|
textureStore(outputTex, id.xy, outColor);
|
|
674
674
|
}
|
|
675
|
-
`;function Ye(e,t){let r=[];for(let n=0;n<e.length-1;n++)r.push({from:e[n],to:e[n+1],color:t});return r}var ur=[...Ye([70,63,105,66,107],[0,1,1,1]),...Ye([300,293,334,296,336],[0,1,1,1]),...Ye([33,160,158,133,153,144,33],[0,1,0,1]),...Ye([263,387,385,362,380,373,263],[0,1,0,1]),...Ye([168,6,197,195,4],[1,1,0,1]),...Ye([98,97,2,326,327],[1,1,0,1]),...Ye([61,185,40,39,37,0,267,269,270,409,291,375,321,405,314,17,84,181,91,146,61],[1,.2,.2,1]),...Ye([78,95,88,178,87,14,317,402,318,324,308,415,310,311,312,13,82,81,80,191,78],[1,0,.8,1]),...Ye([10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109,10],[.9,.9,.9,1])],Vr=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"face_landmarks.wgsl",code:
|
|
675
|
+
`;function Ye(e,t){let r=[];for(let n=0;n<e.length-1;n++)r.push({from:e[n],to:e[n+1],color:t});return r}var ur=[...Ye([70,63,105,66,107],[0,1,1,1]),...Ye([300,293,334,296,336],[0,1,1,1]),...Ye([33,160,158,133,153,144,33],[0,1,0,1]),...Ye([263,387,385,362,380,373,263],[0,1,0,1]),...Ye([168,6,197,195,4],[1,1,0,1]),...Ye([98,97,2,326,327],[1,1,0,1]),...Ye([61,185,40,39,37,0,267,269,270,409,291,375,321,405,314,17,84,181,91,146,61],[1,.2,.2,1]),...Ye([78,95,88,178,87,14,317,402,318,324,308,415,310,311,312,13,82,81,80,191,78],[1,0,.8,1]),...Ye([10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109,10],[.9,.9,.9,1])],Vr=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"face_landmarks.wgsl",code:ai});this.computePipeline=t.createComputePipeline({label:"FaceLandmarksComputePipeline",layout:"auto",compute:{module:r,entryPoint:"computeFaceLandmarks"}}),this.uniformBuffer=t.createBuffer({size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"face_landmarks_uniform_buffer"});let n=Math.max(256,ur.length*48);this.storageBuffer=t.createBuffer({size:n,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,label:"face_landmarks_storage_buffer"})}device;computePipeline;uniformBuffer;storageBuffer;cachedOutputTexture;execute(t,r={}){let n=r.width??1024,a=r.height??1024,o=r.lineWidth??4,s=Math.max(1,o/2),u=new Uint32Array(4);u[0]=n,u[1]=a,u[2]=ur.length,u[3]=0,this.device.queue.writeBuffer(this.uniformBuffer,0,u);let c=new Float32Array(ur.length*12);for(let p=0;p<ur.length;p++){let h=ur[p],b=t[h.from],f=t[h.to],x=p*12;if(!b||!f||(b.visibility??1)<.2||(f.visibility??1)<.2){c[x+9]=0;continue}c[x+0]=b.x*n,c[x+1]=b.y*a,c[x+2]=f.x*n,c[x+3]=f.y*a,c[x+4]=h.color[0],c[x+5]=h.color[1],c[x+6]=h.color[2],c[x+7]=h.color[3],c[x+8]=s,c[x+9]=1,c[x+10]=0,c[x+11]=0}this.device.queue.writeBuffer(this.storageBuffer,0,c),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==a)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({size:{width:n,height:a},format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.COPY_DST,label:"face_landmarks_output_texture"}));let l=this.device.createBindGroup({label:"FaceLandmarksBindGroup",layout:this.computePipeline.getBindGroupLayout(0),entries:[{binding:0,resource:this.cachedOutputTexture.createView()},{binding:1,resource:{buffer:this.uniformBuffer}},{binding:2,resource:{buffer:this.storageBuffer}}]}),m=this.device.createCommandEncoder({label:"FaceLandmarksCommandEncoder"}),d=m.beginComputePass({label:"FaceLandmarksComputePass"});return d.setPipeline(this.computePipeline),d.setBindGroup(0,l),d.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(a/16)),d.end(),this.device.queue.submit([m.finish()]),this.cachedOutputTexture}destroy(){this.uniformBuffer.destroy(),this.storageBuffer.destroy(),this.cachedOutputTexture?.destroy()}};g();g();var oi=`
|
|
676
676
|
struct SegParams {
|
|
677
677
|
threshold: f32,
|
|
678
678
|
feather: f32,
|
|
@@ -702,21 +702,21 @@ fn computeSegmentation(@builtin(global_invocation_id) id: vec3<u32>) {
|
|
|
702
702
|
|
|
703
703
|
textureStore(outputTex, id.xy, vec4<f32>(alpha, alpha, alpha, 1.0));
|
|
704
704
|
}
|
|
705
|
-
`;var jr=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"segmentation.wgsl",code:ai});this.computePipeline=t.createComputePipeline({label:"SegmentationComputePipeline",layout:"auto",compute:{module:r,entryPoint:"computeSegmentation"}}),this.uniformBuffer=t.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"segmentation_uniform_buffer"})}device;computePipeline;uniformBuffer;cachedOutputTexture;execute(t,r={}){let n=t.width,a=t.height,o=r.threshold??.5,s=r.feather??.05,u=new ArrayBuffer(16),c=new Float32Array(u),l=new Uint32Array(u);c[0]=o,c[1]=s,l[2]=n,l[3]=a,this.device.queue.writeBuffer(this.uniformBuffer,0,u),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==a)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:"segmentation_output_texture",size:[n,a],format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let m=this.device.createCommandEncoder({label:"segmentation_command_encoder"}),d=this.device.createBindGroup({label:"segmentation_bind_group",layout:this.computePipeline.getBindGroupLayout(0),entries:[{binding:0,resource:t.createView({label:"segmentation_input_view"})},{binding:1,resource:this.cachedOutputTexture.createView({label:"segmentation_output_view"})},{binding:2,resource:{buffer:this.uniformBuffer}}]}),p=m.beginComputePass({label:"segmentation_compute_pass"});return p.setPipeline(this.computePipeline),p.setBindGroup(0,d),p.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(a/16),1),p.end(),this.device.queue.submit([m.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=void 0,this.uniformBuffer.destroy()}};var Ft=class e{constructor(t){this.source=t;this.id=`tensor-${Math.random().toString(36).slice(2,9)}`}source;id;cannyOptions;depthNormalsOptions;poseSkeletonOptions;faceLandmarksOptions;segmentationOptions;opticalFlowOptions;deflickerOptions;multiplexer=new or;cannyPipeline;depthNormalsPipeline;posePipeline;facePipeline;segmentationPipeline;opticalFlowPipeline;deflickerPipeline;prevInputTexture;static from(t){return new e(t)}canny(t={}){return this.cannyOptions=t,this}depthNormals(t={}){return this.depthNormalsOptions=t,this}poseSkeleton(t={}){return this.poseSkeletonOptions=t,this}pose(t,r={}){return this.poseSkeletonOptions={...r,landmarks:t},this}faceLandmarks(t={}){return this.faceLandmarksOptions=t,this}face(t,r={}){return this.faceLandmarksOptions={...r,landmarks:t},this}segmentation(t={}){return this.segmentationOptions=t,this}opticalFlow(t={}){return this.opticalFlowOptions=t,this}deflicker(t={}){return this.deflickerOptions=t,this}getMultiplexer(){return this.multiplexer}async execute(t,r){let n=r;if(!n&&typeof this.source?.createView=="function"&&(n=this.source),!n)throw new Error("[TensorPipeline.execute] No GPUTexture available for tensor compute execution. Pass a valid GPUTexture to execute() or initialize with a GPUTexture source.");if(this.cannyOptions){this.cannyPipeline||(this.cannyPipeline=new ir(t));let a=this.cannyPipeline.execute(n,this.cannyOptions);this.multiplexer.set("canny",a)}if(this.depthNormalsOptions){this.depthNormalsPipeline||(this.depthNormalsPipeline=new sr(t));let a=this.depthNormalsPipeline.execute(n,this.depthNormalsOptions);this.multiplexer.set("normals",a)}if(this.poseSkeletonOptions?.landmarks){this.posePipeline||(this.posePipeline=new Ho(t));let a=this.posePipeline.execute(this.poseSkeletonOptions.landmarks,{width:this.poseSkeletonOptions.width??n.width,height:this.poseSkeletonOptions.height??n.height,lineWidth:this.poseSkeletonOptions.lineWidth});this.multiplexer.set("poseSkeleton",a)}if(this.faceLandmarksOptions?.landmarks){this.facePipeline||(this.facePipeline=new Vr(t));let a=this.facePipeline.execute(this.faceLandmarksOptions.landmarks,{width:this.faceLandmarksOptions.width??n.width,height:this.faceLandmarksOptions.height??n.height,lineWidth:this.faceLandmarksOptions.lineWidth});this.multiplexer.set("faceLandmarks",a)}if(this.segmentationOptions){this.segmentationPipeline||(this.segmentationPipeline=new jr(t));let a=this.segmentationPipeline.execute(n,this.segmentationOptions);this.multiplexer.set("segmentationMask",a)}if(this.opticalFlowOptions){this.opticalFlowPipeline||(this.opticalFlowPipeline=new In(t));let a=this.prevInputTexture??n,o=this.opticalFlowPipeline.execute(a,n,this.opticalFlowOptions);this.multiplexer.set("motionVectors",o)}if(this.deflickerOptions){this.deflickerPipeline||(this.deflickerPipeline=new Un(t));let a=this.deflickerPipeline.execute(n,this.deflickerOptions);this.multiplexer.set("deflickered",a)}return this.prevInputTexture=n,this.multiplexer.getOutputs()}toConfig(){return{canny:this.cannyOptions,depthNormals:this.depthNormalsOptions,poseSkeleton:this.poseSkeletonOptions,faceLandmarks:this.faceLandmarksOptions,segmentation:this.segmentationOptions,opticalFlow:this.opticalFlowOptions,deflicker:this.deflickerOptions}}toNode(){return{id:this.id,kind:"tensor",source:this.source,config:this.toConfig()}}destroy(){this.cannyPipeline?.destroy(),this.depthNormalsPipeline?.destroy(),this.posePipeline?.destroy(),this.facePipeline?.destroy(),this.segmentationPipeline?.destroy(),this.opticalFlowPipeline?.destroy(),this.deflickerPipeline?.destroy(),this.multiplexer.destroy()}};g();function oi(e,t){if(!e)return t;let r=ba(e);if(!r||r.name==="none")return t;let{name:n,dir:a,params:o}=r,s=Math.max(0,Math.min(1,t)),u=c=>a==="in"?c(s):a==="out"?1-c(1-s):s<.5?c(s*2)/2:1-c((1-s)*2)/2;switch(n){case"power1":return u(c=>c*c);case"power2":return u(c=>c*c*c);case"power3":return u(c=>c*c*c*c);case"sine":return u(c=>1-Math.cos(c*Math.PI/2));case"circ":return u(c=>1-Math.sqrt(Math.max(0,1-c*c)));case"expo":return u(c=>c===0?0:2**(10*(c-1)));case"back":{let c=o?.[0]??1.70158,l=c+1;return u(m=>l*m*m*m-c*m*m)}case"bounce":{let c=l=>{if(l<.36363636363636365)return 7.5625*l*l;if(l<.7272727272727273){let h=l-.5454545454545454;return 7.5625*h*h+.75}if(l<.9090909090909091){let h=l-.8181818181818182;return 7.5625*h*h+.9375}let p=l-2.625/2.75;return 7.5625*p*p+.984375};return a==="out"?c(s):a==="in"?1-c(1-s):s<.5?(1-c(1-2*s))/2:(1+c(2*s-1))/2}default:return s}}function ba(e){if(e){if(typeof e=="object"&&"name"in e&&"dir"in e)return e;if(typeof e=="string"){let t=e.trim(),r=t.match(/^([a-zA-Z0-9]+)(?:\.([a-zA-Z]+))?(?:\(([^)]+)\))?$/);if(r){let c=r[1].toLowerCase(),l=c==="linear"?"none":c,m=(r[2]||"out").toLowerCase(),d="out";m==="in"?d="in":m==="out"?d="out":m==="inout"&&(d="inOut");let p;return r[3]&&(p=r[3].split(",").map(h=>Number.parseFloat(h.trim())).filter(h=>!Number.isNaN(h))),{name:l,dir:d,...p&&p.length>0?{params:p}:{}}}let n=t.indexOf(".");if(n===-1){let c=t.toLowerCase();return{name:c==="linear"?"none":c,dir:"out"}}let a=t.slice(0,n).toLowerCase(),o=a==="linear"?"none":a,s=t.slice(n+1).toLowerCase(),u="out";return s==="in"?u="in":s==="out"?u="out":s==="inout"&&(u="inOut"),{name:o,dir:u}}}}var Se=class e{tracks=[];constructor(t=[]){this.tracks=[...t]}static create(){return new e}static fromTo(t,r,n,a={}){return new e().fromTo(t,r,n,a)}static keys(t,r){return new e().keys(t,r)}static signal(t,r,n={}){return new e().signal(t,r,n)}static colorSignal(t,r,n){return new e().colorSignal(t,r,n)}static kineticSweep(t=-1,r=1,n=0,a=24,o="power2.out"){return new e().kineticSweep(t,r,n,a,o)}static typewriter(t=0,r=30,n="linear"){return new e().typewriter(t,r,n)}static letterSpacing(t,r,n=0,a=24,o="power2.out"){return new e().letterSpacing(t,r,n,a,o)}static wiggle(t,r={}){return new e().wiggle(t,r)}static spring(t,r={}){return new e().spring(t,r)}static firstMargin(t,r,n={}){return new e().firstMargin(t,r,n)}static strokeWidth(t,r,n={}){return new e().fromTo("strokeWidth",t,r,n)}static rotateX(t,r,n={}){return new e().fromTo("rotateX",t,r,n)}static rotateY(t,r,n={}){return new e().fromTo("rotateY",t,r,n)}static rotateZ(t,r,n={}){return new e().fromTo("rotateZ",t,r,n)}static rotation(t,r,n={}){return new e().fromTo("rotation",t,r,n)}addTrack(t){return this.tracks.push(t),this}fromTo(t,r,n,a={}){let o=a.from??a.start??a.fromFrame??0,s=a.to??a.end??a.toFrame??(a.durationFrames!==void 0?o+a.durationFrames:o+24),u=ba(a.ease),c=this.tracks.find(m=>m.prop===t&&(!m.source||m.source.type==="keyframe"));c||(c={id:`${t}_fromTo_${this.tracks.length}`,prop:t,keyframes:[]},this.tracks.push(c));let l=c.id;return c.keyframes.length===0&&o>0&&c.keyframes.push({id:`${l}_k0`,frame:0,value:r}),(c.keyframes.length===0||c.keyframes[c.keyframes.length-1].frame<o)&&c.keyframes.push({id:`${l}_k_${o}`,frame:o,value:r}),c.keyframes.push({id:`${l}_k_${s}`,frame:s,value:n,...u&&{ease:u}}),c.keyframes.sort((m,d)=>m.frame-d.frame),this}keyframe(t,r,n,a){let o=this.tracks.find(u=>u.prop===t&&(!u.source||u.source.type==="keyframe"));o||(o={id:`${t}_track_${this.tracks.length}`,prop:t,keyframes:[]},this.tracks.push(o));let s=ba(a);return o.keyframes.push({id:`k_${o.keyframes.length}_f${r}`,frame:r,value:n,...s&&{ease:s}}),o.keyframes.sort((u,c)=>u.frame-c.frame),this}keys(t,r){for(let[n,a,o]of r)this.keyframe(t,Math.round(n),a,o);return this}fadeIn(t=0,r=20,n="power2.out"){return this.fromTo("opacity",0,1,{from:t,to:r,ease:n})}fadeOut(t,r,n="power2.in"){return this.fromTo("opacity",1,0,{from:t,to:r,ease:n})}slideInY(t,r,n=0,a=24,o="power2.out"){return this.fromTo("y",t,r,{from:n,to:a,ease:o})}slideInX(t,r,n=0,a=24,o="power2.out"){return this.fromTo("x",t,r,{from:n,to:a,ease:o})}kineticSweep(t=-1,r=1,n=0,a=24,o="power2.out"){return this.fromTo("offset",t,r,{from:n,to:a,ease:o})}typewriter(t=0,r=30,n="linear"){return this.fromTo("text",0,1,{from:t,to:r,ease:n})}letterSpacing(t,r,n=0,a=24,o="power2.out"){return this.fromTo("letterSpacing",t,r,{from:n,to:a,ease:o})}firstMargin(t,r,n={}){return this.fromTo("firstMargin",t,r,n)}lastMargin(t,r,n={}){return this.fromTo("lastMargin",t,r,n)}baselineShift(t,r,n={}){return this.fromTo("baselineShift",t,r,n)}rotateX(t,r,n={}){return this.fromTo("rotateX",t,r,n)}rotateY(t,r,n={}){return this.fromTo("rotateY",t,r,n)}rotateZ(t,r,n={}){return this.fromTo("rotateZ",t,r,n)}perspective(t,r,n={}){return this.fromTo("perspective",t,r,n)}translateZ(t,r,n={}){return this.fromTo("translateZ",t,r,n)}tilt3D(t){let r=t.start??t.fromFrame,n=t.end??t.toFrame,a=t.ease,o=t.from??{},s=t.to,u=["rotateX","rotateY","rotateZ","translateZ","perspective"];for(let c of u){let l=s[c];if(l!==void 0){let m=o[c]??0;this.fromTo(c,m,l,{from:r,to:n,fromFrame:r,toFrame:n,ease:a})}}return this}signal(t,r,n={}){let{handleId:a,inline:o}=Rn(r),s=`${t}_sig_${a}_${this.tracks.length}`,u={type:"signal",inputHandleId:a,multiplier:n.multiplier??1,offset:n.offset??0,smoothingWindowFrames:n.smoothing??0,signalMode:n.mode??"continuous",threshold:n.threshold??.15,accumulateThreshold:n.threshold??.15,debounceFrames:n.debounceFrames??2,channel:n.channel??"primary"};return o&&Bn(u,o),this.tracks.push({id:s,prop:t,source:u,keyframes:[]}),this}colorSignal(t,r,n){let{handleId:a,inline:o}=Rn(r),s=`${t}_colorSig_${a}_${this.tracks.length}`,u={type:"signal",inputHandleId:a,multiplier:1,offset:0,smoothingWindowFrames:n.smoothing??0,colorMode:n.colorMode??"interpolate",colorA:n.colorA,colorB:n.colorB,colorThreshold:n.threshold,channel:"primary"};return o&&Bn(u,o),this.tracks.push({id:s,prop:t,source:u,keyframes:[]}),this}wiggle(t,r={}){let n=`${t}_wiggle_${this.tracks.length}`,a={type:"wiggle",frequency:r.frequency??2,amplitude:r.amplitude??20,octaves:r.octaves??1,seed:r.seed??1234};return this.tracks.push({id:n,prop:t,source:a,keyframes:[]}),this}spring(t,r={}){let n=`${t}_spring_${this.tracks.length}`,a={type:"springOvershoot",damping:r.damping??12,stiffness:r.stiffness??180,mass:r.mass??1};return this.tracks.push({id:n,prop:t,source:a,keyframes:[]}),this}followPath(t,r={}){let n=r.start??r.fromFrame??0,a=r.end??r.toFrame??60,o=Math.max(1,a-n),s=r.samples??Math.max(8,Math.min(60,Math.round(o/2))),u=t.totalLength??1,c=r.fromProgress??0,l=r.toProgress??1;r.fromDistance!==void 0&&u>0&&(c=r.fromDistance/u),r.toDistance!==void 0&&u>0&&(l=r.toDistance/u);let m=r.autoOrient??!0,d=r.banking??0,p=r.pitchOffset??0,h=r.yawOffset??0,b=r.rollOffset??0,f=!1,x=!1,y=!1,v=[];for(let w=0;w<=s;w++){let M=w/s,N=oi(r.ease,M),k=c+N*(l-c),O=Math.round(n+M*o),U=[0,0,0],V=[1,0,0],q=[0,0,0];if(typeof t.getFrameAt=="function"){let T=t.getFrameAt(k);U=T.position,V=T.tangent,q=T.rotation??[0,0,0]}else{let T=t.getPointAt(k);U=T.position,T.tangent&&(V=T.tangent);let $=Math.asin(Math.max(-1,Math.min(1,-V[1])))*(180/Math.PI),H=Math.atan2(V[0],V[2])*(180/Math.PI),_=Math.atan2(V[1],V[0])*(180/Math.PI);q=[$,H,_]}let te=q[0]+p,R=q[1]+h,P=(Math.abs(V[2])<1e-4?Math.atan2(V[1],V[0])*(180/Math.PI):q[2])+b;if(d!==0){let T=Math.min(1,k+.02),$=Math.max(0,k-.02),H=t.getPointAt(T),_=t.getPointAt($),E=H.tangent??[1,0,0],W=_.tangent??[1,0,0],re=Math.atan2(E[0],E[2]),de=Math.atan2(W[0],W[2]),ae=re-de;P-=ae*d*57.2958}Math.abs(U[2])>1e-4&&(f=!0),Math.abs(te)>1e-4&&(x=!0),Math.abs(R)>1e-4&&(y=!0),v.push({f:O,x:U[0],y:U[1],z:U[2],rx:te,ry:R,rz:P})}for(let w of v)this.keyframe("x",w.f,w.x),this.keyframe("y",w.f,w.y),f&&this.keyframe("z",w.f,w.z),m&&(this.keyframe("rotateZ",w.f,w.rz),x&&this.keyframe("rotateX",w.f,w.rx),y&&this.keyframe("rotateY",w.f,w.ry));return this}applyTo(t){return t.animation=this.toSpec(),t}toSpec(){return{tracks:this.tracks}}toJSON(){return this.toSpec()}},xa=class e extends Se{static camera(){return new e}dolly(t,r,n={}){if(typeof t=="object"){let a=t,o=a.start??a.fromFrame??0,s=a.end??a.toFrame??0;return this.fromTo("cameraZ",a.fromDistance,a.toDistance,{from:o,to:s,ease:a.ease})}return this.fromTo("cameraZ",t,r??t,n)}orbit(t){let r=t.start??t.fromFrame??0,n=t.end??t.toFrame??0;return t.azimuth&&this.fromTo("orbitAzimuth",t.azimuth.from??0,t.azimuth.to,{from:r,to:n,ease:t.ease}),t.elevation&&this.fromTo("orbitElevation",t.elevation.from??0,t.elevation.to,{from:r,to:n,ease:t.ease}),t.radius&&this.fromTo("orbitRadius",t.radius.from??1500,t.radius.to,{from:r,to:n,ease:t.ease}),this}truck(t,r,n={}){return this.fromTo("cameraX",t,r,n)}pedestal(t,r,n={}){return this.fromTo("cameraY",t,r,n)}pan(t,r,n={}){return this.fromTo("cameraYaw",t,r,n)}tilt(t,r,n={}){return this.fromTo("cameraPitch",t,r,n)}roll(t,r,n={}){return this.fromTo("cameraRoll",t,r,n)}rackFocus(t){let r=t.start??t.fromFrame??0,n=t.end??t.toFrame??0;return this.fromTo("focusDistance",t.fromDistance,t.toDistance,{from:r,to:n,ease:t.ease??"power2.inOut"}),t.toFStop!==void 0&&this.fromTo("fStop",t.fromFStop??2.8,t.toFStop,{from:r,to:n,ease:t.ease??"power2.inOut"}),this}handheld(t){let r=t.start??t.fromFrame??0,n=t.end??t.toFrame??0;return this.fromTo("shakeTranslation",0,t.translationAmplitude,{from:r,to:n}),this.fromTo("shakeRotation",0,t.rotationAmplitude,{from:r,to:n}),this}followPath3D(t,r={}){let n=r.start??r.fromFrame??0,a=r.end??r.toFrame??60,o=Math.max(1,a-n),s=r.samples??Math.max(8,Math.min(60,Math.round(o/2))),u=r.mode??(r.target?"lookAtTarget":"leadTarget"),c=r.fromProgress??0,l=r.toProgress??1,m=r.lookAhead??.05;for(let d=0;d<=s;d++){let p=d/s,h=oi(r.ease,p),b=c+h*(l-c),f=Math.round(n+p*o),x=[0,0,0],y=[0,0,0];if(typeof t.getFrameAt=="function"){let v=t.getFrameAt(b);x=v.position,y=v.rotation??[0,0,0]}else x=t.getPointAt(b).position;if(this.keyframe("cameraX",f,x[0]),this.keyframe("cameraY",f,x[1]),this.keyframe("cameraZ",f,x[2]),u==="lookAtTarget"){let v=r.target??[x[0],x[1],0];this.keyframe("targetX",f,v[0]),this.keyframe("targetY",f,v[1]),this.keyframe("targetZ",f,v[2])}else if(u==="leadTarget"){let v=Math.min(1,b+m),w=t.getPointAt(v);this.keyframe("targetX",f,w.position[0]),this.keyframe("targetY",f,w.position[1]),this.keyframe("targetZ",f,w.position[2])}else u==="orientAlongPath"&&(this.keyframe("cameraPitch",f,y[0]),this.keyframe("cameraYaw",f,y[1]),this.keyframe("cameraRoll",f,y[2]))}return this}};g();g();var ya=class e{name;props={};selectors=[];constructor(t){this.name=t}static create(t){return new e(t)}skew(t,r=0){return this.props.skew=t,this.props.skewAxis=r,this}anchor(t,r="character",n=0,a=0){return this.props.anchor={grouping:r,preset:t,anchorX:.5,anchorY:.5,offsetX:n,offsetY:a},this}anchorNormalized(t,r,n="character"){return this.props.anchor={grouping:n,preset:"custom",anchorX:t,anchorY:r,offsetX:0,offsetY:0},this}translateZ(t){return this.props.translateZ=t,this}tilt3D(t=0,r=0,n=0){return this.props.rotationX=t,this.props.rotationY=r,this.props.rotationZ=n,this}rotationX(t){return this.props.rotationX=t,this}rotationY(t){return this.props.rotationY=t,this}rotationZ(t){return this.props.rotationZ=t,this}volumetricFormation(t="cylinder",r=300,n=120,a=360,o=1200,s="y"){return this.props.formation={mode:t,radius:r,pitch:n,totalAngle:a,perspective:o,axis:s},this}lineSpacing(t,r=0){return this.props.lineSpacing=t,this.props.lineAnchor=r,this}lineAnchor(t){return this.props.lineAnchor=t,this}spring(t=180,r=12,n=1,a=0){return this.props.spring={stiffness:t,damping:r,mass:n,initialVelocity:a,overshootMultiplier:1},this}stroke(t,r="#ffffff",n=1){return this.props.stroke={strokeWidth:t,strokeColor:r,strokeAlign:"center",fillOpacity:n,dashOffset:0},this}variableFont(t){return this.props.variableAxes=t,this}chromaticGlitch(t,r=0,n=-t,a=0){return this.props.chromaticGlitch={redShiftX:t,redShiftY:r,blueShiftX:n,blueShiftY:a,sliceProbability:0,sliceAmplitude:0},this}audioSpectrum(t,r=60,n=16e3,a=2.5){return this.props.audioSpectrum={signalChannel:t,minFreqHz:r,maxFreqHz:n,scaleAxis:"scaleY",minScale:.2,maxScale:a,peakDecay:.8},this}longShadow(t=45,r=40,n="#000000",a=.8,o=0,s=16){return this.props.longShadow={angle:t,length:r,color:n,startOpacity:a,endOpacity:o,steps:s},this}particleDissolve(t=0,r=90,n=120){return this.props.particleDissolve={progress:t,dispersalAngle:r,maxDisplacement:n,turbulence:.5,particleSize:2},this}addExpressionSelector(t,r="add"){return this.selectors.push({type:"expression",expression:t,mode:r,amount:1}),this}expressionSelector(t,r="add"){return this.addExpressionSelector(t,r)}x(t){return this.props.x=t,this}y(t){return this.props.y=t,this}scale(t){return this.props.scale=t,this}scaleX(t){return this.props.scaleX=t,this}scaleY(t){return this.props.scaleY=t,this}rotation(t){return this.props.rotation=t,this}opacity(t){return this.props.opacity=t,this}blur(t){return this.props.blur=t,this}fillColor(t){return this.props.fillColor=t,this}build(){return{name:this.name,selectors:this.selectors,props:this.props}}};g();var ii=i.enum(["character","word","line","all"]),si=i.enum(["center","baseline","bottom_left","bottom_center","bottom_right","top_left","top_center","top_right","custom"]),ui=i.object({grouping:ii.default("character"),preset:si.default("center"),anchorX:i.number().default(.5),anchorY:i.number().default(.5),offsetX:i.number().default(0),offsetY:i.number().default(0)}),pc=i.object({skew:i.number().min(-90).max(90),skewAxis:i.number().default(0)}),fc=i.object({lineSpacing:i.number(),lineAnchor:i.number().min(0).max(1).default(0)}),li=i.enum(["planar","vortex","cylinder","helix"]),va=i.object({mode:li.default("planar"),radius:i.number().default(300),pitch:i.number().default(120),totalAngle:i.number().default(360),axis:i.enum(["x","y","z"]).default("y"),perspective:i.number().positive().default(1200)}),hc=i.object({translateZ:i.number().optional(),rotationX:i.number().optional(),rotationY:i.number().optional(),rotationZ:i.number().optional(),formation:va.optional()}),ci=i.object({stiffness:i.number().positive().default(180),damping:i.number().positive().default(12),mass:i.number().positive().default(1),initialVelocity:i.number().default(0),overshootMultiplier:i.number().min(.5).max(3).default(1)}),gc=i.object({type:i.literal("expression"),name:i.string().optional(),expression:i.string(),mode:i.enum(["add","subtract","intersect","min","max","difference"]).default("add"),amount:i.number().default(1)}),di=i.object({strokeWidth:i.number().min(0).default(0),strokeColor:i.string().default("#ffffff"),strokeAlign:i.enum(["center","inside","outside"]).default("center"),fillOpacity:i.number().min(0).max(1).default(1),dashArray:i.tuple([i.number(),i.number()]).optional(),dashOffset:i.number().default(0)}),wa=i.object({direction:i.enum(["left","right","up","down"]).default("left"),velocity:i.number().default(120),loop:i.boolean().default(!0),repeatGap:i.number().default(80),snap:i.object({enabled:i.boolean().default(!1),granularity:i.enum(["character","word","line"]).default("word"),stopIndex:i.number().default(0),decelEase:i.string().default("cubic.out")}).optional()}),mi=i.object({weight:i.number().min(100).max(1e3).optional(),width:i.number().min(50).max(200).optional(),slant:i.number().min(-25).max(25).optional(),italic:i.number().min(0).max(1).optional(),opticalSize:i.number().min(6).max(144).optional()}),pi=i.object({redShiftX:i.number().default(0),redShiftY:i.number().default(0),blueShiftX:i.number().default(0),blueShiftY:i.number().default(0),sliceProbability:i.number().min(0).max(1).default(0),sliceAmplitude:i.number().default(0)}),fi=i.object({signalChannel:i.string(),minFreqHz:i.number().default(60),maxFreqHz:i.number().default(16e3),scaleAxis:i.enum(["scaleY","scaleX","scale","y"]).default("scaleY"),minScale:i.number().default(.2),maxScale:i.number().default(2.5),peakDecay:i.number().min(0).max(.99).default(.8)}),hi=i.object({angle:i.number().default(45),length:i.number().min(0).default(0),color:i.string().default("#000000"),startOpacity:i.number().min(0).max(1).default(.8),endOpacity:i.number().min(0).max(1).default(0),steps:i.number().int().min(4).max(64).default(16)}),gi=i.object({progress:i.number().min(0).max(1).default(0),dispersalAngle:i.number().default(90),maxDisplacement:i.number().default(120),turbulence:i.number().default(.5),particleSize:i.number().default(2)}),bi=i.object({x:i.number().optional(),y:i.number().optional(),translateZ:i.number().optional(),scale:i.number().optional(),scaleX:i.number().optional(),scaleY:i.number().optional(),rotation:i.number().optional(),rotationX:i.number().optional(),rotationY:i.number().optional(),rotationZ:i.number().optional(),formation:va.optional(),skew:i.number().optional(),skewAxis:i.number().optional(),tracking:i.number().optional(),lineSpacing:i.number().optional(),lineAnchor:i.number().optional(),anchor:ui.optional(),opacity:i.number().optional(),blur:i.number().optional(),fillColor:i.string().optional(),stroke:di.optional(),variableAxes:mi.optional(),chromaticGlitch:pi.optional(),longShadow:hi.optional(),particleDissolve:gi.optional(),audioSpectrum:fi.optional(),spring:ci.optional()}),Sa=i.object({name:i.string().default("AdvancedAnimator"),selectors:i.array(i.record(i.string(),i.unknown())).default([]),props:bi});g();g();var lr=i.object({x:i.number(),y:i.number()}),xi=i.object({p0:lr,p1:lr,p2:lr,p3:lr}),yi=i.discriminatedUnion("type",[i.object({type:i.literal("svg"),d:i.string().min(1,"SVG path string cannot be empty")}),i.object({type:i.literal("bezier"),segments:i.array(xi).min(1)}),i.object({type:i.literal("ellipse"),cx:i.number(),cy:i.number(),rx:i.number().positive(),ry:i.number().positive(),startAngleDeg:i.number().default(0),endAngleDeg:i.number().default(360)}),i.object({type:i.literal("wave"),startX:i.number(),startY:i.number(),length:i.number().positive(),amplitude:i.number(),frequency:i.number().positive(),phaseDeg:i.number().default(0)})]),Lt=i.object({path:yi,firstMargin:i.number().default(0),lastMargin:i.number().default(0),reversePath:i.boolean().default(!1),perpendicularToPath:i.boolean().default(!0),forceAlignment:i.boolean().default(!1),loop:i.boolean().default(!1),baselineOffset:i.enum(["baseline","center","ascender","descender"]).default("baseline"),baselineShift:i.number().default(0)}),vi=i.enum(["bar","underscore","block","custom"]),wi=i.object({enabled:i.boolean().default(!0),style:vi.default("bar"),customChar:i.string().default("|"),color:i.string().optional(),blinkFrequency:i.number().min(0).default(2),hideOnComplete:i.boolean().default(!1),width:i.number().positive().default(2.5),spacing:i.number().default(3)}),Si=i.discriminatedUnion("mode",[i.object({mode:i.literal("constant")}),i.object({mode:i.literal("human"),jitter:i.number().min(0).max(1).default(.35),commaPauseMultiplier:i.number().min(1).default(3),sentencePauseMultiplier:i.number().min(1).default(5.5),paragraphPauseMultiplier:i.number().min(1).default(7)})]),Mi=i.object({enabled:i.boolean().default(!1),charset:i.enum(["ascii","alphanumeric","matrix","binary","hex","custom"]).default("alphanumeric"),customCharset:i.string().optional(),scrambleFramesPerChar:i.number().int().min(1).default(8),highlightProbability:i.number().min(0).max(1).default(.25),scrambleColor:i.string().optional()}),$r=i.object({granularity:i.enum(["character","word","line"]).default("character"),cursor:wi.default({enabled:!0,style:"bar",customChar:"|",blinkFrequency:2,hideOnComplete:!1,width:2.5,spacing:3}),cadence:Si.default({mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7}),scramble:Mi.default({enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25}),soundSync:i.boolean().default(!1)}),Wr=i.enum(["characters","characters_excluding_spaces","words","lines"]),ki=i.enum(["percentage","index"]),Ti=i.enum(["square","ramp_up","ramp_down","triangle","round","smooth"]),Hr=i.enum(["add","subtract","intersect","min","max","difference"]),Pi=i.object({type:i.literal("range"),start:i.number().default(0),end:i.number().default(1),offset:i.number().default(0),units:ki.default("percentage"),basedOn:Wr.default("characters"),shape:Ti.default("square"),mode:Hr.default("add"),amount:i.number().min(-1).max(1).default(1),easeHigh:i.number().min(-1).max(1).default(0),easeLow:i.number().min(-1).max(1).default(0),randomizeOrder:i.boolean().default(!1),randomSeed:i.number().int().default(12345)}),Ci=i.object({type:i.literal("wiggly"),wigglesPerSecond:i.number().positive().default(2),correlation:i.number().min(0).max(1).default(.5),temporalPhaseDeg:i.number().default(0),spatialPhaseDeg:i.number().default(0),minAmount:i.number().min(-1).max(1).default(-1),maxAmount:i.number().min(-1).max(1).default(1),randomSeed:i.number().int().default(42),basedOn:Wr.default("characters"),mode:Hr.default("intersect")}),Ai=i.object({type:i.literal("signal"),signalId:i.string(),multiplier:i.number().default(1),offset:i.number().default(0),phaseSpread:i.number().default(0),basedOn:Wr.default("characters"),mode:Hr.default("add")}),Ni=i.discriminatedUnion("type",[Pi,Ci,Ai]),Di=i.object({x:i.number().optional(),y:i.number().optional(),z:i.number().optional(),scale:i.number().optional(),scaleX:i.number().optional(),scaleY:i.number().optional(),rotation:i.number().optional(),rotationX:i.number().optional(),rotationY:i.number().optional(),skew:i.number().optional(),skewAxis:i.number().optional(),tracking:i.number().optional(),lineSpacing:i.number().optional(),opacity:i.number().min(0).max(1).optional(),fillColor:i.string().optional(),strokeColor:i.string().optional(),strokeWidth:i.number().min(0).optional(),blur:i.number().min(0).optional(),characterOffset:i.number().int().optional()}),Oi=i.enum(["character","word","line","all"]),Fi=i.object({grouping:Oi.default("character"),anchorX:i.number().default(.5),anchorY:i.number().default(.8)}),Rt=i.object({name:i.string().default("Animator"),selectors:i.array(Ni).min(1),props:Di,anchor:Fi.default({grouping:"character",anchorX:.5,anchorY:.8})}),bc=i.object({text:i.string(),fontFamily:i.string().default("Inter"),fontSize:i.number().positive().default(24),fontWeight:i.union([i.number(),i.string()]).default(400),fill:i.string().default("#ffffff"),letterSpacing:i.number().default(0),lineHeight:i.number().positive().default(1.2),textAlign:i.enum(["left","center","right"]).default("left"),pathOptions:Lt.optional(),typewriter:$r.optional(),animators:i.array(Rt).default([])});var Ma=class e{options={firstMargin:0,lastMargin:0,reversePath:!1,perpendicularToPath:!0,forceAlignment:!1,loop:!1,baselineOffset:"baseline",baselineShift:0};static fromSvg(t){let r=new e;return r.options.path={type:"svg",d:t},r}static fromBezier(t){let r=new e;return r.options.path={type:"bezier",segments:t},r}static fromCurve(t){return e.fromBezier([t])}static circularBadge(t,r,n){let a=new e;return a.options.path={type:"ellipse",cx:t,cy:r,rx:n,ry:n,startAngleDeg:0,endAngleDeg:360},a.options.loop=!0,a}static ellipse(t,r,n,a,o=0,s=360){let u=new e;return u.options.path={type:"ellipse",cx:t,cy:r,rx:n,ry:a,startAngleDeg:o,endAngleDeg:s},u.options.loop=Math.abs(s-o)>=360,u}static wave(t,r,n,a,o,s=0){let u=new e;return u.options.path={type:"wave",startX:t,startY:r,length:n,amplitude:a,frequency:o,phaseDeg:s},u}firstMargin(t){return this.options.firstMargin=t,this}lastMargin(t){return this.options.lastMargin=t,this}reversePath(t){return this.options.reversePath=t,this}perpendicularToPath(t){return this.options.perpendicularToPath=t,this}forceAlignment(t){return this.options.forceAlignment=t,this}loop(t){return this.options.loop=t,this}baselineOffset(t){return this.options.baselineOffset=t,this}baselineShift(t){return this.options.baselineShift=t,this}build(){return Lt.parse(this.options)}},ka=class e{name="Animator";selectors=[];props={};anchor={grouping:"character",anchorX:.5,anchorY:.8};static create(t){let r=new e;return r.name=t,r}addRangeSelector(t){let r=t.easeHigh??0,n=Math.abs(r)>1?r/100:r,a=t.easeLow??0,o=Math.abs(a)>1?a/100:a;return this.selectors.push({type:"range",start:t.start??0,end:t.end??1,offset:t.offset??0,units:"percentage",basedOn:t.basedOn??"characters",shape:t.shape??"smooth",mode:t.mode??"add",amount:1,easeHigh:Math.max(-1,Math.min(1,n)),easeLow:Math.max(-1,Math.min(1,o)),randomizeOrder:t.randomizeOrder??!1,randomSeed:t.randomSeed??12345}),this}addWigglySelector(t){return this.selectors.push({type:"wiggly",wigglesPerSecond:t.wigglesPerSecond??2,correlation:t.correlation??.5,temporalPhaseDeg:0,spatialPhaseDeg:0,minAmount:t.minAmount??-1,maxAmount:t.maxAmount??1,randomSeed:t.randomSeed??42,basedOn:"characters",mode:t.mode??"intersect"}),this}addSignalSelector(t,r=1,n=0,a=0,o="add"){return this.selectors.push({type:"signal",signalId:t,multiplier:r,offset:a,phaseSpread:n,basedOn:"characters",mode:o}),this}x(t){return this.props.x=t,this}y(t){return this.props.y=t,this}z(t){return this.props.z=t,this}scale(t){return this.props.scale=t,this}scaleX(t){return this.props.scaleX=t,this}scaleY(t){return this.props.scaleY=t,this}rotation(t){return this.props.rotation=t,this}rotationX(t){return this.props.rotationX=t,this}rotationY(t){return this.props.rotationY=t,this}skew(t){return this.props.skew=t,this}skewAxis(t){return this.props.skewAxis=t,this}opacity(t){return this.props.opacity=t,this}blur(t){return this.props.blur=t,this}fill(t){return this.fillColor(t)}fillColor(t){return this.props.fillColor=t,this}strokeColor(t){return this.props.strokeColor=t,this}strokeWidth(t){return this.props.strokeWidth=t,this}tracking(t){return this.props.tracking=t,this}lineSpacing(t){return this.props.lineSpacing=t,this}characterOffset(t){return this.props.characterOffset=t,this}anchorGrouping(t,r=.5,n=.8){return this.anchor={grouping:t,anchorX:r,anchorY:n},this}build(){return Rt.parse({name:this.name,selectors:this.selectors,props:this.props,anchor:this.anchor})}};g();function xc(e,t=180,r=12,n=1,a=0){if(e<=0)return 0;let o=Math.sqrt(Math.max(1e-4,t)/Math.max(1e-4,n)),s=r/(2*Math.sqrt(Math.max(1e-4,t*n)));if(s<1){let u=o*Math.sqrt(1-s*s),c=Math.exp(-s*o*e),l=-1,m=(a-s*o*-1)/Math.max(1e-6,u),d=c*(l*Math.cos(u*e)+m*Math.sin(u*e));return Math.min(2,Math.max(-1,1+d))}else if(Math.abs(s-1)<1e-4){let u=Math.exp(-o*e);return 1+(-1+(a-o)*e)*u}else{let u=-o*(s-Math.sqrt(s*s-1)),c=-o*(s+Math.sqrt(s*s-1)),l=(a+c)/Math.max(1e-6,u-c),m=-1-l;return 1+(l*Math.exp(u*e)+m*Math.exp(c*e))}}function yc(e,t=0){if(e===0)return[1,0,0,1];let r=e*Math.PI/180,n=t*Math.PI/180,a=Math.cos(n),o=Math.sin(n),s=Math.tan(r),u=1-s*a*o,c=s*a*a,l=-s*o*o,m=1+s*o*a;return[u,c,l,m]}function vc(e,t){let r=t.anchorX,n=t.anchorY;switch(t.preset){case"center":r=.5,n=.5;break;case"baseline":r=.5,n=e.height>0?e.ascender/e.height:.8;break;case"bottom_left":r=0,n=1;break;case"bottom_center":r=.5,n=1;break;case"bottom_right":r=1,n=1;break;case"top_left":r=0,n=0;break;case"top_center":r=.5,n=0;break;case"top_right":r=1,n=0;break;default:r=.5,n=.5;break}let a=(r-.5)*e.width+t.offsetX,o=(n-.5)*e.height+t.offsetY;return{px:a,py:o}}function wc(e,t,r,n=0){if(r===0||t<=1)return 0;let a=n*(t-1);return(e-a)*r}function Sc(e,t){try{let r={textIndex:t.charIndex,textTotal:Math.max(1,t.totalChars),wordIndex:t.wordIndex,wordTotal:Math.max(1,t.totalWords),lineIndex:t.lineIndex,lineTotal:Math.max(1,t.totalLines),time:t.time,frame:t.frame,fps:t.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:(u,c,l)=>Math.max(c,Math.min(l,u)),noise:u=>{let c=Math.sin(u*12.9898+t.frame*.1)*43758.5453;return(c-Math.floor(c))*2-1},signals:t.signals??{}},n=Object.keys(r),a=Object.values(r),o=new Function(...n,`return (${e});`),s=Number(o(...a));return Number.isFinite(s)?Math.max(-1,Math.min(1,s)):0}catch{return 0}}function Mc(e,t,r){let n=Math.max(1,t),a=n>1?e/(n-1):0,o=r.totalAngle*Math.PI/180,s=a*o,u=0,c=0,l=0,m=0,d=0,p=0,h=1;switch(r.mode){case"cylinder":{let y=r.totalAngle<360?(a-.5)*o:s;r.axis==="y"?(u=r.radius*Math.sin(y),l=r.radius*Math.cos(y)-r.radius,d=y*180/Math.PI):r.axis==="x"?(c=r.radius*Math.sin(y),l=r.radius*Math.cos(y)-r.radius,m=y*180/Math.PI):(u=r.radius*Math.sin(y),c=r.radius*Math.cos(y),p=y*180/Math.PI);let v=Math.cos(y);h=Math.max(.25,(v+1)*.5);break}case"vortex":{let v=-Math.PI/2+s,w=r.radius*(1-a*.35);u=w*Math.cos(v),c=w*Math.sin(v),l=-e*r.pitch||0;let M=-.35*r.radius/(o||1),N=M*Math.cos(v)-w*Math.sin(v),k=M*Math.sin(v)+w*Math.cos(v);p=Math.atan2(k,N)*180/Math.PI,h=Math.max(.65,1-a*.35);break}case"helix":{if(r.axis==="x"){let y=r.pitch>10?r.pitch:28;u=(e-(n-1)/2)*y,c=r.radius*Math.sin(s),l=r.radius*Math.cos(s)-r.radius,m=Math.sin(s)*22,h=.75+.25*((Math.cos(s)+1)*.5)}else{let y=(a-.5)*o;u=r.radius*Math.sin(y),c=(e-(n-1)/2)*r.pitch,l=r.radius*Math.cos(y)-r.radius,d=y*180/Math.PI;let v=Math.cos(y);h=Math.max(.65,(v+1)*.5)}break}default:{l=0;break}}let b=Math.max(100,r.perspective??1200),f=b-l,x=f>1?b/f:1;return{x:u*x,y:c*x,z:l,rotX:m,rotY:d,rotZ:p,scaleMult:Math.max(.1,x),depthOpacity:h}}function kc(e,t,r,n,a){let s=(t>0?Math.max(t,r):r)+n.repeatGap;if(s<=0)return e;let u=n.velocity*a;if(n.snap?.enabled){let c=n.snap.stopIndex??0,l=n.snap.granularity==="character"?40:120,m=c*l,d=Math.min(1,a*1.5);u=u*(1-d)+m*d}if((n.direction==="right"||n.direction==="down")&&(u=-u),n.loop){let c=(e-u)%s;return c<-r?c+s:c}return e-u}function Tc(e,t,r,n,a,o){let s=Math.max(1,t),u=s>1?e/(s-1):.5,c=Math.max(20,r.minFreqHz),l=Math.max(c+100,r.maxFreqHz),m=c*(l/c)**u,d=0;if(n){let h=n[r.signalChannel];if(typeof h=="number")d=h;else if(typeof h=="function")d=Number(h(a,o,m))||0;else if(typeof h=="object"&&h!==null){let b=h;if(typeof b.get=="function")d=Number(b.get({frame:a,fps:o,freq:m}))||0;else if(Array.isArray(b.samples)||ArrayBuffer.isView(b.samples)){let f=b.samples,x=Math.floor(u*(f.length-1));d=Number(f[x])||0}}}let p=Math.max(0,Math.min(1,d));return r.minScale+p*(r.maxScale-r.minScale)}g();function Yr(e,t){let r=1-t,n=t*t,a=r*r,o=a*r,s=n*t;return{x:o*e.p0.x+3*a*t*e.p1.x+3*r*n*e.p2.x+s*e.p3.x,y:o*e.p0.y+3*a*t*e.p1.y+3*r*n*e.p2.y+s*e.p3.y}}function cr(e,t){let r=1-t;return{x:3*r*r*(e.p1.x-e.p0.x)+6*r*t*(e.p2.x-e.p1.x)+3*t*t*(e.p3.x-e.p2.x),y:3*r*r*(e.p1.y-e.p0.y)+6*r*t*(e.p2.y-e.p1.y)+3*t*t*(e.p3.y-e.p2.y)}}function Li(e,t=100){let r=[{distance:0,t:0}],n=0,a=e.p0;for(let o=1;o<=t;o++){let s=o/t,u=Yr(e,s),c=u.x-a.x,l=u.y-a.y,m=Math.hypot(c,l);n+=m,r.push({distance:n,t:s}),a=u}return{lut:r,totalLength:n}}function Ta(e,t,r){if(t<=0)return 0;if(t>=r)return 1;let n=0,a=e.length-1;for(;n<=a;){let m=n+a>>1;e[m].distance<t?n=m+1:a=m-1}let o=Math.max(1,Math.min(n,e.length-1)),s=e[o-1],u=e[o],c=u.distance-s.distance;if(c<=1e-6)return s.t;let l=(t-s.distance)/c;return s.t+l*(u.t-s.t)}function Pc(e,t,r,n){let a=Ta(t,n,r),o=Yr(e,a),s=cr(e,a),u=Math.hypot(s.x,s.y),c=u>1e-6?-s.y/u:0,l=u>1e-6?s.x/u:1,m=Math.atan2(s.y,s.x)*180/Math.PI;return{position:o,tangentAngleDeg:m,normal:{x:c,y:l}}}function Cc(e,t=50){if(e.length===0)return{totalLength:0,entries:[{distance:0,segmentIndex:0,t:0}],segments:[]};let r=[],n=[],a=0;for(let o=0;o<e.length;o++){let s=e[o],{lut:u,totalLength:c}=Li(s,t);r.push({segmentIndex:o,startDistance:a,length:c,lut:u});for(let l=0;l<u.length;l++)n.push({distance:a+u[l].distance,segmentIndex:o,t:u[l].t});a+=c}return{totalLength:a,entries:n,segments:r}}function Ac(e,t,r){if(e.length===0)return{position:{x:0,y:0},tangentAngleDeg:0,normal:{x:0,y:1}};let n=t.totalLength;if(r<=0){let h=e[0],b=cr(h,0),f=Math.hypot(b.x,b.y),x=f>1e-6?b.x/f:1,y=f>1e-6?b.y/f:0,v={x:h.p0.x+x*r,y:h.p0.y+y*r},w=f>1e-6?-b.y/f:0,M=f>1e-6?b.x/f:1;return{position:v,tangentAngleDeg:Math.atan2(b.y,b.x)*180/Math.PI,normal:{x:w,y:M}}}if(r>=n){let h=e[e.length-1],b=cr(h,1),f=Math.hypot(b.x,b.y),x=f>1e-6?b.x/f:1,y=f>1e-6?b.y/f:0,v=r-n,w={x:h.p3.x+x*v,y:h.p3.y+y*v},M=f>1e-6?-b.y/f:0,N=f>1e-6?b.x/f:1;return{position:w,tangentAngleDeg:Math.atan2(b.y,b.x)*180/Math.PI,normal:{x:M,y:N}}}let a=0,o=0;if(t.segments&&t.segments.length>0){let h=0,b=t.segments.length-1;for(;h<=b;){let v=h+b>>1,w=t.segments[v];if(r<w.startDistance)b=v-1;else if(r>w.startDistance+w.length)h=v+1;else{h=v;break}}let f=Math.max(0,Math.min(h,t.segments.length-1)),x=t.segments[f];a=x.segmentIndex;let y=r-x.startDistance;o=Ta(x.lut,y,x.length)}else{let h=0,b=t.entries.length-1;for(;h<=b;){let M=h+b>>1;t.entries[M].distance<r?h=M+1:b=M-1}let f=Math.max(1,Math.min(h,t.entries.length-1)),x=t.entries[f-1],y=t.entries[f],v=y.distance-x.distance,w=v>1e-6?(r-x.distance)/v:0;a=y.segmentIndex,o=x.segmentIndex===y.segmentIndex?x.t+w*(y.t-x.t):y.t}let s=e[a]??e[0],u=Yr(s,o),c=cr(s,o),l=Math.hypot(c.x,c.y),m=l>1e-6?-c.y/l:0,d=l>1e-6?c.x/l:1,p=Math.atan2(c.y,c.x)*180/Math.PI;return{position:u,tangentAngleDeg:p,normal:{x:m,y:d}}}function Ri(e,t,r,n,a=0,o=360){let s=a*Math.PI/180,c=o*Math.PI/180-s,l=Math.max(1,Math.ceil(Math.abs(c)/(Math.PI/2))),m=c/l,d=[];for(let p=0;p<l;p++){let h=s+p*m,b=h+m,f=m/2,x=4/3*Math.tan(f/2),y=Math.cos(h),v=Math.sin(h),w=Math.cos(b),M=Math.sin(b),N={x:e+r*y,y:t+n*v},k={x:N.x-x*r*v,y:N.y+x*n*y},O={x:e+r*w,y:t+n*M},U={x:O.x+x*r*M,y:O.y-x*n*w};d.push({p0:N,p1:k,p2:U,p3:O})}return d}function Bi(e,t,r,n,a,o=0){let s=o*Math.PI/180,u=a<.1&&a*r>=.25?a*r:Math.max(.5,a),c=Math.max(1,Math.round(u*2)),l=r/c,m=[];for(let d=0;d<c;d++){let p=d/c*(2*Math.PI*u)+s,h=(d+1)/c*(2*Math.PI*u)+s,b=e+d*l,f=e+(d+1)*l,x=t+n*Math.sin(p),y=t+n*Math.sin(h),v=n*Math.cos(p)*(Math.PI/3),w=n*Math.cos(h)*(Math.PI/3),M={x:b,y:x},N={x:b+l/3,y:x+v},k={x:f-l/3,y:y-w},O={x:f,y};m.push({p0:M,p1:N,p2:k,p3:O})}return m}function Nc(e,t,r,n,a,o,s,u,c){if(e===u&&t===c)return[];let l=Math.abs(r),m=Math.abs(n);if(l===0||m===0)return[{p0:{x:e,y:t},p1:{x:e+(u-e)/3,y:t+(c-t)/3},p2:{x:e+2*(u-e)/3,y:t+2*(c-t)/3},p3:{x:u,y:c}}];let d=a*Math.PI/180,p=Math.cos(d),h=Math.sin(d),b=(e-u)/2,f=(t-c)/2,x=p*b+h*f,y=-h*b+p*f,v=x*x/(l*l)+y*y/(m*m);v>1&&(l*=Math.sqrt(v),m*=Math.sqrt(v));let w=l*l*m*m-l*l*y*y-m*m*x*x,M=l*l*y*y+m*m*x*x,N=(o!==s?1:-1)*Math.sqrt(Math.max(0,w/M)),k=N*l*y/m,O=-N*m*x/l,U=p*k-h*O+(e+u)/2,V=h*k+p*O+(t+c)/2,q=(W,re,de,ae)=>Math.atan2(W*ae-re*de,W*de+re*ae),te=q(1,0,(x-k)/l,(y-O)/m),R=q((x-k)/l,(y-O)/m,(-x-k)/l,(-y-O)/m);!s&&R>0&&(R-=2*Math.PI),s&&R<0&&(R+=2*Math.PI);let P=Math.max(1,Math.ceil(Math.abs(R)/(Math.PI/2))),T=R/P,$=4/3*Math.tan(T/4),H=W=>({x:U+l*Math.cos(W)*p-m*Math.sin(W)*h,y:V+l*Math.cos(W)*h+m*Math.sin(W)*p}),_=W=>({x:-l*Math.sin(W)*p-m*Math.cos(W)*h,y:-l*Math.sin(W)*h+m*Math.cos(W)*p}),E=[];for(let W=0;W<P;W++){let re=te+W*T,de=re+T,ae=H(re),F=H(de),B=_(re),z=_(de);E.push({p0:ae,p1:{x:ae.x+$*B.x,y:ae.y+$*B.y},p2:{x:F.x-$*z.x,y:F.y-$*z.y},p3:F})}return E[E.length-1].p3={x:u,y:c},E}function Ii(e){let t=[],r=e.match(/[a-df-z]|[-+]?(?:\d*\.\d+|\d+)(?:[eE][-+]?\d+)?/gi);if(!r||r.length===0)return t;let n=0,a=0,o=0,s=0,u=0,c=0,l="",m=0,d=()=>m>=r.length?0:Number.parseFloat(r[m++]);for(;m<r.length;){let p=r[m++],h=/^[a-df-z]$/i.test(p),b=h?p:l;switch(h||m--,b){case"M":{n=d(),a=d(),o=n,s=a,l="L";break}case"m":{n+=d(),a+=d(),o=n,s=a,l="l";break}case"L":{let f=d(),x=d();t.push({p0:{x:n,y:a},p1:{x:n+(f-n)/3,y:a+(x-a)/3},p2:{x:n+2*(f-n)/3,y:a+2*(x-a)/3},p3:{x:f,y:x}}),n=f,a=x,l="L";break}case"l":{let f=d(),x=d(),y=n+f,v=a+x;t.push({p0:{x:n,y:a},p1:{x:n+f/3,y:a+x/3},p2:{x:n+2*f/3,y:a+2*x/3},p3:{x:y,y:v}}),n=y,a=v,l="l";break}case"H":{let f=d();t.push({p0:{x:n,y:a},p1:{x:n+(f-n)/3,y:a},p2:{x:n+2*(f-n)/3,y:a},p3:{x:f,y:a}}),n=f,l="H";break}case"h":{let f=d(),x=n+f;t.push({p0:{x:n,y:a},p1:{x:n+f/3,y:a},p2:{x:n+2*f/3,y:a},p3:{x,y:a}}),n=x,l="h";break}case"V":{let f=d();t.push({p0:{x:n,y:a},p1:{x:n,y:a+(f-a)/3},p2:{x:n,y:a+2*(f-a)/3},p3:{x:n,y:f}}),a=f,l="V";break}case"v":{let f=d(),x=a+f;t.push({p0:{x:n,y:a},p1:{x:n,y:a+f/3},p2:{x:n,y:a+2*f/3},p3:{x:n,y:x}}),a=x,l="v";break}case"C":{let f=d(),x=d(),y=d(),v=d(),w=d(),M=d();t.push({p0:{x:n,y:a},p1:{x:f,y:x},p2:{x:y,y:v},p3:{x:w,y:M}}),u=y,c=v,n=w,a=M,l="C";break}case"c":{let f=d(),x=d(),y=d(),v=d(),w=d(),M=d(),N=n+f,k=a+x,O=n+y,U=a+v,V=n+w,q=a+M;t.push({p0:{x:n,y:a},p1:{x:N,y:k},p2:{x:O,y:U},p3:{x:V,y:q}}),u=O,c=U,n=V,a=q,l="c";break}case"S":case"s":{let f=b==="s",x=d(),y=d(),v=d(),w=d(),M=f?n+x:x,N=f?a+y:y,k=f?n+v:v,O=f?a+w:w,U=n,V=a;/^[cs]$/i.test(l)&&(U=2*n-u,V=2*a-c),t.push({p0:{x:n,y:a},p1:{x:U,y:V},p2:{x:M,y:N},p3:{x:k,y:O}}),u=M,c=N,n=k,a=O,l=b;break}case"Q":case"q":{let f=b==="q",x=d(),y=d(),v=d(),w=d(),M=f?n+x:x,N=f?a+y:y,k=f?n+v:v,O=f?a+w:w,U=n+2/3*(M-n),V=a+2/3*(N-a),q=k+2/3*(M-k),te=O+2/3*(N-O);t.push({p0:{x:n,y:a},p1:{x:U,y:V},p2:{x:q,y:te},p3:{x:k,y:O}}),u=M,c=N,n=k,a=O,l=b;break}case"A":case"a":{let f=d(),x=d(),y=d(),v=d()!==0,w=d()!==0,M=d(),N=d();b==="a"&&(M+=n,N+=a),t.push(...Nc(n,a,f,x,y,v,w,M,N)),n=M,a=N,u=M,c=N,l=b;break}case"Z":case"z":{(n!==o||a!==s)&&(t.push({p0:{x:n,y:a},p1:{x:n+(o-n)/3,y:a+(s-a)/3},p2:{x:n+2*(o-n)/3,y:a+2*(s-a)/3},p3:{x:o,y:s}}),n=o,a=s),l=b;break}default:break}}return t}function Dc(e){switch(e.type){case"bezier":return e.segments;case"svg":return Ii(e.d);case"ellipse":return Ri(e.cx,e.cy,e.rx,e.ry,e.startAngleDeg??0,e.endAngleDeg??360);case"wave":return Bi(e.startX,e.startY,e.length,e.amplitude,e.frequency,e.phaseDeg??0)}}g();function Oc(e,t,r,n,a,o=0,s=0){let u=t+n,c=r+n;if(c<=u)return 0;let l=(e-u)/(c-u),m=0;switch(a){case"square":m=l>=0&&l<=1?1:0;break;case"ramp_up":m=Math.max(0,Math.min(1,l));break;case"ramp_down":m=1-Math.max(0,Math.min(1,l));break;case"triangle":{l<0||l>1?m=0:l<.5?m=l*2:m=(1-l)*2;break}case"round":{l<0||l>1?m=0:m=.5-.5*Math.cos(l*2*Math.PI);break}case"smooth":{l<=0?m=0:l>=1?m=1:m=l*l*(3-2*l);break}}if(m>0&&m<1){if(o!==0&&m>.5){let d=(m-.5)*2,p=o>0?1+o*3:1/(1-o*3);m=.5+.5*d**p}if(s!==0&&m<=.5){let d=m*2,p=s>0?1+s*3:1/(1-s*3);m=.5*d**p}}return Math.max(0,Math.min(1,m))}function Fc(e,t,r,n){let a=(t*(1-n)+n)*12.9898+r+e*78.233,o=Math.sin(a)*43758.5453;return(o-Math.floor(o))*2-1}function Lc(e,t){let r=t,n=()=>(r=(r*9301+49297)%233280,r/233280),a=Array.from({length:e},(o,s)=>s);for(let o=a.length-1;o>0;o--){let s=Math.floor(n()*(o+1)),u=a[o];a[o]=a[s],a[s]=u}return a}function Rc(e,t,r){switch(r){case"add":return Math.max(0,Math.min(1,e+t));case"subtract":return Math.max(0,Math.min(1,e-t));case"intersect":return e*t;case"min":return Math.min(e,t);case"max":return Math.max(e,t);case"difference":return Math.abs(e-t)}}g();var Ui={ascii:"!@#$%^&*()_+{}[]:;<>,.?",alphanumeric:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",matrix:"010101<>[]{}+=*~#%&!?/\\:;|X0123456789",binary:"01",hex:"0123456789ABCDEF"};function Ei(e,t){return e==="custom"&&t&&t.length>0?t:Ui[e]??Ui.alphanumeric}function Bc(e,t,r,n,a={mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7},o={enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25},s=2,u="character",c){if(c===void 0&&t<r)return{visibleChars:0,currentDisplayString:"",isCursorVisible:!1};let l=c!==void 0?Math.max(0,Math.min(1,c)):Math.min(1,(t-r)/Math.max(1,n)),m=c!==void 0?l*n:t-r,d=e.length,p=Math.floor(l*d);if(u==="word"){let f=e.split(/(\s+)/),x=[];f.forEach((v,w)=>{v.trim().length>0&&x.push(w)});let y=Math.min(x.length,Math.floor(l*(x.length+1)));if(y<=0)p=0;else{let v=x[Math.min(x.length-1,y-1)];p=f.slice(0,v+1).join("").length}}else if(u==="line"){let f=e.split(`
|
|
705
|
+
`;var jr=class{constructor(t){this.device=t;let r=t.createShaderModule({label:"segmentation.wgsl",code:oi});this.computePipeline=t.createComputePipeline({label:"SegmentationComputePipeline",layout:"auto",compute:{module:r,entryPoint:"computeSegmentation"}}),this.uniformBuffer=t.createBuffer({size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"segmentation_uniform_buffer"})}device;computePipeline;uniformBuffer;cachedOutputTexture;execute(t,r={}){let n=t.width,a=t.height,o=r.threshold??.5,s=r.feather??.05,u=new ArrayBuffer(16),c=new Float32Array(u),l=new Uint32Array(u);c[0]=o,c[1]=s,l[2]=n,l[3]=a,this.device.queue.writeBuffer(this.uniformBuffer,0,u),(!this.cachedOutputTexture||this.cachedOutputTexture.width!==n||this.cachedOutputTexture.height!==a)&&(this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=this.device.createTexture({label:"segmentation_output_texture",size:[n,a],format:"rgba8unorm",usage:GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}));let m=this.device.createCommandEncoder({label:"segmentation_command_encoder"}),d=this.device.createBindGroup({label:"segmentation_bind_group",layout:this.computePipeline.getBindGroupLayout(0),entries:[{binding:0,resource:t.createView({label:"segmentation_input_view"})},{binding:1,resource:this.cachedOutputTexture.createView({label:"segmentation_output_view"})},{binding:2,resource:{buffer:this.uniformBuffer}}]}),p=m.beginComputePass({label:"segmentation_compute_pass"});return p.setPipeline(this.computePipeline),p.setBindGroup(0,d),p.dispatchWorkgroups(Math.ceil(n/16),Math.ceil(a/16),1),p.end(),this.device.queue.submit([m.finish()]),this.cachedOutputTexture}destroy(){this.cachedOutputTexture?.destroy(),this.cachedOutputTexture=void 0,this.uniformBuffer.destroy()}};var Lt=class e{constructor(t){this.source=t;this.id=`tensor-${Math.random().toString(36).slice(2,9)}`}source;id;cannyOptions;depthNormalsOptions;poseSkeletonOptions;faceLandmarksOptions;segmentationOptions;opticalFlowOptions;deflickerOptions;multiplexer=new or;cannyPipeline;depthNormalsPipeline;posePipeline;facePipeline;segmentationPipeline;opticalFlowPipeline;deflickerPipeline;prevInputTexture;static from(t){return new e(t)}canny(t={}){return this.cannyOptions=t,this}depthNormals(t={}){return this.depthNormalsOptions=t,this}poseSkeleton(t={}){return this.poseSkeletonOptions=t,this}pose(t,r={}){return this.poseSkeletonOptions={...r,landmarks:t},this}faceLandmarks(t={}){return this.faceLandmarksOptions=t,this}face(t,r={}){return this.faceLandmarksOptions={...r,landmarks:t},this}segmentation(t={}){return this.segmentationOptions=t,this}opticalFlow(t={}){return this.opticalFlowOptions=t,this}deflicker(t={}){return this.deflickerOptions=t,this}getMultiplexer(){return this.multiplexer}async execute(t,r){let n=r;if(!n&&typeof this.source?.createView=="function"&&(n=this.source),!n)throw new Error("[TensorPipeline.execute] No GPUTexture available for tensor compute execution. Pass a valid GPUTexture to execute() or initialize with a GPUTexture source.");if(this.cannyOptions){this.cannyPipeline||(this.cannyPipeline=new ir(t));let a=this.cannyPipeline.execute(n,this.cannyOptions);this.multiplexer.set("canny",a)}if(this.depthNormalsOptions){this.depthNormalsPipeline||(this.depthNormalsPipeline=new sr(t));let a=this.depthNormalsPipeline.execute(n,this.depthNormalsOptions);this.multiplexer.set("normals",a)}if(this.poseSkeletonOptions?.landmarks){this.posePipeline||(this.posePipeline=new Yo(t));let a=this.posePipeline.execute(this.poseSkeletonOptions.landmarks,{width:this.poseSkeletonOptions.width??n.width,height:this.poseSkeletonOptions.height??n.height,lineWidth:this.poseSkeletonOptions.lineWidth});this.multiplexer.set("poseSkeleton",a)}if(this.faceLandmarksOptions?.landmarks){this.facePipeline||(this.facePipeline=new Vr(t));let a=this.facePipeline.execute(this.faceLandmarksOptions.landmarks,{width:this.faceLandmarksOptions.width??n.width,height:this.faceLandmarksOptions.height??n.height,lineWidth:this.faceLandmarksOptions.lineWidth});this.multiplexer.set("faceLandmarks",a)}if(this.segmentationOptions){this.segmentationPipeline||(this.segmentationPipeline=new jr(t));let a=this.segmentationPipeline.execute(n,this.segmentationOptions);this.multiplexer.set("segmentationMask",a)}if(this.opticalFlowOptions){this.opticalFlowPipeline||(this.opticalFlowPipeline=new In(t));let a=this.prevInputTexture??n,o=this.opticalFlowPipeline.execute(a,n,this.opticalFlowOptions);this.multiplexer.set("motionVectors",o)}if(this.deflickerOptions){this.deflickerPipeline||(this.deflickerPipeline=new Un(t));let a=this.deflickerPipeline.execute(n,this.deflickerOptions);this.multiplexer.set("deflickered",a)}return this.prevInputTexture=n,this.multiplexer.getOutputs()}toConfig(){return{canny:this.cannyOptions,depthNormals:this.depthNormalsOptions,poseSkeleton:this.poseSkeletonOptions,faceLandmarks:this.faceLandmarksOptions,segmentation:this.segmentationOptions,opticalFlow:this.opticalFlowOptions,deflicker:this.deflickerOptions}}toNode(){return{id:this.id,kind:"tensor",source:this.source,config:this.toConfig()}}destroy(){this.cannyPipeline?.destroy(),this.depthNormalsPipeline?.destroy(),this.posePipeline?.destroy(),this.facePipeline?.destroy(),this.segmentationPipeline?.destroy(),this.opticalFlowPipeline?.destroy(),this.deflickerPipeline?.destroy(),this.multiplexer.destroy()}};g();function ii(e,t){if(!e)return t;let r=xa(e);if(!r||r.name==="none")return t;let{name:n,dir:a,params:o}=r,s=Math.max(0,Math.min(1,t)),u=c=>a==="in"?c(s):a==="out"?1-c(1-s):s<.5?c(s*2)/2:1-c((1-s)*2)/2;switch(n){case"power1":return u(c=>c*c);case"power2":return u(c=>c*c*c);case"power3":return u(c=>c*c*c*c);case"sine":return u(c=>1-Math.cos(c*Math.PI/2));case"circ":return u(c=>1-Math.sqrt(Math.max(0,1-c*c)));case"expo":return u(c=>c===0?0:2**(10*(c-1)));case"back":{let c=o?.[0]??1.70158,l=c+1;return u(m=>l*m*m*m-c*m*m)}case"bounce":{let c=l=>{if(l<.36363636363636365)return 7.5625*l*l;if(l<.7272727272727273){let h=l-.5454545454545454;return 7.5625*h*h+.75}if(l<.9090909090909091){let h=l-.8181818181818182;return 7.5625*h*h+.9375}let p=l-2.625/2.75;return 7.5625*p*p+.984375};return a==="out"?c(s):a==="in"?1-c(1-s):s<.5?(1-c(1-2*s))/2:(1+c(2*s-1))/2}default:return s}}function xa(e){if(e){if(typeof e=="object"&&"name"in e&&"dir"in e)return e;if(typeof e=="string"){let t=e.trim(),r=t.match(/^([a-zA-Z0-9]+)(?:\.([a-zA-Z]+))?(?:\(([^)]+)\))?$/);if(r){let c=r[1].toLowerCase(),l=c==="linear"?"none":c,m=(r[2]||"out").toLowerCase(),d="out";m==="in"?d="in":m==="out"?d="out":m==="inout"&&(d="inOut");let p;return r[3]&&(p=r[3].split(",").map(h=>Number.parseFloat(h.trim())).filter(h=>!Number.isNaN(h))),{name:l,dir:d,...p&&p.length>0?{params:p}:{}}}let n=t.indexOf(".");if(n===-1){let c=t.toLowerCase();return{name:c==="linear"?"none":c,dir:"out"}}let a=t.slice(0,n).toLowerCase(),o=a==="linear"?"none":a,s=t.slice(n+1).toLowerCase(),u="out";return s==="in"?u="in":s==="out"?u="out":s==="inout"&&(u="inOut"),{name:o,dir:u}}}}var Se=class e{tracks=[];constructor(t=[]){this.tracks=[...t]}static create(){return new e}static fromTo(t,r,n,a={}){return new e().fromTo(t,r,n,a)}static keys(t,r){return new e().keys(t,r)}static signal(t,r,n={}){return new e().signal(t,r,n)}static colorSignal(t,r,n){return new e().colorSignal(t,r,n)}static kineticSweep(t=-1,r=1,n=0,a=24,o="power2.out"){return new e().kineticSweep(t,r,n,a,o)}static typewriter(t=0,r=30,n="linear"){return new e().typewriter(t,r,n)}static letterSpacing(t,r,n=0,a=24,o="power2.out"){return new e().letterSpacing(t,r,n,a,o)}static wiggle(t,r={}){return new e().wiggle(t,r)}static spring(t,r={}){return new e().spring(t,r)}static firstMargin(t,r,n={}){return new e().firstMargin(t,r,n)}static strokeWidth(t,r,n={}){return new e().fromTo("strokeWidth",t,r,n)}static rotateX(t,r,n={}){return new e().fromTo("rotateX",t,r,n)}static rotateY(t,r,n={}){return new e().fromTo("rotateY",t,r,n)}static rotateZ(t,r,n={}){return new e().fromTo("rotateZ",t,r,n)}static rotation(t,r,n={}){return new e().fromTo("rotation",t,r,n)}addTrack(t){return this.tracks.push(t),this}fromTo(t,r,n,a={}){let o=a.from??a.start??a.fromFrame??0,s=a.to??a.end??a.toFrame??(a.durationFrames!==void 0?o+a.durationFrames:o+24),u=xa(a.ease),c=this.tracks.find(m=>m.prop===t&&(!m.source||m.source.type==="keyframe"));c||(c={id:`${t}_fromTo_${this.tracks.length}`,prop:t,keyframes:[]},this.tracks.push(c));let l=c.id;return c.keyframes.length===0&&o>0&&c.keyframes.push({id:`${l}_k0`,frame:0,value:r}),(c.keyframes.length===0||c.keyframes[c.keyframes.length-1].frame<o)&&c.keyframes.push({id:`${l}_k_${o}`,frame:o,value:r}),c.keyframes.push({id:`${l}_k_${s}`,frame:s,value:n,...u&&{ease:u}}),c.keyframes.sort((m,d)=>m.frame-d.frame),this}keyframe(t,r,n,a){let o=this.tracks.find(u=>u.prop===t&&(!u.source||u.source.type==="keyframe"));o||(o={id:`${t}_track_${this.tracks.length}`,prop:t,keyframes:[]},this.tracks.push(o));let s=xa(a);return o.keyframes.push({id:`k_${o.keyframes.length}_f${r}`,frame:r,value:n,...s&&{ease:s}}),o.keyframes.sort((u,c)=>u.frame-c.frame),this}keys(t,r){for(let[n,a,o]of r)this.keyframe(t,Math.round(n),a,o);return this}fadeIn(t=0,r=20,n="power2.out"){return this.fromTo("opacity",0,1,{from:t,to:r,ease:n})}fadeOut(t,r,n="power2.in"){return this.fromTo("opacity",1,0,{from:t,to:r,ease:n})}slideInY(t,r,n=0,a=24,o="power2.out"){return this.fromTo("y",t,r,{from:n,to:a,ease:o})}slideInX(t,r,n=0,a=24,o="power2.out"){return this.fromTo("x",t,r,{from:n,to:a,ease:o})}kineticSweep(t=-1,r=1,n=0,a=24,o="power2.out"){return this.fromTo("offset",t,r,{from:n,to:a,ease:o})}typewriter(t=0,r=30,n="linear"){return this.fromTo("text",0,1,{from:t,to:r,ease:n})}letterSpacing(t,r,n=0,a=24,o="power2.out"){return this.fromTo("letterSpacing",t,r,{from:n,to:a,ease:o})}firstMargin(t,r,n={}){return this.fromTo("firstMargin",t,r,n)}lastMargin(t,r,n={}){return this.fromTo("lastMargin",t,r,n)}baselineShift(t,r,n={}){return this.fromTo("baselineShift",t,r,n)}rotateX(t,r,n={}){return this.fromTo("rotateX",t,r,n)}rotateY(t,r,n={}){return this.fromTo("rotateY",t,r,n)}rotateZ(t,r,n={}){return this.fromTo("rotateZ",t,r,n)}perspective(t,r,n={}){return this.fromTo("perspective",t,r,n)}translateZ(t,r,n={}){return this.fromTo("translateZ",t,r,n)}tilt3D(t){let r=t.start??t.fromFrame,n=t.end??t.toFrame,a=t.ease,o=t.from??{},s=t.to,u=["rotateX","rotateY","rotateZ","translateZ","perspective"];for(let c of u){let l=s[c];if(l!==void 0){let m=o[c]??0;this.fromTo(c,m,l,{from:r,to:n,fromFrame:r,toFrame:n,ease:a})}}return this}signal(t,r,n={}){let{handleId:a,inline:o}=Rn(r),s=`${t}_sig_${a}_${this.tracks.length}`,u={type:"signal",inputHandleId:a,multiplier:n.multiplier??1,offset:n.offset??0,smoothingWindowFrames:n.smoothing??0,signalMode:n.mode??"continuous",threshold:n.threshold??.15,accumulateThreshold:n.threshold??.15,debounceFrames:n.debounceFrames??2,channel:n.channel??"primary"};return o&&Bn(u,o),this.tracks.push({id:s,prop:t,source:u,keyframes:[]}),this}colorSignal(t,r,n){let{handleId:a,inline:o}=Rn(r),s=`${t}_colorSig_${a}_${this.tracks.length}`,u={type:"signal",inputHandleId:a,multiplier:1,offset:0,smoothingWindowFrames:n.smoothing??0,colorMode:n.colorMode??"interpolate",colorA:n.colorA,colorB:n.colorB,colorThreshold:n.threshold,channel:"primary"};return o&&Bn(u,o),this.tracks.push({id:s,prop:t,source:u,keyframes:[]}),this}wiggle(t,r={}){let n=`${t}_wiggle_${this.tracks.length}`,a={type:"wiggle",frequency:r.frequency??2,amplitude:r.amplitude??20,octaves:r.octaves??1,seed:r.seed??1234};return this.tracks.push({id:n,prop:t,source:a,keyframes:[]}),this}spring(t,r={}){let n=`${t}_spring_${this.tracks.length}`,a={type:"springOvershoot",damping:r.damping??12,stiffness:r.stiffness??180,mass:r.mass??1};return this.tracks.push({id:n,prop:t,source:a,keyframes:[]}),this}followPath(t,r={}){let n=r.start??r.fromFrame??0,a=r.end??r.toFrame??60,o=Math.max(1,a-n),s=r.samples??Math.max(8,Math.min(60,Math.round(o/2))),u=t.totalLength??1,c=r.fromProgress??0,l=r.toProgress??1;r.fromDistance!==void 0&&u>0&&(c=r.fromDistance/u),r.toDistance!==void 0&&u>0&&(l=r.toDistance/u);let m=r.autoOrient??!0,d=r.banking??0,p=r.pitchOffset??0,h=r.yawOffset??0,b=r.rollOffset??0,f=!1,x=!1,y=!1,v=[];for(let w=0;w<=s;w++){let M=w/s,N=ii(r.ease,M),k=c+N*(l-c),F=Math.round(n+M*o),U=[0,0,0],V=[1,0,0],q=[0,0,0];if(typeof t.getFrameAt=="function"){let P=t.getFrameAt(k);U=P.position,V=P.tangent,q=P.rotation??[0,0,0]}else{let P=t.getPointAt(k);U=P.position,P.tangent&&(V=P.tangent);let $=Math.asin(Math.max(-1,Math.min(1,-V[1])))*(180/Math.PI),H=Math.atan2(V[0],V[2])*(180/Math.PI),_=Math.atan2(V[1],V[0])*(180/Math.PI);q=[$,H,_]}let te=q[0]+p,R=q[1]+h,T=(Math.abs(V[2])<1e-4?Math.atan2(V[1],V[0])*(180/Math.PI):q[2])+b;if(d!==0){let P=Math.min(1,k+.02),$=Math.max(0,k-.02),H=t.getPointAt(P),_=t.getPointAt($),E=H.tangent??[1,0,0],W=_.tangent??[1,0,0],re=Math.atan2(E[0],E[2]),de=Math.atan2(W[0],W[2]),ae=re-de;T-=ae*d*57.2958}Math.abs(U[2])>1e-4&&(f=!0),Math.abs(te)>1e-4&&(x=!0),Math.abs(R)>1e-4&&(y=!0),v.push({f:F,x:U[0],y:U[1],z:U[2],rx:te,ry:R,rz:T})}for(let w of v)this.keyframe("x",w.f,w.x),this.keyframe("y",w.f,w.y),f&&this.keyframe("z",w.f,w.z),m&&(this.keyframe("rotateZ",w.f,w.rz),x&&this.keyframe("rotateX",w.f,w.rx),y&&this.keyframe("rotateY",w.f,w.ry));return this}applyTo(t){return t.animation=this.toSpec(),t}toSpec(){return{tracks:this.tracks}}toJSON(){return this.toSpec()}},ya=class e extends Se{static camera(){return new e}dolly(t,r,n={}){if(typeof t=="object"){let a=t,o=a.start??a.fromFrame??0,s=a.end??a.toFrame??0;return this.fromTo("cameraZ",a.fromDistance,a.toDistance,{from:o,to:s,ease:a.ease})}return this.fromTo("cameraZ",t,r??t,n)}orbit(t){let r=t.start??t.fromFrame??0,n=t.end??t.toFrame??0;return t.azimuth&&this.fromTo("orbitAzimuth",t.azimuth.from??0,t.azimuth.to,{from:r,to:n,ease:t.ease}),t.elevation&&this.fromTo("orbitElevation",t.elevation.from??0,t.elevation.to,{from:r,to:n,ease:t.ease}),t.radius&&this.fromTo("orbitRadius",t.radius.from??1500,t.radius.to,{from:r,to:n,ease:t.ease}),this}truck(t,r,n={}){return this.fromTo("cameraX",t,r,n)}pedestal(t,r,n={}){return this.fromTo("cameraY",t,r,n)}pan(t,r,n={}){return this.fromTo("cameraYaw",t,r,n)}tilt(t,r,n={}){return this.fromTo("cameraPitch",t,r,n)}roll(t,r,n={}){return this.fromTo("cameraRoll",t,r,n)}rackFocus(t){let r=t.start??t.fromFrame??0,n=t.end??t.toFrame??0;return this.fromTo("focusDistance",t.fromDistance,t.toDistance,{from:r,to:n,ease:t.ease??"power2.inOut"}),t.toFStop!==void 0&&this.fromTo("fStop",t.fromFStop??2.8,t.toFStop,{from:r,to:n,ease:t.ease??"power2.inOut"}),this}handheld(t){let r=t.start??t.fromFrame??0,n=t.end??t.toFrame??0;return this.fromTo("shakeTranslation",0,t.translationAmplitude,{from:r,to:n}),this.fromTo("shakeRotation",0,t.rotationAmplitude,{from:r,to:n}),this}followPath3D(t,r={}){let n=r.start??r.fromFrame??0,a=r.end??r.toFrame??60,o=Math.max(1,a-n),s=r.samples??Math.max(8,Math.min(60,Math.round(o/2))),u=r.mode??(r.target?"lookAtTarget":"leadTarget"),c=r.fromProgress??0,l=r.toProgress??1,m=r.lookAhead??.05;for(let d=0;d<=s;d++){let p=d/s,h=ii(r.ease,p),b=c+h*(l-c),f=Math.round(n+p*o),x=[0,0,0],y=[0,0,0];if(typeof t.getFrameAt=="function"){let v=t.getFrameAt(b);x=v.position,y=v.rotation??[0,0,0]}else x=t.getPointAt(b).position;if(this.keyframe("cameraX",f,x[0]),this.keyframe("cameraY",f,x[1]),this.keyframe("cameraZ",f,x[2]),u==="lookAtTarget"){let v=r.target??[x[0],x[1],0];this.keyframe("targetX",f,v[0]),this.keyframe("targetY",f,v[1]),this.keyframe("targetZ",f,v[2])}else if(u==="leadTarget"){let v=Math.min(1,b+m),w=t.getPointAt(v);this.keyframe("targetX",f,w.position[0]),this.keyframe("targetY",f,w.position[1]),this.keyframe("targetZ",f,w.position[2])}else u==="orientAlongPath"&&(this.keyframe("cameraPitch",f,y[0]),this.keyframe("cameraYaw",f,y[1]),this.keyframe("cameraRoll",f,y[2]))}return this}};g();g();var va=class e{name;props={};selectors=[];constructor(t){this.name=t}static create(t){return new e(t)}skew(t,r=0){return this.props.skew=t,this.props.skewAxis=r,this}anchor(t,r="character",n=0,a=0){return this.props.anchor={grouping:r,preset:t,anchorX:.5,anchorY:.5,offsetX:n,offsetY:a},this}anchorNormalized(t,r,n="character"){return this.props.anchor={grouping:n,preset:"custom",anchorX:t,anchorY:r,offsetX:0,offsetY:0},this}translateZ(t){return this.props.translateZ=t,this}tilt3D(t=0,r=0,n=0){return this.props.rotationX=t,this.props.rotationY=r,this.props.rotationZ=n,this}rotationX(t){return this.props.rotationX=t,this}rotationY(t){return this.props.rotationY=t,this}rotationZ(t){return this.props.rotationZ=t,this}volumetricFormation(t="cylinder",r=300,n=120,a=360,o=1200,s="y"){return this.props.formation={mode:t,radius:r,pitch:n,totalAngle:a,perspective:o,axis:s},this}lineSpacing(t,r=0){return this.props.lineSpacing=t,this.props.lineAnchor=r,this}lineAnchor(t){return this.props.lineAnchor=t,this}spring(t=180,r=12,n=1,a=0){return this.props.spring={stiffness:t,damping:r,mass:n,initialVelocity:a,overshootMultiplier:1},this}stroke(t,r="#ffffff",n=1){return this.props.stroke={strokeWidth:t,strokeColor:r,strokeAlign:"center",fillOpacity:n,dashOffset:0},this}variableFont(t){return this.props.variableAxes=t,this}chromaticGlitch(t,r=0,n=-t,a=0){return this.props.chromaticGlitch={redShiftX:t,redShiftY:r,blueShiftX:n,blueShiftY:a,sliceProbability:0,sliceAmplitude:0},this}audioSpectrum(t,r=60,n=16e3,a=2.5){return this.props.audioSpectrum={signalChannel:t,minFreqHz:r,maxFreqHz:n,scaleAxis:"scaleY",minScale:.2,maxScale:a,peakDecay:.8},this}longShadow(t=45,r=40,n="#000000",a=.8,o=0,s=16){return this.props.longShadow={angle:t,length:r,color:n,startOpacity:a,endOpacity:o,steps:s},this}particleDissolve(t=0,r=90,n=120){return this.props.particleDissolve={progress:t,dispersalAngle:r,maxDisplacement:n,turbulence:.5,particleSize:2},this}addExpressionSelector(t,r="add"){return this.selectors.push({type:"expression",expression:t,mode:r,amount:1}),this}expressionSelector(t,r="add"){return this.addExpressionSelector(t,r)}x(t){return this.props.x=t,this}y(t){return this.props.y=t,this}scale(t){return this.props.scale=t,this}scaleX(t){return this.props.scaleX=t,this}scaleY(t){return this.props.scaleY=t,this}rotation(t){return this.props.rotation=t,this}opacity(t){return this.props.opacity=t,this}blur(t){return this.props.blur=t,this}fillColor(t){return this.props.fillColor=t,this}build(){return{name:this.name,selectors:this.selectors,props:this.props}}};g();var si=i.enum(["character","word","line","all"]),ui=i.enum(["center","baseline","bottom_left","bottom_center","bottom_right","top_left","top_center","top_right","custom"]),li=i.object({grouping:si.default("character"),preset:ui.default("center"),anchorX:i.number().default(.5),anchorY:i.number().default(.5),offsetX:i.number().default(0),offsetY:i.number().default(0)}),zc=i.object({skew:i.number().min(-90).max(90),skewAxis:i.number().default(0)}),Vc=i.object({lineSpacing:i.number(),lineAnchor:i.number().min(0).max(1).default(0)}),ci=i.enum(["planar","vortex","cylinder","helix"]),wa=i.object({mode:ci.default("planar"),radius:i.number().default(300),pitch:i.number().default(120),totalAngle:i.number().default(360),axis:i.enum(["x","y","z"]).default("y"),perspective:i.number().positive().default(1200)}),jc=i.object({translateZ:i.number().optional(),rotationX:i.number().optional(),rotationY:i.number().optional(),rotationZ:i.number().optional(),formation:wa.optional()}),di=i.object({stiffness:i.number().positive().default(180),damping:i.number().positive().default(12),mass:i.number().positive().default(1),initialVelocity:i.number().default(0),overshootMultiplier:i.number().min(.5).max(3).default(1)}),$c=i.object({type:i.literal("expression"),name:i.string().optional(),expression:i.string(),mode:i.enum(["add","subtract","intersect","min","max","difference"]).default("add"),amount:i.number().default(1)}),mi=i.object({strokeWidth:i.number().min(0).default(0),strokeColor:i.string().default("#ffffff"),strokeAlign:i.enum(["center","inside","outside"]).default("center"),fillOpacity:i.number().min(0).max(1).default(1),dashArray:i.tuple([i.number(),i.number()]).optional(),dashOffset:i.number().default(0)}),Sa=i.object({direction:i.enum(["left","right","up","down"]).default("left"),velocity:i.number().default(120),loop:i.boolean().default(!0),repeatGap:i.number().default(80),snap:i.object({enabled:i.boolean().default(!1),granularity:i.enum(["character","word","line"]).default("word"),stopIndex:i.number().default(0),decelEase:i.string().default("cubic.out")}).optional()}),pi=i.object({weight:i.number().min(100).max(1e3).optional(),width:i.number().min(50).max(200).optional(),slant:i.number().min(-25).max(25).optional(),italic:i.number().min(0).max(1).optional(),opticalSize:i.number().min(6).max(144).optional()}),fi=i.object({redShiftX:i.number().default(0),redShiftY:i.number().default(0),blueShiftX:i.number().default(0),blueShiftY:i.number().default(0),sliceProbability:i.number().min(0).max(1).default(0),sliceAmplitude:i.number().default(0)}),hi=i.object({signalChannel:i.string(),minFreqHz:i.number().default(60),maxFreqHz:i.number().default(16e3),scaleAxis:i.enum(["scaleY","scaleX","scale","y"]).default("scaleY"),minScale:i.number().default(.2),maxScale:i.number().default(2.5),peakDecay:i.number().min(0).max(.99).default(.8)}),gi=i.object({angle:i.number().default(45),length:i.number().min(0).default(0),color:i.string().default("#000000"),startOpacity:i.number().min(0).max(1).default(.8),endOpacity:i.number().min(0).max(1).default(0),steps:i.number().int().min(4).max(64).default(16)}),bi=i.object({progress:i.number().min(0).max(1).default(0),dispersalAngle:i.number().default(90),maxDisplacement:i.number().default(120),turbulence:i.number().default(.5),particleSize:i.number().default(2)}),xi=i.object({x:i.number().optional(),y:i.number().optional(),translateZ:i.number().optional(),scale:i.number().optional(),scaleX:i.number().optional(),scaleY:i.number().optional(),rotation:i.number().optional(),rotationX:i.number().optional(),rotationY:i.number().optional(),rotationZ:i.number().optional(),formation:wa.optional(),skew:i.number().optional(),skewAxis:i.number().optional(),tracking:i.number().optional(),lineSpacing:i.number().optional(),lineAnchor:i.number().optional(),anchor:li.optional(),opacity:i.number().optional(),blur:i.number().optional(),fillColor:i.string().optional(),stroke:mi.optional(),variableAxes:pi.optional(),chromaticGlitch:fi.optional(),longShadow:gi.optional(),particleDissolve:bi.optional(),audioSpectrum:hi.optional(),spring:di.optional()}),Ma=i.object({name:i.string().default("AdvancedAnimator"),selectors:i.array(i.record(i.string(),i.unknown())).default([]),props:xi});g();g();var lr=i.object({x:i.number(),y:i.number()}),yi=i.object({p0:lr,p1:lr,p2:lr,p3:lr}),vi=i.discriminatedUnion("type",[i.object({type:i.literal("svg"),d:i.string().min(1,"SVG path string cannot be empty")}),i.object({type:i.literal("bezier"),segments:i.array(yi).min(1)}),i.object({type:i.literal("ellipse"),cx:i.number(),cy:i.number(),rx:i.number().positive(),ry:i.number().positive(),startAngleDeg:i.number().default(0),endAngleDeg:i.number().default(360)}),i.object({type:i.literal("wave"),startX:i.number(),startY:i.number(),length:i.number().positive(),amplitude:i.number(),frequency:i.number().positive(),phaseDeg:i.number().default(0)})]),Ot=i.object({path:vi,firstMargin:i.number().default(0),lastMargin:i.number().default(0),reversePath:i.boolean().default(!1),perpendicularToPath:i.boolean().default(!0),forceAlignment:i.boolean().default(!1),loop:i.boolean().default(!1),baselineOffset:i.enum(["baseline","center","ascender","descender"]).default("baseline"),baselineShift:i.number().default(0)}),wi=i.enum(["bar","underscore","block","custom"]),Si=i.object({enabled:i.boolean().default(!0),style:wi.default("bar"),customChar:i.string().default("|"),color:i.string().optional(),blinkFrequency:i.number().min(0).default(2),hideOnComplete:i.boolean().default(!1),width:i.number().positive().default(2.5),spacing:i.number().default(3)}),Mi=i.discriminatedUnion("mode",[i.object({mode:i.literal("constant")}),i.object({mode:i.literal("human"),jitter:i.number().min(0).max(1).default(.35),commaPauseMultiplier:i.number().min(1).default(3),sentencePauseMultiplier:i.number().min(1).default(5.5),paragraphPauseMultiplier:i.number().min(1).default(7)})]),ki=i.object({enabled:i.boolean().default(!1),charset:i.enum(["ascii","alphanumeric","matrix","binary","hex","custom"]).default("alphanumeric"),customCharset:i.string().optional(),scrambleFramesPerChar:i.number().int().min(1).default(8),highlightProbability:i.number().min(0).max(1).default(.25),scrambleColor:i.string().optional()}),$r=i.object({granularity:i.enum(["character","word","line"]).default("character"),cursor:Si.default({enabled:!0,style:"bar",customChar:"|",blinkFrequency:2,hideOnComplete:!1,width:2.5,spacing:3}),cadence:Mi.default({mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7}),scramble:ki.default({enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25}),soundSync:i.boolean().default(!1)}),Wr=i.enum(["characters","characters_excluding_spaces","words","lines"]),Pi=i.enum(["percentage","index"]),Ti=i.enum(["square","ramp_up","ramp_down","triangle","round","smooth"]),Hr=i.enum(["add","subtract","intersect","min","max","difference"]),Ci=i.object({type:i.literal("range"),start:i.number().default(0),end:i.number().default(1),offset:i.number().default(0),units:Pi.default("percentage"),basedOn:Wr.default("characters"),shape:Ti.default("square"),mode:Hr.default("add"),amount:i.number().min(-1).max(1).default(1),easeHigh:i.number().min(-1).max(1).default(0),easeLow:i.number().min(-1).max(1).default(0),randomizeOrder:i.boolean().default(!1),randomSeed:i.number().int().default(12345)}),Ai=i.object({type:i.literal("wiggly"),wigglesPerSecond:i.number().positive().default(2),correlation:i.number().min(0).max(1).default(.5),temporalPhaseDeg:i.number().default(0),spatialPhaseDeg:i.number().default(0),minAmount:i.number().min(-1).max(1).default(-1),maxAmount:i.number().min(-1).max(1).default(1),randomSeed:i.number().int().default(42),basedOn:Wr.default("characters"),mode:Hr.default("intersect")}),Ni=i.object({type:i.literal("signal"),signalId:i.string(),multiplier:i.number().default(1),offset:i.number().default(0),phaseSpread:i.number().default(0),basedOn:Wr.default("characters"),mode:Hr.default("add")}),Di=i.discriminatedUnion("type",[Ci,Ai,Ni]),Fi=i.object({x:i.number().optional(),y:i.number().optional(),z:i.number().optional(),scale:i.number().optional(),scaleX:i.number().optional(),scaleY:i.number().optional(),rotation:i.number().optional(),rotationX:i.number().optional(),rotationY:i.number().optional(),skew:i.number().optional(),skewAxis:i.number().optional(),tracking:i.number().optional(),lineSpacing:i.number().optional(),opacity:i.number().min(0).max(1).optional(),fillColor:i.string().optional(),strokeColor:i.string().optional(),strokeWidth:i.number().min(0).optional(),blur:i.number().min(0).optional(),characterOffset:i.number().int().optional()}),Li=i.enum(["character","word","line","all"]),Oi=i.object({grouping:Li.default("character"),anchorX:i.number().default(.5),anchorY:i.number().default(.8)}),Rt=i.object({name:i.string().default("Animator"),selectors:i.array(Di).min(1),props:Fi,anchor:Oi.default({grouping:"character",anchorX:.5,anchorY:.8})}),Wc=i.object({text:i.string(),fontFamily:i.string().default("Inter"),fontSize:i.number().positive().default(24),fontWeight:i.union([i.number(),i.string()]).default(400),fill:i.string().default("#ffffff"),letterSpacing:i.number().default(0),lineHeight:i.number().positive().default(1.2),textAlign:i.enum(["left","center","right"]).default("left"),pathOptions:Ot.optional(),typewriter:$r.optional(),animators:i.array(Rt).default([])});var ka=class e{options={firstMargin:0,lastMargin:0,reversePath:!1,perpendicularToPath:!0,forceAlignment:!1,loop:!1,baselineOffset:"baseline",baselineShift:0};static fromSvg(t){let r=new e;return r.options.path={type:"svg",d:t},r}static fromBezier(t){let r=new e;return r.options.path={type:"bezier",segments:t},r}static fromCurve(t){return e.fromBezier([t])}static circularBadge(t,r,n){let a=new e;return a.options.path={type:"ellipse",cx:t,cy:r,rx:n,ry:n,startAngleDeg:0,endAngleDeg:360},a.options.loop=!0,a}static ellipse(t,r,n,a,o=0,s=360){let u=new e;return u.options.path={type:"ellipse",cx:t,cy:r,rx:n,ry:a,startAngleDeg:o,endAngleDeg:s},u.options.loop=Math.abs(s-o)>=360,u}static wave(t,r,n,a,o,s=0){let u=new e;return u.options.path={type:"wave",startX:t,startY:r,length:n,amplitude:a,frequency:o,phaseDeg:s},u}firstMargin(t){return this.options.firstMargin=t,this}lastMargin(t){return this.options.lastMargin=t,this}reversePath(t){return this.options.reversePath=t,this}perpendicularToPath(t){return this.options.perpendicularToPath=t,this}forceAlignment(t){return this.options.forceAlignment=t,this}loop(t){return this.options.loop=t,this}baselineOffset(t){return this.options.baselineOffset=t,this}baselineShift(t){return this.options.baselineShift=t,this}build(){return Ot.parse(this.options)}},Pa=class e{name="Animator";selectors=[];props={};anchor={grouping:"character",anchorX:.5,anchorY:.8};static create(t){let r=new e;return r.name=t,r}addRangeSelector(t){let r=t.easeHigh??0,n=Math.abs(r)>1?r/100:r,a=t.easeLow??0,o=Math.abs(a)>1?a/100:a;return this.selectors.push({type:"range",start:t.start??0,end:t.end??1,offset:t.offset??0,units:"percentage",basedOn:t.basedOn??"characters",shape:t.shape??"smooth",mode:t.mode??"add",amount:1,easeHigh:Math.max(-1,Math.min(1,n)),easeLow:Math.max(-1,Math.min(1,o)),randomizeOrder:t.randomizeOrder??!1,randomSeed:t.randomSeed??12345}),this}addWigglySelector(t){return this.selectors.push({type:"wiggly",wigglesPerSecond:t.wigglesPerSecond??2,correlation:t.correlation??.5,temporalPhaseDeg:0,spatialPhaseDeg:0,minAmount:t.minAmount??-1,maxAmount:t.maxAmount??1,randomSeed:t.randomSeed??42,basedOn:"characters",mode:t.mode??"intersect"}),this}addSignalSelector(t,r=1,n=0,a=0,o="add"){return this.selectors.push({type:"signal",signalId:t,multiplier:r,offset:a,phaseSpread:n,basedOn:"characters",mode:o}),this}x(t){return this.props.x=t,this}y(t){return this.props.y=t,this}z(t){return this.props.z=t,this}scale(t){return this.props.scale=t,this}scaleX(t){return this.props.scaleX=t,this}scaleY(t){return this.props.scaleY=t,this}rotation(t){return this.props.rotation=t,this}rotationX(t){return this.props.rotationX=t,this}rotationY(t){return this.props.rotationY=t,this}skew(t){return this.props.skew=t,this}skewAxis(t){return this.props.skewAxis=t,this}opacity(t){return this.props.opacity=t,this}blur(t){return this.props.blur=t,this}fill(t){return this.fillColor(t)}fillColor(t){return this.props.fillColor=t,this}strokeColor(t){return this.props.strokeColor=t,this}strokeWidth(t){return this.props.strokeWidth=t,this}tracking(t){return this.props.tracking=t,this}lineSpacing(t){return this.props.lineSpacing=t,this}characterOffset(t){return this.props.characterOffset=t,this}anchorGrouping(t,r=.5,n=.8){return this.anchor={grouping:t,anchorX:r,anchorY:n},this}build(){return Rt.parse({name:this.name,selectors:this.selectors,props:this.props,anchor:this.anchor})}};g();function Hc(e,t=180,r=12,n=1,a=0){if(e<=0)return 0;let o=Math.sqrt(Math.max(1e-4,t)/Math.max(1e-4,n)),s=r/(2*Math.sqrt(Math.max(1e-4,t*n)));if(s<1){let u=o*Math.sqrt(1-s*s),c=Math.exp(-s*o*e),l=-1,m=(a-s*o*-1)/Math.max(1e-6,u),d=c*(l*Math.cos(u*e)+m*Math.sin(u*e));return Math.min(2,Math.max(-1,1+d))}else if(Math.abs(s-1)<1e-4){let u=Math.exp(-o*e);return 1+(-1+(a-o)*e)*u}else{let u=-o*(s-Math.sqrt(s*s-1)),c=-o*(s+Math.sqrt(s*s-1)),l=(a+c)/Math.max(1e-6,u-c),m=-1-l;return 1+(l*Math.exp(u*e)+m*Math.exp(c*e))}}function Yc(e,t=0){if(e===0)return[1,0,0,1];let r=e*Math.PI/180,n=t*Math.PI/180,a=Math.cos(n),o=Math.sin(n),s=Math.tan(r),u=1-s*a*o,c=s*a*a,l=-s*o*o,m=1+s*o*a;return[u,c,l,m]}function Xc(e,t){let r=t.anchorX,n=t.anchorY;switch(t.preset){case"center":r=.5,n=.5;break;case"baseline":r=.5,n=e.height>0?e.ascender/e.height:.8;break;case"bottom_left":r=0,n=1;break;case"bottom_center":r=.5,n=1;break;case"bottom_right":r=1,n=1;break;case"top_left":r=0,n=0;break;case"top_center":r=.5,n=0;break;case"top_right":r=1,n=0;break;default:r=.5,n=.5;break}let a=(r-.5)*e.width+t.offsetX,o=(n-.5)*e.height+t.offsetY;return{px:a,py:o}}function Zc(e,t,r,n=0){if(r===0||t<=1)return 0;let a=n*(t-1);return(e-a)*r}function qc(e,t){try{let r={textIndex:t.charIndex,textTotal:Math.max(1,t.totalChars),wordIndex:t.wordIndex,wordTotal:Math.max(1,t.totalWords),lineIndex:t.lineIndex,lineTotal:Math.max(1,t.totalLines),time:t.time,frame:t.frame,fps:t.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:(u,c,l)=>Math.max(c,Math.min(l,u)),noise:u=>{let c=Math.sin(u*12.9898+t.frame*.1)*43758.5453;return(c-Math.floor(c))*2-1},signals:t.signals??{}},n=Object.keys(r),a=Object.values(r),o=new Function(...n,`return (${e});`),s=Number(o(...a));return Number.isFinite(s)?Math.max(-1,Math.min(1,s)):0}catch{return 0}}function Kc(e,t,r){let n=Math.max(1,t),a=n>1?e/(n-1):0,o=r.totalAngle*Math.PI/180,s=a*o,u=0,c=0,l=0,m=0,d=0,p=0,h=1;switch(r.mode){case"cylinder":{let y=r.totalAngle<360?(a-.5)*o:s;r.axis==="y"?(u=r.radius*Math.sin(y),l=r.radius*Math.cos(y)-r.radius,d=y*180/Math.PI):r.axis==="x"?(c=r.radius*Math.sin(y),l=r.radius*Math.cos(y)-r.radius,m=y*180/Math.PI):(u=r.radius*Math.sin(y),c=r.radius*Math.cos(y),p=y*180/Math.PI);let v=Math.cos(y);h=Math.max(.25,(v+1)*.5);break}case"vortex":{let v=-Math.PI/2+s,w=r.radius*(1-a*.35);u=w*Math.cos(v),c=w*Math.sin(v),l=-e*r.pitch||0;let M=-.35*r.radius/(o||1),N=M*Math.cos(v)-w*Math.sin(v),k=M*Math.sin(v)+w*Math.cos(v);p=Math.atan2(k,N)*180/Math.PI,h=Math.max(.65,1-a*.35);break}case"helix":{if(r.axis==="x"){let y=r.pitch>10?r.pitch:28;u=(e-(n-1)/2)*y,c=r.radius*Math.sin(s),l=r.radius*Math.cos(s)-r.radius,m=Math.sin(s)*22,h=.75+.25*((Math.cos(s)+1)*.5)}else{let y=(a-.5)*o;u=r.radius*Math.sin(y),c=(e-(n-1)/2)*r.pitch,l=r.radius*Math.cos(y)-r.radius,d=y*180/Math.PI;let v=Math.cos(y);h=Math.max(.65,(v+1)*.5)}break}default:{l=0;break}}let b=Math.max(100,r.perspective??1200),f=b-l,x=f>1?b/f:1;return{x:u*x,y:c*x,z:l,rotX:m,rotY:d,rotZ:p,scaleMult:Math.max(.1,x),depthOpacity:h}}function Jc(e,t,r,n,a){let s=(t>0?Math.max(t,r):r)+n.repeatGap;if(s<=0)return e;let u=n.velocity*a;if(n.snap?.enabled){let c=n.snap.stopIndex??0,l=n.snap.granularity==="character"?40:120,m=c*l,d=Math.min(1,a*1.5);u=u*(1-d)+m*d}if((n.direction==="right"||n.direction==="down")&&(u=-u),n.loop){let c=(e-u)%s;return c<-r?c+s:c}return e-u}function Qc(e,t,r,n,a,o){let s=Math.max(1,t),u=s>1?e/(s-1):.5,c=Math.max(20,r.minFreqHz),l=Math.max(c+100,r.maxFreqHz),m=c*(l/c)**u,d=0;if(n){let h=n[r.signalChannel];if(typeof h=="number")d=h;else if(typeof h=="function")d=Number(h(a,o,m))||0;else if(typeof h=="object"&&h!==null){let b=h;if(typeof b.get=="function")d=Number(b.get({frame:a,fps:o,freq:m}))||0;else if(Array.isArray(b.samples)||ArrayBuffer.isView(b.samples)){let f=b.samples,x=Math.floor(u*(f.length-1));d=Number(f[x])||0}}}let p=Math.max(0,Math.min(1,d));return r.minScale+p*(r.maxScale-r.minScale)}g();function Yr(e,t){let r=1-t,n=t*t,a=r*r,o=a*r,s=n*t;return{x:o*e.p0.x+3*a*t*e.p1.x+3*r*n*e.p2.x+s*e.p3.x,y:o*e.p0.y+3*a*t*e.p1.y+3*r*n*e.p2.y+s*e.p3.y}}function cr(e,t){let r=1-t;return{x:3*r*r*(e.p1.x-e.p0.x)+6*r*t*(e.p2.x-e.p1.x)+3*t*t*(e.p3.x-e.p2.x),y:3*r*r*(e.p1.y-e.p0.y)+6*r*t*(e.p2.y-e.p1.y)+3*t*t*(e.p3.y-e.p2.y)}}function Ri(e,t=100){let r=[{distance:0,t:0}],n=0,a=e.p0;for(let o=1;o<=t;o++){let s=o/t,u=Yr(e,s),c=u.x-a.x,l=u.y-a.y,m=Math.hypot(c,l);n+=m,r.push({distance:n,t:s}),a=u}return{lut:r,totalLength:n}}function Ta(e,t,r){if(t<=0)return 0;if(t>=r)return 1;let n=0,a=e.length-1;for(;n<=a;){let m=n+a>>1;e[m].distance<t?n=m+1:a=m-1}let o=Math.max(1,Math.min(n,e.length-1)),s=e[o-1],u=e[o],c=u.distance-s.distance;if(c<=1e-6)return s.t;let l=(t-s.distance)/c;return s.t+l*(u.t-s.t)}function ed(e,t,r,n){let a=Ta(t,n,r),o=Yr(e,a),s=cr(e,a),u=Math.hypot(s.x,s.y),c=u>1e-6?-s.y/u:0,l=u>1e-6?s.x/u:1,m=Math.atan2(s.y,s.x)*180/Math.PI;return{position:o,tangentAngleDeg:m,normal:{x:c,y:l}}}function td(e,t=50){if(e.length===0)return{totalLength:0,entries:[{distance:0,segmentIndex:0,t:0}],segments:[]};let r=[],n=[],a=0;for(let o=0;o<e.length;o++){let s=e[o],{lut:u,totalLength:c}=Ri(s,t);r.push({segmentIndex:o,startDistance:a,length:c,lut:u});for(let l=0;l<u.length;l++)n.push({distance:a+u[l].distance,segmentIndex:o,t:u[l].t});a+=c}return{totalLength:a,entries:n,segments:r}}function rd(e,t,r){if(e.length===0)return{position:{x:0,y:0},tangentAngleDeg:0,normal:{x:0,y:1}};let n=t.totalLength;if(r<=0){let h=e[0],b=cr(h,0),f=Math.hypot(b.x,b.y),x=f>1e-6?b.x/f:1,y=f>1e-6?b.y/f:0,v={x:h.p0.x+x*r,y:h.p0.y+y*r},w=f>1e-6?-b.y/f:0,M=f>1e-6?b.x/f:1;return{position:v,tangentAngleDeg:Math.atan2(b.y,b.x)*180/Math.PI,normal:{x:w,y:M}}}if(r>=n){let h=e[e.length-1],b=cr(h,1),f=Math.hypot(b.x,b.y),x=f>1e-6?b.x/f:1,y=f>1e-6?b.y/f:0,v=r-n,w={x:h.p3.x+x*v,y:h.p3.y+y*v},M=f>1e-6?-b.y/f:0,N=f>1e-6?b.x/f:1;return{position:w,tangentAngleDeg:Math.atan2(b.y,b.x)*180/Math.PI,normal:{x:M,y:N}}}let a=0,o=0;if(t.segments&&t.segments.length>0){let h=0,b=t.segments.length-1;for(;h<=b;){let v=h+b>>1,w=t.segments[v];if(r<w.startDistance)b=v-1;else if(r>w.startDistance+w.length)h=v+1;else{h=v;break}}let f=Math.max(0,Math.min(h,t.segments.length-1)),x=t.segments[f];a=x.segmentIndex;let y=r-x.startDistance;o=Ta(x.lut,y,x.length)}else{let h=0,b=t.entries.length-1;for(;h<=b;){let M=h+b>>1;t.entries[M].distance<r?h=M+1:b=M-1}let f=Math.max(1,Math.min(h,t.entries.length-1)),x=t.entries[f-1],y=t.entries[f],v=y.distance-x.distance,w=v>1e-6?(r-x.distance)/v:0;a=y.segmentIndex,o=x.segmentIndex===y.segmentIndex?x.t+w*(y.t-x.t):y.t}let s=e[a]??e[0],u=Yr(s,o),c=cr(s,o),l=Math.hypot(c.x,c.y),m=l>1e-6?-c.y/l:0,d=l>1e-6?c.x/l:1,p=Math.atan2(c.y,c.x)*180/Math.PI;return{position:u,tangentAngleDeg:p,normal:{x:m,y:d}}}function Bi(e,t,r,n,a=0,o=360){let s=a*Math.PI/180,c=o*Math.PI/180-s,l=Math.max(1,Math.ceil(Math.abs(c)/(Math.PI/2))),m=c/l,d=[];for(let p=0;p<l;p++){let h=s+p*m,b=h+m,f=m/2,x=4/3*Math.tan(f/2),y=Math.cos(h),v=Math.sin(h),w=Math.cos(b),M=Math.sin(b),N={x:e+r*y,y:t+n*v},k={x:N.x-x*r*v,y:N.y+x*n*y},F={x:e+r*w,y:t+n*M},U={x:F.x+x*r*M,y:F.y-x*n*w};d.push({p0:N,p1:k,p2:U,p3:F})}return d}function Ii(e,t,r,n,a,o=0){let s=o*Math.PI/180,u=a<.1&&a*r>=.25?a*r:Math.max(.5,a),c=Math.max(1,Math.round(u*2)),l=r/c,m=[];for(let d=0;d<c;d++){let p=d/c*(2*Math.PI*u)+s,h=(d+1)/c*(2*Math.PI*u)+s,b=e+d*l,f=e+(d+1)*l,x=t+n*Math.sin(p),y=t+n*Math.sin(h),v=n*Math.cos(p)*(Math.PI/3),w=n*Math.cos(h)*(Math.PI/3),M={x:b,y:x},N={x:b+l/3,y:x+v},k={x:f-l/3,y:y-w},F={x:f,y};m.push({p0:M,p1:N,p2:k,p3:F})}return m}function nd(e,t,r,n,a,o,s,u,c){if(e===u&&t===c)return[];let l=Math.abs(r),m=Math.abs(n);if(l===0||m===0)return[{p0:{x:e,y:t},p1:{x:e+(u-e)/3,y:t+(c-t)/3},p2:{x:e+2*(u-e)/3,y:t+2*(c-t)/3},p3:{x:u,y:c}}];let d=a*Math.PI/180,p=Math.cos(d),h=Math.sin(d),b=(e-u)/2,f=(t-c)/2,x=p*b+h*f,y=-h*b+p*f,v=x*x/(l*l)+y*y/(m*m);v>1&&(l*=Math.sqrt(v),m*=Math.sqrt(v));let w=l*l*m*m-l*l*y*y-m*m*x*x,M=l*l*y*y+m*m*x*x,N=(o!==s?1:-1)*Math.sqrt(Math.max(0,w/M)),k=N*l*y/m,F=-N*m*x/l,U=p*k-h*F+(e+u)/2,V=h*k+p*F+(t+c)/2,q=(W,re,de,ae)=>Math.atan2(W*ae-re*de,W*de+re*ae),te=q(1,0,(x-k)/l,(y-F)/m),R=q((x-k)/l,(y-F)/m,(-x-k)/l,(-y-F)/m);!s&&R>0&&(R-=2*Math.PI),s&&R<0&&(R+=2*Math.PI);let T=Math.max(1,Math.ceil(Math.abs(R)/(Math.PI/2))),P=R/T,$=4/3*Math.tan(P/4),H=W=>({x:U+l*Math.cos(W)*p-m*Math.sin(W)*h,y:V+l*Math.cos(W)*h+m*Math.sin(W)*p}),_=W=>({x:-l*Math.sin(W)*p-m*Math.cos(W)*h,y:-l*Math.sin(W)*h+m*Math.cos(W)*p}),E=[];for(let W=0;W<T;W++){let re=te+W*P,de=re+P,ae=H(re),L=H(de),B=_(re),z=_(de);E.push({p0:ae,p1:{x:ae.x+$*B.x,y:ae.y+$*B.y},p2:{x:L.x-$*z.x,y:L.y-$*z.y},p3:L})}return E[E.length-1].p3={x:u,y:c},E}function Ui(e){let t=[],r=e.match(/[a-df-z]|[-+]?(?:\d*\.\d+|\d+)(?:[eE][-+]?\d+)?/gi);if(!r||r.length===0)return t;let n=0,a=0,o=0,s=0,u=0,c=0,l="",m=0,d=()=>m>=r.length?0:Number.parseFloat(r[m++]);for(;m<r.length;){let p=r[m++],h=/^[a-df-z]$/i.test(p),b=h?p:l;switch(h||m--,b){case"M":{n=d(),a=d(),o=n,s=a,l="L";break}case"m":{n+=d(),a+=d(),o=n,s=a,l="l";break}case"L":{let f=d(),x=d();t.push({p0:{x:n,y:a},p1:{x:n+(f-n)/3,y:a+(x-a)/3},p2:{x:n+2*(f-n)/3,y:a+2*(x-a)/3},p3:{x:f,y:x}}),n=f,a=x,l="L";break}case"l":{let f=d(),x=d(),y=n+f,v=a+x;t.push({p0:{x:n,y:a},p1:{x:n+f/3,y:a+x/3},p2:{x:n+2*f/3,y:a+2*x/3},p3:{x:y,y:v}}),n=y,a=v,l="l";break}case"H":{let f=d();t.push({p0:{x:n,y:a},p1:{x:n+(f-n)/3,y:a},p2:{x:n+2*(f-n)/3,y:a},p3:{x:f,y:a}}),n=f,l="H";break}case"h":{let f=d(),x=n+f;t.push({p0:{x:n,y:a},p1:{x:n+f/3,y:a},p2:{x:n+2*f/3,y:a},p3:{x,y:a}}),n=x,l="h";break}case"V":{let f=d();t.push({p0:{x:n,y:a},p1:{x:n,y:a+(f-a)/3},p2:{x:n,y:a+2*(f-a)/3},p3:{x:n,y:f}}),a=f,l="V";break}case"v":{let f=d(),x=a+f;t.push({p0:{x:n,y:a},p1:{x:n,y:a+f/3},p2:{x:n,y:a+2*f/3},p3:{x:n,y:x}}),a=x,l="v";break}case"C":{let f=d(),x=d(),y=d(),v=d(),w=d(),M=d();t.push({p0:{x:n,y:a},p1:{x:f,y:x},p2:{x:y,y:v},p3:{x:w,y:M}}),u=y,c=v,n=w,a=M,l="C";break}case"c":{let f=d(),x=d(),y=d(),v=d(),w=d(),M=d(),N=n+f,k=a+x,F=n+y,U=a+v,V=n+w,q=a+M;t.push({p0:{x:n,y:a},p1:{x:N,y:k},p2:{x:F,y:U},p3:{x:V,y:q}}),u=F,c=U,n=V,a=q,l="c";break}case"S":case"s":{let f=b==="s",x=d(),y=d(),v=d(),w=d(),M=f?n+x:x,N=f?a+y:y,k=f?n+v:v,F=f?a+w:w,U=n,V=a;/^[cs]$/i.test(l)&&(U=2*n-u,V=2*a-c),t.push({p0:{x:n,y:a},p1:{x:U,y:V},p2:{x:M,y:N},p3:{x:k,y:F}}),u=M,c=N,n=k,a=F,l=b;break}case"Q":case"q":{let f=b==="q",x=d(),y=d(),v=d(),w=d(),M=f?n+x:x,N=f?a+y:y,k=f?n+v:v,F=f?a+w:w,U=n+2/3*(M-n),V=a+2/3*(N-a),q=k+2/3*(M-k),te=F+2/3*(N-F);t.push({p0:{x:n,y:a},p1:{x:U,y:V},p2:{x:q,y:te},p3:{x:k,y:F}}),u=M,c=N,n=k,a=F,l=b;break}case"A":case"a":{let f=d(),x=d(),y=d(),v=d()!==0,w=d()!==0,M=d(),N=d();b==="a"&&(M+=n,N+=a),t.push(...nd(n,a,f,x,y,v,w,M,N)),n=M,a=N,u=M,c=N,l=b;break}case"Z":case"z":{(n!==o||a!==s)&&(t.push({p0:{x:n,y:a},p1:{x:n+(o-n)/3,y:a+(s-a)/3},p2:{x:n+2*(o-n)/3,y:a+2*(s-a)/3},p3:{x:o,y:s}}),n=o,a=s),l=b;break}default:break}}return t}function ad(e){switch(e.type){case"bezier":return e.segments;case"svg":return Ui(e.d);case"ellipse":return Bi(e.cx,e.cy,e.rx,e.ry,e.startAngleDeg??0,e.endAngleDeg??360);case"wave":return Ii(e.startX,e.startY,e.length,e.amplitude,e.frequency,e.phaseDeg??0)}}g();function od(e,t,r,n,a,o=0,s=0){let u=t+n,c=r+n;if(c<=u)return 0;let l=(e-u)/(c-u),m=0;switch(a){case"square":m=l>=0&&l<=1?1:0;break;case"ramp_up":m=Math.max(0,Math.min(1,l));break;case"ramp_down":m=1-Math.max(0,Math.min(1,l));break;case"triangle":{l<0||l>1?m=0:l<.5?m=l*2:m=(1-l)*2;break}case"round":{l<0||l>1?m=0:m=.5-.5*Math.cos(l*2*Math.PI);break}case"smooth":{l<=0?m=0:l>=1?m=1:m=l*l*(3-2*l);break}}if(m>0&&m<1){if(o!==0&&m>.5){let d=(m-.5)*2,p=o>0?1+o*3:1/(1-o*3);m=.5+.5*d**p}if(s!==0&&m<=.5){let d=m*2,p=s>0?1+s*3:1/(1-s*3);m=.5*d**p}}return Math.max(0,Math.min(1,m))}function id(e,t,r,n){let a=(t*(1-n)+n)*12.9898+r+e*78.233,o=Math.sin(a)*43758.5453;return(o-Math.floor(o))*2-1}function sd(e,t){let r=t,n=()=>(r=(r*9301+49297)%233280,r/233280),a=Array.from({length:e},(o,s)=>s);for(let o=a.length-1;o>0;o--){let s=Math.floor(n()*(o+1)),u=a[o];a[o]=a[s],a[s]=u}return a}function ud(e,t,r){switch(r){case"add":return Math.max(0,Math.min(1,e+t));case"subtract":return Math.max(0,Math.min(1,e-t));case"intersect":return e*t;case"min":return Math.min(e,t);case"max":return Math.max(e,t);case"difference":return Math.abs(e-t)}}g();var Ei={ascii:"!@#$%^&*()_+{}[]:;<>,.?",alphanumeric:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",matrix:"010101<>[]{}+=*~#%&!?/\\:;|X0123456789",binary:"01",hex:"0123456789ABCDEF"};function _i(e,t){return e==="custom"&&t&&t.length>0?t:Ei[e]??Ei.alphanumeric}function ld(e,t,r,n,a={mode:"human",jitter:.35,commaPauseMultiplier:3,sentencePauseMultiplier:5.5,paragraphPauseMultiplier:7},o={enabled:!1,charset:"alphanumeric",scrambleFramesPerChar:8,highlightProbability:.25},s=2,u="character",c){if(c===void 0&&t<r)return{visibleChars:0,currentDisplayString:"",isCursorVisible:!1};let l=c!==void 0?Math.max(0,Math.min(1,c)):Math.min(1,(t-r)/Math.max(1,n)),m=c!==void 0?l*n:t-r,d=e.length,p=Math.floor(l*d);if(u==="word"){let f=e.split(/(\s+)/),x=[];f.forEach((v,w)=>{v.trim().length>0&&x.push(w)});let y=Math.min(x.length,Math.floor(l*(x.length+1)));if(y<=0)p=0;else{let v=x[Math.min(x.length-1,y-1)];p=f.slice(0,v+1).join("").length}}else if(u==="line"){let f=e.split(`
|
|
706
706
|
`),x=Math.min(f.length,Math.floor(l*(f.length+1)));p=f.slice(0,x).join(`
|
|
707
|
-
`).length}else if(a.mode==="human"&&l<1){let f=0,x=0,y=n/Math.max(1,d);for(let v=0;v<d;v++){let w=e[v],M=1,N=a.commaPauseMultiplier??3,k=a.sentencePauseMultiplier??5.5,
|
|
708
|
-
`&&(M=O);let V=1+Math.sin(v*17.3+42)*.5*U,q=y*M*V;if(x+=q,x<=m)f=v+1;else break}p=Math.min(d,f)}let h=e.slice(0,p);if(o.enabled&&p<d&&p>0){let f=Ei(o.charset,o.customCharset),x=Math.min(p,Math.max(1,o.scrambleFramesPerChar>4?3:2)),y="";for(let v=0;v<x;v++){let w=Math.floor(Math.abs(Math.sin(t*7+v*13))*f.length)%f.length;y+=f[w]}h=h.slice(0,h.length-x)+y}let b=!0;if(s>0){let f=Math.max(1,Math.round(30/(2*s)));b=Math.floor(m/f)%2===0}return{visibleChars:p,currentDisplayString:h,isCursorVisible:b}}var _i=i.union([i.number().min(0),i.enum(["auto","fit","fill"]),i.custom()]),Ic=i.enum(["rect","circle","ellipse","polygon","star","arrow","path"]),Uc=i.enum(["x","y","scale","rotation","opacity","width","height","volume","hidden","muted","gap","padding","borderRadius","fontSize","text","fill","color","letterSpacing","trimStart","trimEnd","trimOffset","strokeWidth","strokeDashOffset","cornerRadius","starInnerRadiusRatio","fillColor","strokeColor","borderColor","borderWidth","motionBlurShutter","rangeStart","rangeEnd","offset","animatorRangeStart","animatorRangeEnd","animatorOffset","firstMargin","lastMargin","baselineShift","rotateX","rotateY","rotateZ","perspective","translateZ","perspectiveOriginX","perspectiveOriginY","cameraX","cameraY","cameraZ","targetX","targetY","targetZ","cameraPitch","cameraYaw","cameraRoll","cameraFov","cameraZoom","focalLength","focusDistance","fStop","maxBlurRadius","shakeTranslation","shakeRotation","orbitRadius","orbitAzimuth","orbitElevation","z","scaleZ","intensity","angle","radius","penumbra","decay","shininess","roughness","specularIntensity","ambientIntensity","metallic","ior","dispersion","transmission","fresnelPower","envIntensity","animationProgress","animationTime","animationSpeed","wireframe","scaleX","scaleY"]),Gi=i.enum(["lit","unlit","toon","glass","acrylic","frosted","metallic"]);var Ec=i.enum(["interpolate","hueRotate","threshold"]),_c=i.object({name:i.enum(["none","power1","power2","power3","sine","circ","expo","back","elastic","bounce","spring","cubic","hold"]),dir:i.enum(["in","out","inOut"]),params:i.array(i.number()).optional()}).strict().superRefine((e,t)=>{if(e.name==="spring"&&e.params){let[r,n,a]=e.params;r!==void 0&&r<=0&&t.addIssue({code:i.ZodIssueCode.custom,message:"Spring damping must be greater than 0.",path:["params",0]}),n!==void 0&&n<=0&&t.addIssue({code:i.ZodIssueCode.custom,message:"Spring stiffness must be greater than 0.",path:["params",1]}),a!==void 0&&a<=0&&t.addIssue({code:i.ZodIssueCode.custom,message:"Spring mass must be greater than 0.",path:["params",2]})}}),Gc=i.object({id:i.string().min(1),frame:i.number().int().min(0),value:i.union([i.number(),i.boolean(),i.string()]),ease:_c.optional(),presetGroupId:i.string().optional(),presetType:i.string().optional(),spatialTangentIn:i.object({x:i.number(),y:i.number()}).optional(),spatialTangentOut:i.object({x:i.number(),y:i.number()}).optional()}).strict(),zc=i.enum(["continuous","accumulate"]),Vc=i.discriminatedUnion("type",[i.object({type:i.literal("keyframe")}),i.object({type:i.literal("signal"),inputHandleId:i.string(),multiplier:i.number().default(1),offset:i.number().default(0),smoothingWindowFrames:i.number().min(0).default(0),colorMode:Ec.optional(),colorA:i.string().optional(),colorB:i.string().optional(),colorThreshold:i.number().optional(),signalMode:zc.optional(),threshold:i.number().optional(),accumulateThreshold:i.number().optional(),debounceFrames:i.number().int().min(0).optional(),channel:i.string().optional()}),i.object({type:i.literal("wiggle"),frequency:i.number().default(2),amplitude:i.number().default(50),octaves:i.number().int().min(1).max(4).default(1),seed:i.number().default(1234)}),i.object({type:i.literal("springOvershoot"),damping:i.number().default(12),stiffness:i.number().default(180),mass:i.number().default(1)})]),jc=i.preprocess(e=>{if(!e||typeof e!="object")return e;let t=e;if(t.type==="signal"){let r=typeof t.threshold=="number"?t.threshold:typeof t.accumulateThreshold=="number"?t.accumulateThreshold:.15;return{type:"signal",inputHandleId:t.inputHandleId??t.handleId,multiplier:t.multiplier??t.amplitude??1,offset:t.offset??0,smoothingWindowFrames:t.smoothingWindowFrames??t.smoothing??0,colorMode:t.colorMode,colorA:t.colorA,colorB:t.colorB,colorThreshold:t.colorThreshold,signalMode:t.signalMode??"continuous",threshold:r,accumulateThreshold:r,debounceFrames:t.debounceFrames??2,channel:typeof t.channel=="string"?t.channel:"primary"}}return e},Vc),$c=(e,t)=>{if(!e?.tracks)return;let r=0;for(let n=0;n<e.tracks.length;n++){let a=e.tracks[n],o=a.keyframes??[];r+=o.length,(!a.source||a.source.type==="keyframe")&&o.length<1&&t.addIssue({code:i.ZodIssueCode.custom,message:`Track for property '${a.prop}' must have at least 1 keyframe.`,path:["tracks",n,"keyframes"]});let u=a.prop==="hidden"||a.prop==="muted",c=a.prop==="fillColor"||a.prop==="strokeColor"||a.prop==="fill"||a.prop==="color";for(let l=0;l<o.length;l++){let m=o[l];if(l>0){let p=o[l-1];m.frame<p.frame?t.addIssue({code:i.ZodIssueCode.custom,message:"Keyframes must be sorted in ascending order of frame.",path:["tracks",n,"keyframes",l]}):m.frame===p.frame&&t.addIssue({code:i.ZodIssueCode.custom,message:"Duplicate keyframes at the same frame are not allowed.",path:["tracks",n,"keyframes",l]})}let d=typeof m.value;u?d!=="boolean"&&t.addIssue({code:i.ZodIssueCode.custom,message:`Keyframe value for discrete property '${a.prop}' must be a boolean.`,path:["tracks",n,"keyframes",l,"value"]}):c?d!=="string"&&t.addIssue({code:i.ZodIssueCode.custom,message:`Keyframe value for color property '${a.prop}' must be a string.`,path:["tracks",n,"keyframes",l,"value"]}):d!=="number"||Number.isNaN(m.value)||!Number.isFinite(m.value)?t.addIssue({code:i.ZodIssueCode.custom,message:`Keyframe value for numeric property '${a.prop}' must be a finite number.`,path:["tracks",n,"keyframes",l,"value"]}):(a.prop==="volume"||a.prop==="trimStart"||a.prop==="trimEnd")&&(m.value<0||m.value>1)&&t.addIssue({code:i.ZodIssueCode.custom,message:`Keyframe value for property '${a.prop}' must be between 0 and 1.`,path:["tracks",n,"keyframes",l,"value"]})}}r>128&&t.addIssue({code:i.ZodIssueCode.custom,message:`Total keyframes across all tracks (${r}) exceeds the limit of 128.`,path:["tracks"]})},Wc=i.object({id:i.string().min(1),prop:Uc,source:jc.optional(),keyframes:i.array(Gc).default([]),repeat:i.number().int().optional(),yoyo:i.boolean().optional(),durationFrames:i.number().int().min(1).optional()}).strict(),Pa=i.object({tracks:i.array(Wc).max(24)}).strict().superRefine($c),dt={id:i.string().min(1),inputHandleId:i.string().optional(),position:i.enum(["relative","absolute"]).default("relative"),x:i.union([i.number(),i.custom()]).default(0),y:i.union([i.number(),i.custom()]).default(0),width:_i.optional(),height:_i.optional(),grow:i.number().min(0).optional(),flexShrink:i.number().min(0).optional(),flexBasis:i.number().min(0).optional(),alignSelf:i.enum(["auto","start","center","end","stretch","baseline"]).optional(),aspectRatio:i.number().positive().optional(),zIndex:i.number().int().default(0),hidden:i.boolean().default(!1),opacity:i.number().min(0).max(1).default(1),blendMode:i.string().optional(),effects:i.array(i.unknown()).optional(),rotation:i.number().default(0),scale:i.number().min(0).default(1),anchorX:i.number().min(0).max(1).default(.5),anchorY:i.number().min(0).max(1).default(.5),startFrame:i.number().int().min(0).default(0),durationFrames:i.number().int().min(1).optional(),motionBlurShutter:i.number().min(0).max(360).optional(),rotateX:i.number().default(0),rotateY:i.number().default(0),rotateZ:i.number().default(0),perspective:i.number().min(0).default(0),perspectiveOriginX:i.number().default(.5),perspectiveOriginY:i.number().default(.5),translateZ:i.number().default(0),backfaceVisibility:i.enum(["visible","hidden"]).default("visible"),transformStyle:i.enum(["flat","preserve-3d"]).default("flat"),is3D:i.boolean().default(!1),z:i.union([i.number(),i.custom()]).default(0),scaleZ:i.number().default(1),twoSided:i.boolean().default(!0),material:Gi.default("lit"),ior:i.number().min(1).max(3).optional(),roughness:i.number().min(0).max(1).optional(),shininess:i.number().min(1).max(512).default(32),specularIntensity:i.number().min(0).default(.5),metallic:i.number().min(0).max(1).optional(),ambientIntensity:i.number().min(0).default(1),transmission:i.number().min(0).max(1).optional(),dispersion:i.number().min(0).max(1).optional(),fresnelPower:i.number().min(1).max(10).optional(),envIntensity:i.number().min(0).max(10).optional(),animation:Pa.default({tracks:[]}),vision:i.unknown().optional(),relighting:i.unknown().optional()},zi=i.object({color:fe,offset:i.object({x:i.number(),y:i.number()}).optional(),blurRadius:i.number().min(0).optional()}).strict(),Hc=i.object({x:i.number().optional(),y:i.number().optional(),scale:i.number().optional(),scaleX:i.number().optional(),scaleY:i.number().optional(),rotation:i.number().optional(),rotationX:i.number().optional(),rotationY:i.number().optional(),opacity:i.number().optional(),blur:i.number().optional(),color:i.string().optional()}).strict(),Vi=i.object({id:i.string(),unit:i.enum(["character","word","line"]).default("character"),rangeStart:i.number().min(0).max(1).default(0),rangeEnd:i.number().min(0).max(1).default(1),offset:i.number().min(-1).max(1).default(0),easing:i.string().default("power2.out"),transform:Hc.optional()}),Yc={waveRise(e={}){return{id:e.id??"wave-rise",unit:e.unit??"character",rangeStart:e.rangeStart??0,rangeEnd:e.rangeEnd??1,offset:e.offset??-1,easing:e.easing??"power2.out",transform:{y:e.y??40,rotationX:e.rotationX??45,opacity:e.opacity??0,blur:e.blur??0}}},wordPop(e={}){return{id:e.id??"word-pop",unit:"word",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"back.out(1.6)",transform:{scale:e.scale??0,y:e.y??20,opacity:0}}},blurIn(e={}){return{id:e.id??"blur-in",unit:e.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"power3.out",transform:{blur:e.blur??16,y:e.y??20,opacity:e.opacity??0}}},flip3D(e={}){return{id:e.id??"flip-3d",unit:e.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"back.out(1.4)",transform:{rotationX:e.rotationX??90,opacity:0}}},colorSweep(e){return{id:e.id??"color-sweep",unit:e.unit??"character",rangeStart:0,rangeEnd:.5,offset:-.5,easing:e.easing??"power2.inOut",transform:{color:e.color}}}},Xc=i.object({focalLength:i.number().min(5).max(500).default(50),fov:i.number().min(5).max(160).optional(),sensorWidth:i.number().default(36),near:i.number().min(.1).default(1),far:i.number().min(10).default(5e4),zoom:i.number().min(.01).default(1)}).strict(),Zc=i.object({enabled:i.boolean().default(!1),focusDistance:i.number().min(1).default(1e3),fStop:i.number().min(.5).max(64).default(2.8),maxBlurRadius:i.number().min(0).max(128).default(32),apertureBlades:i.number().int().min(0).max(12).default(0),anamorphicRatio:i.number().min(.5).max(3).default(1)}).strict(),qc=i.object({translationAmplitude:i.number().min(0).default(0),rotationAmplitude:i.number().min(0).default(0),frequency:i.number().min(.1).max(60).default(2.5),octaves:i.number().int().min(1).max(6).default(3),seed:i.number().default(42)}).strict(),ji=i.object({id:i.string().min(1),kind:i.literal("camera"),mode:i.enum(["lookAt","free","orbit"]).default("lookAt"),x:i.number().optional(),y:i.number().optional(),z:i.number().optional(),targetX:i.number().optional(),targetY:i.number().optional(),targetZ:i.number().optional(),pitch:i.number().default(0),yaw:i.number().default(0),roll:i.number().default(0),lens:Xc.optional(),dof:Zc.optional(),shake:qc.optional(),startFrame:i.number().int().min(0).default(0),durationFrames:i.number().int().min(1).optional(),animation:Pa.default({tracks:[]})}).strict(),$i=i.enum(["ambient","directional","point","spot"]),Wi=i.object({id:i.string().min(1),kind:i.literal("light"),lightType:$i.default("directional"),color:fe.default("#ffffff"),intensity:i.number().default(1),x:i.number().optional(),y:i.number().optional(),z:i.number().optional(),targetX:i.number().optional(),targetY:i.number().optional(),targetZ:i.number().optional(),direction:i.tuple([i.number(),i.number(),i.number()]).optional(),radius:i.number().min(0).default(1e3),decay:i.number().min(0).default(2),angle:i.number().min(0).max(180).default(45),penumbra:i.number().min(0).max(1).default(.2),startFrame:i.number().int().min(0).default(0),durationFrames:i.number().int().min(1).optional(),animation:Pa.default({tracks:[]})}).strict(),Ca=()=>i.array(i.lazy(()=>Aa)),Hi=i.object({...dt,kind:i.literal("flex"),dir:i.enum(["row","column"]).default("row"),gap:i.number().min(0).default(0),padding:i.number().min(0).default(0),justify:i.enum(["start","center","end","space-between","space-around"]).default("start"),align:i.enum(["start","center","end","stretch"]).default("start"),wrap:i.boolean().default(!1),staggerFrames:i.number().min(0).default(0),staggerDirection:i.enum(["forward","reverse","center-out"]).default("forward"),overflow:i.enum(["visible","hidden"]).default("hidden"),background:fe.optional(),borderRadius:i.number().min(0).optional(),borderColor:fe.optional(),borderWidth:i.number().min(0).optional(),strokeAlign:i.enum(["inside","center","outside"]).optional(),strokeRadius:i.number().min(0).optional(),children:Ca().optional()}).strict(),Kc=i.object({...dt,kind:i.literal("block"),gap:i.number().min(0).default(0),padding:i.number().min(0).default(0),align:i.enum(["start","center","end","stretch"]).default("start"),staggerFrames:i.number().min(0).default(0),staggerDirection:i.enum(["forward","reverse","center-out"]).default("forward"),overflow:i.enum(["visible","hidden"]).default("hidden"),background:fe.optional(),borderRadius:i.number().min(0).optional(),borderColor:fe.optional(),borderWidth:i.number().min(0).optional(),strokeAlign:i.enum(["inside","center","outside"]).optional(),strokeRadius:i.number().min(0).optional(),children:Ca().optional()}).strict(),Yi=i.object({...dt,kind:i.literal("box"),background:fe,borderRadius:i.number().min(0).optional(),padding:i.number().min(0).default(0),staggerFrames:i.number().min(0).default(0),staggerDirection:i.enum(["forward","reverse","center-out"]).default("forward"),overflow:i.enum(["visible","hidden"]).default("hidden"),borderColor:fe.optional(),borderWidth:i.number().min(0).optional(),strokeAlign:i.enum(["inside","center","outside"]).optional(),strokeRadius:i.number().min(0).optional(),children:Ca().optional()}).strict(),Xi=i.object({background:fe,borderRadius:i.number().min(0).optional(),paddingX:i.number().min(0).optional(),paddingY:i.number().min(0).optional()}).strict(),Zi=i.object({text:i.union([i.string(),i.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]),fontFamily:i.string().optional(),fontSize:i.union([i.number().positive(),i.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),fontWeight:i.union([i.number().int(),i.string()]).optional(),fontStyle:i.enum(["normal","italic"]).optional(),fill:i.union([fe,i.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),letterSpacing:i.number().optional(),baselineShift:i.number().optional(),opacity:i.union([i.number().min(0).max(1),i.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),mark:Xi.optional()}).strict(),Jc={text:i.string().default(""),spans:i.array(Zi).optional(),fontFamily:i.string().optional(),fontSize:i.number().positive().optional(),fontWeight:i.union([i.number().int(),i.string()]).optional(),fontStyle:i.string().optional(),fill:fe,align:i.enum(["start","center","end"]).optional(),verticalAlign:i.enum(["top","middle","bottom"]).optional(),lineHeight:i.number().positive().optional(),letterSpacing:i.number().optional(),background:fe,borderRadius:i.number().min(0).optional(),padding:i.number().min(0).optional(),stroke:fe,strokeWidth:i.number().min(0).optional(),strokeAlign:i.enum(["inside","center","outside"]).optional(),textShadow:i.string().optional(),shadows:i.array(zi).optional(),pathOptions:Lt.optional(),typewriter:$r.optional(),marquee:wa.optional(),animators:i.array(i.union([Vi,Rt,Sa])).optional()},qi=i.object({...dt,...Jc,kind:i.literal("text")}).strict(),Ki=i.object({...dt,kind:i.literal("media"),inputHandleId:i.string().min(1),dataType:i.string().optional(),fit:i.enum(["cover","contain","fill","none"]).default("contain"),borderRadius:i.number().min(0).optional(),borderColor:fe.optional(),borderWidth:i.number().min(0).optional(),strokeAlign:i.enum(["inside","center","outside"]).optional(),strokeRadius:i.number().min(0).optional(),volume:i.number().min(0).max(1).default(1),muted:i.boolean().default(!1),trimStartSec:i.number().min(0).optional(),fontFamily:i.string().optional(),fontSize:i.number().positive().optional(),fontWeight:i.union([i.number().int(),i.string()]).optional(),fontStyle:i.string().optional(),fill:fe,align:i.enum(["start","center","end"]).optional(),verticalAlign:i.enum(["top","middle","bottom"]).optional(),lineHeight:i.number().positive().optional(),letterSpacing:i.number().optional(),background:fe,padding:i.number().min(0).optional(),stroke:fe,strokeWidth:i.number().min(0).optional(),textShadow:i.string().optional(),shadows:i.array(zi).optional(),maxWidth:i.number().optional()}).strict(),Qc={shapeType:Ic.default("rect"),borderRadius:i.number().min(0).optional(),radiusTL:i.number().min(0).optional(),radiusTR:i.number().min(0).optional(),radiusBR:i.number().min(0).optional(),radiusBL:i.number().min(0).optional(),polygonSides:i.number().int().min(3).max(64).optional(),starPoints:i.number().int().min(3).max(64).optional(),starInnerRadiusRatio:i.number().min(.01).max(.99).optional(),arrowHeadWidth:i.number().min(0).optional(),arrowHeadLength:i.number().min(0).optional(),arrowShaftWidth:i.number().min(1).optional(),d:i.string().optional(),fillType:i.enum(["solid","linear","radial","none"]).default("solid"),fillColor:fe.default("#3b82f6"),gradientEndColor:fe.optional(),gradientAngle:i.number().default(0),strokeColor:fe.default("#ffffff"),strokeWidth:i.number().min(0).default(0),strokeDashArray:i.string().optional(),strokeDashOffset:i.number().default(0),strokeLineCap:i.enum(["butt","round","square"]).default("round"),strokeLineJoin:i.enum(["miter","round","bevel"]).default("round"),strokeAlign:i.enum(["inside","center","outside"]).optional(),trimStart:i.number().min(0).max(1).default(0),trimEnd:i.number().min(0).max(1).default(1),trimOffset:i.number().default(0)},Ji=i.object({...dt,...Qc,kind:i.literal("shape")}).strict(),ed=i.object({offset:i.number().min(0).max(1),color:i.string()}),Qi=i.object({...dt,kind:i.literal("model3d"),src:i.string().default(""),modelFormat:i.enum(["obj","fbx","gltf","glb","stl","ply","vox","3ds","off","auto"]).default("auto"),modelData:i.unknown().optional(),animationName:i.string().optional(),animationProgress:i.number().min(0).max(1).default(0),animationTime:i.number().min(0).default(0),animationSpeed:i.number().default(1),loop:i.boolean().default(!0),wireframe:i.boolean().default(!1),texture:i.string().optional(),center:i.boolean().optional(),normalizeSize:i.number().optional(),scaleX:i.number().default(1),scaleY:i.number().default(1),audioDeform:i.record(i.string(),i.unknown()).optional(),text3dOptions:i.unknown().optional()}).strict(),Aa=i.lazy(()=>i.union([Hi,Kc,Yi,qi,Ki,Ji,ji,Wi,Qi])),td=i.object({width:i.number().int().min(1).max(4096),height:i.number().int().min(1).max(4096),backgroundColor:fe,volume:i.number().min(0).max(1).default(1),fps:i.number().int().min(1).max(120).default(24),mode:i.enum(["Video","Image"]).default("Video"),antialias3d:i.boolean().optional(),layout:i.array(Aa).default([]),fonts:i.array(i.string()).optional(),signals:i.record(i.string(),i.unknown()).optional(),effects:i.array(i.unknown()).optional(),vision:i.unknown().optional(),onRequestFrame:i.custom().optional()}).strict();g();var es=i.enum(["cut","carrierMatchCut","cameraWhip","focusPullDissolve","irisAperture","pushDirectional"]),ts=i.object({sourceLayerId:i.string(),targetLayerId:i.string(),mode:i.enum(["exact","preserveVelocity","morph"]).default("preserveVelocity"),blendFrames:i.number().int().min(0).max(30).default(0)}).strict(),rd=i.object({id:i.string(),chapter:i.enum(["hook","tension","solution","feature_spotlight","outro","custom"]).default("custom"),durationMs:i.number().positive().optional(),durationFrames:i.number().int().positive().optional(),transitionOut:i.object({type:es.default("cut"),durationFrames:i.number().int().min(0).default(0),carrier:ts.optional(),whipDirection:i.enum(["left","right","up","down"]).default("left")}).default({type:"cut",durationFrames:0,whipDirection:"left"})}).passthrough();function nd(e,t){return{x:e.x,y:e.y,scale:e.scale,vx:e.vx,vy:e.vy,...t}}function rs(e,t=60){let r=0,n=[];for(let s of e){let u=r,c=s.durationFrames??(s.durationMs?Math.round(s.durationMs/1e3*t):60);n.push({sceneId:s.id,startFrame:u,durationFrames:c});let l=s.transitionOverlap??s.transitionOut?.durationFrames??0;r+=Math.max(1,c-l)}let a=r,o=Math.round(a/t*1e3);return{totalFrames:a,totalDurationMs:o,sceneOffsets:n}}var dr=class e{id;chapter;durationMs;durationFrames;transitionOut;layout;constructor(t){this.id=t.id,this.chapter=t.chapter??"custom",this.durationMs=t.durationMs,this.durationFrames=t.durationFrames,this.transitionOut={type:t.transitionOut?.type??"cut",durationFrames:t.transitionOut?.durationFrames??0,carrier:t.transitionOut?.carrier,whipDirection:t.transitionOut?.whipDirection??"left"},this.layout=t.layout??[]}static create(t){return new e(t)}},Na=class e{fps;width;height;backgroundColor;fonts;signals;scenes=[];constructor(t={}){if(this.fps=t.fps??60,this.width=t.width??1920,this.height=t.height??1080,this.backgroundColor=t.backgroundColor??"#ffffff",this.fonts=t.fonts,this.signals=t.signals,t.scenes)for(let r of t.scenes)this.addScene(r)}static create(t={}){return new e(t)}addScene(t){let r=t instanceof dr?t:new dr(t);return this.scenes.push(r),this}getScenes(){return this.scenes}calculateTimeline(){return rs(this.scenes,this.fps)}toProgram(){let t=this.calculateTimeline(),r=[];for(let n=0;n<this.scenes.length;n++){let a=this.scenes[n],o=t.sceneOffsets[n];if(o)for(let s of a.layout){let u={...s};u.startFrame=(u.startFrame??0)+o.startFrame,u.durationFrames===void 0&&(u.durationFrames=o.durationFrames),r.push(u)}}return{width:this.width,height:this.height,backgroundColor:this.backgroundColor,fps:this.fps,volume:1,mode:"Video",layout:r,fonts:this.fonts,signals:this.signals}}};g();g();g();g();g();g();function ns(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function mt(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function ze(e){return e=mt(Math.abs(e)),e?e[1]:NaN}g();function as(e,t){return function(r,n){for(var a=r.length,o=[],s=0,u=e[0],c=0;a>0&&u>0&&(c+u+1>n&&(u=Math.max(1,n-c)),o.push(r.substring(a-=u,a+u)),!((c+=u+1)>n));)u=e[s=(s+1)%e.length];return o.reverse().join(t)}}g();function os(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}g();var ad=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Qe(e){if(!(t=ad.exec(e)))throw new Error("invalid format: "+e);var t;return new Xr({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Qe.prototype=Xr.prototype;function Xr(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Xr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};g();function is(e){e:for(var t=e.length,r=1,n=-1,a;r<t;++r)switch(e[r]){case".":n=a=r;break;case"0":n===0&&(n=r),a=r;break;default:if(!+e[r])break e;n>0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(a+1):e}g();g();var mr;function ss(e,t){var r=mt(e,t);if(!r)return mr=void 0,e.toPrecision(t);var n=r[0],a=r[1],o=a-(mr=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,s=n.length;return o===s?n:o>s?n+new Array(o-s+1).join("0"):o>0?n.slice(0,o)+"."+n.slice(o):"0."+new Array(1-o).join("0")+mt(e,Math.max(0,t+o-1))[0]}g();function Da(e,t){var r=mt(e,t);if(!r)return e+"";var n=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+n:n.length>a+1?n.slice(0,a+1)+"."+n.slice(a+1):n+new Array(a-n.length+2).join("0")}var Oa={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:ns,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Da(e*100,t),r:Da,s:ss,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};g();function Fa(e){return e}var us=Array.prototype.map,ls=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function cs(e){var t=e.grouping===void 0||e.thousands===void 0?Fa:as(us.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?Fa:os(us.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"\u2212":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function l(d,p){d=Qe(d);var h=d.fill,b=d.align,f=d.sign,x=d.symbol,y=d.zero,v=d.width,w=d.comma,M=d.precision,N=d.trim,k=d.type;k==="n"?(w=!0,k="g"):Oa[k]||(M===void 0&&(M=12),N=!0,k="g"),(y||h==="0"&&b==="=")&&(y=!0,h="0",b="=");var O=(p&&p.prefix!==void 0?p.prefix:"")+(x==="$"?r:x==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():""),U=(x==="$"?n:/[%p]/.test(k)?s:"")+(p&&p.suffix!==void 0?p.suffix:""),V=Oa[k],q=/[defgprs%]/.test(k);M=M===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,M)):Math.max(0,Math.min(20,M));function te(R){var P=O,T=U,$,H,_;if(k==="c")T=V(R)+T,R="";else{R=+R;var E=R<0||1/R<0;if(R=isNaN(R)?c:V(Math.abs(R),M),N&&(R=is(R)),E&&+R==0&&f!=="+"&&(E=!1),P=(E?f==="("?f:u:f==="-"||f==="("?"":f)+P,T=(k==="s"&&!isNaN(R)&&mr!==void 0?ls[8+mr/3]:"")+T+(E&&f==="("?")":""),q){for($=-1,H=R.length;++$<H;)if(_=R.charCodeAt($),48>_||_>57){T=(_===46?a+R.slice($+1):R.slice($))+T,R=R.slice(0,$);break}}}w&&!y&&(R=t(R,1/0));var W=P.length+R.length+T.length,re=W<v?new Array(v-W+1).join(h):"";switch(w&&y&&(R=t(re+R,re.length?v-T.length:1/0),re=""),b){case"<":R=P+R+T+re;break;case"=":R=P+re+R+T;break;case"^":R=re.slice(0,W=re.length>>1)+P+R+T+re.slice(W);break;default:R=re+P+R+T;break}return o(R)}return te.toString=function(){return d+""},te}function m(d,p){var h=Math.max(-8,Math.min(8,Math.floor(ze(p)/3)))*3,b=Math.pow(10,-h),f=l((d=Qe(d),d.type="f",d),{suffix:ls[8+h/3]});return function(x){return f(b*x)}}return{format:l,formatPrefix:m}}var Zr,Bt,qr;La({thousands:",",grouping:[3],currency:["$",""]});function La(e){return Zr=cs(e),Bt=Zr.format,qr=Zr.formatPrefix,Zr}g();function Ra(e){return Math.max(0,-ze(Math.abs(e)))}g();function Ba(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ze(t)/3)))*3-ze(Math.abs(e)))}g();function Ia(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,ze(t)-ze(e))+1}g();g();g();g();g();function pt(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}g();g();function Ua(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ft(e){let t,r,n;e.length!==2?(t=pt,r=(u,c)=>pt(e(u),c),n=(u,c)=>e(u)-c):(t=e===pt||e===Ua?e:od,r=e,n=e);function a(u,c,l=0,m=u.length){if(l<m){if(t(c,c)!==0)return m;do{let d=l+m>>>1;r(u[d],c)<0?l=d+1:m=d}while(l<m)}return l}function o(u,c,l=0,m=u.length){if(l<m){if(t(c,c)!==0)return m;do{let d=l+m>>>1;r(u[d],c)<=0?l=d+1:m=d}while(l<m)}return l}function s(u,c,l=0,m=u.length){let d=a(u,c,l,m-1);return d>l&&n(u[d-1],c)>-n(u[d],c)?d-1:d}return{left:a,center:s,right:o}}function od(){return 0}g();function Ea(e){return e===null?NaN:+e}var ds=ft(pt),ms=ds.right,id=ds.left,sd=ft(Ea).center,_a=ms;g();var It=class extends Map{constructor(t,r=cd){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,a]of t)this.set(n,a)}get(t){return super.get(ps(this,t))}has(t){return super.has(ps(this,t))}set(t,r){return super.set(ud(this,t),r)}delete(t){return super.delete(ld(this,t))}};function ps({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function ud({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function ld({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function cd(e){return e!==null&&typeof e=="object"?e.valueOf():e}g();var dd=Math.sqrt(50),md=Math.sqrt(10),pd=Math.sqrt(2);function Kr(e,t,r){let n=(t-e)/Math.max(0,r),a=Math.floor(Math.log10(n)),o=n/Math.pow(10,a),s=o>=dd?10:o>=md?5:o>=pd?2:1,u,c,l;return a<0?(l=Math.pow(10,-a)/s,u=Math.round(e*l),c=Math.round(t*l),u/l<e&&++u,c/l>t&&--c,l=-l):(l=Math.pow(10,a)*s,u=Math.round(e/l),c=Math.round(t/l),u*l<e&&++u,c*l>t&&--c),c<u&&.5<=r&&r<2?Kr(e,t,r*2):[u,c,l]}function Jr(e,t,r){if(t=+t,e=+e,r=+r,!(r>0))return[];if(e===t)return[e];let n=t<e,[a,o,s]=n?Kr(t,e,r):Kr(e,t,r);if(!(o>=a))return[];let u=o-a+1,c=new Array(u);if(n)if(s<0)for(let l=0;l<u;++l)c[l]=(o-l)/-s;else for(let l=0;l<u;++l)c[l]=(o-l)*s;else if(s<0)for(let l=0;l<u;++l)c[l]=(a+l)/-s;else for(let l=0;l<u;++l)c[l]=(a+l)*s;return c}function pr(e,t,r){return t=+t,e=+e,r=+r,Kr(e,t,r)[2]}function Ut(e,t,r){t=+t,e=+e,r=+r;let n=t<e,a=n?pr(t,e,r):pr(e,t,r);return(n?-1:1)*(a<0?1/-a:a)}g();function Qr(e,t,r){e=+e,t=+t,r=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+r;for(var n=-1,a=Math.max(0,Math.ceil((t-e)/r))|0,o=new Array(a);++n<a;)o[n]=e+n*r;return o}g();function et(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}g();var fs=Symbol("implicit");function en(){var e=new It,t=[],r=[],n=fs;function a(o){let s=e.get(o);if(s===void 0){if(n!==fs)return n;e.set(o,s=t.push(o)-1)}return r[s%r.length]}return a.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new It;for(let s of o)e.has(s)||e.set(s,t.push(s)-1);return a},a.range=function(o){return arguments.length?(r=Array.from(o),a):r.slice()},a.unknown=function(o){return arguments.length?(n=o,a):n},a.copy=function(){return en(t,r).unknown(n)},et.apply(a,arguments),a}function fr(){var e=en().unknown(void 0),t=e.domain,r=e.range,n=0,a=1,o,s,u=!1,c=0,l=0,m=.5;delete e.unknown;function d(){var p=t().length,h=a<n,b=h?a:n,f=h?n:a;o=(f-b)/Math.max(1,p-c+l*2),u&&(o=Math.floor(o)),b+=(f-b-o*(p-c))*m,s=o*(1-c),u&&(b=Math.round(b),s=Math.round(s));var x=Qr(p).map(function(y){return b+o*y});return r(h?x.reverse():x)}return e.domain=function(p){return arguments.length?(t(p),d()):t()},e.range=function(p){return arguments.length?([n,a]=p,n=+n,a=+a,d()):[n,a]},e.rangeRound=function(p){return[n,a]=p,n=+n,a=+a,u=!0,d()},e.bandwidth=function(){return s},e.step=function(){return o},e.round=function(p){return arguments.length?(u=!!p,d()):u},e.padding=function(p){return arguments.length?(c=Math.min(1,l=+p),d()):c},e.paddingInner=function(p){return arguments.length?(c=Math.min(1,p),d()):c},e.paddingOuter=function(p){return arguments.length?(l=+p,d()):l},e.align=function(p){return arguments.length?(m=Math.max(0,Math.min(1,p)),d()):m},e.copy=function(){return fr(t(),[n,a]).round(u).paddingInner(c).paddingOuter(l).align(m)},et.apply(d(),arguments)}g();g();g();g();g();g();g();function tn(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function Ga(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function br(){}var hr=.7,an=1/hr,Et="\\s*([+-]?\\d+)\\s*",gr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ve="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",fd=/^#([0-9a-f]{3,8})$/,hd=new RegExp(`^rgb\\(${Et},${Et},${Et}\\)$`),gd=new RegExp(`^rgb\\(${Ve},${Ve},${Ve}\\)$`),bd=new RegExp(`^rgba\\(${Et},${Et},${Et},${gr}\\)$`),xd=new RegExp(`^rgba\\(${Ve},${Ve},${Ve},${gr}\\)$`),yd=new RegExp(`^hsl\\(${gr},${Ve},${Ve}\\)$`),vd=new RegExp(`^hsla\\(${gr},${Ve},${Ve},${gr}\\)$`),hs={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};tn(br,tt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:gs,formatHex:gs,formatHex8:wd,formatHsl:Sd,formatRgb:bs,toString:bs});function gs(){return this.rgb().formatHex()}function wd(){return this.rgb().formatHex8()}function Sd(){return Ms(this).formatHsl()}function bs(){return this.rgb().formatRgb()}function tt(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=fd.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?xs(t):r===3?new Re(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?rn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?rn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=hd.exec(e))?new Re(t[1],t[2],t[3],1):(t=gd.exec(e))?new Re(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=bd.exec(e))?rn(t[1],t[2],t[3],t[4]):(t=xd.exec(e))?rn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=yd.exec(e))?ws(t[1],t[2]/100,t[3]/100,1):(t=vd.exec(e))?ws(t[1],t[2]/100,t[3]/100,t[4]):hs.hasOwnProperty(e)?xs(hs[e]):e==="transparent"?new Re(NaN,NaN,NaN,0):null}function xs(e){return new Re(e>>16&255,e>>8&255,e&255,1)}function rn(e,t,r,n){return n<=0&&(e=t=r=NaN),new Re(e,t,r,n)}function Md(e){return e instanceof br||(e=tt(e)),e?(e=e.rgb(),new Re(e.r,e.g,e.b,e.opacity)):new Re}function _t(e,t,r,n){return arguments.length===1?Md(e):new Re(e,t,r,n??1)}function Re(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}tn(Re,_t,Ga(br,{brighter(e){return e=e==null?an:Math.pow(an,e),new Re(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?hr:Math.pow(hr,e),new Re(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Re(gt(this.r),gt(this.g),gt(this.b),on(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ys,formatHex:ys,formatHex8:kd,formatRgb:vs,toString:vs}));function ys(){return`#${ht(this.r)}${ht(this.g)}${ht(this.b)}`}function kd(){return`#${ht(this.r)}${ht(this.g)}${ht(this.b)}${ht((isNaN(this.opacity)?1:this.opacity)*255)}`}function vs(){let e=on(this.opacity);return`${e===1?"rgb(":"rgba("}${gt(this.r)}, ${gt(this.g)}, ${gt(this.b)}${e===1?")":`, ${e})`}`}function on(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function gt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ht(e){return e=gt(e),(e<16?"0":"")+e.toString(16)}function ws(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Ue(e,t,r,n)}function Ms(e){if(e instanceof Ue)return new Ue(e.h,e.s,e.l,e.opacity);if(e instanceof br||(e=tt(e)),!e)return new Ue;if(e instanceof Ue)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,a=Math.min(t,r,n),o=Math.max(t,r,n),s=NaN,u=o-a,c=(o+a)/2;return u?(t===o?s=(r-n)/u+(r<n)*6:r===o?s=(n-t)/u+2:s=(t-r)/u+4,u/=c<.5?o+a:2-o-a,s*=60):u=c>0&&c<1?0:s,new Ue(s,u,c,e.opacity)}function ks(e,t,r,n){return arguments.length===1?Ms(e):new Ue(e,t,r,n??1)}function Ue(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}tn(Ue,ks,Ga(br,{brighter(e){return e=e==null?an:Math.pow(an,e),new Ue(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?hr:Math.pow(hr,e),new Ue(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,a=2*r-n;return new Re(za(e>=240?e-240:e+120,a,n),za(e,a,n),za(e<120?e+240:e-120,a,n),this.opacity)},clamp(){return new Ue(Ss(this.h),nn(this.s),nn(this.l),on(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=on(this.opacity);return`${e===1?"hsl(":"hsla("}${Ss(this.h)}, ${nn(this.s)*100}%, ${nn(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Ss(e){return e=(e||0)%360,e<0?e+360:e}function nn(e){return Math.max(0,Math.min(1,e||0))}function za(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}g();g();function Va(e,t,r,n,a){var o=e*e,s=o*e;return((1-3*e+3*o-s)*t+(4-6*o+3*s)*r+(1+3*e+3*o-3*s)*n+s*a)/6}function Ts(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),a=e[n],o=e[n+1],s=n>0?e[n-1]:2*a-o,u=n<t-1?e[n+2]:2*o-a;return Va((r-n/t)*t,s,a,o,u)}}g();function Ps(e){var t=e.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*t),a=e[(n+t-1)%t],o=e[n%t],s=e[(n+1)%t],u=e[(n+2)%t];return Va((r-n/t)*t,a,o,s,u)}}g();g();var xr=e=>()=>e;function Td(e,t){return function(r){return e+r*t}}function Pd(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function Cs(e){return(e=+e)==1?sn:function(t,r){return r-t?Pd(t,r,e):xr(isNaN(t)?r:t)}}function sn(e,t){var r=t-e;return r?Td(e,r):xr(isNaN(e)?t:e)}var ja=(function e(t){var r=Cs(t);function n(a,o){var s=r((a=_t(a)).r,(o=_t(o)).r),u=r(a.g,o.g),c=r(a.b,o.b),l=sn(a.opacity,o.opacity);return function(m){return a.r=s(m),a.g=u(m),a.b=c(m),a.opacity=l(m),a+""}}return n.gamma=e,n})(1);function As(e){return function(t){var r=t.length,n=new Array(r),a=new Array(r),o=new Array(r),s,u;for(s=0;s<r;++s)u=_t(t[s]),n[s]=u.r||0,a[s]=u.g||0,o[s]=u.b||0;return n=e(n),a=e(a),o=e(o),u.opacity=1,function(c){return u.r=n(c),u.g=a(c),u.b=o(c),u+""}}}var Wx=As(Ts),Hx=As(Ps);g();g();function Ns(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),a;return function(o){for(a=0;a<r;++a)n[a]=e[a]*(1-o)+t[a]*o;return n}}function Ds(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Os(e,t){var r=t?t.length:0,n=e?Math.min(r,e.length):0,a=new Array(n),o=new Array(r),s;for(s=0;s<n;++s)a[s]=bt(e[s],t[s]);for(;s<r;++s)o[s]=t[s];return function(u){for(s=0;s<n;++s)o[s]=a[s](u);return o}}g();function Fs(e,t){var r=new Date;return e=+e,t=+t,function(n){return r.setTime(e*(1-n)+t*n),r}}g();function rt(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}g();function Ls(e,t){var r={},n={},a;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(a in t)a in e?r[a]=bt(e[a],t[a]):n[a]=t[a];return function(o){for(a in r)n[a]=r[a](o);return n}}g();var Wa=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,$a=new RegExp(Wa.source,"g");function Cd(e){return function(){return e}}function Ad(e){return function(t){return e(t)+""}}function Rs(e,t){var r=Wa.lastIndex=$a.lastIndex=0,n,a,o,s=-1,u=[],c=[];for(e=e+"",t=t+"";(n=Wa.exec(e))&&(a=$a.exec(t));)(o=a.index)>r&&(o=t.slice(r,o),u[s]?u[s]+=o:u[++s]=o),(n=n[0])===(a=a[0])?u[s]?u[s]+=a:u[++s]=a:(u[++s]=null,c.push({i:s,x:rt(n,a)})),r=$a.lastIndex;return r<t.length&&(o=t.slice(r),u[s]?u[s]+=o:u[++s]=o),u.length<2?c[0]?Ad(c[0].x):Cd(t):(t=c.length,function(l){for(var m=0,d;m<t;++m)u[(d=c[m]).i]=d.x(l);return u.join("")})}function bt(e,t){var r=typeof t,n;return t==null||r==="boolean"?xr(t):(r==="number"?rt:r==="string"?(n=tt(t))?(t=n,ja):Rs:t instanceof tt?ja:t instanceof Date?Fs:Ds(t)?Ns:Array.isArray(t)?Os:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Ls:rt)(e,t)}g();function Ha(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}g();function Ya(e){return function(){return e}}g();function Xa(e){return+e}var Bs=[0,1];function Gt(e){return e}function Za(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:Ya(isNaN(t)?NaN:.5)}function Nd(e,t){var r;return e>t&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function Dd(e,t,r){var n=e[0],a=e[1],o=t[0],s=t[1];return a<n?(n=Za(a,n),o=r(s,o)):(n=Za(n,a),o=r(o,s)),function(u){return o(n(u))}}function Od(e,t,r){var n=Math.min(e.length,t.length)-1,a=new Array(n),o=new Array(n),s=-1;for(e[n]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++s<n;)a[s]=Za(e[s],e[s+1]),o[s]=r(t[s],t[s+1]);return function(u){var c=_a(e,u,1,n)-1;return o[c](a[c](u))}}function un(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Fd(){var e=Bs,t=Bs,r=bt,n,a,o,s=Gt,u,c,l;function m(){var p=Math.min(e.length,t.length);return s!==Gt&&(s=Nd(e[0],e[p-1])),u=p>2?Od:Dd,c=l=null,d}function d(p){return p==null||isNaN(p=+p)?o:(c||(c=u(e.map(n),t,r)))(n(s(p)))}return d.invert=function(p){return s(a((l||(l=u(t,e.map(n),rt)))(p)))},d.domain=function(p){return arguments.length?(e=Array.from(p,Xa),m()):e.slice()},d.range=function(p){return arguments.length?(t=Array.from(p),m()):t.slice()},d.rangeRound=function(p){return t=Array.from(p),r=Ha,m()},d.clamp=function(p){return arguments.length?(s=p?!0:Gt,m()):s!==Gt},d.interpolate=function(p){return arguments.length?(r=p,m()):r},d.unknown=function(p){return arguments.length?(o=p,d):o},function(p,h){return n=p,a=h,m()}}function yr(){return Fd()(Gt,Gt)}g();function qa(e,t,r,n){var a=Ut(e,t,r),o;switch(n=Qe(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(o=Ba(a,s))&&(n.precision=o),qr(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=Ia(a,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=Ra(a))&&(n.precision=o-(n.type==="%")*2);break}}return Bt(n)}function Ld(e){var t=e.domain;return e.ticks=function(r){var n=t();return Jr(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var a=t();return qa(a[0],a[a.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),a=0,o=n.length-1,s=n[a],u=n[o],c,l,m=10;for(u<s&&(l=s,s=u,u=l,l=a,a=o,o=l);m-- >0;){if(l=pr(s,u,r),l===c)return n[a]=s,n[o]=u,t(n);if(l>0)s=Math.floor(s/l)*l,u=Math.ceil(u/l)*l;else if(l<0)s=Math.ceil(s*l)/l,u=Math.floor(u*l)/l;else break;c=l}return e},e}function zt(){var e=yr();return e.copy=function(){return un(e,zt())},et.apply(e,arguments),Ld(e)}g();function Ka(e,t){e=e.slice();var r=0,n=e.length-1,a=e[r],o=e[n],s;return o<a&&(s=r,r=n,n=s,s=a,a=o,o=s),e[r]=t.floor(a),e[n]=t.ceil(o),e}g();g();g();var Ja=new Date,Qa=new Date;function le(e,t,r,n){function a(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return a.floor=o=>(e(o=new Date(+o)),o),a.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),a.round=o=>{let s=a(o),u=a.ceil(o);return o-s<u-o?s:u},a.offset=(o,s)=>(t(o=new Date(+o),s==null?1:Math.floor(s)),o),a.range=(o,s,u)=>{let c=[];if(o=a.ceil(o),u=u==null?1:Math.floor(u),!(o<s)||!(u>0))return c;let l;do c.push(l=new Date(+o)),t(o,u),e(o);while(l<o&&o<s);return c},a.filter=o=>le(s=>{if(s>=s)for(;e(s),!o(s);)s.setTime(s-1)},(s,u)=>{if(s>=s)if(u<0)for(;++u<=0;)for(;t(s,-1),!o(s););else for(;--u>=0;)for(;t(s,1),!o(s););}),r&&(a.count=(o,s)=>(Ja.setTime(+o),Qa.setTime(+s),e(Ja),e(Qa),Math.floor(r(Ja,Qa))),a.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?a.filter(n?s=>n(s)%o===0:s=>a.count(0,s)%o===0):a)),a}g();var vr=le(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);vr.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?le(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):vr);var Qy=vr.range;g();var je=le(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),Is=je.range;g();var ln=le(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),Rd=ln.range,Vt=le(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),Bd=Vt.range;g();var cn=le(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),Id=cn.range,jt=le(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),Ud=jt.range;g();var vt=le(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),Ed=vt.range,wt=le(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),_d=wt.range,dn=le(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),Gd=dn.range;g();function St(e){return le(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}var Mt=St(0),$t=St(1),Es=St(2),_s=St(3),nt=St(4),Gs=St(5),zs=St(6),Vs=Mt.range,zd=$t.range,Vd=Es.range,jd=_s.range,$d=nt.range,Wd=Gs.range,Hd=zs.range;function kt(e){return le(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/6048e5)}var Xe=kt(0),Wt=kt(1),js=kt(2),$s=kt(3),at=kt(4),Ws=kt(5),Hs=kt(6),Ys=Xe.range,Yd=Wt.range,Xd=js.range,Zd=$s.range,qd=at.range,Kd=Ws.range,Jd=Hs.range;g();var mn=le(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),Qd=mn.range,Ht=le(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),em=Ht.range;g();var Ee=le(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Ee.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:le(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});var tm=Ee.range,Be=le(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Be.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:le(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});var rm=Be.range;g();function Zs(e,t,r,n,a,o){let s=[[je,1,1e3],[je,5,5*1e3],[je,15,15*1e3],[je,30,30*1e3],[o,1,6e4],[o,5,5*6e4],[o,15,15*6e4],[o,30,30*6e4],[a,1,36e5],[a,3,3*36e5],[a,6,6*36e5],[a,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function u(l,m,d){let p=m<l;p&&([l,m]=[m,l]);let h=d&&typeof d.range=="function"?d:c(l,m,d),b=h?h.range(l,+m+1):[];return p?b.reverse():b}function c(l,m,d){let p=Math.abs(m-l)/d,h=ft(([,,x])=>x).right(s,p);if(h===s.length)return e.every(Ut(l/31536e6,m/31536e6,d));if(h===0)return vr.every(Math.max(Ut(l,m,d),1));let[b,f]=s[p/s[h-1][2]<s[h][2]/p?h-1:h];return b.every(f)}return[u,c]}var[eo,to]=Zs(Be,Ht,Xe,dn,jt,Vt),[am,om]=Zs(Ee,mn,Mt,vt,cn,ln);g();g();g();function ro(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function no(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Sr(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function ao(e){var t=e.dateTime,r=e.date,n=e.time,a=e.periods,o=e.days,s=e.shortDays,u=e.months,c=e.shortMonths,l=Mr(a),m=kr(a),d=Mr(o),p=kr(o),h=Mr(s),b=kr(s),f=Mr(u),x=kr(u),y=Mr(c),v=kr(c),w={a:_,A:E,b:W,B:re,c:null,d:tu,e:tu,f:Am,g:Em,G:Gm,H:Tm,I:Pm,j:Cm,L:iu,m:Nm,M:Dm,p:de,q:ae,Q:au,s:ou,S:Om,u:Fm,U:Lm,V:Rm,w:Bm,W:Im,x:null,X:null,y:Um,Y:_m,Z:zm,"%":nu},M={a:F,A:B,b:z,B:K,c:null,d:ru,e:ru,f:Wm,g:tp,G:np,H:Vm,I:jm,j:$m,L:uu,m:Hm,M:Ym,p:Y,q:Q,Q:au,s:ou,S:Xm,u:Zm,U:qm,V:Km,w:Jm,W:Qm,x:null,X:null,y:ep,Y:rp,Z:ap,"%":nu},N={a:q,A:te,b:R,B:P,c:T,d:Qs,e:Qs,f:wm,g:Js,G:Ks,H:eu,I:eu,j:bm,L:vm,m:gm,M:xm,p:V,q:hm,Q:Mm,s:km,S:ym,u:cm,U:dm,V:mm,w:lm,W:pm,x:$,X:H,y:Js,Y:Ks,Z:fm,"%":Sm};w.x=k(r,w),w.X=k(n,w),w.c=k(t,w),M.x=k(r,M),M.X=k(n,M),M.c=k(t,M);function k(D,L){return function(Z){var A=[],be=-1,ue=0,Pe=D.length,Ce,We,Or;for(Z instanceof Date||(Z=new Date(+Z));++be<Pe;)D.charCodeAt(be)===37&&(A.push(D.slice(ue,be)),(We=qs[Ce=D.charAt(++be)])!=null?Ce=D.charAt(++be):We=Ce==="e"?" ":"0",(Or=L[Ce])&&(Ce=Or(Z,We)),A.push(Ce),ue=be+1);return A.push(D.slice(ue,be)),A.join("")}}function O(D,L){return function(Z){var A=Sr(1900,void 0,1),be=U(A,D,Z+="",0),ue,Pe;if(be!=Z.length)return null;if("Q"in A)return new Date(A.Q);if("s"in A)return new Date(A.s*1e3+("L"in A?A.L:0));if(L&&!("Z"in A)&&(A.Z=0),"p"in A&&(A.H=A.H%12+A.p*12),A.m===void 0&&(A.m="q"in A?A.q:0),"V"in A){if(A.V<1||A.V>53)return null;"w"in A||(A.w=1),"Z"in A?(ue=no(Sr(A.y,0,1)),Pe=ue.getUTCDay(),ue=Pe>4||Pe===0?Wt.ceil(ue):Wt(ue),ue=wt.offset(ue,(A.V-1)*7),A.y=ue.getUTCFullYear(),A.m=ue.getUTCMonth(),A.d=ue.getUTCDate()+(A.w+6)%7):(ue=ro(Sr(A.y,0,1)),Pe=ue.getDay(),ue=Pe>4||Pe===0?$t.ceil(ue):$t(ue),ue=vt.offset(ue,(A.V-1)*7),A.y=ue.getFullYear(),A.m=ue.getMonth(),A.d=ue.getDate()+(A.w+6)%7)}else("W"in A||"U"in A)&&("w"in A||(A.w="u"in A?A.u%7:"W"in A?1:0),Pe="Z"in A?no(Sr(A.y,0,1)).getUTCDay():ro(Sr(A.y,0,1)).getDay(),A.m=0,A.d="W"in A?(A.w+6)%7+A.W*7-(Pe+5)%7:A.w+A.U*7-(Pe+6)%7);return"Z"in A?(A.H+=A.Z/100|0,A.M+=A.Z%100,no(A)):ro(A)}}function U(D,L,Z,A){for(var be=0,ue=L.length,Pe=Z.length,Ce,We;be<ue;){if(A>=Pe)return-1;if(Ce=L.charCodeAt(be++),Ce===37){if(Ce=L.charAt(be++),We=N[Ce in qs?L.charAt(be++):Ce],!We||(A=We(D,Z,A))<0)return-1}else if(Ce!=Z.charCodeAt(A++))return-1}return A}function V(D,L,Z){var A=l.exec(L.slice(Z));return A?(D.p=m.get(A[0].toLowerCase()),Z+A[0].length):-1}function q(D,L,Z){var A=h.exec(L.slice(Z));return A?(D.w=b.get(A[0].toLowerCase()),Z+A[0].length):-1}function te(D,L,Z){var A=d.exec(L.slice(Z));return A?(D.w=p.get(A[0].toLowerCase()),Z+A[0].length):-1}function R(D,L,Z){var A=y.exec(L.slice(Z));return A?(D.m=v.get(A[0].toLowerCase()),Z+A[0].length):-1}function P(D,L,Z){var A=f.exec(L.slice(Z));return A?(D.m=x.get(A[0].toLowerCase()),Z+A[0].length):-1}function T(D,L,Z){return U(D,t,L,Z)}function $(D,L,Z){return U(D,r,L,Z)}function H(D,L,Z){return U(D,n,L,Z)}function _(D){return s[D.getDay()]}function E(D){return o[D.getDay()]}function W(D){return c[D.getMonth()]}function re(D){return u[D.getMonth()]}function de(D){return a[+(D.getHours()>=12)]}function ae(D){return 1+~~(D.getMonth()/3)}function F(D){return s[D.getUTCDay()]}function B(D){return o[D.getUTCDay()]}function z(D){return c[D.getUTCMonth()]}function K(D){return u[D.getUTCMonth()]}function Y(D){return a[+(D.getUTCHours()>=12)]}function Q(D){return 1+~~(D.getUTCMonth()/3)}return{format:function(D){var L=k(D+="",w);return L.toString=function(){return D},L},parse:function(D){var L=O(D+="",!1);return L.toString=function(){return D},L},utcFormat:function(D){var L=k(D+="",M);return L.toString=function(){return D},L},utcParse:function(D){var L=O(D+="",!0);return L.toString=function(){return D},L}}}var qs={"-":"",_:" ",0:"0"},ye=/^\s*\d+/,im=/^%/,sm=/[\\^$*+?|[\]().{}]/g;function ie(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",o=a.length;return n+(o<r?new Array(r-o+1).join(t)+a:a)}function um(e){return e.replace(sm,"\\$&")}function Mr(e){return new RegExp("^(?:"+e.map(um).join("|")+")","i")}function kr(e){return new Map(e.map((t,r)=>[t.toLowerCase(),r]))}function lm(e,t,r){var n=ye.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function cm(e,t,r){var n=ye.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function dm(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function mm(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function pm(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function Ks(e,t,r){var n=ye.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function Js(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function fm(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function hm(e,t,r){var n=ye.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function gm(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function Qs(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function bm(e,t,r){var n=ye.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function eu(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function xm(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function ym(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function vm(e,t,r){var n=ye.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function wm(e,t,r){var n=ye.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function Sm(e,t,r){var n=im.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function Mm(e,t,r){var n=ye.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function km(e,t,r){var n=ye.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function tu(e,t){return ie(e.getDate(),t,2)}function Tm(e,t){return ie(e.getHours(),t,2)}function Pm(e,t){return ie(e.getHours()%12||12,t,2)}function Cm(e,t){return ie(1+vt.count(Ee(e),e),t,3)}function iu(e,t){return ie(e.getMilliseconds(),t,3)}function Am(e,t){return iu(e,t)+"000"}function Nm(e,t){return ie(e.getMonth()+1,t,2)}function Dm(e,t){return ie(e.getMinutes(),t,2)}function Om(e,t){return ie(e.getSeconds(),t,2)}function Fm(e){var t=e.getDay();return t===0?7:t}function Lm(e,t){return ie(Mt.count(Ee(e)-1,e),t,2)}function su(e){var t=e.getDay();return t>=4||t===0?nt(e):nt.ceil(e)}function Rm(e,t){return e=su(e),ie(nt.count(Ee(e),e)+(Ee(e).getDay()===4),t,2)}function Bm(e){return e.getDay()}function Im(e,t){return ie($t.count(Ee(e)-1,e),t,2)}function Um(e,t){return ie(e.getFullYear()%100,t,2)}function Em(e,t){return e=su(e),ie(e.getFullYear()%100,t,2)}function _m(e,t){return ie(e.getFullYear()%1e4,t,4)}function Gm(e,t){var r=e.getDay();return e=r>=4||r===0?nt(e):nt.ceil(e),ie(e.getFullYear()%1e4,t,4)}function zm(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ie(t/60|0,"0",2)+ie(t%60,"0",2)}function ru(e,t){return ie(e.getUTCDate(),t,2)}function Vm(e,t){return ie(e.getUTCHours(),t,2)}function jm(e,t){return ie(e.getUTCHours()%12||12,t,2)}function $m(e,t){return ie(1+wt.count(Be(e),e),t,3)}function uu(e,t){return ie(e.getUTCMilliseconds(),t,3)}function Wm(e,t){return uu(e,t)+"000"}function Hm(e,t){return ie(e.getUTCMonth()+1,t,2)}function Ym(e,t){return ie(e.getUTCMinutes(),t,2)}function Xm(e,t){return ie(e.getUTCSeconds(),t,2)}function Zm(e){var t=e.getUTCDay();return t===0?7:t}function qm(e,t){return ie(Xe.count(Be(e)-1,e),t,2)}function lu(e){var t=e.getUTCDay();return t>=4||t===0?at(e):at.ceil(e)}function Km(e,t){return e=lu(e),ie(at.count(Be(e),e)+(Be(e).getUTCDay()===4),t,2)}function Jm(e){return e.getUTCDay()}function Qm(e,t){return ie(Wt.count(Be(e)-1,e),t,2)}function ep(e,t){return ie(e.getUTCFullYear()%100,t,2)}function tp(e,t){return e=lu(e),ie(e.getUTCFullYear()%100,t,2)}function rp(e,t){return ie(e.getUTCFullYear()%1e4,t,4)}function np(e,t){var r=e.getUTCDay();return e=r>=4||r===0?at(e):at.ceil(e),ie(e.getUTCFullYear()%1e4,t,4)}function ap(){return"+0000"}function nu(){return"%"}function au(e){return+e}function ou(e){return Math.floor(+e/1e3)}var Yt,cu,du,pn,mu;oo({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function oo(e){return Yt=ao(e),cu=Yt.format,du=Yt.parse,pn=Yt.utcFormat,mu=Yt.utcParse,Yt}function op(e){return new Date(e)}function ip(e){return e instanceof Date?+e:+new Date(+e)}function io(e,t,r,n,a,o,s,u,c,l){var m=yr(),d=m.invert,p=m.domain,h=l(".%L"),b=l(":%S"),f=l("%I:%M"),x=l("%I %p"),y=l("%a %d"),v=l("%b %d"),w=l("%B"),M=l("%Y");function N(k){return(c(k)<k?h:u(k)<k?b:s(k)<k?f:o(k)<k?x:n(k)<k?a(k)<k?y:v:r(k)<k?w:M)(k)}return m.invert=function(k){return new Date(d(k))},m.domain=function(k){return arguments.length?p(Array.from(k,ip)):p().map(op)},m.ticks=function(k){var O=p();return e(O[0],O[O.length-1],k??10)},m.tickFormat=function(k,O){return O==null?N:l(O)},m.nice=function(k){var O=p();return(!k||typeof k.range!="function")&&(k=t(O[0],O[O.length-1],k??10)),k?p(Ka(O,k)):m},m.copy=function(){return un(m,io(e,t,r,n,a,o,s,u,c,l))},m}g();function fn(){return et.apply(io(eo,to,Be,Ht,Xe,wt,jt,Vt,je,pn).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}g();g();g();function J(e){return function(){return e}}g();var so=Math.abs,Me=Math.atan2,ot=Math.cos,pu=Math.max,hn=Math.min,_e=Math.sin,Tt=Math.sqrt,Le=1e-12,Xt=Math.PI,Tr=Xt/2,Zt=2*Xt;function fu(e){return e>1?0:e<-1?Xt:Math.acos(e)}function uo(e){return e>=1?Tr:e<=-1?-Tr:Math.asin(e)}g();g();g();var lo=Math.PI,co=2*lo,Pt=1e-6,sp=co-Pt;function hu(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=arguments[t]+e[t]}function up(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return hu;let r=10**t;return function(n){this._+=n[0];for(let a=1,o=n.length;a<o;++a)this._+=Math.round(arguments[a]*r)/r+n[a]}}var Ct=class{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?hu:up(t)}moveTo(t,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,r){this._append`L${this._x1=+t},${this._y1=+r}`}quadraticCurveTo(t,r,n,a){this._append`Q${+t},${+r},${this._x1=+n},${this._y1=+a}`}bezierCurveTo(t,r,n,a,o,s){this._append`C${+t},${+r},${+n},${+a},${this._x1=+o},${this._y1=+s}`}arcTo(t,r,n,a,o){if(t=+t,r=+r,n=+n,a=+a,o=+o,o<0)throw new Error(`negative radius: ${o}`);let s=this._x1,u=this._y1,c=n-t,l=a-r,m=s-t,d=u-r,p=m*m+d*d;if(this._x1===null)this._append`M${this._x1=t},${this._y1=r}`;else if(p>Pt)if(!(Math.abs(d*c-l*m)>Pt)||!o)this._append`L${this._x1=t},${this._y1=r}`;else{let h=n-s,b=a-u,f=c*c+l*l,x=h*h+b*b,y=Math.sqrt(f),v=Math.sqrt(p),w=o*Math.tan((lo-Math.acos((f+p-x)/(2*y*v)))/2),M=w/v,N=w/y;Math.abs(M-1)>Pt&&this._append`L${t+M*m},${r+M*d}`,this._append`A${o},${o},0,0,${+(d*h>m*b)},${this._x1=t+N*c},${this._y1=r+N*l}`}}arc(t,r,n,a,o,s){if(t=+t,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(a),c=n*Math.sin(a),l=t+u,m=r+c,d=1^s,p=s?a-o:o-a;this._x1===null?this._append`M${l},${m}`:(Math.abs(this._x1-l)>Pt||Math.abs(this._y1-m)>Pt)&&this._append`L${l},${m}`,n&&(p<0&&(p=p%co+co),p>sp?this._append`A${n},${n},0,1,${d},${t-u},${r-c}A${n},${n},0,1,${d},${this._x1=l},${this._y1=m}`:p>Pt&&this._append`A${n},${n},0,${+(p>=lo)},${d},${this._x1=t+n*Math.cos(o)},${this._y1=r+n*Math.sin(o)}`)}rect(t,r,n,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+a}h${-n}Z`}toString(){return this._}};function gu(){return new Ct}gu.prototype=Ct.prototype;function qt(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new Ct(t)}function lp(e){return e.innerRadius}function cp(e){return e.outerRadius}function dp(e){return e.startAngle}function mp(e){return e.endAngle}function pp(e){return e&&e.padAngle}function fp(e,t,r,n,a,o,s,u){var c=r-e,l=n-t,m=s-a,d=u-o,p=d*c-m*l;if(!(p*p<Le))return p=(m*(t-o)-d*(e-a))/p,[e+p*c,t+p*l]}function gn(e,t,r,n,a,o,s){var u=e-r,c=t-n,l=(s?o:-o)/Tt(u*u+c*c),m=l*c,d=-l*u,p=e+m,h=t+d,b=r+m,f=n+d,x=(p+b)/2,y=(h+f)/2,v=b-p,w=f-h,M=v*v+w*w,N=a-o,k=p*f-b*h,O=(w<0?-1:1)*Tt(pu(0,N*N*M-k*k)),U=(k*w-v*O)/M,V=(-k*v-w*O)/M,q=(k*w+v*O)/M,te=(-k*v+w*O)/M,R=U-x,P=V-y,T=q-x,$=te-y;return R*R+P*P>T*T+$*$&&(U=q,V=te),{cx:U,cy:V,x01:-m,y01:-d,x11:U*(a/N-1),y11:V*(a/N-1)}}function bn(){var e=lp,t=cp,r=J(0),n=null,a=dp,o=mp,s=pp,u=null,c=qt(l);function l(){var m,d,p=+e.apply(this,arguments),h=+t.apply(this,arguments),b=a.apply(this,arguments)-Tr,f=o.apply(this,arguments)-Tr,x=so(f-b),y=f>b;if(u||(u=m=c()),h<p&&(d=h,h=p,p=d),!(h>Le))u.moveTo(0,0);else if(x>Zt-Le)u.moveTo(h*ot(b),h*_e(b)),u.arc(0,0,h,b,f,!y),p>Le&&(u.moveTo(p*ot(f),p*_e(f)),u.arc(0,0,p,f,b,y));else{var v=b,w=f,M=b,N=f,k=x,O=x,U=s.apply(this,arguments)/2,V=U>Le&&(n?+n.apply(this,arguments):Tt(p*p+h*h)),q=hn(so(h-p)/2,+r.apply(this,arguments)),te=q,R=q,P,T;if(V>Le){var $=uo(V/p*_e(U)),H=uo(V/h*_e(U));(k-=$*2)>Le?($*=y?1:-1,M+=$,N-=$):(k=0,M=N=(b+f)/2),(O-=H*2)>Le?(H*=y?1:-1,v+=H,w-=H):(O=0,v=w=(b+f)/2)}var _=h*ot(v),E=h*_e(v),W=p*ot(N),re=p*_e(N);if(q>Le){var de=h*ot(w),ae=h*_e(w),F=p*ot(M),B=p*_e(M),z;if(x<Xt)if(z=fp(_,E,F,B,de,ae,W,re)){var K=_-z[0],Y=E-z[1],Q=de-z[0],D=ae-z[1],L=1/_e(fu((K*Q+Y*D)/(Tt(K*K+Y*Y)*Tt(Q*Q+D*D)))/2),Z=Tt(z[0]*z[0]+z[1]*z[1]);te=hn(q,(p-Z)/(L-1)),R=hn(q,(h-Z)/(L+1))}else te=R=0}O>Le?R>Le?(P=gn(F,B,_,E,h,R,y),T=gn(de,ae,W,re,h,R,y),u.moveTo(P.cx+P.x01,P.cy+P.y01),R<q?u.arc(P.cx,P.cy,R,Me(P.y01,P.x01),Me(T.y01,T.x01),!y):(u.arc(P.cx,P.cy,R,Me(P.y01,P.x01),Me(P.y11,P.x11),!y),u.arc(0,0,h,Me(P.cy+P.y11,P.cx+P.x11),Me(T.cy+T.y11,T.cx+T.x11),!y),u.arc(T.cx,T.cy,R,Me(T.y11,T.x11),Me(T.y01,T.x01),!y))):(u.moveTo(_,E),u.arc(0,0,h,v,w,!y)):u.moveTo(_,E),!(p>Le)||!(k>Le)?u.lineTo(W,re):te>Le?(P=gn(W,re,de,ae,p,-te,y),T=gn(_,E,F,B,p,-te,y),u.lineTo(P.cx+P.x01,P.cy+P.y01),te<q?u.arc(P.cx,P.cy,te,Me(P.y01,P.x01),Me(T.y01,T.x01),!y):(u.arc(P.cx,P.cy,te,Me(P.y01,P.x01),Me(P.y11,P.x11),!y),u.arc(0,0,p,Me(P.cy+P.y11,P.cx+P.x11),Me(T.cy+T.y11,T.cx+T.x11),y),u.arc(T.cx,T.cy,te,Me(T.y11,T.x11),Me(T.y01,T.x01),!y))):u.arc(0,0,p,N,M,y)}if(u.closePath(),m)return u=null,m+""||null}return l.centroid=function(){var m=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,d=(+a.apply(this,arguments)+ +o.apply(this,arguments))/2-Xt/2;return[ot(d)*m,_e(d)*m]},l.innerRadius=function(m){return arguments.length?(e=typeof m=="function"?m:J(+m),l):e},l.outerRadius=function(m){return arguments.length?(t=typeof m=="function"?m:J(+m),l):t},l.cornerRadius=function(m){return arguments.length?(r=typeof m=="function"?m:J(+m),l):r},l.padRadius=function(m){return arguments.length?(n=m==null?null:typeof m=="function"?m:J(+m),l):n},l.startAngle=function(m){return arguments.length?(a=typeof m=="function"?m:J(+m),l):a},l.endAngle=function(m){return arguments.length?(o=typeof m=="function"?m:J(+m),l):o},l.padAngle=function(m){return arguments.length?(s=typeof m=="function"?m:J(+m),l):s},l.context=function(m){return arguments.length?(u=m??null,l):u},l}g();g();var Lv=Array.prototype.slice;function it(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}g();function bu(e){this._context=e}bu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function At(e){return new bu(e)}g();g();function xn(e){return e[0]}function yn(e){return e[1]}function Pr(e,t){var r=J(!0),n=null,a=At,o=null,s=qt(u);e=typeof e=="function"?e:e===void 0?xn:J(e),t=typeof t=="function"?t:t===void 0?yn:J(t);function u(c){var l,m=(c=it(c)).length,d,p=!1,h;for(n==null&&(o=a(h=s())),l=0;l<=m;++l)!(l<m&&r(d=c[l],l,c))===p&&((p=!p)?o.lineStart():o.lineEnd()),p&&o.point(+e(d,l,c),+t(d,l,c));if(h)return o=null,h+""||null}return u.x=function(c){return arguments.length?(e=typeof c=="function"?c:J(+c),u):e},u.y=function(c){return arguments.length?(t=typeof c=="function"?c:J(+c),u):t},u.defined=function(c){return arguments.length?(r=typeof c=="function"?c:J(!!c),u):r},u.curve=function(c){return arguments.length?(a=c,n!=null&&(o=a(n)),u):a},u.context=function(c){return arguments.length?(c==null?n=o=null:o=a(n=c),u):n},u}function mo(e,t,r){var n=null,a=J(!0),o=null,s=At,u=null,c=qt(l);e=typeof e=="function"?e:e===void 0?xn:J(+e),t=typeof t=="function"?t:t===void 0?J(0):J(+t),r=typeof r=="function"?r:r===void 0?yn:J(+r);function l(d){var p,h,b,f=(d=it(d)).length,x,y=!1,v,w=new Array(f),M=new Array(f);for(o==null&&(u=s(v=c())),p=0;p<=f;++p){if(!(p<f&&a(x=d[p],p,d))===y)if(y=!y)h=p,u.areaStart(),u.lineStart();else{for(u.lineEnd(),u.lineStart(),b=p-1;b>=h;--b)u.point(w[b],M[b]);u.lineEnd(),u.areaEnd()}y&&(w[p]=+e(x,p,d),M[p]=+t(x,p,d),u.point(n?+n(x,p,d):w[p],r?+r(x,p,d):M[p]))}if(v)return u=null,v+""||null}function m(){return Pr().defined(a).curve(s).context(o)}return l.x=function(d){return arguments.length?(e=typeof d=="function"?d:J(+d),n=null,l):e},l.x0=function(d){return arguments.length?(e=typeof d=="function"?d:J(+d),l):e},l.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:J(+d),l):n},l.y=function(d){return arguments.length?(t=typeof d=="function"?d:J(+d),r=null,l):t},l.y0=function(d){return arguments.length?(t=typeof d=="function"?d:J(+d),l):t},l.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:J(+d),l):r},l.lineX0=l.lineY0=function(){return m().x(e).y(t)},l.lineY1=function(){return m().x(e).y(r)},l.lineX1=function(){return m().x(n).y(t)},l.defined=function(d){return arguments.length?(a=typeof d=="function"?d:J(!!d),l):a},l.curve=function(d){return arguments.length?(s=d,o!=null&&(u=s(o)),l):s},l.context=function(d){return arguments.length?(d==null?o=u=null:u=s(o=d),l):o},l}g();g();function xu(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}g();function yu(e){return e}function po(){var e=yu,t=xu,r=null,n=J(0),a=J(Zt),o=J(0);function s(u){var c,l=(u=it(u)).length,m,d,p=0,h=new Array(l),b=new Array(l),f=+n.apply(this,arguments),x=Math.min(Zt,Math.max(-Zt,a.apply(this,arguments)-f)),y,v=Math.min(Math.abs(x)/l,o.apply(this,arguments)),w=v*(x<0?-1:1),M;for(c=0;c<l;++c)(M=b[h[c]=c]=+e(u[c],c,u))>0&&(p+=M);for(t!=null?h.sort(function(N,k){return t(b[N],b[k])}):r!=null&&h.sort(function(N,k){return r(u[N],u[k])}),c=0,d=p?(x-l*w)/p:0;c<l;++c,f=y)m=h[c],M=b[m],y=f+(M>0?M*d:0)+w,b[m]={data:u[m],index:c,value:M,startAngle:f,endAngle:y,padAngle:v};return b}return s.value=function(u){return arguments.length?(e=typeof u=="function"?u:J(+u),s):e},s.sortValues=function(u){return arguments.length?(t=u,r=null,s):t},s.sort=function(u){return arguments.length?(r=u,t=null,s):r},s.startAngle=function(u){return arguments.length?(n=typeof u=="function"?u:J(+u),s):n},s.endAngle=function(u){return arguments.length?(a=typeof u=="function"?u:J(+u),s):a},s.padAngle=function(u){return arguments.length?(o=typeof u=="function"?u:J(+u),s):o},s}g();function vu(e){return e<0?-1:1}function wu(e,t,r){var n=e._x1-e._x0,a=t-e._x1,o=(e._y1-e._y0)/(n||a<0&&-0),s=(r-e._y1)/(a||n<0&&-0),u=(o*a+s*n)/(n+a);return(vu(o)+vu(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(u))||0}function Su(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function fo(e,t,r){var n=e._x0,a=e._y0,o=e._x1,s=e._y1,u=(o-n)/3;e._context.bezierCurveTo(n+u,a+u*t,o-u,s-u*r,o,s)}function vn(e){this._context=e}vn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:fo(this,this._t0,Su(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,fo(this,Su(this,r=wu(this,e,t)),r);break;default:fo(this,this._t0,r=wu(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function hp(e){this._context=new Mu(e)}(hp.prototype=Object.create(vn.prototype)).point=function(e,t){vn.prototype.point.call(this,t,e)};function Mu(e){this._context=e}Mu.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,a,o){this._context.bezierCurveTo(t,e,n,r,o,a)}};function ho(e){return new vn(e)}g();function ku(e,t){this._context=e,this._t=t}ku.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function go(e){return new ku(e,1)}g();g();function bo(e,t){if((s=e.length)>1)for(var r=1,n,a,o=e[t[0]],s,u=o.length;r<s;++r)for(a=o,o=e[t[r]],n=0;n<u;++n)o[n][1]+=o[n][0]=isNaN(a[n][1])?a[n][0]:a[n][1]}g();function xo(e){for(var t=e.length,r=new Array(t);--t>=0;)r[t]=t;return r}function gp(e,t){return e[t]}function bp(e){let t=[];return t.key=e,t}function yo(){var e=J([]),t=xo,r=bo,n=gp;function a(o){var s=Array.from(e.apply(this,arguments),bp),u,c=s.length,l=-1,m;for(let d of o)for(u=0,++l;u<c;++u)(s[u][l]=[0,+n(d,s[u].key,l,o)]).data=d;for(u=0,m=it(t(s));u<c;++u)s[m[u]].index=u;return r(s,m),s}return a.keys=function(o){return arguments.length?(e=typeof o=="function"?o:J(Array.from(o)),a):e},a.value=function(o){return arguments.length?(n=typeof o=="function"?o:J(+o),a):n},a.order=function(o){return arguments.length?(t=o==null?xo:typeof o=="function"?o:J(Array.from(o)),a):t},a.offset=function(o){return arguments.length?(r=o??bo,a):r},a}g();function vo(e,t){if((c=e.length)>0)for(var r,n=0,a,o,s,u,c,l=e[t[0]].length;n<l;++n)for(s=u=0,r=0;r<c;++r)(o=(a=e[t[r]][n])[1]-a[0])>0?(a[0]=s,a[1]=s+=o):o<0?(a[1]=u,a[0]=u+=o):(a[0]=0,a[1]=o)}var Au=["#6366f1","#22d3ee","#f59e0b","#ec4899","#10b981","#8b5cf6","#f97316","#3b82f6"],xp=e=>typeof e=="object"&&e!==null&&"open"in e&&"close"in e,yp=e=>typeof e=="object"&&e!==null&&"label"in e&&"value"in e;function vp(e){return e==="linear"?At:e==="step"?go:ho}function wo(e,t){let r=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.trim());if(!r)return e;let n=r[1];n.length===3&&(n=[...n].map(o=>o+o).join(""));let a=parseInt(n,16);return`rgba(${a>>16&255}, ${a>>8&255}, ${a&255}, ${t})`}function Tu(e){if(!e?.format)return null;if(typeof e.format=="function")return e.format;let t=Bt(e.format);return r=>typeof r=="number"?t(r):String(r)}function ee(e){return Math.round(e*100)/100}function Kt(e,t=0,r=e.duration){return Se.create().fromTo("opacity",0,1,{start:e.start+t,end:e.start+t+Math.max(1,r),ease:"power2.out"})}function Nu(e,t,r){let n=t.id??se("chart"),a=e.width??(typeof t.width=="number"?t.width:960),o=e.height??(typeof t.height=="number"?t.height:540),s=e.type??"line",u=e.fontSize??18,c=e.fontFamily??r,l=e.textColor??"#94a3b8",m=e.textColor??"#e2e8f0",d=e.gridColor??"rgba(148, 163, 184, 0.18)",p=e.colors?.length?e.colors:Au,h=e.cornerRadius??4,b=e.animate===!1?void 0:e.animate??{},f={enabled:b!==void 0,start:b?.start??0,duration:b?.duration??30,stagger:b?.stagger??-1,ease:b?.ease??"power3.out"},x=[],y=(P,T,$,H={},_="")=>{let E=I.text(P,{id:`${n}-label-${_||x.length}`,position:"absolute",x:ee(T.x),y:ee(T.y),width:ee(T.width),height:ee(T.height),fontFamily:c,fontSize:u,fontWeight:H.weight??500,fill:H.color??l,align:$,verticalAlign:"middle"});f.enabled&&E.animate(Kt(f,H.delay??0)),x.push(E)},v=Math.ceil(u*1.4);s==="pie"||s==="donut"?w():N();for(let P of x)Du(P);return I.box({background:e.background??"transparent",...t,id:n,width:a,height:o,children:x});function w(){let P=M(),T=P.reduce((K,Y)=>K+Math.max(0,Y.value),0),$=e.legend??!0,H=O({top:16,right:$?V(P.map(K=>K.label)):16,bottom:16,left:16}),_=U(H),E=Math.max(1,Math.min(_.width,_.height)/2),W=E*(e.innerRadius??(s==="donut"?.6:0)),re=_.x+_.width/2,de=_.y+_.height/2,ae=4,F=po().sort(null).value(K=>Math.max(0,K.value)).padAngle(P.length>1?.012:0)(P),B=bn().innerRadius(W).outerRadius(E).cornerRadius(Math.min(h,(E-W)/2)),z=k(F.length);F.forEach((K,Y)=>{let Q=B(K);if(!Q)return;let D=P[Y].color??p[Y%p.length],L=I.shape("path",{id:`${n}-slice-${Y}`,position:"absolute",x:ee(re-E-ae),y:ee(de-E-ae),width:ee(2*(E+ae)),height:ee(2*(E+ae)),d:wp(Q,E+ae,E+ae),fillColor:D,anchorX:.5,anchorY:.5});if(f.enabled){let Z=f.start+Y*z;L.animate(Se.create().fromTo("opacity",0,1,{start:Z,end:Z+f.duration*.5}).fromTo("scale",.85,1,{start:Z,end:Z+f.duration,ease:f.ease}))}if(x.push(L),e.valueLabels&&T>0&&K.value>0){let[Z,A]=bn().innerRadius(W||E*.55).outerRadius(E).centroid(K),be=`${Math.round(K.value/T*100)}%`;y(be,{x:re+Z-60,y:de+A-v/2,width:120,height:v},"center",{delay:Y*z+f.duration*.5,color:"#ffffff",weight:700},`value-${Y}`)}}),$&&q(P.map((K,Y)=>({name:K.label,color:K.color??p[Y%p.length]})),{x:_.x+_.width+24,y:_.y,height:_.height})}function M(){return(e.data??e.series?.[0]?.data??[]).map((T,$)=>{if(yp(T))return T;let H=typeof T=="number"?T:Array.isArray(T)?Number(T[1]):Number(T.y);return{label:e.categories?.[$]??(Array.isArray(T)?String(T[0]):typeof T=="object"&&T?String(T.x):`${$+1}`),value:H}})}function N(){let P=e.series?.length?[...e.series]:e.data?[{data:e.data}]:[];if(P.length===0)return;let T=C=>C.type??s??"line",$=(C,G)=>C.color??p[G%p.length],H=P.map(C=>C.data.map((G,ne)=>xp(G)?{x:G.x,y:G.close}:typeof G=="number"?{x:e.categories?.[ne]??ne,y:G}:Array.isArray(G)?{x:G[0],y:Number(G[1])}:{x:G.x,y:Number(G.y)})),_=P.some(C=>T(C)==="bar"||T(C)==="candlestick"),E=H.flat().map(C=>C.x),W=_||E.some(C=>typeof C=="string")?"band":E.some(C=>C instanceof Date)?"time":"linear",re=C=>T(C)==="bar"||T(C)==="area",de=!!e.stacked,ae=W==="band"?[...new Set(E.map(String))]:[],F=new Map;if(de){let C=P.map((me,ve)=>ve).filter(me=>re(P[me])),G=ae.length?ae:[...new Set(E.map(me=>+me))].sort((me,ve)=>me-ve).map(String),ne=G.map(me=>{let ve={};for(let Ae of C){let Ne=H[Ae].find(xe=>String(W==="band"?xe.x:+xe.x)===me);ve[Ae]=Ne?.y??0}return ve});yo().keys(C.map(String)).offset(vo)(ne).forEach(me=>{let ve=Number(me.key);F.set(ve,H[ve].map(Ae=>{let Ne=G.indexOf(String(W==="band"?Ae.x:+Ae.x));return[me[Ne][0],me[Ne][1]]}))})}let B=[0];P.forEach((C,G)=>{let ne=F.get(G);if(T(C)==="candlestick")for(let ce of C.data)B.push(ce.high,ce.low);else if(ne)for(let[ce,me]of ne)B.push(ce,me);else for(let ce of H[G])B.push(ce.y)}),P.every(C=>T(C)==="candlestick"||T(C)==="scatter"||T(C)==="line")&&B.shift();let z=e.yAxis??{},K=e.xAxis??{},Y=z.ticks??5,Q=z.min??Math.min(...B),D=z.max??Math.max(...B);(!Number.isFinite(Q)||!Number.isFinite(D))&&([Q,D]=[0,1]),Q===D&&([Q,D]=[Q-1,D+1]);let L=zt().domain([Q,D]);(z.min===void 0||z.max===void 0)&&L.nice(Y);let Z=Tu(z)??(C=>L.tickFormat(Y)(C)),A=L.ticks(Y),be=P.map((C,G)=>({name:C.name??`Series ${G+1}`,color:$(C,G)})),ue=e.legend??P.length>1,Pe=z.show!==!1,Ce=K.show!==!1,We=Pe?Math.max(...A.map(C=>Z(C).length))*u*.7+20:0,Or=O({top:(ue?v+20:0)+Math.ceil(v/2),right:20,bottom:Ce?v+14:12,left:Math.max(16,Math.ceil(We))}),oe=U(Or),Do=v+6,Oo=e.valueLabels?P.flatMap((C,G)=>T(C)==="bar"?H[G].map(ne=>ne.y):[]):[],Qu=Oo.some(C=>C>0)?Do:0,el=Oo.some(C=>C<0)?Do:0;L.range([oe.height-el,Qu]);let He;if(W==="band")He=fr().domain(ae).range([0,oe.width]).paddingInner(_?.28:0).paddingOuter(_?.14:.5);else if(W==="time"){let C=E.map(G=>+new Date(G));He=fn().domain([Math.min(...C),Math.max(...C)]).range([0,oe.width])}else{let C=E.map(Number);He=zt().domain([K.min??Math.min(...C),K.max??Math.max(...C)]).range([0,oe.width])}let Fo=C=>{if(W==="band"){let G=He;return(G(String(C))??0)+G.bandwidth()/2}return He(W==="time"?new Date(C):Number(C))},Lo=0;z.grid!==!1&&A.forEach((C,G)=>{let ne=I.box({id:`${n}-ygrid-${G}`,position:"absolute",x:oe.x,y:ee(oe.y+L(C)-.5),width:oe.width,height:1,background:d});f.enabled&&ne.animate(Kt(f,Lo,f.duration/2)),x.push(ne)}),Pe&&A.forEach((C,G)=>{y(Z(C),{x:0,y:oe.y+L(C)-v/2,width:oe.x-12,height:v},"end",{},`y-${G}`)});let Jt=[],Fr=Tu(K);if(W==="band"){let C=He,G=Math.max(1,Math.ceil(ae.length/Math.max(1,Math.floor(oe.width/(u*4)))));ae.forEach((ne,ce)=>{ce%G===0&&Jt.push({pos:(C(ne)??0)+C.bandwidth()/2,text:Fr?Fr(ne):ne})})}else{let C=He,G=K.ticks??Math.max(2,Math.floor(oe.width/(u*6))),ne=C.tickFormat(G);for(let ce of C.ticks(G))Jt.push({pos:C(ce),text:Fr?Fr(W==="time"?new Date(ce):ce):ne(ce)})}if(K.grid&&Jt.forEach((C,G)=>{let ne=I.box({id:`${n}-xgrid-${G}`,position:"absolute",x:ee(oe.x+C.pos-.5),y:oe.y,width:1,height:oe.height,background:d});f.enabled&&ne.animate(Kt(f,Lo,f.duration/2)),x.push(ne)}),Ce){let C=Math.max(u*3,oe.width/Math.max(1,Jt.length));Jt.forEach((G,ne)=>{y(G.text,{x:oe.x+G.pos-C/2,y:oe.y+oe.height+10,width:C,height:v},"center",{},`x-${ne}`)})}let[tl,rl]=L.domain();if(tl<=0&&rl>=0&&_){let C=I.box({id:`${n}-zero`,position:"absolute",x:oe.x,y:ee(oe.y+L(0)-1),width:oe.width,height:2,background:wo("#94a3b8",.45)});f.enabled&&C.animate(Kt(f,0,f.duration/2)),x.push(C)}let Lr=P.map((C,G)=>G).filter(C=>T(P[C])==="bar"),nl=[...Lr,...P.map((C,G)=>G).filter(C=>T(P[C])==="candlestick"),...P.map((C,G)=>G).filter(C=>T(P[C])==="area"),...P.map((C,G)=>G).filter(C=>T(P[C])==="line"),...P.map((C,G)=>G).filter(C=>T(P[C])==="scatter")],qe=W==="band"?He:null,Ro=qe?k(ae.length):0,Bo=C=>qe?ae.indexOf(String(C)):0;nl.forEach((C,G)=>{let ne=P[C],ce=$(ne,C),me=T(ne),ve=H[C],Ae=F.get(C);if(me==="bar"&&qe){let Ne=de?1:Lr.length,xe=de?0:Lr.indexOf(C),De=qe.bandwidth()/Ne,pe=Ne>1?Math.min(4,De*.12):0;ve.forEach((Oe,Ge)=>{let[Ke,we]=Ae?Ae[Ge]:[0,Oe.y],ge=oe.y+L(Math.max(Ke,we)),Rr=oe.y+L(Math.min(Ke,we)),Fe=Math.max(0,Rr-ge),Qt=oe.x+(qe(String(Oe.x))??0)+xe*De+pe/2,st=Oe.y>=0?"up":"down",Br=I.box({id:`${n}-bar-${C}-${Ge}`,position:"absolute",x:ee(Qt),y:ee(ge),width:ee(Math.max(1,De-pe)),height:ee(Fe),background:ce,borderRadius:Math.min(h,(De-pe)/2,Fe/2)}),Uo=Bo(Oe.x)*Ro+(de?Lr.indexOf(C)*f.duration*.6:0);if(f.enabled){let er=f.start+Uo,Ir=er+f.duration,Eo=Se.create().fromTo("height",0,ee(Fe),{start:er,end:Ir,ease:f.ease});st==="up"&&Eo.fromTo("y",ee(ge+Fe),ee(ge),{start:er,end:Ir,ease:f.ease}),Br.animate(Eo)}if(x.push(Br),e.valueLabels){let er=Z(Oe.y),Ir=st==="up"?ge-v-4:ge+Fe+4;y(er,{x:Qt-30,y:Ir,width:De-pe+60,height:v},"center",{delay:Uo+f.duration*.6,color:m,weight:600},`value-${C}-${Ge}`)}});return}if(me==="candlestick"&&qe){let Ne=e.upColor??"#22c55e",xe=e.downColor??"#ef4444",De=qe.bandwidth();ne.data.forEach((pe,Oe)=>{let Ge=pe.close>=pe.open?Ne:xe,Ke=oe.x+(qe(String(pe.x))??0)+De/2,we=Bo(pe.x)*Ro,ge=[["wick",{x:Ke-Math.max(1,De*.06),y:oe.y+L(pe.high),width:Math.max(2,De*.12),height:Math.max(1,L(pe.low)-L(pe.high))}],["body",{x:Ke-De/2,y:oe.y+L(Math.max(pe.open,pe.close)),width:De,height:Math.max(2,Math.abs(L(pe.open)-L(pe.close)))}]];for(let[Rr,Fe]of ge){let Qt=I.box({id:`${n}-candle-${C}-${Oe}-${Rr}`,position:"absolute",x:ee(Fe.x),y:ee(Fe.y),width:ee(Fe.width),height:ee(Fe.height),background:Ge,borderRadius:Rr==="body"?Math.min(h/2,Fe.width/2):0});if(f.enabled){let st=f.start+we,Br=Fe.y+Fe.height/2;Qt.animate(Se.create().fromTo("height",0,ee(Fe.height),{start:st,end:st+f.duration,ease:f.ease}).fromTo("y",ee(Br),ee(Fe.y),{start:st,end:st+f.duration,ease:f.ease}))}x.push(Qt)}});return}if(me==="line"||me==="area"){let Ne=ne.strokeWidth??3,xe=Math.ceil(Ne*2+(ne.pointRadius??0)+2),De=ve.map((we,ge)=>({x:Fo(we.x)+xe,top:L(Ae?Ae[ge][1]:we.y)+xe,base:L(Ae?Ae[ge][0]:Math.max(L.domain()[0],Math.min(0,L.domain()[1])))+xe})),pe=vp(ne.curve),Oe={x:oe.x-xe,y:oe.y-xe,width:oe.width+2*xe,height:oe.height+2*xe},Ge=G*(f.duration/3);if(me==="area"){let we=mo().x(ge=>ge.x).y0(ge=>ge.base).y1(ge=>ge.top).curve(pe)(De);if(we){let ge=I.shape("path",{id:`${n}-area-${C}`,position:"absolute",...Pu(Oe),d:Cu(we),fillType:"linear",fillColor:wo(ce,.45),gradientEndColor:wo(ce,.02),gradientAngle:90});f.enabled&&ge.animate(Kt(f,Ge+f.duration*.4,f.duration)),x.push(ge)}}let Ke=Pr().x(we=>we.x).y(we=>we.top).curve(pe)(De);if(Ke&&Ne>0){let we=I.shape("path",{id:`${n}-line-${C}`,position:"absolute",...Pu(Oe),d:Cu(Ke),fillType:"none",strokeColor:ce,strokeWidth:Ne,strokeLineCap:"round",strokeLineJoin:"round"});f.enabled&&we.animate(Se.create().fromTo("trimEnd",0,1,{start:f.start+Ge,end:f.start+Ge+f.duration*1.5,ease:"power2.inOut"})),x.push(we)}(ne.pointRadius??0)>0&&Io(C,ve,ce,ne.pointRadius??0,Ge+f.duration*.5,Ae);return}me==="scatter"&&Io(C,ve,ce,ne.pointRadius??6,G*(f.duration/3),Ae)}),ue&&te(be);function Io(C,G,ne,ce,me,ve){let Ae=k(G.length);G.forEach((Ne,xe)=>{let De=L(ve?ve[xe][1]:Ne.y),pe=I.shape("circle",{id:`${n}-point-${C}-${xe}`,position:"absolute",x:ee(oe.x+Fo(Ne.x)-ce),y:ee(oe.y+De-ce),width:ee(ce*2),height:ee(ce*2),fillColor:ne,anchorX:.5,anchorY:.5});if(f.enabled){let Oe=f.start+me+xe*Ae;pe.animate(Se.create().fromTo("scale",0,1,{start:Oe,end:Oe+f.duration*.6,ease:"back.out(2)"}).fromTo("opacity",0,1,{start:Oe,end:Oe+6}))}x.push(pe)})}}function k(P){return!f.enabled||P<=1?0:f.stagger>=0?f.stagger:Math.min(4,f.duration/P)}function O(P){let T=e.padding;return typeof T=="number"?{top:T,right:T,bottom:T,left:T}:{top:T?.top??P.top,right:T?.right??P.right,bottom:T?.bottom??P.bottom,left:T?.left??P.left}}function U(P){return{x:P.left,y:P.top,width:Math.max(1,a-P.left-P.right),height:Math.max(1,o-P.top-P.bottom)}}function V(P){let T=Math.max(0,...P.map($=>$.length));return Math.min(a*.4,T*u*.6+u+48)}function q(P,T){let $=v+8,H=T.y+Math.max(0,(T.height-P.length*$)/2);P.forEach((_,E)=>{R(_,T.x,H+E*$,E)})}function te(P){let T=P.map(_=>_.name.length*u*.6+u+28),$=T.reduce((_,E)=>_+E,0),H=Math.max(0,a-$-20);P.forEach((_,E)=>{R(_,H,4,E),H+=T[E]})}function R(P,T,$,H){let _=Math.round(u*.7),E=I.box({id:`${n}-legend-swatch-${H}`,position:"absolute",x:ee(T),y:ee($+(v-_)/2),width:_,height:_,borderRadius:Math.round(_/4),background:P.color});f.enabled&&E.animate(Kt(f,0,f.duration/2)),x.push(E),y(P.name,{x:T+_+8,y:$,width:P.name.length*u*.6+12,height:v},"start",{color:e.textColor??"#cbd5e1"},`legend-${H}`)}}function Du(e){for(let t of e.animation?.tracks??[])for(let r of t.keyframes??[])r.frame=Math.round(r.frame);for(let t of e.children??[])Du(t)}function Pu(e){return{x:ee(e.x),y:ee(e.y),width:ee(e.width),height:ee(e.height)}}function Cu(e){return e.replace(/-?\d*\.\d{3,}(?:e-?\d+)?/gi,t=>String(ee(Number(t))))}function wp(e,t,r){let n=[],a=/([MLAZ])([^MLAZ]*)/gi;for(let[,o,s]of e.matchAll(a)){let u=(s.match(/-?\d*\.?\d+(?:e-?\d+)?/gi)??[]).map(Number);if(o.toUpperCase()==="A")for(let c=0;c+6<u.length;c+=7)u[c+5]+=t,u[c+6]+=r;else if(o.toUpperCase()!=="Z")for(let c=0;c+1<u.length;c+=2)u[c]+=t,u[c+1]+=r;n.push(o+u.map(ee).join(","))}return n.join("")}g();var ke=tr(Fu(),1);g();var Sn=tr(kl(),1);function So(e,t=24,r){let n=e.fps??t;if(n<=0)throw new Error(`[FrameGrid] Invalid fps: ${n}. Must be > 0.`);let a=[];if(Array.isArray(e.frames)&&e.frames.length>0)for(let s of e.frames){if(typeof s!="number"||s<0||!Number.isFinite(s))throw new Error(`[FrameGrid] Invalid frame index in frames list: ${s}`);a.push({frame:Math.round(s),timeMs:Math.round(s/n*1e3)})}else if(Array.isArray(e.timesMs)&&e.timesMs.length>0)for(let s of e.timesMs){if(typeof s!="number"||s<0||!Number.isFinite(s))throw new Error(`[FrameGrid] Invalid timestamp in timesMs list: ${s}`);a.push({frame:Math.round(s/1e3*n),timeMs:Math.round(s)})}else if(e.startMs!==void 0||e.endMs!==void 0||e.stepMs!==void 0){let s=e.startMs??0,u=e.endMs??r??s+1e3,c=e.stepMs??Math.round(5/n*1e3);if(s<0||u<s)throw new Error(`[FrameGrid] Invalid millisecond range: startMs=${s}, endMs=${u}. startMs must be <= endMs.`);if(c<=0)throw new Error(`[FrameGrid] Invalid stepMs: ${c}. Must be > 0.`);for(let l=s;l<=u;l+=c)a.push({frame:Math.round(l/1e3*n),timeMs:Math.round(l)})}else{let s=e.startFrame??0,u=e.endFrame??(r?Math.min(s+30,Math.floor(r/1e3*n)):s+30),c=e.stepFrames??5;if(s<0||u<s)throw new Error(`[FrameGrid] Invalid frame range: startFrame=${s}, endFrame=${u}. startFrame must be <= endFrame.`);if(c<=0)throw new Error(`[FrameGrid] Invalid stepFrames: ${c}. Must be > 0.`);for(let l=s;l<=u;l+=c)a.push({frame:Math.round(l),timeMs:Math.round(l/n*1e3)})}let o=Math.min(e.maxFrames??64,120);if(a.length>o)throw new Error(`[FrameGrid] Requested ${a.length} frames exceeds the safety threshold of ${o}. Increase stepFrames/stepMs or narrow the start/end range to prevent oversized images.`);if(a.length===0)throw new Error("[FrameGrid] Zero frames were resolved for sampling.");return{samples:a,fps:n}}function Mo(e,t,r){let n=r.gap??12,a=r.padding??16,s=r.showHeader??!0?54:0,u=r.maxGridWidth??4096,c=r.maxGridHeight??4096,l=r.columns;(!l||l<=0)&&(e<=4?l=e:e<=9?l=3:e<=16?l=4:e<=25?l=5:l=6),l=Math.min(l,e);let m=Math.ceil(e/l),d=Math.max(120,Math.min(r.cellWidth??320,960)),p=r.cellHeight??Math.round(d/(t>0?t:16/9)),h=l*d+(l-1)*n+a*2,b=m*p+(m-1)*n+a*2+s;if(h>u||b>c){let f=Math.min((u-(l-1)*n-a*2)/(l*d),(c-(m-1)*n-a*2-s)/(m*p));if(f<.25)throw new Error(`[FrameGrid] Cannot fit ${e} cells (${l}x${m}) into max dimensions [${u}x${c}]. Reduce cell count or decrease cellWidth.`);d=Math.max(100,Math.floor(d*f)),p=Math.round(d/(t>0?t:16/9)),h=l*d+(l-1)*n+a*2,b=m*p+(m-1)*n+a*2+s}return{columns:l,rows:m,cellWidth:d,cellHeight:p,totalWidth:h,totalHeight:b,headerHeight:s,gap:n,padding:a}}async function Cr(e,t={}){let r=e.fps??24,n=e.durationMs,{samples:a,fps:o}=So(t,r,n),s=e.width??1920,u=e.height??1080,c=s>0&&u>0?s/u:16/9,l=Mo(a.length,c,t),m=t.renderer??new ke.HeadlessMediaRenderer,d=[];for(let x of a){let y=await e.renderFrame({frame:x.frame,atMs:x.timeMs,fps:o,renderer:m});d.push(y)}let p=new Sn.Canvas(l.totalWidth,l.totalHeight),h=p.getContext("2d");if(h.fillStyle=t.backgroundColor??"#090a0f",h.fillRect(0,0,l.totalWidth,l.totalHeight),t.showHeader!==!1&&l.headerHeight>0){let x=t.headerText??`FrameGrid Conformance Review | Frames ${a[0].frame}\u2013${a[a.length-1].frame} (Count: ${a.length})`,y=`${s}\xD7${u} @ ${o} FPS | Cell: ${l.cellWidth}\xD7${l.cellHeight}px | Step: ${t.stepFrames?`${t.stepFrames}f`:t.stepMs?`${t.stepMs}ms`:"Custom"}`;h.fillStyle="#f8fafc",h.font="bold 15px sans-serif",h.fillText(x,l.padding,l.padding+18),h.fillStyle="#94a3b8",h.font="12px sans-serif",h.fillText(y,l.padding,l.padding+36),h.strokeStyle="#1e2433",h.lineWidth=1,h.beginPath(),h.moveTo(l.padding,l.padding+46),h.lineTo(l.totalWidth-l.padding,l.padding+46),h.stroke()}let b=t.showLabels??!0;for(let x=0;x<a.length;x++){let y=a[x],v=x%l.columns,w=Math.floor(x/l.columns),M=l.padding+v*(l.cellWidth+l.gap),N=l.padding+l.headerHeight+w*(l.cellHeight+l.gap),k=await(0,Sn.loadImage)(d[x]);if(h.drawImage(k,M,N,l.cellWidth,l.cellHeight),h.strokeStyle="#262b3d",h.lineWidth=1,h.strokeRect(M,N,l.cellWidth,l.cellHeight),b){let O=`F:${y.frame} \u2022 ${y.timeMs}ms`;h.font="bold 11px sans-serif";let V=h.measureText(O).width+14,q=20,te=M+6,R=N+6;h.fillStyle="#090a0fee",h.beginPath(),h.roundRect(te,R,V,q,4),h.fill(),h.strokeStyle="#6366f155",h.lineWidth=1,h.stroke(),h.fillStyle="#e2e8f0",h.fillText(O,te+7,R+14)}}let f=await p.toBuffer("png");return t.outputPath&&await rr.writeFile(t.outputPath,f),f}g();function Mn(e,t){let r=t.faces??t.items??[];for(let[n,a]of Object.entries(t))Object.defineProperty(e,n,{value:a,enumerable:!1,configurable:!0});return Object.defineProperty(e,Symbol.iterator,{value:function*(){yield*r},enumerable:!1,configurable:!0}),e}function Sp(e){let t=e.scale??1,r=Math.max(Math.abs(t*(e.scaleX??1)),Math.abs(t*(e.scaleY??1)));return r>0?r:1}var Nt={cube(e){let t=e.size,[r,n,a]=typeof t=="number"?[t,t,t]:t,o=e.twoSided??!0,s={front:"#3b82f6",back:"#1d4ed8",left:"#2563eb",right:"#1e40af",top:"#60a5fa",bottom:"#172554"},u=(h,b,f,x,y,v)=>{if(b&&typeof b=="object"&&"kind"in b){let M=b;return M.position="absolute",M.is3D=!0,M.twoSided=o,M.material=M.material??e.material??"lit",M.shininess=M.shininess??e.shininess??32,M.specularIntensity=M.specularIntensity??e.specularIntensity??.5,e.roughness!==void 0&&M.roughness===void 0&&(M.roughness=e.roughness),e.metallic!==void 0&&M.metallic===void 0&&(M.metallic=e.metallic),e.ambientIntensity!==void 0&&M.ambientIntensity===void 0&&(M.ambientIntensity=e.ambientIntensity),Object.assign(M,v),M}let w=typeof b=="string"?{background:b}:b??{background:f};return I.box({id:`${e.id??"cube"}-${h}`,position:"absolute",width:x,height:y,is3D:!0,twoSided:o,material:w.material??e.material??"lit",shininess:w.shininess??e.shininess??32,specularIntensity:w.specularIntensity??e.specularIntensity??.5,roughness:w.roughness??e.roughness,metallic:w.metallic??e.metallic,ambientIntensity:w.ambientIntensity??e.ambientIntensity??1,background:w.background??f,borderRadius:w.borderRadius??0,borderWidth:w.borderWidth,borderColor:w.borderColor,opacity:w.opacity??1,children:w.children??[],...v})},c=r/2,l=n/2,m=a/2,d=[u("front",e.faces?.front,s.front,r,n,{x:0,y:0,z:-m,rotateX:0,rotateY:0,rotateZ:0}),u("back",e.faces?.back,s.back,r,n,{x:0,y:0,z:m,rotateX:0,rotateY:180,rotateZ:0}),u("left",e.faces?.left,s.left,a,n,{x:-c,y:0,z:0,rotateX:0,rotateY:90,rotateZ:0}),u("right",e.faces?.right,s.right,a,n,{x:c,y:0,z:0,rotateX:0,rotateY:-90,rotateZ:0}),u("top",e.faces?.top,s.top,r,a,{x:0,y:-l,z:0,rotateX:-90,rotateY:0,rotateZ:0}),u("bottom",e.faces?.bottom,s.bottom,r,a,{x:0,y:l,z:0,rotateX:90,rotateY:0,rotateZ:0})],p=I.box({id:e.id??se("cube"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:r,height:n,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:d});return Mn(p,{faces:d})},carousel(e){let{items:t,radius:r,faceInward:n=!1,twoSided:a=!0}=e,o=t.length,s=o>0?360/o:0,u=t.map((l,m)=>{let d=m*s,p=d*Math.PI/180,h=r*Math.sin(p),b=-r*Math.cos(p),f=n?180-d:-d,x=l;return x.position="absolute",x.is3D=!0,x.twoSided=a,x.x=h,x.y=0,x.z=b,x.rotateY=f,x}),c=I.box({id:e.id??se("carousel"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:e.itemWidth??200,height:e.itemHeight??200,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:u});return Mn(c,{items:u})},prism(e){let{sides:t,radius:r,height:n,twoSided:a=!0}=e,o=Math.max(3,t),s=2*r*Math.tan(Math.PI/o),u=360/o,c=[];for(let m=0;m<o;m++){let d=m*u,p=d*Math.PI/180,h=r*Math.sin(p),b=r*Math.cos(p),f=e.sideConfigs?.[m],x=typeof f=="string"?f:f?.background??`hsl(${m*360/o}, 70%, 50%)`;c.push(I.box({id:`${e.id??"prism"}-panel-${m}`,position:"absolute",width:s,height:n,is3D:!0,twoSided:a,x:h,y:0,z:b,rotateY:d,background:x}))}let l=I.box({id:e.id??se("prism"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:s,height:n,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:c});return Mn(l,{faces:c})},plane(e){return I.box({id:e.id??se("plane"),position:"absolute",width:e.width,height:e.height,x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,twoSided:e.twoSided??!0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,background:e.background??"#3b82f6",borderRadius:e.borderRadius??0,opacity:e.opacity??1,children:e.children??[]})},grid(e){let{width:t,height:r}=e,n=e.id??se("grid"),a=Math.max(1,Math.round(e.divisions??10)),o=e.lineWidth??2,s=e.color??"rgba(59, 130, 246, 0.5)",u=(p,h,b,f,x)=>I.box({id:`${n}-${p}`,position:"absolute",x:h,y:b,z:0,width:f,height:x,is3D:!0,twoSided:!0,material:"unlit",background:s}),c=4096,l=[],m=Math.ceil(r/c),d=Math.ceil(t/c);for(let p=0;p<=a;p++){let h=p/a-.5;for(let b=0;b<m;b++){let f=r/m,x=-r/2+f*(b+.5);l.push(u(`v${p}-${b}`,h*t,x,o,f))}for(let b=0;b<d;b++){let f=t/d,x=-t/2+f*(b+.5);l.push(u(`h${p}-${b}`,x,h*r,f,o))}}return I.box({id:n,position:"absolute",width:t,height:r,x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??90,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,background:"transparent",opacity:e.opacity??1,children:l})},text(e){return e.extrusionDepth&&e.extrusionDepth>0?Nt.extrudedText({...e,depth:e.extrusionDepth}):I.text(e.text,{id:e.id??se("text3d"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,twoSided:e.twoSided??!0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,fontSize:e.fontSize??48,fontFamily:e.fontFamily,fontWeight:e.fontWeight??"bold",fontStyle:e.fontStyle,fill:e.fill??"#ffffff",align:e.align??"center",verticalAlign:e.verticalAlign??"middle",letterSpacing:e.letterSpacing,lineHeight:e.lineHeight,material:e.material??"lit",shininess:e.shininess??64,roughness:e.roughness,specularIntensity:e.specularIntensity??.8,ambientIntensity:e.ambientIntensity??1,metallic:e.metallic,opacity:e.opacity??1,background:e.background,borderRadius:e.borderRadius,padding:e.padding,stroke:e.stroke,strokeWidth:e.strokeWidth})},extrudedText(e){let{depth:t,text:r,fill:n="#ffffff",bevelColor:a}=e,o,s=(e.curveTolerance??.1)/Sp(e),u=(e.fontFamily?Dt.getParsed(e.fontFamily):null)??Dt.getParsed("Inter")??Dt.getParsed("Unbounded")??Dt.getFirstParsed();u&&(o=Vo({text:r,font:u,fontSize:e.fontSize??48,depth:t,fill:n,bevelColor:a,curveSegments:e.curveSegments,curveTolerance:s,align:e.align,verticalAlign:e.verticalAlign,letterSpacing:e.letterSpacing,material:e.material==="lit"||e.material==="unlit"||e.material==="toon"?e.material:void 0,shininess:e.shininess,roughness:e.roughness,metallic:e.metallic}).modelData);let c=I.model({id:e.id??se("extruded-text"),modelData:o,is3D:!0,x:e.x??0,y:e.y??0,z:e.z??0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,scale:e.scale??1,scaleX:e.scaleX??1,scaleY:e.scaleY??1,scaleZ:e.scaleZ??1,opacity:e.opacity??1,material:e.material,shininess:e.shininess??32,roughness:e.roughness,specularIntensity:e.specularIntensity??.8,ambientIntensity:e.ambientIntensity??1,metallic:e.metallic,twoSided:e.twoSided??!0,text3dOptions:{...e,curveTolerance:s}});return Mn(c,{faces:[c],items:[c]})},model(e={}){return I.model(e)},obj(e,t={}){return I.obj(e,t)},fbx(e,t={}){return I.fbx(e,t)},gltf(e,t={}){return I.gltf(e,t)},glb(e,t={}){return I.glb(e,t)},stl(e,t={}){return I.stl(e,t)},ply(e,t={}){return I.ply(e,t)},vox(e,t={}){return I.vox(e,t)},threeDS(e,t={}){return I.threeDS(e,t)},off(e,t={}){return I.off(e,t)}};g();var Xu=tr(Ol(),1),An=tr(Yl(),1);var Ao=tr(Ru(),1);g();var Ar=j.dirname(Er(import.meta.url)),Bu=["import","meta","url"].join("."),Mp=Fn(import.meta.url),Nr="/@framefields/engine",Uu={framefields:"index.ts","framefields/effects":"effects/index.ts","framefields/audio":"audio/index.ts","framefields/signals":"signals/index.ts","framefields/fonts":"fonts/index.ts"},ko={path:"path","path/posix":"path",url:"url",os:"os",fs:"fs","fs/promises":"fs-promises",module:"module"},Iu=new Set(["sharp","skia-canvas","node-av","onnxruntime-node","@resvg/resvg-js","@napi-rs/webcodecs","@mediabunny/server","@mediabunny/mp3-encoder","webgpu","pino","pino-pretty","dotenv","esbuild","@framefields/renderer","@framefields/server-utils","framefields/renderer","framefields/preview"]),kp=`
|
|
707
|
+
`).length}else if(a.mode==="human"&&l<1){let f=0,x=0,y=n/Math.max(1,d);for(let v=0;v<d;v++){let w=e[v],M=1,N=a.commaPauseMultiplier??3,k=a.sentencePauseMultiplier??5.5,F=a.paragraphPauseMultiplier??7,U=a.jitter??.35;w===","||w===";"?M=N:w==="."||w==="!"||w==="?"?M=k:w===`
|
|
708
|
+
`&&(M=F);let V=1+Math.sin(v*17.3+42)*.5*U,q=y*M*V;if(x+=q,x<=m)f=v+1;else break}p=Math.min(d,f)}let h=e.slice(0,p);if(o.enabled&&p<d&&p>0){let f=_i(o.charset,o.customCharset),x=Math.min(p,Math.max(1,o.scrambleFramesPerChar>4?3:2)),y="";for(let v=0;v<x;v++){let w=Math.floor(Math.abs(Math.sin(t*7+v*13))*f.length)%f.length;y+=f[w]}h=h.slice(0,h.length-x)+y}let b=!0;if(s>0){let f=Math.max(1,Math.round(30/(2*s)));b=Math.floor(m/f)%2===0}return{visibleChars:p,currentDisplayString:h,isCursorVisible:b}}var Gi=i.union([i.number().min(0),i.enum(["auto","fit","fill"]),i.custom()]),cd=i.enum(["rect","circle","ellipse","polygon","star","arrow","path"]),dd=i.enum(["x","y","scale","rotation","opacity","width","height","volume","hidden","muted","gap","padding","borderRadius","fontSize","text","fill","color","letterSpacing","trimStart","trimEnd","trimOffset","strokeWidth","strokeDashOffset","cornerRadius","starInnerRadiusRatio","fillColor","strokeColor","borderColor","borderWidth","motionBlurShutter","rangeStart","rangeEnd","offset","animatorRangeStart","animatorRangeEnd","animatorOffset","firstMargin","lastMargin","baselineShift","rotateX","rotateY","rotateZ","perspective","translateZ","perspectiveOriginX","perspectiveOriginY","cameraX","cameraY","cameraZ","targetX","targetY","targetZ","cameraPitch","cameraYaw","cameraRoll","cameraFov","cameraZoom","focalLength","focusDistance","fStop","maxBlurRadius","shakeTranslation","shakeRotation","orbitRadius","orbitAzimuth","orbitElevation","z","scaleZ","intensity","angle","radius","penumbra","decay","shininess","roughness","specularIntensity","ambientIntensity","metallic","ior","dispersion","transmission","fresnelPower","envIntensity","animationProgress","animationTime","animationSpeed","wireframe","scaleX","scaleY"]),zi=i.enum(["lit","unlit","toon","glass","acrylic","frosted","metallic"]);var md=i.enum(["interpolate","hueRotate","threshold"]),pd=i.object({name:i.enum(["none","power1","power2","power3","sine","circ","expo","back","elastic","bounce","spring","cubic","hold"]),dir:i.enum(["in","out","inOut"]),params:i.array(i.number()).optional()}).strict().superRefine((e,t)=>{if(e.name==="spring"&&e.params){let[r,n,a]=e.params;r!==void 0&&r<=0&&t.addIssue({code:i.ZodIssueCode.custom,message:"Spring damping must be greater than 0.",path:["params",0]}),n!==void 0&&n<=0&&t.addIssue({code:i.ZodIssueCode.custom,message:"Spring stiffness must be greater than 0.",path:["params",1]}),a!==void 0&&a<=0&&t.addIssue({code:i.ZodIssueCode.custom,message:"Spring mass must be greater than 0.",path:["params",2]})}}),fd=i.object({id:i.string().min(1),frame:i.number().int().min(0),value:i.union([i.number(),i.boolean(),i.string()]),ease:pd.optional(),presetGroupId:i.string().optional(),presetType:i.string().optional(),spatialTangentIn:i.object({x:i.number(),y:i.number()}).optional(),spatialTangentOut:i.object({x:i.number(),y:i.number()}).optional()}).strict(),hd=i.enum(["continuous","accumulate"]),gd=i.discriminatedUnion("type",[i.object({type:i.literal("keyframe")}),i.object({type:i.literal("signal"),inputHandleId:i.string(),multiplier:i.number().default(1),offset:i.number().default(0),smoothingWindowFrames:i.number().min(0).default(0),colorMode:md.optional(),colorA:i.string().optional(),colorB:i.string().optional(),colorThreshold:i.number().optional(),signalMode:hd.optional(),threshold:i.number().optional(),accumulateThreshold:i.number().optional(),debounceFrames:i.number().int().min(0).optional(),channel:i.string().optional()}),i.object({type:i.literal("wiggle"),frequency:i.number().default(2),amplitude:i.number().default(50),octaves:i.number().int().min(1).max(4).default(1),seed:i.number().default(1234)}),i.object({type:i.literal("springOvershoot"),damping:i.number().default(12),stiffness:i.number().default(180),mass:i.number().default(1)})]),bd=i.preprocess(e=>{if(!e||typeof e!="object")return e;let t=e;if(t.type==="signal"){let r=typeof t.threshold=="number"?t.threshold:typeof t.accumulateThreshold=="number"?t.accumulateThreshold:.15;return{type:"signal",inputHandleId:t.inputHandleId??t.handleId,multiplier:t.multiplier??t.amplitude??1,offset:t.offset??0,smoothingWindowFrames:t.smoothingWindowFrames??t.smoothing??0,colorMode:t.colorMode,colorA:t.colorA,colorB:t.colorB,colorThreshold:t.colorThreshold,signalMode:t.signalMode??"continuous",threshold:r,accumulateThreshold:r,debounceFrames:t.debounceFrames??2,channel:typeof t.channel=="string"?t.channel:"primary"}}return e},gd),xd=(e,t)=>{if(!e?.tracks)return;let r=0;for(let n=0;n<e.tracks.length;n++){let a=e.tracks[n],o=a.keyframes??[];r+=o.length,(!a.source||a.source.type==="keyframe")&&o.length<1&&t.addIssue({code:i.ZodIssueCode.custom,message:`Track for property '${a.prop}' must have at least 1 keyframe.`,path:["tracks",n,"keyframes"]});let u=a.prop==="hidden"||a.prop==="muted",c=a.prop==="fillColor"||a.prop==="strokeColor"||a.prop==="fill"||a.prop==="color";for(let l=0;l<o.length;l++){let m=o[l];if(l>0){let p=o[l-1];m.frame<p.frame?t.addIssue({code:i.ZodIssueCode.custom,message:"Keyframes must be sorted in ascending order of frame.",path:["tracks",n,"keyframes",l]}):m.frame===p.frame&&t.addIssue({code:i.ZodIssueCode.custom,message:"Duplicate keyframes at the same frame are not allowed.",path:["tracks",n,"keyframes",l]})}let d=typeof m.value;u?d!=="boolean"&&t.addIssue({code:i.ZodIssueCode.custom,message:`Keyframe value for discrete property '${a.prop}' must be a boolean.`,path:["tracks",n,"keyframes",l,"value"]}):c?d!=="string"&&t.addIssue({code:i.ZodIssueCode.custom,message:`Keyframe value for color property '${a.prop}' must be a string.`,path:["tracks",n,"keyframes",l,"value"]}):d!=="number"||Number.isNaN(m.value)||!Number.isFinite(m.value)?t.addIssue({code:i.ZodIssueCode.custom,message:`Keyframe value for numeric property '${a.prop}' must be a finite number.`,path:["tracks",n,"keyframes",l,"value"]}):(a.prop==="volume"||a.prop==="trimStart"||a.prop==="trimEnd")&&(m.value<0||m.value>1)&&t.addIssue({code:i.ZodIssueCode.custom,message:`Keyframe value for property '${a.prop}' must be between 0 and 1.`,path:["tracks",n,"keyframes",l,"value"]})}}r>128&&t.addIssue({code:i.ZodIssueCode.custom,message:`Total keyframes across all tracks (${r}) exceeds the limit of 128.`,path:["tracks"]})},yd=i.object({id:i.string().min(1),prop:dd,source:bd.optional(),keyframes:i.array(fd).default([]),repeat:i.number().int().optional(),yoyo:i.boolean().optional(),durationFrames:i.number().int().min(1).optional()}).strict(),Ca=i.object({tracks:i.array(yd).max(24)}).strict().superRefine(xd),dt={id:i.string().min(1),inputHandleId:i.string().optional(),position:i.enum(["relative","absolute"]).default("relative"),x:i.union([i.number(),i.custom()]).default(0),y:i.union([i.number(),i.custom()]).default(0),width:Gi.optional(),height:Gi.optional(),grow:i.number().min(0).optional(),flexShrink:i.number().min(0).optional(),flexBasis:i.number().min(0).optional(),alignSelf:i.enum(["auto","start","center","end","stretch","baseline"]).optional(),aspectRatio:i.number().positive().optional(),zIndex:i.number().int().default(0),hidden:i.boolean().default(!1),opacity:i.number().min(0).max(1).default(1),blendMode:i.string().optional(),effects:i.array(i.unknown()).optional(),rotation:i.number().default(0),scale:i.number().min(0).default(1),anchorX:i.number().min(0).max(1).default(.5),anchorY:i.number().min(0).max(1).default(.5),startFrame:i.number().int().min(0).default(0),durationFrames:i.number().int().min(1).optional(),motionBlurShutter:i.number().min(0).max(360).optional(),rotateX:i.number().default(0),rotateY:i.number().default(0),rotateZ:i.number().default(0),perspective:i.number().min(0).default(0),perspectiveOriginX:i.number().default(.5),perspectiveOriginY:i.number().default(.5),translateZ:i.number().default(0),backfaceVisibility:i.enum(["visible","hidden"]).default("visible"),transformStyle:i.enum(["flat","preserve-3d"]).default("flat"),is3D:i.boolean().default(!1),z:i.union([i.number(),i.custom()]).default(0),scaleZ:i.number().default(1),twoSided:i.boolean().default(!0),material:zi.default("lit"),ior:i.number().min(1).max(3).optional(),roughness:i.number().min(0).max(1).optional(),shininess:i.number().min(1).max(512).default(32),specularIntensity:i.number().min(0).default(.5),metallic:i.number().min(0).max(1).optional(),ambientIntensity:i.number().min(0).default(1),transmission:i.number().min(0).max(1).optional(),dispersion:i.number().min(0).max(1).optional(),fresnelPower:i.number().min(1).max(10).optional(),envIntensity:i.number().min(0).max(10).optional(),animation:Ca.default({tracks:[]}),vision:i.unknown().optional(),relighting:i.unknown().optional()},Vi=i.object({color:fe,offset:i.object({x:i.number(),y:i.number()}).optional(),blurRadius:i.number().min(0).optional()}).strict(),vd=i.object({x:i.number().optional(),y:i.number().optional(),scale:i.number().optional(),scaleX:i.number().optional(),scaleY:i.number().optional(),rotation:i.number().optional(),rotationX:i.number().optional(),rotationY:i.number().optional(),opacity:i.number().optional(),blur:i.number().optional(),color:i.string().optional()}).strict(),ji=i.object({id:i.string(),unit:i.enum(["character","word","line"]).default("character"),rangeStart:i.number().min(0).max(1).default(0),rangeEnd:i.number().min(0).max(1).default(1),offset:i.number().min(-1).max(1).default(0),easing:i.string().default("power2.out"),transform:vd.optional()}),wd={waveRise(e={}){return{id:e.id??"wave-rise",unit:e.unit??"character",rangeStart:e.rangeStart??0,rangeEnd:e.rangeEnd??1,offset:e.offset??-1,easing:e.easing??"power2.out",transform:{y:e.y??40,rotationX:e.rotationX??45,opacity:e.opacity??0,blur:e.blur??0}}},wordPop(e={}){return{id:e.id??"word-pop",unit:"word",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"back.out(1.6)",transform:{scale:e.scale??0,y:e.y??20,opacity:0}}},blurIn(e={}){return{id:e.id??"blur-in",unit:e.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"power3.out",transform:{blur:e.blur??16,y:e.y??20,opacity:e.opacity??0}}},flip3D(e={}){return{id:e.id??"flip-3d",unit:e.unit??"character",rangeStart:0,rangeEnd:1,offset:-1,easing:e.easing??"back.out(1.4)",transform:{rotationX:e.rotationX??90,opacity:0}}},colorSweep(e){return{id:e.id??"color-sweep",unit:e.unit??"character",rangeStart:0,rangeEnd:.5,offset:-.5,easing:e.easing??"power2.inOut",transform:{color:e.color}}}},Sd=i.object({focalLength:i.number().min(5).max(500).default(50),fov:i.number().min(5).max(160).optional(),sensorWidth:i.number().default(36),near:i.number().min(.1).default(1),far:i.number().min(10).default(5e4),zoom:i.number().min(.01).default(1)}).strict(),Md=i.object({enabled:i.boolean().default(!1),focusDistance:i.number().min(1).default(1e3),fStop:i.number().min(.5).max(64).default(2.8),maxBlurRadius:i.number().min(0).max(128).default(32),apertureBlades:i.number().int().min(0).max(12).default(0),anamorphicRatio:i.number().min(.5).max(3).default(1)}).strict(),kd=i.object({translationAmplitude:i.number().min(0).default(0),rotationAmplitude:i.number().min(0).default(0),frequency:i.number().min(.1).max(60).default(2.5),octaves:i.number().int().min(1).max(6).default(3),seed:i.number().default(42)}).strict(),$i=i.object({id:i.string().min(1),kind:i.literal("camera"),mode:i.enum(["lookAt","free","orbit"]).default("lookAt"),x:i.number().optional(),y:i.number().optional(),z:i.number().optional(),targetX:i.number().optional(),targetY:i.number().optional(),targetZ:i.number().optional(),pitch:i.number().default(0),yaw:i.number().default(0),roll:i.number().default(0),lens:Sd.optional(),dof:Md.optional(),shake:kd.optional(),startFrame:i.number().int().min(0).default(0),durationFrames:i.number().int().min(1).optional(),animation:Ca.default({tracks:[]})}).strict(),Wi=i.enum(["ambient","directional","point","spot"]),Hi=i.object({id:i.string().min(1),kind:i.literal("light"),lightType:Wi.default("directional"),color:fe.default("#ffffff"),intensity:i.number().default(1),x:i.number().optional(),y:i.number().optional(),z:i.number().optional(),targetX:i.number().optional(),targetY:i.number().optional(),targetZ:i.number().optional(),direction:i.tuple([i.number(),i.number(),i.number()]).optional(),radius:i.number().min(0).default(1e3),decay:i.number().min(0).default(2),angle:i.number().min(0).max(180).default(45),penumbra:i.number().min(0).max(1).default(.2),startFrame:i.number().int().min(0).default(0),durationFrames:i.number().int().min(1).optional(),animation:Ca.default({tracks:[]})}).strict(),Aa=()=>i.array(i.lazy(()=>Na)),Yi=i.object({...dt,kind:i.literal("flex"),dir:i.enum(["row","column"]).default("row"),gap:i.number().min(0).default(0),padding:i.number().min(0).default(0),justify:i.enum(["start","center","end","space-between","space-around"]).default("start"),align:i.enum(["start","center","end","stretch"]).default("start"),wrap:i.boolean().default(!1),staggerFrames:i.number().min(0).default(0),staggerDirection:i.enum(["forward","reverse","center-out"]).default("forward"),overflow:i.enum(["visible","hidden"]).default("hidden"),background:fe.optional(),borderRadius:i.number().min(0).optional(),borderColor:fe.optional(),borderWidth:i.number().min(0).optional(),strokeAlign:i.enum(["inside","center","outside"]).optional(),strokeRadius:i.number().min(0).optional(),children:Aa().optional()}).strict(),Pd=i.object({...dt,kind:i.literal("block"),gap:i.number().min(0).default(0),padding:i.number().min(0).default(0),align:i.enum(["start","center","end","stretch"]).default("start"),staggerFrames:i.number().min(0).default(0),staggerDirection:i.enum(["forward","reverse","center-out"]).default("forward"),overflow:i.enum(["visible","hidden"]).default("hidden"),background:fe.optional(),borderRadius:i.number().min(0).optional(),borderColor:fe.optional(),borderWidth:i.number().min(0).optional(),strokeAlign:i.enum(["inside","center","outside"]).optional(),strokeRadius:i.number().min(0).optional(),children:Aa().optional()}).strict(),Xi=i.object({...dt,kind:i.literal("box"),background:fe,borderRadius:i.number().min(0).optional(),padding:i.number().min(0).default(0),staggerFrames:i.number().min(0).default(0),staggerDirection:i.enum(["forward","reverse","center-out"]).default("forward"),overflow:i.enum(["visible","hidden"]).default("hidden"),borderColor:fe.optional(),borderWidth:i.number().min(0).optional(),strokeAlign:i.enum(["inside","center","outside"]).optional(),strokeRadius:i.number().min(0).optional(),children:Aa().optional()}).strict(),Zi=i.object({background:fe,borderRadius:i.number().min(0).optional(),paddingX:i.number().min(0).optional(),paddingY:i.number().min(0).optional()}).strict(),qi=i.object({text:i.union([i.string(),i.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]),fontFamily:i.string().optional(),fontSize:i.union([i.number().positive(),i.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),fontWeight:i.union([i.number().int(),i.string()]).optional(),fontStyle:i.enum(["normal","italic"]).optional(),fill:i.union([fe,i.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),letterSpacing:i.number().optional(),baselineShift:i.number().optional(),opacity:i.union([i.number().min(0).max(1),i.custom(e=>!!(e&&typeof e=="object"&&"get"in e))]).optional(),mark:Zi.optional()}).strict(),Td={text:i.string().default(""),spans:i.array(qi).optional(),fontFamily:i.string().optional(),fontSize:i.number().positive().optional(),fontWeight:i.union([i.number().int(),i.string()]).optional(),fontStyle:i.string().optional(),fill:fe,align:i.enum(["start","center","end"]).optional(),verticalAlign:i.enum(["top","middle","bottom"]).optional(),lineHeight:i.number().positive().optional(),letterSpacing:i.number().optional(),background:fe,borderRadius:i.number().min(0).optional(),padding:i.number().min(0).optional(),stroke:fe,strokeWidth:i.number().min(0).optional(),strokeAlign:i.enum(["inside","center","outside"]).optional(),textShadow:i.string().optional(),shadows:i.array(Vi).optional(),pathOptions:Ot.optional(),typewriter:$r.optional(),marquee:Sa.optional(),animators:i.array(i.union([ji,Rt,Ma])).optional()},Ki=i.object({...dt,...Td,kind:i.literal("text")}).strict(),Ji=i.object({...dt,kind:i.literal("media"),inputHandleId:i.string().min(1),dataType:i.string().optional(),fit:i.enum(["cover","contain","fill","none"]).default("contain"),borderRadius:i.number().min(0).optional(),borderColor:fe.optional(),borderWidth:i.number().min(0).optional(),strokeAlign:i.enum(["inside","center","outside"]).optional(),strokeRadius:i.number().min(0).optional(),volume:i.number().min(0).max(1).default(1),muted:i.boolean().default(!1),trimStartSec:i.number().min(0).optional(),fontFamily:i.string().optional(),fontSize:i.number().positive().optional(),fontWeight:i.union([i.number().int(),i.string()]).optional(),fontStyle:i.string().optional(),fill:fe,align:i.enum(["start","center","end"]).optional(),verticalAlign:i.enum(["top","middle","bottom"]).optional(),lineHeight:i.number().positive().optional(),letterSpacing:i.number().optional(),background:fe,padding:i.number().min(0).optional(),stroke:fe,strokeWidth:i.number().min(0).optional(),textShadow:i.string().optional(),shadows:i.array(Vi).optional(),maxWidth:i.number().optional()}).strict(),Cd={shapeType:cd.default("rect"),borderRadius:i.number().min(0).optional(),radiusTL:i.number().min(0).optional(),radiusTR:i.number().min(0).optional(),radiusBR:i.number().min(0).optional(),radiusBL:i.number().min(0).optional(),polygonSides:i.number().int().min(3).max(64).optional(),starPoints:i.number().int().min(3).max(64).optional(),starInnerRadiusRatio:i.number().min(.01).max(.99).optional(),arrowHeadWidth:i.number().min(0).optional(),arrowHeadLength:i.number().min(0).optional(),arrowShaftWidth:i.number().min(1).optional(),d:i.string().optional(),fillType:i.enum(["solid","linear","radial","none"]).default("solid"),fillColor:fe.default("#3b82f6"),gradientEndColor:fe.optional(),gradientAngle:i.number().default(0),strokeColor:fe.default("#ffffff"),strokeWidth:i.number().min(0).default(0),strokeDashArray:i.string().optional(),strokeDashOffset:i.number().default(0),strokeLineCap:i.enum(["butt","round","square"]).default("round"),strokeLineJoin:i.enum(["miter","round","bevel"]).default("round"),strokeAlign:i.enum(["inside","center","outside"]).optional(),trimStart:i.number().min(0).max(1).default(0),trimEnd:i.number().min(0).max(1).default(1),trimOffset:i.number().default(0)},Qi=i.object({...dt,...Cd,kind:i.literal("shape")}).strict(),Ad=i.object({offset:i.number().min(0).max(1),color:i.string()}),es=i.object({...dt,kind:i.literal("model3d"),src:i.string().default(""),modelFormat:i.enum(["obj","fbx","gltf","glb","stl","ply","vox","3ds","off","auto"]).default("auto"),modelData:i.unknown().optional(),animationName:i.string().optional(),animationProgress:i.number().min(0).max(1).default(0),animationTime:i.number().min(0).default(0),animationSpeed:i.number().default(1),loop:i.boolean().default(!0),wireframe:i.boolean().default(!1),texture:i.string().optional(),center:i.boolean().optional(),normalizeSize:i.number().optional(),scaleX:i.number().default(1),scaleY:i.number().default(1),audioDeform:i.record(i.string(),i.unknown()).optional(),text3dOptions:i.unknown().optional()}).strict(),Na=i.lazy(()=>i.union([Yi,Pd,Xi,Ki,Ji,Qi,$i,Hi,es])),Nd=i.object({width:i.number().int().min(1).max(4096),height:i.number().int().min(1).max(4096),backgroundColor:fe,volume:i.number().min(0).max(1).default(1),fps:i.number().int().min(1).max(120).default(24),mode:i.enum(["Video","Image"]).default("Video"),antialias3d:i.boolean().optional(),layout:i.array(Na).default([]),fonts:i.array(i.string()).optional(),signals:i.record(i.string(),i.unknown()).optional(),effects:i.array(i.unknown()).optional(),vision:i.unknown().optional(),onRequestFrame:i.custom().optional()}).strict();g();var ts=i.enum(["cut","carrierMatchCut","cameraWhip","focusPullDissolve","irisAperture","pushDirectional"]),rs=i.object({sourceLayerId:i.string(),targetLayerId:i.string(),mode:i.enum(["exact","preserveVelocity","morph"]).default("preserveVelocity"),blendFrames:i.number().int().min(0).max(30).default(0)}).strict(),Dd=i.object({id:i.string(),chapter:i.enum(["hook","tension","solution","feature_spotlight","outro","custom"]).default("custom"),durationMs:i.number().positive().optional(),durationFrames:i.number().int().positive().optional(),transitionOut:i.object({type:ts.default("cut"),durationFrames:i.number().int().min(0).default(0),carrier:rs.optional(),whipDirection:i.enum(["left","right","up","down"]).default("left")}).default({type:"cut",durationFrames:0,whipDirection:"left"})}).passthrough();function Fd(e,t){return{x:e.x,y:e.y,scale:e.scale,vx:e.vx,vy:e.vy,...t}}function ns(e,t=60){let r=0,n=[];for(let s of e){let u=r,c=s.durationFrames??(s.durationMs?Math.round(s.durationMs/1e3*t):60);n.push({sceneId:s.id,startFrame:u,durationFrames:c});let l=s.transitionOverlap??s.transitionOut?.durationFrames??0;r+=Math.max(1,c-l)}let a=r,o=Math.round(a/t*1e3);return{totalFrames:a,totalDurationMs:o,sceneOffsets:n}}var dr=class e{id;chapter;durationMs;durationFrames;transitionOut;layout;constructor(t){this.id=t.id,this.chapter=t.chapter??"custom",this.durationMs=t.durationMs,this.durationFrames=t.durationFrames,this.transitionOut={type:t.transitionOut?.type??"cut",durationFrames:t.transitionOut?.durationFrames??0,carrier:t.transitionOut?.carrier,whipDirection:t.transitionOut?.whipDirection??"left"},this.layout=t.layout??[]}static create(t){return new e(t)}},Da=class e{fps;width;height;backgroundColor;fonts;signals;scenes=[];constructor(t={}){if(this.fps=t.fps??60,this.width=t.width??1920,this.height=t.height??1080,this.backgroundColor=t.backgroundColor??"#ffffff",this.fonts=t.fonts,this.signals=t.signals,t.scenes)for(let r of t.scenes)this.addScene(r)}static create(t={}){return new e(t)}addScene(t){let r=t instanceof dr?t:new dr(t);return this.scenes.push(r),this}getScenes(){return this.scenes}calculateTimeline(){return ns(this.scenes,this.fps)}toProgram(){let t=this.calculateTimeline(),r=[];for(let n=0;n<this.scenes.length;n++){let a=this.scenes[n],o=t.sceneOffsets[n];if(o)for(let s of a.layout){let u={...s};u.startFrame=(u.startFrame??0)+o.startFrame,u.durationFrames===void 0&&(u.durationFrames=o.durationFrames),r.push(u)}}return{width:this.width,height:this.height,backgroundColor:this.backgroundColor,fps:this.fps,volume:1,mode:"Video",layout:r,fonts:this.fonts,signals:this.signals}}};g();g();g();g();g();g();function as(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function mt(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function ze(e){return e=mt(Math.abs(e)),e?e[1]:NaN}g();function os(e,t){return function(r,n){for(var a=r.length,o=[],s=0,u=e[0],c=0;a>0&&u>0&&(c+u+1>n&&(u=Math.max(1,n-c)),o.push(r.substring(a-=u,a+u)),!((c+=u+1)>n));)u=e[s=(s+1)%e.length];return o.reverse().join(t)}}g();function is(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}g();var Ld=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Qe(e){if(!(t=Ld.exec(e)))throw new Error("invalid format: "+e);var t;return new Xr({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Qe.prototype=Xr.prototype;function Xr(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Xr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};g();function ss(e){e:for(var t=e.length,r=1,n=-1,a;r<t;++r)switch(e[r]){case".":n=a=r;break;case"0":n===0&&(n=r),a=r;break;default:if(!+e[r])break e;n>0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(a+1):e}g();g();var mr;function us(e,t){var r=mt(e,t);if(!r)return mr=void 0,e.toPrecision(t);var n=r[0],a=r[1],o=a-(mr=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,s=n.length;return o===s?n:o>s?n+new Array(o-s+1).join("0"):o>0?n.slice(0,o)+"."+n.slice(o):"0."+new Array(1-o).join("0")+mt(e,Math.max(0,t+o-1))[0]}g();function Fa(e,t){var r=mt(e,t);if(!r)return e+"";var n=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+n:n.length>a+1?n.slice(0,a+1)+"."+n.slice(a+1):n+new Array(a-n.length+2).join("0")}var La={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:as,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Fa(e*100,t),r:Fa,s:us,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};g();function Oa(e){return e}var ls=Array.prototype.map,cs=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function ds(e){var t=e.grouping===void 0||e.thousands===void 0?Oa:os(ls.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?Oa:is(ls.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"\u2212":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function l(d,p){d=Qe(d);var h=d.fill,b=d.align,f=d.sign,x=d.symbol,y=d.zero,v=d.width,w=d.comma,M=d.precision,N=d.trim,k=d.type;k==="n"?(w=!0,k="g"):La[k]||(M===void 0&&(M=12),N=!0,k="g"),(y||h==="0"&&b==="=")&&(y=!0,h="0",b="=");var F=(p&&p.prefix!==void 0?p.prefix:"")+(x==="$"?r:x==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():""),U=(x==="$"?n:/[%p]/.test(k)?s:"")+(p&&p.suffix!==void 0?p.suffix:""),V=La[k],q=/[defgprs%]/.test(k);M=M===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,M)):Math.max(0,Math.min(20,M));function te(R){var T=F,P=U,$,H,_;if(k==="c")P=V(R)+P,R="";else{R=+R;var E=R<0||1/R<0;if(R=isNaN(R)?c:V(Math.abs(R),M),N&&(R=ss(R)),E&&+R==0&&f!=="+"&&(E=!1),T=(E?f==="("?f:u:f==="-"||f==="("?"":f)+T,P=(k==="s"&&!isNaN(R)&&mr!==void 0?cs[8+mr/3]:"")+P+(E&&f==="("?")":""),q){for($=-1,H=R.length;++$<H;)if(_=R.charCodeAt($),48>_||_>57){P=(_===46?a+R.slice($+1):R.slice($))+P,R=R.slice(0,$);break}}}w&&!y&&(R=t(R,1/0));var W=T.length+R.length+P.length,re=W<v?new Array(v-W+1).join(h):"";switch(w&&y&&(R=t(re+R,re.length?v-P.length:1/0),re=""),b){case"<":R=T+R+P+re;break;case"=":R=T+re+R+P;break;case"^":R=re.slice(0,W=re.length>>1)+T+R+P+re.slice(W);break;default:R=re+T+R+P;break}return o(R)}return te.toString=function(){return d+""},te}function m(d,p){var h=Math.max(-8,Math.min(8,Math.floor(ze(p)/3)))*3,b=Math.pow(10,-h),f=l((d=Qe(d),d.type="f",d),{suffix:cs[8+h/3]});return function(x){return f(b*x)}}return{format:l,formatPrefix:m}}var Zr,Bt,qr;Ra({thousands:",",grouping:[3],currency:["$",""]});function Ra(e){return Zr=ds(e),Bt=Zr.format,qr=Zr.formatPrefix,Zr}g();function Ba(e){return Math.max(0,-ze(Math.abs(e)))}g();function Ia(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ze(t)/3)))*3-ze(Math.abs(e)))}g();function Ua(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,ze(t)-ze(e))+1}g();g();g();g();g();function pt(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}g();g();function Ea(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ft(e){let t,r,n;e.length!==2?(t=pt,r=(u,c)=>pt(e(u),c),n=(u,c)=>e(u)-c):(t=e===pt||e===Ea?e:Od,r=e,n=e);function a(u,c,l=0,m=u.length){if(l<m){if(t(c,c)!==0)return m;do{let d=l+m>>>1;r(u[d],c)<0?l=d+1:m=d}while(l<m)}return l}function o(u,c,l=0,m=u.length){if(l<m){if(t(c,c)!==0)return m;do{let d=l+m>>>1;r(u[d],c)<=0?l=d+1:m=d}while(l<m)}return l}function s(u,c,l=0,m=u.length){let d=a(u,c,l,m-1);return d>l&&n(u[d-1],c)>-n(u[d],c)?d-1:d}return{left:a,center:s,right:o}}function Od(){return 0}g();function _a(e){return e===null?NaN:+e}var ms=ft(pt),ps=ms.right,Rd=ms.left,Bd=ft(_a).center,Ga=ps;g();var It=class extends Map{constructor(t,r=Ed){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,a]of t)this.set(n,a)}get(t){return super.get(fs(this,t))}has(t){return super.has(fs(this,t))}set(t,r){return super.set(Id(this,t),r)}delete(t){return super.delete(Ud(this,t))}};function fs({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function Id({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function Ud({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function Ed(e){return e!==null&&typeof e=="object"?e.valueOf():e}g();var _d=Math.sqrt(50),Gd=Math.sqrt(10),zd=Math.sqrt(2);function Kr(e,t,r){let n=(t-e)/Math.max(0,r),a=Math.floor(Math.log10(n)),o=n/Math.pow(10,a),s=o>=_d?10:o>=Gd?5:o>=zd?2:1,u,c,l;return a<0?(l=Math.pow(10,-a)/s,u=Math.round(e*l),c=Math.round(t*l),u/l<e&&++u,c/l>t&&--c,l=-l):(l=Math.pow(10,a)*s,u=Math.round(e/l),c=Math.round(t/l),u*l<e&&++u,c*l>t&&--c),c<u&&.5<=r&&r<2?Kr(e,t,r*2):[u,c,l]}function Jr(e,t,r){if(t=+t,e=+e,r=+r,!(r>0))return[];if(e===t)return[e];let n=t<e,[a,o,s]=n?Kr(t,e,r):Kr(e,t,r);if(!(o>=a))return[];let u=o-a+1,c=new Array(u);if(n)if(s<0)for(let l=0;l<u;++l)c[l]=(o-l)/-s;else for(let l=0;l<u;++l)c[l]=(o-l)*s;else if(s<0)for(let l=0;l<u;++l)c[l]=(a+l)/-s;else for(let l=0;l<u;++l)c[l]=(a+l)*s;return c}function pr(e,t,r){return t=+t,e=+e,r=+r,Kr(e,t,r)[2]}function Ut(e,t,r){t=+t,e=+e,r=+r;let n=t<e,a=n?pr(t,e,r):pr(e,t,r);return(n?-1:1)*(a<0?1/-a:a)}g();function Qr(e,t,r){e=+e,t=+t,r=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+r;for(var n=-1,a=Math.max(0,Math.ceil((t-e)/r))|0,o=new Array(a);++n<a;)o[n]=e+n*r;return o}g();function et(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}g();var hs=Symbol("implicit");function en(){var e=new It,t=[],r=[],n=hs;function a(o){let s=e.get(o);if(s===void 0){if(n!==hs)return n;e.set(o,s=t.push(o)-1)}return r[s%r.length]}return a.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new It;for(let s of o)e.has(s)||e.set(s,t.push(s)-1);return a},a.range=function(o){return arguments.length?(r=Array.from(o),a):r.slice()},a.unknown=function(o){return arguments.length?(n=o,a):n},a.copy=function(){return en(t,r).unknown(n)},et.apply(a,arguments),a}function fr(){var e=en().unknown(void 0),t=e.domain,r=e.range,n=0,a=1,o,s,u=!1,c=0,l=0,m=.5;delete e.unknown;function d(){var p=t().length,h=a<n,b=h?a:n,f=h?n:a;o=(f-b)/Math.max(1,p-c+l*2),u&&(o=Math.floor(o)),b+=(f-b-o*(p-c))*m,s=o*(1-c),u&&(b=Math.round(b),s=Math.round(s));var x=Qr(p).map(function(y){return b+o*y});return r(h?x.reverse():x)}return e.domain=function(p){return arguments.length?(t(p),d()):t()},e.range=function(p){return arguments.length?([n,a]=p,n=+n,a=+a,d()):[n,a]},e.rangeRound=function(p){return[n,a]=p,n=+n,a=+a,u=!0,d()},e.bandwidth=function(){return s},e.step=function(){return o},e.round=function(p){return arguments.length?(u=!!p,d()):u},e.padding=function(p){return arguments.length?(c=Math.min(1,l=+p),d()):c},e.paddingInner=function(p){return arguments.length?(c=Math.min(1,p),d()):c},e.paddingOuter=function(p){return arguments.length?(l=+p,d()):l},e.align=function(p){return arguments.length?(m=Math.max(0,Math.min(1,p)),d()):m},e.copy=function(){return fr(t(),[n,a]).round(u).paddingInner(c).paddingOuter(l).align(m)},et.apply(d(),arguments)}g();g();g();g();g();g();g();function tn(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function za(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function br(){}var hr=.7,an=1/hr,Et="\\s*([+-]?\\d+)\\s*",gr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ve="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Vd=/^#([0-9a-f]{3,8})$/,jd=new RegExp(`^rgb\\(${Et},${Et},${Et}\\)$`),$d=new RegExp(`^rgb\\(${Ve},${Ve},${Ve}\\)$`),Wd=new RegExp(`^rgba\\(${Et},${Et},${Et},${gr}\\)$`),Hd=new RegExp(`^rgba\\(${Ve},${Ve},${Ve},${gr}\\)$`),Yd=new RegExp(`^hsl\\(${gr},${Ve},${Ve}\\)$`),Xd=new RegExp(`^hsla\\(${gr},${Ve},${Ve},${gr}\\)$`),gs={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};tn(br,tt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:bs,formatHex:bs,formatHex8:Zd,formatHsl:qd,formatRgb:xs,toString:xs});function bs(){return this.rgb().formatHex()}function Zd(){return this.rgb().formatHex8()}function qd(){return ks(this).formatHsl()}function xs(){return this.rgb().formatRgb()}function tt(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=Vd.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?ys(t):r===3?new Re(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?rn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?rn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=jd.exec(e))?new Re(t[1],t[2],t[3],1):(t=$d.exec(e))?new Re(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Wd.exec(e))?rn(t[1],t[2],t[3],t[4]):(t=Hd.exec(e))?rn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Yd.exec(e))?Ss(t[1],t[2]/100,t[3]/100,1):(t=Xd.exec(e))?Ss(t[1],t[2]/100,t[3]/100,t[4]):gs.hasOwnProperty(e)?ys(gs[e]):e==="transparent"?new Re(NaN,NaN,NaN,0):null}function ys(e){return new Re(e>>16&255,e>>8&255,e&255,1)}function rn(e,t,r,n){return n<=0&&(e=t=r=NaN),new Re(e,t,r,n)}function Kd(e){return e instanceof br||(e=tt(e)),e?(e=e.rgb(),new Re(e.r,e.g,e.b,e.opacity)):new Re}function _t(e,t,r,n){return arguments.length===1?Kd(e):new Re(e,t,r,n??1)}function Re(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}tn(Re,_t,za(br,{brighter(e){return e=e==null?an:Math.pow(an,e),new Re(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?hr:Math.pow(hr,e),new Re(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Re(gt(this.r),gt(this.g),gt(this.b),on(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:vs,formatHex:vs,formatHex8:Jd,formatRgb:ws,toString:ws}));function vs(){return`#${ht(this.r)}${ht(this.g)}${ht(this.b)}`}function Jd(){return`#${ht(this.r)}${ht(this.g)}${ht(this.b)}${ht((isNaN(this.opacity)?1:this.opacity)*255)}`}function ws(){let e=on(this.opacity);return`${e===1?"rgb(":"rgba("}${gt(this.r)}, ${gt(this.g)}, ${gt(this.b)}${e===1?")":`, ${e})`}`}function on(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function gt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ht(e){return e=gt(e),(e<16?"0":"")+e.toString(16)}function Ss(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Ue(e,t,r,n)}function ks(e){if(e instanceof Ue)return new Ue(e.h,e.s,e.l,e.opacity);if(e instanceof br||(e=tt(e)),!e)return new Ue;if(e instanceof Ue)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,a=Math.min(t,r,n),o=Math.max(t,r,n),s=NaN,u=o-a,c=(o+a)/2;return u?(t===o?s=(r-n)/u+(r<n)*6:r===o?s=(n-t)/u+2:s=(t-r)/u+4,u/=c<.5?o+a:2-o-a,s*=60):u=c>0&&c<1?0:s,new Ue(s,u,c,e.opacity)}function Ps(e,t,r,n){return arguments.length===1?ks(e):new Ue(e,t,r,n??1)}function Ue(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}tn(Ue,Ps,za(br,{brighter(e){return e=e==null?an:Math.pow(an,e),new Ue(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?hr:Math.pow(hr,e),new Ue(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,a=2*r-n;return new Re(Va(e>=240?e-240:e+120,a,n),Va(e,a,n),Va(e<120?e+240:e-120,a,n),this.opacity)},clamp(){return new Ue(Ms(this.h),nn(this.s),nn(this.l),on(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=on(this.opacity);return`${e===1?"hsl(":"hsla("}${Ms(this.h)}, ${nn(this.s)*100}%, ${nn(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Ms(e){return e=(e||0)%360,e<0?e+360:e}function nn(e){return Math.max(0,Math.min(1,e||0))}function Va(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}g();g();function ja(e,t,r,n,a){var o=e*e,s=o*e;return((1-3*e+3*o-s)*t+(4-6*o+3*s)*r+(1+3*e+3*o-3*s)*n+s*a)/6}function Ts(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),a=e[n],o=e[n+1],s=n>0?e[n-1]:2*a-o,u=n<t-1?e[n+2]:2*o-a;return ja((r-n/t)*t,s,a,o,u)}}g();function Cs(e){var t=e.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*t),a=e[(n+t-1)%t],o=e[n%t],s=e[(n+1)%t],u=e[(n+2)%t];return ja((r-n/t)*t,a,o,s,u)}}g();g();var xr=e=>()=>e;function Qd(e,t){return function(r){return e+r*t}}function em(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function As(e){return(e=+e)==1?sn:function(t,r){return r-t?em(t,r,e):xr(isNaN(t)?r:t)}}function sn(e,t){var r=t-e;return r?Qd(e,r):xr(isNaN(e)?t:e)}var $a=(function e(t){var r=As(t);function n(a,o){var s=r((a=_t(a)).r,(o=_t(o)).r),u=r(a.g,o.g),c=r(a.b,o.b),l=sn(a.opacity,o.opacity);return function(m){return a.r=s(m),a.g=u(m),a.b=c(m),a.opacity=l(m),a+""}}return n.gamma=e,n})(1);function Ns(e){return function(t){var r=t.length,n=new Array(r),a=new Array(r),o=new Array(r),s,u;for(s=0;s<r;++s)u=_t(t[s]),n[s]=u.r||0,a[s]=u.g||0,o[s]=u.b||0;return n=e(n),a=e(a),o=e(o),u.opacity=1,function(c){return u.r=n(c),u.g=a(c),u.b=o(c),u+""}}}var My=Ns(Ts),ky=Ns(Cs);g();g();function Ds(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),a;return function(o){for(a=0;a<r;++a)n[a]=e[a]*(1-o)+t[a]*o;return n}}function Fs(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ls(e,t){var r=t?t.length:0,n=e?Math.min(r,e.length):0,a=new Array(n),o=new Array(r),s;for(s=0;s<n;++s)a[s]=bt(e[s],t[s]);for(;s<r;++s)o[s]=t[s];return function(u){for(s=0;s<n;++s)o[s]=a[s](u);return o}}g();function Os(e,t){var r=new Date;return e=+e,t=+t,function(n){return r.setTime(e*(1-n)+t*n),r}}g();function rt(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}g();function Rs(e,t){var r={},n={},a;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(a in t)a in e?r[a]=bt(e[a],t[a]):n[a]=t[a];return function(o){for(a in r)n[a]=r[a](o);return n}}g();var Ha=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Wa=new RegExp(Ha.source,"g");function tm(e){return function(){return e}}function rm(e){return function(t){return e(t)+""}}function Bs(e,t){var r=Ha.lastIndex=Wa.lastIndex=0,n,a,o,s=-1,u=[],c=[];for(e=e+"",t=t+"";(n=Ha.exec(e))&&(a=Wa.exec(t));)(o=a.index)>r&&(o=t.slice(r,o),u[s]?u[s]+=o:u[++s]=o),(n=n[0])===(a=a[0])?u[s]?u[s]+=a:u[++s]=a:(u[++s]=null,c.push({i:s,x:rt(n,a)})),r=Wa.lastIndex;return r<t.length&&(o=t.slice(r),u[s]?u[s]+=o:u[++s]=o),u.length<2?c[0]?rm(c[0].x):tm(t):(t=c.length,function(l){for(var m=0,d;m<t;++m)u[(d=c[m]).i]=d.x(l);return u.join("")})}function bt(e,t){var r=typeof t,n;return t==null||r==="boolean"?xr(t):(r==="number"?rt:r==="string"?(n=tt(t))?(t=n,$a):Bs:t instanceof tt?$a:t instanceof Date?Os:Fs(t)?Ds:Array.isArray(t)?Ls:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Rs:rt)(e,t)}g();function Ya(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}g();function Xa(e){return function(){return e}}g();function Za(e){return+e}var Is=[0,1];function Gt(e){return e}function qa(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:Xa(isNaN(t)?NaN:.5)}function nm(e,t){var r;return e>t&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function am(e,t,r){var n=e[0],a=e[1],o=t[0],s=t[1];return a<n?(n=qa(a,n),o=r(s,o)):(n=qa(n,a),o=r(o,s)),function(u){return o(n(u))}}function om(e,t,r){var n=Math.min(e.length,t.length)-1,a=new Array(n),o=new Array(n),s=-1;for(e[n]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++s<n;)a[s]=qa(e[s],e[s+1]),o[s]=r(t[s],t[s+1]);return function(u){var c=Ga(e,u,1,n)-1;return o[c](a[c](u))}}function un(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function im(){var e=Is,t=Is,r=bt,n,a,o,s=Gt,u,c,l;function m(){var p=Math.min(e.length,t.length);return s!==Gt&&(s=nm(e[0],e[p-1])),u=p>2?om:am,c=l=null,d}function d(p){return p==null||isNaN(p=+p)?o:(c||(c=u(e.map(n),t,r)))(n(s(p)))}return d.invert=function(p){return s(a((l||(l=u(t,e.map(n),rt)))(p)))},d.domain=function(p){return arguments.length?(e=Array.from(p,Za),m()):e.slice()},d.range=function(p){return arguments.length?(t=Array.from(p),m()):t.slice()},d.rangeRound=function(p){return t=Array.from(p),r=Ya,m()},d.clamp=function(p){return arguments.length?(s=p?!0:Gt,m()):s!==Gt},d.interpolate=function(p){return arguments.length?(r=p,m()):r},d.unknown=function(p){return arguments.length?(o=p,d):o},function(p,h){return n=p,a=h,m()}}function yr(){return im()(Gt,Gt)}g();function Ka(e,t,r,n){var a=Ut(e,t,r),o;switch(n=Qe(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(o=Ia(a,s))&&(n.precision=o),qr(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=Ua(a,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=Ba(a))&&(n.precision=o-(n.type==="%")*2);break}}return Bt(n)}function sm(e){var t=e.domain;return e.ticks=function(r){var n=t();return Jr(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var a=t();return Ka(a[0],a[a.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),a=0,o=n.length-1,s=n[a],u=n[o],c,l,m=10;for(u<s&&(l=s,s=u,u=l,l=a,a=o,o=l);m-- >0;){if(l=pr(s,u,r),l===c)return n[a]=s,n[o]=u,t(n);if(l>0)s=Math.floor(s/l)*l,u=Math.ceil(u/l)*l;else if(l<0)s=Math.ceil(s*l)/l,u=Math.floor(u*l)/l;else break;c=l}return e},e}function zt(){var e=yr();return e.copy=function(){return un(e,zt())},et.apply(e,arguments),sm(e)}g();function Ja(e,t){e=e.slice();var r=0,n=e.length-1,a=e[r],o=e[n],s;return o<a&&(s=r,r=n,n=s,s=a,a=o,o=s),e[r]=t.floor(a),e[n]=t.ceil(o),e}g();g();g();var Qa=new Date,eo=new Date;function le(e,t,r,n){function a(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return a.floor=o=>(e(o=new Date(+o)),o),a.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),a.round=o=>{let s=a(o),u=a.ceil(o);return o-s<u-o?s:u},a.offset=(o,s)=>(t(o=new Date(+o),s==null?1:Math.floor(s)),o),a.range=(o,s,u)=>{let c=[];if(o=a.ceil(o),u=u==null?1:Math.floor(u),!(o<s)||!(u>0))return c;let l;do c.push(l=new Date(+o)),t(o,u),e(o);while(l<o&&o<s);return c},a.filter=o=>le(s=>{if(s>=s)for(;e(s),!o(s);)s.setTime(s-1)},(s,u)=>{if(s>=s)if(u<0)for(;++u<=0;)for(;t(s,-1),!o(s););else for(;--u>=0;)for(;t(s,1),!o(s););}),r&&(a.count=(o,s)=>(Qa.setTime(+o),eo.setTime(+s),e(Qa),e(eo),Math.floor(r(Qa,eo))),a.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?a.filter(n?s=>n(s)%o===0:s=>a.count(0,s)%o===0):a)),a}g();var vr=le(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);vr.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?le(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):vr);var F1=vr.range;g();var je=le(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),Us=je.range;g();var ln=le(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),um=ln.range,Vt=le(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),lm=Vt.range;g();var cn=le(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),cm=cn.range,jt=le(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),dm=jt.range;g();var vt=le(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),mm=vt.range,wt=le(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),pm=wt.range,dn=le(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),fm=dn.range;g();function St(e){return le(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}var Mt=St(0),$t=St(1),_s=St(2),Gs=St(3),nt=St(4),zs=St(5),Vs=St(6),js=Mt.range,hm=$t.range,gm=_s.range,bm=Gs.range,xm=nt.range,ym=zs.range,vm=Vs.range;function kt(e){return le(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/6048e5)}var Xe=kt(0),Wt=kt(1),$s=kt(2),Ws=kt(3),at=kt(4),Hs=kt(5),Ys=kt(6),Xs=Xe.range,wm=Wt.range,Sm=$s.range,Mm=Ws.range,km=at.range,Pm=Hs.range,Tm=Ys.range;g();var mn=le(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),Cm=mn.range,Ht=le(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),Am=Ht.range;g();var Ee=le(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Ee.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:le(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});var Nm=Ee.range,Be=le(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Be.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:le(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});var Dm=Be.range;g();function qs(e,t,r,n,a,o){let s=[[je,1,1e3],[je,5,5*1e3],[je,15,15*1e3],[je,30,30*1e3],[o,1,6e4],[o,5,5*6e4],[o,15,15*6e4],[o,30,30*6e4],[a,1,36e5],[a,3,3*36e5],[a,6,6*36e5],[a,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function u(l,m,d){let p=m<l;p&&([l,m]=[m,l]);let h=d&&typeof d.range=="function"?d:c(l,m,d),b=h?h.range(l,+m+1):[];return p?b.reverse():b}function c(l,m,d){let p=Math.abs(m-l)/d,h=ft(([,,x])=>x).right(s,p);if(h===s.length)return e.every(Ut(l/31536e6,m/31536e6,d));if(h===0)return vr.every(Math.max(Ut(l,m,d),1));let[b,f]=s[p/s[h-1][2]<s[h][2]/p?h-1:h];return b.every(f)}return[u,c]}var[to,ro]=qs(Be,Ht,Xe,dn,jt,Vt),[Lm,Om]=qs(Ee,mn,Mt,vt,cn,ln);g();g();g();function no(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function ao(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Sr(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function oo(e){var t=e.dateTime,r=e.date,n=e.time,a=e.periods,o=e.days,s=e.shortDays,u=e.months,c=e.shortMonths,l=Mr(a),m=kr(a),d=Mr(o),p=kr(o),h=Mr(s),b=kr(s),f=Mr(u),x=kr(u),y=Mr(c),v=kr(c),w={a:_,A:E,b:W,B:re,c:null,d:ru,e:ru,f:rp,g:mp,G:fp,H:Qm,I:ep,j:tp,L:su,m:np,M:ap,p:de,q:ae,Q:ou,s:iu,S:op,u:ip,U:sp,V:up,w:lp,W:cp,x:null,X:null,y:dp,Y:pp,Z:hp,"%":au},M={a:L,A:B,b:z,B:K,c:null,d:nu,e:nu,f:yp,g:Np,G:Fp,H:gp,I:bp,j:xp,L:lu,m:vp,M:wp,p:Y,q:Q,Q:ou,s:iu,S:Sp,u:Mp,U:kp,V:Pp,w:Tp,W:Cp,x:null,X:null,y:Ap,Y:Dp,Z:Lp,"%":au},N={a:q,A:te,b:R,B:T,c:P,d:eu,e:eu,f:Zm,g:Qs,G:Js,H:tu,I:tu,j:Wm,L:Xm,m:$m,M:Hm,p:V,q:jm,Q:Km,s:Jm,S:Ym,u:Em,U:_m,V:Gm,w:Um,W:zm,x:$,X:H,y:Qs,Y:Js,Z:Vm,"%":qm};w.x=k(r,w),w.X=k(n,w),w.c=k(t,w),M.x=k(r,M),M.X=k(n,M),M.c=k(t,M);function k(D,O){return function(Z){var A=[],be=-1,ue=0,Te=D.length,Ce,We,Fr;for(Z instanceof Date||(Z=new Date(+Z));++be<Te;)D.charCodeAt(be)===37&&(A.push(D.slice(ue,be)),(We=Ks[Ce=D.charAt(++be)])!=null?Ce=D.charAt(++be):We=Ce==="e"?" ":"0",(Fr=O[Ce])&&(Ce=Fr(Z,We)),A.push(Ce),ue=be+1);return A.push(D.slice(ue,be)),A.join("")}}function F(D,O){return function(Z){var A=Sr(1900,void 0,1),be=U(A,D,Z+="",0),ue,Te;if(be!=Z.length)return null;if("Q"in A)return new Date(A.Q);if("s"in A)return new Date(A.s*1e3+("L"in A?A.L:0));if(O&&!("Z"in A)&&(A.Z=0),"p"in A&&(A.H=A.H%12+A.p*12),A.m===void 0&&(A.m="q"in A?A.q:0),"V"in A){if(A.V<1||A.V>53)return null;"w"in A||(A.w=1),"Z"in A?(ue=ao(Sr(A.y,0,1)),Te=ue.getUTCDay(),ue=Te>4||Te===0?Wt.ceil(ue):Wt(ue),ue=wt.offset(ue,(A.V-1)*7),A.y=ue.getUTCFullYear(),A.m=ue.getUTCMonth(),A.d=ue.getUTCDate()+(A.w+6)%7):(ue=no(Sr(A.y,0,1)),Te=ue.getDay(),ue=Te>4||Te===0?$t.ceil(ue):$t(ue),ue=vt.offset(ue,(A.V-1)*7),A.y=ue.getFullYear(),A.m=ue.getMonth(),A.d=ue.getDate()+(A.w+6)%7)}else("W"in A||"U"in A)&&("w"in A||(A.w="u"in A?A.u%7:"W"in A?1:0),Te="Z"in A?ao(Sr(A.y,0,1)).getUTCDay():no(Sr(A.y,0,1)).getDay(),A.m=0,A.d="W"in A?(A.w+6)%7+A.W*7-(Te+5)%7:A.w+A.U*7-(Te+6)%7);return"Z"in A?(A.H+=A.Z/100|0,A.M+=A.Z%100,ao(A)):no(A)}}function U(D,O,Z,A){for(var be=0,ue=O.length,Te=Z.length,Ce,We;be<ue;){if(A>=Te)return-1;if(Ce=O.charCodeAt(be++),Ce===37){if(Ce=O.charAt(be++),We=N[Ce in Ks?O.charAt(be++):Ce],!We||(A=We(D,Z,A))<0)return-1}else if(Ce!=Z.charCodeAt(A++))return-1}return A}function V(D,O,Z){var A=l.exec(O.slice(Z));return A?(D.p=m.get(A[0].toLowerCase()),Z+A[0].length):-1}function q(D,O,Z){var A=h.exec(O.slice(Z));return A?(D.w=b.get(A[0].toLowerCase()),Z+A[0].length):-1}function te(D,O,Z){var A=d.exec(O.slice(Z));return A?(D.w=p.get(A[0].toLowerCase()),Z+A[0].length):-1}function R(D,O,Z){var A=y.exec(O.slice(Z));return A?(D.m=v.get(A[0].toLowerCase()),Z+A[0].length):-1}function T(D,O,Z){var A=f.exec(O.slice(Z));return A?(D.m=x.get(A[0].toLowerCase()),Z+A[0].length):-1}function P(D,O,Z){return U(D,t,O,Z)}function $(D,O,Z){return U(D,r,O,Z)}function H(D,O,Z){return U(D,n,O,Z)}function _(D){return s[D.getDay()]}function E(D){return o[D.getDay()]}function W(D){return c[D.getMonth()]}function re(D){return u[D.getMonth()]}function de(D){return a[+(D.getHours()>=12)]}function ae(D){return 1+~~(D.getMonth()/3)}function L(D){return s[D.getUTCDay()]}function B(D){return o[D.getUTCDay()]}function z(D){return c[D.getUTCMonth()]}function K(D){return u[D.getUTCMonth()]}function Y(D){return a[+(D.getUTCHours()>=12)]}function Q(D){return 1+~~(D.getUTCMonth()/3)}return{format:function(D){var O=k(D+="",w);return O.toString=function(){return D},O},parse:function(D){var O=F(D+="",!1);return O.toString=function(){return D},O},utcFormat:function(D){var O=k(D+="",M);return O.toString=function(){return D},O},utcParse:function(D){var O=F(D+="",!0);return O.toString=function(){return D},O}}}var Ks={"-":"",_:" ",0:"0"},ye=/^\s*\d+/,Rm=/^%/,Bm=/[\\^$*+?|[\]().{}]/g;function ie(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",o=a.length;return n+(o<r?new Array(r-o+1).join(t)+a:a)}function Im(e){return e.replace(Bm,"\\$&")}function Mr(e){return new RegExp("^(?:"+e.map(Im).join("|")+")","i")}function kr(e){return new Map(e.map((t,r)=>[t.toLowerCase(),r]))}function Um(e,t,r){var n=ye.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function Em(e,t,r){var n=ye.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function _m(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function Gm(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function zm(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function Js(e,t,r){var n=ye.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function Qs(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function Vm(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function jm(e,t,r){var n=ye.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function $m(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function eu(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function Wm(e,t,r){var n=ye.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function tu(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function Hm(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function Ym(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function Xm(e,t,r){var n=ye.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function Zm(e,t,r){var n=ye.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function qm(e,t,r){var n=Rm.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function Km(e,t,r){var n=ye.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function Jm(e,t,r){var n=ye.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function ru(e,t){return ie(e.getDate(),t,2)}function Qm(e,t){return ie(e.getHours(),t,2)}function ep(e,t){return ie(e.getHours()%12||12,t,2)}function tp(e,t){return ie(1+vt.count(Ee(e),e),t,3)}function su(e,t){return ie(e.getMilliseconds(),t,3)}function rp(e,t){return su(e,t)+"000"}function np(e,t){return ie(e.getMonth()+1,t,2)}function ap(e,t){return ie(e.getMinutes(),t,2)}function op(e,t){return ie(e.getSeconds(),t,2)}function ip(e){var t=e.getDay();return t===0?7:t}function sp(e,t){return ie(Mt.count(Ee(e)-1,e),t,2)}function uu(e){var t=e.getDay();return t>=4||t===0?nt(e):nt.ceil(e)}function up(e,t){return e=uu(e),ie(nt.count(Ee(e),e)+(Ee(e).getDay()===4),t,2)}function lp(e){return e.getDay()}function cp(e,t){return ie($t.count(Ee(e)-1,e),t,2)}function dp(e,t){return ie(e.getFullYear()%100,t,2)}function mp(e,t){return e=uu(e),ie(e.getFullYear()%100,t,2)}function pp(e,t){return ie(e.getFullYear()%1e4,t,4)}function fp(e,t){var r=e.getDay();return e=r>=4||r===0?nt(e):nt.ceil(e),ie(e.getFullYear()%1e4,t,4)}function hp(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ie(t/60|0,"0",2)+ie(t%60,"0",2)}function nu(e,t){return ie(e.getUTCDate(),t,2)}function gp(e,t){return ie(e.getUTCHours(),t,2)}function bp(e,t){return ie(e.getUTCHours()%12||12,t,2)}function xp(e,t){return ie(1+wt.count(Be(e),e),t,3)}function lu(e,t){return ie(e.getUTCMilliseconds(),t,3)}function yp(e,t){return lu(e,t)+"000"}function vp(e,t){return ie(e.getUTCMonth()+1,t,2)}function wp(e,t){return ie(e.getUTCMinutes(),t,2)}function Sp(e,t){return ie(e.getUTCSeconds(),t,2)}function Mp(e){var t=e.getUTCDay();return t===0?7:t}function kp(e,t){return ie(Xe.count(Be(e)-1,e),t,2)}function cu(e){var t=e.getUTCDay();return t>=4||t===0?at(e):at.ceil(e)}function Pp(e,t){return e=cu(e),ie(at.count(Be(e),e)+(Be(e).getUTCDay()===4),t,2)}function Tp(e){return e.getUTCDay()}function Cp(e,t){return ie(Wt.count(Be(e)-1,e),t,2)}function Ap(e,t){return ie(e.getUTCFullYear()%100,t,2)}function Np(e,t){return e=cu(e),ie(e.getUTCFullYear()%100,t,2)}function Dp(e,t){return ie(e.getUTCFullYear()%1e4,t,4)}function Fp(e,t){var r=e.getUTCDay();return e=r>=4||r===0?at(e):at.ceil(e),ie(e.getUTCFullYear()%1e4,t,4)}function Lp(){return"+0000"}function au(){return"%"}function ou(e){return+e}function iu(e){return Math.floor(+e/1e3)}var Yt,du,mu,pn,pu;io({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function io(e){return Yt=oo(e),du=Yt.format,mu=Yt.parse,pn=Yt.utcFormat,pu=Yt.utcParse,Yt}function Op(e){return new Date(e)}function Rp(e){return e instanceof Date?+e:+new Date(+e)}function so(e,t,r,n,a,o,s,u,c,l){var m=yr(),d=m.invert,p=m.domain,h=l(".%L"),b=l(":%S"),f=l("%I:%M"),x=l("%I %p"),y=l("%a %d"),v=l("%b %d"),w=l("%B"),M=l("%Y");function N(k){return(c(k)<k?h:u(k)<k?b:s(k)<k?f:o(k)<k?x:n(k)<k?a(k)<k?y:v:r(k)<k?w:M)(k)}return m.invert=function(k){return new Date(d(k))},m.domain=function(k){return arguments.length?p(Array.from(k,Rp)):p().map(Op)},m.ticks=function(k){var F=p();return e(F[0],F[F.length-1],k??10)},m.tickFormat=function(k,F){return F==null?N:l(F)},m.nice=function(k){var F=p();return(!k||typeof k.range!="function")&&(k=t(F[0],F[F.length-1],k??10)),k?p(Ja(F,k)):m},m.copy=function(){return un(m,so(e,t,r,n,a,o,s,u,c,l))},m}g();function fn(){return et.apply(so(to,ro,Be,Ht,Xe,wt,jt,Vt,je,pn).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}g();g();g();function J(e){return function(){return e}}g();var uo=Math.abs,Me=Math.atan2,ot=Math.cos,fu=Math.max,hn=Math.min,_e=Math.sin,Pt=Math.sqrt,Oe=1e-12,Xt=Math.PI,Pr=Xt/2,Zt=2*Xt;function hu(e){return e>1?0:e<-1?Xt:Math.acos(e)}function lo(e){return e>=1?Pr:e<=-1?-Pr:Math.asin(e)}g();g();g();var co=Math.PI,mo=2*co,Tt=1e-6,Bp=mo-Tt;function gu(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=arguments[t]+e[t]}function Ip(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return gu;let r=10**t;return function(n){this._+=n[0];for(let a=1,o=n.length;a<o;++a)this._+=Math.round(arguments[a]*r)/r+n[a]}}var Ct=class{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?gu:Ip(t)}moveTo(t,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,r){this._append`L${this._x1=+t},${this._y1=+r}`}quadraticCurveTo(t,r,n,a){this._append`Q${+t},${+r},${this._x1=+n},${this._y1=+a}`}bezierCurveTo(t,r,n,a,o,s){this._append`C${+t},${+r},${+n},${+a},${this._x1=+o},${this._y1=+s}`}arcTo(t,r,n,a,o){if(t=+t,r=+r,n=+n,a=+a,o=+o,o<0)throw new Error(`negative radius: ${o}`);let s=this._x1,u=this._y1,c=n-t,l=a-r,m=s-t,d=u-r,p=m*m+d*d;if(this._x1===null)this._append`M${this._x1=t},${this._y1=r}`;else if(p>Tt)if(!(Math.abs(d*c-l*m)>Tt)||!o)this._append`L${this._x1=t},${this._y1=r}`;else{let h=n-s,b=a-u,f=c*c+l*l,x=h*h+b*b,y=Math.sqrt(f),v=Math.sqrt(p),w=o*Math.tan((co-Math.acos((f+p-x)/(2*y*v)))/2),M=w/v,N=w/y;Math.abs(M-1)>Tt&&this._append`L${t+M*m},${r+M*d}`,this._append`A${o},${o},0,0,${+(d*h>m*b)},${this._x1=t+N*c},${this._y1=r+N*l}`}}arc(t,r,n,a,o,s){if(t=+t,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(a),c=n*Math.sin(a),l=t+u,m=r+c,d=1^s,p=s?a-o:o-a;this._x1===null?this._append`M${l},${m}`:(Math.abs(this._x1-l)>Tt||Math.abs(this._y1-m)>Tt)&&this._append`L${l},${m}`,n&&(p<0&&(p=p%mo+mo),p>Bp?this._append`A${n},${n},0,1,${d},${t-u},${r-c}A${n},${n},0,1,${d},${this._x1=l},${this._y1=m}`:p>Tt&&this._append`A${n},${n},0,${+(p>=co)},${d},${this._x1=t+n*Math.cos(o)},${this._y1=r+n*Math.sin(o)}`)}rect(t,r,n,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+a}h${-n}Z`}toString(){return this._}};function bu(){return new Ct}bu.prototype=Ct.prototype;function qt(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new Ct(t)}function Up(e){return e.innerRadius}function Ep(e){return e.outerRadius}function _p(e){return e.startAngle}function Gp(e){return e.endAngle}function zp(e){return e&&e.padAngle}function Vp(e,t,r,n,a,o,s,u){var c=r-e,l=n-t,m=s-a,d=u-o,p=d*c-m*l;if(!(p*p<Oe))return p=(m*(t-o)-d*(e-a))/p,[e+p*c,t+p*l]}function gn(e,t,r,n,a,o,s){var u=e-r,c=t-n,l=(s?o:-o)/Pt(u*u+c*c),m=l*c,d=-l*u,p=e+m,h=t+d,b=r+m,f=n+d,x=(p+b)/2,y=(h+f)/2,v=b-p,w=f-h,M=v*v+w*w,N=a-o,k=p*f-b*h,F=(w<0?-1:1)*Pt(fu(0,N*N*M-k*k)),U=(k*w-v*F)/M,V=(-k*v-w*F)/M,q=(k*w+v*F)/M,te=(-k*v+w*F)/M,R=U-x,T=V-y,P=q-x,$=te-y;return R*R+T*T>P*P+$*$&&(U=q,V=te),{cx:U,cy:V,x01:-m,y01:-d,x11:U*(a/N-1),y11:V*(a/N-1)}}function bn(){var e=Up,t=Ep,r=J(0),n=null,a=_p,o=Gp,s=zp,u=null,c=qt(l);function l(){var m,d,p=+e.apply(this,arguments),h=+t.apply(this,arguments),b=a.apply(this,arguments)-Pr,f=o.apply(this,arguments)-Pr,x=uo(f-b),y=f>b;if(u||(u=m=c()),h<p&&(d=h,h=p,p=d),!(h>Oe))u.moveTo(0,0);else if(x>Zt-Oe)u.moveTo(h*ot(b),h*_e(b)),u.arc(0,0,h,b,f,!y),p>Oe&&(u.moveTo(p*ot(f),p*_e(f)),u.arc(0,0,p,f,b,y));else{var v=b,w=f,M=b,N=f,k=x,F=x,U=s.apply(this,arguments)/2,V=U>Oe&&(n?+n.apply(this,arguments):Pt(p*p+h*h)),q=hn(uo(h-p)/2,+r.apply(this,arguments)),te=q,R=q,T,P;if(V>Oe){var $=lo(V/p*_e(U)),H=lo(V/h*_e(U));(k-=$*2)>Oe?($*=y?1:-1,M+=$,N-=$):(k=0,M=N=(b+f)/2),(F-=H*2)>Oe?(H*=y?1:-1,v+=H,w-=H):(F=0,v=w=(b+f)/2)}var _=h*ot(v),E=h*_e(v),W=p*ot(N),re=p*_e(N);if(q>Oe){var de=h*ot(w),ae=h*_e(w),L=p*ot(M),B=p*_e(M),z;if(x<Xt)if(z=Vp(_,E,L,B,de,ae,W,re)){var K=_-z[0],Y=E-z[1],Q=de-z[0],D=ae-z[1],O=1/_e(hu((K*Q+Y*D)/(Pt(K*K+Y*Y)*Pt(Q*Q+D*D)))/2),Z=Pt(z[0]*z[0]+z[1]*z[1]);te=hn(q,(p-Z)/(O-1)),R=hn(q,(h-Z)/(O+1))}else te=R=0}F>Oe?R>Oe?(T=gn(L,B,_,E,h,R,y),P=gn(de,ae,W,re,h,R,y),u.moveTo(T.cx+T.x01,T.cy+T.y01),R<q?u.arc(T.cx,T.cy,R,Me(T.y01,T.x01),Me(P.y01,P.x01),!y):(u.arc(T.cx,T.cy,R,Me(T.y01,T.x01),Me(T.y11,T.x11),!y),u.arc(0,0,h,Me(T.cy+T.y11,T.cx+T.x11),Me(P.cy+P.y11,P.cx+P.x11),!y),u.arc(P.cx,P.cy,R,Me(P.y11,P.x11),Me(P.y01,P.x01),!y))):(u.moveTo(_,E),u.arc(0,0,h,v,w,!y)):u.moveTo(_,E),!(p>Oe)||!(k>Oe)?u.lineTo(W,re):te>Oe?(T=gn(W,re,de,ae,p,-te,y),P=gn(_,E,L,B,p,-te,y),u.lineTo(T.cx+T.x01,T.cy+T.y01),te<q?u.arc(T.cx,T.cy,te,Me(T.y01,T.x01),Me(P.y01,P.x01),!y):(u.arc(T.cx,T.cy,te,Me(T.y01,T.x01),Me(T.y11,T.x11),!y),u.arc(0,0,p,Me(T.cy+T.y11,T.cx+T.x11),Me(P.cy+P.y11,P.cx+P.x11),y),u.arc(P.cx,P.cy,te,Me(P.y11,P.x11),Me(P.y01,P.x01),!y))):u.arc(0,0,p,N,M,y)}if(u.closePath(),m)return u=null,m+""||null}return l.centroid=function(){var m=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,d=(+a.apply(this,arguments)+ +o.apply(this,arguments))/2-Xt/2;return[ot(d)*m,_e(d)*m]},l.innerRadius=function(m){return arguments.length?(e=typeof m=="function"?m:J(+m),l):e},l.outerRadius=function(m){return arguments.length?(t=typeof m=="function"?m:J(+m),l):t},l.cornerRadius=function(m){return arguments.length?(r=typeof m=="function"?m:J(+m),l):r},l.padRadius=function(m){return arguments.length?(n=m==null?null:typeof m=="function"?m:J(+m),l):n},l.startAngle=function(m){return arguments.length?(a=typeof m=="function"?m:J(+m),l):a},l.endAngle=function(m){return arguments.length?(o=typeof m=="function"?m:J(+m),l):o},l.padAngle=function(m){return arguments.length?(s=typeof m=="function"?m:J(+m),l):s},l.context=function(m){return arguments.length?(u=m??null,l):u},l}g();g();var dw=Array.prototype.slice;function it(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}g();function xu(e){this._context=e}xu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function At(e){return new xu(e)}g();g();function xn(e){return e[0]}function yn(e){return e[1]}function Tr(e,t){var r=J(!0),n=null,a=At,o=null,s=qt(u);e=typeof e=="function"?e:e===void 0?xn:J(e),t=typeof t=="function"?t:t===void 0?yn:J(t);function u(c){var l,m=(c=it(c)).length,d,p=!1,h;for(n==null&&(o=a(h=s())),l=0;l<=m;++l)!(l<m&&r(d=c[l],l,c))===p&&((p=!p)?o.lineStart():o.lineEnd()),p&&o.point(+e(d,l,c),+t(d,l,c));if(h)return o=null,h+""||null}return u.x=function(c){return arguments.length?(e=typeof c=="function"?c:J(+c),u):e},u.y=function(c){return arguments.length?(t=typeof c=="function"?c:J(+c),u):t},u.defined=function(c){return arguments.length?(r=typeof c=="function"?c:J(!!c),u):r},u.curve=function(c){return arguments.length?(a=c,n!=null&&(o=a(n)),u):a},u.context=function(c){return arguments.length?(c==null?n=o=null:o=a(n=c),u):n},u}function po(e,t,r){var n=null,a=J(!0),o=null,s=At,u=null,c=qt(l);e=typeof e=="function"?e:e===void 0?xn:J(+e),t=typeof t=="function"?t:t===void 0?J(0):J(+t),r=typeof r=="function"?r:r===void 0?yn:J(+r);function l(d){var p,h,b,f=(d=it(d)).length,x,y=!1,v,w=new Array(f),M=new Array(f);for(o==null&&(u=s(v=c())),p=0;p<=f;++p){if(!(p<f&&a(x=d[p],p,d))===y)if(y=!y)h=p,u.areaStart(),u.lineStart();else{for(u.lineEnd(),u.lineStart(),b=p-1;b>=h;--b)u.point(w[b],M[b]);u.lineEnd(),u.areaEnd()}y&&(w[p]=+e(x,p,d),M[p]=+t(x,p,d),u.point(n?+n(x,p,d):w[p],r?+r(x,p,d):M[p]))}if(v)return u=null,v+""||null}function m(){return Tr().defined(a).curve(s).context(o)}return l.x=function(d){return arguments.length?(e=typeof d=="function"?d:J(+d),n=null,l):e},l.x0=function(d){return arguments.length?(e=typeof d=="function"?d:J(+d),l):e},l.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:J(+d),l):n},l.y=function(d){return arguments.length?(t=typeof d=="function"?d:J(+d),r=null,l):t},l.y0=function(d){return arguments.length?(t=typeof d=="function"?d:J(+d),l):t},l.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:J(+d),l):r},l.lineX0=l.lineY0=function(){return m().x(e).y(t)},l.lineY1=function(){return m().x(e).y(r)},l.lineX1=function(){return m().x(n).y(t)},l.defined=function(d){return arguments.length?(a=typeof d=="function"?d:J(!!d),l):a},l.curve=function(d){return arguments.length?(s=d,o!=null&&(u=s(o)),l):s},l.context=function(d){return arguments.length?(d==null?o=u=null:u=s(o=d),l):o},l}g();g();function yu(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}g();function vu(e){return e}function fo(){var e=vu,t=yu,r=null,n=J(0),a=J(Zt),o=J(0);function s(u){var c,l=(u=it(u)).length,m,d,p=0,h=new Array(l),b=new Array(l),f=+n.apply(this,arguments),x=Math.min(Zt,Math.max(-Zt,a.apply(this,arguments)-f)),y,v=Math.min(Math.abs(x)/l,o.apply(this,arguments)),w=v*(x<0?-1:1),M;for(c=0;c<l;++c)(M=b[h[c]=c]=+e(u[c],c,u))>0&&(p+=M);for(t!=null?h.sort(function(N,k){return t(b[N],b[k])}):r!=null&&h.sort(function(N,k){return r(u[N],u[k])}),c=0,d=p?(x-l*w)/p:0;c<l;++c,f=y)m=h[c],M=b[m],y=f+(M>0?M*d:0)+w,b[m]={data:u[m],index:c,value:M,startAngle:f,endAngle:y,padAngle:v};return b}return s.value=function(u){return arguments.length?(e=typeof u=="function"?u:J(+u),s):e},s.sortValues=function(u){return arguments.length?(t=u,r=null,s):t},s.sort=function(u){return arguments.length?(r=u,t=null,s):r},s.startAngle=function(u){return arguments.length?(n=typeof u=="function"?u:J(+u),s):n},s.endAngle=function(u){return arguments.length?(a=typeof u=="function"?u:J(+u),s):a},s.padAngle=function(u){return arguments.length?(o=typeof u=="function"?u:J(+u),s):o},s}g();function wu(e){return e<0?-1:1}function Su(e,t,r){var n=e._x1-e._x0,a=t-e._x1,o=(e._y1-e._y0)/(n||a<0&&-0),s=(r-e._y1)/(a||n<0&&-0),u=(o*a+s*n)/(n+a);return(wu(o)+wu(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(u))||0}function Mu(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function ho(e,t,r){var n=e._x0,a=e._y0,o=e._x1,s=e._y1,u=(o-n)/3;e._context.bezierCurveTo(n+u,a+u*t,o-u,s-u*r,o,s)}function vn(e){this._context=e}vn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:ho(this,this._t0,Mu(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,ho(this,Mu(this,r=Su(this,e,t)),r);break;default:ho(this,this._t0,r=Su(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function jp(e){this._context=new ku(e)}(jp.prototype=Object.create(vn.prototype)).point=function(e,t){vn.prototype.point.call(this,t,e)};function ku(e){this._context=e}ku.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,a,o){this._context.bezierCurveTo(t,e,n,r,o,a)}};function go(e){return new vn(e)}g();function Pu(e,t){this._context=e,this._t=t}Pu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function bo(e){return new Pu(e,1)}g();g();function xo(e,t){if((s=e.length)>1)for(var r=1,n,a,o=e[t[0]],s,u=o.length;r<s;++r)for(a=o,o=e[t[r]],n=0;n<u;++n)o[n][1]+=o[n][0]=isNaN(a[n][1])?a[n][0]:a[n][1]}g();function yo(e){for(var t=e.length,r=new Array(t);--t>=0;)r[t]=t;return r}function $p(e,t){return e[t]}function Wp(e){let t=[];return t.key=e,t}function vo(){var e=J([]),t=yo,r=xo,n=$p;function a(o){var s=Array.from(e.apply(this,arguments),Wp),u,c=s.length,l=-1,m;for(let d of o)for(u=0,++l;u<c;++u)(s[u][l]=[0,+n(d,s[u].key,l,o)]).data=d;for(u=0,m=it(t(s));u<c;++u)s[m[u]].index=u;return r(s,m),s}return a.keys=function(o){return arguments.length?(e=typeof o=="function"?o:J(Array.from(o)),a):e},a.value=function(o){return arguments.length?(n=typeof o=="function"?o:J(+o),a):n},a.order=function(o){return arguments.length?(t=o==null?yo:typeof o=="function"?o:J(Array.from(o)),a):t},a.offset=function(o){return arguments.length?(r=o??xo,a):r},a}g();function wo(e,t){if((c=e.length)>0)for(var r,n=0,a,o,s,u,c,l=e[t[0]].length;n<l;++n)for(s=u=0,r=0;r<c;++r)(o=(a=e[t[r]][n])[1]-a[0])>0?(a[0]=s,a[1]=s+=o):o<0?(a[1]=u,a[0]=u+=o):(a[0]=0,a[1]=o)}var Nu=["#6366f1","#22d3ee","#f59e0b","#ec4899","#10b981","#8b5cf6","#f97316","#3b82f6"],Hp=e=>typeof e=="object"&&e!==null&&"open"in e&&"close"in e,Yp=e=>typeof e=="object"&&e!==null&&"label"in e&&"value"in e;function Xp(e){return e==="linear"?At:e==="step"?bo:go}function So(e,t){let r=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.trim());if(!r)return e;let n=r[1];n.length===3&&(n=[...n].map(o=>o+o).join(""));let a=parseInt(n,16);return`rgba(${a>>16&255}, ${a>>8&255}, ${a&255}, ${t})`}function Tu(e){if(!e?.format)return null;if(typeof e.format=="function")return e.format;let t=Bt(e.format);return r=>typeof r=="number"?t(r):String(r)}function ee(e){return Math.round(e*100)/100}function Kt(e,t=0,r=e.duration){return Se.create().fromTo("opacity",0,1,{start:e.start+t,end:e.start+t+Math.max(1,r),ease:"power2.out"})}function Du(e,t,r){let n=t.id??se("chart"),a=e.width??(typeof t.width=="number"?t.width:960),o=e.height??(typeof t.height=="number"?t.height:540),s=e.type??"line",u=e.fontSize??18,c=e.fontFamily??r,l=e.textColor??"#94a3b8",m=e.textColor??"#e2e8f0",d=e.gridColor??"rgba(148, 163, 184, 0.18)",p=e.colors?.length?e.colors:Nu,h=e.cornerRadius??4,b=e.animate===!1?void 0:e.animate??{},f={enabled:b!==void 0,start:b?.start??0,duration:b?.duration??30,stagger:b?.stagger??-1,ease:b?.ease??"power3.out"},x=[],y=(T,P,$,H={},_="")=>{let E=I.text(T,{id:`${n}-label-${_||x.length}`,position:"absolute",x:ee(P.x),y:ee(P.y),width:ee(P.width),height:ee(P.height),fontFamily:c,fontSize:u,fontWeight:H.weight??500,fill:H.color??l,align:$,verticalAlign:"middle"});f.enabled&&E.animate(Kt(f,H.delay??0)),x.push(E)},v=Math.ceil(u*1.4);s==="pie"||s==="donut"?w():N();for(let T of x)Fu(T);return I.box({background:e.background??"transparent",...t,id:n,width:a,height:o,children:x});function w(){let T=M(),P=T.reduce((K,Y)=>K+Math.max(0,Y.value),0),$=e.legend??!0,H=F({top:16,right:$?V(T.map(K=>K.label)):16,bottom:16,left:16}),_=U(H),E=Math.max(1,Math.min(_.width,_.height)/2),W=E*(e.innerRadius??(s==="donut"?.6:0)),re=_.x+_.width/2,de=_.y+_.height/2,ae=4,L=fo().sort(null).value(K=>Math.max(0,K.value)).padAngle(T.length>1?.012:0)(T),B=bn().innerRadius(W).outerRadius(E).cornerRadius(Math.min(h,(E-W)/2)),z=k(L.length);L.forEach((K,Y)=>{let Q=B(K);if(!Q)return;let D=T[Y].color??p[Y%p.length],O=I.shape("path",{id:`${n}-slice-${Y}`,position:"absolute",x:ee(re-E-ae),y:ee(de-E-ae),width:ee(2*(E+ae)),height:ee(2*(E+ae)),d:Zp(Q,E+ae,E+ae),fillColor:D,anchorX:.5,anchorY:.5});if(f.enabled){let Z=f.start+Y*z;O.animate(Se.create().fromTo("opacity",0,1,{start:Z,end:Z+f.duration*.5}).fromTo("scale",.85,1,{start:Z,end:Z+f.duration,ease:f.ease}))}if(x.push(O),e.valueLabels&&P>0&&K.value>0){let[Z,A]=bn().innerRadius(W||E*.55).outerRadius(E).centroid(K),be=`${Math.round(K.value/P*100)}%`;y(be,{x:re+Z-60,y:de+A-v/2,width:120,height:v},"center",{delay:Y*z+f.duration*.5,color:"#ffffff",weight:700},`value-${Y}`)}}),$&&q(T.map((K,Y)=>({name:K.label,color:K.color??p[Y%p.length]})),{x:_.x+_.width+24,y:_.y,height:_.height})}function M(){return(e.data??e.series?.[0]?.data??[]).map((P,$)=>{if(Yp(P))return P;let H=typeof P=="number"?P:Array.isArray(P)?Number(P[1]):Number(P.y);return{label:e.categories?.[$]??(Array.isArray(P)?String(P[0]):typeof P=="object"&&P?String(P.x):`${$+1}`),value:H}})}function N(){let T=e.series?.length?[...e.series]:e.data?[{data:e.data}]:[];if(T.length===0)return;let P=C=>C.type??s??"line",$=(C,G)=>C.color??p[G%p.length],H=T.map(C=>C.data.map((G,ne)=>Hp(G)?{x:G.x,y:G.close}:typeof G=="number"?{x:e.categories?.[ne]??ne,y:G}:Array.isArray(G)?{x:G[0],y:Number(G[1])}:{x:G.x,y:Number(G.y)})),_=T.some(C=>P(C)==="bar"||P(C)==="candlestick"),E=H.flat().map(C=>C.x),W=_||E.some(C=>typeof C=="string")?"band":E.some(C=>C instanceof Date)?"time":"linear",re=C=>P(C)==="bar"||P(C)==="area",de=!!e.stacked,ae=W==="band"?[...new Set(E.map(String))]:[],L=new Map;if(de){let C=T.map((me,ve)=>ve).filter(me=>re(T[me])),G=ae.length?ae:[...new Set(E.map(me=>+me))].sort((me,ve)=>me-ve).map(String),ne=G.map(me=>{let ve={};for(let Ae of C){let Ne=H[Ae].find(xe=>String(W==="band"?xe.x:+xe.x)===me);ve[Ae]=Ne?.y??0}return ve});vo().keys(C.map(String)).offset(wo)(ne).forEach(me=>{let ve=Number(me.key);L.set(ve,H[ve].map(Ae=>{let Ne=G.indexOf(String(W==="band"?Ae.x:+Ae.x));return[me[Ne][0],me[Ne][1]]}))})}let B=[0];T.forEach((C,G)=>{let ne=L.get(G);if(P(C)==="candlestick")for(let ce of C.data)B.push(ce.high,ce.low);else if(ne)for(let[ce,me]of ne)B.push(ce,me);else for(let ce of H[G])B.push(ce.y)}),T.every(C=>P(C)==="candlestick"||P(C)==="scatter"||P(C)==="line")&&B.shift();let z=e.yAxis??{},K=e.xAxis??{},Y=z.ticks??5,Q=z.min??Math.min(...B),D=z.max??Math.max(...B);(!Number.isFinite(Q)||!Number.isFinite(D))&&([Q,D]=[0,1]),Q===D&&([Q,D]=[Q-1,D+1]);let O=zt().domain([Q,D]);(z.min===void 0||z.max===void 0)&&O.nice(Y);let Z=Tu(z)??(C=>O.tickFormat(Y)(C)),A=O.ticks(Y),be=T.map((C,G)=>({name:C.name??`Series ${G+1}`,color:$(C,G)})),ue=e.legend??T.length>1,Te=z.show!==!1,Ce=K.show!==!1,We=Te?Math.max(...A.map(C=>Z(C).length))*u*.7+20:0,Fr=F({top:(ue?v+20:0)+Math.ceil(v/2),right:20,bottom:Ce?v+14:12,left:Math.max(16,Math.ceil(We))}),oe=U(Fr),Fo=v+6,Lo=e.valueLabels?T.flatMap((C,G)=>P(C)==="bar"?H[G].map(ne=>ne.y):[]):[],el=Lo.some(C=>C>0)?Fo:0,tl=Lo.some(C=>C<0)?Fo:0;O.range([oe.height-tl,el]);let He;if(W==="band")He=fr().domain(ae).range([0,oe.width]).paddingInner(_?.28:0).paddingOuter(_?.14:.5);else if(W==="time"){let C=E.map(G=>+new Date(G));He=fn().domain([Math.min(...C),Math.max(...C)]).range([0,oe.width])}else{let C=E.map(Number);He=zt().domain([K.min??Math.min(...C),K.max??Math.max(...C)]).range([0,oe.width])}let Oo=C=>{if(W==="band"){let G=He;return(G(String(C))??0)+G.bandwidth()/2}return He(W==="time"?new Date(C):Number(C))},Ro=0;z.grid!==!1&&A.forEach((C,G)=>{let ne=I.box({id:`${n}-ygrid-${G}`,position:"absolute",x:oe.x,y:ee(oe.y+O(C)-.5),width:oe.width,height:1,background:d});f.enabled&&ne.animate(Kt(f,Ro,f.duration/2)),x.push(ne)}),Te&&A.forEach((C,G)=>{y(Z(C),{x:0,y:oe.y+O(C)-v/2,width:oe.x-12,height:v},"end",{},`y-${G}`)});let Jt=[],Lr=Tu(K);if(W==="band"){let C=He,G=Math.max(1,Math.ceil(ae.length/Math.max(1,Math.floor(oe.width/(u*4)))));ae.forEach((ne,ce)=>{ce%G===0&&Jt.push({pos:(C(ne)??0)+C.bandwidth()/2,text:Lr?Lr(ne):ne})})}else{let C=He,G=K.ticks??Math.max(2,Math.floor(oe.width/(u*6))),ne=C.tickFormat(G);for(let ce of C.ticks(G))Jt.push({pos:C(ce),text:Lr?Lr(W==="time"?new Date(ce):ce):ne(ce)})}if(K.grid&&Jt.forEach((C,G)=>{let ne=I.box({id:`${n}-xgrid-${G}`,position:"absolute",x:ee(oe.x+C.pos-.5),y:oe.y,width:1,height:oe.height,background:d});f.enabled&&ne.animate(Kt(f,Ro,f.duration/2)),x.push(ne)}),Ce){let C=Math.max(u*3,oe.width/Math.max(1,Jt.length));Jt.forEach((G,ne)=>{y(G.text,{x:oe.x+G.pos-C/2,y:oe.y+oe.height+10,width:C,height:v},"center",{},`x-${ne}`)})}let[rl,nl]=O.domain();if(rl<=0&&nl>=0&&_){let C=I.box({id:`${n}-zero`,position:"absolute",x:oe.x,y:ee(oe.y+O(0)-1),width:oe.width,height:2,background:So("#94a3b8",.45)});f.enabled&&C.animate(Kt(f,0,f.duration/2)),x.push(C)}let Or=T.map((C,G)=>G).filter(C=>P(T[C])==="bar"),al=[...Or,...T.map((C,G)=>G).filter(C=>P(T[C])==="candlestick"),...T.map((C,G)=>G).filter(C=>P(T[C])==="area"),...T.map((C,G)=>G).filter(C=>P(T[C])==="line"),...T.map((C,G)=>G).filter(C=>P(T[C])==="scatter")],qe=W==="band"?He:null,Bo=qe?k(ae.length):0,Io=C=>qe?ae.indexOf(String(C)):0;al.forEach((C,G)=>{let ne=T[C],ce=$(ne,C),me=P(ne),ve=H[C],Ae=L.get(C);if(me==="bar"&&qe){let Ne=de?1:Or.length,xe=de?0:Or.indexOf(C),De=qe.bandwidth()/Ne,pe=Ne>1?Math.min(4,De*.12):0;ve.forEach((Fe,Ge)=>{let[Ke,we]=Ae?Ae[Ge]:[0,Fe.y],ge=oe.y+O(Math.max(Ke,we)),Rr=oe.y+O(Math.min(Ke,we)),Le=Math.max(0,Rr-ge),Qt=oe.x+(qe(String(Fe.x))??0)+xe*De+pe/2,st=Fe.y>=0?"up":"down",Br=I.box({id:`${n}-bar-${C}-${Ge}`,position:"absolute",x:ee(Qt),y:ee(ge),width:ee(Math.max(1,De-pe)),height:ee(Le),background:ce,borderRadius:Math.min(h,(De-pe)/2,Le/2)}),Eo=Io(Fe.x)*Bo+(de?Or.indexOf(C)*f.duration*.6:0);if(f.enabled){let er=f.start+Eo,Ir=er+f.duration,_o=Se.create().fromTo("height",0,ee(Le),{start:er,end:Ir,ease:f.ease});st==="up"&&_o.fromTo("y",ee(ge+Le),ee(ge),{start:er,end:Ir,ease:f.ease}),Br.animate(_o)}if(x.push(Br),e.valueLabels){let er=Z(Fe.y),Ir=st==="up"?ge-v-4:ge+Le+4;y(er,{x:Qt-30,y:Ir,width:De-pe+60,height:v},"center",{delay:Eo+f.duration*.6,color:m,weight:600},`value-${C}-${Ge}`)}});return}if(me==="candlestick"&&qe){let Ne=e.upColor??"#22c55e",xe=e.downColor??"#ef4444",De=qe.bandwidth();ne.data.forEach((pe,Fe)=>{let Ge=pe.close>=pe.open?Ne:xe,Ke=oe.x+(qe(String(pe.x))??0)+De/2,we=Io(pe.x)*Bo,ge=[["wick",{x:Ke-Math.max(1,De*.06),y:oe.y+O(pe.high),width:Math.max(2,De*.12),height:Math.max(1,O(pe.low)-O(pe.high))}],["body",{x:Ke-De/2,y:oe.y+O(Math.max(pe.open,pe.close)),width:De,height:Math.max(2,Math.abs(O(pe.open)-O(pe.close)))}]];for(let[Rr,Le]of ge){let Qt=I.box({id:`${n}-candle-${C}-${Fe}-${Rr}`,position:"absolute",x:ee(Le.x),y:ee(Le.y),width:ee(Le.width),height:ee(Le.height),background:Ge,borderRadius:Rr==="body"?Math.min(h/2,Le.width/2):0});if(f.enabled){let st=f.start+we,Br=Le.y+Le.height/2;Qt.animate(Se.create().fromTo("height",0,ee(Le.height),{start:st,end:st+f.duration,ease:f.ease}).fromTo("y",ee(Br),ee(Le.y),{start:st,end:st+f.duration,ease:f.ease}))}x.push(Qt)}});return}if(me==="line"||me==="area"){let Ne=ne.strokeWidth??3,xe=Math.ceil(Ne*2+(ne.pointRadius??0)+2),De=ve.map((we,ge)=>({x:Oo(we.x)+xe,top:O(Ae?Ae[ge][1]:we.y)+xe,base:O(Ae?Ae[ge][0]:Math.max(O.domain()[0],Math.min(0,O.domain()[1])))+xe})),pe=Xp(ne.curve),Fe={x:oe.x-xe,y:oe.y-xe,width:oe.width+2*xe,height:oe.height+2*xe},Ge=G*(f.duration/3);if(me==="area"){let we=po().x(ge=>ge.x).y0(ge=>ge.base).y1(ge=>ge.top).curve(pe)(De);if(we){let ge=I.shape("path",{id:`${n}-area-${C}`,position:"absolute",...Cu(Fe),d:Au(we),fillType:"linear",fillColor:So(ce,.45),gradientEndColor:So(ce,.02),gradientAngle:90});f.enabled&&ge.animate(Kt(f,Ge+f.duration*.4,f.duration)),x.push(ge)}}let Ke=Tr().x(we=>we.x).y(we=>we.top).curve(pe)(De);if(Ke&&Ne>0){let we=I.shape("path",{id:`${n}-line-${C}`,position:"absolute",...Cu(Fe),d:Au(Ke),fillType:"none",strokeColor:ce,strokeWidth:Ne,strokeLineCap:"round",strokeLineJoin:"round"});f.enabled&&we.animate(Se.create().fromTo("trimEnd",0,1,{start:f.start+Ge,end:f.start+Ge+f.duration*1.5,ease:"power2.inOut"})),x.push(we)}(ne.pointRadius??0)>0&&Uo(C,ve,ce,ne.pointRadius??0,Ge+f.duration*.5,Ae);return}me==="scatter"&&Uo(C,ve,ce,ne.pointRadius??6,G*(f.duration/3),Ae)}),ue&&te(be);function Uo(C,G,ne,ce,me,ve){let Ae=k(G.length);G.forEach((Ne,xe)=>{let De=O(ve?ve[xe][1]:Ne.y),pe=I.shape("circle",{id:`${n}-point-${C}-${xe}`,position:"absolute",x:ee(oe.x+Oo(Ne.x)-ce),y:ee(oe.y+De-ce),width:ee(ce*2),height:ee(ce*2),fillColor:ne,anchorX:.5,anchorY:.5});if(f.enabled){let Fe=f.start+me+xe*Ae;pe.animate(Se.create().fromTo("scale",0,1,{start:Fe,end:Fe+f.duration*.6,ease:"back.out(2)"}).fromTo("opacity",0,1,{start:Fe,end:Fe+6}))}x.push(pe)})}}function k(T){return!f.enabled||T<=1?0:f.stagger>=0?f.stagger:Math.min(4,f.duration/T)}function F(T){let P=e.padding;return typeof P=="number"?{top:P,right:P,bottom:P,left:P}:{top:P?.top??T.top,right:P?.right??T.right,bottom:P?.bottom??T.bottom,left:P?.left??T.left}}function U(T){return{x:T.left,y:T.top,width:Math.max(1,a-T.left-T.right),height:Math.max(1,o-T.top-T.bottom)}}function V(T){let P=Math.max(0,...T.map($=>$.length));return Math.min(a*.4,P*u*.6+u+48)}function q(T,P){let $=v+8,H=P.y+Math.max(0,(P.height-T.length*$)/2);T.forEach((_,E)=>{R(_,P.x,H+E*$,E)})}function te(T){let P=T.map(_=>_.name.length*u*.6+u+28),$=P.reduce((_,E)=>_+E,0),H=Math.max(0,a-$-20);T.forEach((_,E)=>{R(_,H,4,E),H+=P[E]})}function R(T,P,$,H){let _=Math.round(u*.7),E=I.box({id:`${n}-legend-swatch-${H}`,position:"absolute",x:ee(P),y:ee($+(v-_)/2),width:_,height:_,borderRadius:Math.round(_/4),background:T.color});f.enabled&&E.animate(Kt(f,0,f.duration/2)),x.push(E),y(T.name,{x:P+_+8,y:$,width:T.name.length*u*.6+12,height:v},"start",{color:e.textColor??"#cbd5e1"},`legend-${H}`)}}function Fu(e){for(let t of e.animation?.tracks??[])for(let r of t.keyframes??[])r.frame=Math.round(r.frame);for(let t of e.children??[])Fu(t)}function Cu(e){return{x:ee(e.x),y:ee(e.y),width:ee(e.width),height:ee(e.height)}}function Au(e){return e.replace(/-?\d*\.\d{3,}(?:e-?\d+)?/gi,t=>String(ee(Number(t))))}function Zp(e,t,r){let n=[],a=/([MLAZ])([^MLAZ]*)/gi;for(let[,o,s]of e.matchAll(a)){let u=(s.match(/-?\d*\.?\d+(?:e-?\d+)?/gi)??[]).map(Number);if(o.toUpperCase()==="A")for(let c=0;c+6<u.length;c+=7)u[c+5]+=t,u[c+6]+=r;else if(o.toUpperCase()!=="Z")for(let c=0;c+1<u.length;c+=2)u[c]+=t,u[c+1]+=r;n.push(o+u.map(ee).join(","))}return n.join("")}g();var ke=tr(Ou(),1);g();var Sn=tr(Fl(),1);function Mo(e,t=24,r){let n=e.fps??t;if(n<=0)throw new Error(`[FrameGrid] Invalid fps: ${n}. Must be > 0.`);let a=[];if(Array.isArray(e.frames)&&e.frames.length>0)for(let s of e.frames){if(typeof s!="number"||s<0||!Number.isFinite(s))throw new Error(`[FrameGrid] Invalid frame index in frames list: ${s}`);a.push({frame:Math.round(s),timeMs:Math.round(s/n*1e3)})}else if(Array.isArray(e.timesMs)&&e.timesMs.length>0)for(let s of e.timesMs){if(typeof s!="number"||s<0||!Number.isFinite(s))throw new Error(`[FrameGrid] Invalid timestamp in timesMs list: ${s}`);a.push({frame:Math.round(s/1e3*n),timeMs:Math.round(s)})}else if(e.startMs!==void 0||e.endMs!==void 0||e.stepMs!==void 0){let s=e.startMs??0,u=e.endMs??r??s+1e3,c=e.stepMs??Math.round(5/n*1e3);if(s<0||u<s)throw new Error(`[FrameGrid] Invalid millisecond range: startMs=${s}, endMs=${u}. startMs must be <= endMs.`);if(c<=0)throw new Error(`[FrameGrid] Invalid stepMs: ${c}. Must be > 0.`);for(let l=s;l<=u;l+=c)a.push({frame:Math.round(l/1e3*n),timeMs:Math.round(l)})}else{let s=e.startFrame??0,u=e.endFrame??(r?Math.min(s+30,Math.floor(r/1e3*n)):s+30),c=e.stepFrames??5;if(s<0||u<s)throw new Error(`[FrameGrid] Invalid frame range: startFrame=${s}, endFrame=${u}. startFrame must be <= endFrame.`);if(c<=0)throw new Error(`[FrameGrid] Invalid stepFrames: ${c}. Must be > 0.`);for(let l=s;l<=u;l+=c)a.push({frame:Math.round(l),timeMs:Math.round(l/n*1e3)})}let o=Math.min(e.maxFrames??64,120);if(a.length>o)throw new Error(`[FrameGrid] Requested ${a.length} frames exceeds the safety threshold of ${o}. Increase stepFrames/stepMs or narrow the start/end range to prevent oversized images.`);if(a.length===0)throw new Error("[FrameGrid] Zero frames were resolved for sampling.");return{samples:a,fps:n}}function ko(e,t,r){let n=r.gap??12,a=r.padding??16,s=r.showHeader??!0?54:0,u=r.maxGridWidth??4096,c=r.maxGridHeight??4096,l=r.columns;(!l||l<=0)&&(e<=4?l=e:e<=9?l=3:e<=16?l=4:e<=25?l=5:l=6),l=Math.min(l,e);let m=Math.ceil(e/l),d=Math.max(120,Math.min(r.cellWidth??320,960)),p=r.cellHeight??Math.round(d/(t>0?t:16/9)),h=l*d+(l-1)*n+a*2,b=m*p+(m-1)*n+a*2+s;if(h>u||b>c){let f=Math.min((u-(l-1)*n-a*2)/(l*d),(c-(m-1)*n-a*2-s)/(m*p));if(f<.25)throw new Error(`[FrameGrid] Cannot fit ${e} cells (${l}x${m}) into max dimensions [${u}x${c}]. Reduce cell count or decrease cellWidth.`);d=Math.max(100,Math.floor(d*f)),p=Math.round(d/(t>0?t:16/9)),h=l*d+(l-1)*n+a*2,b=m*p+(m-1)*n+a*2+s}return{columns:l,rows:m,cellWidth:d,cellHeight:p,totalWidth:h,totalHeight:b,headerHeight:s,gap:n,padding:a}}async function Cr(e,t={}){let r=e.fps??24,n=e.durationMs,{samples:a,fps:o}=Mo(t,r,n),s=e.width??1920,u=e.height??1080,c=s>0&&u>0?s/u:16/9,l=ko(a.length,c,t),m=t.renderer??new ke.HeadlessMediaRenderer,d=[];for(let x of a){let y=await e.renderFrame({frame:x.frame,atMs:x.timeMs,fps:o,renderer:m});d.push(y)}let p=new Sn.Canvas(l.totalWidth,l.totalHeight),h=p.getContext("2d");if(h.fillStyle=t.backgroundColor??"#090a0f",h.fillRect(0,0,l.totalWidth,l.totalHeight),t.showHeader!==!1&&l.headerHeight>0){let x=t.headerText??`FrameGrid Conformance Review | Frames ${a[0].frame}\u2013${a[a.length-1].frame} (Count: ${a.length})`,y=`${s}\xD7${u} @ ${o} FPS | Cell: ${l.cellWidth}\xD7${l.cellHeight}px | Step: ${t.stepFrames?`${t.stepFrames}f`:t.stepMs?`${t.stepMs}ms`:"Custom"}`;h.fillStyle="#f8fafc",h.font="bold 15px sans-serif",h.fillText(x,l.padding,l.padding+18),h.fillStyle="#94a3b8",h.font="12px sans-serif",h.fillText(y,l.padding,l.padding+36),h.strokeStyle="#1e2433",h.lineWidth=1,h.beginPath(),h.moveTo(l.padding,l.padding+46),h.lineTo(l.totalWidth-l.padding,l.padding+46),h.stroke()}let b=t.showLabels??!0;for(let x=0;x<a.length;x++){let y=a[x],v=x%l.columns,w=Math.floor(x/l.columns),M=l.padding+v*(l.cellWidth+l.gap),N=l.padding+l.headerHeight+w*(l.cellHeight+l.gap),k=await(0,Sn.loadImage)(d[x]);if(h.drawImage(k,M,N,l.cellWidth,l.cellHeight),h.strokeStyle="#262b3d",h.lineWidth=1,h.strokeRect(M,N,l.cellWidth,l.cellHeight),b){let F=`F:${y.frame} \u2022 ${y.timeMs}ms`;h.font="bold 11px sans-serif";let V=h.measureText(F).width+14,q=20,te=M+6,R=N+6;h.fillStyle="#090a0fee",h.beginPath(),h.roundRect(te,R,V,q,4),h.fill(),h.strokeStyle="#6366f155",h.lineWidth=1,h.stroke(),h.fillStyle="#e2e8f0",h.fillText(F,te+7,R+14)}}let f=await p.toBuffer("png");return t.outputPath&&await rr.writeFile(t.outputPath,f),f}g();function Mn(e,t){let r=t.faces??t.items??[];for(let[n,a]of Object.entries(t))Object.defineProperty(e,n,{value:a,enumerable:!1,configurable:!0});return Object.defineProperty(e,Symbol.iterator,{value:function*(){yield*r},enumerable:!1,configurable:!0}),e}function qp(e){let t=e.scale??1,r=Math.max(Math.abs(t*(e.scaleX??1)),Math.abs(t*(e.scaleY??1)));return r>0?r:1}var Nt={cube(e){let t=e.size,[r,n,a]=typeof t=="number"?[t,t,t]:t,o=e.twoSided??!0,s={front:"#3b82f6",back:"#1d4ed8",left:"#2563eb",right:"#1e40af",top:"#60a5fa",bottom:"#172554"},u=(h,b,f,x,y,v)=>{if(b&&typeof b=="object"&&"kind"in b){let M=b;return M.position="absolute",M.is3D=!0,M.twoSided=o,M.material=M.material??e.material??"lit",M.shininess=M.shininess??e.shininess??32,M.specularIntensity=M.specularIntensity??e.specularIntensity??.5,e.roughness!==void 0&&M.roughness===void 0&&(M.roughness=e.roughness),e.metallic!==void 0&&M.metallic===void 0&&(M.metallic=e.metallic),e.ambientIntensity!==void 0&&M.ambientIntensity===void 0&&(M.ambientIntensity=e.ambientIntensity),Object.assign(M,v),M}let w=typeof b=="string"?{background:b}:b??{background:f};return I.box({id:`${e.id??"cube"}-${h}`,position:"absolute",width:x,height:y,is3D:!0,twoSided:o,material:w.material??e.material??"lit",shininess:w.shininess??e.shininess??32,specularIntensity:w.specularIntensity??e.specularIntensity??.5,roughness:w.roughness??e.roughness,metallic:w.metallic??e.metallic,ambientIntensity:w.ambientIntensity??e.ambientIntensity??1,background:w.background??f,borderRadius:w.borderRadius??0,borderWidth:w.borderWidth,borderColor:w.borderColor,opacity:w.opacity??1,children:w.children??[],...v})},c=r/2,l=n/2,m=a/2,d=[u("front",e.faces?.front,s.front,r,n,{x:0,y:0,z:-m,rotateX:0,rotateY:0,rotateZ:0}),u("back",e.faces?.back,s.back,r,n,{x:0,y:0,z:m,rotateX:0,rotateY:180,rotateZ:0}),u("left",e.faces?.left,s.left,a,n,{x:-c,y:0,z:0,rotateX:0,rotateY:90,rotateZ:0}),u("right",e.faces?.right,s.right,a,n,{x:c,y:0,z:0,rotateX:0,rotateY:-90,rotateZ:0}),u("top",e.faces?.top,s.top,r,a,{x:0,y:-l,z:0,rotateX:-90,rotateY:0,rotateZ:0}),u("bottom",e.faces?.bottom,s.bottom,r,a,{x:0,y:l,z:0,rotateX:90,rotateY:0,rotateZ:0})],p=I.box({id:e.id??se("cube"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:r,height:n,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:d});return Mn(p,{faces:d})},carousel(e){let{items:t,radius:r,faceInward:n=!1,twoSided:a=!0}=e,o=t.length,s=o>0?360/o:0,u=t.map((l,m)=>{let d=m*s,p=d*Math.PI/180,h=r*Math.sin(p),b=-r*Math.cos(p),f=n?180-d:-d,x=l;return x.position="absolute",x.is3D=!0,x.twoSided=a,x.x=h,x.y=0,x.z=b,x.rotateY=f,x}),c=I.box({id:e.id??se("carousel"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:e.itemWidth??200,height:e.itemHeight??200,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:u});return Mn(c,{items:u})},prism(e){let{sides:t,radius:r,height:n,twoSided:a=!0}=e,o=Math.max(3,t),s=2*r*Math.tan(Math.PI/o),u=360/o,c=[];for(let m=0;m<o;m++){let d=m*u,p=d*Math.PI/180,h=r*Math.sin(p),b=r*Math.cos(p),f=e.sideConfigs?.[m],x=typeof f=="string"?f:f?.background??`hsl(${m*360/o}, 70%, 50%)`;c.push(I.box({id:`${e.id??"prism"}-panel-${m}`,position:"absolute",width:s,height:n,is3D:!0,twoSided:a,x:h,y:0,z:b,rotateY:d,background:x}))}let l=I.box({id:e.id??se("prism"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,width:s,height:n,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,opacity:e.opacity??1,background:"transparent",children:c});return Mn(l,{faces:c})},plane(e){return I.box({id:e.id??se("plane"),position:"absolute",width:e.width,height:e.height,x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,twoSided:e.twoSided??!0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,background:e.background??"#3b82f6",borderRadius:e.borderRadius??0,opacity:e.opacity??1,children:e.children??[]})},grid(e){let{width:t,height:r}=e,n=e.id??se("grid"),a=Math.max(1,Math.round(e.divisions??10)),o=e.lineWidth??2,s=e.color??"rgba(59, 130, 246, 0.5)",u=(p,h,b,f,x)=>I.box({id:`${n}-${p}`,position:"absolute",x:h,y:b,z:0,width:f,height:x,is3D:!0,twoSided:!0,material:"unlit",background:s}),c=4096,l=[],m=Math.ceil(r/c),d=Math.ceil(t/c);for(let p=0;p<=a;p++){let h=p/a-.5;for(let b=0;b<m;b++){let f=r/m,x=-r/2+f*(b+.5);l.push(u(`v${p}-${b}`,h*t,x,o,f))}for(let b=0;b<d;b++){let f=t/d,x=-t/2+f*(b+.5);l.push(u(`h${p}-${b}`,x,h*r,f,o))}}return I.box({id:n,position:"absolute",width:t,height:r,x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,transformStyle:"preserve-3d",rotateX:e.rotateX??90,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,background:"transparent",opacity:e.opacity??1,children:l})},text(e){return e.extrusionDepth&&e.extrusionDepth>0?Nt.extrudedText({...e,depth:e.extrusionDepth}):I.text(e.text,{id:e.id??se("text3d"),position:"absolute",x:e.x??0,y:e.y??0,z:e.z??0,is3D:!0,twoSided:e.twoSided??!0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,fontSize:e.fontSize??48,fontFamily:e.fontFamily,fontWeight:e.fontWeight??"bold",fontStyle:e.fontStyle,fill:e.fill??"#ffffff",align:e.align??"center",verticalAlign:e.verticalAlign??"middle",letterSpacing:e.letterSpacing,lineHeight:e.lineHeight,material:e.material??"lit",shininess:e.shininess??64,roughness:e.roughness,specularIntensity:e.specularIntensity??.8,ambientIntensity:e.ambientIntensity??1,metallic:e.metallic,opacity:e.opacity??1,background:e.background,borderRadius:e.borderRadius,padding:e.padding,stroke:e.stroke,strokeWidth:e.strokeWidth})},extrudedText(e){let{depth:t,text:r,fill:n="#ffffff",bevelColor:a}=e,o,s=(e.curveTolerance??.1)/qp(e),u=(e.fontFamily?Ft.getParsed(e.fontFamily):null)??Ft.getParsed("Inter")??Ft.getParsed("Unbounded")??Ft.getFirstParsed();u&&(o=Ho({text:r,font:u,fontSize:e.fontSize??48,depth:t,fill:n,bevelColor:a,curveSegments:e.curveSegments,curveTolerance:s,align:e.align,verticalAlign:e.verticalAlign,letterSpacing:e.letterSpacing,material:e.material==="lit"||e.material==="unlit"||e.material==="toon"?e.material:void 0,shininess:e.shininess,roughness:e.roughness,metallic:e.metallic}).modelData);let c=I.model({id:e.id??se("extruded-text"),modelData:o,is3D:!0,x:e.x??0,y:e.y??0,z:e.z??0,rotateX:e.rotateX??0,rotateY:e.rotateY??0,rotateZ:e.rotateZ??0,scale:e.scale??1,scaleX:e.scaleX??1,scaleY:e.scaleY??1,scaleZ:e.scaleZ??1,opacity:e.opacity??1,material:e.material,shininess:e.shininess??32,roughness:e.roughness,specularIntensity:e.specularIntensity??.8,ambientIntensity:e.ambientIntensity??1,metallic:e.metallic,twoSided:e.twoSided??!0,text3dOptions:{...e,curveTolerance:s}});return Mn(c,{faces:[c],items:[c]})},model(e={}){return I.model(e)},obj(e,t={}){return I.obj(e,t)},fbx(e,t={}){return I.fbx(e,t)},gltf(e,t={}){return I.gltf(e,t)},glb(e,t={}){return I.glb(e,t)},stl(e,t={}){return I.stl(e,t)},ply(e,t={}){return I.ply(e,t)},vox(e,t={}){return I.vox(e,t)},threeDS(e,t={}){return I.threeDS(e,t)},off(e,t={}){return I.off(e,t)}};g();var Zu=tr(Ll(),1),An=tr(Xl(),1);var No=tr(Bu(),1);g();var Ar=j.dirname(Er(import.meta.url)),Iu=["import","meta","url"].join("."),Kp=Ln(import.meta.url),Nr="/@framefields/engine",Eu={framefields:"index.ts","framefields/effects":"effects/index.ts","framefields/audio":"audio/index.ts","framefields/signals":"signals/index.ts","framefields/fonts":"fonts/index.ts"},Po={path:"path","path/posix":"path",url:"url",os:"os",fs:"fs","fs/promises":"fs-promises",module:"module"},Uu=new Set(["sharp","skia-canvas","node-av","onnxruntime-node","@resvg/resvg-js","@napi-rs/webcodecs","@mediabunny/server","@mediabunny/mp3-encoder","webgpu","pino","pino-pretty","dotenv","esbuild","@framefields/renderer","@framefields/server-utils","framefields/renderer","framefields/preview"]),Jp=`
|
|
709
709
|
const stub = () => new Proxy(function () {}, {
|
|
710
710
|
get: (_t, k) => (k === "__esModule" ? true : k === Symbol.toPrimitive ? () => "" : stub()),
|
|
711
711
|
apply: () => stub(),
|
|
712
712
|
construct: () => stub(),
|
|
713
713
|
});
|
|
714
714
|
module.exports = stub();
|
|
715
|
-
`;async function
|
|
716
|
-
`),resolveDir:j.dirname(r),loader:"js"})),u.onResolve({filter:/^\/@framefields\/engine\//},c=>({path:c.path,external:!0})),u.onResolve({filter:/^framefields(\/|$)/},c=>
|
|
717
|
-
${r.replaceAll(
|
|
715
|
+
`;async function Qp(e){let{build:t}=await import("./esbuild-GWV7CM7D.mjs"),r=j.resolve(Ar,".."),n=j.join(Ar,"shims"),a={player:j.join(Ar,"player.ts")};for(let[o,s]of Object.entries(Eu))a[$u(o)]=j.join(r,s);for(let o of new Set(Object.values(Po)))a[`shims/${o}`]=j.join(n,`${o}.ts`);await he.promises.rm(e,{recursive:!0,force:!0}),await t({...ju,entryPoints:a,outdir:e,outExtension:{".js":".mjs"},splitting:!0,minify:!0,conditions:["development","browser","import"],define:{"process.env.NODE_ENV":'"production"',global:"globalThis"},inject:[j.join(n,"process.ts")],plugins:[{name:"framefields-engine",setup(o){o.onResolve({filter:/^framefields-preview:renderers$/},()=>({path:nf()})),Wu(o,s=>({path:j.join(n,`${s}.ts`)}))}}]})}async function _u(e){let{build:t}=await import("./esbuild-GWV7CM7D.mjs"),r=j.resolve(e.entry),n=u=>({path:`${Nr}/${u}.mjs`,external:!0}),a={modelsDir:e.modelsDir,ortBase:e.ortBase},o=await t({...ju,entryPoints:["framefields-preview:entry"],write:!1,metafile:!0,sourcemap:"inline",plugins:[{name:"framefields-project",setup(u){u.onResolve({filter:/^framefields-preview:entry$/},()=>({path:"entry",namespace:"framefields-preview"})),u.onLoad({filter:/.*/,namespace:"framefields-preview"},()=>({contents:[`import { startPlayer } from ${JSON.stringify(`${Nr}/player.mjs`)};`,`import * as mod from ${JSON.stringify(r)};`,`startPlayer(mod, ${JSON.stringify(e.exportName)}, ${JSON.stringify(a)});`].join(`
|
|
716
|
+
`),resolveDir:j.dirname(r),loader:"js"})),u.onResolve({filter:/^\/@framefields\/engine\//},c=>({path:c.path,external:!0})),u.onResolve({filter:/^framefields(\/|$)/},c=>Eu[c.path]?n($u(c.path)):void 0),Wu(u,c=>n(`shims/${c}`)),rf(u)}}]}),s=Object.keys(o.metafile?.inputs??{}).filter(u=>!u.includes(":")&&!u.includes("node_modules")).map(u=>j.resolve(u));return{code:o.outputFiles[0].text,inputs:s}}var Pn;function ef(e){return[e,j.join(e,"..")].map(t=>j.join(t,"preview-engine")).find(t=>he.existsSync(j.join(t,"player.mjs")))}function Gu(){let e=ef(Ar);return e?Promise.resolve(e):(Pn??=(async()=>{let t=j.join(Dn.tmpdir(),`framefields-preview-engine-${S.pid}`);return await Qp(t),t})(),Pn.catch(()=>{Pn=void 0}),Pn)}function zu(){return S.env.FRAMEFIELDS_MODELS_DIR?j.resolve(S.env.FRAMEFIELDS_MODELS_DIR):j.join(Dn.homedir(),".cache","framefields","models")}var tf="1.30.0";function Vu(e){for(let t of[e,Ar])try{let r=Ln(j.join(t,"noop.js")).resolve("onnxruntime-web"),n=j.dirname(r);return{base:`/@fs${n}/`,dir:n}}catch{}return{base:`https://cdn.jsdelivr.net/npm/onnxruntime-web@${tf}/dist/`}}var ju={bundle:!0,format:"esm",platform:"browser",target:"es2022",mainFields:["browser","module","main"],logLevel:"silent"};function $u(e){return e==="framefields"?"framefields":e.slice(12)}function Wu(e,t){e.onResolve({filter:/^(node:)?[a-z_/]+$/},r=>{let n=r.path.replace(/^node:/,"");if(Po[n])return t(Po[n]);if(r.path.startsWith("node:")||$o(n))return{path:n,namespace:"framefields-stub"}}),e.onResolve({filter:/.*/},r=>{let n=af(r.path);if(n&&(Uu.has(n)||Uu.has(r.path)))return{path:r.path,namespace:"framefields-stub"}}),e.onLoad({filter:/.*/,namespace:"framefields-stub"},()=>({contents:Jp,loader:"js"}))}function rf(e){e.onLoad({filter:/\.[cm]?[jt]sx?$/},async t=>{if(t.path.includes(`${j.sep}node_modules${j.sep}`))return;let r=await he.promises.readFile(t.path,"utf8");if(r.includes(Iu))return{contents:`const __framefieldsFileUrl = ${JSON.stringify(_r(t.path).href)};
|
|
717
|
+
${r.replaceAll(Iu,"__framefieldsFileUrl")}`,loader:of(t.path)}})}function nf(){let e=Kp.resolve("@framefields/renderer"),t=j.join(j.dirname(e),"..","src","generated","node-renderers.ts");if(!he.existsSync(t))throw new Error(`[framefields] node renderer list not found at ${t}`);return t}function af(e){if(e.startsWith(".")||e.startsWith("/"))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function of(e){return e.endsWith(".tsx")?"tsx":e.endsWith(".jsx")?"jsx":/\.[cm]?ts$/.test(e)?"ts":"js"}g();var Cn=class{constructor(t){this.dir=t;this.file=j.join(t,"notes.json")}dir;file;async list(){try{let t=JSON.parse(await he.promises.readFile(this.file,"utf8"));return Array.isArray(t)?t:[]}catch{return[]}}async add(t){let r=await this.list(),n=r.reduce((s,u)=>Math.max(s,u.id),0)+1,a={id:n,frame:Math.max(0,Math.round(Number(t.frame)||0)),time:Dr(Number(t.time)||0,3),x:Dr(Tn(t.x),4),y:Dr(Tn(t.y),4),...t.w!==void 0&&t.h!==void 0&&{w:Dr(Tn(t.w),4),h:Dr(Tn(t.h),4)},text:String(t.text??"").trim(),done:!1,created:new Date().toISOString()};await this.ensureDir();let o=/^data:image\/jpeg;base64,(.+)$/.exec(t.image??"");return o&&(a.image=j.join(this.dir,`note-${n}.jpg`),await he.promises.writeFile(a.image,Buffer.from(o[1],"base64"))),await this.save([...r,a]),a}async update(t,r){let n=await this.list(),a=n.find(o=>o.id===t);if(a)return typeof r.done=="boolean"&&(a.done=r.done),typeof r.text=="string"&&r.text.trim()&&(a.text=r.text.trim()),await this.save(n),a}async remove(t){let r=await this.list(),n=r.find(a=>a.id===t);if(n)return n.image&&await he.promises.rm(n.image,{force:!0}),await this.save(r.filter(a=>a!==n)),n}async save(t){await this.ensureDir();let r=`${this.file}.${S.pid}.tmp`;await he.promises.writeFile(r,`${JSON.stringify(t,null," ")}
|
|
718
718
|
`),await he.promises.rename(r,this.file)}async ensureDir(){await he.promises.mkdir(this.dir,{recursive:!0});let t=j.join(j.dirname(this.dir),".gitignore");he.existsSync(t)||await he.promises.writeFile(t,`*
|
|
719
|
-
`)}};function
|
|
719
|
+
`)}};function Hu(e,t){let r=a=>`${Math.round(a*100)}%`,n=e.w!==void 0&&e.h!==void 0?`area ${r(e.x)},${r(e.y)} to ${r(e.x+e.w)},${r(e.y+e.h)}`:`spot ${r(e.x)},${r(e.y)}`;return`note ${e.id} at ${sf(e.frame,t)} (frame ${e.frame}), ${n}: ${e.text}`}function sf(e,t){let r=e/t,n=Math.floor(r/60);return`${n}:${(r-n*60).toFixed(2).padStart(5,"0")}`}function Tn(e){let t=Number(e);return Number.isFinite(t)?Math.min(1,Math.max(0,t)):0}function Dr(e,t){return Number(e.toFixed(t))}g();var Yu=`<!doctype html>
|
|
720
720
|
<html lang="en">
|
|
721
721
|
<head>
|
|
722
722
|
<meta charset="utf-8">
|
|
@@ -1954,14 +1954,14 @@ ${r.replaceAll(Bu,"__framefieldsFileUrl")}`,loader:Op(t.path)}})}function Np(){l
|
|
|
1954
1954
|
<script type="module" src="/@framefields/player.js"><\/script>
|
|
1955
1955
|
</body>
|
|
1956
1956
|
</html>
|
|
1957
|
-
`;var
|
|
1958
|
-
${
|
|
1957
|
+
`;var uf=1200,qu="x-framefields-preview",lf="/@framefields/player.js";async function cf(e,t={}){let r=e.entry instanceof URL||String(e.entry).startsWith("file:")?Er(e.entry):j.resolve(String(e.entry)),n=e.export??"default",a=zu(),o=Vu(j.dirname(r)),s=[...t.root===void 0?[mf(j.dirname(r))]:Array.isArray(t.root)?t.root:[t.root],a,o.dir].filter(L=>!!L).map(L=>j.resolve(L)),u=new Set,c=t.idleCloseMs??5e3,l,m=t.title??"framefields preview",d=(0,An.randomUUID)(),p=t.log===!1?()=>{}:t.log??(L=>console.error(L)),h=L=>p(`[framefields preview] ${L}`),b=new Set,f=!1,x=t.notesDir===!1?void 0:new Cn(j.resolve(t.notesDir??j.join(S.cwd(),".framefields","preview-notes"))),y=Promise.resolve(),v=await df(r,n),w=await gf(v,m,d,x?.dir??null),M,N=()=>{if(!M){let L=_u({entry:r,exportName:n,modelsDir:a,ortBase:o.base}).then(B=>B.code);M=L,L.catch(B=>{h(`could not build ${j.relative(S.cwd(),r)}:
|
|
1958
|
+
${ff(B)}`),M===L&&(M=void 0)})}return M},k=Gu();k.catch(()=>{});let F={state:t.audio===!1?"none":"mixing"},U;function V(L,B){for(let z of u)z.write(`event: ${L}
|
|
1959
1959
|
data: ${JSON.stringify(B)}
|
|
1960
1960
|
|
|
1961
|
-
`)}function q(
|
|
1962
|
-
${D}`)});`}B.writeHead(200,{"content-type":"text/javascript; charset=utf-8","cache-control":"no-store"}),B.end(Y);return}if(
|
|
1961
|
+
`)}function q(L){F=L,V("audio",F)}function te(){if(F.state!=="mixing")return;if(!v.toVirtualMediaAsync&&!v.toVirtualMedia){q({state:"none"});return}let L=t.renderer??new ke.HeadlessMediaRenderer;(async()=>{let B=v.toVirtualMediaAsync?await v.toVirtualMediaAsync():v.toVirtualMedia();return L.renderAudio(B,{fps:w.fps})})().then(({channels:B,sampleRate:z})=>{let K=B[0]??new Float32Array(0),Y=B[1]??K,Q=yf(K,Y,uf);if(K.length===0||Math.max(...Q)<.001){q({state:"none"});return}U=jn([K,Y],{sampleRate:z}),q({state:"ready",durationSec:K.length/z,peaks:Q.map(D=>Math.round(D*1e3)/1e3)})},B=>{q({state:"error",error:B instanceof Error?B.message:String(B)})})}let R,T=new Promise(L=>{R=L}),P;function $(L="closed"){return P??=new Promise(B=>{clearTimeout(l),L==="idle"&&h("stopped: its tab was closed"),L==="replaced"&&h("stopped: a newer preview took over");for(let z of u)z.end();u.clear(),H.close(()=>{B(),R(L)}),H.closeAllConnections()}),P}let H=No.default.createServer(async(L,B)=>{let z=new URL(L.url??"/","http://localhost");B.setHeader("cross-origin-opener-policy","same-origin"),B.setHeader("cross-origin-embedder-policy","credentialless");try{if(L.method==="GET"&&z.pathname==="/"){B.writeHead(200,{"content-type":"text/html; charset=utf-8","cache-control":"no-store"}),B.end(Yu);return}if(L.method==="GET"&&z.pathname==="/meta"){Ze(B,200,{...w,audio:F});return}if(L.method==="GET"&&z.pathname.startsWith(`${Nr}/`)){let Y=await k,Q=j.resolve(Y,`.${z.pathname.slice(Nr.length)}`);if(To(Y,Q)&&await Co(Q)){await Ao(L,B,Q);return}Ze(B,404,{error:"not found"});return}if(L.method==="GET"&&z.pathname===lf){let Y;try{await k,Y=await N()}catch(Q){let D=Q instanceof Error?Q.message:String(Q);Y=`throw new Error(${JSON.stringify(`Could not build the preview:
|
|
1962
|
+
${D}`)});`}B.writeHead(200,{"content-type":"text/javascript; charset=utf-8","cache-control":"no-store"}),B.end(Y);return}if(L.method==="GET"&&z.pathname==="/@framefields/stat"){let Y=j.resolve(z.searchParams.get("path")??""),Q=-1;s.some(D=>To(D,Y))&&(Q=await he.promises.stat(Y).then(D=>D.isFile()?D.size:-1,()=>-1)),Ze(B,200,{exists:Q>=0,size:Math.max(0,Q)});return}if(L.method==="GET"&&z.pathname==="/events"){B.writeHead(200,{"content-type":"text/event-stream","cache-control":"no-store",connection:"keep-alive"}),B.write(`retry: 1000
|
|
1963
1963
|
`),B.write(`event: hello
|
|
1964
1964
|
data: ${JSON.stringify({session:w.session})}
|
|
1965
1965
|
|
|
1966
|
-
`),u.add(B),clearTimeout(l),f||(f=!0,h(c===!1?"page opened":`page opened; the server stops ${Number((c/1e3).toFixed(1))} s after its last tab closes`)),_?.(),
|
|
1967
|
-
${s.filter(Boolean).join(" \xB7 ")}`),o}let a=Number(t.id);if(t.op==="update"){let o=await e.update(a,t);return o&&typeof t.done=="boolean"&&n(`note ${a} marked ${o.done?"done":"open"}`),o}if(t.op==="remove"){let o=await e.remove(a);return o&&n(`note ${a} deleted`),o}}function _p(e){return e instanceof Error?e.message:String(e)}function Yu(e,t){return new Promise((r,n)=>{let a="";e.setEncoding("utf8"),e.on("data",o=>{a+=o,a.length>t&&(n(new Error("request body too large")),e.destroy())}),e.on("end",()=>r(a)),e.on("error",n)})}function To(e,t){let r=j.relative(e,t);return!!r&&!r.startsWith("..")&&!j.isAbsolute(r)}async function Po(e){try{return(await he.promises.stat(e)).isFile()}catch{return!1}}var Gp={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif",".svg":"image/svg+xml",".mp4":"video/mp4",".mov":"video/quicktime",".webm":"video/webm",".mp3":"audio/mpeg",".wav":"audio/wav",".m4a":"audio/mp4",".ogg":"audio/ogg",".ttf":"font/ttf",".otf":"font/otf",".woff":"font/woff",".woff2":"font/woff2",".json":"application/json",".js":"text/javascript; charset=utf-8",".mjs":"text/javascript; charset=utf-8",".wasm":"application/wasm",".onnx":"application/octet-stream",".srt":"text/plain; charset=utf-8",".txt":"text/plain; charset=utf-8"};async function Co(e,t,r){let{size:n}=await he.promises.stat(r),a=Gp[j.extname(r).toLowerCase()]??"application/octet-stream",o=/^bytes=(\d*)-(\d*)$/.exec(e.headers.range??""),s=0,u=n-1;if(o&&(o[1]||o[2])&&(o[1]?(s=Number(o[1]),o[2]&&(u=Math.min(u,Number(o[2])))):s=Math.max(0,n-Number(o[2])),s>u||s>=n)){t.writeHead(416,{"content-range":`bytes */${n}`}),t.end();return}if(t.writeHead(o?206:200,{"content-type":a,"content-length":u-s+1,"accept-ranges":"bytes","cache-control":"no-cache",...o&&{"content-range":`bytes ${s}-${u}/${n}`}}),e.method==="HEAD"){t.end();return}he.createReadStream(r,{start:s,end:u}).pipe(t)}async function zp(e,t,r,n){let a=e.fps??24,o=e.durationMs??await e.computeDuration?.()??5e3;return{session:r,notesDir:n,title:t,fps:a,frameCount:Math.max(1,Math.round(o/1e3*a)),width:e.width??1920,height:e.height??1080}}function Vp(){return 41e3+(0,An.createHash)("sha1").update(S.cwd()).digest().readUInt16BE(0)%900}async function jp(e,t){let r=await new Promise(n=>{let a=Ao.default.request({host:e,port:t,method:"POST",path:"/takeover",agent:!1,headers:{[Zu]:"1"},timeout:1500},o=>{o.resume(),n(o.statusCode===200)});a.on("timeout",()=>a.destroy()),a.on("error",()=>n(!1)),a.end()});return r&&await new Promise(n=>setTimeout(n,150)),r}function $p(e,t,r){let n=new Array(r).fill(0);if(e.length===0)return n;let a=e.length/r;for(let o=0;o<r;o++){let s=Math.floor(o*a),u=Math.min(e.length,Math.floor((o+1)*a)),c=0;for(let l=s;l<u;l++){let m=Math.max(Math.abs(e[l]??0),Math.abs(t[l]??0));m>c&&(c=m)}n[o]=Math.min(1,c)}return n}function Ze(e,t,r){e.writeHead(t,{"content-type":"application/json","cache-control":"no-store"}),e.end(JSON.stringify(r))}function Wp(e){let[t,r]=S.platform==="darwin"?["open",[e]]:S.platform==="win32"?["cmd",["/c","start","",e]]:["xdg-open",[e]];try{(0,Xu.spawn)(t,r,{stdio:"ignore",detached:!0}).on("error",()=>{}).unref()}catch{}}function No(e,t){return e&&(t&&!e.source&&Object.defineProperty(e,"source",{value:t,enumerable:!0,writable:!0,configurable:!0}),typeof e.section!="function"&&Object.defineProperty(e,"section",{value:(r,n)=>{if(typeof r=="object"&&r!==null&&!("kind"in r)&&!("inputHandleId"in r)&&!("src"in r)){let o=r.source??e.source??t;return I.section(o,e,r)}let a=r??e.source??t;return I.section(a,e,n)},enumerable:!1,writable:!0,configurable:!0}),typeof e.blurEffect!="function"&&Object.defineProperty(e,"blurEffect",{value:r=>new lt({track:e,...r}),enumerable:!1,writable:!0,configurable:!0}),typeof e.isolate!="function"&&Object.defineProperty(e,"isolate",{value:(r,n)=>I.section(r,e,n),enumerable:!1,writable:!0,configurable:!0}),e)}var Hp=nr.attach;nr.attach=function(e,t,r){let n=Hp.call(this,e,t,r);if(n?.objects){let a=e,o=n.objects.get.bind(n.objects);n.objects.get=u=>No(o(u),a);let s=n.objects.byCategory.bind(n.objects);n.objects.byCategory=(u,c)=>No(s(u,c),a),n.objects.primary&&No(n.objects.primary,a)}return n};var qu=class e{virtualMedia;constructor(t,r="Video"){this.virtualMedia=$o(t,r)}static video(t,r){let n=new e(t,"Video");return r&&Object.assign(n.virtualMedia.metadata,r),n}static image(t,r){let n=new e(t,"Image");return r&&Object.assign(n.virtualMedia.metadata,r),n}static audio(t,r){let n=new e(t,"Audio");return r&&Object.assign(n.virtualMedia.metadata,r),n}apply(t,r={}){let n;t instanceof Yp||typeof t=="object"&&t!==null&&"op"in t?n=t.toOperation():n={op:t,...r};let a=Wo(this.virtualMedia,{...n,dataType:this.virtualMedia.operation.dataType});return new e(a)}toVirtualMedia(){return this.virtualMedia}async renderFrame(t={}){return(t.renderer??new ke.HeadlessMediaRenderer).renderFrame(this.virtualMedia,t)}get fps(){return this.virtualMedia.metadata?.fps??void 0}get durationMs(){return this.virtualMedia.metadata?.durationMs??void 0}get width(){return this.virtualMedia.metadata?.width??void 0}get height(){return this.virtualMedia.metadata?.height??void 0}async renderFrameGrid(t={}){return Cr(this,t)}async renderVideo(t={},r={}){let n=typeof t=="string"?{...r,outputPath:t}:t,o=await(n.renderer??new ke.HeadlessMediaRenderer).renderVideo(this.virtualMedia,n);return Ju(o,n.outputPath)}};async function Ju(e,t){if(!t)return e;let r=j.resolve(t);return await rr.mkdir(j.dirname(r),{recursive:!0}),await rr.copyFile(e.filePath,r),await e.cleanup(),{...e,filePath:r,cleanup:async()=>{}}}var Ku=class e{width;height;fps;durationMs;backgroundColor;antialias3d;fonts;children=[];audioTracks=[];signals={};_frameHooks=[];_visionConfig;_visionBundle;_effects=[];apply(t){return t instanceof ct?(this.withVision(t),this):(this._effects.push(t),this)}withVision(t={}){this._visionBundle??=new Gn({width:this.width,height:this.height,fps:this.fps});let r=t instanceof ct?t.config:t;return this._visionConfig={...r,visionBundle:this._visionBundle},this._visionBundle}async analyzeVisionSequence(t,r={}){let n=r.fps??this.fps,a=this.durationMs??await this.computeDuration(),o=r.totalFrames??Math.max(1,Math.round(a/1e3*n)),s=_n.create({modelsDir:r.modelsDir,baseUrl:r.baseUrl,...r.confidence!==void 0?{confidence:r.confidence}:{},...r.variant!==void 0?{variant:r.variant}:{}}),u=zo.getVideo(t,!0);async function*c(){for(let l=0;l<o;l++){let m=await u.getFrame(l/n);m?.buffer&&m.width>0&&m.height>0&&(yield{data:m.buffer,width:m.width,height:m.height})}}try{return await En(c(),{runner:s,source:t,fps:n,...r.tasks!==void 0?{tasks:r.tasks}:{},...r.categories!==void 0?{categories:r.categories}:{},...r.pathStride!==void 0?{pathStride:r.pathStride}:{},...r.includeMasks!==void 0?{includeMasks:r.includeMasks}:{},...r.iouThreshold!==void 0?{iouThreshold:r.iouThreshold}:{}})}finally{s.close(),u.destroy()}}onRequestFrame(t){return this._frameHooks.push(t),this}notifyFrame(t){for(let r of this._frameHooks)r(t)}constructor(t){this.width=t.width,this.height=t.height,this.fps=t.fps??60,this.durationMs=t.durationMs??(t.durationFrames!==void 0?t.durationFrames/this.fps*1e3:void 0),this.backgroundColor=t.backgroundColor??"#000000",this.antialias3d=t.antialias3d,this.fonts=t.fonts??[],this.signals=t.signals??{}}static create(t){return new e(t)}addSignal(t,r){return this.signals[t]=r,this}add(t,...r){if(t instanceof Ft)this.children.push(t.toNode());else if(t instanceof nr)this.children.push(t.toNode());else{if(t&&typeof t=="object"&&"node"in t)return this.add(t.node,...r),this;if(Array.isArray(t))for(let n of t)this.add(n);else{let n=t,a=r[0];if(a&&!(a instanceof Ft)&&!Array.isArray(a)&&(a instanceof Se||"tracks"in a))return n.animation=a instanceof Se?a.toSpec():a,this.children.push(n),this;this.children.push(n)}}for(let n of r)n&&!(n instanceof Se)&&!("tracks"in n)&&this.add(n);return this}addAudio(t){return this.audioTracks.push(t),this}addSubjectSandwich(t){let r=typeof t.source=="string"?t.source:t.source.inputHandleId??"",n=t.fit??"cover",a=t.feather??4,o=a>1?a/100:a,s=t.variant??"s",u=I.video(r,{width:this.width,height:this.height,position:"absolute",x:0,y:0,fit:n,muted:t.muted??!1,volume:t.muted?0:t.volume??1});this.add(u);for(let l of t.behind)this.add(l);let c=I.video(r,{width:this.width,height:this.height,position:"absolute",x:0,y:0,fit:n,muted:!0,volume:0}).withVision({mode:"matte",enableSegmentation:!0,variant:s,confidence:t.confidence??.25,featherRadius:o,keyBackground:t.keyBackground??!0,backgroundKeyThreshold:t.backgroundKeyThreshold});return this.add(c),this}addSmartFraming(t){let r=typeof t.source=="string"?t.source:t.source.inputHandleId??"",n=Math.max(0,Math.min(.99,t.damping??.8)),a=t.leadHeadroom??.18,o=this.width,s=this.height,u=t.sourceAspect??16/9,c=o/s,l=c<u?Math.round(s*u):o,m=c<u?s:Math.round(o/u),d=o-l,p=s-m,h=t.target,b=new Ot(M=>{if(d>=0)return 0;let N=h.center?.x?h.center.x.get(M):h.bounds?.centerX?h.bounds.centerX.get(M)/o:h.center?.screenX?h.center.screenX.get(M)/o:.5,O=Math.max(0,Math.min(1,N))*l,U=o/2-O;return Math.max(d,Math.min(0,U))},{fps:this.fps,label:"smart_framing_pan_x"}),f=new Ot(M=>{if(p>=0)return 0;let N=h.center?.y?h.center.y.get(M):h.bounds?.centerY?h.bounds.centerY.get(M)/s:h.center?.screenY?h.center.screenY.get(M)/s:.5,O=Math.max(0,Math.min(1,N))*m,U=s*a-O;return Math.max(p,Math.min(0,U))},{fps:this.fps,label:"smart_framing_pan_y"}),x=new Ot(M=>{let N=M.frame;if(N<=0)return b.get(M);let k=b.get({...M,frame:0,time:0}),O=1-n;for(let U=1;U<=N;U++){let V=b.get({...M,frame:U,time:U/M.fps});k=k+O*(V-k)}return k},{fps:this.fps,label:"smart_framing_smooth_x"}),y=new Ot(M=>{let N=M.frame;if(N<=0)return f.get(M);let k=f.get({...M,frame:0,time:0}),O=1-n;for(let U=1;U<=N;U++){let V=f.get({...M,frame:U,time:U/M.fps});k=k+O*(V-k)}return k},{fps:this.fps,label:"smart_framing_smooth_y"}),v=I.box({width:o,height:s,overflow:"hidden",position:"relative"}),w=I.video(r,{width:l,height:m,position:"absolute",x,y,fit:t.fit??"cover",muted:t.muted??!1,volume:t.muted?0:t.volume??1});return(v.children??=[]).push(w),this.add(v),this}addSubjectOutline(t,r={}){let n=r.blur??12,a=this.width,o=this.height,s=r.pulseSignal,u=s?new Ot(m=>Math.max(0,Math.min(1,Number(s.get(m))||0)),{fps:this.fps,label:"outline_pulse"}):1,c=typeof r.source=="string"?r.source:r.source?.inputHandleId??"",l=I.box({width:a,height:o,position:"absolute",x:0,y:0,opacity:u});if(c){let m=I.video(c,{width:a,height:o,position:"absolute",x:0,y:0,fit:"cover",muted:!0,volume:0}).withVision({mode:"mask",enableSegmentation:!0});(l.children??=[]).push(m)}return l.apply(new lt({strength:n,blurType:"Gaussian"})),this.add(l),this}section(t,r,n){let a,o,s={},u=t!==null&&typeof t=="object"&&"bounds"in t,c=typeof t=="string"||t!==null&&typeof t=="object"&&("kind"in t||"src"in t||"inputHandleId"in t);if(c&&r&&typeof r=="object"&&"bounds"in r?(a=t,o=r,s=n??{}):c&&r?(a=t,s=r):u?(o=t,s=r??{},a=s.source??o.source):t&&typeof t=="object"&&(s=t,a=s.source),!a){let l=this.children.find(m=>m.kind==="media"&&(m.dataType==="Video"||m.dataType==="Image"));l&&(a=l)}return I.section(a??"",o??s,{compositionWidth:this.width,compositionHeight:this.height,...s})}addSection(t,r,n){let a=this.section(t,r,n);return this.add(a),a}async computeDuration(){if(this.durationMs!==void 0)return this.durationMs;let t=0,r=[];for(let n of[...this.children,...this.audioTracks]){if(n.kind==="media"){let a=n.inputHandleId;typeof a=="string"&&(n.dataType==="Video"||n.dataType==="Audio")&&r.push(a)}if(typeof n.durationFrames=="number"){let o=((typeof n.startFrame=="number"?n.startFrame:0)+n.durationFrames)/this.fps*1e3;o>t&&(t=o)}}for(let n of r)try{let o=await(await On.acquire(n)).computeDuration();if(Number.isFinite(o)&&o>0){let s=Math.round(o*1e3);s>t&&(t=s)}}catch{}return t>0?t:5e3}async registerFont(t,r){let n=await ut.register(t,r);return n.filePath&&!this.fonts.includes(n.filePath)&&this.fonts.push(n.filePath),this}async registerEmojiFont(t){return await ut.registerEmojiFont(t),this}toSpec(){let t=[...this.children,...this.audioTracks],r=ut.getRegisteredFontPaths(),n=Array.from(new Set([...this.fonts,...r]));return{width:this.width,height:this.height,fps:this.fps,mode:"Video",backgroundColor:this.backgroundColor,...this.antialias3d!==void 0&&{antialias3d:this.antialias3d},layout:t,fonts:n,signals:this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...this._frameHooks.length>0&&{onRequestFrame:a=>this.notifyFrame(a)}}}toVirtualMedia(t={}){return Ur(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:t.durationMs??this.durationMs,signals:t.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...t})}async toVirtualMediaAsync(t={}){let r=t.durationMs??this.durationMs??await this.computeDuration();return this.durationMs=r,Ur(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:r,signals:t.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...t})}async renderFrame(t={}){if(this._frameHooks.length>0){let n=t.frame??(t.atMs!==void 0?Math.round(t.atMs/1e3*this.fps):0);this.notifyFrame({frame:n,fps:this.fps,time:this.fps>0?n/this.fps:0,duration:(this.durationMs??0)/1e3,durationMs:this.durationMs??0,progress:this.durationMs&&this.durationMs>0?Math.max(0,Math.min(1,n/this.fps*1e3/this.durationMs)):0,deltaTime:this.fps>0?1/this.fps:0})}return(t.renderer??new ke.HeadlessMediaRenderer).renderFrame(this.toVirtualMedia(),{fps:this.fps,...t})}async renderFrameGrid(t={}){return Cr(this,t)}async renderVideo(t={},r={}){let n=typeof t=="string"?{...r,outputPath:t}:t,o=await(n.renderer??new ke.HeadlessMediaRenderer).renderVideo(this.toVirtualMedia(),n);return Ju(o,n.outputPath)}};function Te(e){let t=e;return Object.defineProperty(t,"animate",{value:(...r)=>{let n=r.flat();if(n.length>1||n.length===1&&Array.isArray(r[0])){let a=n.flatMap(o=>o instanceof Se?o.tracks:o.tracks??[]);t.animation={tracks:a}}else if(n.length===1){let a=n[0];t.animation=a instanceof Se?a.toSpec():a}return t},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"pinToLandmark",{value:(r,n)=>(zn(t,r,n),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"pinToObject",{value:(r,n)=>(Vn(t,r,n),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withMask",{value:r=>(t.mask=r,t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withPbrGlass",{value:r=>(t.glass=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"deformWithAudio",{value:r=>(t.audioDeform=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withCrop",{value:r=>(t.crop=r instanceof ar?r:new ar(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withVision",{value:r=>(t.vision=r instanceof ct?r:new ct(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withRelighting",{value:r=>(t.relighting=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"relight",{value:r=>(t.relighting=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withDeflicker",{value:r=>(t.deflicker=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"apply",{value:r=>(t.effects||(t.effects=[]),t.effects.push(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withEffect",{value:r=>(t.effects||(t.effects=[]),t.effects.push(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withEffects",{value:r=>(t.effects||(t.effects=[]),t.effects.push(...r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"section",{value:(r={},n)=>r!==null&&typeof r=="object"&&"bounds"in r?I.section(t,r,n):I.section(t,r),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"blurRegion",{value:(r,n)=>{let a=new lt({track:r,strength:n?.strength??25,shape:n?.shape??"ellipse",...n});return t.effects||(t.effects=[]),t.effects.push(a),t},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withBlurRegion",{value:(r,n)=>t.blurRegion(r,n),enumerable:!1,writable:!0,configurable:!0}),t}var I={video:(e,t={})=>Te({id:t.id??se("video"),kind:"media",inputHandleId:e,dataType:"Video",fit:t.fit??"cover",...t}),image:(e,t={})=>Te({id:t.id??se("img"),kind:"media",inputHandleId:e,dataType:"Image",fit:t.fit??"cover",...t}),svg:(e,t={})=>Te({id:t.id??se("svg"),kind:"media",inputHandleId:e,dataType:"SVG",fit:t.fit??"contain",...t}),lottie:(e,t={})=>Te({id:t.id??se("lottie"),kind:"media",inputHandleId:e,dataType:"Lottie",fit:t.fit??"contain",...t}),audio:(e,t={})=>Te({id:t.id??se("audio"),kind:"media",inputHandleId:e,dataType:"Audio",volume:t.volume??1,...t}),text:(e,t={})=>{let r=Array.isArray(e),n=!r&&typeof e=="object"&&e!==null,a=n?e:t,o="",s=a.spans;if(r){let u=zr(e);o=u.text,s=u.spans}else n?a.spans&&!a.text?o=zr(a.spans).text:o=a.text??"":o=typeof e=="string"?e:String(e??"");return Te({id:a.id??se("text"),kind:"text",fontFamily:a.fontFamily??ut.getAll()[0]?.family??"Inter",fontSize:a.fontSize??48,fill:a.fill??"#ffffff",...a,text:a.text??o,spans:a.spans??s})},caption:(e,t={})=>Te({id:t.id??se("caption"),kind:"media",inputHandleId:e,dataType:t.dataType??"Caption",fontFamily:t.fontFamily??ut.getAll()[0]?.family??"Inter",fontSize:t.fontSize??48,fill:t.fill??"#ffffff",...t}),shape:(e="rect",t={})=>Te({id:t.id??se("shape"),kind:"shape",shapeType:t.shapeType??e,fillColor:t.fillColor??"#3b82f6",...t}),flex:(e={})=>Te({id:e.id??se("flex"),kind:"flex",dir:e.dir??"column",children:e.children??[],...e}),box:(e={})=>Te({id:e.id??se("box"),kind:"box",background:e.background??"transparent",children:e.children??[],...e}),section:(e,t={},r={})=>{let n=e;if(e&&typeof e=="object"&&"toSpec"in e&&"children"in e){let k=(e.children||[]).find(O=>O.kind==="media"&&(O.dataType==="Video"||O.dataType==="Image"));k&&(n=k)}let a=t!==null&&typeof t=="object"&&"bounds"in t,o=a?r:t,s=a?t:void 0,u=o.padding??0,c=typeof n=="string"?n:n?.inputHandleId??n?.src??"",l=typeof n=="object"&&n?.dataType?n.dataType:"Video",m=o.compositionWidth??o.compWidth??(a?o.width:void 0)??1920,d=o.compositionHeight??o.compHeight??(a?o.height:void 0)??1080,p=Array.isArray(o.effects)?[...o.effects]:o.effects?[o.effects]:[],h=s?s.bounds.screenX.multiply(-1).add(u):typeof o.x=="number"?-o.x:o.x&&typeof o.x.multiply=="function"?o.x.multiply(-1):0,b=s?s.bounds.screenY.multiply(-1).add(u):typeof o.y=="number"?-o.y:o.y&&typeof o.y.multiply=="function"?o.y.multiply(-1):0,f=(l==="Image"?I.image(c,{position:"absolute",width:m,height:d,fit:o.fit??"cover",x:h,y:b}):I.video(c,{position:"absolute",width:m,height:d,fit:o.fit??"cover",x:h,y:b})).withEffects(p),x=s?s.bounds.screenWidth.add(u*2):o.width!==void 0?o.width:m,y=s?s.bounds.screenHeight.add(u*2):o.height!==void 0?o.height:d,v=[f,...o.children??[]],w=o.id??(s?se(`section-track-${s.trackId}`):se("section")),M=I.box({id:w,position:o.position??"absolute",width:x,height:y,x:s?void 0:o.x,y:s?void 0:o.y,borderRadius:o.borderRadius??0,borderColor:o.borderColor,borderWidth:o.borderWidth,opacity:o.opacity??1,overflow:"hidden",children:v});s&&(M=M.pinToObject(s,{anchor:"topLeft",offsetX:-u,offsetY:-u,hideWhenLost:o.hideWhenLost??!0,smoothFrames:o.smoothFrames}));let N=M;return Object.defineProperty(N,"innerMedia",{value:f,enumerable:!0,writable:!1}),Object.defineProperty(N,"effects",{get:()=>p,enumerable:!0}),Object.defineProperty(N,"addEffect",{value:k=>(p.push(k),f.effects=p,N),enumerable:!0,writable:!1}),Object.defineProperty(N,"withEffect",{value:k=>N.addEffect(k),enumerable:!0,writable:!1}),Object.defineProperty(N,"withEffects",{value:k=>{for(let O of k)N.addEffect(O);return N},enumerable:!0,writable:!1}),N},trackedRegion:(e,t,r={})=>I.section(e,t,r),blurTrackedRegion:(e,t,r={})=>{let{padding:n,borderRadius:a,borderColor:o,borderWidth:s,...u}=r;return I.section(e,t,{padding:n??8,borderRadius:a??12,borderColor:o,borderWidth:s,effects:[new lt({strength:u.strength??25,blurType:u.blurType??"Gaussian",...u})]})},chart:(e,t={})=>Nu(e,t,ut.getAll()[0]?.family??"Inter"),camera:(e={})=>Te({id:e.id??se("camera"),kind:"camera",mode:e.mode??"lookAt",pitch:e.pitch??0,yaw:e.yaw??0,roll:e.roll??0,...e}),light:(e={})=>Te({id:e.id??se("light"),kind:"light",lightType:e.lightType??"point",color:e.color??"#ffffff",intensity:e.intensity??1,...e}),ambientLight:(e="#ffffff",t=.5,r={})=>Nn.ambient(e,t,r),directionalLight:(e={})=>Nn.directional(e),pointLight:(e={})=>Nn.point(e),spotLight:(e={})=>Nn.spot(e),cube:e=>Nt.cube(e),carousel3d:e=>Nt.carousel(e),plane3d:e=>Nt.plane(e),prism3d:e=>Nt.prism(e),model:(e={})=>Te({id:e.id??se("model3d"),kind:"model3d",is3D:e.is3D??!0,modelFormat:e.modelFormat??"auto",loop:e.loop??!0,scale:e.scale??1,scaleX:e.scaleX??1,scaleY:e.scaleY??1,scaleZ:e.scaleZ??1,opacity:e.opacity??1,...e}),obj:(e,t={})=>I.model({src:e,modelFormat:"obj",...t}),fbx:(e,t={})=>I.model({src:e,modelFormat:"fbx",...t}),gltf:(e,t={})=>I.model({src:e,modelFormat:"gltf",...t}),glb:(e,t={})=>I.model({src:e,modelFormat:"glb",...t}),stl:(e,t={})=>I.model({src:e,modelFormat:"stl",...t}),ply:(e,t={})=>I.model({src:e,modelFormat:"ply",...t}),vox:(e,t={})=>I.model({src:e,modelFormat:"vox",...t}),threeDS:(e,t={})=>I.model({src:e,modelFormat:"3ds",...t}),off:(e,t={})=>I.model({src:e,modelFormat:"off",...t})},Nn={ambient:(e="#ffffff",t=.5,r={})=>Te({id:r.id??se("light-ambient"),kind:"light",lightType:"ambient",color:e,intensity:t,...r}),directional:(e={})=>Te({id:e.id??se("light-directional"),kind:"light",lightType:"directional",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??-1e3,z:e.z??-1e3,targetX:e.targetX??0,targetY:e.targetY??0,targetZ:e.targetZ??0,...e}),point:(e={})=>Te({id:e.id??se("light-point"),kind:"light",lightType:"point",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??0,z:e.z??-500,radius:e.radius??1e3,decay:e.decay??1,...e}),spot:(e={})=>Te({id:e.id??se("light-spot"),kind:"light",lightType:"spot",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??-500,z:e.z??-1e3,targetX:e.targetX??0,targetY:e.targetY??0,targetZ:e.targetZ??0,angle:e.angle??45,penumbra:e.penumbra??.2,radius:e.radius??2e3,decay:e.decay??1,...e})};function Z2(e,t={},r={}){return I.section(e,t,r)}function q2(e,t,r={}){return typeof e=="object"&&"blurRegion"in e?e.blurRegion(t,r):I.blurTrackedRegion(e,t,r)}function K2(e,t,r={}){return I.section(e,t,r)}var Yp=Object.assign(jo,{blur:e=>new lt(e),vignette:e=>new Hn(e),colorBalance:e=>new $n(e),colorKey:e=>new Wn(e),levels:e=>new Yn(e),filmGrain:e=>new Xn(e),curves:e=>new qn(e),selectiveColor:e=>new Kn(e),gradientMap:e=>new Jn(e),shadowsHighlights:e=>new Qn(e),applyLut:e=>new ea(e),unsharpMask:e=>new ta(e),highPass:e=>new ra(e),halftoneScreen:e=>new na(e),tileOffset:e=>new aa(e),motionBlur:e=>new oa(e),ssao:e=>new ia(e),pbrGlass:e=>new sa(e),depthOfField:e=>new ua(e),crop:e=>new ar(e),vision:e=>new ct(e),relight3d:e=>new la(e),modulate:e=>new da(e),deflicker:e=>new ca(e),custom:(e,t={})=>new Zn(e,t)});var export_HeadlessMediaRenderer=ke.HeadlessMediaRenderer;var export_HeadlessWebGPURenderer=ke.HeadlessWebGPURenderer;var export_formatQaReport=ke.formatQaReport;var export_renderSemaphore=ke.renderSemaphore;export{Rt as AETextAnimatorSchema,ya as AdvancedTextAnimatorBuilder,Sa as AdvancedTextAnimatorSchema,ii as AnchorGroupingSchema,si as AnchorPresetSchema,Di as AnimatableGlyphPropsSchema,zf as AnimationTypeSchema,Ef as AnyOutputUnionSchema,ea as ApplyLUT,Af as AudioExtractorSignalDataSchema,il as AudioLatentEngine,sl as AudioLatentTrackCache,wl as AudioMeshDeformPipeline,Zl as AudioSignal,Ql as AudioSignalExtractor,fi as AudioSpectrumTypographySchema,th as BaseMediaOperationPropsSchema,Xf as BaseVideoLayerPropsSchema,lt as Blur,Yi as BoxNodeSchema,dh as CAPTION_LAYER_DEFAULTS,$l as COCO17_BONES,Vl as COCO17_KEYPOINTS,jl as COCO17_KEYPOINT_NAMES,Gl as COCO_CLASSES,vf as COMPOSITE_OPERATIONS,Mf as COMPOSITOR_DEFAULTS,fl as Camera3D,xa as CameraAnimation,ji as CameraNodeSchema,ir as CannyComputePipeline,ts as CarrierHandoffConfigSchema,pi as ChromaticGlitchConfigSchema,$n as ColorBalance,Wn as ColorKey,ed as ColorStopSchema,Ku as Composition,td as CompositorProgramSchema,of as ConfigHandleSchema,Sf as ConfigSchemaRegistry,or as ControlNetMultiplexer,ar as Crop,xi as CubicBezierSegmentSchema,qn as Curves,Zn as CustomEffect,xf as DATA_TYPE_EXTENSIONS,Au as DEFAULT_CHART_COLORS,uh as DEFAULT_DURATION_MS,sh as DEFAULT_FPS,lh as DEFAULT_MEDIA_DIMENSION,df as DataType,cf as DataTypeVal,mf as DataTypes,sr as DepthNormalsComputePipeline,ua as DepthOfField,di as DynamicStrokePropertiesSchema,Ah as Easing,Yp as Effect,ml as EffectPipeline,bc as EnhancedTextNodeSchema,Gf as ExportResultSchema,gc as ExpressionSelectorSchema,bi as ExtendedGlyphPropertiesSchema,ih as ExtendedLayerSchema,hf as FileAssetSchema,kf as FileDataSchema,Xn as FilmGrain,Hi as FlexNodeSchema,ut as FontManager,Cf as GeneratorSignalDataSchema,pa as GlassPipeline,wf as GlobalCompositeOperation,Oi as GlyphAnchorGroupingSchema,Fi as GlyphAnchorPointSchema,Jn as GradientMap,na as HalftoneScreen,pf as HandleTypeVal,export_HeadlessMediaRenderer as HeadlessMediaRenderer,export_HeadlessWebGPURenderer as HeadlessWebGPURenderer,ra as HighPass,ff as JsonValueSchema,wa as KineticMarqueeConfigSchema,yg as LIGHT_UNIFORM_SIZE_BYTES,I as Layer,Nt as Layer3D,Se as LayerAnimation,Aa as LayoutNodeSchema,Yn as Levels,Nn as Light,hl as Light3D,Wi as LightNodeSchema,$i as LightTypeSchema,fc as LineSpacingDynamicsSchema,hi as LongShadowConfigSchema,xg as MAX_LIGHTS,yf as MIME_TYPES,Gi as MaterialTypeSchema,Gr as Matrix4Math,qu as Media,Jf as MediaMetadataSchema,Ki as MediaNodeSchema,ah as MediaOperationSchema,Kf as MediaSourceSchema,Qi as Model3DNodeSchema,rf as ModerationError,nf as ModerationUnrefundableError,da as Modulate,oa as MotionBlur,fa as MotionBlurPipeline,Uf as MultiOutputGenericSchema,sf as NodeMetadataSchema,_f as NodeResultSchema,gf as NodeVisualConfigSchema,In as OpticalFlowComputePipeline,Rf as OutputItemSchema,sa as PBRGlass,gi as ParticleDissolveConfigSchema,ma as Path3D,Wl as PoseSkeletonRenderer,Ot as ProgrammaticSignal,la as Relight3D,pl as Renderer2D,Sl as Renderer3D,ia as SSAO,ga as SSAOPipeline,dr as Scene,rd as SceneDefinitionSchema,es as SceneTransitionTypeSchema,Hl as SegmentationTexturePool,Kn as SelectiveColor,Wr as SelectorBasedOnSchema,Hr as SelectorModeSchema,Ti as SelectorShapeSchema,ki as SelectorUnitsSchema,Na as Sequence,ha as ShadowPipeline,Qn as ShadowsHighlights,Ji as ShapeNodeSchema,Dl as Signal,Pf as SignalChannelMetaSchema,Of as SignalDataSchema,Df as SignalGateDataSchema,Nf as SignalMathDataSchema,Tf as SignalStatsSchema,If as SingleOutputGenericSchema,pc as SkewPropertiesSchema,Dt as SlugFontCache,dl as SlugPipeline,rh as SourceOperationSchema,hc as Spatial3DPropertiesSchema,Xl as SpatialLandmarkTransformer,ci as SpringPhysicsSchema,ch as TEXT_LAYER_DEFAULTS,ca as TemporalDeflicker,Un as TemporalDeflickerPipeline,zl as TemporalObjectTracker,Ft as TensorPipeline,ui as TextAnchorConfigSchema,Yc as TextAnimator,ka as TextAnimatorBuilder,Vi as TextAnimatorSchema,wi as TextCursorConfigSchema,vi as TextCursorStyleSchema,qi as TextNodeSchema,nh as TextOperationSchema,Ma as TextPathBuilder,Lt as TextPathOptionsSchema,yi as TextPathSourceSchema,Pi as TextRangeSelectorSchema,Mi as TextScrambleConfigSchema,Ni as TextSelectorSchema,Ai as TextSignalSelectorSchema,Xi as TextSpanMarkSchema,Zi as TextSpanSchema,Ci as TextWigglySelectorSchema,aa as TileOffset,Qf as TimelineSegmentSchema,eh as TimelineTransformSchema,qf as TransitionSchema,Zf as TransitionTypeSchema,$r as TypewriterAnimatorSchema,Si as TypingCadenceSchema,ta as UnsharpMask,mi as VariableFontAxesSchema,lr as Vec2Schema,Ie as Vector3Math,Vf as VideoAnimationSchema,Yf as VideoLayerTypeSchema,jf as VideoSpatialPropsSchema,Hf as VideoStylePropsSchema,Wf as VideoTextPropsSchema,$f as VideoTimingPropsSchema,Hn as Vignette,oh as VirtualMediaDataSchema,ct as Vision,Gn as VisionBundle,nr as VisionNode,_n as VisionRunner,va as VolumetricFormationConfigSchema,li as VolumetricFormationModeSchema,oc as accent,En as analyzeSequence,Wo as appendOperation,El as applyStaggerToChildren,Ch as bezier,q2 as blurRegion,nc as bold,Cc as buildPathLUT,rs as calculateSequenceTimeline,kh as checkNodeResultCache,dc as code,_l as collectNodeOps,ic as color,Ur as compositorToProgram,vc as computeAnchorPivotOffset,nd as computeCarrierContinuity,Mo as computeGridLayout,Rl as computeLayout,Ll as computeLayoutSync,wc as computeLineLeadingDisplacement,Oc as computeRangeSelectorWeight,Ul as computeStaggerDelay,cg as computeStrokeRect,bh as computeVideoCropRenderProps,Pl as computed,Nl as cosineSignal,Bf as createOutputItemSchema,$o as createVirtualMedia,bf as dataTypeColors,Lf as deserializeSignalData,Fc as deterministicWigglyNoise,Ta as distanceToCurveParameter,K2 as editTrackedRegion,Ri as ellipseToCubicBeziers,jn as encodeStereoWav,ul as ensureDevice,Il as evaluateAnimationAtFrame,Yr as evaluateCubicBezier,cr as evaluateCubicBezierDerivative,Sc as evaluateExpressionSelector,kc as evaluateMarqueeOffset,Rc as evaluateSelectorCombination,yc as evaluateSkewMatrix,xc as evaluateSpringProgress,Bl as evaluateTrackAtFrame,Bc as evaluateTypewriterState,Mc as evaluateVolumetricFormation,Ph as extractSvgDimensions,Mh as findSourceAsset,export_formatQaReport as formatQaReport,Kp as frameArraySignal,Jp as frameSignal,Li as generateArcLengthLUT,af as generateId,Dc as generatePathSegments,gh as getActiveMediaMetadata,hh as getFileDataMetadata,yh as getFingerprint,mh as getLeafMediaType,fh as getMediaType,vh as getRenderFingerprint,Ei as getScramblePool,Lc as getShuffledOrder,Sh as hasOnlySingleSource,On as inputStore,Nh as interpolate,xh as isEqual,qp as isSignal,wh as isVirtualMediaData,ac as italic,vl as loadFBX,Ml as loadModel3D,xl as loadOBJ,ll as lutStore,ig as mapBlendModeToSkia,uc as mark,Lh as measureSpring,Bh as measureText,Ih as measureTextAsync,Fl as mixAudioTracks,Kl as mixSfxInto,zr as normalizeTextSpans,vg as parseColorToRgb,yl as parseFBX,bl as parseMTL,mc as parseMarkup,gl as parseOBJ,Ii as parseSvgPathToCubicBeziers,zn as pinNodeToLandmark,Vn as pinNodeToObject,Oh as preloadCompositionFonts,Dh as preloadFont,Xp as programmaticSignal,ef as progressSignal,Zp as registerSignalDependency,Cr as renderFrameGrid,export_renderSemaphore as renderSemaphore,ql as renderSfx,uf as reportRenderDiagnostic,sg as requiresIsolation,ph as resolveMediaMimeType,So as resolveSamplePoints,tc as rich,Tc as sampleAudioSpectrumScale,Pc as sampleCurveGeometry,Ac as samplePathChainGeometry,Z2 as section,Ff as serializeSignalData,al as shaderStore,Tl as signal,Cl as signalBuilder,ol as signalRegistry,Al as sineSignal,sc as size,Jl as softLimit,rc as span,Rh as spring,Fh as springCalculation,Th as stampResult,Bp as startPreview,cc as sub,lc as sup,lf as takeRenderDiagnostics,cl as textureCache,Qp as timeSignal,tf as updateClockSignals,Bi as waveToCubicBeziers};
|
|
1966
|
+
`),u.add(B),clearTimeout(l),f||(f=!0,h(c===!1?"page opened":`page opened; the server stops ${Number((c/1e3).toFixed(1))} s after its last tab closes`)),_?.(),L.on("close",()=>{u.delete(B),u.size===0&&c!==!1&&!P&&(l=setTimeout(()=>{u.size===0&&$("idle")},c))});return}if(L.method==="POST"&&z.pathname==="/takeover"&&L.headers[qu]==="1"){Ze(B,200,{ok:!0}),setImmediate(()=>{$("replaced")});return}if(L.method==="POST"&&z.pathname==="/@framefields/log"&&L.headers["content-type"]==="application/json"){let Y=await Xu(L,16384),{message:Q,level:D}=JSON.parse(Y),O=String(Q??"").trim();O&&!b.has(O)&&b.size<200&&(b.add(O),h(`${D==="warning"?"warning":"error"} in the page: ${O}`)),B.writeHead(204).end();return}if(x&&z.pathname==="/@framefields/notes"){if(L.method==="GET"){Ze(B,200,await x.list());return}if(L.method==="POST"&&L.headers["content-type"]==="application/json"){let Y=JSON.parse(await Xu(L,16777216)),Q=y.then(()=>pf(x,Y,w.fps,h));y=Q.catch(()=>{});let D=await Q;V("notes",await x.list()),Ze(B,D?200:404,D??{error:"no such note"});return}}if(L.method==="GET"&&z.pathname==="/audio"){if(F.state!=="ready"||!U){Ze(B,404,{error:`audio is ${F.state}`});return}B.writeHead(200,{"content-type":"audio/wav","content-length":U.length,"cache-control":"no-store"}),B.end(U);return}let K=/^\/assets\/fonts\/([^/]+)$/.exec(z.pathname);if(K&&(L.method==="GET"||L.method==="HEAD")){let Y=j.join(S.cwd(),"assets","fonts",decodeURIComponent(K[1]));if(await Co(Y)){await Ao(L,B,Y);return}}if(L.method==="GET"||L.method==="HEAD"){let Y=j.resolve(decodeURIComponent(z.pathname.replace(/^\/@fs(?=\/)/,"")));if(s.some(Q=>To(Q,Y))&&await Co(Y)){await Ao(L,B,Y);return}}Ze(B,404,{error:"not found"})}catch(K){B.headersSent?B.end():Ze(B,500,{error:K instanceof Error?K.message:String(K)})}}),_,E=t.host??"127.0.0.1",W=t.port??bf(),re=L=>new Promise((B,z)=>{let K=Q=>{H.off("listening",Y),z(Q)},Y=()=>{H.off("error",K),B()};H.once("error",K),H.once("listening",Y),H.listen(L,E)});try{await re(W)}catch(L){if(L.code!=="EADDRINUSE")throw L;if(await xf(E,W))await re(W).catch(()=>re(0));else if(t.port===void 0)await re(0);else throw L}let{port:de}=H.address(),ae=`http://${E.includes(":")?`[${E}]`:E}:${de}/`;if(N().catch(()=>{}),te(),t.open===!0){let L=await new Promise(B=>{let z=setTimeout(()=>B(!1),2e3);_=()=>{clearTimeout(z),B(!0)},u.size>0&&_()});_=void 0,L||vf(ae)}return{url:ae,closed:T,close:()=>$()}}async function df(e,t){let n=(await import(_r(e).href))[t];if(n===void 0)throw new Error(`[framefields] ${e} has no export named "${t}" to preview.`);return typeof n=="function"?await n():n}function mf(e){let t;for(let r=e;;r=j.dirname(r)){if(he.existsSync(j.join(r,".git")))return r;if(!t&&he.existsSync(j.join(r,"package.json"))&&(t=r),j.dirname(r)===r)return t??e}}async function pf(e,t,r,n){if(t.op==="add"&&t.note&&String(t.note.text).trim()){let o=await e.add(t.note),s=[o.image&&`frame with the spot marked: ${o.image}`,`all notes: ${e.file}`];return n(`${Hu(o,r)}
|
|
1967
|
+
${s.filter(Boolean).join(" \xB7 ")}`),o}let a=Number(t.id);if(t.op==="update"){let o=await e.update(a,t);return o&&typeof t.done=="boolean"&&n(`note ${a} marked ${o.done?"done":"open"}`),o}if(t.op==="remove"){let o=await e.remove(a);return o&&n(`note ${a} deleted`),o}}function ff(e){return e instanceof Error?e.message:String(e)}function Xu(e,t){return new Promise((r,n)=>{let a="";e.setEncoding("utf8"),e.on("data",o=>{a+=o,a.length>t&&(n(new Error("request body too large")),e.destroy())}),e.on("end",()=>r(a)),e.on("error",n)})}function To(e,t){let r=j.relative(e,t);return!!r&&!r.startsWith("..")&&!j.isAbsolute(r)}async function Co(e){try{return(await he.promises.stat(e)).isFile()}catch{return!1}}var hf={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif",".svg":"image/svg+xml",".mp4":"video/mp4",".mov":"video/quicktime",".webm":"video/webm",".mp3":"audio/mpeg",".wav":"audio/wav",".m4a":"audio/mp4",".ogg":"audio/ogg",".ttf":"font/ttf",".otf":"font/otf",".woff":"font/woff",".woff2":"font/woff2",".json":"application/json",".js":"text/javascript; charset=utf-8",".mjs":"text/javascript; charset=utf-8",".wasm":"application/wasm",".onnx":"application/octet-stream",".srt":"text/plain; charset=utf-8",".txt":"text/plain; charset=utf-8"};async function Ao(e,t,r){let{size:n}=await he.promises.stat(r),a=hf[j.extname(r).toLowerCase()]??"application/octet-stream",o=/^bytes=(\d*)-(\d*)$/.exec(e.headers.range??""),s=0,u=n-1;if(o&&(o[1]||o[2])&&(o[1]?(s=Number(o[1]),o[2]&&(u=Math.min(u,Number(o[2])))):s=Math.max(0,n-Number(o[2])),s>u||s>=n)){t.writeHead(416,{"content-range":`bytes */${n}`}),t.end();return}if(t.writeHead(o?206:200,{"content-type":a,"content-length":u-s+1,"accept-ranges":"bytes","cache-control":"no-cache",...o&&{"content-range":`bytes ${s}-${u}/${n}`}}),e.method==="HEAD"){t.end();return}he.createReadStream(r,{start:s,end:u}).pipe(t)}async function gf(e,t,r,n){let a=e.fps??24,o=e.durationMs??await e.computeDuration?.()??5e3;return{session:r,notesDir:n,title:t,fps:a,frameCount:Math.max(1,Math.round(o/1e3*a)),width:e.width??1920,height:e.height??1080}}function bf(){return 41e3+(0,An.createHash)("sha1").update(S.cwd()).digest().readUInt16BE(0)%900}async function xf(e,t){let r=await new Promise(n=>{let a=No.default.request({host:e,port:t,method:"POST",path:"/takeover",agent:!1,headers:{[qu]:"1"},timeout:1500},o=>{o.resume(),n(o.statusCode===200)});a.on("timeout",()=>a.destroy()),a.on("error",()=>n(!1)),a.end()});return r&&await new Promise(n=>setTimeout(n,150)),r}function yf(e,t,r){let n=new Array(r).fill(0);if(e.length===0)return n;let a=e.length/r;for(let o=0;o<r;o++){let s=Math.floor(o*a),u=Math.min(e.length,Math.floor((o+1)*a)),c=0;for(let l=s;l<u;l++){let m=Math.max(Math.abs(e[l]??0),Math.abs(t[l]??0));m>c&&(c=m)}n[o]=Math.min(1,c)}return n}function Ze(e,t,r){e.writeHead(t,{"content-type":"application/json","cache-control":"no-store"}),e.end(JSON.stringify(r))}function vf(e){let[t,r]=S.platform==="darwin"?["open",[e]]:S.platform==="win32"?["cmd",["/c","start","",e]]:["xdg-open",[e]];try{(0,Zu.spawn)(t,r,{stdio:"ignore",detached:!0}).on("error",()=>{}).unref()}catch{}}function Do(e,t){return e&&(t&&!e.source&&Object.defineProperty(e,"source",{value:t,enumerable:!0,writable:!0,configurable:!0}),typeof e.section!="function"&&Object.defineProperty(e,"section",{value:(r,n)=>{if(typeof r=="object"&&r!==null&&!("kind"in r)&&!("inputHandleId"in r)&&!("src"in r)){let o=r.source??e.source??t;return I.section(o,e,r)}let a=r??e.source??t;return I.section(a,e,n)},enumerable:!1,writable:!0,configurable:!0}),typeof e.blurEffect!="function"&&Object.defineProperty(e,"blurEffect",{value:r=>new lt({track:e,...r}),enumerable:!1,writable:!0,configurable:!0}),typeof e.isolate!="function"&&Object.defineProperty(e,"isolate",{value:(r,n)=>I.section(r,e,n),enumerable:!1,writable:!0,configurable:!0}),e)}var wf=nr.attach;nr.attach=function(e,t,r){let n=wf.call(this,e,t,r);if(n?.objects){let a=e,o=n.objects.get.bind(n.objects);n.objects.get=u=>Do(o(u),a);let s=n.objects.byCategory.bind(n.objects);n.objects.byCategory=(u,c)=>Do(s(u,c),a),n.objects.primary&&Do(n.objects.primary,a)}return n};var Ku=class e{virtualMedia;constructor(t,r="Video"){this.virtualMedia=Vo(t,r)}static video(t,r){let n=new e(t,"Video");return r&&Object.assign(n.virtualMedia.metadata,r),n}static image(t,r){let n=new e(t,"Image");return r&&Object.assign(n.virtualMedia.metadata,r),n}static audio(t,r){let n=new e(t,"Audio");return r&&Object.assign(n.virtualMedia.metadata,r),n}apply(t,r={}){let n;t instanceof Sf||typeof t=="object"&&t!==null&&"op"in t?n=t.toOperation():n={op:t,...r};let a=jo(this.virtualMedia,{...n,dataType:this.virtualMedia.operation.dataType});return new e(a)}toVirtualMedia(){return this.virtualMedia}async renderFrame(t={}){return(t.renderer??new ke.HeadlessMediaRenderer).renderFrame(this.virtualMedia,t)}get fps(){return this.virtualMedia.metadata?.fps??void 0}get durationMs(){return this.virtualMedia.metadata?.durationMs??void 0}get width(){return this.virtualMedia.metadata?.width??void 0}get height(){return this.virtualMedia.metadata?.height??void 0}async renderFrameGrid(t={}){return Cr(this,t)}async renderVideo(t={},r={}){let n=typeof t=="string"?{...r,outputPath:t}:t,o=await(n.renderer??new ke.HeadlessMediaRenderer).renderVideo(this.virtualMedia,n);return Qu(o,n.outputPath)}};async function Qu(e,t){if(!t)return e;let r=j.resolve(t);return await rr.mkdir(j.dirname(r),{recursive:!0}),await rr.copyFile(e.filePath,r),await e.cleanup(),{...e,filePath:r,cleanup:async()=>{}}}var Ju=class e{width;height;fps;durationMs;backgroundColor;antialias3d;fonts;children=[];audioTracks=[];signals={};_frameHooks=[];_visionConfig;_visionBundle;_effects=[];apply(t){return t instanceof ct?(this.withVision(t),this):(this._effects.push(t),this)}withVision(t={}){this._visionBundle??=new Gn({width:this.width,height:this.height,fps:this.fps});let r=t instanceof ct?t.config:t;return this._visionConfig={...r,visionBundle:this._visionBundle},this._visionBundle}async analyzeVisionSequence(t,r={}){let n=r.fps??this.fps,a=this.durationMs??await this.computeDuration(),o=r.totalFrames??Math.max(1,Math.round(a/1e3*n)),s=_n.create({modelsDir:r.modelsDir,baseUrl:r.baseUrl,...r.confidence!==void 0?{confidence:r.confidence}:{},...r.variant!==void 0?{variant:r.variant}:{}}),u=Wo.getVideo(t,!0);async function*c(){for(let l=0;l<o;l++){let m=await u.getFrame(l/n);m?.buffer&&m.width>0&&m.height>0&&(yield{data:m.buffer,width:m.width,height:m.height})}}try{return await En(c(),{runner:s,source:t,fps:n,...r.tasks!==void 0?{tasks:r.tasks}:{},...r.categories!==void 0?{categories:r.categories}:{},...r.pathStride!==void 0?{pathStride:r.pathStride}:{},...r.includeMasks!==void 0?{includeMasks:r.includeMasks}:{},...r.iouThreshold!==void 0?{iouThreshold:r.iouThreshold}:{}})}finally{s.close(),u.destroy()}}onRequestFrame(t){return this._frameHooks.push(t),this}notifyFrame(t){for(let r of this._frameHooks)r(t)}constructor(t){this.width=t.width,this.height=t.height,this.fps=t.fps??60,this.durationMs=t.durationMs??(t.durationFrames!==void 0?t.durationFrames/this.fps*1e3:void 0),this.backgroundColor=t.backgroundColor??"#000000",this.antialias3d=t.antialias3d,this.fonts=t.fonts??[],this.signals=t.signals??{}}static create(t){return new e(t)}addSignal(t,r){return this.signals[t]=r,this}add(t,...r){if(t instanceof Lt)this.children.push(t.toNode());else if(t instanceof nr)this.children.push(t.toNode());else{if(t&&typeof t=="object"&&"node"in t)return this.add(t.node,...r),this;if(Array.isArray(t))for(let n of t)this.add(n);else{let n=t,a=r[0];if(a&&!(a instanceof Lt)&&!Array.isArray(a)&&(a instanceof Se||"tracks"in a))return n.animation=a instanceof Se?a.toSpec():a,this.children.push(n),this;this.children.push(n)}}for(let n of r)n&&!(n instanceof Se)&&!("tracks"in n)&&this.add(n);return this}addAudio(t){return this.audioTracks.push(t),this}addSubjectSandwich(t){let r=typeof t.source=="string"?t.source:t.source.inputHandleId??"",n=t.fit??"cover",a=t.feather??4,o=a>1?a/100:a,s=t.variant??"s",u=I.video(r,{width:this.width,height:this.height,position:"absolute",x:0,y:0,fit:n,muted:t.muted??!1,volume:t.muted?0:t.volume??1});this.add(u);for(let l of t.behind)this.add(l);let c=I.video(r,{width:this.width,height:this.height,position:"absolute",x:0,y:0,fit:n,muted:!0,volume:0}).withVision({mode:"matte",enableSegmentation:!0,variant:s,confidence:t.confidence??.25,featherRadius:o,keyBackground:t.keyBackground??!0,backgroundKeyThreshold:t.backgroundKeyThreshold});return this.add(c),this}addSmartFraming(t){let r=typeof t.source=="string"?t.source:t.source.inputHandleId??"",n=Math.max(0,Math.min(.99,t.damping??.8)),a=t.leadHeadroom??.18,o=this.width,s=this.height,u=t.sourceAspect??16/9,c=o/s,l=c<u?Math.round(s*u):o,m=c<u?s:Math.round(o/u),d=o-l,p=s-m,h=t.target,b=new Dt(M=>{if(d>=0)return 0;let N=h.center?.x?h.center.x.get(M):h.bounds?.centerX?h.bounds.centerX.get(M)/o:h.center?.screenX?h.center.screenX.get(M)/o:.5,F=Math.max(0,Math.min(1,N))*l,U=o/2-F;return Math.max(d,Math.min(0,U))},{fps:this.fps,label:"smart_framing_pan_x"}),f=new Dt(M=>{if(p>=0)return 0;let N=h.center?.y?h.center.y.get(M):h.bounds?.centerY?h.bounds.centerY.get(M)/s:h.center?.screenY?h.center.screenY.get(M)/s:.5,F=Math.max(0,Math.min(1,N))*m,U=s*a-F;return Math.max(p,Math.min(0,U))},{fps:this.fps,label:"smart_framing_pan_y"}),x=new Dt(M=>{let N=M.frame;if(N<=0)return b.get(M);let k=b.get({...M,frame:0,time:0}),F=1-n;for(let U=1;U<=N;U++){let V=b.get({...M,frame:U,time:U/M.fps});k=k+F*(V-k)}return k},{fps:this.fps,label:"smart_framing_smooth_x"}),y=new Dt(M=>{let N=M.frame;if(N<=0)return f.get(M);let k=f.get({...M,frame:0,time:0}),F=1-n;for(let U=1;U<=N;U++){let V=f.get({...M,frame:U,time:U/M.fps});k=k+F*(V-k)}return k},{fps:this.fps,label:"smart_framing_smooth_y"}),v=I.box({width:o,height:s,overflow:"hidden",position:"relative"}),w=I.video(r,{width:l,height:m,position:"absolute",x,y,fit:t.fit??"cover",muted:t.muted??!1,volume:t.muted?0:t.volume??1});return v.children||(v.children=[]),v.children.push(w),this.add(v),this}addSubjectOutline(t,r={}){let n=r.blur??12,a=this.width,o=this.height,s=r.pulseSignal,u=s?new Dt(m=>Math.max(0,Math.min(1,Number(s.get(m))||0)),{fps:this.fps,label:"outline_pulse"}):1,c=typeof r.source=="string"?r.source:r.source?.inputHandleId??"",l=I.box({width:a,height:o,position:"absolute",x:0,y:0,opacity:u});if(c){let m=I.video(c,{width:a,height:o,position:"absolute",x:0,y:0,fit:"cover",muted:!0,volume:0}).withVision({mode:"mask",enableSegmentation:!0});l.children||(l.children=[]),l.children.push(m)}return l.apply(new lt({strength:n,blurType:"Gaussian"})),this.add(l),this}section(t,r,n){let a,o,s={},u=t!==null&&typeof t=="object"&&"bounds"in t,c=typeof t=="string"||t!==null&&typeof t=="object"&&("kind"in t||"src"in t||"inputHandleId"in t);if(c&&r&&typeof r=="object"&&"bounds"in r?(a=t,o=r,s=n??{}):c&&r?(a=t,s=r):u?(o=t,s=r??{},a=s.source??o.source):t&&typeof t=="object"&&(s=t,a=s.source),!a){let l=this.children.find(m=>m.kind==="media"&&(m.dataType==="Video"||m.dataType==="Image"));l&&(a=l)}return I.section(a??"",o??s,{compositionWidth:this.width,compositionHeight:this.height,...s})}addSection(t,r,n){let a=this.section(t,r,n);return this.add(a),a}async computeDuration(){if(this.durationMs!==void 0)return this.durationMs;let t=0,r=[];for(let n of[...this.children,...this.audioTracks]){if(n.kind==="media"){let a=n.inputHandleId;typeof a=="string"&&(n.dataType==="Video"||n.dataType==="Audio")&&r.push(a)}if(typeof n.durationFrames=="number"){let o=((typeof n.startFrame=="number"?n.startFrame:0)+n.durationFrames)/this.fps*1e3;o>t&&(t=o)}}for(let n of r)try{let o=await(await Fn.acquire(n)).computeDuration();if(Number.isFinite(o)&&o>0){let s=Math.round(o*1e3);s>t&&(t=s)}}catch{}return t>0?t:5e3}async registerFont(t,r){let n=await ut.register(t,r);return n.filePath&&!this.fonts.includes(n.filePath)&&this.fonts.push(n.filePath),this}async registerEmojiFont(t){return await ut.registerEmojiFont(t),this}toSpec(){let t=[...this.children,...this.audioTracks],r=ut.getRegisteredFontPaths(),n=Array.from(new Set([...this.fonts,...r]));return{width:this.width,height:this.height,fps:this.fps,mode:"Video",backgroundColor:this.backgroundColor,...this.antialias3d!==void 0&&{antialias3d:this.antialias3d},layout:t,fonts:n,signals:this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...this._frameHooks.length>0&&{onRequestFrame:a=>this.notifyFrame(a)}}}toVirtualMedia(t={}){return Ur(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:t.durationMs??this.durationMs,signals:t.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...t})}async toVirtualMediaAsync(t={}){let r=t.durationMs??this.durationMs??await this.computeDuration();return this.durationMs=r,Ur(this.toSpec(),{isVideoMode:!0,fps:this.fps,durationMs:r,signals:t.signals??this.signals,...this._effects.length>0&&{effects:this._effects},...this._visionConfig&&{vision:this._visionConfig},...t})}async renderFrame(t={}){if(this._frameHooks.length>0){let n=t.frame??(t.atMs!==void 0?Math.round(t.atMs/1e3*this.fps):0);this.notifyFrame({frame:n,fps:this.fps,time:this.fps>0?n/this.fps:0,duration:(this.durationMs??0)/1e3,durationMs:this.durationMs??0,progress:this.durationMs&&this.durationMs>0?Math.max(0,Math.min(1,n/this.fps*1e3/this.durationMs)):0,deltaTime:this.fps>0?1/this.fps:0})}return(t.renderer??new ke.HeadlessMediaRenderer).renderFrame(this.toVirtualMedia(),{fps:this.fps,...t})}async renderFrameGrid(t={}){return Cr(this,t)}async renderVideo(t={},r={}){let n=typeof t=="string"?{...r,outputPath:t}:t,o=await(n.renderer??new ke.HeadlessMediaRenderer).renderVideo(this.toVirtualMedia(),n);return Qu(o,n.outputPath)}};function Pe(e){let t=e;return Object.defineProperty(t,"animate",{value:(...r)=>{let n=r.flat();if(n.length>1||n.length===1&&Array.isArray(r[0])){let a=n.flatMap(o=>o instanceof Se?o.tracks:o.tracks??[]);t.animation={tracks:a}}else if(n.length===1){let a=n[0];t.animation=a instanceof Se?a.toSpec():a}return t},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"pinToLandmark",{value:(r,n)=>(zn(t,r,n),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"pinToObject",{value:(r,n)=>(Vn(t,r,n),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withMask",{value:r=>(t.mask=r,t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withPbrGlass",{value:r=>(t.glass=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"deformWithAudio",{value:r=>(t.audioDeform=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withCrop",{value:r=>(t.crop=r instanceof ar?r:new ar(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withVision",{value:r=>(t.vision=r instanceof ct?r:new ct(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withRelighting",{value:r=>(t.relighting=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"relight",{value:r=>(t.relighting=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withDeflicker",{value:r=>(t.deflicker=r??{},t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"apply",{value:r=>(t.effects||(t.effects=[]),t.effects.push(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withEffect",{value:r=>(t.effects||(t.effects=[]),t.effects.push(r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withEffects",{value:r=>(t.effects||(t.effects=[]),t.effects.push(...r),t),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"section",{value:(r={},n)=>r!==null&&typeof r=="object"&&"bounds"in r?I.section(t,r,n):I.section(t,r),enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"blurRegion",{value:(r,n)=>{let a=new lt({track:r,strength:n?.strength??25,shape:n?.shape??"ellipse",...n});return t.effects||(t.effects=[]),t.effects.push(a),t},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(t,"withBlurRegion",{value:(r,n)=>t.blurRegion(r,n),enumerable:!1,writable:!0,configurable:!0}),t}var I={video:(e,t={})=>Pe({id:t.id??se("video"),kind:"media",inputHandleId:e,dataType:"Video",fit:t.fit??"cover",...t}),image:(e,t={})=>Pe({id:t.id??se("img"),kind:"media",inputHandleId:e,dataType:"Image",fit:t.fit??"cover",...t}),svg:(e,t={})=>Pe({id:t.id??se("svg"),kind:"media",inputHandleId:e,dataType:"SVG",fit:t.fit??"contain",...t}),lottie:(e,t={})=>Pe({id:t.id??se("lottie"),kind:"media",inputHandleId:e,dataType:"Lottie",fit:t.fit??"contain",...t}),audio:(e,t={})=>Pe({id:t.id??se("audio"),kind:"media",inputHandleId:e,dataType:"Audio",volume:t.volume??1,...t}),text:(e,t={})=>{let r=Array.isArray(e),n=!r&&typeof e=="object"&&e!==null,a=n?e:t,o="",s=a.spans;if(r){let u=zr(e);o=u.text,s=u.spans}else n?a.spans&&!a.text?o=zr(a.spans).text:o=a.text??"":o=typeof e=="string"?e:String(e??"");return Pe({id:a.id??se("text"),kind:"text",fontFamily:a.fontFamily??ut.getAll()[0]?.family??"Inter",fontSize:a.fontSize??48,fill:a.fill??"#ffffff",...a,text:a.text??o,spans:a.spans??s})},caption:(e,t={})=>Pe({id:t.id??se("caption"),kind:"media",inputHandleId:e,dataType:t.dataType??"Caption",fontFamily:t.fontFamily??ut.getAll()[0]?.family??"Inter",fontSize:t.fontSize??48,fill:t.fill??"#ffffff",...t}),shape:(e="rect",t={})=>Pe({id:t.id??se("shape"),kind:"shape",shapeType:t.shapeType??e,fillColor:t.fillColor??"#3b82f6",...t}),flex:(e={})=>Pe({id:e.id??se("flex"),kind:"flex",dir:e.dir??"column",children:e.children??[],...e}),box:(e={})=>Pe({id:e.id??se("box"),kind:"box",background:e.background??"transparent",children:e.children??[],...e}),section:(e,t={},r={})=>{let n=e;if(e&&typeof e=="object"&&"toSpec"in e&&"children"in e){let k=(e.children||[]).find(F=>F.kind==="media"&&(F.dataType==="Video"||F.dataType==="Image"));k&&(n=k)}let a=t!==null&&typeof t=="object"&&"bounds"in t,o=a?r:t,s=a?t:void 0,u=o.padding??0,c=typeof n=="string"?n:n?.inputHandleId??n?.src??"",l=typeof n=="object"&&n?.dataType?n.dataType:"Video",m=o.compositionWidth??o.compWidth??(a?o.width:void 0)??1920,d=o.compositionHeight??o.compHeight??(a?o.height:void 0)??1080,p=Array.isArray(o.effects)?[...o.effects]:o.effects?[o.effects]:[],h=s?s.bounds.screenX.multiply(-1).add(u):typeof o.x=="number"?-o.x:o.x&&typeof o.x.multiply=="function"?o.x.multiply(-1):0,b=s?s.bounds.screenY.multiply(-1).add(u):typeof o.y=="number"?-o.y:o.y&&typeof o.y.multiply=="function"?o.y.multiply(-1):0,f=(l==="Image"?I.image(c,{position:"absolute",width:m,height:d,fit:o.fit??"cover",x:h,y:b}):I.video(c,{position:"absolute",width:m,height:d,fit:o.fit??"cover",x:h,y:b})).withEffects(p),x=s?s.bounds.screenWidth.add(u*2):o.width!==void 0?o.width:m,y=s?s.bounds.screenHeight.add(u*2):o.height!==void 0?o.height:d,v=[f,...o.children??[]],w=o.id??(s?se(`section-track-${s.trackId}`):se("section")),M=I.box({id:w,position:o.position??"absolute",width:x,height:y,x:s?void 0:o.x,y:s?void 0:o.y,borderRadius:o.borderRadius??0,borderColor:o.borderColor,borderWidth:o.borderWidth,opacity:o.opacity??1,overflow:"hidden",children:v});s&&(M=M.pinToObject(s,{anchor:"topLeft",offsetX:-u,offsetY:-u,hideWhenLost:o.hideWhenLost??!0,smoothFrames:o.smoothFrames}));let N=M;return Object.defineProperty(N,"innerMedia",{value:f,enumerable:!0,writable:!1}),Object.defineProperty(N,"effects",{get:()=>p,enumerable:!0}),Object.defineProperty(N,"addEffect",{value:k=>(p.push(k),f.effects=p,N),enumerable:!0,writable:!1}),Object.defineProperty(N,"withEffect",{value:k=>N.addEffect(k),enumerable:!0,writable:!1}),Object.defineProperty(N,"withEffects",{value:k=>{for(let F of k)N.addEffect(F);return N},enumerable:!0,writable:!1}),N},trackedRegion:(e,t,r={})=>I.section(e,t,r),blurTrackedRegion:(e,t,r={})=>{let{padding:n,borderRadius:a,borderColor:o,borderWidth:s,...u}=r;return I.section(e,t,{padding:n??8,borderRadius:a??12,borderColor:o,borderWidth:s,effects:[new lt({strength:u.strength??25,blurType:u.blurType??"Gaussian",...u})]})},chart:(e,t={})=>Du(e,t,ut.getAll()[0]?.family??"Inter"),camera:(e={})=>Pe({id:e.id??se("camera"),kind:"camera",mode:e.mode??"lookAt",pitch:e.pitch??0,yaw:e.yaw??0,roll:e.roll??0,...e}),light:(e={})=>Pe({id:e.id??se("light"),kind:"light",lightType:e.lightType??"point",color:e.color??"#ffffff",intensity:e.intensity??1,...e}),ambientLight:(e="#ffffff",t=.5,r={})=>Nn.ambient(e,t,r),directionalLight:(e={})=>Nn.directional(e),pointLight:(e={})=>Nn.point(e),spotLight:(e={})=>Nn.spot(e),cube:e=>Nt.cube(e),carousel3d:e=>Nt.carousel(e),plane3d:e=>Nt.plane(e),prism3d:e=>Nt.prism(e),model:(e={})=>Pe({id:e.id??se("model3d"),kind:"model3d",is3D:e.is3D??!0,modelFormat:e.modelFormat??"auto",loop:e.loop??!0,scale:e.scale??1,scaleX:e.scaleX??1,scaleY:e.scaleY??1,scaleZ:e.scaleZ??1,opacity:e.opacity??1,...e}),obj:(e,t={})=>I.model({src:e,modelFormat:"obj",...t}),fbx:(e,t={})=>I.model({src:e,modelFormat:"fbx",...t}),gltf:(e,t={})=>I.model({src:e,modelFormat:"gltf",...t}),glb:(e,t={})=>I.model({src:e,modelFormat:"glb",...t}),stl:(e,t={})=>I.model({src:e,modelFormat:"stl",...t}),ply:(e,t={})=>I.model({src:e,modelFormat:"ply",...t}),vox:(e,t={})=>I.model({src:e,modelFormat:"vox",...t}),threeDS:(e,t={})=>I.model({src:e,modelFormat:"3ds",...t}),off:(e,t={})=>I.model({src:e,modelFormat:"off",...t})},Nn={ambient:(e="#ffffff",t=.5,r={})=>Pe({id:r.id??se("light-ambient"),kind:"light",lightType:"ambient",color:e,intensity:t,...r}),directional:(e={})=>Pe({id:e.id??se("light-directional"),kind:"light",lightType:"directional",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??-1e3,z:e.z??-1e3,targetX:e.targetX??0,targetY:e.targetY??0,targetZ:e.targetZ??0,...e}),point:(e={})=>Pe({id:e.id??se("light-point"),kind:"light",lightType:"point",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??0,z:e.z??-500,radius:e.radius??1e3,decay:e.decay??1,...e}),spot:(e={})=>Pe({id:e.id??se("light-spot"),kind:"light",lightType:"spot",color:e.color??"#ffffff",intensity:e.intensity??1,x:e.x??0,y:e.y??-500,z:e.z??-1e3,targetX:e.targetX??0,targetY:e.targetY??0,targetZ:e.targetZ??0,angle:e.angle??45,penumbra:e.penumbra??.2,radius:e.radius??2e3,decay:e.decay??1,...e})};function CS(e,t={},r={}){return I.section(e,t,r)}function AS(e,t,r={}){return typeof e=="object"&&"blurRegion"in e?e.blurRegion(t,r):I.blurTrackedRegion(e,t,r)}function NS(e,t,r={}){return I.section(e,t,r)}var Sf=Object.assign(zo,Yn,{blur:e=>new lt(e),vignette:e=>new Hn(e),colorBalance:e=>new $n(e),colorKey:e=>new Wn(e),levels:e=>new Xn(e),filmGrain:e=>new Zn(e),curves:e=>new Kn(e),selectiveColor:e=>new Jn(e),gradientMap:e=>new Qn(e),shadowsHighlights:e=>new ea(e),applyLut:e=>new ta(e),unsharpMask:e=>new ra(e),highPass:e=>new na(e),halftoneScreen:e=>new aa(e),tileOffset:e=>new oa(e),motionBlur:e=>new ia(e),ssao:e=>new sa(e),pbrGlass:e=>new ua(e),depthOfField:e=>new la(e),crop:e=>new ar(e),vision:e=>new ct(e),relight3d:e=>new ca(e),modulate:e=>new ma(e),deflicker:e=>new da(e),custom:(e,t={})=>new qn(e,t)});var export_HeadlessMediaRenderer=ke.HeadlessMediaRenderer;var export_HeadlessWebGPURenderer=ke.HeadlessWebGPURenderer;var export_formatQaReport=ke.formatQaReport;var export_renderSemaphore=ke.renderSemaphore;export{Rt as AETextAnimatorSchema,va as AdvancedTextAnimatorBuilder,Ma as AdvancedTextAnimatorSchema,si as AnchorGroupingSchema,ui as AnchorPresetSchema,Fi as AnimatableGlyphPropsSchema,yh as AnimationTypeSchema,gh as AnyOutputUnionSchema,ta as ApplyLUT,tc as AudioCompressor,rc as AudioDelay,ih as AudioExtractorSignalDataSchema,nc as AudioFade,pl as AudioLatentEngine,fl as AudioLatentTrackCache,Al as AudioMeshDeformPipeline,ac as AudioNoiseGate,oc as AudioParametricEq,ic as AudioReverb,ql as AudioSignal,Cc as AudioSignalExtractor,hi as AudioSpectrumTypographySchema,Oh as BaseMediaOperationPropsSchema,Th as BaseVideoLayerPropsSchema,lt as Blur,Xi as BoxNodeSchema,jh as CAPTION_LAYER_DEFAULTS,Wl as COCO17_BONES,jl as COCO17_KEYPOINTS,$l as COCO17_KEYPOINT_NAMES,zl as COCO_CLASSES,Jf as COMPOSITE_OPERATIONS,th as COMPOSITOR_DEFAULTS,wl as Camera3D,ya as CameraAnimation,$i as CameraNodeSchema,sc as CameraParallax3D,ir as CannyComputePipeline,rs as CarrierHandoffConfigSchema,uc as ChannelMerger,lc as ChannelSplitter,fi as ChromaticGlitchConfigSchema,$n as ColorBalance,Wn as ColorKey,Ad as ColorStopSchema,Ju as Composition,Nd as CompositorProgramSchema,Ef as ConfigHandleSchema,eh as ConfigSchemaRegistry,or as ControlNetMultiplexer,cc as CornerPin,ar as Crop,yi as CubicBezierSegmentSchema,Kn as Curves,qn as CustomEffect,qf as DATA_TYPE_EXTENSIONS,Nu as DEFAULT_CHART_COLORS,Gh as DEFAULT_DURATION_MS,_h as DEFAULT_FPS,zh as DEFAULT_MEDIA_DIMENSION,jf as DataType,Vf as DataTypeVal,$f as DataTypes,sr as DepthNormalsComputePipeline,la as DepthOfField,dc as DisplacementMap,mi as DynamicStrokePropertiesSchema,ig as Easing,Sf as Effect,yl as EffectPipeline,Wc as EnhancedTextNodeSchema,xh as ExportResultSchema,$c as ExpressionSelectorSchema,xi as ExtendedGlyphPropertiesSchema,Eh as ExtendedLayerSchema,mc as ExtractLUT,Yf as FileAssetSchema,rh as FileDataSchema,Zn as FilmGrain,Yi as FlexNodeSchema,pc as Flip,ut as FontManager,oh as GeneratorSignalDataSchema,fa as GlassPipeline,Qf as GlobalCompositeOperation,Li as GlyphAnchorGroupingSchema,Oi as GlyphAnchorPointSchema,Qn as GradientMap,aa as HalftoneScreen,Wf as HandleTypeVal,export_HeadlessMediaRenderer as HeadlessMediaRenderer,export_HeadlessWebGPURenderer as HeadlessWebGPURenderer,na as HighPass,Hf as JsonValueSchema,fc as KenBurns,Sa as KineticMarqueeConfigSchema,Kg as LIGHT_UNIFORM_SIZE_BYTES,I as Layer,Nt as Layer3D,Se as LayerAnimation,hc as LayerStyle,Na as LayoutNodeSchema,Xn as Levels,Nn as Light,Sl as Light3D,Hi as LightNodeSchema,Wi as LightTypeSchema,Vc as LineSpacingDynamicsSchema,gc as Liquify,gi as LongShadowConfigSchema,qg as MAX_LIGHTS,Kf as MIME_TYPES,bc as MaskMath,zi as MaterialTypeSchema,Gr as Matrix4Math,Ku as Media,Dh as MediaMetadataSchema,Ji as MediaNodeSchema,Ih as MediaOperationSchema,Nh as MediaSourceSchema,xc as MeshWarp,es as Model3DNodeSchema,Bf as ModerationError,If as ModerationUnrefundableError,ma as Modulate,ia as MotionBlur,ha as MotionBlurPipeline,hh as MultiOutputGenericSchema,_f as NodeMetadataSchema,bh as NodeResultSchema,Xf as NodeVisualConfigSchema,yc as NoiseGenerator,In as OpticalFlowComputePipeline,mh as OutputItemSchema,ua as PBRGlass,vc as Paint,bi as ParticleDissolveConfigSchema,wc as PatchHeal,pa as Path3D,Hl as PoseSkeletonRenderer,Sc as ProceduralVFX,Dt as ProgrammaticSignal,Mc as RefineEdge,kc as RefractionCaustics3D,ca as Relight3D,vl as Renderer2D,Nl as Renderer3D,Pc as ResizerScaler,sa as SSAO,ba as SSAOPipeline,dr as Scene,Dd as SceneDefinitionSchema,ts as SceneTransitionTypeSchema,Yl as SegmentationTexturePool,Jn as SelectiveColor,Wr as SelectorBasedOnSchema,Hr as SelectorModeSchema,Ti as SelectorShapeSchema,Pi as SelectorUnitsSchema,Da as Sequence,ga as ShadowPipeline,ea as ShadowsHighlights,Qi as ShapeNodeSchema,cl as Signal,ah as SignalChannelMetaSchema,lh as SignalDataSchema,uh as SignalGateDataSchema,sh as SignalMathDataSchema,nh as SignalStatsSchema,fh as SingleOutputGenericSchema,zc as SkewPropertiesSchema,Ft as SlugFontCache,xl as SlugPipeline,Rh as SourceOperationSchema,jc as Spatial3DPropertiesSchema,Zl as SpatialLandmarkTransformer,di as SpringPhysicsSchema,Tc as StereoPanning,Vh as TEXT_LAYER_DEFAULTS,da as TemporalDeflicker,Un as TemporalDeflickerPipeline,Vl as TemporalObjectTracker,Lt as TensorPipeline,li as TextAnchorConfigSchema,wd as TextAnimator,Pa as TextAnimatorBuilder,ji as TextAnimatorSchema,Si as TextCursorConfigSchema,wi as TextCursorStyleSchema,Ki as TextNodeSchema,Bh as TextOperationSchema,ka as TextPathBuilder,Ot as TextPathOptionsSchema,vi as TextPathSourceSchema,Ci as TextRangeSelectorSchema,ki as TextScrambleConfigSchema,Di as TextSelectorSchema,Ni as TextSignalSelectorSchema,Zi as TextSpanMarkSchema,qi as TextSpanSchema,Ai as TextWigglySelectorSchema,oa as TileOffset,Fh as TimelineSegmentSchema,Lh as TimelineTransformSchema,Ah as TransitionSchema,Ch as TransitionTypeSchema,$r as TypewriterAnimatorSchema,Mi as TypingCadenceSchema,ra as UnsharpMask,pi as VariableFontAxesSchema,lr as Vec2Schema,Ie as Vector3Math,vh as VideoAnimationSchema,Ph as VideoLayerTypeSchema,wh as VideoSpatialPropsSchema,kh as VideoStylePropsSchema,Mh as VideoTextPropsSchema,Sh as VideoTimingPropsSchema,Hn as Vignette,Uh as VirtualMediaDataSchema,ct as Vision,Gn as VisionBundle,nr as VisionNode,_n as VisionRunner,wa as VolumetricFormationConfigSchema,ci as VolumetricFormationModeSchema,Oc as accent,En as analyzeSequence,jo as appendOperation,_l as applyStaggerToChildren,og as bezier,AS as blurRegion,Fc as bold,td as buildPathLUT,ns as calculateSequenceTimeline,rg as checkNodeResultCache,_c as code,Gl as collectNodeOps,Rc as color,Ur as compositorToProgram,Xc as computeAnchorPivotOffset,Fd as computeCarrierContinuity,ko as computeGridLayout,Bl as computeLayout,Rl as computeLayoutSync,Zc as computeLineLeadingDisplacement,od as computeRangeSelectorWeight,El as computeStaggerDelay,Vg as computeStrokeRect,Zh as computeVideoCropRenderProps,il as computed,ll as cosineSignal,ph as createOutputItemSchema,Vo as createVirtualMedia,Zf as dataTypeColors,dh as deserializeSignalData,id as deterministicWigglyNoise,Ta as distanceToCurveParameter,NS as editTrackedRegion,Yn as effectFactories,ec as effectMeta,Bi as ellipseToCubicBeziers,jn as encodeStereoWav,hl as ensureDevice,Ul as evaluateAnimationAtFrame,Yr as evaluateCubicBezier,cr as evaluateCubicBezierDerivative,qc as evaluateExpressionSelector,Jc as evaluateMarqueeOffset,ud as evaluateSelectorCombination,Yc as evaluateSkewMatrix,Hc as evaluateSpringProgress,Il as evaluateTrackAtFrame,ld as evaluateTypewriterState,Kc as evaluateVolumetricFormation,ag as extractSvgDimensions,tg as findSourceAsset,export_formatQaReport as formatQaReport,Df as frameArraySignal,Ff as frameSignal,Ri as generateArcLengthLUT,Uf as generateId,ad as generatePathSegments,Xh as getActiveMediaMetadata,Yh as getFileDataMetadata,Kh as getFingerprint,$h as getLeafMediaType,Hh as getMediaType,Jh as getRenderFingerprint,_i as getScramblePool,sd as getShuffledOrder,eg as hasOnlySingleSource,Fn as inputStore,sg as interpolate,qh as isEqual,Nf as isSignal,Qh as isVirtualMediaData,Lc as italic,Cl as loadFBX,Dl as loadModel3D,Pl as loadOBJ,gl as lutStore,Eg as mapBlendModeToSkia,Ic as mark,dg as measureSpring,pg as measureText,fg as measureTextAsync,Ol as mixAudioTracks,Jl as mixSfxInto,zr as normalizeTextSpans,Jg as parseColorToRgb,Tl as parseFBX,kl as parseMTL,Gc as parseMarkup,Ml as parseOBJ,Ui as parseSvgPathToCubicBeziers,zn as pinNodeToLandmark,Vn as pinNodeToObject,lg as preloadCompositionFonts,ug as preloadFont,Mf as programmaticSignal,Of as progressSignal,Af as registerSignalDependency,Cr as renderFrameGrid,export_renderSemaphore as renderSemaphore,Kl as renderSfx,Gf as reportRenderDiagnostic,_g as requiresIsolation,Tf as resolveBoolean,Wh as resolveMediaMimeType,kf as resolveNumber,Cf as resolveParam,Mo as resolveSamplePoints,Pf as resolveString,Nc as rich,Qc as sampleAudioSpectrumScale,ed as sampleCurveGeometry,rd as samplePathChainGeometry,CS as section,ch as serializeSignalData,dl as shaderStore,ol as signal,sl as signalBuilder,ml as signalRegistry,ul as sineSignal,Bc as size,Ql as softLimit,Dc as span,mg as spring,cg as springCalculation,ng as stampResult,cf as startPreview,Ec as sub,Uc as sup,zf as takeRenderDiagnostics,bl as textureCache,Lf as timeSignal,Rf as updateClockSignals,Ii as waveToCubicBeziers};
|