framefields 2.4.1 → 2.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -33
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-DHuEMOtQ.d.mts → audio-BymXfAvH.d.mts} +3 -3
- package/dist/{audio-DHuEMOtQ.d.mts.map → audio-BymXfAvH.d.mts.map} +1 -1
- package/dist/{audio-CPApYcWF.mjs → audio-BzHHpImj.mjs} +4 -4
- package/dist/{audio-CPApYcWF.mjs.map → audio-BzHHpImj.mjs.map} +1 -1
- package/dist/{dist-SB9qfAko.mjs → dist-Bo2_zeCn.mjs} +2 -2
- package/dist/{dist-SB9qfAko.mjs.map → dist-Bo2_zeCn.mjs.map} +1 -1
- package/dist/{dist-CrK3rmyN.mjs → dist-DMa2BbYs.mjs} +45 -5
- package/dist/{dist-CrK3rmyN.mjs.map → dist-DMa2BbYs.mjs.map} +1 -1
- package/dist/{dist-ClyC_d66.mjs → dist-TrtLGPvc.mjs} +117 -40
- package/dist/dist-TrtLGPvc.mjs.map +1 -0
- package/dist/{dist-CspOG4V1.mjs → dist-hmWTJPik.mjs} +2 -2
- package/dist/{dist-CspOG4V1.mjs.map → dist-hmWTJPik.mjs.map} +1 -1
- package/dist/effects/index.d.mts +5 -5
- package/dist/effects/index.mjs +35 -35
- package/dist/{effects-DxylPSuI.mjs → effects-CiZjSwIh.mjs} +71 -3
- package/dist/effects-CiZjSwIh.mjs.map +1 -0
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-CsMDfqv9.mjs → fonts-Da1JDKpc.mjs} +2 -2
- package/dist/{fonts-CsMDfqv9.mjs.map → fonts-Da1JDKpc.mjs.map} +1 -1
- package/dist/{gpu-DtT5I4ME.mjs → gpu-CHIgM_YH.mjs} +2 -2
- package/dist/{gpu-DtT5I4ME.mjs.map → gpu-CHIgM_YH.mjs.map} +1 -1
- package/dist/{index-B1XcyMm8.d.mts → index-B0BZMhtw.d.mts} +7 -7
- package/dist/index-B0BZMhtw.d.mts.map +1 -0
- package/dist/{index-B2Xesdug.d.mts → index-CJkihekp.d.mts} +293 -143
- package/dist/index-CJkihekp.d.mts.map +1 -0
- package/dist/{index-DujpgUUq.d.mts → index-DGe83M-p.d.mts} +240 -152
- package/dist/index-DGe83M-p.d.mts.map +1 -0
- package/dist/{index-BxARm93R.d.mts → index-DIvWBm-q.d.mts} +41 -12
- package/dist/index-DIvWBm-q.d.mts.map +1 -0
- package/dist/{index-C0o3lLyA.d.mts → index-Dwf76Qep.d.mts} +16 -4
- package/dist/index-Dwf76Qep.d.mts.map +1 -0
- package/dist/{index-D-l-yCv6.d.mts → index-WMofVN02.d.mts} +3 -3
- package/dist/{index-D-l-yCv6.d.mts.map → index-WMofVN02.d.mts.map} +1 -1
- package/dist/index.d.mts +143 -73
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +165 -165
- 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-D2dMmokw.mjs → preview-5E4B96RD.mjs} +2 -2
- package/dist/{preview-D2dMmokw.mjs.map → preview-5E4B96RD.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-3ACCCPBN.mjs → chunk-37P2KIFE.mjs} +1 -1
- package/dist/preview-engine/{chunk-GNG4YH2W.mjs → chunk-3SOD7OTO.mjs} +1 -1
- package/dist/preview-engine/{chunk-DOCSX45C.mjs → chunk-54HE34HO.mjs} +1 -1
- package/dist/preview-engine/{chunk-WJJIISQJ.mjs → chunk-5CWQHYQP.mjs} +1 -1
- package/dist/preview-engine/{chunk-Z6UKUHPU.mjs → chunk-5EVEGKWT.mjs} +1 -1
- package/dist/preview-engine/chunk-5JSSXOBB.mjs +1 -0
- package/dist/preview-engine/chunk-5SVJIGPK.mjs +1 -0
- package/dist/preview-engine/{chunk-5RQHNB6Y.mjs → chunk-6MBYREBG.mjs} +1 -1
- package/dist/preview-engine/{chunk-WACWOKEP.mjs → chunk-6TGNQ5FD.mjs} +1 -1
- package/dist/preview-engine/{chunk-HUKAC5MJ.mjs → chunk-6WKWYUOM.mjs} +1 -1
- package/dist/preview-engine/{chunk-SWXVITCQ.mjs → chunk-7J4OK4VE.mjs} +1 -1
- package/dist/preview-engine/{chunk-O6NRIXS5.mjs → chunk-7QE6II7R.mjs} +1 -1
- package/dist/preview-engine/{chunk-34ACEGNW.mjs → chunk-A2775RSO.mjs} +1 -1
- package/dist/preview-engine/{chunk-FFGBUS76.mjs → chunk-AKYUVDKM.mjs} +1 -1
- package/dist/preview-engine/{chunk-6K7US2WD.mjs → chunk-AWX4YGC5.mjs} +1 -1
- package/dist/preview-engine/{chunk-QJZKIY4H.mjs → chunk-AY2ZIXST.mjs} +1 -1
- package/dist/preview-engine/{chunk-LK3T65RB.mjs → chunk-BIS3W4Z5.mjs} +1 -1
- package/dist/preview-engine/{chunk-7QJUC6YY.mjs → chunk-C45ROXI6.mjs} +14 -14
- package/dist/preview-engine/{chunk-GMGGDADT.mjs → chunk-CEIOI4HO.mjs} +1 -1
- package/dist/preview-engine/{chunk-5E5J4KT4.mjs → chunk-E7DH7EPX.mjs} +1 -1
- package/dist/preview-engine/{chunk-NNQUIVTE.mjs → chunk-EEOUHDUD.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZKPQGQE3.mjs → chunk-FDNR4PRC.mjs} +1 -1
- package/dist/preview-engine/chunk-FSAELHVT.mjs +1 -0
- package/dist/preview-engine/{chunk-C6Z7H2RZ.mjs → chunk-GIH5QURF.mjs} +1 -1
- package/dist/preview-engine/{chunk-RDP6QROU.mjs → chunk-GQN35VLT.mjs} +1 -1
- package/dist/preview-engine/{chunk-PZF6T7DM.mjs → chunk-ILBZQLUF.mjs} +1 -1
- package/dist/preview-engine/{chunk-2DDBSI75.mjs → chunk-JJA4G3OU.mjs} +1 -1
- package/dist/preview-engine/{chunk-KAQUNOVB.mjs → chunk-JJYNYYPA.mjs} +1 -1
- package/dist/preview-engine/{chunk-NRAZV5OA.mjs → chunk-JTUK7ZXK.mjs} +1 -1
- package/dist/preview-engine/{chunk-HDGFNBYK.mjs → chunk-KJ2DTA77.mjs} +1 -1
- package/dist/preview-engine/{chunk-7LVOSEGN.mjs → chunk-LMZHCWXP.mjs} +1 -1
- package/dist/preview-engine/{chunk-A5OVKZ52.mjs → chunk-LSBCFJZM.mjs} +1 -1
- package/dist/preview-engine/{chunk-FLPSWDX4.mjs → chunk-MJN3LOZ7.mjs} +1 -1
- package/dist/preview-engine/{chunk-WCZ5DKZ4.mjs → chunk-N3PRZLZJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-XOEEGC4Z.mjs → chunk-NVTPJUNG.mjs} +1 -1
- package/dist/preview-engine/{chunk-67SSYK7D.mjs → chunk-O3NOB5IB.mjs} +1 -1
- package/dist/preview-engine/{chunk-LIQA5OOU.mjs → chunk-O5LA63CK.mjs} +1 -1
- package/dist/preview-engine/chunk-OLLY3Q7M.mjs +1 -0
- package/dist/preview-engine/{chunk-FFMPC7QA.mjs → chunk-OZDZQMTB.mjs} +1 -1
- package/dist/preview-engine/chunk-PCWWKYFO.mjs +1 -0
- package/dist/preview-engine/{chunk-G4J662EL.mjs → chunk-S7NG26UG.mjs} +1 -1
- package/dist/preview-engine/{chunk-FHKBALVI.mjs → chunk-TFFG5YFI.mjs} +1 -1
- package/dist/preview-engine/{chunk-HNNIVJ2K.mjs → chunk-U4SQUTDV.mjs} +1 -1
- package/dist/preview-engine/{chunk-JX22B2FS.mjs → chunk-UDDK5QZF.mjs} +1 -1
- package/dist/preview-engine/{chunk-KT35IPCF.mjs → chunk-UMF7NNUA.mjs} +1 -1
- package/dist/preview-engine/{chunk-GQLZXCW3.mjs → chunk-UVWGZUKZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-NQZKBFC6.mjs → chunk-V6DAD4S4.mjs} +14 -14
- package/dist/preview-engine/{chunk-R26SY5D4.mjs → chunk-V6LCSK6Q.mjs} +1 -1
- package/dist/preview-engine/{chunk-2GIWWDE4.mjs → chunk-W3QGP5XF.mjs} +1 -1
- package/dist/preview-engine/{chunk-RKVB47IA.mjs → chunk-XTPEGKOZ.mjs} +1 -1
- package/dist/preview-engine/chunk-YJ6GWVL4.mjs +174 -0
- package/dist/preview-engine/{chunk-LLDIDE5Q.mjs → chunk-YQYLBXOX.mjs} +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +17 -17
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/{renderers-WR6MKT5S.mjs → renderers-2A7YDJMJ.mjs} +1 -1
- package/dist/preview-engine/renderers-2AD6AHAO.mjs +1 -0
- package/dist/preview-engine/{renderers-K7B5PQBT.mjs → renderers-2GE5HE56.mjs} +1 -1
- package/dist/preview-engine/{renderers-SW7FIEKO.mjs → renderers-35G4KCQ2.mjs} +1 -1
- package/dist/preview-engine/renderers-37UYW266.mjs +1 -0
- package/dist/preview-engine/renderers-3YHETAPE.mjs +1 -0
- package/dist/preview-engine/renderers-43LBWRY2.mjs +1 -0
- package/dist/preview-engine/{renderers-TY7DVI7E.mjs → renderers-4H34AFW2.mjs} +1 -1
- package/dist/preview-engine/renderers-4I4UDLDR.mjs +1 -0
- package/dist/preview-engine/renderers-5EITT2FW.mjs +1 -0
- package/dist/preview-engine/{renderers-AZYJFJLO.mjs → renderers-5OGAF66H.mjs} +1 -1
- package/dist/preview-engine/{renderers-UMPOVFRA.mjs → renderers-6GYRMHGQ.mjs} +1 -1
- package/dist/preview-engine/{renderers-RKZGYWDG.mjs → renderers-7M3YOI7E.mjs} +1 -1
- package/dist/preview-engine/renderers-7UKFQ75V.mjs +1 -0
- package/dist/preview-engine/renderers-AIRDDXRB.mjs +1 -0
- package/dist/preview-engine/{renderers-MBSOKWKB.mjs → renderers-ATL5ARUV.mjs} +1 -1
- package/dist/preview-engine/renderers-BUOGMWAA.mjs +1 -0
- package/dist/preview-engine/renderers-C4XIAG3F.mjs +1 -0
- package/dist/preview-engine/{renderers-4AJWVIJG.mjs → renderers-DFJDEPCU.mjs} +1 -1
- package/dist/preview-engine/{renderers-6JZ4HYIU.mjs → renderers-DKOWLKDE.mjs} +1 -1
- package/dist/preview-engine/renderers-ELARGDRC.mjs +1 -0
- package/dist/preview-engine/renderers-EU5VM2S2.mjs +1 -0
- package/dist/preview-engine/{renderers-NJLGPPX7.mjs → renderers-FNPXT2EH.mjs} +1 -1
- package/dist/preview-engine/renderers-GEPP3YKK.mjs +1 -0
- package/dist/preview-engine/renderers-IQNZQWYU.mjs +1 -0
- package/dist/preview-engine/renderers-J6DEIWTU.mjs +1 -0
- package/dist/preview-engine/{renderers-U55KRIOV.mjs → renderers-JQ7AI473.mjs} +1 -1
- package/dist/preview-engine/renderers-JTVCE5PV.mjs +1 -0
- package/dist/preview-engine/{renderers-CK3ZL3GM.mjs → renderers-K23EAM2J.mjs} +1 -1
- package/dist/preview-engine/renderers-KCNUETAD.mjs +1 -0
- package/dist/preview-engine/renderers-KKBHXAWS.mjs +1 -0
- package/dist/preview-engine/{renderers-UDOBX433.mjs → renderers-KW75FYFG.mjs} +1 -1
- package/dist/preview-engine/renderers-LER7SUT2.mjs +1 -0
- package/dist/preview-engine/{renderers-GAIUTII6.mjs → renderers-LF6W5P2I.mjs} +1 -1
- package/dist/preview-engine/{renderers-FM6A5YR4.mjs → renderers-MHDLRY3S.mjs} +1 -1
- package/dist/preview-engine/renderers-MOERLDWF.mjs +1 -0
- package/dist/preview-engine/{renderers-XKHNBARD.mjs → renderers-NJAKGI25.mjs} +1 -1
- package/dist/preview-engine/renderers-NPKRNXAT.mjs +1 -0
- package/dist/preview-engine/renderers-O57YIIAO.mjs +1 -0
- package/dist/preview-engine/renderers-OPUIAD7I.mjs +1 -0
- package/dist/preview-engine/renderers-PENUAXDD.mjs +1 -0
- package/dist/preview-engine/renderers-PFCI7ZFW.mjs +1 -0
- package/dist/preview-engine/{renderers-HZHEGONW.mjs → renderers-PM4Q5QOW.mjs} +1 -1
- package/dist/preview-engine/renderers-Q4HDP2IE.mjs +1 -0
- package/dist/preview-engine/{renderers-GUPEJK3O.mjs → renderers-Q6AO5M54.mjs} +1 -1
- package/dist/preview-engine/{renderers-75TL7RLS.mjs → renderers-QJNGN722.mjs} +1 -1
- package/dist/preview-engine/renderers-QMHUOKMM.mjs +1 -0
- package/dist/preview-engine/renderers-R26YPECG.mjs +1 -0
- package/dist/preview-engine/renderers-TAFDMFEA.mjs +1 -0
- package/dist/preview-engine/{renderers-IHRFEZNP.mjs → renderers-TFEDHXPY.mjs} +1 -1
- package/dist/preview-engine/renderers-TMZLWQP2.mjs +1 -0
- package/dist/preview-engine/renderers-TP6ZMGU4.mjs +1 -0
- package/dist/preview-engine/renderers-TY63VTZB.mjs +1 -0
- package/dist/preview-engine/{renderers-IJDQJEE5.mjs → renderers-U2ZWRL25.mjs} +1 -1
- package/dist/preview-engine/renderers-UBO4ZNE6.mjs +1 -0
- package/dist/preview-engine/renderers-UCNQ536S.mjs +1 -0
- package/dist/preview-engine/{renderers-TCNPEANL.mjs → renderers-VD5GHHK6.mjs} +1 -1
- package/dist/preview-engine/{renderers-BDWVXYTW.mjs → renderers-WNMRLGZS.mjs} +1 -1
- package/dist/preview-engine/{renderers-FKH5S64C.mjs → renderers-WOLTH5VI.mjs} +1 -1
- package/dist/preview-engine/renderers-WOZQDE4A.mjs +1 -0
- package/dist/preview-engine/renderers-X2XGDF3R.mjs +1 -0
- package/dist/preview-engine/renderers-XG3BDROH.mjs +1 -0
- package/dist/preview-engine/{renderers-R4WMM6IX.mjs → renderers-XPO2WQNF.mjs} +1 -1
- package/dist/preview-engine/renderers-XS4CFZWR.mjs +1 -0
- package/dist/preview-engine/{renderers-FADYGSLK.mjs → renderers-XTCBHTHC.mjs} +1 -1
- package/dist/preview-engine/{renderers-LVLVJHOL.mjs → renderers-XTRFEQO4.mjs} +1 -1
- package/dist/preview-engine/renderers-ZQDMRWN7.mjs +1 -0
- package/dist/preview-engine/{renderers-7CPYTCNW.mjs → renderers-ZRR7BLB7.mjs} +1 -1
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-C2cJayA1.mjs → program-KwDdbC0-.mjs} +78 -38
- package/dist/program-KwDdbC0-.mjs.map +1 -0
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-C1E5Rt5q.mjs → renderer-1P3yS8YM.mjs} +3 -3
- package/dist/{renderer-C1E5Rt5q.mjs.map → renderer-1P3yS8YM.mjs.map} +1 -1
- package/dist/renderer-5C41E6gT.mjs +5 -0
- package/dist/renderer-6SXF9Ykm.mjs +5 -0
- package/dist/renderer-B2C2w3Wr.mjs +5 -0
- package/dist/renderer-B2QSfPYZ.mjs +5 -0
- package/dist/{renderer-Bkrk0M0r.mjs → renderer-B4jxP8vF.mjs} +3 -3
- package/dist/{renderer-Bkrk0M0r.mjs.map → renderer-B4jxP8vF.mjs.map} +1 -1
- package/dist/{renderer-Csss5GFQ.mjs → renderer-B4ydDdo6.mjs} +2 -2
- package/dist/{renderer-Csss5GFQ.mjs.map → renderer-B4ydDdo6.mjs.map} +1 -1
- package/dist/renderer-B5cQcMl1.mjs +5 -0
- package/dist/{renderer-B3e4LSE6.mjs → renderer-B9ssmkbx.mjs} +3 -3
- package/dist/{renderer-B3e4LSE6.mjs.map → renderer-B9ssmkbx.mjs.map} +1 -1
- package/dist/{renderer-UcdqCarR.mjs → renderer-BAoKytKL.mjs} +3 -3
- package/dist/{renderer-UcdqCarR.mjs.map → renderer-BAoKytKL.mjs.map} +1 -1
- package/dist/{renderer-Cw6Sagih.mjs → renderer-BCLmYH4S.mjs} +3 -3
- package/dist/{renderer-Cw6Sagih.mjs.map → renderer-BCLmYH4S.mjs.map} +1 -1
- package/dist/renderer-BDhD8Yab.mjs +3 -0
- package/dist/{renderer-Za4D9hej.mjs → renderer-BHLYKy8b.mjs} +3 -3
- package/dist/{renderer-Za4D9hej.mjs.map → renderer-BHLYKy8b.mjs.map} +1 -1
- package/dist/{renderer-apeDrNXM.mjs → renderer-BI8QhEj9.mjs} +3 -3
- package/dist/{renderer-apeDrNXM.mjs.map → renderer-BI8QhEj9.mjs.map} +1 -1
- package/dist/{renderer-CCGzT6bX.mjs → renderer-BMLJgnbU.mjs} +2 -2
- package/dist/renderer-BSDdTHDh.mjs +5 -0
- package/dist/{renderer-CcoUNzlQ.mjs → renderer-BT0x6KPK.mjs} +3 -3
- package/dist/{renderer-CcoUNzlQ.mjs.map → renderer-BT0x6KPK.mjs.map} +1 -1
- package/dist/renderer-BTUjk8uY.mjs +5 -0
- package/dist/{renderer-RDCax5CK.mjs → renderer-BUwHWIf7.mjs} +3 -3
- package/dist/{renderer-RDCax5CK.mjs.map → renderer-BUwHWIf7.mjs.map} +1 -1
- package/dist/{renderer-DTw-W0Yz.mjs → renderer-B_b8-ztW.mjs} +3 -3
- package/dist/{renderer-DTw-W0Yz.mjs.map → renderer-B_b8-ztW.mjs.map} +1 -1
- package/dist/{renderer-DwVOxdzC.mjs → renderer-BaJQx0Bp.mjs} +3 -3
- package/dist/{renderer-DwVOxdzC.mjs.map → renderer-BaJQx0Bp.mjs.map} +1 -1
- package/dist/renderer-Bcey5Gvk.mjs +5 -0
- package/dist/renderer-Bd2MuOeJ.mjs +5 -0
- package/dist/renderer-Bd5A0zer.mjs +5 -0
- package/dist/{renderer-Dwu_zfdL.mjs → renderer-Bhfl-WFX.mjs} +3 -3
- package/dist/{renderer-Dwu_zfdL.mjs.map → renderer-Bhfl-WFX.mjs.map} +1 -1
- package/dist/{renderer-BjCHW9Jp.mjs → renderer-Bkq1PT0g.mjs} +2 -2
- package/dist/{renderer-DjwITRvg.mjs → renderer-Blm4Dv_h.mjs} +2 -2
- package/dist/{renderer-BTd2sWDC.mjs → renderer-BtWWpFvl.mjs} +3 -3
- package/dist/{renderer-BTd2sWDC.mjs.map → renderer-BtWWpFvl.mjs.map} +1 -1
- package/dist/{renderer-92eLJg24.mjs → renderer-C-z6bxj9.mjs} +4 -4
- package/dist/{renderer-92eLJg24.mjs.map → renderer-C-z6bxj9.mjs.map} +1 -1
- package/dist/{renderer-EZp_IIPK.mjs → renderer-C0ds-UfM.mjs} +3 -3
- package/dist/{renderer-EZp_IIPK.mjs.map → renderer-C0ds-UfM.mjs.map} +1 -1
- package/dist/{renderer-B4RpSd4A.mjs → renderer-C1U85w9f.mjs} +2 -2
- package/dist/{renderer-B4RpSd4A.mjs.map → renderer-C1U85w9f.mjs.map} +1 -1
- package/dist/{renderer-X0eKSD7v.mjs → renderer-C4vHq0X8.mjs} +3 -3
- package/dist/{renderer-X0eKSD7v.mjs.map → renderer-C4vHq0X8.mjs.map} +1 -1
- package/dist/{renderer--ruTGlPo.mjs → renderer-C4xvz_Ft.mjs} +3 -3
- package/dist/{renderer--ruTGlPo.mjs.map → renderer-C4xvz_Ft.mjs.map} +1 -1
- package/dist/{renderer-ByCX4JYg.mjs → renderer-C5WkQZGR.mjs} +3 -3
- package/dist/{renderer-ByCX4JYg.mjs.map → renderer-C5WkQZGR.mjs.map} +1 -1
- package/dist/{renderer-CqtIbe5n.mjs → renderer-CAi-lhR2.mjs} +2 -2
- package/dist/{renderer-CqtIbe5n.mjs.map → renderer-CAi-lhR2.mjs.map} +1 -1
- package/dist/renderer-CC-WlYa2.mjs +5 -0
- package/dist/{renderer-DZJJHCtm.mjs → renderer-CDky5Gva.mjs} +3 -3
- package/dist/{renderer-DZJJHCtm.mjs.map → renderer-CDky5Gva.mjs.map} +1 -1
- package/dist/{renderer-yyUpCeWb.mjs → renderer-CE83KHgr.mjs} +2 -2
- package/dist/{renderer-yyUpCeWb.mjs.map → renderer-CE83KHgr.mjs.map} +1 -1
- package/dist/{renderer-CNb-DG00.mjs → renderer-CLxQ4rU6.mjs} +441 -177
- package/dist/renderer-CLxQ4rU6.mjs.map +1 -0
- package/dist/{renderer-BBAbZfBl.mjs → renderer-CPLfsRe1.mjs} +4 -4
- package/dist/{renderer-BBAbZfBl.mjs.map → renderer-CPLfsRe1.mjs.map} +1 -1
- package/dist/{renderer-CDOobs18.mjs → renderer-CS8VMTp1.mjs} +3 -3
- package/dist/{renderer-CDOobs18.mjs.map → renderer-CS8VMTp1.mjs.map} +1 -1
- package/dist/{renderer-D0vom99O.mjs → renderer-CTYKUnDq.mjs} +2 -2
- package/dist/{renderer-D0vom99O.mjs.map → renderer-CTYKUnDq.mjs.map} +1 -1
- package/dist/{renderer-DILUmb-e.mjs → renderer-CUPWHfEY.mjs} +3 -3
- package/dist/{renderer-DILUmb-e.mjs.map → renderer-CUPWHfEY.mjs.map} +1 -1
- package/dist/renderer-Cb0qf1UG.mjs +5 -0
- package/dist/renderer-CfX13dgQ.mjs +5 -0
- package/dist/renderer-ChFkRLrv.mjs +5 -0
- package/dist/{renderer-CDUxAtsk.mjs → renderer-Ci6YMa4u.mjs} +4 -4
- package/dist/{renderer-CDUxAtsk.mjs.map → renderer-Ci6YMa4u.mjs.map} +1 -1
- package/dist/{renderer-DKfwlE4e.mjs → renderer-CjQAYeYz.mjs} +3 -3
- package/dist/{renderer-DKfwlE4e.mjs.map → renderer-CjQAYeYz.mjs.map} +1 -1
- package/dist/renderer-CjkfJj5R.mjs +5 -0
- package/dist/renderer-Ck7Lu6c9.mjs +5 -0
- package/dist/{renderer-CJ4bxCld.mjs → renderer-CrwYWVsV.mjs} +2 -2
- package/dist/renderer-CuquqG_c.mjs +5 -0
- package/dist/{renderer-CzRqzp8P.mjs → renderer-CwO8T8l8.mjs} +3 -3
- package/dist/{renderer-CzRqzp8P.mjs.map → renderer-CwO8T8l8.mjs.map} +1 -1
- package/dist/renderer-Cwz2E4QD.mjs +5 -0
- package/dist/{renderer-BjvNEbML.mjs → renderer-Cy4a31rZ.mjs} +2 -2
- package/dist/{renderer-BjvNEbML.mjs.map → renderer-Cy4a31rZ.mjs.map} +1 -1
- package/dist/{renderer-If8JOkBi.mjs → renderer-CzgDJcot.mjs} +2 -2
- package/dist/{renderer-If8JOkBi.mjs.map → renderer-CzgDJcot.mjs.map} +1 -1
- package/dist/renderer-Czkt9YYp.mjs +5 -0
- package/dist/{renderer-D2-V9nQq.mjs → renderer-D4No_jA4.mjs} +3 -3
- package/dist/{renderer-D2-V9nQq.mjs.map → renderer-D4No_jA4.mjs.map} +1 -1
- package/dist/{renderer-DaSxr9fM.mjs → renderer-D96Pu8yX.mjs} +3 -3
- package/dist/{renderer-DaSxr9fM.mjs.map → renderer-D96Pu8yX.mjs.map} +1 -1
- package/dist/{renderer-B0gPTXhe.mjs → renderer-DBKyuPl1.mjs} +3 -3
- package/dist/{renderer-B0gPTXhe.mjs.map → renderer-DBKyuPl1.mjs.map} +1 -1
- package/dist/{renderer-CxqPeATd.d.mts → renderer-DBtt-7wt.d.mts} +2 -2
- package/dist/{renderer-CxqPeATd.d.mts.map → renderer-DBtt-7wt.d.mts.map} +1 -1
- package/dist/{renderer-DcBGYN3V.mjs → renderer-DCsTCvdo.mjs} +3 -3
- package/dist/{renderer-DcBGYN3V.mjs.map → renderer-DCsTCvdo.mjs.map} +1 -1
- package/dist/renderer-DFTIhSdJ.mjs +5 -0
- package/dist/renderer-DFaa-Ats.mjs +5 -0
- package/dist/{renderer-DzSMeQBC.mjs → renderer-DGT141pN.mjs} +3 -3
- package/dist/{renderer-DzSMeQBC.mjs.map → renderer-DGT141pN.mjs.map} +1 -1
- package/dist/{renderer-JvcR1vYI.mjs → renderer-DHUlVqST.mjs} +2 -2
- package/dist/{renderer-JvcR1vYI.mjs.map → renderer-DHUlVqST.mjs.map} +1 -1
- package/dist/renderer-DIHXKvPl.mjs +5 -0
- package/dist/{renderer-Cv4lchUP.mjs → renderer-DK9etIAz.mjs} +3 -3
- package/dist/{renderer-Cv4lchUP.mjs.map → renderer-DK9etIAz.mjs.map} +1 -1
- package/dist/renderer-DMzOqVM3.mjs +5 -0
- package/dist/renderer-DOId5U8x.mjs +5 -0
- package/dist/{renderer-BkWd4-YO.mjs → renderer-DOvzHN60.mjs} +2 -2
- package/dist/{renderer-BkWd4-YO.mjs.map → renderer-DOvzHN60.mjs.map} +1 -1
- package/dist/{renderer-B1QREs7J.mjs → renderer-DOxmmN6Q.mjs} +3 -3
- package/dist/{renderer-B1QREs7J.mjs.map → renderer-DOxmmN6Q.mjs.map} +1 -1
- package/dist/{renderer-V5uEyDFz.mjs → renderer-DP_In2uT.mjs} +3 -3
- package/dist/{renderer-V5uEyDFz.mjs.map → renderer-DP_In2uT.mjs.map} +1 -1
- package/dist/renderer-DQXFOup8.mjs +5 -0
- package/dist/{renderer-ut1GqW89.mjs → renderer-DQeUc1yY.mjs} +3 -3
- package/dist/{renderer-ut1GqW89.mjs.map → renderer-DQeUc1yY.mjs.map} +1 -1
- package/dist/renderer-DRt3BSTj.mjs +5 -0
- package/dist/{renderer-DFJQ6v0F.mjs → renderer-DSbRWfgl.mjs} +2 -2
- package/dist/{renderer-DFJQ6v0F.mjs.map → renderer-DSbRWfgl.mjs.map} +1 -1
- package/dist/{renderer-DaqWTx7s.mjs → renderer-DVFFVy9v.mjs} +3 -3
- package/dist/{renderer-DaqWTx7s.mjs.map → renderer-DVFFVy9v.mjs.map} +1 -1
- package/dist/{renderer-BPixWnmY.mjs → renderer-DWG4Podv.mjs} +3 -3
- package/dist/{renderer-BPixWnmY.mjs.map → renderer-DWG4Podv.mjs.map} +1 -1
- package/dist/{renderer-BljMOvry.mjs → renderer-DXSIstnn.mjs} +3 -3
- package/dist/{renderer-BljMOvry.mjs.map → renderer-DXSIstnn.mjs.map} +1 -1
- package/dist/{renderer-DjBCWxYy.mjs → renderer-DYbgd6Ye.mjs} +3 -3
- package/dist/{renderer-DjBCWxYy.mjs.map → renderer-DYbgd6Ye.mjs.map} +1 -1
- package/dist/{renderer-BDCy8NgT.mjs → renderer-DZhIe8Gj.mjs} +3 -3
- package/dist/{renderer-BDCy8NgT.mjs.map → renderer-DZhIe8Gj.mjs.map} +1 -1
- package/dist/{renderer-BMKFzfSQ.mjs → renderer-DcOT5c0t.mjs} +3 -3
- package/dist/{renderer-BMKFzfSQ.mjs.map → renderer-DcOT5c0t.mjs.map} +1 -1
- package/dist/renderer-Di_5vQ81.mjs +6 -0
- package/dist/renderer-DkmpsPIa.mjs +5 -0
- package/dist/renderer-Ds6wd9Gk.mjs +5 -0
- package/dist/{renderer-BTigwMQp.mjs → renderer-Du8eOWWU.mjs} +3 -3
- package/dist/{renderer-BTigwMQp.mjs.map → renderer-Du8eOWWU.mjs.map} +1 -1
- package/dist/renderer-Dv4p0lp9.mjs +5 -0
- package/dist/renderer-DzWoOlVc.mjs +5 -0
- package/dist/{renderer-7y5Cj8rV.mjs → renderer-GapR_An3.mjs} +3 -3
- package/dist/{renderer-7y5Cj8rV.mjs.map → renderer-GapR_An3.mjs.map} +1 -1
- package/dist/{renderer-Czxgaygb.mjs → renderer-GbVNyv-E.mjs} +6 -6
- package/dist/{renderer-Czxgaygb.mjs.map → renderer-GbVNyv-E.mjs.map} +1 -1
- package/dist/{renderer-NizuhHsH.mjs → renderer-I3Wxk1tL.mjs} +3 -3
- package/dist/{renderer-NizuhHsH.mjs.map → renderer-I3Wxk1tL.mjs.map} +1 -1
- package/dist/renderer-IOz63OWg.mjs +5 -0
- package/dist/renderer-JkSrsUa5.mjs +5 -0
- package/dist/{renderer-gRMkQabv.mjs → renderer-OEpwc9Zk.mjs} +3 -3
- package/dist/{renderer-gRMkQabv.mjs.map → renderer-OEpwc9Zk.mjs.map} +1 -1
- package/dist/renderer-Ocs1Djwu.mjs +5 -0
- package/dist/{renderer-rXgqgAjw.mjs → renderer-OsA-Lg4d.mjs} +3 -3
- package/dist/{renderer-rXgqgAjw.mjs.map → renderer-OsA-Lg4d.mjs.map} +1 -1
- package/dist/{renderer-Bi6W4RSn.mjs → renderer-P4OPsD82.mjs} +2 -2
- package/dist/{renderer-Bi6W4RSn.mjs.map → renderer-P4OPsD82.mjs.map} +1 -1
- package/dist/{renderer-BwpgDLYO.mjs → renderer-PuN2_AL_.mjs} +3 -3
- package/dist/{renderer-BwpgDLYO.mjs.map → renderer-PuN2_AL_.mjs.map} +1 -1
- package/dist/{renderer-CNuVJ4nG.mjs → renderer-QaN-aejD.mjs} +2 -2
- package/dist/{renderer-CNuVJ4nG.mjs.map → renderer-QaN-aejD.mjs.map} +1 -1
- package/dist/renderer-Wdn7m_uN.mjs +5 -0
- package/dist/{renderer-BwwZB2mt.mjs → renderer-f7A01ArI.mjs} +4 -4
- package/dist/{renderer-BwwZB2mt.mjs.map → renderer-f7A01ArI.mjs.map} +1 -1
- package/dist/{renderer-G1pMJH5C.mjs → renderer-gm0zoV4t.mjs} +2 -2
- package/dist/{renderer-G1pMJH5C.mjs.map → renderer-gm0zoV4t.mjs.map} +1 -1
- package/dist/{renderer-DScyMHpJ.mjs → renderer-kNjMhwiZ.mjs} +2 -2
- package/dist/{renderer-DScyMHpJ.mjs.map → renderer-kNjMhwiZ.mjs.map} +1 -1
- package/dist/renderer-mKpjaoE3.mjs +5 -0
- package/dist/{renderer-Cbsnj9vV.mjs → renderer-mqUBkx-a.mjs} +3 -3
- package/dist/{renderer-Cbsnj9vV.mjs.map → renderer-mqUBkx-a.mjs.map} +1 -1
- package/dist/{renderer-DyyIXLQK.mjs → renderer-plx7_lUQ.mjs} +3 -3
- package/dist/{renderer-DyyIXLQK.mjs.map → renderer-plx7_lUQ.mjs.map} +1 -1
- package/dist/{renderer-D6BXR7P4.mjs → renderer-qYhNf6iB.mjs} +2 -2
- package/dist/{renderer-D6BXR7P4.mjs.map → renderer-qYhNf6iB.mjs.map} +1 -1
- package/dist/{renderer-CeiCJCg4.mjs → renderer-y6k54AM6.mjs} +3 -3
- package/dist/{renderer-CeiCJCg4.mjs.map → renderer-y6k54AM6.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-DzGXDs5p.mjs → renderers-CP8CFWDs-D1FHpA7I.mjs} +3 -3
- package/dist/{renderers-CP8CFWDs-DzGXDs5p.mjs.map → renderers-CP8CFWDs-D1FHpA7I.mjs.map} +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +6 -6
- package/dist/{signals-C5nOrRmn.mjs → signals-BwdVfK3p.mjs} +3 -3
- package/dist/{signals-C5nOrRmn.mjs.map → signals-BwdVfK3p.mjs.map} +1 -1
- package/package.json +57 -57
- package/dist/dist-ClyC_d66.mjs.map +0 -1
- package/dist/effects-DxylPSuI.mjs.map +0 -1
- package/dist/index-B1XcyMm8.d.mts.map +0 -1
- package/dist/index-B2Xesdug.d.mts.map +0 -1
- package/dist/index-BxARm93R.d.mts.map +0 -1
- package/dist/index-C0o3lLyA.d.mts.map +0 -1
- package/dist/index-DujpgUUq.d.mts.map +0 -1
- package/dist/preview-engine/chunk-266DECPQ.mjs +0 -1
- package/dist/preview-engine/chunk-CPFPY35C.mjs +0 -1
- package/dist/preview-engine/chunk-NTVDL3RS.mjs +0 -1
- package/dist/preview-engine/chunk-UZBVCYRY.mjs +0 -174
- package/dist/preview-engine/chunk-XDMZP3E2.mjs +0 -1
- package/dist/preview-engine/chunk-YKMBRUAE.mjs +0 -1
- package/dist/preview-engine/renderers-3CXFGRE7.mjs +0 -1
- package/dist/preview-engine/renderers-3FC3WCJN.mjs +0 -1
- package/dist/preview-engine/renderers-3S2FM33K.mjs +0 -1
- package/dist/preview-engine/renderers-53ZTBI3C.mjs +0 -1
- package/dist/preview-engine/renderers-5USBVCMQ.mjs +0 -1
- package/dist/preview-engine/renderers-65G6BLEA.mjs +0 -1
- package/dist/preview-engine/renderers-7XU7BXE7.mjs +0 -1
- package/dist/preview-engine/renderers-BFXM32BC.mjs +0 -1
- package/dist/preview-engine/renderers-CDXHCWWK.mjs +0 -1
- package/dist/preview-engine/renderers-CLUN7WU6.mjs +0 -1
- package/dist/preview-engine/renderers-DTB4HEXU.mjs +0 -1
- package/dist/preview-engine/renderers-EFKNRLYF.mjs +0 -1
- package/dist/preview-engine/renderers-G2K7ZA5O.mjs +0 -1
- package/dist/preview-engine/renderers-GTUO5LIV.mjs +0 -1
- package/dist/preview-engine/renderers-HSJIVP57.mjs +0 -1
- package/dist/preview-engine/renderers-IHACBWXI.mjs +0 -1
- package/dist/preview-engine/renderers-IO3BVVJ7.mjs +0 -1
- package/dist/preview-engine/renderers-IR772VSN.mjs +0 -1
- package/dist/preview-engine/renderers-L6TRJOXA.mjs +0 -1
- package/dist/preview-engine/renderers-N6H6RSF2.mjs +0 -1
- package/dist/preview-engine/renderers-O5NFQYRQ.mjs +0 -1
- package/dist/preview-engine/renderers-O6V3OEKX.mjs +0 -1
- package/dist/preview-engine/renderers-OODA27UH.mjs +0 -1
- package/dist/preview-engine/renderers-RIGW33ZI.mjs +0 -1
- package/dist/preview-engine/renderers-RUZRBQ4K.mjs +0 -1
- package/dist/preview-engine/renderers-SKB2GGKS.mjs +0 -1
- package/dist/preview-engine/renderers-T4D2TASM.mjs +0 -1
- package/dist/preview-engine/renderers-T74XV36Q.mjs +0 -1
- package/dist/preview-engine/renderers-TOPW2UM3.mjs +0 -1
- package/dist/preview-engine/renderers-UO5G3Y2G.mjs +0 -1
- package/dist/preview-engine/renderers-UOV7VOJJ.mjs +0 -1
- package/dist/preview-engine/renderers-UWKSTSTA.mjs +0 -1
- package/dist/preview-engine/renderers-VHPAOUTA.mjs +0 -1
- package/dist/preview-engine/renderers-YEQRQJFC.mjs +0 -1
- package/dist/preview-engine/renderers-YRZ3WODX.mjs +0 -1
- package/dist/preview-engine/renderers-YUTFGVRY.mjs +0 -1
- package/dist/preview-engine/renderers-YXOTRKPA.mjs +0 -1
- package/dist/preview-engine/renderers-ZOU5ARVD.mjs +0 -1
- package/dist/preview-engine/renderers-ZW75LQTR.mjs +0 -1
- package/dist/program-C2cJayA1.mjs.map +0 -1
- package/dist/renderer-BAhZeUUn.mjs +0 -5
- package/dist/renderer-BHAE_dKq.mjs +0 -5
- package/dist/renderer-BNYZY3FE.mjs +0 -5
- package/dist/renderer-BSvubMvI.mjs +0 -5
- package/dist/renderer-B_M_yhTc.mjs +0 -5
- package/dist/renderer-B_xSsTuy.mjs +0 -5
- package/dist/renderer-BePHurAU.mjs +0 -5
- package/dist/renderer-BfZquJrW.mjs +0 -5
- package/dist/renderer-BuY5ypB2.mjs +0 -5
- package/dist/renderer-BvOQgFHo.mjs +0 -5
- package/dist/renderer-C7NkSvUz.mjs +0 -5
- package/dist/renderer-CIuxV2q1.mjs +0 -5
- package/dist/renderer-CKp97tSQ.mjs +0 -5
- package/dist/renderer-CNb-DG00.mjs.map +0 -1
- package/dist/renderer-CY89dTFR.mjs +0 -5
- package/dist/renderer-C_B_4Bl0.mjs +0 -5
- package/dist/renderer-Cd87JOjP.mjs +0 -5
- package/dist/renderer-Cev6orIK.mjs +0 -6
- package/dist/renderer-Cewf6UPh.mjs +0 -5
- package/dist/renderer-CnHsMLIv.mjs +0 -5
- package/dist/renderer-CoxuAr7b.mjs +0 -5
- package/dist/renderer-CrdG7trA.mjs +0 -5
- package/dist/renderer-Cu5MFgbk.mjs +0 -5
- package/dist/renderer-CuOjhtoo.mjs +0 -5
- package/dist/renderer-D2_0g6Oi.mjs +0 -5
- package/dist/renderer-D62FwolD.mjs +0 -5
- package/dist/renderer-DDNY9N7I.mjs +0 -5
- package/dist/renderer-DF_ONJ3v.mjs +0 -5
- package/dist/renderer-DbzrVHEE.mjs +0 -5
- package/dist/renderer-DlYchp1v.mjs +0 -5
- package/dist/renderer-DqcUNP8J.mjs +0 -5
- package/dist/renderer-DqvFhEQj.mjs +0 -5
- package/dist/renderer-DxBav2bE.mjs +0 -5
- package/dist/renderer-GvSRoQje.mjs +0 -5
- package/dist/renderer-KP7Ita9g.mjs +0 -5
- package/dist/renderer-Pc8dyNXt.mjs +0 -5
- package/dist/renderer-ezRCmU09.mjs +0 -3
- package/dist/renderer-h6ev1ogx.mjs +0 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program-KwDdbC0-.mjs","names":["LayerAnimation","CameraAnimation","Scene","Sequence"],"sources":["../../compositions/dist/program/index.mjs"],"sourcesContent":["import { n as __reExport, t as __exportAll } from \"../chunk-CFhWmker.mjs\";\nimport { Color, Effect, assertNever, createVirtualMedia, getActiveMediaMetadata, mixColors, parseCssColor, parseCssGradient } from \"@framefields/core\";\nimport { ColorSchema } from \"@framefields/node-sdk\";\nimport { signalRegistry } from \"@framefields/webgpu-renderers\";\nimport { loadYoga } from \"yoga-layout/load\";\nimport { AETextAnimatorSchema, AdvancedTextAnimatorSchema, KineticMarqueeConfigSchema, TextPathOptionsSchema, TypewriterAnimatorSchema } from \"@framefields/webgpu-renderers/text-animations\";\nimport { z } from \"zod\";\n\nexport * from \"@framefields/webgpu-renderers/text-animations\"\n\n//#region src/utils/layout/resolve-layout.ts\nlet yogaInstance = null;\n/**\n* Ensure the Yoga WASM module is loaded. Safe to call multiple times —\n* subsequent calls return the cached instance immediately.\n*/\nasync function initLayout() {\n\tif (yogaInstance) return yogaInstance;\n\tyogaInstance = await loadYoga();\n\treturn yogaInstance;\n}\nfunction mapJustify(yoga, value) {\n\tswitch (value) {\n\t\tcase \"center\": return yoga.JUSTIFY_CENTER;\n\t\tcase \"end\": return yoga.JUSTIFY_FLEX_END;\n\t\tcase \"space-between\": return yoga.JUSTIFY_SPACE_BETWEEN;\n\t\tcase \"space-around\": return yoga.JUSTIFY_SPACE_AROUND;\n\t\tdefault: return yoga.JUSTIFY_FLEX_START;\n\t}\n}\nfunction mapAlign(yoga, value) {\n\tswitch (value) {\n\t\tcase \"center\": return yoga.ALIGN_CENTER;\n\t\tcase \"end\": return yoga.ALIGN_FLEX_END;\n\t\tcase \"stretch\": return yoga.ALIGN_STRETCH;\n\t\tdefault: return yoga.ALIGN_FLEX_START;\n\t}\n}\nfunction mapAlignSelf(yoga, value) {\n\tswitch (value) {\n\t\tcase \"start\": return yoga.ALIGN_FLEX_START;\n\t\tcase \"center\": return yoga.ALIGN_CENTER;\n\t\tcase \"end\": return yoga.ALIGN_FLEX_END;\n\t\tcase \"stretch\": return yoga.ALIGN_STRETCH;\n\t\tcase \"baseline\": return yoga.ALIGN_BASELINE;\n\t\tdefault: return yoga.ALIGN_AUTO;\n\t}\n}\nfunction toYogaValue(val) {\n\tif (val === void 0 || val === null) return void 0;\n\tif (typeof val === \"number\" || typeof val === \"string\") return val;\n\tif (typeof val === \"object\") {\n\t\tif (\"unit\" in val && typeof val.unit === \"number\") return val;\n\t\tconst num = Number(val);\n\t\tif (!Number.isNaN(num)) return num;\n\t}\n}\n/** Container main dir; leaves return null. */\nfunction dirOf(node) {\n\tswitch (node.kind) {\n\t\tcase \"flex\": return node.dir ?? \"row\";\n\t\tcase \"block\": return \"column\";\n\t\tcase \"box\": return node.children && node.children.length > 0 ? \"column\" : null;\n\t\tcase \"text\":\n\t\tcase \"media\":\n\t\tcase \"shape\":\n\t\tcase \"camera\":\n\t\tcase \"light\":\n\t\tcase \"model3d\": return null;\n\t\tdefault: return assertNever(node);\n\t}\n}\n/** Container default width spec (block fills like HTML). */\nfunction defaultWidthSpec(node) {\n\tif (node.kind === \"block\") return \"fill\";\n}\nfunction containerStyle(node) {\n\tlet gap = 0;\n\tif (node.kind === \"flex\" || node.kind === \"block\") {\n\t\tconst g = toYogaValue(node.gap);\n\t\tgap = typeof g === \"number\" ? g : 0;\n\t}\n\tlet padding = 0;\n\tif (node.kind === \"flex\" || node.kind === \"block\" || node.kind === \"box\" || node.kind === \"text\") {\n\t\tconst p = toYogaValue(node.padding);\n\t\tpadding = typeof p === \"number\" ? p : 0;\n\t}\n\tlet justify = \"start\";\n\tif (node.kind === \"flex\") justify = node.justify ?? \"start\";\n\tlet align$1 = \"start\";\n\tif (node.kind === \"flex\" || node.kind === \"block\") align$1 = node.align ?? \"start\";\n\tlet wrap = false;\n\tif (node.kind === \"flex\") wrap = typeof node.wrap === \"boolean\" ? node.wrap : false;\n\treturn {\n\t\tgap,\n\t\tpadding,\n\t\tjustify,\n\t\talign: align$1,\n\t\twrap\n\t};\n}\nfunction isAbsolutePositioned(layoutNode) {\n\tconst node = layoutNode;\n\treturn node.position === \"absolute\" || node.position === void 0 && (node.x !== void 0 || node.y !== void 0);\n}\n/** Flow children (non-absolute). */\nfunction flowChildren(node) {\n\tif (\"children\" in node && node.children) return node.children.filter((c) => !isAbsolutePositioned(c));\n\treturn [];\n}\nfunction absoluteChildren(node) {\n\tif (\"children\" in node && node.children) return node.children.filter((c) => isAbsolutePositioned(c));\n\treturn [];\n}\nfunction buildYogaNode(yoga, layoutNode, parentExtent, measure, parentDir) {\n\tconst node = layoutNode;\n\tconst yn = yoga.Node.create();\n\tconst dir = dirOf(node);\n\tconst isContainer = dir !== null;\n\tconst children = [];\n\tif (isAbsolutePositioned(node)) {\n\t\tyn.setPositionType(yoga.POSITION_TYPE_ABSOLUTE);\n\t\tconst posX = toYogaValue(node.x);\n\t\tconst posY = toYogaValue(node.y);\n\t\tif (posX !== void 0) yn.setPosition(yoga.EDGE_LEFT, posX);\n\t\tif (posY !== void 0) yn.setPosition(yoga.EDGE_TOP, posY);\n\t} else yn.setPositionType(yoga.POSITION_TYPE_RELATIVE);\n\tconst grow = toYogaValue(node.grow);\n\tif (grow !== void 0) yn.setFlexGrow(typeof grow === \"number\" ? grow : parseFloat(grow));\n\tconst flexShrink = toYogaValue(node.flexShrink);\n\tif (flexShrink !== void 0) yn.setFlexShrink(typeof flexShrink === \"number\" ? flexShrink : parseFloat(flexShrink));\n\telse yn.setFlexShrink(parentDir !== null ? 1 : 0);\n\tif (node.flexBasis !== void 0) yn.setFlexBasis(node.flexBasis);\n\tif (node.alignSelf !== void 0) yn.setAlignSelf(mapAlignSelf(yoga, node.alignSelf));\n\tconst wSpec = node.width ?? defaultWidthSpec(node);\n\tconst hSpec = node.height;\n\tconst isWidthMain = parentDir === \"row\";\n\tconst isHeightMain = parentDir === \"column\";\n\tapplySizeSpec(yn, \"width\", wSpec, parentExtent?.width, isWidthMain);\n\tapplySizeSpec(yn, \"height\", hSpec, parentExtent?.height, isHeightMain);\n\tif (isContainer) {\n\t\tconst cs = containerStyle(node);\n\t\tyn.setFlexDirection(dir === \"row\" ? yoga.FLEX_DIRECTION_ROW : yoga.FLEX_DIRECTION_COLUMN);\n\t\tyn.setJustifyContent(mapJustify(yoga, cs.justify));\n\t\tyn.setAlignItems(mapAlign(yoga, cs.align));\n\t\tyn.setFlexWrap(cs.wrap ? yoga.WRAP_WRAP : yoga.WRAP_NO_WRAP);\n\t\tif (cs.padding > 0) yn.setPadding(yoga.EDGE_ALL, cs.padding);\n\t\tif (cs.gap > 0) yn.setGap(yoga.GUTTER_ALL, cs.gap);\n\t\tconst flow = flowChildren(node);\n\t\tconst abs = absoluteChildren(node);\n\t\tconst allChildren = [...flow, ...abs];\n\t\tfor (let i = 0; i < allChildren.length; i++) {\n\t\t\tconst childMapping = buildYogaNode(yoga, allChildren[i], void 0, measure, isAbsolutePositioned(node) ? null : dir);\n\t\t\tyn.insertChild(childMapping.yogaNode, i);\n\t\t\tchildren.push(childMapping);\n\t\t}\n\t} else if (node.kind === \"text\" || node.kind === \"media\" && node.dataType === \"Caption\") yn.setMeasureFunc((width, widthMode, height, heightMode) => {\n\t\tlet constraintWidth;\n\t\tif (widthMode === 1 || widthMode === 2) constraintWidth = width;\n\t\tconst measured = measure?.(node, constraintWidth) ?? {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t\tlet resolvedWidth = measured.width;\n\t\tlet resolvedHeight = measured.height;\n\t\tif (widthMode === 1) resolvedWidth = width;\n\t\tif (heightMode === 1) resolvedHeight = height;\n\t\treturn {\n\t\t\twidth: resolvedWidth,\n\t\t\theight: resolvedHeight\n\t\t};\n\t});\n\telse {\n\t\tconst measured = measure?.(node) ?? null;\n\t\tif (measured) {\n\t\t\tconst hasRatio = node.aspectRatio !== void 0;\n\t\t\tconst isCaption = node.kind === \"media\" && node.dataType === \"Caption\";\n\t\t\tconst intrinsicRatio = measured.height > 0 ? measured.width / measured.height : 1;\n\t\t\tif (node.kind === \"media\" && !isCaption && !hasRatio) yn.setAspectRatio(intrinsicRatio);\n\t\t\tconst isWAuto = wSpec === void 0 || wSpec === \"auto\" || wSpec === \"fit\";\n\t\t\tconst isHAuto = hSpec === void 0 || hSpec === \"auto\" || hSpec === \"fit\";\n\t\t\tif (isWAuto && isHAuto) {\n\t\t\t\tconst ar = node.aspectRatio ?? (node.kind === \"media\" ? intrinsicRatio : void 0) ?? 1;\n\t\t\t\tyn.setMeasureFunc((width, widthMode, height, heightMode) => {\n\t\t\t\t\tlet resW = measured.width;\n\t\t\t\t\tlet resH = measured.height;\n\t\t\t\t\tif (widthMode === 1 && heightMode === 1) {\n\t\t\t\t\t\tresW = width;\n\t\t\t\t\t\tresH = height;\n\t\t\t\t\t} else if (widthMode === 1) {\n\t\t\t\t\t\tresW = width;\n\t\t\t\t\t\tresH = ar > 0 ? Math.round(width / ar) : measured.height;\n\t\t\t\t\t} else if (heightMode === 1) {\n\t\t\t\t\t\tresH = height;\n\t\t\t\t\t\tresW = ar > 0 ? Math.round(height * ar) : measured.width;\n\t\t\t\t\t} else if (widthMode === 2 && heightMode === 2) {\n\t\t\t\t\t\tconst scale = Math.min(1, width / measured.width, height / measured.height);\n\t\t\t\t\t\tresW = Math.round(measured.width * scale);\n\t\t\t\t\t\tresH = Math.round(measured.height * scale);\n\t\t\t\t\t} else if (widthMode === 2) {\n\t\t\t\t\t\tif (measured.width > width) {\n\t\t\t\t\t\t\tresW = width;\n\t\t\t\t\t\t\tresH = ar > 0 ? Math.round(width / ar) : measured.height;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (heightMode === 2) {\n\t\t\t\t\t\tif (measured.height > height) {\n\t\t\t\t\t\t\tresH = height;\n\t\t\t\t\t\t\tresW = ar > 0 ? Math.round(height * ar) : measured.width;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidth: resW,\n\t\t\t\t\t\theight: resH\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t} else if (isWAuto) {\n\t\t\t\tconst ar = node.aspectRatio ?? (node.kind === \"media\" ? intrinsicRatio : void 0);\n\t\t\t\tif (ar === void 0 || ar <= 0) yn.setWidth(measured.width);\n\t\t\t} else if (isHAuto) {\n\t\t\t\tconst ar = node.aspectRatio ?? (node.kind === \"media\" ? intrinsicRatio : void 0);\n\t\t\t\tif (ar === void 0 || ar <= 0) yn.setHeight(measured.height);\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tyogaNode: yn,\n\t\tlayoutNode: node,\n\t\tchildren\n\t};\n}\nfunction applySizeSpec(yn, dim, spec, parentExtent, isFlexChild) {\n\tif (spec === void 0 || spec === \"auto\" || spec === \"fit\") return;\n\tconst resolvedSpec = toYogaValue(spec);\n\tif (typeof resolvedSpec === \"number\") {\n\t\tif (dim === \"width\") yn.setWidth(resolvedSpec);\n\t\telse yn.setHeight(resolvedSpec);\n\t\treturn;\n\t}\n\tif (resolvedSpec === \"fill\") {\n\t\tif (isFlexChild) {\n\t\t\tif (yn.getFlexGrow() === 0) yn.setFlexGrow(1);\n\t\t\tyn.setFlexBasis(0);\n\t\t\treturn;\n\t\t}\n\t\tif (parentExtent !== void 0) if (dim === \"width\") yn.setWidth(parentExtent);\n\t\telse yn.setHeight(parentExtent);\n\t\telse if (dim === \"width\") yn.setWidthPercent(100);\n\t\telse yn.setHeightPercent(100);\n\t}\n}\nfunction readLayout(mapping, parentX, parentY, rects, sizes) {\n\tconst layout = mapping.yogaNode.getComputedLayout();\n\tlet x = parentX + layout.left;\n\tlet y = parentY + layout.top;\n\tconst width = layout.width;\n\tconst height = layout.height;\n\tconst node = mapping.layoutNode;\n\tif (!isAbsolutePositioned(node)) {\n\t\tx += Number(node.x ?? 0);\n\t\ty += Number(node.y ?? 0);\n\t}\n\trects[mapping.layoutNode.id] = {\n\t\tx: Math.round(x * 1e3) / 1e3,\n\t\ty: Math.round(y * 1e3) / 1e3,\n\t\twidth: Math.round(width * 1e3) / 1e3,\n\t\theight: Math.round(height * 1e3) / 1e3\n\t};\n\tsizes[mapping.layoutNode.id] = {\n\t\twidth: Math.round(width * 1e3) / 1e3,\n\t\theight: Math.round(height * 1e3) / 1e3\n\t};\n\tfor (const child of mapping.children) readLayout(child, x, y, rects, sizes);\n}\nfunction freeYogaTree(mapping) {\n\tfor (const child of mapping.children) freeYogaTree(child);\n\tmapping.yogaNode.free();\n}\n/** Deterministic layout (synchronous): document + viewport (+ measure) → rects. */\nfunction computeLayoutSync(yoga, input) {\n\tconst { layout, viewport, measure } = input;\n\tconst rects = {};\n\tconst sizesMap = {};\n\tfor (const root of layout) {\n\t\tconst wrapperNode = yoga.Node.create();\n\t\twrapperNode.setWidth(viewport.width);\n\t\twrapperNode.setHeight(viewport.height);\n\t\twrapperNode.setFlexDirection(yoga.FLEX_DIRECTION_COLUMN);\n\t\tconst mapping = buildYogaNode(yoga, root, {\n\t\t\twidth: viewport.width,\n\t\t\theight: viewport.height\n\t\t}, measure, null);\n\t\twrapperNode.insertChild(mapping.yogaNode, 0);\n\t\twrapperNode.calculateLayout(viewport.width, viewport.height);\n\t\tconst rootLayout = mapping.yogaNode.getComputedLayout();\n\t\tconst isRootAbsolute = root.position === \"absolute\" || root.position === void 0 && (root.x !== void 0 || root.y !== void 0);\n\t\tconst rootX = isRootAbsolute ? rootLayout.left : Number(root.x ?? 0);\n\t\tconst rootY = isRootAbsolute ? rootLayout.top : Number(root.y ?? 0);\n\t\trects[root.id] = {\n\t\t\tx: Math.round(rootX * 1e3) / 1e3,\n\t\t\ty: Math.round(rootY * 1e3) / 1e3,\n\t\t\twidth: Math.round(rootLayout.width * 1e3) / 1e3,\n\t\t\theight: Math.round(rootLayout.height * 1e3) / 1e3\n\t\t};\n\t\tsizesMap[root.id] = {\n\t\t\twidth: Math.round(rootLayout.width * 1e3) / 1e3,\n\t\t\theight: Math.round(rootLayout.height * 1e3) / 1e3\n\t\t};\n\t\tfor (const child of mapping.children) readLayout(child, rootX, rootY, rects, sizesMap);\n\t\tfreeYogaTree(mapping);\n\t\twrapperNode.free();\n\t}\n\treturn {\n\t\trects,\n\t\tsizes: sizesMap\n\t};\n}\n/** Deterministic layout: document + viewport (+ measure) → rects. */\nasync function computeLayout(input) {\n\treturn computeLayoutSync(await initLayout(), input);\n}\n\n//#endregion\n//#region src/program/inline-signals.ts\n/**\n* Inline signal objects on animation tracks.\n*\n* `LayerAnimation.signal(prop, Signal.fromArray(...))` binds a track to a\n* signal object instead of a name registered with `comp.addSignal`. The spec\n* stays plain data: the track's `inputHandleId` gets a generated name and the\n* object rides on the source under a non-enumerable symbol (invisible to JSON,\n* zod and hashing). `compositorToProgram` walks the layout and folds those\n* objects into the program's `signals` map under their generated names, so\n* every evaluator (which only looks signals up by name) sees them.\n*/\nconst INLINE_SIGNAL = Symbol.for(\"framefields.inlineSignal\");\nconst handleIds = /* @__PURE__ */ new WeakMap();\nlet nextHandle = 0;\n/**\n* The generated handle id for a signal object. The same object always gets\n* the same id, so reusing one signal across tracks registers it once.\n*/\nfunction inlineSignalHandleId(signal) {\n\tlet id = handleIds.get(signal);\n\tif (id === void 0) {\n\t\tid = `inline_signal_${nextHandle++}`;\n\t\thandleIds.set(signal, id);\n\t}\n\treturn id;\n}\n/**\n* Resolves the `signalOrHandleId` argument of `LayerAnimation.signal` /\n* `colorSignal` to a handle id, plus the signal object to carry inline (when\n* it is not a registered name).\n*/\nfunction resolveSignalArg(signalOrHandleId) {\n\tif (typeof signalOrHandleId === \"string\") return { handleId: signalOrHandleId };\n\tif (signalOrHandleId === null || typeof signalOrHandleId !== \"object\" && typeof signalOrHandleId !== \"function\") throw new TypeError(`LayerAnimation.signal: expected a signal object or a signal name, got ${String(signalOrHandleId)}. Pass a signal (Signal.fromArray / Signal.builder / an audio channel …) or register it with comp.addSignal(name, signal) and pass the name.`);\n\tconst obj = signalOrHandleId;\n\tif (typeof obj.inputHandleId === \"string\") return { handleId: obj.inputHandleId };\n\tif (typeof obj.gpuBinding?.nodeId === \"string\") return typeof obj.get === \"function\" ? {\n\t\thandleId: obj.gpuBinding.nodeId,\n\t\tinline: signalOrHandleId\n\t} : { handleId: obj.gpuBinding.nodeId };\n\treturn {\n\t\thandleId: inlineSignalHandleId(signalOrHandleId),\n\t\tinline: signalOrHandleId\n\t};\n}\n/** Attaches an inline signal object to a track source without making it enumerable. */\nfunction attachInlineSignal(source, signal) {\n\tObject.defineProperty(source, INLINE_SIGNAL, {\n\t\tvalue: signal,\n\t\tenumerable: false,\n\t\tconfigurable: true,\n\t\twritable: true\n\t});\n}\n/** The inline signal object carried by a track source, if any. */\nfunction getInlineSignal(source) {\n\tif (!source || typeof source !== \"object\") return void 0;\n\treturn source[INLINE_SIGNAL];\n}\n/**\n* Collects every inline signal object under `nodes` (animation tracks of each\n* node, recursing into `children`) keyed by its generated handle id.\n*/\nfunction collectInlineSignals(nodes, out = {}) {\n\tfor (const node of nodes) {\n\t\tif (!node || typeof node !== \"object\") continue;\n\t\tconst { animation, children } = node;\n\t\tconst tracks = animation?.tracks;\n\t\tif (Array.isArray(tracks)) for (const track of tracks) {\n\t\t\tconst source = track?.source;\n\t\t\tconst signal = getInlineSignal(source);\n\t\t\tif (signal && typeof source?.inputHandleId === \"string\") out[source.inputHandleId] = signal;\n\t\t}\n\t\tif (Array.isArray(children)) collectInlineSignals(children, out);\n\t}\n\treturn out;\n}\n\n//#endregion\n//#region src/program/animation.ts\nconst isKeyframeTrack = (t) => !t.source || t.source.type === \"keyframe\";\n/**\n* Merges keyframe tracks that animate the same prop into one sorted track,\n* the later key winning on a shared frame. Procedural tracks (signal,\n* wiggle, spring…) pass through untouched.\n*/\nfunction mergeAnimationTracks(tracks) {\n\tconst out = [];\n\tconst byProp = /* @__PURE__ */ new Map();\n\tfor (const t of tracks) {\n\t\tif (!isKeyframeTrack(t)) {\n\t\t\tout.push(t);\n\t\t\tcontinue;\n\t\t}\n\t\tconst existing = byProp.get(t.prop);\n\t\tif (!existing) {\n\t\t\tconst copy = {\n\t\t\t\t...t,\n\t\t\t\tkeyframes: [...t.keyframes ?? []]\n\t\t\t};\n\t\t\tbyProp.set(t.prop, copy);\n\t\t\tout.push(copy);\n\t\t\tcontinue;\n\t\t}\n\t\tconst frames = new Map(existing.keyframes.map((k) => [k.frame, k]));\n\t\tfor (const k of t.keyframes ?? []) frames.set(k.frame, k);\n\t\texisting.keyframes = [...frames.values()].sort((a, b) => a.frame - b.frame);\n\t}\n\treturn out;\n}\nfunction evaluateEasingProgress(ease, t) {\n\tif (!ease) return t;\n\tconst ref = parseEase(ease);\n\tif (!ref || ref.name === \"none\") return t;\n\tconst { name, dir, params } = ref;\n\tconst s = Math.max(0, Math.min(1, t));\n\tconst applyDir = (fn) => {\n\t\tif (dir === \"in\") return fn(s);\n\t\tif (dir === \"out\") return 1 - fn(1 - s);\n\t\treturn s < .5 ? fn(s * 2) / 2 : 1 - fn((1 - s) * 2) / 2;\n\t};\n\tswitch (name) {\n\t\tcase \"power1\": return applyDir((x) => x * x);\n\t\tcase \"power2\": return applyDir((x) => x * x * x);\n\t\tcase \"power3\": return applyDir((x) => x * x * x * x);\n\t\tcase \"sine\": return applyDir((x) => 1 - Math.cos(x * Math.PI / 2));\n\t\tcase \"circ\": return applyDir((x) => 1 - Math.sqrt(Math.max(0, 1 - x * x)));\n\t\tcase \"expo\": return applyDir((x) => x === 0 ? 0 : 2 ** (10 * (x - 1)));\n\t\tcase \"back\": {\n\t\t\tconst c1 = params?.[0] ?? 1.70158;\n\t\t\tconst c3 = c1 + 1;\n\t\t\treturn applyDir((x) => c3 * x * x * x - c1 * x * x);\n\t\t}\n\t\tcase \"bounce\": {\n\t\t\tconst bounceOut = (x) => {\n\t\t\t\tconst n1 = 7.5625;\n\t\t\t\tconst d1 = 2.75;\n\t\t\t\tif (x < 1 / d1) return n1 * x * x;\n\t\t\t\tif (x < 2 / d1) {\n\t\t\t\t\tconst x2$1 = x - 1.5 / d1;\n\t\t\t\t\treturn n1 * x2$1 * x2$1 + .75;\n\t\t\t\t}\n\t\t\t\tif (x < 2.5 / d1) {\n\t\t\t\t\tconst x2$1 = x - 2.25 / d1;\n\t\t\t\t\treturn n1 * x2$1 * x2$1 + .9375;\n\t\t\t\t}\n\t\t\t\tconst x2 = x - 2.625 / d1;\n\t\t\t\treturn n1 * x2 * x2 + .984375;\n\t\t\t};\n\t\t\tif (dir === \"out\") return bounceOut(s);\n\t\t\tif (dir === \"in\") return 1 - bounceOut(1 - s);\n\t\t\treturn s < .5 ? (1 - bounceOut(1 - 2 * s)) / 2 : (1 + bounceOut(2 * s - 1)) / 2;\n\t\t}\n\t\tdefault: return s;\n\t}\n}\nfunction parseEase(ease) {\n\tif (!ease) return void 0;\n\tif (typeof ease === \"object\" && \"name\" in ease && \"dir\" in ease) return ease;\n\tif (typeof ease === \"string\") {\n\t\tconst trimmed = ease.trim();\n\t\tconst match = trimmed.match(/^([a-zA-Z0-9]+)(?:\\.([a-zA-Z]+))?(?:\\(([^)]+)\\))?$/);\n\t\tif (match) {\n\t\t\tconst rawName$1 = match[1].toLowerCase();\n\t\t\tconst name$1 = rawName$1 === \"linear\" ? \"none\" : rawName$1;\n\t\t\tconst rawDir$1 = (match[2] || \"out\").toLowerCase();\n\t\t\tlet dir$1 = \"out\";\n\t\t\tif (rawDir$1 === \"in\") dir$1 = \"in\";\n\t\t\telse if (rawDir$1 === \"out\") dir$1 = \"out\";\n\t\t\telse if (rawDir$1 === \"inout\") dir$1 = \"inOut\";\n\t\t\tlet params;\n\t\t\tif (match[3]) params = match[3].split(\",\").map((s) => Number.parseFloat(s.trim())).filter((n) => !Number.isNaN(n));\n\t\t\treturn {\n\t\t\t\tname: name$1,\n\t\t\t\tdir: dir$1,\n\t\t\t\t...params && params.length > 0 ? { params } : {}\n\t\t\t};\n\t\t}\n\t\tconst dotIdx = trimmed.indexOf(\".\");\n\t\tif (dotIdx === -1) {\n\t\t\tconst raw = trimmed.toLowerCase();\n\t\t\treturn {\n\t\t\t\tname: raw === \"linear\" ? \"none\" : raw,\n\t\t\t\tdir: \"out\"\n\t\t\t};\n\t\t}\n\t\tconst rawName = trimmed.slice(0, dotIdx).toLowerCase();\n\t\tconst name = rawName === \"linear\" ? \"none\" : rawName;\n\t\tconst rawDir = trimmed.slice(dotIdx + 1).toLowerCase();\n\t\tlet dir = \"out\";\n\t\tif (rawDir === \"in\") dir = \"in\";\n\t\telse if (rawDir === \"out\") dir = \"out\";\n\t\telse if (rawDir === \"inout\") dir = \"inOut\";\n\t\treturn {\n\t\t\tname,\n\t\t\tdir\n\t\t};\n\t}\n}\n/**\n* Fluent builder and runtime representation for layer animations.\n* Supports chainable keyframes, reactive signal binding, Perlin wiggles, and springs.\n*/\nvar LayerAnimation = class LayerAnimation {\n\ttracks = [];\n\t/** Hold each value for this many frames (see {@link LayerAnimation.stepped}). */\n\tframeStep;\n\tconstructor(tracks = []) {\n\t\tthis.tracks = [...tracks];\n\t}\n\tstatic create() {\n\t\treturn new LayerAnimation();\n\t}\n\t/**\n\t* Stepped timing for the whole layer: every animated value is held for\n\t* `frames` frames (\"on twos\" = 2, \"on threes\" = 3), the choppy, hand-made\n\t* look of stop motion and cel animation. Applies to all of the layer's\n\t* tracks, including ones added by other `.animate()` calls.\n\t*/\n\tstatic stepped(frames = 2) {\n\t\treturn new LayerAnimation().stepped(frames);\n\t}\n\t/** See {@link LayerAnimation.stepped}. */\n\tstepped(frames = 2) {\n\t\tthis.frameStep = Math.max(1, Math.min(24, Math.round(frames)));\n\t\treturn this;\n\t}\n\tstatic fromTo(prop, fromValue, toValue, options = {}) {\n\t\treturn new LayerAnimation().fromTo(prop, fromValue, toValue, options);\n\t}\n\t/** A track from a list of `[frame, value, ease?]` keyframes; see {@link LayerAnimation.keys}. */\n\tstatic keys(prop, keyframes) {\n\t\treturn new LayerAnimation().keys(prop, keyframes);\n\t}\n\tstatic signal(prop, signalOrHandleId, options = {}) {\n\t\treturn new LayerAnimation().signal(prop, signalOrHandleId, options);\n\t}\n\tstatic colorSignal(prop, signalOrHandleId, options) {\n\t\treturn new LayerAnimation().colorSignal(prop, signalOrHandleId, options);\n\t}\n\tstatic kineticSweep(fromOffset = -1, toOffset = 1, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn new LayerAnimation().kineticSweep(fromOffset, toOffset, startFrame, endFrame, ease);\n\t}\n\tstatic typewriter(startFrame = 0, endFrame = 30, ease = \"linear\") {\n\t\treturn new LayerAnimation().typewriter(startFrame, endFrame, ease);\n\t}\n\tstatic letterSpacing(fromSpacing, toSpacing, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn new LayerAnimation().letterSpacing(fromSpacing, toSpacing, startFrame, endFrame, ease);\n\t}\n\tstatic wiggle(prop, options = {}) {\n\t\treturn new LayerAnimation().wiggle(prop, options);\n\t}\n\tstatic spring(prop, options = {}) {\n\t\treturn new LayerAnimation().spring(prop, options);\n\t}\n\tstatic firstMargin(fromMargin, toMargin, options = {}) {\n\t\treturn new LayerAnimation().firstMargin(fromMargin, toMargin, options);\n\t}\n\tstatic strokeWidth(fromWidth, toWidth, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"strokeWidth\", fromWidth, toWidth, options);\n\t}\n\tstatic rotateX(fromAngle, toAngle, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"rotateX\", fromAngle, toAngle, options);\n\t}\n\tstatic rotateY(fromAngle, toAngle, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"rotateY\", fromAngle, toAngle, options);\n\t}\n\tstatic rotateZ(fromAngle, toAngle, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"rotateZ\", fromAngle, toAngle, options);\n\t}\n\tstatic rotation(fromAngle, toAngle, options = {}) {\n\t\treturn new LayerAnimation().fromTo(\"rotation\", fromAngle, toAngle, options);\n\t}\n\taddTrack(track) {\n\t\tthis.tracks.push(track);\n\t\treturn this;\n\t}\n\t/**\n\t* Creates a keyframed track animating from fromValue to toValue.\n\t*/\n\tfromTo(prop, fromValue, toValue, options = {}) {\n\t\tconst start = options.from ?? options.start ?? options.fromFrame ?? 0;\n\t\tconst end = options.to ?? options.end ?? options.toFrame ?? (options.durationFrames !== void 0 ? start + options.durationFrames : start + 24);\n\t\tconst ease = parseEase(options.ease);\n\t\tlet track = this.tracks.find((t) => t.prop === prop && (!t.source || t.source.type === \"keyframe\"));\n\t\tif (!track) {\n\t\t\tconst newTrack = {\n\t\t\t\tid: `${prop}_fromTo_${this.tracks.length}`,\n\t\t\t\tprop,\n\t\t\t\tkeyframes: []\n\t\t\t};\n\t\t\tthis.tracks.push(newTrack);\n\t\t\ttrack = newTrack;\n\t\t}\n\t\tconst id = track.id;\n\t\tif (track.keyframes.length === 0 && start > 0) track.keyframes.push({\n\t\t\tid: `${id}_k0`,\n\t\t\tframe: 0,\n\t\t\tvalue: fromValue\n\t\t});\n\t\tif (track.keyframes.length === 0 || track.keyframes[track.keyframes.length - 1].frame < start) track.keyframes.push({\n\t\t\tid: `${id}_k_${start}`,\n\t\t\tframe: start,\n\t\t\tvalue: fromValue\n\t\t});\n\t\ttrack.keyframes.push({\n\t\t\tid: `${id}_k_${end}`,\n\t\t\tframe: end,\n\t\t\tvalue: toValue,\n\t\t\t...ease && { ease }\n\t\t});\n\t\ttrack.keyframes.sort((a, b) => a.frame - b.frame);\n\t\treturn this;\n\t}\n\t/**\n\t* Appends a keyframe to an existing track for prop, or creates a new track.\n\t*/\n\tkeyframe(prop, frame, value, ease) {\n\t\tlet track = this.tracks.find((t) => t.prop === prop && (!t.source || t.source.type === \"keyframe\"));\n\t\tif (!track) {\n\t\t\tconst newTrack = {\n\t\t\t\tid: `${prop}_track_${this.tracks.length}`,\n\t\t\t\tprop,\n\t\t\t\tkeyframes: []\n\t\t\t};\n\t\t\tthis.tracks.push(newTrack);\n\t\t\ttrack = newTrack;\n\t\t}\n\t\tconst parsedEase = parseEase(ease);\n\t\tconst kf = {\n\t\t\tid: `k_${track.keyframes.length}_f${frame}`,\n\t\t\tframe,\n\t\t\tvalue,\n\t\t\t...parsedEase && { ease: parsedEase }\n\t\t};\n\t\tconst at = track.keyframes.findIndex((k) => k.frame === frame);\n\t\tif (at >= 0) track.keyframes[at] = kf;\n\t\telse track.keyframes.push(kf);\n\t\ttrack.keyframes.sort((a, b) => a.frame - b.frame);\n\t\treturn this;\n\t}\n\t/**\n\t* Adds several keyframes to prop's track at once:\n\t* `.keys(\"scale\", [[0, 0], [12, 1.1, \"back.out\"], [20, 1]])`.\n\t* Frames are rounded to whole frames, so beat math can be passed straight in.\n\t*/\n\tkeys(prop, keyframes) {\n\t\tfor (const [frame, value, ease] of keyframes) this.keyframe(prop, Math.round(frame), value, ease);\n\t\treturn this;\n\t}\n\t/**\n\t* Animates opacity from 0 to 1 between startFrame and endFrame.\n\t*/\n\tfadeIn(startFrame = 0, endFrame = 20, ease = \"power2.out\") {\n\t\treturn this.fromTo(\"opacity\", 0, 1, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Animates opacity from 1 to 0 between startFrame and endFrame.\n\t*/\n\tfadeOut(startFrame, endFrame, ease = \"power2.in\") {\n\t\treturn this.fromTo(\"opacity\", 1, 0, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Slides in Y coordinate from fromY to toY.\n\t*/\n\tslideInY(fromY, toY, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn this.fromTo(\"y\", fromY, toY, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Slides in X coordinate from fromX to toX.\n\t*/\n\tslideInX(fromX, toX, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn this.fromTo(\"x\", fromX, toX, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Sweeps kinetic typography animator offset from fromOffset to toOffset.\n\t* Cascades per-glyph or per-word transforms across the text.\n\t*/\n\tkineticSweep(fromOffset = -1, toOffset = 1, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn this.fromTo(\"offset\", fromOffset, toOffset, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Progressive character write-on / typewriter text reveal.\n\t*/\n\ttypewriter(startFrame = 0, endFrame = 30, ease = \"linear\") {\n\t\treturn this.fromTo(\"text\", 0, 1, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Animates letter-spacing (tracking expansion or compression).\n\t*/\n\tletterSpacing(fromSpacing, toSpacing, startFrame = 0, endFrame = 24, ease = \"power2.out\") {\n\t\treturn this.fromTo(\"letterSpacing\", fromSpacing, toSpacing, {\n\t\t\tfrom: startFrame,\n\t\t\tto: endFrame,\n\t\t\tease\n\t\t});\n\t}\n\t/**\n\t* Animates text position along a path via First Margin.\n\t*/\n\tfirstMargin(fromMargin, toMargin, options = {}) {\n\t\treturn this.fromTo(\"firstMargin\", fromMargin, toMargin, options);\n\t}\n\t/**\n\t* Animates Last Margin spatial limit along a path.\n\t*/\n\tlastMargin(fromMargin, toMargin, options = {}) {\n\t\treturn this.fromTo(\"lastMargin\", fromMargin, toMargin, options);\n\t}\n\t/**\n\t* Animates baseline shift perpendicular to curve tangent.\n\t*/\n\tbaselineShift(fromShift, toShift, options = {}) {\n\t\treturn this.fromTo(\"baselineShift\", fromShift, toShift, options);\n\t}\n\t/**\n\t* Animate rotateX from fromAngle to toAngle.\n\t*/\n\trotateX(fromAngle, toAngle, options = {}) {\n\t\treturn this.fromTo(\"rotateX\", fromAngle, toAngle, options);\n\t}\n\t/**\n\t* Animate rotateY from fromAngle to toAngle.\n\t*/\n\trotateY(fromAngle, toAngle, options = {}) {\n\t\treturn this.fromTo(\"rotateY\", fromAngle, toAngle, options);\n\t}\n\t/**\n\t* Animate rotateZ from fromAngle to toAngle.\n\t*/\n\trotateZ(fromAngle, toAngle, options = {}) {\n\t\treturn this.fromTo(\"rotateZ\", fromAngle, toAngle, options);\n\t}\n\t/**\n\t* Animate perspective camera distance in pixels.\n\t*/\n\tperspective(fromDist, toDist, options = {}) {\n\t\treturn this.fromTo(\"perspective\", fromDist, toDist, options);\n\t}\n\t/**\n\t* Animate depth translation (translateZ) in pixels.\n\t*/\n\ttranslateZ(fromZ, toZ, options = {}) {\n\t\treturn this.fromTo(\"translateZ\", fromZ, toZ, options);\n\t}\n\t/**\n\t* Composite helper to tilt a container across multiple 3D axes simultaneously.\n\t*/\n\ttilt3D(options) {\n\t\tconst start = options.start ?? options.fromFrame;\n\t\tconst end = options.end ?? options.toFrame;\n\t\tconst ease = options.ease;\n\t\tconst from = options.from ?? {};\n\t\tconst to = options.to;\n\t\tfor (const prop of [\n\t\t\t\"rotateX\",\n\t\t\t\"rotateY\",\n\t\t\t\"rotateZ\",\n\t\t\t\"translateZ\",\n\t\t\t\"perspective\"\n\t\t]) {\n\t\t\tconst toVal = to[prop];\n\t\t\tif (toVal !== void 0) {\n\t\t\t\tconst fromVal = from[prop] ?? 0;\n\t\t\t\tthis.fromTo(prop, fromVal, toVal, {\n\t\t\t\t\tfrom: start,\n\t\t\t\t\tto: end,\n\t\t\t\t\tfromFrame: start,\n\t\t\t\t\ttoFrame: end,\n\t\t\t\t\tease\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\t/**\n\t* Binds an animatable property to a reactive continuous Signal (e.g. LFO, speech energy, audio pitch).\n\t*\n\t* `signalOrHandleId` is either a signal object (`Signal.fromArray`,\n\t* `Signal.builder`, an audio channel …) — carried on the track and\n\t* registered with the program automatically — or the name of a signal\n\t* registered with `comp.addSignal(name, signal)`.\n\t*/\n\tsignal(prop, signalOrHandleId, options = {}) {\n\t\tconst { handleId, inline } = resolveSignalArg(signalOrHandleId);\n\t\tconst id = `${prop}_sig_${handleId}_${this.tracks.length}`;\n\t\tconst source = {\n\t\t\ttype: \"signal\",\n\t\t\tinputHandleId: handleId,\n\t\t\tmultiplier: options.multiplier ?? 1,\n\t\t\toffset: options.offset ?? 0,\n\t\t\tsmoothingWindowFrames: options.smoothing ?? 0,\n\t\t\tsignalMode: options.mode ?? \"continuous\",\n\t\t\tthreshold: options.threshold ?? .15,\n\t\t\taccumulateThreshold: options.threshold ?? .15,\n\t\t\tdebounceFrames: options.debounceFrames ?? 2,\n\t\t\tchannel: options.channel ?? \"primary\"\n\t\t};\n\t\tif (inline) attachInlineSignal(source, inline);\n\t\tthis.tracks.push({\n\t\t\tid,\n\t\t\tprop,\n\t\t\tsource,\n\t\t\tkeyframes: []\n\t\t});\n\t\treturn this;\n\t}\n\t/**\n\t* Modulates color interpolation based on an active signal (object or\n\t* registered name, as in {@link LayerAnimation.signal}).\n\t*/\n\tcolorSignal(prop, signalOrHandleId, options) {\n\t\tconst { handleId, inline } = resolveSignalArg(signalOrHandleId);\n\t\tconst id = `${prop}_colorSig_${handleId}_${this.tracks.length}`;\n\t\tconst source = {\n\t\t\ttype: \"signal\",\n\t\t\tinputHandleId: handleId,\n\t\t\tmultiplier: options.multiplier ?? 1,\n\t\t\toffset: options.offset ?? 0,\n\t\t\tsmoothingWindowFrames: options.smoothing ?? 0,\n\t\t\tcolorMode: options.colorMode ?? \"interpolate\",\n\t\t\tcolorA: options.colorA,\n\t\t\tcolorB: options.colorB,\n\t\t\tcolorThreshold: options.threshold,\n\t\t\tchannel: \"primary\"\n\t\t};\n\t\tif (inline) attachInlineSignal(source, inline);\n\t\tthis.tracks.push({\n\t\t\tid,\n\t\t\tprop,\n\t\t\tsource,\n\t\t\tkeyframes: []\n\t\t});\n\t\treturn this;\n\t}\n\t/**\n\t* Adds organic Perlin noise wiggling to a property.\n\t*/\n\twiggle(prop, options = {}) {\n\t\tconst id = `${prop}_wiggle_${this.tracks.length}`;\n\t\tconst source = {\n\t\t\ttype: \"wiggle\",\n\t\t\tfrequency: options.frequency ?? 2,\n\t\t\tamplitude: options.amplitude ?? 20,\n\t\t\toctaves: options.octaves ?? 1,\n\t\t\tseed: options.seed ?? 1234\n\t\t};\n\t\tthis.tracks.push({\n\t\t\tid,\n\t\t\tprop,\n\t\t\tsource,\n\t\t\tkeyframes: []\n\t\t});\n\t\treturn this;\n\t}\n\t/**\n\t* Adds physical harmonic spring overshoot behavior to a property transition.\n\t*/\n\tspring(prop, options = {}) {\n\t\tconst id = `${prop}_spring_${this.tracks.length}`;\n\t\tconst source = {\n\t\t\ttype: \"springOvershoot\",\n\t\t\tdamping: options.damping ?? 12,\n\t\t\tstiffness: options.stiffness ?? 180,\n\t\t\tmass: options.mass ?? 1\n\t\t};\n\t\tthis.tracks.push({\n\t\t\tid,\n\t\t\tprop,\n\t\t\tsource,\n\t\t\tkeyframes: []\n\t\t});\n\t\treturn this;\n\t}\n\t/**\n\t* Follows a 2D or 3D path with constant arc-length velocity, automatic orientation,\n\t* banking into turns, and optional easing.\n\t*/\n\tfollowPath(path, options = {}) {\n\t\tconst startFrame = options.start ?? options.fromFrame ?? 0;\n\t\tconst endFrame = options.end ?? options.toFrame ?? 60;\n\t\tconst duration = Math.max(1, endFrame - startFrame);\n\t\tconst sampleCount = options.samples ?? Math.max(8, Math.min(60, Math.round(duration / 2)));\n\t\tconst totalLen = path.totalLength ?? 1;\n\t\tlet fromProg = options.fromProgress ?? 0;\n\t\tlet toProg = options.toProgress ?? 1;\n\t\tif (options.fromDistance !== void 0 && totalLen > 0) fromProg = options.fromDistance / totalLen;\n\t\tif (options.toDistance !== void 0 && totalLen > 0) toProg = options.toDistance / totalLen;\n\t\tconst autoOrient = options.autoOrient ?? true;\n\t\tconst banking = options.banking ?? 0;\n\t\tconst pitchOffset = options.pitchOffset ?? 0;\n\t\tconst yawOffset = options.yawOffset ?? 0;\n\t\tconst rollOffset = options.rollOffset ?? 0;\n\t\tlet hasZ = false;\n\t\tlet hasRx = false;\n\t\tlet hasRy = false;\n\t\tconst samples = [];\n\t\tfor (let i = 0; i <= sampleCount; i++) {\n\t\t\tconst t = i / sampleCount;\n\t\t\tconst easedT = evaluateEasingProgress(options.ease, t);\n\t\t\tconst u = fromProg + easedT * (toProg - fromProg);\n\t\t\tconst f = Math.round(startFrame + t * duration);\n\t\t\tlet pos = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t];\n\t\t\tlet tan = [\n\t\t\t\t1,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t];\n\t\t\tlet rot = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t];\n\t\t\tif (typeof path.getFrameAt === \"function\") {\n\t\t\t\tconst frameData = path.getFrameAt(u);\n\t\t\t\tpos = frameData.position;\n\t\t\t\ttan = frameData.tangent;\n\t\t\t\trot = frameData.rotation ?? [\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\tconst pt = path.getPointAt(u);\n\t\t\t\tpos = pt.position;\n\t\t\t\tif (pt.tangent) tan = pt.tangent;\n\t\t\t\trot = [\n\t\t\t\t\tMath.asin(Math.max(-1, Math.min(1, -tan[1]))) * (180 / Math.PI),\n\t\t\t\t\tMath.atan2(tan[0], tan[2]) * (180 / Math.PI),\n\t\t\t\t\tMath.atan2(tan[1], tan[0]) * (180 / Math.PI)\n\t\t\t\t];\n\t\t\t}\n\t\t\tconst rx = rot[0] + pitchOffset;\n\t\t\tconst ry = rot[1] + yawOffset;\n\t\t\tlet rz = (Math.abs(tan[2]) < 1e-4 ? Math.atan2(tan[1], tan[0]) * (180 / Math.PI) : rot[2]) + rollOffset;\n\t\t\tif (banking !== 0) {\n\t\t\t\tconst uAhead = Math.min(1, u + .02);\n\t\t\t\tconst uBehind = Math.max(0, u - .02);\n\t\t\t\tconst ptAhead = path.getPointAt(uAhead);\n\t\t\t\tconst ptBehind = path.getPointAt(uBehind);\n\t\t\t\tconst tAhead = ptAhead.tangent ?? [\n\t\t\t\t\t1,\n\t\t\t\t\t0,\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t\tconst tBehind = ptBehind.tangent ?? [\n\t\t\t\t\t1,\n\t\t\t\t\t0,\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t\tconst dYaw = Math.atan2(tAhead[0], tAhead[2]) - Math.atan2(tBehind[0], tBehind[2]);\n\t\t\t\trz -= dYaw * banking * 57.2958;\n\t\t\t}\n\t\t\tif (Math.abs(pos[2]) > 1e-4) hasZ = true;\n\t\t\tif (Math.abs(rx) > 1e-4) hasRx = true;\n\t\t\tif (Math.abs(ry) > 1e-4) hasRy = true;\n\t\t\tsamples.push({\n\t\t\t\tf,\n\t\t\t\tx: pos[0],\n\t\t\t\ty: pos[1],\n\t\t\t\tz: pos[2],\n\t\t\t\trx,\n\t\t\t\try,\n\t\t\t\trz\n\t\t\t});\n\t\t}\n\t\tfor (const s of samples) {\n\t\t\tthis.keyframe(\"x\", s.f, s.x);\n\t\t\tthis.keyframe(\"y\", s.f, s.y);\n\t\t\tif (hasZ) this.keyframe(\"z\", s.f, s.z);\n\t\t\tif (autoOrient) {\n\t\t\t\tthis.keyframe(\"rotateZ\", s.f, s.rz);\n\t\t\t\tif (hasRx) this.keyframe(\"rotateX\", s.f, s.rx);\n\t\t\t\tif (hasRy) this.keyframe(\"rotateY\", s.f, s.ry);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\t/**\n\t* Attaches this animation to a target LayoutNode and returns the node.\n\t*/\n\tapplyTo(node) {\n\t\tnode.animation = this.toSpec();\n\t\treturn node;\n\t}\n\t/**\n\t* Folds other animations into this one. Keyframe tracks on the same prop\n\t* merge into one track (a later key wins on a shared frame), so separate\n\t* behaviours — an entrance, presses, a wave — can be authored apart:\n\t* `LayerAnimation.merge(rainIn, presses, wave)`.\n\t*/\n\tmerge(...others) {\n\t\tthis.tracks = mergeAnimationTracks([...this.tracks, ...others.flatMap((o) => o.tracks)]);\n\t\treturn this;\n\t}\n\tstatic merge(...anims) {\n\t\tconst result = new LayerAnimation();\n\t\tresult.tracks = mergeAnimationTracks(anims.flatMap((o) => o.tracks));\n\t\treturn result;\n\t}\n\t/**\n\t* Returns the validated LayerAnimation specification object.\n\t*/\n\ttoSpec() {\n\t\treturn {\n\t\t\ttracks: this.tracks,\n\t\t\t...this.frameStep !== void 0 && { frameStep: this.frameStep }\n\t\t};\n\t}\n\ttoJSON() {\n\t\treturn this.toSpec();\n\t}\n};\nvar CameraAnimation = class CameraAnimation extends LayerAnimation {\n\tstatic camera() {\n\t\treturn new CameraAnimation();\n\t}\n\tdolly(fromDistanceOrOptions, toDistance, options = {}) {\n\t\tif (typeof fromDistanceOrOptions === \"object\") {\n\t\t\tconst opts = fromDistanceOrOptions;\n\t\t\tconst start = opts.start ?? opts.fromFrame ?? 0;\n\t\t\tconst end = opts.end ?? opts.toFrame ?? 0;\n\t\t\treturn this.fromTo(\"cameraZ\", opts.fromDistance, opts.toDistance, {\n\t\t\t\tfrom: start,\n\t\t\t\tto: end,\n\t\t\t\tease: opts.ease\n\t\t\t});\n\t\t}\n\t\treturn this.fromTo(\"cameraZ\", fromDistanceOrOptions, toDistance ?? fromDistanceOrOptions, options);\n\t}\n\torbit(options) {\n\t\tconst start = options.start ?? options.fromFrame ?? 0;\n\t\tconst end = options.end ?? options.toFrame ?? 0;\n\t\tif (options.azimuth) this.fromTo(\"orbitAzimuth\", options.azimuth.from ?? 0, options.azimuth.to, {\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tease: options.ease\n\t\t});\n\t\tif (options.elevation) this.fromTo(\"orbitElevation\", options.elevation.from ?? 0, options.elevation.to, {\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tease: options.ease\n\t\t});\n\t\tif (options.radius) this.fromTo(\"orbitRadius\", options.radius.from ?? 1500, options.radius.to, {\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tease: options.ease\n\t\t});\n\t\treturn this;\n\t}\n\ttruck(fromX, toX, options = {}) {\n\t\treturn this.fromTo(\"cameraX\", fromX, toX, options);\n\t}\n\tpedestal(fromY, toY, options = {}) {\n\t\treturn this.fromTo(\"cameraY\", fromY, toY, options);\n\t}\n\tpan(fromAngleDeg, toAngleDeg, options = {}) {\n\t\treturn this.fromTo(\"cameraYaw\", fromAngleDeg, toAngleDeg, options);\n\t}\n\ttilt(fromAngleDeg, toAngleDeg, options = {}) {\n\t\treturn this.fromTo(\"cameraPitch\", fromAngleDeg, toAngleDeg, options);\n\t}\n\troll(fromAngleDeg, toAngleDeg, options = {}) {\n\t\treturn this.fromTo(\"cameraRoll\", fromAngleDeg, toAngleDeg, options);\n\t}\n\trackFocus(options) {\n\t\tconst start = options.start ?? options.fromFrame ?? 0;\n\t\tconst end = options.end ?? options.toFrame ?? 0;\n\t\tthis.fromTo(\"focusDistance\", options.fromDistance, options.toDistance, {\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tease: options.ease ?? \"power2.inOut\"\n\t\t});\n\t\tif (options.toFStop !== void 0) this.fromTo(\"fStop\", options.fromFStop ?? 2.8, options.toFStop, {\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tease: options.ease ?? \"power2.inOut\"\n\t\t});\n\t\treturn this;\n\t}\n\thandheld(options) {\n\t\tconst start = options.start ?? options.fromFrame ?? 0;\n\t\tconst end = options.end ?? options.toFrame ?? 0;\n\t\tthis.fromTo(\"shakeTranslation\", 0, options.translationAmplitude, {\n\t\t\tfrom: start,\n\t\t\tto: end\n\t\t});\n\t\tthis.fromTo(\"shakeRotation\", 0, options.rotationAmplitude, {\n\t\t\tfrom: start,\n\t\t\tto: end\n\t\t});\n\t\treturn this;\n\t}\n\t/**\n\t* Animates camera eye and lookAt target along a 3D path with constant velocity,\n\t* leading target look-ahead, or path tangent orientation.\n\t*/\n\tfollowPath3D(path, options = {}) {\n\t\tconst startFrame = options.start ?? options.fromFrame ?? 0;\n\t\tconst endFrame = options.end ?? options.toFrame ?? 60;\n\t\tconst duration = Math.max(1, endFrame - startFrame);\n\t\tconst sampleCount = options.samples ?? Math.max(8, Math.min(60, Math.round(duration / 2)));\n\t\tconst mode = options.mode ?? (options.target ? \"lookAtTarget\" : \"leadTarget\");\n\t\tconst fromProg = options.fromProgress ?? 0;\n\t\tconst toProg = options.toProgress ?? 1;\n\t\tconst lookAhead = options.lookAhead ?? .05;\n\t\tfor (let i = 0; i <= sampleCount; i++) {\n\t\t\tconst t = i / sampleCount;\n\t\t\tconst u = fromProg + evaluateEasingProgress(options.ease, t) * (toProg - fromProg);\n\t\t\tconst f = Math.round(startFrame + t * duration);\n\t\t\tlet pos = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t];\n\t\t\tlet rot = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0\n\t\t\t];\n\t\t\tif (typeof path.getFrameAt === \"function\") {\n\t\t\t\tconst frameData = path.getFrameAt(u);\n\t\t\t\tpos = frameData.position;\n\t\t\t\trot = frameData.rotation ?? [\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t} else pos = path.getPointAt(u).position;\n\t\t\tthis.keyframe(\"cameraX\", f, pos[0]);\n\t\t\tthis.keyframe(\"cameraY\", f, pos[1]);\n\t\t\tthis.keyframe(\"cameraZ\", f, pos[2]);\n\t\t\tif (mode === \"lookAtTarget\") {\n\t\t\t\tconst tgt = options.target ?? [\n\t\t\t\t\tpos[0],\n\t\t\t\t\tpos[1],\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t\tthis.keyframe(\"targetX\", f, tgt[0]);\n\t\t\t\tthis.keyframe(\"targetY\", f, tgt[1]);\n\t\t\t\tthis.keyframe(\"targetZ\", f, tgt[2]);\n\t\t\t} else if (mode === \"leadTarget\") {\n\t\t\t\tconst leadU = Math.min(1, u + lookAhead);\n\t\t\t\tconst leadPt = path.getPointAt(leadU);\n\t\t\t\tthis.keyframe(\"targetX\", f, leadPt.position[0]);\n\t\t\t\tthis.keyframe(\"targetY\", f, leadPt.position[1]);\n\t\t\t\tthis.keyframe(\"targetZ\", f, leadPt.position[2]);\n\t\t\t} else if (mode === \"orientAlongPath\") {\n\t\t\t\tthis.keyframe(\"cameraPitch\", f, rot[0]);\n\t\t\t\tthis.keyframe(\"cameraYaw\", f, rot[1]);\n\t\t\t\tthis.keyframe(\"cameraRoll\", f, rot[2]);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n};\n\n//#endregion\n//#region src/program/path-morph.ts\nconst SAMPLES = 128;\nconst CURVE_STEPS = 16;\nconst NUM_RE = /-?(?:\\d+\\.?\\d*|\\.\\d+)(?:e[-+]?\\d+)?/gi;\nconst CMD_RE = /([MmLlHhVvCcSsQqTtAaZz])([^MmLlHhVvCcSsQqTtAaZz]*)/g;\n/** Flattens an SVG path into polylines, one per subpath. */\nfunction flattenPath(d) {\n\tconst subs = [];\n\tlet cur = [];\n\tlet x = 0;\n\tlet y = 0;\n\tlet sx = 0;\n\tlet sy = 0;\n\tlet cx = 0;\n\tlet cy = 0;\n\tlet prev = \"\";\n\tconst end = (closed) => {\n\t\tif (cur.length > 1) subs.push({\n\t\t\tpts: cur,\n\t\t\tclosed\n\t\t});\n\t\tcur = [];\n\t};\n\tfor (const m of d.matchAll(CMD_RE)) {\n\t\tconst cmd = m[1];\n\t\tconst nums = (m[2].match(NUM_RE) ?? []).map(Number);\n\t\tconst rel = cmd === cmd.toLowerCase();\n\t\tconst C = cmd.toUpperCase();\n\t\tlet i = 0;\n\t\tconst take = (n) => {\n\t\t\tconst v = nums.slice(i, i + n);\n\t\t\ti += n;\n\t\t\treturn v;\n\t\t};\n\t\tconst has = (n) => i + n <= nums.length;\n\t\tif (C === \"Z\") {\n\t\t\tx = sx;\n\t\t\ty = sy;\n\t\t\tend(true);\n\t\t\tcur = [[x, y]];\n\t\t\tprev = C;\n\t\t\tcontinue;\n\t\t}\n\t\tlet first = true;\n\t\twhile (has(C === \"H\" || C === \"V\" ? 1 : C === \"A\" ? 7 : C === \"C\" ? 6 : C === \"S\" || C === \"Q\" ? 4 : 2)) {\n\t\t\tif (C === \"M\") {\n\t\t\t\tconst [a, b] = take(2);\n\t\t\t\tx = rel ? x + a : a;\n\t\t\t\ty = rel ? y + b : b;\n\t\t\t\tif (first) {\n\t\t\t\t\tend(false);\n\t\t\t\t\tsx = x;\n\t\t\t\t\tsy = y;\n\t\t\t\t\tcur = [[x, y]];\n\t\t\t\t} else cur.push([x, y]);\n\t\t\t} else if (C === \"L\" || C === \"T\") {\n\t\t\t\tconst [a, b] = take(2);\n\t\t\t\tconst nx = rel ? x + a : a;\n\t\t\t\tconst ny = rel ? y + b : b;\n\t\t\t\tif (C === \"T\") {\n\t\t\t\t\tconst qx = prev === \"Q\" || prev === \"T\" ? 2 * x - cx : x;\n\t\t\t\t\tconst qy = prev === \"Q\" || prev === \"T\" ? 2 * y - cy : y;\n\t\t\t\t\tquad(cur, x, y, qx, qy, nx, ny);\n\t\t\t\t\tcx = qx;\n\t\t\t\t\tcy = qy;\n\t\t\t\t} else cur.push([nx, ny]);\n\t\t\t\tx = nx;\n\t\t\t\ty = ny;\n\t\t\t} else if (C === \"H\") {\n\t\t\t\tconst [a] = take(1);\n\t\t\t\tx = rel ? x + a : a;\n\t\t\t\tcur.push([x, y]);\n\t\t\t} else if (C === \"V\") {\n\t\t\t\tconst [a] = take(1);\n\t\t\t\ty = rel ? y + a : a;\n\t\t\t\tcur.push([x, y]);\n\t\t\t} else if (C === \"C\" || C === \"S\") {\n\t\t\t\tlet x1;\n\t\t\t\tlet y1;\n\t\t\t\tif (C === \"C\") {\n\t\t\t\t\tconst [a, b] = take(2);\n\t\t\t\t\tx1 = rel ? x + a : a;\n\t\t\t\t\ty1 = rel ? y + b : b;\n\t\t\t\t} else {\n\t\t\t\t\tx1 = prev === \"C\" || prev === \"S\" ? 2 * x - cx : x;\n\t\t\t\t\ty1 = prev === \"C\" || prev === \"S\" ? 2 * y - cy : y;\n\t\t\t\t}\n\t\t\t\tconst [c, e, f, g] = take(4);\n\t\t\t\tconst x2 = rel ? x + c : c;\n\t\t\t\tconst y2 = rel ? y + e : e;\n\t\t\t\tconst nx = rel ? x + f : f;\n\t\t\t\tconst ny = rel ? y + g : g;\n\t\t\t\tfor (let k = 1; k <= CURVE_STEPS; k++) {\n\t\t\t\t\tconst t = k / CURVE_STEPS;\n\t\t\t\t\tconst u = 1 - t;\n\t\t\t\t\tcur.push([u * u * u * x + 3 * u * u * t * x1 + 3 * u * t * t * x2 + t * t * t * nx, u * u * u * y + 3 * u * u * t * y1 + 3 * u * t * t * y2 + t * t * t * ny]);\n\t\t\t\t}\n\t\t\t\tcx = x2;\n\t\t\t\tcy = y2;\n\t\t\t\tx = nx;\n\t\t\t\ty = ny;\n\t\t\t} else if (C === \"Q\") {\n\t\t\t\tconst [a, b, c, e] = take(4);\n\t\t\t\tconst qx = rel ? x + a : a;\n\t\t\t\tconst qy = rel ? y + b : b;\n\t\t\t\tconst nx = rel ? x + c : c;\n\t\t\t\tconst ny = rel ? y + e : e;\n\t\t\t\tquad(cur, x, y, qx, qy, nx, ny);\n\t\t\t\tcx = qx;\n\t\t\t\tcy = qy;\n\t\t\t\tx = nx;\n\t\t\t\ty = ny;\n\t\t\t} else if (C === \"A\") {\n\t\t\t\tconst [rx, ry, rot, large, sweep, a, b] = take(7);\n\t\t\t\tconst nx = rel ? x + a : a;\n\t\t\t\tconst ny = rel ? y + b : b;\n\t\t\t\tarc(cur, x, y, rx, ry, rot, large !== 0, sweep !== 0, nx, ny);\n\t\t\t\tx = nx;\n\t\t\t\ty = ny;\n\t\t\t}\n\t\t\tfirst = false;\n\t\t\tprev = C;\n\t\t\tif (C === \"M\") prev = \"L\";\n\t\t}\n\t\tprev = C;\n\t}\n\tend(false);\n\treturn subs;\n}\nfunction quad(out, x0, y0, qx, qy, x1, y1) {\n\tfor (let k = 1; k <= CURVE_STEPS; k++) {\n\t\tconst t = k / CURVE_STEPS;\n\t\tconst u = 1 - t;\n\t\tout.push([u * u * x0 + 2 * u * t * qx + t * t * x1, u * u * y0 + 2 * u * t * qy + t * t * y1]);\n\t}\n}\n/** SVG endpoint arc → points (spec F.6.5). */\nfunction arc(out, x1, y1, rxIn, ryIn, rotDeg, large, sweep, x2, y2) {\n\tlet rx = Math.abs(rxIn);\n\tlet ry = Math.abs(ryIn);\n\tif (rx === 0 || ry === 0) {\n\t\tout.push([x2, y2]);\n\t\treturn;\n\t}\n\tconst phi = rotDeg * Math.PI / 180;\n\tconst cos = Math.cos(phi);\n\tconst sin = Math.sin(phi);\n\tconst dx = (x1 - x2) / 2;\n\tconst dy = (y1 - y2) / 2;\n\tconst xp = cos * dx + sin * dy;\n\tconst yp = -sin * dx + cos * dy;\n\tconst lam = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n\tif (lam > 1) {\n\t\trx *= Math.sqrt(lam);\n\t\try *= Math.sqrt(lam);\n\t}\n\tconst num = rx * rx * ry * ry - rx * rx * yp * yp - ry * ry * xp * xp;\n\tconst den = rx * rx * yp * yp + ry * ry * xp * xp;\n\tlet co = Math.sqrt(Math.max(0, num / den));\n\tif (large === sweep) co = -co;\n\tconst cxp = co * rx * yp / ry;\n\tconst cyp = -co * ry * xp / rx;\n\tconst ccx = cos * cxp - sin * cyp + (x1 + x2) / 2;\n\tconst ccy = sin * cxp + cos * cyp + (y1 + y2) / 2;\n\tconst ang = (ux, uy, vx, vy) => Math.atan2(ux * vy - uy * vx, ux * vx + uy * vy);\n\tconst t1 = ang(1, 0, (xp - cxp) / rx, (yp - cyp) / ry);\n\tlet dt = ang((xp - cxp) / rx, (yp - cyp) / ry, (-xp - cxp) / rx, (-yp - cyp) / ry);\n\tif (!sweep && dt > 0) dt -= 2 * Math.PI;\n\tif (sweep && dt < 0) dt += 2 * Math.PI;\n\tconst steps = Math.max(4, Math.ceil(Math.abs(dt) / (Math.PI / 2) * CURVE_STEPS));\n\tfor (let k = 1; k <= steps; k++) {\n\t\tconst t = t1 + dt * k / steps;\n\t\tconst ex = rx * Math.cos(t);\n\t\tconst ey = ry * Math.sin(t);\n\t\tout.push([cos * ex - sin * ey + ccx, sin * ex + cos * ey + ccy]);\n\t}\n}\n/** `n` points evenly spaced along a polyline (closed: around the loop). */\nfunction resample(sub, n) {\n\tconst pts = sub.closed ? [...sub.pts, sub.pts[0]] : sub.pts;\n\tconst cum = [0];\n\tfor (let i = 1; i < pts.length; i++) cum.push(cum[i - 1] + Math.hypot(pts[i][0] - pts[i - 1][0], pts[i][1] - pts[i - 1][1]));\n\tconst total = cum[cum.length - 1];\n\tconst out = [];\n\tif (total <= 0) {\n\t\tfor (let i = 0; i < n; i++) out.push([pts[0][0], pts[0][1]]);\n\t\treturn out;\n\t}\n\tconst count = sub.closed ? n : n - 1;\n\tlet j = 0;\n\tfor (let i = 0; i < n; i++) {\n\t\tconst s = total * i / count;\n\t\twhile (j < cum.length - 2 && cum[j + 1] < s) j++;\n\t\tconst seg = cum[j + 1] - cum[j];\n\t\tconst t = seg > 0 ? (s - cum[j]) / seg : 0;\n\t\tout.push([pts[j][0] + (pts[j + 1][0] - pts[j][0]) * t, pts[j][1] + (pts[j + 1][1] - pts[j][1]) * t]);\n\t}\n\treturn out;\n}\nfunction area(p) {\n\tlet a = 0;\n\tfor (let i = 0; i < p.length; i++) {\n\t\tconst q = p[(i + 1) % p.length];\n\t\ta += p[i][0] * q[1] - q[0] * p[i][1];\n\t}\n\treturn a / 2;\n}\nfunction centroid(p) {\n\tlet x = 0;\n\tlet y = 0;\n\tfor (const q of p) {\n\t\tx += q[0];\n\t\ty += q[1];\n\t}\n\treturn [x / p.length, y / p.length];\n}\n/** Rotates (and maybe reverses) `b` so its points line up with `a`'s. */\nfunction align(a, b, closed) {\n\tif (!closed) {\n\t\tconst d0 = Math.hypot(a[0][0] - b[0][0], a[0][1] - b[0][1]);\n\t\treturn Math.hypot(a[0][0] - b[b.length - 1][0], a[0][1] - b[b.length - 1][1]) < d0 ? [...b].reverse() : b;\n\t}\n\tconst bb = Math.sign(area(a)) !== Math.sign(area(b)) ? [...b].reverse() : b;\n\tconst n = a.length;\n\tlet best = 0;\n\tlet bestD = Number.POSITIVE_INFINITY;\n\tconst score = (k) => {\n\t\tlet s = 0;\n\t\tfor (let i = 0; i < n; i += 2) {\n\t\t\tconst q = bb[(i + k) % n];\n\t\t\ts += (a[i][0] - q[0]) ** 2 + (a[i][1] - q[1]) ** 2;\n\t\t}\n\t\treturn s;\n\t};\n\tfor (let k = 0; k < n; k += 4) {\n\t\tconst s = score(k);\n\t\tif (s < bestD) {\n\t\t\tbestD = s;\n\t\t\tbest = k;\n\t\t}\n\t}\n\tfor (let k = best - 3; k <= best + 3; k++) {\n\t\tconst kk = (k + n) % n;\n\t\tconst s = score(kk);\n\t\tif (s < bestD) {\n\t\t\tbestD = s;\n\t\t\tbest = kk;\n\t\t}\n\t}\n\treturn a.map((_, i) => bb[(i + best) % n]);\n}\nconst memo = /* @__PURE__ */ new Map();\nfunction prepare(from, to) {\n\tconst key = `${from}\\u0000${to}`;\n\tconst hit = memo.get(key);\n\tif (hit) return hit;\n\tconst sa = flattenPath(from);\n\tconst sb = flattenPath(to);\n\tconst n = Math.max(sa.length, sb.length);\n\tconst out = {\n\t\ta: [],\n\t\tb: [],\n\t\tclosed: []\n\t};\n\tfor (let i = 0; i < n; i++) {\n\t\tconst A = sa[i];\n\t\tconst B = sb[i];\n\t\tconst closed = (A?.closed ?? true) && (B?.closed ?? true);\n\t\tlet pa = A ? resample(A, SAMPLES) : void 0;\n\t\tlet pb = B ? resample(B, SAMPLES) : void 0;\n\t\tif (!pa && pb) {\n\t\t\tconst c = centroid(pb);\n\t\t\tpa = pb.map(() => [c[0], c[1]]);\n\t\t}\n\t\tif (!pb && pa) {\n\t\t\tconst c = centroid(pa);\n\t\t\tpb = pa.map(() => [c[0], c[1]]);\n\t\t}\n\t\tif (!pa || !pb) continue;\n\t\tout.a.push(pa);\n\t\tout.b.push(align(pa, pb, closed));\n\t\tout.closed.push(closed);\n\t}\n\tif (memo.size > 256) memo.clear();\n\tmemo.set(key, out);\n\treturn out;\n}\nconst fmt = (v) => (Math.round(v * 100) / 100).toString();\n/**\n* The path `t` of the way from `from` to `to` (0 = `from`, 1 = `to`; `t`\n* may overshoot for back / elastic eases).\n*/\nfunction morphPath(from, to, t) {\n\tif (t <= 0) return from;\n\tif (t === 1) return to;\n\tconst p = prepare(from, to);\n\tconst parts = [];\n\tfor (let s = 0; s < p.a.length; s++) {\n\t\tconst A = p.a[s];\n\t\tconst B = p.b[s];\n\t\tlet d = \"\";\n\t\tfor (let i = 0; i < A.length; i++) {\n\t\t\tconst x = A[i][0] + (B[i][0] - A[i][0]) * t;\n\t\t\tconst y = A[i][1] + (B[i][1] - A[i][1]) * t;\n\t\t\td += `${i === 0 ? \"M\" : \"L\"}${fmt(x)} ${fmt(y)}`;\n\t\t}\n\t\tparts.push(p.closed[s] ? `${d}Z` : d);\n\t}\n\treturn parts.join(\"\");\n}\n\n//#endregion\n//#region src/program/evaluator.ts\nfunction hash1D(n, seed) {\n\tlet x = Math.floor(n) ^ seed * 1013 | 0;\n\tx = Math.imul(x ^ x >>> 15, x | 1);\n\tx ^= x + Math.imul(x ^ x >>> 7, x | 61);\n\treturn ((x ^ x >>> 14) >>> 0) / 4294967295 * 2 - 1;\n}\nfunction smoothNoise1D(x, seed) {\n\tconst i0 = Math.floor(x);\n\tconst i1 = i0 + 1;\n\tconst f = x - i0;\n\tconst u = f * f * (3 - 2 * f);\n\tconst g0 = hash1D(i0, seed);\n\tconst g1 = hash1D(i1, seed);\n\tconst v0 = g0 * f;\n\tconst v1 = g1 * (f - 1);\n\treturn (v0 * (1 - u) + v1 * u) * 2;\n}\n/**\n* Procedural wiggle generator using multi-octave coherent 1D gradient noise.\n*/\nfunction evaluateWiggle(source, tSec, baseValue = 0) {\n\tconst freq = source.frequency ?? 2;\n\tconst amp = source.amplitude ?? 50;\n\tconst octaves = Math.max(1, Math.min(4, source.octaves ?? 1));\n\tconst seed = source.seed ?? 1234;\n\tlet total = 0;\n\tlet maxAmp = 0;\n\tlet currentAmp = 1;\n\tlet currentFreq = freq;\n\tfor (let i = 0; i < octaves; i++) {\n\t\tconst noiseVal = smoothNoise1D(tSec * currentFreq, seed + i * 7919);\n\t\ttotal += noiseVal * currentAmp;\n\t\tmaxAmp += currentAmp;\n\t\tcurrentAmp *= .5;\n\t\tcurrentFreq *= 2;\n\t}\n\treturn baseValue + (maxAmp > 0 ? total / maxAmp : 0) * amp;\n}\n/**\n* Analytical solution to the second-order damped harmonic oscillator ODE:\n* m*x'' + c*x' + k*x = 0\n*/\nfunction evaluateSpringOvershoot(source, tSec, v0, v1) {\n\tif (tSec <= 0) return v0;\n\tconst m = Math.max(.001, source.mass ?? 1);\n\tconst k = Math.max(.001, source.stiffness ?? 180);\n\tconst c = Math.max(.001, source.damping ?? 12);\n\tconst w0 = Math.sqrt(k / m);\n\tconst zeta = c / (2 * Math.sqrt(k * m));\n\tlet progress = 1;\n\tif (zeta < 1) {\n\t\tconst wd = w0 * Math.sqrt(1 - zeta * zeta);\n\t\tconst A = -1;\n\t\tconst B = -zeta * w0 / wd;\n\t\tprogress = 1 + Math.exp(-zeta * w0 * tSec) * (A * Math.cos(wd * tSec) + B * Math.sin(wd * tSec));\n\t} else if (Math.abs(zeta - 1) < 1e-4) progress = 1 + Math.exp(-w0 * tSec) * (-1 - w0 * tSec);\n\telse {\n\t\tconst sq = Math.sqrt(zeta * zeta - 1);\n\t\tconst r1 = -w0 * (zeta - sq);\n\t\tconst r2 = -w0 * (zeta + sq);\n\t\tconst c1 = -1 / (1 - r1 / r2);\n\t\tconst c2 = -1 - c1;\n\t\tprogress = 1 + c1 * Math.exp(r1 * tSec) + c2 * Math.exp(r2 * tSec);\n\t}\n\treturn v0 + (v1 - v0) * progress;\n}\nfunction extractRawSignalSample(signalData, frame, fps) {\n\tif (signalData === null || signalData === void 0) return 0;\n\tif (typeof signalData === \"number\") return signalData;\n\tif (typeof signalData === \"function\") return Number(signalData(frame, fps)) || 0;\n\tif (Array.isArray(signalData) || ArrayBuffer.isView(signalData)) {\n\t\tconst arr = signalData;\n\t\tif (arr.length === 0) return 0;\n\t\tconst idx = Math.max(0, Math.min(arr.length - 1, Math.round(frame)));\n\t\treturn Number(arr[idx]) || 0;\n\t}\n\tif (typeof signalData === \"object\") {\n\t\tconst sd = signalData;\n\t\tif (typeof sd.get === \"function\") return Number(sd.get({\n\t\t\tframe,\n\t\t\tfps,\n\t\t\ttime: fps > 0 ? frame / fps : 0\n\t\t})) || 0;\n\t\tif (sd.type === \"Signal\" && sd.data) return extractRawSignalSample(sd.data, frame, fps);\n\t\tconst rawSamples = sd.samples ?? (typeof sd.channel === \"string\" && sd[sd.channel] !== void 0 ? sd[sd.channel] : void 0);\n\t\tif (Array.isArray(rawSamples) || ArrayBuffer.isView(rawSamples)) {\n\t\t\tconst arr = rawSamples;\n\t\t\tif (arr.length === 0) return 0;\n\t\t\tconst srcFps = Number(sd.fps) || 24;\n\t\t\tconst t = frame / (fps > 0 ? fps : 24);\n\t\t\tconst idx = Math.max(0, Math.min(arr.length - 1, Math.round(t * srcFps)));\n\t\t\treturn Number(arr[idx]) || 0;\n\t\t}\n\t\tif (sd.type === \"audio_extractor\" || sd.extractionMode !== void 0) {\n\t\t\tconst nodeId = sd.nodeId;\n\t\t\tif (nodeId) {\n\t\t\t\tconst ch = sd.channel ?? \"primary\";\n\t\t\t\tconst channelSamples = signalRegistry.getChannelSamples(nodeId, ch);\n\t\t\t\tif (channelSamples && channelSamples.length > 0) {\n\t\t\t\t\tconst srcFps = Number(sd.fps) || 24;\n\t\t\t\t\tconst t = frame / (fps > 0 ? fps : 24);\n\t\t\t\t\tconst idx = Math.max(0, Math.min(channelSamples.length - 1, Math.round(t * srcFps)));\n\t\t\t\t\treturn Number(channelSamples[idx]) || 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn 0;\n\t\t}\n\t\tif (sd.type === \"generator\") {\n\t\t\tconst amp = typeof sd.amplitude === \"number\" ? sd.amplitude : 1;\n\t\t\tlet freq = typeof sd.frequency === \"number\" ? sd.frequency : 1;\n\t\t\tif (sd.syncToBpm && typeof sd.bpm === \"number\" && sd.bpm > 0) {\n\t\t\t\tconst bars = typeof sd.bars === \"number\" && sd.bars > 0 ? sd.bars : 1;\n\t\t\t\tfreq = sd.bpm / 60 / bars;\n\t\t\t}\n\t\t\tconst phase = typeof sd.phase === \"number\" ? sd.phase : 0;\n\t\t\tconst offset = typeof sd.offset === \"number\" ? sd.offset : 0;\n\t\t\tconst t = frame / (fps > 0 ? fps : 24);\n\t\t\tconst baseType = sd.baseType ?? \"sine\";\n\t\t\tconst fmEnabled = Boolean(sd.fmEnabled);\n\t\t\tlet tMod = t;\n\t\t\tif (fmEnabled) {\n\t\t\t\tconst fmAmp = Number(sd.fmAmplitude) || 1;\n\t\t\t\tconst fmFreq = Number(sd.fmFrequency) || .5;\n\t\t\t\ttMod = t + Math.sin(t * fmFreq * Math.PI * 2) * fmAmp;\n\t\t\t}\n\t\t\tlet val = 0;\n\t\t\tconst phaseNorm = (tMod * freq + phase / (Math.PI * 2)) % 1;\n\t\t\tconst normT = phaseNorm < 0 ? phaseNorm + 1 : phaseNorm;\n\t\t\tconst fract = (x) => (x % 1 + 1) % 1;\n\t\t\tswitch (baseType) {\n\t\t\t\tcase \"triangle\":\n\t\t\t\t\tval = 4 * Math.abs(normT - .5) - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"sawtooth\":\n\t\t\t\t\tval = 2 * normT - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"square\":\n\t\t\t\t\tval = normT < .5 ? 1 : -1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"constant\":\n\t\t\t\t\tval = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"noise_smooth\": {\n\t\t\t\t\tconst noiseT = tMod * freq + phase;\n\t\t\t\t\tconst noiseI = Math.floor(noiseT);\n\t\t\t\t\tconst noiseF = noiseT - noiseI;\n\t\t\t\t\tconst noiseU = noiseF * noiseF * (3 - 2 * noiseF);\n\t\t\t\t\tconst n0 = fract(Math.sin(noiseI * 12.9898) * 43758.5453);\n\t\t\t\t\tconst n1 = fract(Math.sin((noiseI + 1) * 12.9898) * 43758.5453);\n\t\t\t\t\tval = (n0 * (1 - noiseU) + n1 * noiseU) * 2 - 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"noise_white\":\n\t\t\t\t\tval = fract(Math.sin(tMod * 12.9898 + phase) * 43758.5453) * 2 - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"pulse\": {\n\t\t\t\t\tconst pulseDuty = phase === 0 ? .5 : Math.max(.01, Math.min(.99, phase));\n\t\t\t\t\tval = fract(tMod * freq) < pulseDuty ? 1 : -1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"bounce\":\n\t\t\t\t\tval = Math.abs(Math.sin(tMod * freq * Math.PI + phase));\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"staircase\":\n\t\t\t\t\tval = Math.floor(normT * 8) / 7 * 2 - 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tval = Math.sin(tMod * freq * Math.PI * 2 + phase);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn val * amp + offset;\n\t\t}\n\t\tif (sd.type === \"gate\") {\n\t\t\tconst source = sd.sourceSignal ?? sd.signal;\n\t\t\tconst thresh = typeof sd.threshold === \"number\" ? sd.threshold : .5;\n\t\t\tconst mode = sd.mode ?? \"gate\";\n\t\t\tconst invert = Boolean(sd.invert);\n\t\t\tconst debounceMs = typeof sd.debounceMs === \"number\" ? sd.debounceMs : 0;\n\t\t\tconst debounceFrames = Math.max(1, Math.round(debounceMs / 1e3 * fps));\n\t\t\tconst holdFrames = Math.max(1, Number(sd.holdFrames) || 4);\n\t\t\tlet output = 0;\n\t\t\tif (mode === \"gate\") output = extractRawSignalSample(source, frame, fps) >= thresh ? 1 : 0;\n\t\t\telse if (mode === \"trigger\") {\n\t\t\t\tlet lastTrigger = -Infinity;\n\t\t\t\tconst startF = Math.max(0, frame - 300);\n\t\t\t\tfor (let f = startF; f <= frame; f++) {\n\t\t\t\t\tconst val = extractRawSignalSample(source, f, fps);\n\t\t\t\t\tconst prev = f > 0 ? extractRawSignalSample(source, f - 1, fps) : 0;\n\t\t\t\t\tif (val >= thresh && prev < thresh && f - lastTrigger >= debounceFrames) lastTrigger = f;\n\t\t\t\t}\n\t\t\t\toutput = frame >= lastTrigger && frame < lastTrigger + holdFrames ? 1 : 0;\n\t\t\t} else if (mode === \"toggle\") {\n\t\t\t\tlet toggleCount = 0;\n\t\t\t\tlet lastTrigger = -Infinity;\n\t\t\t\tfor (let f = 0; f <= frame; f++) {\n\t\t\t\t\tconst val = extractRawSignalSample(source, f, fps);\n\t\t\t\t\tconst prev = f > 0 ? extractRawSignalSample(source, f - 1, fps) : 0;\n\t\t\t\t\tif (val >= thresh && prev < thresh && f - lastTrigger >= debounceFrames) {\n\t\t\t\t\t\ttoggleCount++;\n\t\t\t\t\t\tlastTrigger = f;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\toutput = toggleCount % 2 === 1 ? 1 : 0;\n\t\t\t}\n\t\t\treturn invert ? 1 - output : output;\n\t\t}\n\t\tif (sd.type === \"signal_math\") {\n\t\t\tconst valA = extractRawSignalSample(sd.signalA, frame, fps);\n\t\t\tconst valB = sd.signalB !== void 0 ? extractRawSignalSample(sd.signalB, frame, fps) : Number(sd.bValue) || 0;\n\t\t\tswitch (sd.operation) {\n\t\t\t\tcase \"add\": return valA + valB;\n\t\t\t\tcase \"subtract\": return valA - valB;\n\t\t\t\tcase \"multiply\": return valA * valB;\n\t\t\t\tcase \"divide\": return valB !== 0 ? valA / valB : 0;\n\t\t\t\tcase \"min\": return Math.min(valA, valB);\n\t\t\t\tcase \"max\": return Math.max(valA, valB);\n\t\t\t\tcase \"clamp\": {\n\t\t\t\t\tconst cMin = Number(sd.clampMin) || 0;\n\t\t\t\t\tconst cMax = Number(sd.clampMax) || 1;\n\t\t\t\t\treturn Math.max(cMin, Math.min(cMax, valA));\n\t\t\t\t}\n\t\t\t\tcase \"abs\": return Math.abs(valA);\n\t\t\t\tcase \"negate\": return -valA;\n\t\t\t\tcase \"invert\": return 1 - valA;\n\t\t\t\tcase \"power\": return valA ** (Number(sd.exponent) || 2);\n\t\t\t\tcase \"modulo\": return valB !== 0 ? valA % valB : 0;\n\t\t\t\tcase \"remap\": {\n\t\t\t\t\tconst inMin = Number(sd.inMin) || 0;\n\t\t\t\t\tconst inMax = Number(sd.inMax) || 1;\n\t\t\t\t\tconst outMin = Number(sd.outMin) || 0;\n\t\t\t\t\tconst outMax = Number(sd.outMax) || 1;\n\t\t\t\t\tconst rangeIn = inMax - inMin;\n\t\t\t\t\treturn outMin + (rangeIn !== 0 ? (valA - inMin) / rangeIn : 0) * (outMax - outMin);\n\t\t\t\t}\n\t\t\t\tcase \"normalize\": {\n\t\t\t\t\tconst minVal = Number(sd.aMin ?? sd.inMin) || 0;\n\t\t\t\t\tconst range = (Number(sd.aMax ?? sd.inMax) || 1) - minVal;\n\t\t\t\t\treturn range !== 0 ? Math.max(0, Math.min(1, (valA - minVal) / range)) : 0;\n\t\t\t\t}\n\t\t\t\tcase \"smoothstep\": {\n\t\t\t\t\tconst e0 = Number(sd.edge0) || 0;\n\t\t\t\t\tconst range = (Number(sd.edge1) || 1) - e0;\n\t\t\t\t\tconst x = range !== 0 ? Math.max(0, Math.min(1, (valA - e0) / range)) : 0;\n\t\t\t\t\treturn x * x * (3 - 2 * x);\n\t\t\t\t}\n\t\t\t\tcase \"custom\": return valA;\n\t\t\t\tdefault: return valA;\n\t\t\t}\n\t\t}\n\t\tif (typeof sd.value === \"number\") return sd.value;\n\t}\n\treturn 0;\n}\n/**\n* Evaluates an external Signal as an event accumulator / integrator.\n* On each rising edge above `threshold` (with `debounceFrames` guard),\n* the accumulator increments by 1.\n*/\nfunction evaluateSignalAccumulator(rawSource, currentFrame, fps, threshold = .15, debounceFrames = 2) {\n\tif (currentFrame < 0 || !rawSource) return 0;\n\tconst src = rawSource;\n\tlet count = 0;\n\tlet lastTriggerFrame = -Infinity;\n\tfor (let f = 0; f <= currentFrame; f++) {\n\t\tconst val = extractRawSignalSample(src, f, fps);\n\t\tconst prevVal = f > 0 ? extractRawSignalSample(src, f - 1, fps) : 0;\n\t\tif (val >= threshold && prevVal < threshold && f - lastTriggerFrame >= debounceFrames) {\n\t\t\tcount++;\n\t\t\tlastTriggerFrame = f;\n\t\t}\n\t}\n\treturn count;\n}\n/**\n* Evaluates an external Signal with smoothing window and linear remapping,\n* or as a discrete event accumulator.\n*/\nfunction evaluateSignal(source, frame, fps, signals = {}) {\n\tlet rawSource = signals[source.inputHandleId];\n\tif (rawSource === void 0 && signals) {\n\t\tconst signalKeys = Object.keys(signals);\n\t\tif (signalKeys.length === 1) rawSource = signals[signalKeys[0]];\n\t\telse if (signalKeys.length > 1) {\n\t\t\tconst matched = signalKeys.find((k) => k === source.inputHandleId);\n\t\t\trawSource = matched ? signals[matched] : signals[signalKeys[0]];\n\t\t}\n\t}\n\tif (source.channel && rawSource && typeof rawSource === \"object\") {\n\t\tconst candidate = rawSource[source.channel];\n\t\tif (candidate !== void 0) rawSource = candidate;\n\t\telse if (typeof rawSource.get !== \"function\") rawSource = {\n\t\t\t...rawSource,\n\t\t\tchannel: source.channel\n\t\t};\n\t}\n\tif (source.signalMode === \"accumulate\") {\n\t\tconst threshold = source.threshold ?? source.accumulateThreshold ?? .15;\n\t\tconst debounce = source.debounceFrames ?? 2;\n\t\tconst count$1 = evaluateSignalAccumulator(rawSource, frame, fps, threshold, debounce);\n\t\tconst mult = source.multiplier ?? 1;\n\t\tconst off = source.offset ?? 0;\n\t\treturn count$1 * mult + off;\n\t}\n\tconst multiplier = source.multiplier ?? 1;\n\tconst offset = source.offset ?? 0;\n\tconst windowFrames = Math.max(0, Math.round(source.smoothingWindowFrames ?? 0));\n\tif (windowFrames <= 1) return extractRawSignalSample(rawSource, frame, fps) * multiplier + offset;\n\tlet sum = 0;\n\tlet count = 0;\n\tconst startF = Math.max(0, frame - windowFrames + 1);\n\tfor (let f = startF; f <= frame; f++) {\n\t\tsum += extractRawSignalSample(rawSource, f, fps);\n\t\tcount++;\n\t}\n\treturn (count > 0 ? sum / count : 0) * multiplier + offset;\n}\nfunction lerp(a, b, t) {\n\treturn a + (b - a) * t;\n}\nfunction parseHexColor(hex) {\n\tlet h = hex.trim().replace(\"#\", \"\");\n\tif (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];\n\tif (h.length === 6) {\n\t\tconst num = parseInt(h, 16);\n\t\treturn [\n\t\t\tnum >> 16 & 255,\n\t\t\tnum >> 8 & 255,\n\t\t\tnum & 255,\n\t\t\t1\n\t\t];\n\t}\n\tif (h.length === 8) {\n\t\tconst num = parseInt(h, 16);\n\t\treturn [\n\t\t\tnum >> 24 & 255,\n\t\t\tnum >> 16 & 255,\n\t\t\tnum >> 8 & 255,\n\t\t\t(num & 255) / 255\n\t\t];\n\t}\n\treturn [\n\t\t255,\n\t\t255,\n\t\t255,\n\t\t1\n\t];\n}\n/** Color keyframes blend perceptually (OKLab) and accept any CSS color. */\nfunction lerpColor(c1, c2, t) {\n\treturn mixColors(c1, c2, t);\n}\nfunction hueToRgb(p, q, t) {\n\tlet tt = t;\n\tif (tt < 0) tt += 1;\n\tif (tt > 1) tt -= 1;\n\tif (tt < 1 / 6) return p + (q - p) * 6 * tt;\n\tif (tt < 1 / 2) return q;\n\tif (tt < 2 / 3) return p + (q - p) * (2 / 3 - tt) * 6;\n\treturn p;\n}\nfunction rotateHue(hex, delta) {\n\tconst [r255, g255, b255, a] = parseHexColor(hex);\n\tconst r = r255 / 255;\n\tconst g = g255 / 255;\n\tconst b = b255 / 255;\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tlet h = 0;\n\tlet s = 0;\n\tconst l = (max + min) / 2;\n\tif (max !== min) {\n\t\tconst d = max - min;\n\t\ts = l > .5 ? d / (2 - max - min) : d / (max + min);\n\t\tswitch (max) {\n\t\t\tcase r:\n\t\t\t\th = (g - b) / d + (g < b ? 6 : 0);\n\t\t\t\tbreak;\n\t\t\tcase g:\n\t\t\t\th = (b - r) / d + 2;\n\t\t\t\tbreak;\n\t\t\tcase b:\n\t\t\t\th = (r - g) / d + 4;\n\t\t\t\tbreak;\n\t\t}\n\t\th /= 6;\n\t}\n\th = (h + delta % 1 + 1) % 1;\n\tlet newR = l;\n\tlet newG = l;\n\tlet newB = l;\n\tif (s !== 0) {\n\t\tconst q = l < .5 ? l * (1 + s) : l + s - l * s;\n\t\tconst p = 2 * l - q;\n\t\tnewR = hueToRgb(p, q, h + 1 / 3);\n\t\tnewG = hueToRgb(p, q, h);\n\t\tnewB = hueToRgb(p, q, h - 1 / 3);\n\t}\n\tconst toHex = (n) => Math.round(Math.max(0, Math.min(255, n * 255))).toString(16).padStart(2, \"0\");\n\tif (a >= .999) return `#${toHex(newR)}${toHex(newG)}${toHex(newB)}`;\n\treturn `rgba(${Math.round(newR * 255)}, ${Math.round(newG * 255)}, ${Math.round(newB * 255)}, ${Math.round(a * 100) / 100})`;\n}\nconst COLOR_PROPS$1 = new Set([\n\t\"fill\",\n\t\"fillColor\",\n\t\"strokeColor\",\n\t\"textBackgroundColor\",\n\t\"color\"\n]);\n/**\n* Standard keyframe track evaluation.\n*/\nfunction evaluateKeyframes(track, localFrame, ease) {\n\tconst keyframes = track.keyframes ?? [];\n\tif (keyframes.length === 0) return 0;\n\tif (keyframes.length === 1) return keyframes[0].value;\n\tif (localFrame <= keyframes[0].frame) return keyframes[0].value;\n\tif (localFrame >= keyframes[keyframes.length - 1].frame) return keyframes[keyframes.length - 1].value;\n\tfor (let i = 0; i < keyframes.length - 1; i++) {\n\t\tconst kf0 = keyframes[i];\n\t\tconst kf1 = keyframes[i + 1];\n\t\tif (localFrame >= kf0.frame && localFrame <= kf1.frame) {\n\t\t\tconst delta = kf1.frame - kf0.frame;\n\t\t\tconst linear = delta > 0 ? (localFrame - kf0.frame) / delta : 0;\n\t\t\tconst t = ease ? ease(kf1.ease ?? kf0.ease, delta, linear) : linear;\n\t\t\tif (typeof kf0.value === \"boolean\") return linear >= 1 ? kf1.value : kf0.value;\n\t\t\tif (typeof kf0.value === \"string\" && typeof kf1.value === \"string\") {\n\t\t\t\tif (track.prop === \"d\") return morphPath(kf0.value, kf1.value, t);\n\t\t\t\treturn lerpColor(kf0.value, kf1.value, t);\n\t\t\t}\n\t\t\treturn lerp(Number(kf0.value) || 0, Number(kf1.value) || 0, t);\n\t\t}\n\t}\n\treturn keyframes[keyframes.length - 1].value;\n}\n/**\n* Evaluates an AnimationTrack at a given global or local frame.\n*/\nfunction evaluateTrackAtFrame(track, frame, fps = 24, context = {}) {\n\tconst localFrame = frame - (context.startFrame ?? 0);\n\tconst source = track.source ?? { type: \"keyframe\" };\n\tconst basePropVal = context.baseValues?.[track.prop];\n\tswitch (source.type) {\n\t\tcase \"keyframe\": return evaluateKeyframes(track, localFrame);\n\t\tcase \"wiggle\": {\n\t\t\tconst fallbackNum = typeof basePropVal === \"number\" ? basePropVal : 0;\n\t\t\tconst base = track.keyframes && track.keyframes.length > 0 ? Number(evaluateKeyframes(track, localFrame)) || 0 : fallbackNum;\n\t\t\treturn evaluateWiggle(source, localFrame / (fps > 0 ? fps : 24), base);\n\t\t}\n\t\tcase \"springOvershoot\": {\n\t\t\tlet v0 = 0;\n\t\t\tlet v1 = 1;\n\t\t\tif (track.keyframes && track.keyframes.length >= 2) {\n\t\t\t\tv0 = Number(track.keyframes[0].value) || 0;\n\t\t\t\tv1 = Number(track.keyframes[1].value) || 1;\n\t\t\t} else if (track.keyframes && track.keyframes.length === 1) {\n\t\t\t\tv0 = Number(basePropVal) || 0;\n\t\t\t\tv1 = Number(track.keyframes[0].value) || 0;\n\t\t\t} else if (typeof basePropVal === \"number\") {\n\t\t\t\tv0 = basePropVal;\n\t\t\t\tv1 = basePropVal;\n\t\t\t}\n\t\t\treturn evaluateSpringOvershoot(source, localFrame / (fps > 0 ? fps : 24), v0, v1);\n\t\t}\n\t\tcase \"signal\": {\n\t\t\tconst sigVal = evaluateSignal(source, frame, fps, context.signals);\n\t\t\tif (COLOR_PROPS$1.has(track.prop)) {\n\t\t\t\tconst src = source;\n\t\t\t\tconst colorA = src.colorA ?? \"#ffffff\";\n\t\t\t\tconst colorB = src.colorB ?? \"#ffffff\";\n\t\t\t\tconst mode = src.colorMode ?? \"interpolate\";\n\t\t\t\tif (mode === \"threshold\") return sigVal >= (src.colorThreshold ?? .5) ? colorB : colorA;\n\t\t\t\tif (mode === \"hueRotate\") return rotateHue(colorA, sigVal);\n\t\t\t\treturn lerpColor(colorA, colorB, Math.max(0, Math.min(1, sigVal)));\n\t\t\t}\n\t\t\treturn sigVal;\n\t\t}\n\t\tdefault: return evaluateKeyframes(track, localFrame);\n\t}\n}\n/**\n* Evaluates all animation tracks for a layer at `frame`.\n*/\nfunction evaluateAnimationAtFrame(animation, frame, fps = 24, context = {}) {\n\tconst result = {};\n\tif (!animation?.tracks) return result;\n\tfor (const track of animation.tracks) result[track.prop] = evaluateTrackAtFrame(track, frame, fps, context);\n\treturn result;\n}\n\n//#endregion\n//#region src/program/lint.ts\n/**\n* Static checks for things that render \"fine\" but not as intended: a color\n* the parser can't read (drawn transparent), text that disappears into its\n* background, a layer parked off-canvas, a shadow on a light that can't cast\n* one. Pure and fast; `renderVideo({ qa })` folds the findings into its report.\n*/\nconst COLOR_PROPS = [\n\t\"background\",\n\t\"fill\",\n\t\"fillColor\",\n\t\"strokeColor\",\n\t\"borderColor\",\n\t\"gradientEndColor\",\n\t\"emissive\",\n\t\"color\"\n];\n/** Contrast below this makes text hard to read (WCAG large-text minimum). */\nconst MIN_TEXT_CONTRAST = 3;\nfunction tracksOf(node) {\n\treturn node.animation?.tracks ?? [];\n}\nconst animates = (node, props) => tracksOf(node).some((t) => props.includes(t.prop));\nconst CONTAINERS = new Set([\n\t\"box\",\n\t\"flex\",\n\t\"block\",\n\t\"group\"\n]);\n/** Whether a layer puts pixels behind whatever is drawn after it (text over text aside). */\nfunction paints(node) {\n\tif (node.kind === \"text\" || node.kind === \"light\" || node.kind === \"camera\") return false;\n\tif (!CONTAINERS.has(String(node.kind))) return true;\n\tconst bg = node.background;\n\tif (typeof bg === \"string\" && bg !== \"\" && bg !== \"transparent\") return true;\n\treturn (node.children ?? []).some(paints);\n}\nconst byZ = (nodes) => [...nodes].sort((a, b) => (Number(a.zIndex) || 0) - (Number(b.zIndex) || 0));\nfunction solidColor(value) {\n\tif (typeof value !== \"string\" || value.includes(\"gradient(\")) return null;\n\tconst c = parseCssColor(value);\n\treturn c && c[3] > .99 ? value : null;\n}\nfunction lintComposition(config) {\n\tconst out = [];\n\tconst push = (severity, code, message, layerId) => out.push({\n\t\tseverity,\n\t\tcode,\n\t\tmessage,\n\t\t...layerId && { layerId }\n\t});\n\tconst W = config.width;\n\tconst H = config.height;\n\tlet hasEnvironment = false;\n\tconst ambientLights = [];\n\tlet has3D = false;\n\tconst pbrNodes = [];\n\tconst shadowLights = [];\n\tconst visit = (node, backdrop, atRoot) => {\n\t\tconst id = String(node.id ?? \"?\");\n\t\tfor (const prop of COLOR_PROPS) {\n\t\t\tconst v = node[prop];\n\t\t\tif (typeof v !== \"string\" || v === \"\" || v === \"transparent\") continue;\n\t\t\tif (v.includes(\"gradient(\")) {\n\t\t\t\tif (!parseCssGradient(v)) push(\"error\", \"invalid_gradient\", `\\`${prop}\\` on '${id}' is not a gradient this renderer reads: ${v}. It draws nothing.`, id);\n\t\t\t} else if (!parseCssColor(v)) push(\"warning\", \"unknown_color\", `\\`${prop}: \"${v}\"\\` on '${id}' is not a color (hex, rgb(), hsl(), oklch() or a CSS name). It draws transparent.`, id);\n\t\t}\n\t\tif (node.kind === \"light\") {\n\t\t\tconst type = node.lightType ?? \"directional\";\n\t\t\tif (type === \"environment\") hasEnvironment = true;\n\t\t\tif (type === \"ambient\") ambientLights.push(id);\n\t\t\tif (node.castShadow) if (type === \"directional\" || type === \"spot\") shadowLights.push(id);\n\t\t\telse push(\"warning\", \"shadow_unsupported_light\", `'${id}' is a ${String(type)} light: only directional and spot lights cast shadows.`, id);\n\t\t\treturn;\n\t\t}\n\t\tif (node.kind === \"camera\") return;\n\t\tif (node.kind === \"media\") {\n\t\t\tconst src = node.inputHandleId;\n\t\t\tif (typeof src === \"string\") {\n\t\t\t\tif ((node.dataType ?? \"Video\") === \"Image\") {\n\t\t\t\t\tif (/\\.(json|lottie)(\\?.*)?$/i.test(src)) push(\"error\", \"unsupported_image_format\", `'${id}' is an image layer with source '${src}', which is a Lottie vector animation. Use Layer.lottie() instead.`, id);\n\t\t\t\t\telse if (/\\.(mp4|mov|webm|mkv)(\\?.*)?$/i.test(src)) push(\"error\", \"unsupported_image_format\", `'${id}' is an image layer with video source '${src}'. Use Layer.video() instead.`, id);\n\t\t\t\t\telse if (/\\.(mp3|wav|ogg|m4a|aac)(\\?.*)?$/i.test(src)) push(\"error\", \"unsupported_image_format\", `'${id}' is an image layer with audio source '${src}'. Use Layer.audio() instead.`, id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst is3D = Boolean(node.is3D) || typeof node.z === \"number\" && node.z !== 0;\n\t\tif (is3D || node.kind === \"model3d\") has3D = true;\n\t\tif (node.roughness !== void 0 || node.metallic !== void 0) pbrNodes.push(id);\n\t\tif (node.kind === \"text\" && backdrop && !animates(node, [\"fill\", \"color\"])) {\n\t\t\tconst fg = solidColor(node.fill ?? node.color);\n\t\t\tconst behind = solidColor(node.background) ?? backdrop;\n\t\t\tif (fg) {\n\t\t\t\tconst ratio = Color.contrast(fg, behind);\n\t\t\t\tif (ratio < MIN_TEXT_CONTRAST) push(\"warning\", \"low_contrast_text\", `Text '${id}' (${fg}) on ${behind} has contrast ${ratio.toFixed(2)}:1 (aim for ≥ ${MIN_TEXT_CONTRAST}; ${Color.readableOn(behind)} reads well).`, id);\n\t\t\t}\n\t\t}\n\t\tif (atRoot && !is3D && node.position === \"absolute\" && typeof node.x === \"number\" && typeof node.y === \"number\" && typeof node.width === \"number\" && typeof node.height === \"number\" && !animates(node, [\n\t\t\t\"x\",\n\t\t\t\"y\",\n\t\t\t\"translateX\",\n\t\t\t\"translateY\",\n\t\t\t\"scale\",\n\t\t\t\"rotation\"\n\t\t])) {\n\t\t\tconst { x, y, width, height } = node;\n\t\t\tif (x + width <= 0 || y + height <= 0 || x >= W || y >= H) push(\"warning\", \"offscreen_layer\", `'${id}' sits entirely outside the ${W}×${H} canvas (x ${x}, y ${y}) and never moves in.`, id);\n\t\t}\n\t\tfor (const t of tracksOf(node)) {\n\t\t\tconst kfs = t.keyframes ?? [];\n\t\t\tif ((!t.source || t.source.type === \"keyframe\") && kfs.length >= 2 && kfs.every((k) => JSON.stringify(k.value) === JSON.stringify(kfs[0].value))) push(\"info\", \"static_track\", `'${id}' animates \\`${t.prop}\\` but every keyframe holds ${JSON.stringify(kfs[0].value)}.`, id);\n\t\t}\n\t\tconst ownBackdrop = solidColor(node.background) ?? backdrop;\n\t\tconst children = node.children;\n\t\tconst fullFrame = node.x === 0 && node.y === 0 && node.width === W && node.height === H;\n\t\tvisitLevel(children ?? [], ownBackdrop, atRoot && fullFrame);\n\t};\n\tconst visitLevel = (nodes, backdrop, atRoot) => {\n\t\tlet known = backdrop;\n\t\tfor (const n of byZ(nodes)) {\n\t\t\tvisit(n, known, atRoot);\n\t\t\tif (paints(n)) known = null;\n\t\t}\n\t};\n\tconst rootBackdrop = solidColor(config.backgroundColor) ?? null;\n\tvisitLevel(config.layout, rootBackdrop, true);\n\tif (hasEnvironment && ambientLights.length > 0) push(\"info\", \"ambient_with_environment\", `The environment already fills shadows with light; ambient light ${ambientLights.join(\", \")} adds flat light on top (remove it, or lower it, if the scene looks washed out).`);\n\tif (shadowLights.length > 1) push(\"info\", \"multiple_shadow_lights\", `${shadowLights.length} lights cast shadows (${shadowLights.join(\", \")}); only the first one does.`);\n\tif (has3D && pbrNodes.length > 0 && !hasEnvironment) push(\"info\", \"pbr_without_environment\", `roughness / metallic are set (${pbrNodes.slice(0, 3).join(\", \")}${pbrNodes.length > 3 ? \", …\" : \"\"}) but the scene has no Layer.environment(): add one for physically based shading, reflections and tone mapping.`);\n\treturn out;\n}\n\n//#endregion\n//#region src/program/mattes.ts\nconst GEOMETRY = [\n\t\"x\",\n\t\"y\",\n\t\"width\",\n\t\"height\"\n];\nfunction hoistOne(owner) {\n\tconst matte = owner.matte;\n\tconst { matte: _drop, ...rest } = owner;\n\tconst self = { ...rest };\n\tif (Array.isArray(self.children)) self.children = hoistMattes(self.children);\n\tif (!matte?.node) return [self];\n\tconst src = matte.node;\n\tconst id = src.id ?? `${String(owner.id)}__matte`;\n\tconst node = {\n\t\tposition: \"absolute\",\n\t\t...src,\n\t\tid,\n\t\tmatteOf: String(owner.id),\n\t\tmatteMode: matte.mode ?? \"alpha\"\n\t};\n\tif (GEOMETRY.every((k) => src[k] === void 0)) {\n\t\tfor (const k of GEOMETRY) if (typeof owner[k] === \"number\") node[k] = owner[k];\n\t}\n\tnode.startFrame = (typeof owner.startFrame === \"number\" ? owner.startFrame : 0) + (typeof src.startFrame === \"number\" ? src.startFrame : 0);\n\tif (src.durationFrames === void 0 && owner.durationFrames !== void 0) node.durationFrames = owner.durationFrames;\n\tif (Array.isArray(node.children)) node.children = hoistMattes(node.children);\n\tself.matteId = id;\n\treturn [self, node];\n}\n/** Returns the tree with every `matte` turned into a sibling matte layer. */\nfunction hoistMattes(nodes) {\n\treturn nodes.flatMap((n) => hoistOne(n));\n}\n\n//#endregion\n//#region src/program/schema.ts\n/**\n* Compositor program document v2 — THE single source of truth for a\n* composition (spec: `nodes/node-compositor/SKILL.md`).\n*\n* The config IS a tree of HTML-like layout nodes (`layout`), replacing the\n* v1 flat `layers[]`. No `layers`, no `layerUpdates`, no aliases: the tree\n* is what agents write, what the editor edits, what the renderer renders.\n*\n* Design rules (hard):\n* - strict zod, `.strict()` everywhere; unknown keys are rejected by the\n* pre-parse scan in `validate.ts` (zod alone would silently strip them)\n* - recursive container fields use `z.lazy`; leaf kinds are plain objects\n* - every field that can animate is in `AnimatablePropSchema`\n* - no backwards compatibility: v1 shapes fail fast with E-codes\n*/\n/** number px | \"auto\" (intrinsic) | \"fit\" (shrink-wrap) | \"fill\" (parent extent). */\nconst SizeSpecSchema = z.union([\n\tz.number().min(0),\n\tz.enum([\n\t\t\"auto\",\n\t\t\"fit\",\n\t\t\"fill\"\n\t]),\n\tz.custom()\n]);\nconst ShapeTypeSchema = z.enum([\n\t\"rect\",\n\t\"circle\",\n\t\"ellipse\",\n\t\"polygon\",\n\t\"star\",\n\t\"arrow\",\n\t\"path\"\n]);\nconst EffectSpecSchema = z.union([\n\tz.instanceof(Effect),\n\tz.object({ op: z.string().min(1) }).passthrough(),\n\tz.custom((val) => Boolean(val && typeof val === \"object\" && \"op\" in val && typeof val.op === \"string\"))\n]);\nconst AnimatablePropSchema = z.enum([\n\t\"x\",\n\t\"y\",\n\t\"scale\",\n\t\"rotation\",\n\t\"opacity\",\n\t\"width\",\n\t\"height\",\n\t\"volume\",\n\t\"hidden\",\n\t\"muted\",\n\t\"gap\",\n\t\"padding\",\n\t\"borderRadius\",\n\t\"fontSize\",\n\t\"text\",\n\t\"fill\",\n\t\"color\",\n\t\"letterSpacing\",\n\t\"d\",\n\t\"trimStart\",\n\t\"trimEnd\",\n\t\"trimOffset\",\n\t\"strokeWidth\",\n\t\"strokeDashOffset\",\n\t\"cornerRadius\",\n\t\"starInnerRadiusRatio\",\n\t\"fillColor\",\n\t\"strokeColor\",\n\t\"borderColor\",\n\t\"borderWidth\",\n\t\"motionBlurShutter\",\n\t\"rangeStart\",\n\t\"rangeEnd\",\n\t\"offset\",\n\t\"animatorRangeStart\",\n\t\"animatorRangeEnd\",\n\t\"animatorOffset\",\n\t\"firstMargin\",\n\t\"lastMargin\",\n\t\"baselineShift\",\n\t\"rotateX\",\n\t\"rotateY\",\n\t\"rotateZ\",\n\t\"perspective\",\n\t\"translateZ\",\n\t\"perspectiveOriginX\",\n\t\"perspectiveOriginY\",\n\t\"cameraX\",\n\t\"cameraY\",\n\t\"cameraZ\",\n\t\"targetX\",\n\t\"targetY\",\n\t\"targetZ\",\n\t\"cameraPitch\",\n\t\"cameraYaw\",\n\t\"cameraRoll\",\n\t\"cameraFov\",\n\t\"cameraZoom\",\n\t\"focalLength\",\n\t\"focusDistance\",\n\t\"fStop\",\n\t\"maxBlurRadius\",\n\t\"shakeTranslation\",\n\t\"shakeRotation\",\n\t\"orbitRadius\",\n\t\"orbitAzimuth\",\n\t\"orbitElevation\",\n\t\"z\",\n\t\"scaleZ\",\n\t\"intensity\",\n\t\"angle\",\n\t\"radius\",\n\t\"penumbra\",\n\t\"decay\",\n\t\"shininess\",\n\t\"roughness\",\n\t\"specularIntensity\",\n\t\"ambientIntensity\",\n\t\"metallic\",\n\t\"ior\",\n\t\"dispersion\",\n\t\"transmission\",\n\t\"fresnelPower\",\n\t\"envIntensity\",\n\t\"animationProgress\",\n\t\"animationTime\",\n\t\"animationSpeed\",\n\t\"wireframe\",\n\t\"scaleX\",\n\t\"scaleY\",\n\t\"emissive\",\n\t\"emissiveIntensity\",\n\t\"exposure\"\n]);\nconst MatteModeSchema = z.enum([\n\t\"alpha\",\n\t\"alpha-inverted\",\n\t\"luma\",\n\t\"luma-inverted\"\n]);\nconst MaterialTypeSchema = z.enum([\n\t\"lit\",\n\t\"unlit\",\n\t\"toon\",\n\t\"glass\",\n\t\"acrylic\",\n\t\"frosted\",\n\t\"metallic\"\n]);\nconst EXTENDED_3D_ANIMATABLE_PROPS = [\n\t\"rotateX\",\n\t\"rotateY\",\n\t\"rotateZ\",\n\t\"perspective\",\n\t\"translateZ\",\n\t\"perspectiveOriginX\",\n\t\"perspectiveOriginY\",\n\t\"cameraX\",\n\t\"cameraY\",\n\t\"cameraZ\",\n\t\"targetX\",\n\t\"targetY\",\n\t\"targetZ\",\n\t\"cameraPitch\",\n\t\"cameraYaw\",\n\t\"cameraRoll\",\n\t\"cameraFov\",\n\t\"cameraZoom\",\n\t\"focalLength\",\n\t\"focusDistance\",\n\t\"fStop\",\n\t\"maxBlurRadius\",\n\t\"shakeTranslation\",\n\t\"shakeRotation\",\n\t\"orbitRadius\",\n\t\"orbitAzimuth\",\n\t\"orbitElevation\",\n\t\"z\",\n\t\"scaleZ\",\n\t\"intensity\",\n\t\"angle\",\n\t\"radius\",\n\t\"penumbra\",\n\t\"decay\",\n\t\"shininess\",\n\t\"roughness\",\n\t\"specularIntensity\",\n\t\"ambientIntensity\",\n\t\"metallic\"\n];\nconst SignalColorModeSchema = z.enum([\n\t\"interpolate\",\n\t\"hueRotate\",\n\t\"threshold\"\n]);\nconst EaseRefSchema = z.object({\n\tname: z.enum([\n\t\t\"none\",\n\t\t\"power1\",\n\t\t\"power2\",\n\t\t\"power3\",\n\t\t\"sine\",\n\t\t\"circ\",\n\t\t\"expo\",\n\t\t\"back\",\n\t\t\"elastic\",\n\t\t\"bounce\",\n\t\t\"spring\",\n\t\t\"cubic\",\n\t\t\"hold\"\n\t]),\n\tdir: z.enum([\n\t\t\"in\",\n\t\t\"out\",\n\t\t\"inOut\"\n\t]),\n\tparams: z.array(z.number()).optional()\n}).strict().superRefine((data, ctx) => {\n\tif (data.name === \"spring\" && data.params) {\n\t\tconst [damping, stiffness, mass] = data.params;\n\t\tif (damping !== void 0 && damping <= 0) ctx.addIssue({\n\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\tmessage: \"Spring damping must be greater than 0.\",\n\t\t\tpath: [\"params\", 0]\n\t\t});\n\t\tif (stiffness !== void 0 && stiffness <= 0) ctx.addIssue({\n\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\tmessage: \"Spring stiffness must be greater than 0.\",\n\t\t\tpath: [\"params\", 1]\n\t\t});\n\t\tif (mass !== void 0 && mass <= 0) ctx.addIssue({\n\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\tmessage: \"Spring mass must be greater than 0.\",\n\t\t\tpath: [\"params\", 2]\n\t\t});\n\t}\n});\nconst KeyframeSchema = z.object({\n\tid: z.string().min(1),\n\tframe: z.number().int().min(0),\n\tvalue: z.union([\n\t\tz.number(),\n\t\tz.boolean(),\n\t\tz.string()\n\t]),\n\tease: EaseRefSchema.optional(),\n\tpresetGroupId: z.string().optional(),\n\tpresetType: z.string().optional(),\n\tspatialTangentIn: z.object({\n\t\tx: z.number(),\n\t\ty: z.number()\n\t}).optional(),\n\tspatialTangentOut: z.object({\n\t\tx: z.number(),\n\t\ty: z.number()\n\t}).optional()\n}).strict();\nconst SignalModeSchema = z.enum([\"continuous\", \"accumulate\"]);\nconst RawTrackSourceSchema = z.discriminatedUnion(\"type\", [\n\tz.object({ type: z.literal(\"keyframe\") }),\n\tz.object({\n\t\ttype: z.literal(\"signal\"),\n\t\tinputHandleId: z.string(),\n\t\tmultiplier: z.number().default(1),\n\t\toffset: z.number().default(0),\n\t\tsmoothingWindowFrames: z.number().min(0).default(0),\n\t\tcolorMode: SignalColorModeSchema.optional(),\n\t\tcolorA: z.string().optional(),\n\t\tcolorB: z.string().optional(),\n\t\tcolorThreshold: z.number().optional(),\n\t\tsignalMode: SignalModeSchema.optional(),\n\t\tthreshold: z.number().optional(),\n\t\taccumulateThreshold: z.number().optional(),\n\t\tdebounceFrames: z.number().int().min(0).optional(),\n\t\tchannel: z.string().optional()\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"wiggle\"),\n\t\tfrequency: z.number().default(2),\n\t\tamplitude: z.number().default(50),\n\t\toctaves: z.number().int().min(1).max(4).default(1),\n\t\tseed: z.number().default(1234)\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"springOvershoot\"),\n\t\tdamping: z.number().default(12),\n\t\tstiffness: z.number().default(180),\n\t\tmass: z.number().default(1)\n\t})\n]);\nconst TrackSourceSchema = z.preprocess((val) => {\n\tif (!val || typeof val !== \"object\") return val;\n\tconst obj = val;\n\tif (obj.type === \"signal\") {\n\t\tconst thresh = typeof obj.threshold === \"number\" ? obj.threshold : typeof obj.accumulateThreshold === \"number\" ? obj.accumulateThreshold : .15;\n\t\treturn {\n\t\t\ttype: \"signal\",\n\t\t\tinputHandleId: obj.inputHandleId ?? obj.handleId,\n\t\t\tmultiplier: obj.multiplier ?? obj.amplitude ?? 1,\n\t\t\toffset: obj.offset ?? 0,\n\t\t\tsmoothingWindowFrames: obj.smoothingWindowFrames ?? obj.smoothing ?? 0,\n\t\t\tcolorMode: obj.colorMode,\n\t\t\tcolorA: obj.colorA,\n\t\t\tcolorB: obj.colorB,\n\t\t\tcolorThreshold: obj.colorThreshold,\n\t\t\tsignalMode: obj.signalMode ?? \"continuous\",\n\t\t\tthreshold: thresh,\n\t\t\taccumulateThreshold: thresh,\n\t\t\tdebounceFrames: obj.debounceFrames ?? 2,\n\t\t\tchannel: typeof obj.channel === \"string\" ? obj.channel : \"primary\"\n\t\t};\n\t}\n\treturn val;\n}, RawTrackSourceSchema);\nconst animationInvariants = (anim, ctx) => {\n\tif (!anim?.tracks) return;\n\tlet totalKeyframes = 0;\n\tfor (let tIdx = 0; tIdx < anim.tracks.length; tIdx++) {\n\t\tconst track = anim.tracks[tIdx];\n\t\tconst keyframes = track.keyframes ?? [];\n\t\ttotalKeyframes += keyframes.length;\n\t\tif ((!track.source || track.source.type === \"keyframe\") && keyframes.length < 1) ctx.addIssue({\n\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\tmessage: `Track for property '${track.prop}' must have at least 1 keyframe.`,\n\t\t\tpath: [\n\t\t\t\t\"tracks\",\n\t\t\t\ttIdx,\n\t\t\t\t\"keyframes\"\n\t\t\t]\n\t\t});\n\t\tconst isDiscrete = track.prop === \"hidden\" || track.prop === \"muted\";\n\t\tconst isColor = track.prop === \"fillColor\" || track.prop === \"strokeColor\" || track.prop === \"fill\" || track.prop === \"color\";\n\t\tfor (let kIdx = 0; kIdx < keyframes.length; kIdx++) {\n\t\t\tconst kf = keyframes[kIdx];\n\t\t\tif (kIdx > 0) {\n\t\t\t\tconst prevKf = keyframes[kIdx - 1];\n\t\t\t\tif (kf.frame < prevKf.frame) ctx.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: \"Keyframes must be sorted in ascending order of frame.\",\n\t\t\t\t\tpath: [\n\t\t\t\t\t\t\"tracks\",\n\t\t\t\t\t\ttIdx,\n\t\t\t\t\t\t\"keyframes\",\n\t\t\t\t\t\tkIdx\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\telse if (kf.frame === prevKf.frame) ctx.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: \"Duplicate keyframes at the same frame are not allowed.\",\n\t\t\t\t\tpath: [\n\t\t\t\t\t\t\"tracks\",\n\t\t\t\t\t\ttIdx,\n\t\t\t\t\t\t\"keyframes\",\n\t\t\t\t\t\tkIdx\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst valType = typeof kf.value;\n\t\t\tif (isDiscrete) {\n\t\t\t\tif (valType !== \"boolean\") ctx.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: `Keyframe value for discrete property '${track.prop}' must be a boolean.`,\n\t\t\t\t\tpath: [\n\t\t\t\t\t\t\"tracks\",\n\t\t\t\t\t\ttIdx,\n\t\t\t\t\t\t\"keyframes\",\n\t\t\t\t\t\tkIdx,\n\t\t\t\t\t\t\"value\"\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t} else if (isColor) {\n\t\t\t\tif (valType !== \"string\") ctx.addIssue({\n\t\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\t\tmessage: `Keyframe value for color property '${track.prop}' must be a string.`,\n\t\t\t\t\tpath: [\n\t\t\t\t\t\t\"tracks\",\n\t\t\t\t\t\ttIdx,\n\t\t\t\t\t\t\"keyframes\",\n\t\t\t\t\t\tkIdx,\n\t\t\t\t\t\t\"value\"\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t} else if (valType !== \"number\" || Number.isNaN(kf.value) || !Number.isFinite(kf.value)) ctx.addIssue({\n\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\tmessage: `Keyframe value for numeric property '${track.prop}' must be a finite number.`,\n\t\t\t\tpath: [\n\t\t\t\t\t\"tracks\",\n\t\t\t\t\ttIdx,\n\t\t\t\t\t\"keyframes\",\n\t\t\t\t\tkIdx,\n\t\t\t\t\t\"value\"\n\t\t\t\t]\n\t\t\t});\n\t\t\telse if ((track.prop === \"volume\" || track.prop === \"trimStart\" || track.prop === \"trimEnd\") && (kf.value < 0 || kf.value > 1)) ctx.addIssue({\n\t\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\t\tmessage: `Keyframe value for property '${track.prop}' must be between 0 and 1.`,\n\t\t\t\tpath: [\n\t\t\t\t\t\"tracks\",\n\t\t\t\t\ttIdx,\n\t\t\t\t\t\"keyframes\",\n\t\t\t\t\tkIdx,\n\t\t\t\t\t\"value\"\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t}\n\tif (totalKeyframes > 128) ctx.addIssue({\n\t\tcode: z.ZodIssueCode.custom,\n\t\tmessage: `Total keyframes across all tracks (${totalKeyframes}) exceeds the limit of 128.`,\n\t\tpath: [\"tracks\"]\n\t});\n};\nconst AnimationTrackSchema = z.object({\n\tid: z.string().min(1),\n\tprop: AnimatablePropSchema,\n\tsource: TrackSourceSchema.optional(),\n\tkeyframes: z.array(KeyframeSchema).default([]),\n\trepeat: z.number().int().optional(),\n\tyoyo: z.boolean().optional(),\n\tdurationFrames: z.number().int().min(1).optional()\n}).strict();\nconst LayerAnimationSchema = z.object({\n\ttracks: z.array(AnimationTrackSchema).max(24),\n\tframeStep: z.number().int().min(1).max(24).optional()\n}).strict().superRefine(animationInvariants);\nconst BaseNodeFields = {\n\tid: z.string().min(1),\n\tinputHandleId: z.string().optional(),\n\tposition: z.enum([\"relative\", \"absolute\"]).default(\"relative\"),\n\tx: z.union([z.number(), z.custom()]).default(0),\n\ty: z.union([z.number(), z.custom()]).default(0),\n\twidth: SizeSpecSchema.optional(),\n\theight: SizeSpecSchema.optional(),\n\tgrow: z.number().min(0).optional(),\n\tflexShrink: z.number().min(0).optional(),\n\tflexBasis: z.number().min(0).optional(),\n\talignSelf: z.enum([\n\t\t\"auto\",\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\",\n\t\t\"stretch\",\n\t\t\"baseline\"\n\t]).optional(),\n\taspectRatio: z.number().positive().optional(),\n\tzIndex: z.number().int().default(0),\n\thidden: z.boolean().default(false),\n\topacity: z.number().min(0).max(1).default(1),\n\tblendMode: z.string().optional(),\n\teffects: z.array(EffectSpecSchema).optional(),\n\trotation: z.number().default(0),\n\tscale: z.number().min(0).default(1),\n\tanchorX: z.number().min(0).max(1).default(.5),\n\tanchorY: z.number().min(0).max(1).default(.5),\n\tstartFrame: z.number().int().min(0).default(0),\n\tdurationFrames: z.number().int().min(1).optional(),\n\tmotionBlurShutter: z.number().min(0).max(360).optional(),\n\trotateX: z.number().default(0),\n\trotateY: z.number().default(0),\n\trotateZ: z.number().default(0),\n\tperspective: z.number().min(0).default(0),\n\tperspectiveOriginX: z.number().default(.5),\n\tperspectiveOriginY: z.number().default(.5),\n\ttranslateZ: z.number().default(0),\n\tbackfaceVisibility: z.enum([\"visible\", \"hidden\"]).default(\"visible\"),\n\ttransformStyle: z.enum([\"flat\", \"preserve-3d\"]).default(\"flat\"),\n\tis3D: z.boolean().default(false),\n\tz: z.union([z.number(), z.custom()]).default(0),\n\tscaleZ: z.number().default(1),\n\ttwoSided: z.boolean().default(true),\n\tmaterial: MaterialTypeSchema.default(\"lit\"),\n\tior: z.number().min(1).max(3).optional(),\n\troughness: z.number().min(0).max(1).optional(),\n\tshininess: z.number().min(1).max(512).default(32),\n\tspecularIntensity: z.number().min(0).default(.5),\n\tmetallic: z.number().min(0).max(1).optional(),\n\tambientIntensity: z.number().min(0).default(1),\n\ttransmission: z.number().min(0).max(1).optional(),\n\tdispersion: z.number().min(0).max(1).optional(),\n\tfresnelPower: z.number().min(1).max(10).optional(),\n\tenvIntensity: z.number().min(0).max(10).optional(),\n\temissive: ColorSchema.optional(),\n\temissiveIntensity: z.number().min(0).optional(),\n\tcastShadow: z.boolean().optional(),\n\tmatte: z.object({\n\t\tnode: z.custom((v) => typeof v === \"object\" && v !== null),\n\t\tmode: MatteModeSchema.optional()\n\t}).optional(),\n\tmatteId: z.string().optional(),\n\tmatteOf: z.string().optional(),\n\tmatteMode: MatteModeSchema.optional(),\n\tanimation: LayerAnimationSchema.default({ tracks: [] }),\n\tvision: z.unknown().optional(),\n\trelighting: z.unknown().optional()\n};\nconst TextShadowSchema = z.object({\n\tcolor: ColorSchema,\n\toffset: z.object({\n\t\tx: z.number(),\n\t\ty: z.number()\n\t}).optional(),\n\tblurRadius: z.number().min(0).optional()\n}).strict();\nconst TextAnimatorTransformSchema = z.object({\n\tx: z.number().optional(),\n\ty: z.number().optional(),\n\tscale: z.number().optional(),\n\tscaleX: z.number().optional(),\n\tscaleY: z.number().optional(),\n\trotation: z.number().optional(),\n\trotationX: z.number().optional(),\n\trotationY: z.number().optional(),\n\topacity: z.number().optional(),\n\tblur: z.number().optional(),\n\tcolor: z.string().optional()\n}).strict();\nconst TextAnimatorSchema = z.object({\n\tid: z.string(),\n\tunit: z.enum([\n\t\t\"character\",\n\t\t\"word\",\n\t\t\"line\"\n\t]).default(\"character\"),\n\trangeStart: z.number().min(0).max(1).default(0),\n\trangeEnd: z.number().min(0).max(1).default(1),\n\toffset: z.number().min(-1).max(1).default(0),\n\teasing: z.string().default(\"power2.out\"),\n\ttransform: TextAnimatorTransformSchema.optional()\n});\nconst TextAnimator = {\n\twaveRise(options = {}) {\n\t\treturn {\n\t\t\tid: options.id ?? \"wave-rise\",\n\t\t\tunit: options.unit ?? \"character\",\n\t\t\trangeStart: options.rangeStart ?? 0,\n\t\t\trangeEnd: options.rangeEnd ?? 1,\n\t\t\toffset: options.offset ?? -1,\n\t\t\teasing: options.easing ?? \"power2.out\",\n\t\t\ttransform: {\n\t\t\t\ty: options.y ?? 40,\n\t\t\t\trotationX: options.rotationX ?? 45,\n\t\t\t\topacity: options.opacity ?? 0,\n\t\t\t\tblur: options.blur ?? 0\n\t\t\t}\n\t\t};\n\t},\n\twordPop(options = {}) {\n\t\treturn {\n\t\t\tid: options.id ?? \"word-pop\",\n\t\t\tunit: \"word\",\n\t\t\trangeStart: 0,\n\t\t\trangeEnd: 1,\n\t\t\toffset: -1,\n\t\t\teasing: options.easing ?? \"back.out(1.6)\",\n\t\t\ttransform: {\n\t\t\t\tscale: options.scale ?? 0,\n\t\t\t\ty: options.y ?? 20,\n\t\t\t\topacity: 0\n\t\t\t}\n\t\t};\n\t},\n\tblurIn(options = {}) {\n\t\treturn {\n\t\t\tid: options.id ?? \"blur-in\",\n\t\t\tunit: options.unit ?? \"character\",\n\t\t\trangeStart: 0,\n\t\t\trangeEnd: 1,\n\t\t\toffset: -1,\n\t\t\teasing: options.easing ?? \"power3.out\",\n\t\t\ttransform: {\n\t\t\t\tblur: options.blur ?? 16,\n\t\t\t\ty: options.y ?? 20,\n\t\t\t\topacity: options.opacity ?? 0\n\t\t\t}\n\t\t};\n\t},\n\tflip3D(options = {}) {\n\t\treturn {\n\t\t\tid: options.id ?? \"flip-3d\",\n\t\t\tunit: options.unit ?? \"character\",\n\t\t\trangeStart: 0,\n\t\t\trangeEnd: 1,\n\t\t\toffset: -1,\n\t\t\teasing: options.easing ?? \"back.out(1.4)\",\n\t\t\ttransform: {\n\t\t\t\trotationX: options.rotationX ?? 90,\n\t\t\t\topacity: 0\n\t\t\t}\n\t\t};\n\t},\n\tcolorSweep(options) {\n\t\treturn {\n\t\t\tid: options.id ?? \"color-sweep\",\n\t\t\tunit: options.unit ?? \"character\",\n\t\t\trangeStart: 0,\n\t\t\trangeEnd: .5,\n\t\t\toffset: -.5,\n\t\t\teasing: options.easing ?? \"power2.inOut\",\n\t\t\ttransform: { color: options.color }\n\t\t};\n\t}\n};\nconst CameraLensSchema = z.object({\n\tfocalLength: z.number().min(5).max(500).default(50),\n\tfov: z.number().min(5).max(160).optional(),\n\tsensorWidth: z.number().default(36),\n\tnear: z.number().min(.1).default(1),\n\tfar: z.number().min(10).default(5e4),\n\tzoom: z.number().min(.01).default(1)\n}).strict();\nconst CameraDoFSchema = z.object({\n\tenabled: z.boolean().default(false),\n\tfocusDistance: z.number().min(1).default(1e3),\n\tfStop: z.number().min(.5).max(64).default(2.8),\n\tmaxBlurRadius: z.number().min(0).max(128).default(32),\n\tapertureBlades: z.number().int().min(0).max(12).default(0),\n\tanamorphicRatio: z.number().min(.5).max(3).default(1)\n}).strict();\nconst CameraShakeSchema = z.object({\n\ttranslationAmplitude: z.number().min(0).default(0),\n\trotationAmplitude: z.number().min(0).default(0),\n\tfrequency: z.number().min(.1).max(60).default(2.5),\n\toctaves: z.number().int().min(1).max(6).default(3),\n\tseed: z.number().default(42)\n}).strict();\nconst CameraNodeSchema = z.object({\n\tid: z.string().min(1),\n\tkind: z.literal(\"camera\"),\n\tmode: z.enum([\n\t\t\"lookAt\",\n\t\t\"free\",\n\t\t\"orbit\"\n\t]).default(\"lookAt\"),\n\tx: z.number().optional(),\n\ty: z.number().optional(),\n\tz: z.number().optional(),\n\ttargetX: z.number().optional(),\n\ttargetY: z.number().optional(),\n\ttargetZ: z.number().optional(),\n\tpitch: z.number().default(0),\n\tyaw: z.number().default(0),\n\troll: z.number().default(0),\n\tlens: CameraLensSchema.optional(),\n\tdof: CameraDoFSchema.optional(),\n\tshake: CameraShakeSchema.optional(),\n\tstartFrame: z.number().int().min(0).default(0),\n\tdurationFrames: z.number().int().min(1).optional(),\n\tanimation: LayerAnimationSchema.default({ tracks: [] })\n}).strict();\nconst LightTypeSchema = z.enum([\n\t\"ambient\",\n\t\"directional\",\n\t\"point\",\n\t\"spot\",\n\t\"environment\"\n]);\nconst EnvironmentPresetSchema = z.enum([\n\t\"studio\",\n\t\"soft\",\n\t\"sunset\",\n\t\"night\",\n\t\"neutral\"\n]);\nconst ToneMappingSchema = z.enum([\n\t\"neutral\",\n\t\"agx\",\n\t\"aces\",\n\t\"none\"\n]);\nconst EnvironmentFogSchema = z.object({\n\tcolor: ColorSchema,\n\tstart: z.number().min(0),\n\tend: z.number().min(0),\n\topacity: z.number().min(0).max(1).optional()\n}).strict();\nconst BloomConfigSchema = z.object({\n\tintensity: z.number().min(0).max(10).optional(),\n\tthreshold: z.number().min(0).max(16).optional(),\n\tknee: z.number().min(0).max(1).optional(),\n\tradius: z.number().min(1).max(8).optional()\n}).strict();\nconst LightNodeSchema = z.object({\n\tid: z.string().min(1),\n\tkind: z.literal(\"light\"),\n\tlightType: LightTypeSchema.default(\"directional\"),\n\tcolor: ColorSchema.default(\"#ffffff\"),\n\tintensity: z.number().default(1),\n\tx: z.number().optional(),\n\ty: z.number().optional(),\n\tz: z.number().optional(),\n\ttargetX: z.number().optional(),\n\ttargetY: z.number().optional(),\n\ttargetZ: z.number().optional(),\n\tdirection: z.tuple([\n\t\tz.number(),\n\t\tz.number(),\n\t\tz.number()\n\t]).optional(),\n\tradius: z.number().min(0).default(1e3),\n\tdecay: z.number().min(0).default(2),\n\tangle: z.number().min(0).max(180).default(45),\n\tpenumbra: z.number().min(0).max(1).default(.2),\n\tcastShadow: z.boolean().optional(),\n\tshadowSoftness: z.number().min(0).max(64).optional(),\n\tshadowDarkness: z.number().min(0).max(1).optional(),\n\tshadowMapSize: z.number().int().min(256).max(8192).optional(),\n\tpreset: EnvironmentPresetSchema.optional(),\n\ttop: ColorSchema.optional(),\n\thorizon: ColorSchema.optional(),\n\tbottom: ColorSchema.optional(),\n\tsoftboxes: z.number().min(0).optional(),\n\trotation: z.number().optional(),\n\texposure: z.number().min(-16).max(16).optional(),\n\ttoneMapping: ToneMappingSchema.optional(),\n\tfog: EnvironmentFogSchema.optional(),\n\tbloom: z.union([z.boolean(), BloomConfigSchema]).optional(),\n\tstartFrame: z.number().int().min(0).default(0),\n\tdurationFrames: z.number().int().min(1).optional(),\n\tanimation: LayerAnimationSchema.default({ tracks: [] })\n}).strict();\nconst containerChildren = () => z.array(z.lazy(() => LayoutNodeSchema));\nconst FlexNodeSchema = z.object({\n\t...BaseNodeFields,\n\tkind: z.literal(\"flex\"),\n\tdir: z.enum([\"row\", \"column\"]).default(\"row\"),\n\tgap: z.number().min(0).default(0),\n\tpadding: z.number().min(0).default(0),\n\tjustify: z.enum([\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\",\n\t\t\"space-between\",\n\t\t\"space-around\"\n\t]).default(\"start\"),\n\talign: z.enum([\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\",\n\t\t\"stretch\"\n\t]).default(\"start\"),\n\twrap: z.boolean().default(false),\n\tstaggerFrames: z.number().min(0).default(0),\n\tstaggerDirection: z.enum([\n\t\t\"forward\",\n\t\t\"reverse\",\n\t\t\"center-out\"\n\t]).default(\"forward\"),\n\toverflow: z.enum([\"visible\", \"hidden\"]).default(\"hidden\"),\n\tbackground: ColorSchema.optional(),\n\tborderRadius: z.number().min(0).optional(),\n\tborderColor: ColorSchema.optional(),\n\tborderWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\tstrokeRadius: z.number().min(0).optional(),\n\tchildren: containerChildren().optional()\n}).strict();\nconst BlockNodeSchema = z.object({\n\t...BaseNodeFields,\n\tkind: z.literal(\"block\"),\n\tgap: z.number().min(0).default(0),\n\tpadding: z.number().min(0).default(0),\n\talign: z.enum([\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\",\n\t\t\"stretch\"\n\t]).default(\"start\"),\n\tstaggerFrames: z.number().min(0).default(0),\n\tstaggerDirection: z.enum([\n\t\t\"forward\",\n\t\t\"reverse\",\n\t\t\"center-out\"\n\t]).default(\"forward\"),\n\toverflow: z.enum([\"visible\", \"hidden\"]).default(\"hidden\"),\n\tbackground: ColorSchema.optional(),\n\tborderRadius: z.number().min(0).optional(),\n\tborderColor: ColorSchema.optional(),\n\tborderWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\tstrokeRadius: z.number().min(0).optional(),\n\tchildren: containerChildren().optional()\n}).strict();\nconst BoxNodeSchema = z.object({\n\t...BaseNodeFields,\n\tkind: z.literal(\"box\"),\n\tbackground: ColorSchema,\n\tborderRadius: z.number().min(0).optional(),\n\tpadding: z.number().min(0).default(0),\n\tstaggerFrames: z.number().min(0).default(0),\n\tstaggerDirection: z.enum([\n\t\t\"forward\",\n\t\t\"reverse\",\n\t\t\"center-out\"\n\t]).default(\"forward\"),\n\toverflow: z.enum([\"visible\", \"hidden\"]).default(\"hidden\"),\n\tborderColor: ColorSchema.optional(),\n\tborderWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\tstrokeRadius: z.number().min(0).optional(),\n\tchildren: containerChildren().optional()\n}).strict();\nconst TextSpanMarkSchema = z.object({\n\tbackground: ColorSchema,\n\tborderRadius: z.number().min(0).optional(),\n\tpaddingX: z.number().min(0).optional(),\n\tpaddingY: z.number().min(0).optional()\n}).strict();\nconst TextSpanSchema = z.object({\n\ttext: z.union([z.string(), z.custom((v) => Boolean(v && typeof v === \"object\" && \"get\" in v))]),\n\tfontFamily: z.string().optional(),\n\tfontSize: z.union([z.number().positive(), z.custom((v) => Boolean(v && typeof v === \"object\" && \"get\" in v))]).optional(),\n\tfontWeight: z.union([z.number().int(), z.string()]).optional(),\n\tfontStyle: z.enum([\"normal\", \"italic\"]).optional(),\n\tfill: z.union([ColorSchema, z.custom((v) => Boolean(v && typeof v === \"object\" && \"get\" in v))]).optional(),\n\tletterSpacing: z.number().optional(),\n\tbaselineShift: z.number().optional(),\n\topacity: z.union([z.number().min(0).max(1), z.custom((v) => Boolean(v && typeof v === \"object\" && \"get\" in v))]).optional(),\n\tmark: TextSpanMarkSchema.optional()\n}).strict();\nconst TextFields = {\n\ttext: z.string().default(\"\"),\n\tspans: z.array(TextSpanSchema).optional(),\n\tfontFamily: z.string().optional(),\n\tfontSize: z.number().positive().optional(),\n\tfontWeight: z.union([z.number().int(), z.string()]).optional(),\n\tfontStyle: z.string().optional(),\n\tfill: ColorSchema,\n\talign: z.enum([\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\"\n\t]).optional(),\n\tdirection: z.enum([\n\t\t\"ltr\",\n\t\t\"rtl\",\n\t\t\"auto\"\n\t]).optional(),\n\tverticalAlign: z.enum([\n\t\t\"top\",\n\t\t\"middle\",\n\t\t\"bottom\"\n\t]).optional(),\n\tlineHeight: z.number().positive().optional(),\n\tletterSpacing: z.number().optional(),\n\tbackground: ColorSchema,\n\tborderRadius: z.number().min(0).optional(),\n\tpadding: z.number().min(0).optional(),\n\tstroke: ColorSchema,\n\tstrokeWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\ttextShadow: z.string().optional(),\n\tshadows: z.array(TextShadowSchema).optional(),\n\tpathOptions: TextPathOptionsSchema.optional(),\n\ttypewriter: TypewriterAnimatorSchema.optional(),\n\tmarquee: KineticMarqueeConfigSchema.optional(),\n\tanimators: z.array(z.union([\n\t\tTextAnimatorSchema,\n\t\tAETextAnimatorSchema,\n\t\tAdvancedTextAnimatorSchema\n\t])).optional()\n};\nconst TextNodeSchema = z.object({\n\t...BaseNodeFields,\n\t...TextFields,\n\tkind: z.literal(\"text\")\n}).strict();\nconst MediaNodeSchema = z.object({\n\t...BaseNodeFields,\n\tkind: z.literal(\"media\"),\n\tinputHandleId: z.string().min(1),\n\tsrc: z.string().optional(),\n\tdataType: z.string().optional(),\n\tfit: z.enum([\n\t\t\"cover\",\n\t\t\"contain\",\n\t\t\"fill\",\n\t\t\"none\"\n\t]).default(\"contain\"),\n\tdpr: z.number().min(1).max(4).optional(),\n\tborderRadius: z.number().min(0).optional(),\n\tborderColor: ColorSchema.optional(),\n\tborderWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\tstrokeRadius: z.number().min(0).optional(),\n\tvolume: z.number().min(0).max(1).default(1),\n\tmuted: z.boolean().default(false),\n\ttrimStartSec: z.number().min(0).optional(),\n\tfontFamily: z.string().optional(),\n\tfontSize: z.number().positive().optional(),\n\tfontWeight: z.union([z.number().int(), z.string()]).optional(),\n\tfontStyle: z.string().optional(),\n\tfill: ColorSchema,\n\talign: z.enum([\n\t\t\"start\",\n\t\t\"center\",\n\t\t\"end\"\n\t]).optional(),\n\tdirection: z.enum([\n\t\t\"ltr\",\n\t\t\"rtl\",\n\t\t\"auto\"\n\t]).optional(),\n\tverticalAlign: z.enum([\n\t\t\"top\",\n\t\t\"middle\",\n\t\t\"bottom\"\n\t]).optional(),\n\tlineHeight: z.number().positive().optional(),\n\tletterSpacing: z.number().optional(),\n\tbackground: ColorSchema,\n\tpadding: z.number().min(0).optional(),\n\tstroke: ColorSchema,\n\tstrokeWidth: z.number().min(0).optional(),\n\ttextShadow: z.string().optional(),\n\tshadows: z.array(TextShadowSchema).optional(),\n\tmaxWidth: z.number().optional()\n}).strict();\nconst ShapeFields = {\n\tshapeType: ShapeTypeSchema.default(\"rect\"),\n\tborderRadius: z.number().min(0).optional(),\n\tradiusTL: z.number().min(0).optional(),\n\tradiusTR: z.number().min(0).optional(),\n\tradiusBR: z.number().min(0).optional(),\n\tradiusBL: z.number().min(0).optional(),\n\tpolygonSides: z.number().int().min(3).max(64).optional(),\n\tstarPoints: z.number().int().min(3).max(64).optional(),\n\tstarInnerRadiusRatio: z.number().min(.01).max(.99).optional(),\n\tarrowHeadWidth: z.number().min(0).optional(),\n\tarrowHeadLength: z.number().min(0).optional(),\n\tarrowShaftWidth: z.number().min(1).optional(),\n\td: z.string().optional(),\n\tfillType: z.enum([\n\t\t\"solid\",\n\t\t\"linear\",\n\t\t\"radial\",\n\t\t\"none\"\n\t]).default(\"solid\"),\n\tfillColor: ColorSchema.default(\"#3b82f6\"),\n\tgradientEndColor: ColorSchema.optional(),\n\tgradientAngle: z.number().default(0),\n\tstrokeColor: ColorSchema.default(\"#ffffff\"),\n\tstrokeWidth: z.number().min(0).default(0),\n\tstrokeDashArray: z.string().optional(),\n\tstrokeDashOffset: z.number().default(0),\n\tstrokeLineCap: z.enum([\n\t\t\"butt\",\n\t\t\"round\",\n\t\t\"square\"\n\t]).default(\"round\"),\n\tstrokeLineJoin: z.enum([\n\t\t\"miter\",\n\t\t\"round\",\n\t\t\"bevel\"\n\t]).default(\"round\"),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\ttrimStart: z.number().min(0).max(1).default(0),\n\ttrimEnd: z.number().min(0).max(1).default(1),\n\ttrimOffset: z.number().default(0)\n};\nconst ShapeNodeSchema = z.object({\n\t...BaseNodeFields,\n\t...ShapeFields,\n\tkind: z.literal(\"shape\")\n}).strict();\nconst ColorStopSchema = z.object({\n\toffset: z.number().min(0).max(1),\n\tcolor: z.string()\n});\nconst Model3DNodeSchema = z.object({\n\t...BaseNodeFields,\n\tkind: z.literal(\"model3d\"),\n\tsrc: z.string().default(\"\"),\n\tmodelFormat: z.enum([\n\t\t\"obj\",\n\t\t\"fbx\",\n\t\t\"gltf\",\n\t\t\"glb\",\n\t\t\"stl\",\n\t\t\"ply\",\n\t\t\"vox\",\n\t\t\"3ds\",\n\t\t\"off\",\n\t\t\"auto\"\n\t]).default(\"auto\"),\n\tmodelData: z.unknown().optional(),\n\tanimationName: z.string().optional(),\n\tanimationProgress: z.number().min(0).max(1).default(0),\n\tanimationTime: z.number().min(0).default(0),\n\tanimationSpeed: z.number().default(1),\n\tloop: z.boolean().default(true),\n\twireframe: z.boolean().default(false),\n\ttexture: z.string().optional(),\n\tcenter: z.boolean().optional(),\n\tnormalizeSize: z.number().optional(),\n\tscaleX: z.number().default(1),\n\tscaleY: z.number().default(1),\n\taudioDeform: z.record(z.string(), z.unknown()).optional(),\n\tcolor: ColorSchema.optional(),\n\tcolorTint: ColorSchema.optional(),\n\ttext3dOptions: z.unknown().optional(),\n\tprimitive3d: z.unknown().optional()\n}).strict();\nconst LayoutNodeSchema = z.lazy(() => z.union([\n\tFlexNodeSchema,\n\tBlockNodeSchema,\n\tBoxNodeSchema,\n\tTextNodeSchema,\n\tMediaNodeSchema,\n\tShapeNodeSchema,\n\tCameraNodeSchema,\n\tLightNodeSchema,\n\tModel3DNodeSchema\n]));\nconst CompositorProgramSchema = z.object({\n\twidth: z.number().int().min(1).max(4096),\n\theight: z.number().int().min(1).max(4096),\n\tbackgroundColor: ColorSchema,\n\tvolume: z.number().min(0).max(1).default(1),\n\tfps: z.number().int().min(1).max(120).default(24),\n\tmode: z.enum([\"Video\", \"Image\"]).default(\"Video\"),\n\tantialias3d: z.boolean().optional(),\n\tlayout: z.array(LayoutNodeSchema).default([]),\n\tfonts: z.array(z.string()).optional(),\n\tsignals: z.record(z.string(), z.unknown()).optional(),\n\teffects: z.array(EffectSpecSchema).optional(),\n\tvision: z.unknown().optional(),\n\tonRequestFrame: z.custom().optional()\n}).strict();\n\n//#endregion\n//#region src/program/sequence.ts\n/**\n* @file program/sequence.ts\n* @module @framefields/compositions/program/sequence\n*\n* Multi-Scene Timeline Orchestration, Camera Choreography & Carrier Match Cuts.\n* Complies with specs/cinematic-sequencing.ts.\n*/\n/**\n* Camera Transition Type across scene boundaries.\n*\n* @deprecated Recorded on scenes but not rendered. Use framefields'\n* `Layer.sequence([...])` with `Transition.push` / `wipe` / `iris` /\n* `crossfade` / `zoom` / `whip`, which render as keyframes and mattes.\n*/\nconst SceneTransitionTypeSchema = z.enum([\n\t\"cut\",\n\t\"carrierMatchCut\",\n\t\"cameraWhip\",\n\t\"focusPullDissolve\",\n\t\"irisAperture\",\n\t\"pushDirectional\"\n]);\n/**\n* Carrier Object Handoff Configuration Schema.\n*/\nconst CarrierHandoffConfigSchema = z.object({\n\tsourceLayerId: z.string(),\n\ttargetLayerId: z.string(),\n\tmode: z.enum([\n\t\t\"exact\",\n\t\t\"preserveVelocity\",\n\t\t\"morph\"\n\t]).default(\"preserveVelocity\"),\n\tblendFrames: z.number().int().min(0).max(30).default(0)\n}).strict();\n/**\n* Individual Scene Definition Schema.\n*/\nconst SceneDefinitionSchema = z.object({\n\tid: z.string(),\n\tchapter: z.enum([\n\t\t\"hook\",\n\t\t\"tension\",\n\t\t\"solution\",\n\t\t\"feature_spotlight\",\n\t\t\"outro\",\n\t\t\"custom\"\n\t]).default(\"custom\"),\n\tdurationMs: z.number().positive().optional(),\n\tdurationFrames: z.number().int().positive().optional(),\n\ttransitionOut: z.object({\n\t\ttype: SceneTransitionTypeSchema.default(\"cut\"),\n\t\tdurationFrames: z.number().int().min(0).default(0),\n\t\tcarrier: CarrierHandoffConfigSchema.optional(),\n\t\twhipDirection: z.enum([\n\t\t\t\"left\",\n\t\t\t\"right\",\n\t\t\t\"up\",\n\t\t\t\"down\"\n\t\t]).default(\"left\")\n\t}).default({\n\t\ttype: \"cut\",\n\t\tdurationFrames: 0,\n\t\twhipDirection: \"left\"\n\t})\n}).passthrough();\nfunction computeCarrierContinuity(stateAtCut, targetInitialState) {\n\treturn {\n\t\tx: stateAtCut.x,\n\t\ty: stateAtCut.y,\n\t\tscale: stateAtCut.scale,\n\t\tvx: stateAtCut.vx,\n\t\tvy: stateAtCut.vy,\n\t\t...targetInitialState\n\t};\n}\n/**\n* Calculates global scene offsets and handoff frames across a sequence.\n*/\nfunction calculateSequenceTimeline(scenes, fps = 60) {\n\tlet accumulatedFrame = 0;\n\tconst offsets = [];\n\tfor (const scene of scenes) {\n\t\tconst startFrame = accumulatedFrame;\n\t\tconst dur = scene.durationFrames ?? (scene.durationMs ? Math.round(scene.durationMs / 1e3 * fps) : 60);\n\t\toffsets.push({\n\t\t\tsceneId: scene.id,\n\t\t\tstartFrame,\n\t\t\tdurationFrames: dur\n\t\t});\n\t\tconst overlap = scene.transitionOverlap ?? scene.transitionOut?.durationFrames ?? 0;\n\t\taccumulatedFrame += Math.max(1, dur - overlap);\n\t}\n\tconst totalFrames = accumulatedFrame;\n\treturn {\n\t\ttotalFrames,\n\t\ttotalDurationMs: Math.round(totalFrames / fps * 1e3),\n\t\tsceneOffsets: offsets\n\t};\n}\nvar Scene = class Scene {\n\tid;\n\tchapter;\n\tdurationMs;\n\tdurationFrames;\n\ttransitionOut;\n\tlayout;\n\tconstructor(options) {\n\t\tthis.id = options.id;\n\t\tthis.chapter = options.chapter ?? \"custom\";\n\t\tthis.durationMs = options.durationMs;\n\t\tthis.durationFrames = options.durationFrames;\n\t\tthis.transitionOut = {\n\t\t\ttype: options.transitionOut?.type ?? \"cut\",\n\t\t\tdurationFrames: options.transitionOut?.durationFrames ?? 0,\n\t\t\tcarrier: options.transitionOut?.carrier,\n\t\t\twhipDirection: options.transitionOut?.whipDirection ?? \"left\"\n\t\t};\n\t\tthis.layout = options.layout ?? [];\n\t}\n\tstatic create(options) {\n\t\treturn new Scene(options);\n\t}\n};\nvar Sequence = class Sequence {\n\tfps;\n\twidth;\n\theight;\n\tbackgroundColor;\n\tfonts;\n\tsignals;\n\tscenes = [];\n\tconstructor(options = {}) {\n\t\tthis.fps = options.fps ?? 60;\n\t\tthis.width = options.width ?? 1920;\n\t\tthis.height = options.height ?? 1080;\n\t\tthis.backgroundColor = options.backgroundColor ?? \"#ffffff\";\n\t\tthis.fonts = options.fonts;\n\t\tthis.signals = options.signals;\n\t\tif (options.scenes) for (const sc of options.scenes) this.addScene(sc);\n\t}\n\tstatic create(options = {}) {\n\t\treturn new Sequence(options);\n\t}\n\taddScene(scene) {\n\t\tconst s = scene instanceof Scene ? scene : new Scene(scene);\n\t\tthis.scenes.push(s);\n\t\treturn this;\n\t}\n\tgetScenes() {\n\t\treturn this.scenes;\n\t}\n\tcalculateTimeline() {\n\t\treturn calculateSequenceTimeline(this.scenes, this.fps);\n\t}\n\ttoProgram() {\n\t\tconst timeline = this.calculateTimeline();\n\t\tconst rootLayout = [];\n\t\tfor (let i = 0; i < this.scenes.length; i++) {\n\t\t\tconst scene = this.scenes[i];\n\t\t\tconst offset = timeline.sceneOffsets[i];\n\t\t\tif (!offset) continue;\n\t\t\tfor (const node of scene.layout) {\n\t\t\t\tconst cloned = { ...node };\n\t\t\t\tcloned.startFrame = (cloned.startFrame ?? 0) + offset.startFrame;\n\t\t\t\tif (cloned.durationFrames === void 0) cloned.durationFrames = offset.durationFrames;\n\t\t\t\trootLayout.push(cloned);\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\twidth: this.width,\n\t\t\theight: this.height,\n\t\t\tbackgroundColor: this.backgroundColor,\n\t\t\tfps: this.fps,\n\t\t\tvolume: 1,\n\t\t\tmode: \"Video\",\n\t\t\tlayout: rootLayout,\n\t\t\tfonts: this.fonts,\n\t\t\tsignals: this.signals\n\t\t};\n\t}\n};\n\n//#endregion\n//#region src/program/stagger.ts\n/**\n* Calculates the frame delay offset for a child at `index` in a container of `totalCount` items.\n*/\nfunction computeStaggerDelay(index, totalCount, staggerFrames, direction = \"forward\") {\n\tif (staggerFrames <= 0 || totalCount <= 1) return 0;\n\tswitch (direction) {\n\t\tcase \"reverse\": return (totalCount - 1 - index) * staggerFrames;\n\t\tcase \"center-out\": {\n\t\t\tconst center = (totalCount - 1) / 2;\n\t\t\tconst dist = Math.abs(index - center);\n\t\t\treturn Math.round(dist * staggerFrames);\n\t\t}\n\t\tcase \"forward\": return index * staggerFrames;\n\t\tdefault: return assertNever(direction);\n\t}\n}\n/**\n* Applies stagger timing offsets to child nodes, returning cloned objects with adjusted `startFrame`.\n*/\nfunction applyStaggerToChildren(children, staggerFrames, direction = \"forward\", baseOffset = 0) {\n\tif (!children || children.length === 0) return [];\n\tif (staggerFrames <= 0 && baseOffset === 0) return [...children];\n\treturn children.map((child, idx) => {\n\t\tconst delay = computeStaggerDelay(idx, children.length, staggerFrames, direction);\n\t\tconst currentStart = child.startFrame ?? 0;\n\t\treturn {\n\t\t\t...child,\n\t\t\tstartFrame: currentStart + delay + baseOffset\n\t\t};\n\t});\n}\n\n//#endregion\n//#region src/program/to-virtual-media.ts\n/**\n* The ONE constructor from document to render tree (spec: SKILL.md).\n*\n* A validated v2 program (`CompositorProgramConfig`) becomes the\n* `VirtualMediaData` tree the compositor renderer consumes. Every layout node\n* becomes a `CompositorLayer` op carrying its document fields verbatim\n* (id/kind/style/timing/animation); containers carry nested node ops as\n* children; media nodes bind their graph source as the content child when\n* resolved.\n*\n* Pure + deterministic: same doc → same tree. No width/height resolution\n* here — geometry comes from `computeLayout` at render time.\n*/\nfunction nodeToVirtualMedia(node, resolveMedia, fps, inheritedOffset = 0, compDurationMs, inheritedDurationFrames) {\n\tlet children = [];\n\tconst sourceRef = node.kind === \"media\" ? node.src ?? node.inputHandleId : \"inputHandleId\" in node ? node.inputHandleId : void 0;\n\tconst isDirectMediaSource = (s) => typeof s === \"string\" && (s.startsWith(\"http://\") || s.startsWith(\"https://\") || s.startsWith(\"file://\") || s.startsWith(\"/\") || s.startsWith(\"./\") || s.startsWith(\"blob:\") || s.startsWith(\"data:\") || /\\.(png|jpe?g|webp|gif|svg|mp4|webm|mov|mkv|mp3|wav|ogg|m4a|srt|vtt|json|lottie)$/i.test(s));\n\tlet media;\n\tif (node.kind === \"media\") {\n\t\tif (resolveMedia && node.inputHandleId) media = resolveMedia(node.inputHandleId);\n\t\tif (!media && sourceRef && (isDirectMediaSource(sourceRef) || Boolean(node.src))) media = createVirtualMedia(sourceRef, node.dataType ?? \"Video\");\n\t\tif (!media && !resolveMedia && sourceRef && (sourceRef.includes(\".\") || sourceRef.includes(\"/\"))) console.warn(`[Compositor] Media layer '${node.id ?? \"?\"}' source '${sourceRef}' could not be resolved.`);\n\t\tif (media && node.crop) {\n\t\t\tconst cropRaw = node.crop;\n\t\t\tconst cropOp = typeof cropRaw.toOperation === \"function\" ? cropRaw.toOperation() : cropRaw;\n\t\t\tmedia = {\n\t\t\t\tmetadata: { ...media.metadata },\n\t\t\t\toperation: {\n\t\t\t\t\top: \"Crop\",\n\t\t\t\t\t...cropOp,\n\t\t\t\t\tdataType: media.operation.dataType\n\t\t\t\t},\n\t\t\t\tchildren: [media]\n\t\t\t};\n\t\t}\n\t\tif (media && Array.isArray(node.effects)) {\n\t\t\tlet currentMedia = media;\n\t\t\tfor (const eff of node.effects) {\n\t\t\t\tconst effOp = eff && typeof eff.toOperation === \"function\" ? eff.toOperation() : eff;\n\t\t\t\tcurrentMedia = {\n\t\t\t\t\tmetadata: { ...currentMedia.metadata },\n\t\t\t\t\toperation: {\n\t\t\t\t\t\top: String(effOp.op ?? \"effect\"),\n\t\t\t\t\t\tid: node.id ? `${node.id}-${effOp.op ?? \"effect\"}` : void 0,\n\t\t\t\t\t\teffect: eff,\n\t\t\t\t\t\t...effOp,\n\t\t\t\t\t\tdataType: currentMedia.operation.dataType\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [currentMedia]\n\t\t\t\t};\n\t\t\t}\n\t\t\tmedia = currentMedia;\n\t\t}\n\t\tif (media && node.vision) {\n\t\t\tconst visionRaw = node.vision;\n\t\t\tconst visionOp = typeof visionRaw.toOperation === \"function\" ? visionRaw.toOperation() : visionRaw;\n\t\t\tmedia = {\n\t\t\t\tmetadata: { ...media.metadata },\n\t\t\t\toperation: {\n\t\t\t\t\top: \"Vision\",\n\t\t\t\t\tid: node.id,\n\t\t\t\t\teffect: visionRaw,\n\t\t\t\t\t...visionOp,\n\t\t\t\t\tdataType: media.operation.dataType\n\t\t\t\t},\n\t\t\t\tchildren: [media]\n\t\t\t};\n\t\t}\n\t}\n\tif (node.kind === \"media\") children = media ? [media] : [];\n\telse if (\"children\" in node && node.children) {\n\t\tconst staggerFrames = node.kind === \"flex\" && typeof node.staggerFrames === \"number\" ? node.staggerFrames : 0;\n\t\tconst staggerDirection = node.kind === \"flex\" && typeof node.staggerDirection === \"string\" ? node.staggerDirection : \"forward\";\n\t\tconst nodeStart = typeof node.startFrame === \"number\" && Number.isFinite(node.startFrame) ? Math.round(node.startFrame) : 0;\n\t\tconst nodeDuration = typeof node.durationFrames === \"number\" && Number.isFinite(node.durationFrames) ? Math.round(node.durationFrames) : inheritedDurationFrames;\n\t\tconst nodeChildren = node.children;\n\t\tchildren = nodeChildren.map((c, idx) => {\n\t\t\tconst delay = computeStaggerDelay(idx, nodeChildren.length, staggerFrames, staggerDirection);\n\t\t\treturn nodeToVirtualMedia(c, resolveMedia, fps, inheritedOffset + nodeStart + delay, compDurationMs, c.durationFrames === void 0 ? nodeDuration : void 0);\n\t\t});\n\t}\n\tlet dataType = \"Image\";\n\tlet limit;\n\tif (media) {\n\t\tdataType = media.operation?.dataType ?? \"Image\";\n\t\tconst durationMs$1 = dataType === \"Image\" || dataType === \"SVG\" ? void 0 : getActiveMediaMetadata(media)?.durationMs;\n\t\tif (durationMs$1 !== void 0 && durationMs$1 !== null) limit = Math.max(1, Math.round(durationMs$1 / 1e3 * fps));\n\t}\n\tconst isCaption = media?.operation?.dataType === \"Caption\";\n\tconst isContainer = node.kind === \"flex\" || node.kind === \"block\" || node.kind === \"box\";\n\tconst startFrame = (typeof node.startFrame === \"number\" && Number.isFinite(node.startFrame) && node.startFrame >= 0 ? Math.round(node.startFrame) : 0) + inheritedOffset;\n\tlet dur = typeof node.durationFrames === \"number\" && Number.isFinite(node.durationFrames) && node.durationFrames > 0 ? Math.round(node.durationFrames) : void 0;\n\tconst defaultCompDuration = inheritedDurationFrames ?? Math.round((compDurationMs ?? 1e4) / 1e3 * fps);\n\tif (isContainer && children.length > 0) {\n\t\tif (dur === void 0) {\n\t\t\tconst childEnds = children.map((c) => (c.operation.startFrame ?? 0) + (c.operation.durationFrames ?? defaultCompDuration));\n\t\t\tdur = Math.max(1, Math.max(...childEnds) - startFrame);\n\t\t}\n\t} else if (isCaption && limit !== void 0 && limit > 0) dur = limit;\n\telse if (dur !== void 0) {\n\t\tif ((dataType === \"Video\" || dataType === \"Audio\") && limit !== void 0 && limit > 0) dur = Math.min(dur, limit);\n\t} else dur = limit ?? inheritedDurationFrames ?? Math.round((compDurationMs ?? 1e4) / 1e3 * fps);\n\tconst durationMs = dur / fps * 1e3;\n\tif (node.kind === \"media\" && media) {\n\t\tlet curr = media;\n\t\twhile (curr) {\n\t\t\tif (!curr.metadata?.durationMs || curr.metadata.durationMs <= 0) {\n\t\t\t\tif (!curr.metadata) curr.metadata = {};\n\t\t\t\tcurr.metadata.durationMs = durationMs;\n\t\t\t}\n\t\t\tif (curr.operation?.sourceMeta && !curr.operation.sourceMeta.durationMs) curr.operation.sourceMeta.durationMs = durationMs;\n\t\t\tcurr = curr.children?.[0];\n\t\t}\n\t}\n\treturn {\n\t\tmetadata: { durationMs },\n\t\toperation: {\n\t\t\top: \"CompositorLayer\",\n\t\t\t...node,\n\t\t\tstartFrame,\n\t\t\tdurationFrames: dur,\n\t\t\tdataType\n\t\t},\n\t\tchildren\n\t};\n}\nfunction compositorToProgram(config, options) {\n\tconst { isVideoMode, fps, durationMs, resolveMedia, signals } = options;\n\tlet rootMedia = {\n\t\tmetadata: {\n\t\t\twidth: config.width,\n\t\t\theight: config.height,\n\t\t\tfps,\n\t\t\t...durationMs !== void 0 && { durationMs }\n\t\t},\n\t\toperation: {\n\t\t\top: \"Compositor\",\n\t\t\twidth: config.width,\n\t\t\theight: config.height,\n\t\t\tfps,\n\t\t\tmode: config.mode ?? \"Video\",\n\t\t\tbackgroundColor: config.backgroundColor,\n\t\t\t...config.antialias3d !== void 0 && { antialias3d: config.antialias3d },\n\t\t\tvolume: config.volume ?? 1,\n\t\t\tdataType: isVideoMode ? \"Video\" : \"Image\",\n\t\t\tlayout: config.layout,\n\t\t\tsignals: {\n\t\t\t\t...collectInlineSignals(config.layout),\n\t\t\t\t...signals ?? config.signals ?? {}\n\t\t\t},\n\t\t\t...config.onRequestFrame || options.onRequestFrame ? { onRequestFrame: config.onRequestFrame ?? options.onRequestFrame } : {}\n\t\t},\n\t\tchildren: hoistMattes(config.layout).map((n) => nodeToVirtualMedia(n, resolveMedia, fps, 0, durationMs))\n\t};\n\tconst effectsList = Array.isArray(options.effects) ? options.effects : Array.isArray(config.effects) ? config.effects : [];\n\tfor (const eff of effectsList) {\n\t\tconst effOp = eff && typeof eff.toOperation === \"function\" ? eff.toOperation() : eff;\n\t\trootMedia = {\n\t\t\tmetadata: { ...rootMedia.metadata },\n\t\t\toperation: {\n\t\t\t\t...effOp,\n\t\t\t\tdataType: rootMedia.operation.dataType\n\t\t\t},\n\t\t\tchildren: [rootMedia]\n\t\t};\n\t}\n\tconst visionRaw = config.vision ?? options.vision;\n\tif (visionRaw) {\n\t\tconst visionOp = typeof visionRaw.toOperation === \"function\" ? visionRaw.toOperation() : visionRaw;\n\t\trootMedia = {\n\t\t\tmetadata: { ...rootMedia.metadata },\n\t\t\toperation: {\n\t\t\t\top: \"Vision\",\n\t\t\t\t...visionOp,\n\t\t\t\tdataType: rootMedia.operation.dataType\n\t\t\t},\n\t\t\tchildren: [rootMedia]\n\t\t};\n\t}\n\treturn rootMedia;\n}\n/** Recursively gather every node op from a render tree (in order). */\nfunction collectNodeOps(nodes) {\n\tconst out = [];\n\tconst walk = (vm) => {\n\t\tif (vm?.operation?.op === \"CompositorLayer\") out.push(vm);\n\t\tfor (const c of vm?.children ?? []) walk(c);\n\t};\n\tfor (const n of nodes) walk(n);\n\treturn out;\n}\n\n//#endregion\n//#region src/program/validate.ts\n/**\n* Coded validation for the v2 program document (spec: SKILL.md).\n*\n* Runs on the RAW input BEFORE zod: zod strips unknown keys silently, so\n* v1 shapes (`layers`, `layerUpdates`, `FPS`) and structural errors must be\n* caught in a pre-parse walk or the E-codes never fire. The zod schema then\n* handles shape/refinement errors (mapped to E1xxx-style issues).\n*/\nconst KIND_SET = new Set([\n\t\"flex\",\n\t\"block\",\n\t\"box\",\n\t\"text\",\n\t\"media\",\n\t\"shape\"\n]);\nconst MAX_NODES = 512;\nconst MAX_DEPTH = 64;\nconst issue = (code, path, message) => ({\n\tcode,\n\tpath,\n\tmessage\n});\nfunction validateLayoutProgram(raw) {\n\tconst issues = [];\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tok: false,\n\t\tissues: [issue(\"E1001\", [], \"Compositor config must be an object.\")]\n\t};\n\tconst obj = raw;\n\tif (\"layers\" in obj) issues.push(issue(\"E1001\", [\"layers\"], \"Config v2 uses `layout` — `layers` is removed.\"));\n\tif (\"layerUpdates\" in obj) issues.push(issue(\"E1001\", [\"layerUpdates\"], \"Config v2 uses `layout` — `layerUpdates` is removed.\"));\n\tif (\"FPS\" in obj) issues.push(issue(\"E1001\", [\"FPS\"], \"Config v2 uses `fps` — `FPS` is removed.\"));\n\tconst seenIds = /* @__PURE__ */ new Set();\n\tlet nodeCount = 0;\n\tconst isImageMode = obj.mode === \"Image\";\n\tconst walk = (node, path, depth) => {\n\t\tif (depth > MAX_DEPTH) {\n\t\t\tissues.push(issue(\"E1212\", [...path, \"children\"], `Layout nesting exceeds ${MAX_DEPTH} levels.`));\n\t\t\treturn;\n\t\t}\n\t\tif (!node || typeof node !== \"object\" || Array.isArray(node)) {\n\t\t\tissues.push(issue(\"E1201\", path, \"Layout node must be an object.\"));\n\t\t\treturn;\n\t\t}\n\t\tnodeCount += 1;\n\t\tif (nodeCount > MAX_NODES) {\n\t\t\tissues.push(issue(\"E1211\", path, `Composition exceeds ${MAX_NODES} nodes.`));\n\t\t\treturn;\n\t\t}\n\t\tconst n = node;\n\t\tconst kind = n.kind;\n\t\tif (typeof kind !== \"string\" || !KIND_SET.has(kind)) issues.push(issue(\"E1201\", [...path, \"kind\"], `Unknown layout node kind '${String(kind)}'. Expected one of: flex, block, box, text, media, shape.`));\n\t\tconst id = n.id;\n\t\tif (typeof id !== \"string\" || id.length === 0) issues.push(issue(\"E1203\", [...path, \"id\"], \"Layout node requires a non-empty `id`.\"));\n\t\telse if (seenIds.has(id)) issues.push(issue(\"E1202\", [...path, \"id\"], `Duplicate node id '${id}'.`));\n\t\telse seenIds.add(id);\n\t\tfor (const axis of [\"width\", \"height\"]) {\n\t\t\tconst v = n[axis];\n\t\t\tif (typeof v === \"number\" && (!Number.isFinite(v) || v < 0)) issues.push(issue(\"E1205\", [...path, axis], `SizeSpec must be a finite number >= 0 or one of \"auto\" | \"fit\" | \"fill\".`));\n\t\t\telse if (typeof v === \"string\" && v !== \"auto\" && v !== \"fit\" && v !== \"fill\") issues.push(issue(\"E1205\", [...path, axis], `SizeSpec must be a finite number >= 0 or one of \"auto\" | \"fit\" | \"fill\".`));\n\t\t}\n\t\tif (n.position === \"absolute\") {\n\t\t\tif (typeof n.x !== \"number\" || typeof n.y !== \"number\") issues.push(issue(\"E1206\", [...path], \"An absolute node requires numeric `x` and `y`.\"));\n\t\t\tif (n.grow !== void 0) issues.push(issue(\"E1209\", [...path, \"grow\"], \"`grow` is not allowed on an absolute node (it is out of flow).\"));\n\t\t}\n\t\tif (kind === \"media\" && (typeof n.inputHandleId !== \"string\" || n.inputHandleId.length === 0)) issues.push(issue(\"E1204\", [...path, \"inputHandleId\"], \"A media node requires a non-empty `inputHandleId`.\"));\n\t\tif (kind === \"text\" && typeof n.fontSize === \"number\" && n.fontSize <= 0) issues.push(issue(\"E1210\", [...path, \"fontSize\"], \"A text node requires fontSize > 0.\"));\n\t\tif (kind === \"shape\") {\n\t\t\tif (n.trimStart !== void 0) {\n\t\t\t\tconst ts = n.trimStart;\n\t\t\t\tif (typeof ts !== \"number\" || !Number.isFinite(ts) || Number.isNaN(ts) || ts < 0 || ts > 1) issues.push(issue(\"E1208\", [...path, \"trimStart\"], \"`trimStart` must be a finite number between 0 and 1.\"));\n\t\t\t}\n\t\t\tif (n.trimEnd !== void 0) {\n\t\t\t\tconst te = n.trimEnd;\n\t\t\t\tif (typeof te !== \"number\" || !Number.isFinite(te) || Number.isNaN(te) || te < 0 || te > 1) issues.push(issue(\"E1208\", [...path, \"trimEnd\"], \"`trimEnd` must be a finite number between 0 and 1.\"));\n\t\t\t}\n\t\t}\n\t\tif (!isImageMode) {\n\t\t\tif (n.durationFrames !== void 0) {\n\t\t\t\tconst df = n.durationFrames;\n\t\t\t\tif (typeof df !== \"number\" || !Number.isFinite(df) || Number.isNaN(df) || df < 1 || !Number.isInteger(df)) issues.push(issue(\"E1207\", [...path, \"durationFrames\"], `\\`durationFrames\\` must be a positive integer (>= 1). Received: ${String(df)}.`));\n\t\t\t}\n\t\t\tif (n.startFrame !== void 0) {\n\t\t\t\tconst sf = n.startFrame;\n\t\t\t\tif (typeof sf !== \"number\" || !Number.isFinite(sf) || Number.isNaN(sf) || sf < 0 || !Number.isInteger(sf)) issues.push(issue(\"E1207\", [...path, \"startFrame\"], `\\`startFrame\\` must be a non-negative integer (>= 0). Received: ${String(sf)}.`));\n\t\t\t}\n\t\t}\n\t\tif (n.opacity !== void 0) {\n\t\t\tconst op = n.opacity;\n\t\t\tif (typeof op !== \"number\" || !Number.isFinite(op) || Number.isNaN(op) || op < 0 || op > 1) issues.push(issue(\"E1213\", [...path, \"opacity\"], `\\`opacity\\` must be a number between 0 and 1. Received: ${String(op)}.`));\n\t\t}\n\t\tconst anim = n.animation;\n\t\tif (anim && Array.isArray(anim.tracks) && kind !== void 0) {\n\t\t\tconst props = /* @__PURE__ */ new Set();\n\t\t\tfor (let tIdx = 0; tIdx < anim.tracks.length; tIdx++) {\n\t\t\t\tconst prop = anim.tracks[tIdx]?.prop;\n\t\t\t\tif (typeof prop === \"string\") {\n\t\t\t\t\tif (props.has(prop)) issues.push(issue(\"E1208\", [\n\t\t\t\t\t\t...path,\n\t\t\t\t\t\t\"animation\",\n\t\t\t\t\t\t\"tracks\",\n\t\t\t\t\t\ttIdx\n\t\t\t\t\t], `Duplicate track property '${prop}' on node '${String(id)}'.`));\n\t\t\t\t\tprops.add(prop);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst children = n.children;\n\t\tif (Array.isArray(children)) for (let i = 0; i < children.length; i++) walk(children[i], [\n\t\t\t...path,\n\t\t\t\"children\",\n\t\t\ti\n\t\t], depth + 1);\n\t};\n\tconst layout = obj.layout;\n\tif (Array.isArray(layout)) for (let i = 0; i < layout.length; i++) walk(layout[i], [\"layout\", i], 0);\n\telse if (layout !== void 0) issues.push(issue(\"E1001\", [\"layout\"], \"`layout` must be an array of nodes.\"));\n\tif (issues.length > 0) return {\n\t\tok: false,\n\t\tissues\n\t};\n\treturn { ok: true };\n}\nfunction cleanImageModeTiming(raw) {\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return raw;\n\tconst obj = raw;\n\tif (obj.mode !== \"Image\" || !Array.isArray(obj.layout)) return raw;\n\tconst sanitizeNode = (node) => {\n\t\tif (!node || typeof node !== \"object\" || Array.isArray(node)) return node;\n\t\tconst n = { ...node };\n\t\tif (n.durationFrames !== void 0 && (typeof n.durationFrames !== \"number\" || !Number.isFinite(n.durationFrames) || n.durationFrames < 1 || !Number.isInteger(n.durationFrames))) delete n.durationFrames;\n\t\tif (n.startFrame !== void 0 && (typeof n.startFrame !== \"number\" || !Number.isFinite(n.startFrame) || n.startFrame < 0 || !Number.isInteger(n.startFrame))) delete n.startFrame;\n\t\tif (Array.isArray(n.children)) n.children = n.children.map(sanitizeNode);\n\t\treturn n;\n\t};\n\treturn {\n\t\t...obj,\n\t\tlayout: obj.layout.map(sanitizeNode)\n\t};\n}\n/** Fast-fail shape gate used by processors: validate raw config then parse. */\nfunction parseProgram(raw) {\n\tconst pre = validateLayoutProgram(raw);\n\tif (!pre.ok) return {\n\t\tok: false,\n\t\tissues: pre.issues\n\t};\n\tconst cleaned = cleanImageModeTiming(raw);\n\tconst parsed = CompositorProgramSchema.safeParse(cleaned);\n\tif (!parsed.success) return {\n\t\tok: false,\n\t\tissues: parsed.error.issues.map((i) => issue(\"E1001\", i.path.map((p) => typeof p === \"symbol\" ? p.toString() : p), i.message))\n\t};\n\treturn {\n\t\tok: true,\n\t\tconfig: parsed.data\n\t};\n}\n/** Collect every node id in the tree (depth-first, in order). */\nfunction collectNodeIds(nodes) {\n\tconst ids = [];\n\tconst walk = (n) => {\n\t\tids.push(n.id);\n\t\tif (\"children\" in n && n.children) walkChildren(n.children);\n\t};\n\tconst walkChildren = (list) => {\n\t\tfor (const n of list) walk(n);\n\t};\n\twalkChildren(nodes);\n\treturn ids;\n}\n/** Collect media node bindings: inputHandleId -> node id. */\nfunction collectMediaBindings(nodes) {\n\tconst bindings = /* @__PURE__ */ new Map();\n\tconst walk = (n) => {\n\t\tif (n.kind === \"media\") bindings.set(n.inputHandleId, n.id);\n\t\tif (\"children\" in n && n.children) for (const c of n.children) walk(c);\n\t};\n\tfor (const n of nodes) walk(n);\n\treturn bindings;\n}\n\n//#endregion\n//#region src/program/index.ts\nvar program_exports = /* @__PURE__ */ __exportAll({\n\tAnimatablePropSchema: () => AnimatablePropSchema,\n\tAnimationTrackSchema: () => AnimationTrackSchema,\n\tBlockNodeSchema: () => BlockNodeSchema,\n\tBloomConfigSchema: () => BloomConfigSchema,\n\tBoxNodeSchema: () => BoxNodeSchema,\n\tCameraAnimation: () => CameraAnimation,\n\tCameraDoFSchema: () => CameraDoFSchema,\n\tCameraLensSchema: () => CameraLensSchema,\n\tCameraNodeSchema: () => CameraNodeSchema,\n\tCameraShakeSchema: () => CameraShakeSchema,\n\tCarrierHandoffConfigSchema: () => CarrierHandoffConfigSchema,\n\tColorStopSchema: () => ColorStopSchema,\n\tCompositorProgramSchema: () => CompositorProgramSchema,\n\tEXTENDED_3D_ANIMATABLE_PROPS: () => EXTENDED_3D_ANIMATABLE_PROPS,\n\tEaseRefSchema: () => EaseRefSchema,\n\tEffectSpecSchema: () => EffectSpecSchema,\n\tEnvironmentFogSchema: () => EnvironmentFogSchema,\n\tEnvironmentPresetSchema: () => EnvironmentPresetSchema,\n\tFlexNodeSchema: () => FlexNodeSchema,\n\tKeyframeSchema: () => KeyframeSchema,\n\tLayerAnimation: () => LayerAnimation,\n\tLayerAnimationSchema: () => LayerAnimationSchema,\n\tLayoutNodeSchema: () => LayoutNodeSchema,\n\tLightNodeSchema: () => LightNodeSchema,\n\tLightTypeSchema: () => LightTypeSchema,\n\tMaterialTypeSchema: () => MaterialTypeSchema,\n\tMatteModeSchema: () => MatteModeSchema,\n\tMediaNodeSchema: () => MediaNodeSchema,\n\tModel3DNodeSchema: () => Model3DNodeSchema,\n\tScene: () => Scene,\n\tSceneDefinitionSchema: () => SceneDefinitionSchema,\n\tSceneTransitionTypeSchema: () => SceneTransitionTypeSchema,\n\tSequence: () => Sequence,\n\tShapeFields: () => ShapeFields,\n\tShapeNodeSchema: () => ShapeNodeSchema,\n\tShapeTypeSchema: () => ShapeTypeSchema,\n\tSignalColorModeSchema: () => SignalColorModeSchema,\n\tSignalModeSchema: () => SignalModeSchema,\n\tSizeSpecSchema: () => SizeSpecSchema,\n\tTextAnimator: () => TextAnimator,\n\tTextAnimatorSchema: () => TextAnimatorSchema,\n\tTextAnimatorTransformSchema: () => TextAnimatorTransformSchema,\n\tTextNodeSchema: () => TextNodeSchema,\n\tTextShadowSchema: () => TextShadowSchema,\n\tTextSpanMarkSchema: () => TextSpanMarkSchema,\n\tTextSpanSchema: () => TextSpanSchema,\n\tToneMappingSchema: () => ToneMappingSchema,\n\tTrackSourceSchema: () => TrackSourceSchema,\n\tapplyStaggerToChildren: () => applyStaggerToChildren,\n\tcalculateSequenceTimeline: () => calculateSequenceTimeline,\n\tcollectMediaBindings: () => collectMediaBindings,\n\tcollectNodeIds: () => collectNodeIds,\n\tcollectNodeOps: () => collectNodeOps,\n\tcompositorToProgram: () => compositorToProgram,\n\tcomputeCarrierContinuity: () => computeCarrierContinuity,\n\tcomputeLayout: () => computeLayout,\n\tcomputeLayoutSync: () => computeLayoutSync,\n\tcomputeStaggerDelay: () => computeStaggerDelay,\n\tcontainerChildren: () => containerChildren,\n\tevaluateAnimationAtFrame: () => evaluateAnimationAtFrame,\n\tevaluateKeyframes: () => evaluateKeyframes,\n\tevaluateSignal: () => evaluateSignal,\n\tevaluateSignalAccumulator: () => evaluateSignalAccumulator,\n\tevaluateSpringOvershoot: () => evaluateSpringOvershoot,\n\tevaluateTrackAtFrame: () => evaluateTrackAtFrame,\n\tevaluateWiggle: () => evaluateWiggle,\n\tflattenPath: () => flattenPath,\n\thoistMattes: () => hoistMattes,\n\tinitLayout: () => initLayout,\n\tlintComposition: () => lintComposition,\n\tmergeAnimationTracks: () => mergeAnimationTracks,\n\tmorphPath: () => morphPath,\n\tparseProgram: () => parseProgram,\n\trotateHue: () => rotateHue,\n\tvalidateLayoutProgram: () => validateLayoutProgram\n});\n\n//#endregion\nexport { AnimatablePropSchema, AnimationTrackSchema, BlockNodeSchema, BloomConfigSchema, BoxNodeSchema, CameraAnimation, CameraDoFSchema, CameraLensSchema, CameraNodeSchema, CameraShakeSchema, CarrierHandoffConfigSchema, ColorStopSchema, CompositorProgramSchema, EXTENDED_3D_ANIMATABLE_PROPS, EaseRefSchema, EffectSpecSchema, EnvironmentFogSchema, EnvironmentPresetSchema, FlexNodeSchema, KeyframeSchema, LayerAnimation, LayerAnimationSchema, LayoutNodeSchema, LightNodeSchema, LightTypeSchema, MaterialTypeSchema, MatteModeSchema, MediaNodeSchema, Model3DNodeSchema, Scene, SceneDefinitionSchema, SceneTransitionTypeSchema, Sequence, ShapeFields, ShapeNodeSchema, ShapeTypeSchema, SignalColorModeSchema, SignalModeSchema, SizeSpecSchema, TextAnimator, TextAnimatorSchema, TextAnimatorTransformSchema, TextNodeSchema, TextShadowSchema, TextSpanMarkSchema, TextSpanSchema, ToneMappingSchema, TrackSourceSchema, applyStaggerToChildren, calculateSequenceTimeline, collectMediaBindings, collectNodeIds, collectNodeOps, compositorToProgram, computeCarrierContinuity, computeLayout, computeLayoutSync, computeStaggerDelay, containerChildren, evaluateAnimationAtFrame, evaluateKeyframes, evaluateSignal, evaluateSignalAccumulator, evaluateSpringOvershoot, evaluateTrackAtFrame, evaluateWiggle, flattenPath, hoistMattes, initLayout, lintComposition, mergeAnimationTracks, morphPath, parseProgram, rotateHue, validateLayoutProgram };\n//# sourceMappingURL=index.mjs.map"],"mappings":"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SAAS,YAAY,OAAO;AAC3B,QAAO,MAAM,SAAS,MAAM,SAAS,EAAE,CAAC;;;;;;;;;;;;;;;;;;AAqBzC,MAAM,iBAAiB,EAAE,MAAM;CAC9B,EAAE,QAAQ,CAAC,IAAI,EAAE;CACjB,EAAE,KAAK;EACN;EACA;EACA;EACA,CAAC;CACF,EAAE,QAAQ;CACV,CAAC;AACF,MAAM,kBAAkB,EAAE,KAAK;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,mBAAmB,EAAE,MAAM;CAChC,EAAE,WAAW,OAAO;CACpB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa;CACjD,EAAE,QAAQ,QAAQ,QAAQ,OAAO,OAAO,QAAQ,YAAY,QAAQ,OAAO,OAAO,IAAI,OAAO,SAAS,CAAC;CACvG,CAAC;AACF,MAAM,uBAAuB,EAAE,KAAK;CACnC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,kBAAkB,EAAE,KAAK;CAC9B;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,qBAAqB,EAAE,KAAK;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AA0CF,MAAM,wBAAwB,EAAE,KAAK;CACpC;CACA;CACA;CACA,CAAC;AACF,MAAM,gBAAgB,EAAE,OAAO;CA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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { F as describeGpu, L as initHeadlessWebGPU, p as GpuAdapterDescription } from "../index-
|
|
2
|
-
import { _ as renderSemaphore, a as renderFrameGrid, c as HeadlessMediaRenderer, d as QaSegment, f as RenderProgress, g as formatQaReport, h as VideoQaStats, i as computeGridLayout, l as HeadlessWebGPURenderer, m as VideoQaReport, n as FrameGridRenderable, o as resolveSamplePoints, p as VideoQaOptions, r as FrameSamplePoint, s as AudioQaStats, t as FrameGridOptions, u as QaIssue, v as resetRenderCaches } from "../index-
|
|
1
|
+
import { F as describeGpu, L as initHeadlessWebGPU, p as GpuAdapterDescription } from "../index-DGe83M-p.mjs";
|
|
2
|
+
import { _ as renderSemaphore, a as renderFrameGrid, c as HeadlessMediaRenderer, d as QaSegment, f as RenderProgress, g as formatQaReport, h as VideoQaStats, i as computeGridLayout, l as HeadlessWebGPURenderer, m as VideoQaReport, n as FrameGridRenderable, o as resolveSamplePoints, p as VideoQaOptions, r as FrameSamplePoint, s as AudioQaStats, t as FrameGridOptions, u as QaIssue, v as resetRenderCaches } from "../index-DIvWBm-q.mjs";
|
|
3
3
|
export { AudioQaStats, FrameGridOptions, FrameGridRenderable, FrameSamplePoint, GpuAdapterDescription, HeadlessMediaRenderer, HeadlessWebGPURenderer, QaIssue, QaSegment, RenderProgress, VideoQaOptions, VideoQaReport, VideoQaStats, computeGridLayout, describeGpu, formatQaReport, initHeadlessWebGPU, renderFrameGrid, renderSemaphore, resetRenderCaches, resolveSamplePoints };
|
package/dist/renderer/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../chunk-GBe2k3y8.mjs";
|
|
2
|
-
import { I as initHeadlessWebGPU, x as describeGpu } from "../dist-
|
|
3
|
-
import { a as HeadlessMediaRenderer, c as renderSemaphore, i as resetRenderCaches, n as renderFrameGrid, o as HeadlessWebGPURenderer, r as resolveSamplePoints, s as formatQaReport, t as computeGridLayout } from "../renderer-
|
|
2
|
+
import { I as initHeadlessWebGPU, x as describeGpu } from "../dist-hmWTJPik.mjs";
|
|
3
|
+
import { a as HeadlessMediaRenderer, c as renderSemaphore, i as resetRenderCaches, n as renderFrameGrid, o as HeadlessWebGPURenderer, r as resolveSamplePoints, s as formatQaReport, t as computeGridLayout } from "../renderer-CLxQ4rU6.mjs";
|
|
4
4
|
|
|
5
5
|
export { HeadlessMediaRenderer, HeadlessWebGPURenderer, computeGridLayout, describeGpu, formatQaReport, initHeadlessWebGPU, renderFrameGrid, renderSemaphore, resetRenderCaches, resolveSamplePoints };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ht as isSignal, cn as resolveNumber } from "./dist-TrtLGPvc.mjs";
|
|
2
2
|
import { n as defineRenderer } from "./renderer-BSitV56h.mjs";
|
|
3
|
-
import { g as WebGPUAudioProcessor } from "./dist-
|
|
3
|
+
import { g as WebGPUAudioProcessor } from "./dist-hmWTJPik.mjs";
|
|
4
4
|
|
|
5
5
|
//#region ../../nodes/node-stereo-panning/dist/renderers-Dc15sLt-.mjs
|
|
6
6
|
const PARAM_ORDER = ["pan"];
|
|
@@ -96,4 +96,4 @@ var renderers_default = defineRenderer({ audioProcessor: stereoPanningAudioProce
|
|
|
96
96
|
|
|
97
97
|
//#endregion
|
|
98
98
|
export { renderers_default as t };
|
|
99
|
-
//# sourceMappingURL=renderer-
|
|
99
|
+
//# sourceMappingURL=renderer-1P3yS8YM.mjs.map
|