framefields 2.4.3 → 2.5.1
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 +26 -1
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +13 -13
- package/dist/{audio-DJeVoE8b.mjs → audio-BluXgSeG.mjs} +1 -1
- package/dist/{audio-DJeVoE8b.mjs.map → audio-BluXgSeG.mjs.map} +1 -1
- package/dist/{audio-BymXfAvH.d.mts → audio-C1A4N3Wh.d.mts} +3 -3
- package/dist/{audio-BymXfAvH.d.mts.map → audio-C1A4N3Wh.d.mts.map} +1 -1
- package/dist/{audio-BzHHpImj.mjs → audio-CZwVENqB.mjs} +4 -4
- package/dist/{audio-BzHHpImj.mjs.map → audio-CZwVENqB.mjs.map} +1 -1
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +221 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/components/index.d.mts +12 -0
- package/dist/components/index.mjs +49 -0
- package/dist/{dist-Bo2_zeCn.mjs → dist-CQZ5_60A.mjs} +2 -2
- package/dist/{dist-Bo2_zeCn.mjs.map → dist-CQZ5_60A.mjs.map} +1 -1
- package/dist/{dist-0QGroRYZ.mjs → dist-C_SMBmHr.mjs} +1 -1
- package/dist/{dist-0QGroRYZ.mjs.map → dist-C_SMBmHr.mjs.map} +1 -1
- package/dist/{dist-hmWTJPik.mjs → dist-DBWkkSvJ.mjs} +113 -68
- package/dist/dist-DBWkkSvJ.mjs.map +1 -0
- package/dist/{dist-TrtLGPvc.mjs → dist-DFeF-ygz.mjs} +1 -1
- package/dist/{dist-TrtLGPvc.mjs.map → dist-DFeF-ygz.mjs.map} +1 -1
- package/dist/{dist-DMa2BbYs.mjs → dist-DHQVWaV2.mjs} +53 -21
- package/dist/dist-DHQVWaV2.mjs.map +1 -0
- package/dist/effects/index.d.mts +4 -4
- package/dist/effects/index.mjs +36 -36
- package/dist/{effects-CiZjSwIh.mjs → effects-DZvq-nWT.mjs} +3 -3
- package/dist/{effects-CiZjSwIh.mjs.map → effects-DZvq-nWT.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +3 -3
- package/dist/{fonts-Da1JDKpc.mjs → fonts-DcsxFpyU.mjs} +3 -2
- package/dist/fonts-DcsxFpyU.mjs.map +1 -0
- package/dist/{gpu-CHIgM_YH.mjs → gpu-Dq_uI_00.mjs} +2 -2
- package/dist/{gpu-CHIgM_YH.mjs.map → gpu-Dq_uI_00.mjs.map} +1 -1
- package/dist/{index-DIvWBm-q.d.mts → index-B-KVpJMb.d.mts} +2 -2
- package/dist/{index-DIvWBm-q.d.mts.map → index-B-KVpJMb.d.mts.map} +1 -1
- package/dist/{index-WMofVN02.d.mts → index-BpdVOlsV.d.mts} +3 -3
- package/dist/{index-WMofVN02.d.mts.map → index-BpdVOlsV.d.mts.map} +1 -1
- package/dist/index-C2f4Hm-p.d.mts +89 -0
- package/dist/index-C2f4Hm-p.d.mts.map +1 -0
- package/dist/{index-B-55dXDu.d.mts → index-CalU-mpZ.d.mts} +1 -1
- package/dist/{index-B-55dXDu.d.mts.map → index-CalU-mpZ.d.mts.map} +1 -1
- package/dist/{index-CJkihekp.d.mts → index-D6-lH1Mx.d.mts} +189 -189
- package/dist/index-D6-lH1Mx.d.mts.map +1 -0
- package/dist/index-DKssQ_wn.d.mts +5968 -0
- package/dist/index-DKssQ_wn.d.mts.map +1 -0
- package/dist/{index-Dwf76Qep.d.mts → index-DNKM3to5.d.mts} +3 -3
- package/dist/{index-Dwf76Qep.d.mts.map → index-DNKM3to5.d.mts.map} +1 -1
- package/dist/{index-DGe83M-p.d.mts → index-fymoeGNW.d.mts} +6 -1
- package/dist/index-fymoeGNW.d.mts.map +1 -0
- package/dist/index.d.mts +13 -4659
- package/dist/index.mjs +59 -6654
- package/dist/preview/index.d.mts +4 -90
- package/dist/preview/index.mjs +12 -12
- package/dist/{preview-5E4B96RD.mjs → preview-CYI4i4m3.mjs} +5 -4
- package/dist/preview-CYI4i4m3.mjs.map +1 -0
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-TFFG5YFI.mjs → chunk-24H3QVYB.mjs} +1 -1
- package/dist/preview-engine/{chunk-7J4OK4VE.mjs → chunk-25T3M6MI.mjs} +1 -1
- package/dist/preview-engine/{chunk-O3NOB5IB.mjs → chunk-2QQQTZHS.mjs} +1 -1
- package/dist/preview-engine/{chunk-XTPEGKOZ.mjs → chunk-2RZ6S4SW.mjs} +1 -1
- package/dist/preview-engine/{chunk-37P2KIFE.mjs → chunk-3AYICEZ5.mjs} +1 -1
- package/dist/preview-engine/{chunk-JTUK7ZXK.mjs → chunk-3I6B3YPF.mjs} +1 -1
- package/dist/preview-engine/{chunk-LQBDZSQD.mjs → chunk-6GMEF2QB.mjs} +1 -1
- package/dist/preview-engine/{chunk-5CWQHYQP.mjs → chunk-7BUKVFWB.mjs} +1 -1
- package/dist/preview-engine/{chunk-AWX4YGC5.mjs → chunk-7JYMNGNK.mjs} +1 -1
- package/dist/preview-engine/chunk-AB5VITYM.mjs +1974 -0
- package/dist/preview-engine/{chunk-LSBCFJZM.mjs → chunk-BNO5JAEZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-6WKWYUOM.mjs → chunk-CE6CG5BH.mjs} +1 -1
- package/dist/preview-engine/{chunk-LQENNFBA.mjs → chunk-CT2WFPYG.mjs} +11 -11
- package/dist/preview-engine/{chunk-5JSSXOBB.mjs → chunk-DUEY7AXY.mjs} +1 -1
- package/dist/preview-engine/{chunk-UDDK5QZF.mjs → chunk-DWHQSNSJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-AY2ZIXST.mjs → chunk-ENS4KUJV.mjs} +1 -1
- package/dist/preview-engine/chunk-EU7CFSB5.mjs +1 -0
- package/dist/preview-engine/chunk-I6E3AKLS.mjs +1 -0
- package/dist/preview-engine/{chunk-7QE6II7R.mjs → chunk-JMOJKT5W.mjs} +1 -1
- package/dist/preview-engine/{chunk-NIRW77QA.mjs → chunk-KJGNTREI.mjs} +1 -1
- package/dist/preview-engine/{chunk-ILBZQLUF.mjs → chunk-KKBJ7X3T.mjs} +1 -1
- package/dist/preview-engine/{chunk-GQN35VLT.mjs → chunk-LNJYHSYX.mjs} +1 -1
- package/dist/preview-engine/{chunk-6TGNQ5FD.mjs → chunk-LQVACZDE.mjs} +1 -1
- package/dist/preview-engine/{chunk-YQYLBXOX.mjs → chunk-M6ZKK6ZU.mjs} +1 -1
- package/dist/preview-engine/{chunk-EEOUHDUD.mjs → chunk-MA4YVA2E.mjs} +1 -1
- package/dist/preview-engine/{chunk-JAJOZG5P.mjs → chunk-MBJXS3D7.mjs} +1 -1
- package/dist/preview-engine/{chunk-BIS3W4Z5.mjs → chunk-MCR7XMNQ.mjs} +1 -1
- package/dist/preview-engine/{chunk-C45ROXI6.mjs → chunk-NAISBHLR.mjs} +11 -11
- package/dist/preview-engine/{chunk-AKYUVDKM.mjs → chunk-NB55FW7D.mjs} +1 -1
- package/dist/preview-engine/{chunk-3SOD7OTO.mjs → chunk-NHQR76WL.mjs} +1 -1
- package/dist/preview-engine/{chunk-MJN3LOZ7.mjs → chunk-NKGXINCU.mjs} +1 -1
- package/dist/preview-engine/{chunk-FDNR4PRC.mjs → chunk-NXKXOSE6.mjs} +1 -1
- package/dist/preview-engine/{chunk-N3PRZLZJ.mjs → chunk-NYEDWUFS.mjs} +1 -1
- package/dist/preview-engine/{chunk-W3QGP5XF.mjs → chunk-P734GD7D.mjs} +1 -1
- package/dist/preview-engine/{chunk-YJ6GWVL4.mjs → chunk-PDM3TJ45.mjs} +1 -1
- package/dist/preview-engine/{chunk-KJ2DTA77.mjs → chunk-PXWCGXTF.mjs} +1 -1
- package/dist/preview-engine/{chunk-V6LCSK6Q.mjs → chunk-QCUGWPYP.mjs} +1 -1
- package/dist/preview-engine/{chunk-JJYNYYPA.mjs → chunk-QJYAIQYU.mjs} +1 -1
- package/dist/preview-engine/{chunk-VUFDQJ2B.mjs → chunk-QKQYHPBK.mjs} +1 -1
- package/dist/preview-engine/{chunk-NVTPJUNG.mjs → chunk-QVW5METG.mjs} +1 -1
- package/dist/preview-engine/{chunk-UMF7NNUA.mjs → chunk-QYIKOOFI.mjs} +1 -1
- package/dist/preview-engine/{chunk-FSAELHVT.mjs → chunk-RNFYEZLL.mjs} +1 -1
- package/dist/preview-engine/{chunk-CEIOI4HO.mjs → chunk-SIXIF5QZ.mjs} +1 -1
- package/dist/preview-engine/chunk-SNASF7OM.mjs +3 -0
- package/dist/preview-engine/{chunk-A2775RSO.mjs → chunk-T4VP45AP.mjs} +1 -1
- package/dist/preview-engine/{chunk-5EVEGKWT.mjs → chunk-TE2QAKKF.mjs} +1 -1
- package/dist/preview-engine/{chunk-6MBYREBG.mjs → chunk-UXCTWFKK.mjs} +1 -1
- package/dist/preview-engine/{chunk-V6DAD4S4.mjs → chunk-V3FODTPI.mjs} +2 -2
- package/dist/preview-engine/{chunk-JJA4G3OU.mjs → chunk-VH5V54RA.mjs} +1 -1
- package/dist/preview-engine/{chunk-GIH5QURF.mjs → chunk-VTE3IISK.mjs} +1 -1
- package/dist/preview-engine/chunk-W4HIVUUA.mjs +4 -0
- package/dist/preview-engine/{chunk-O5LA63CK.mjs → chunk-WUMVCQYI.mjs} +1 -1
- package/dist/preview-engine/{chunk-U4SQUTDV.mjs → chunk-X6BJLPW6.mjs} +1 -1
- package/dist/preview-engine/{chunk-54HE34HO.mjs → chunk-XJ4CQIZZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-6AEU4DC7.mjs → chunk-XUPZBI3Y.mjs} +6 -6
- package/dist/preview-engine/{chunk-LMZHCWXP.mjs → chunk-XYRBFLFF.mjs} +1 -1
- package/dist/preview-engine/{chunk-S7NG26UG.mjs → chunk-YJ24W73B.mjs} +1 -1
- package/dist/preview-engine/{chunk-5SVJIGPK.mjs → chunk-Z4TKEI3I.mjs} +1 -1
- package/dist/preview-engine/{chunk-UVWGZUKZ.mjs → chunk-ZAIVXGSS.mjs} +1 -1
- package/dist/preview-engine/{chunk-OZDZQMTB.mjs → chunk-ZVUTFXDR.mjs} +1 -1
- package/dist/preview-engine/components.mjs +1 -0
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1971
- package/dist/preview-engine/player.mjs +5 -5
- package/dist/preview-engine/renderers-2S5ZWL2J.mjs +1 -0
- package/dist/preview-engine/renderers-37CN7O4S.mjs +1 -0
- package/dist/preview-engine/renderers-3UGG2IMP.mjs +1 -0
- package/dist/preview-engine/{renderers-2A7YDJMJ.mjs → renderers-4RFB2LG2.mjs} +1 -1
- package/dist/preview-engine/renderers-6NFRKHNO.mjs +1 -0
- package/dist/preview-engine/{renderers-QJNGN722.mjs → renderers-6PVGRTXV.mjs} +1 -1
- package/dist/preview-engine/renderers-7MPBAHYA.mjs +1 -0
- package/dist/preview-engine/renderers-AFTYMS3H.mjs +1 -0
- package/dist/preview-engine/renderers-AKZAAGR7.mjs +1 -0
- package/dist/preview-engine/renderers-AYEWAW7F.mjs +1 -0
- package/dist/preview-engine/{renderers-5OGAF66H.mjs → renderers-BNXTSIXJ.mjs} +1 -1
- package/dist/preview-engine/{renderers-XPO2WQNF.mjs → renderers-BQLYS4TM.mjs} +1 -1
- package/dist/preview-engine/renderers-C7SJ3M6S.mjs +1 -0
- package/dist/preview-engine/{renderers-VD5GHHK6.mjs → renderers-CEJP6Q7F.mjs} +1 -1
- package/dist/preview-engine/{renderers-KW75FYFG.mjs → renderers-CLLR5MOQ.mjs} +1 -1
- package/dist/preview-engine/{renderers-PM4Q5QOW.mjs → renderers-DHKB5LI6.mjs} +1 -1
- package/dist/preview-engine/renderers-DUF2CTX6.mjs +1 -0
- package/dist/preview-engine/{renderers-XTRFEQO4.mjs → renderers-DZZFIYYA.mjs} +1 -1
- package/dist/preview-engine/renderers-EIJFIY6L.mjs +1 -0
- package/dist/preview-engine/renderers-EOMMSENQ.mjs +1 -0
- package/dist/preview-engine/{renderers-NJAKGI25.mjs → renderers-FOHW7RWH.mjs} +1 -1
- package/dist/preview-engine/{renderers-K23EAM2J.mjs → renderers-GF77N2KM.mjs} +1 -1
- package/dist/preview-engine/renderers-H3ZM2TOA.mjs +1 -0
- package/dist/preview-engine/{renderers-NPKRNXAT.mjs → renderers-HJ6NO5ZD.mjs} +1 -1
- package/dist/preview-engine/renderers-JXBZPQKP.mjs +1 -0
- package/dist/preview-engine/renderers-KSQM7EM5.mjs +1 -0
- package/dist/preview-engine/{renderers-WNMRLGZS.mjs → renderers-KV3TTCO6.mjs} +1 -1
- package/dist/preview-engine/{renderers-U2ZWRL25.mjs → renderers-L7EITUCD.mjs} +1 -1
- package/dist/preview-engine/renderers-LD3COS4X.mjs +1 -0
- package/dist/preview-engine/renderers-MCTBJEL7.mjs +1 -0
- package/dist/preview-engine/renderers-MKEXNBCW.mjs +1 -0
- package/dist/preview-engine/{renderers-ZRR7BLB7.mjs → renderers-MPCYLXXU.mjs} +1 -1
- package/dist/preview-engine/{renderers-DKOWLKDE.mjs → renderers-MS4HG3M4.mjs} +1 -1
- package/dist/preview-engine/{renderers-MHDLRY3S.mjs → renderers-N7T34SCI.mjs} +1 -1
- package/dist/preview-engine/{renderers-2GE5HE56.mjs → renderers-O56IOD7J.mjs} +1 -1
- package/dist/preview-engine/renderers-OZGEXW2X.mjs +1 -0
- package/dist/preview-engine/renderers-PSEDMUBV.mjs +1 -0
- package/dist/preview-engine/renderers-PVUROEGR.mjs +1 -0
- package/dist/preview-engine/renderers-QBVVTQV6.mjs +1 -0
- package/dist/preview-engine/{renderers-7M3YOI7E.mjs → renderers-QO2RHF7F.mjs} +1 -1
- package/dist/preview-engine/renderers-QPFZBLDI.mjs +1 -0
- package/dist/preview-engine/renderers-R4U2TK6P.mjs +1 -0
- package/dist/preview-engine/renderers-RBLNDAO4.mjs +1 -0
- package/dist/preview-engine/renderers-RM25AXWZ.mjs +1 -0
- package/dist/preview-engine/{renderers-DFJDEPCU.mjs → renderers-ROSSJ7Y2.mjs} +1 -1
- package/dist/preview-engine/{renderers-4H34AFW2.mjs → renderers-RRJ2DX2W.mjs} +1 -1
- package/dist/preview-engine/renderers-RYRFCEYT.mjs +1 -0
- package/dist/preview-engine/renderers-SIBP54WK.mjs +1 -0
- package/dist/preview-engine/renderers-SRU6QXLN.mjs +1 -0
- package/dist/preview-engine/{renderers-TFEDHXPY.mjs → renderers-T62TXGVO.mjs} +1 -1
- package/dist/preview-engine/{renderers-6GYRMHGQ.mjs → renderers-TAMDNTEQ.mjs} +1 -1
- package/dist/preview-engine/{renderers-LF6W5P2I.mjs → renderers-TASYN62K.mjs} +1 -1
- package/dist/preview-engine/renderers-TBP2EKJ4.mjs +1 -0
- package/dist/preview-engine/{renderers-FNPXT2EH.mjs → renderers-TWZHTKW7.mjs} +1 -1
- package/dist/preview-engine/renderers-UQHKFGDX.mjs +1 -0
- package/dist/preview-engine/{renderers-35G4KCQ2.mjs → renderers-UVABXXQF.mjs} +1 -1
- package/dist/preview-engine/{renderers-XTCBHTHC.mjs → renderers-VYK2BJID.mjs} +1 -1
- package/dist/preview-engine/{renderers-Q6AO5M54.mjs → renderers-W5CTR4B5.mjs} +1 -1
- package/dist/preview-engine/renderers-WDV7ENJA.mjs +1 -0
- package/dist/preview-engine/renderers-WNBDSSJ3.mjs +1 -0
- package/dist/preview-engine/{renderers-ATL5ARUV.mjs → renderers-WPBTAU2E.mjs} +1 -1
- package/dist/preview-engine/renderers-WTC2RNGU.mjs +1 -0
- package/dist/preview-engine/renderers-XLBHSQZJ.mjs +228 -0
- package/dist/preview-engine/{renderers-WOLTH5VI.mjs → renderers-XSPU2BIQ.mjs} +1 -1
- package/dist/preview-engine/renderers-XVUOO7B6.mjs +1 -0
- package/dist/preview-engine/renderers-YHOQUEHD.mjs +1 -0
- package/dist/preview-engine/renderers-YPFM5UJO.mjs +1 -0
- package/dist/preview-engine/renderers-YW3LBALW.mjs +1 -0
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-KwDdbC0-.mjs → program-BdPDtfVv.mjs} +133 -30
- package/dist/program-BdPDtfVv.mjs.map +1 -0
- package/dist/registry/annotate.json +30 -0
- package/dist/registry/app-frame.json +38 -0
- package/dist/registry/backdrop.json +37 -0
- package/dist/registry/before-after.json +33 -0
- package/dist/registry/callout.json +30 -0
- package/dist/registry/captions.json +37 -0
- package/dist/registry/card-stack.json +30 -0
- package/dist/registry/chat-thread.json +32 -0
- package/dist/registry/code-block.json +45 -0
- package/dist/registry/confetti.json +29 -0
- package/dist/registry/counter.json +36 -0
- package/dist/registry/device-frame.json +36 -0
- package/dist/registry/focus-zoom.json +32 -0
- package/dist/registry/index.json +408 -0
- package/dist/registry/logo-reveal.json +37 -0
- package/dist/registry/lower-third.json +34 -0
- package/dist/registry/meter.json +35 -0
- package/dist/registry/mouse-pointer.json +44 -0
- package/dist/registry/selection.json +31 -0
- package/dist/registry/spotlight.json +28 -0
- package/dist/registry/terminal.json +40 -0
- package/dist/registry/text-reveal.json +39 -0
- package/dist/registry/title-card.json +34 -0
- package/dist/registry/toasts.json +28 -0
- package/dist/registry/touch-point.json +33 -0
- package/dist/registry/waveform.json +29 -0
- package/dist/registry/word-cycle.json +32 -0
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +3 -3
- package/dist/{renderer-Bhfl-WFX.mjs → renderer-0cHsK6xR.mjs} +5 -5
- package/dist/{renderer-Bhfl-WFX.mjs.map → renderer-0cHsK6xR.mjs.map} +1 -1
- package/dist/{renderer-D4No_jA4.mjs → renderer-1VKN5j2C.mjs} +4 -4
- package/dist/{renderer-D4No_jA4.mjs.map → renderer-1VKN5j2C.mjs.map} +1 -1
- package/dist/{renderer-qYhNf6iB.mjs → renderer-2bipMLqz.mjs} +3 -3
- package/dist/{renderer-qYhNf6iB.mjs.map → renderer-2bipMLqz.mjs.map} +1 -1
- package/dist/{renderer-DK9etIAz.mjs → renderer-7DyjqxEj.mjs} +5 -5
- package/dist/{renderer-DK9etIAz.mjs.map → renderer-7DyjqxEj.mjs.map} +1 -1
- package/dist/renderer-B-D_VZg3.mjs +5 -0
- package/dist/{renderer-Ci6YMa4u.mjs → renderer-B31zMDE8.mjs} +5 -5
- package/dist/{renderer-Ci6YMa4u.mjs.map → renderer-B31zMDE8.mjs.map} +1 -1
- package/dist/{renderer-DP_In2uT.mjs → renderer-B4blg067.mjs} +4 -4
- package/dist/{renderer-DP_In2uT.mjs.map → renderer-B4blg067.mjs.map} +1 -1
- package/dist/{renderer-kNjMhwiZ.mjs → renderer-B5YYBBDq.mjs} +3 -3
- package/dist/{renderer-kNjMhwiZ.mjs.map → renderer-B5YYBBDq.mjs.map} +1 -1
- package/dist/renderer-B64dhpDX.mjs +5 -0
- package/dist/{renderer-mqUBkx-a.mjs → renderer-B8LXXvHi.mjs} +4 -4
- package/dist/{renderer-mqUBkx-a.mjs.map → renderer-B8LXXvHi.mjs.map} +1 -1
- package/dist/renderer-BA2Ko4H1.mjs +3 -0
- package/dist/{renderer-B4ydDdo6.mjs → renderer-BAkPq8qo.mjs} +3 -3
- package/dist/{renderer-B4ydDdo6.mjs.map → renderer-BAkPq8qo.mjs.map} +1 -1
- package/dist/{renderer-OEpwc9Zk.mjs → renderer-BBTdHKH7.mjs} +5 -5
- package/dist/{renderer-OEpwc9Zk.mjs.map → renderer-BBTdHKH7.mjs.map} +1 -1
- package/dist/{renderer-DGT141pN.mjs → renderer-BBTkfhL8.mjs} +5 -5
- package/dist/{renderer-DGT141pN.mjs.map → renderer-BBTkfhL8.mjs.map} +1 -1
- package/dist/renderer-BDL4jyrb.mjs +5 -0
- package/dist/{renderer-BtWWpFvl.mjs → renderer-BGNdwdCR.mjs} +4 -4
- package/dist/{renderer-BtWWpFvl.mjs.map → renderer-BGNdwdCR.mjs.map} +1 -1
- package/dist/{renderer-DXSIstnn.mjs → renderer-BJwOM1Dq.mjs} +4 -4
- package/dist/{renderer-DXSIstnn.mjs.map → renderer-BJwOM1Dq.mjs.map} +1 -1
- package/dist/renderer-BKCZGKkl.mjs +5 -0
- package/dist/renderer-BKs3jI7-.mjs +5 -0
- package/dist/{renderer-C5WkQZGR.mjs → renderer-BN_n6O6P.mjs} +5 -5
- package/dist/{renderer-C5WkQZGR.mjs.map → renderer-BN_n6O6P.mjs.map} +1 -1
- package/dist/renderer-BW74Zf-u.mjs +5 -0
- package/dist/{renderer-C1U85w9f.mjs → renderer-BWa3CLK7.mjs} +3 -3
- package/dist/{renderer-C1U85w9f.mjs.map → renderer-BWa3CLK7.mjs.map} +1 -1
- package/dist/{renderer-plx7_lUQ.mjs → renderer-BWnFh7NO.mjs} +5 -5
- package/dist/{renderer-plx7_lUQ.mjs.map → renderer-BWnFh7NO.mjs.map} +1 -1
- package/dist/renderer-BXuQN61O.mjs +5 -0
- package/dist/renderer-BY1pPvzx.mjs +6 -0
- package/dist/{renderer-CwO8T8l8.mjs → renderer-BYJS2lhn.mjs} +4 -4
- package/dist/{renderer-CwO8T8l8.mjs.map → renderer-BYJS2lhn.mjs.map} +1 -1
- package/dist/renderer-Bahthqvq.mjs +5 -0
- package/dist/renderer-BbaiQG8h.mjs +5 -0
- package/dist/{renderer-gm0zoV4t.mjs → renderer-BfrzKmRh.mjs} +3 -3
- package/dist/{renderer-gm0zoV4t.mjs.map → renderer-BfrzKmRh.mjs.map} +1 -1
- package/dist/renderer-BhHF-08y.mjs +5 -0
- package/dist/{renderer-DQeUc1yY.mjs → renderer-BhhweLr_.mjs} +4 -4
- package/dist/{renderer-DQeUc1yY.mjs.map → renderer-BhhweLr_.mjs.map} +1 -1
- package/dist/{renderer-OsA-Lg4d.mjs → renderer-Bmj7AyJP.mjs} +3 -3
- package/dist/{renderer-OsA-Lg4d.mjs.map → renderer-Bmj7AyJP.mjs.map} +1 -1
- package/dist/{renderer-DZhIe8Gj.mjs → renderer-BmoQJUJO.mjs} +4 -4
- package/dist/{renderer-DZhIe8Gj.mjs.map → renderer-BmoQJUJO.mjs.map} +1 -1
- package/dist/renderer-BnrMcw6C.mjs +5 -0
- package/dist/{renderer-Blm4Dv_h.mjs → renderer-Bo1PY0zW.mjs} +3 -3
- package/dist/{renderer-DcOT5c0t.mjs → renderer-Bo_d7h86.mjs} +4 -4
- package/dist/{renderer-DcOT5c0t.mjs.map → renderer-Bo_d7h86.mjs.map} +1 -1
- package/dist/renderer-BsS61z5l.mjs +5 -0
- package/dist/renderer-Btuq2Eq8.mjs +5 -0
- package/dist/renderer-BvcqncI2.mjs +3 -0
- package/dist/{renderer-C4xvz_Ft.mjs → renderer-Bw5YP2Db.mjs} +4 -4
- package/dist/{renderer-C4xvz_Ft.mjs.map → renderer-Bw5YP2Db.mjs.map} +1 -1
- package/dist/renderer-BxmsEl2x.mjs +5 -0
- package/dist/{renderer-BSitV56h.mjs → renderer-C9r0-KY4.mjs} +10 -1
- package/dist/{renderer-BSitV56h.mjs.map → renderer-C9r0-KY4.mjs.map} +1 -1
- package/dist/{renderer-B4jxP8vF.mjs → renderer-CDX2f82b.mjs} +5 -5
- package/dist/{renderer-B4jxP8vF.mjs.map → renderer-CDX2f82b.mjs.map} +1 -1
- package/dist/renderer-CGOyHdKs.mjs +5 -0
- package/dist/renderer-CJjmpmpu.mjs +5 -0
- package/dist/{renderer-P4OPsD82.mjs → renderer-CJoa4H2G.mjs} +3 -3
- package/dist/{renderer-P4OPsD82.mjs.map → renderer-CJoa4H2G.mjs.map} +1 -1
- package/dist/{renderer-1P3yS8YM.mjs → renderer-CLO8QHWE.mjs} +4 -4
- package/dist/{renderer-1P3yS8YM.mjs.map → renderer-CLO8QHWE.mjs.map} +1 -1
- package/dist/{renderer-CjQAYeYz.mjs → renderer-CMEqUhrW.mjs} +5 -5
- package/dist/{renderer-CjQAYeYz.mjs.map → renderer-CMEqUhrW.mjs.map} +1 -1
- package/dist/{renderer-CzgDJcot.mjs → renderer-CNs1vBUy.mjs} +4 -4
- package/dist/{renderer-CzgDJcot.mjs.map → renderer-CNs1vBUy.mjs.map} +1 -1
- package/dist/{index-B0BZMhtw.d.mts → renderer-COXKPofU.d.mts} +13 -13
- package/dist/renderer-COXKPofU.d.mts.map +1 -0
- package/dist/{renderer-CrwYWVsV.mjs → renderer-COtZ315B.mjs} +3 -3
- package/dist/renderer-CQvDDAIu.mjs +5 -0
- package/dist/{renderer-DOvzHN60.mjs → renderer-CWSM0IGG.mjs} +4 -4
- package/dist/{renderer-DOvzHN60.mjs.map → renderer-CWSM0IGG.mjs.map} +1 -1
- package/dist/{renderer-DVFFVy9v.mjs → renderer-CXbXF7Dh.mjs} +5 -5
- package/dist/{renderer-DVFFVy9v.mjs.map → renderer-CXbXF7Dh.mjs.map} +1 -1
- package/dist/renderer-CYxigw7S.mjs +5 -0
- package/dist/{renderer-DOxmmN6Q.mjs → renderer-CdUf7ZDJ.mjs} +5 -5
- package/dist/{renderer-DOxmmN6Q.mjs.map → renderer-CdUf7ZDJ.mjs.map} +1 -1
- package/dist/renderer-CgDofO5z.mjs +5 -0
- package/dist/renderer-CgmQchab.mjs +5 -0
- package/dist/{renderer-CS8VMTp1.mjs → renderer-Ch7qwjH9.mjs} +5 -5
- package/dist/{renderer-CS8VMTp1.mjs.map → renderer-Ch7qwjH9.mjs.map} +1 -1
- package/dist/{renderer-PuN2_AL_.mjs → renderer-ChCUad83.mjs} +5 -5
- package/dist/{renderer-PuN2_AL_.mjs.map → renderer-ChCUad83.mjs.map} +1 -1
- package/dist/{renderer-BaJQx0Bp.mjs → renderer-ChjkppUz.mjs} +5 -5
- package/dist/{renderer-BaJQx0Bp.mjs.map → renderer-ChjkppUz.mjs.map} +1 -1
- package/dist/{renderer-CTYKUnDq.mjs → renderer-Cj1giMd0.mjs} +3 -3
- package/dist/{renderer-CTYKUnDq.mjs.map → renderer-Cj1giMd0.mjs.map} +1 -1
- package/dist/{renderer-DWG4Podv.mjs → renderer-Cjs1OeBu.mjs} +6 -6
- package/dist/{renderer-DWG4Podv.mjs.map → renderer-Cjs1OeBu.mjs.map} +1 -1
- package/dist/renderer-CjzrLwW_.mjs +5 -0
- package/dist/renderer-ClnYWADT.mjs +5 -0
- package/dist/{renderer-B9ssmkbx.mjs → renderer-CmKdr2nA.mjs} +5 -5
- package/dist/{renderer-B9ssmkbx.mjs.map → renderer-CmKdr2nA.mjs.map} +1 -1
- package/dist/renderer-CwAd71C6.mjs +5 -0
- package/dist/{renderer-BT0x6KPK.mjs → renderer-D0X7Eh-T.mjs} +4 -4
- package/dist/{renderer-BT0x6KPK.mjs.map → renderer-D0X7Eh-T.mjs.map} +1 -1
- package/dist/{renderer-DYbgd6Ye.mjs → renderer-D2ru2Afi.mjs} +4 -4
- package/dist/{renderer-DYbgd6Ye.mjs.map → renderer-D2ru2Afi.mjs.map} +1 -1
- package/dist/renderer-D3Z9t-xT.mjs +5 -0
- package/dist/{renderer-CLxQ4rU6.mjs → renderer-D5u3GVtD.mjs} +74 -74
- package/dist/{renderer-CLxQ4rU6.mjs.map → renderer-D5u3GVtD.mjs.map} +1 -1
- package/dist/{renderer-DCsTCvdo.mjs → renderer-D6p8b6ql.mjs} +4 -4
- package/dist/{renderer-DCsTCvdo.mjs.map → renderer-D6p8b6ql.mjs.map} +1 -1
- package/dist/{renderer-Bkq1PT0g.mjs → renderer-DBjV6C2u.mjs} +3 -3
- package/dist/{renderer-BAoKytKL.mjs → renderer-DHqicGgT.mjs} +4 -4
- package/dist/{renderer-BAoKytKL.mjs.map → renderer-DHqicGgT.mjs.map} +1 -1
- package/dist/{renderer-B_b8-ztW.mjs → renderer-DK34NH92.mjs} +5 -5
- package/dist/{renderer-B_b8-ztW.mjs.map → renderer-DK34NH92.mjs.map} +1 -1
- package/dist/renderer-DKH1oSlW.mjs +5 -0
- package/dist/{renderer-I3Wxk1tL.mjs → renderer-DP41Fokp.mjs} +4 -4
- package/dist/{renderer-I3Wxk1tL.mjs.map → renderer-DP41Fokp.mjs.map} +1 -1
- package/dist/{renderer-CPLfsRe1.mjs → renderer-DQuKNgIx.mjs} +6 -6
- package/dist/{renderer-CPLfsRe1.mjs.map → renderer-DQuKNgIx.mjs.map} +1 -1
- package/dist/renderer-DTkf_hwG.mjs +5 -0
- package/dist/renderer-DU0bmOS7.mjs +5 -0
- package/dist/{renderer-GapR_An3.mjs → renderer-DWaqF7-6.mjs} +4 -4
- package/dist/{renderer-GapR_An3.mjs.map → renderer-DWaqF7-6.mjs.map} +1 -1
- package/dist/renderer-D_vJHQt5.mjs +5 -0
- package/dist/{renderer-GbVNyv-E.mjs → renderer-Db_wphHH.mjs} +192 -27
- package/dist/renderer-Db_wphHH.mjs.map +1 -0
- package/dist/renderer-Dc5n0M6P.mjs +5 -0
- package/dist/renderer-Ddfn0Dha.mjs +5 -0
- package/dist/renderer-DeSoNQeG.mjs +5 -0
- package/dist/{renderer-C0ds-UfM.mjs → renderer-DkPDYtD3.mjs} +5 -5
- package/dist/{renderer-C0ds-UfM.mjs.map → renderer-DkPDYtD3.mjs.map} +1 -1
- package/dist/{renderer-BCLmYH4S.mjs → renderer-DqO9gBAi.mjs} +4 -4
- package/dist/{renderer-BCLmYH4S.mjs.map → renderer-DqO9gBAi.mjs.map} +1 -1
- package/dist/{renderer-BUwHWIf7.mjs → renderer-DuQMzR3v.mjs} +4 -4
- package/dist/{renderer-BUwHWIf7.mjs.map → renderer-DuQMzR3v.mjs.map} +1 -1
- package/dist/{renderer-DBtt-7wt.d.mts → renderer-Dx28wTi1.d.mts} +2 -2
- package/dist/{renderer-DBtt-7wt.d.mts.map → renderer-Dx28wTi1.d.mts.map} +1 -1
- package/dist/{renderer-f7A01ArI.mjs → renderer-DyMEAZIm.mjs} +5 -5
- package/dist/{renderer-f7A01ArI.mjs.map → renderer-DyMEAZIm.mjs.map} +1 -1
- package/dist/renderer-Dzca9Qba.mjs +5 -0
- package/dist/{renderer-DBKyuPl1.mjs → renderer-FCqOfN6n.mjs} +5 -5
- package/dist/{renderer-DBKyuPl1.mjs.map → renderer-FCqOfN6n.mjs.map} +1 -1
- package/dist/{renderer-D96Pu8yX.mjs → renderer-Fsdod0yZ.mjs} +5 -5
- package/dist/{renderer-D96Pu8yX.mjs.map → renderer-Fsdod0yZ.mjs.map} +1 -1
- package/dist/{renderer-Du8eOWWU.mjs → renderer-G3px5ODP.mjs} +4 -4
- package/dist/{renderer-Du8eOWWU.mjs.map → renderer-G3px5ODP.mjs.map} +1 -1
- package/dist/renderer-HRVvtc9c.mjs +5 -0
- package/dist/{renderer-CUPWHfEY.mjs → renderer-IMg0dK6K.mjs} +5 -5
- package/dist/{renderer-CUPWHfEY.mjs.map → renderer-IMg0dK6K.mjs.map} +1 -1
- package/dist/renderer-M3Qs4f1K.mjs +5 -0
- package/dist/renderer-NDHJt_Ae.mjs +5 -0
- package/dist/{renderer-y6k54AM6.mjs → renderer-PLoGrFGz.mjs} +4 -4
- package/dist/{renderer-y6k54AM6.mjs.map → renderer-PLoGrFGz.mjs.map} +1 -1
- package/dist/{renderer-DO5r7ZV-.mjs → renderer-PNIgmWft.mjs} +2 -2
- package/dist/{renderer-DO5r7ZV-.mjs.map → renderer-PNIgmWft.mjs.map} +1 -1
- package/dist/{renderer-CDky5Gva.mjs → renderer-VdTs-dqH.mjs} +4 -4
- package/dist/{renderer-CDky5Gva.mjs.map → renderer-VdTs-dqH.mjs.map} +1 -1
- package/dist/{renderer-QaN-aejD.mjs → renderer-VxVi_0c7.mjs} +3 -3
- package/dist/{renderer-QaN-aejD.mjs.map → renderer-VxVi_0c7.mjs.map} +1 -1
- package/dist/{renderer-BMLJgnbU.mjs → renderer-WVrUeiLZ.mjs} +3 -3
- package/dist/{renderer-BHLYKy8b.mjs → renderer-Z39F9QK5.mjs} +5 -5
- package/dist/{renderer-BHLYKy8b.mjs.map → renderer-Z39F9QK5.mjs.map} +1 -1
- package/dist/{renderer-DSbRWfgl.mjs → renderer-ZjSP5jw6.mjs} +3 -3
- package/dist/{renderer-DSbRWfgl.mjs.map → renderer-ZjSP5jw6.mjs.map} +1 -1
- package/dist/{renderer-CE83KHgr.mjs → renderer-fH9SCJC2.mjs} +3 -3
- package/dist/{renderer-CE83KHgr.mjs.map → renderer-fH9SCJC2.mjs.map} +1 -1
- package/dist/{renderer-Cy4a31rZ.mjs → renderer-gjT5v76-.mjs} +3 -3
- package/dist/{renderer-Cy4a31rZ.mjs.map → renderer-gjT5v76-.mjs.map} +1 -1
- package/dist/{renderer-C-z6bxj9.mjs → renderer-kP5Y282J.mjs} +5 -5
- package/dist/{renderer-C-z6bxj9.mjs.map → renderer-kP5Y282J.mjs.map} +1 -1
- package/dist/{renderer-BI8QhEj9.mjs → renderer-kkDfQ56G.mjs} +5 -5
- package/dist/{renderer-BI8QhEj9.mjs.map → renderer-kkDfQ56G.mjs.map} +1 -1
- package/dist/{renderer-DHUlVqST.mjs → renderer-l_U6kA8K.mjs} +3 -3
- package/dist/{renderer-DHUlVqST.mjs.map → renderer-l_U6kA8K.mjs.map} +1 -1
- package/dist/{renderer-BajIOuZH.mjs → renderer-nLPfvY3-.mjs} +2 -2
- package/dist/{renderer-BajIOuZH.mjs.map → renderer-nLPfvY3-.mjs.map} +1 -1
- package/dist/{renderer-C4vHq0X8.mjs → renderer-o_JK4YfO.mjs} +5 -5
- package/dist/{renderer-C4vHq0X8.mjs.map → renderer-o_JK4YfO.mjs.map} +1 -1
- package/dist/{renderer-CAi-lhR2.mjs → renderer-vwoyR8pW.mjs} +4 -4
- package/dist/{renderer-CAi-lhR2.mjs.map → renderer-vwoyR8pW.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-D1FHpA7I.mjs → renderers-CP8CFWDs-DiX2Y4Qp.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-D1FHpA7I.mjs.map → renderers-CP8CFWDs-DiX2Y4Qp.mjs.map} +1 -1
- package/dist/signals/index.d.mts +6 -6
- package/dist/signals/index.mjs +8 -8
- package/dist/{signals-BwdVfK3p.mjs → signals-Cf9mfNGE.mjs} +4 -4
- package/dist/{signals-BwdVfK3p.mjs.map → signals-Cf9mfNGE.mjs.map} +1 -1
- package/dist/src-Ds9IAk5S.mjs +8373 -0
- package/dist/src-Ds9IAk5S.mjs.map +1 -0
- package/package.json +68 -58
- package/dist/dist-DMa2BbYs.mjs.map +0 -1
- package/dist/dist-hmWTJPik.mjs.map +0 -1
- package/dist/fonts-Da1JDKpc.mjs.map +0 -1
- package/dist/index-B0BZMhtw.d.mts.map +0 -1
- package/dist/index-CJkihekp.d.mts.map +0 -1
- package/dist/index-DGe83M-p.d.mts.map +0 -1
- package/dist/index.d.mts.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/preview/index.d.mts.map +0 -1
- package/dist/preview-5E4B96RD.mjs.map +0 -1
- package/dist/preview-engine/chunk-3T4LB4ZH.mjs +0 -3
- package/dist/preview-engine/chunk-E7DH7EPX.mjs +0 -1
- package/dist/preview-engine/chunk-PCWWKYFO.mjs +0 -1
- package/dist/preview-engine/chunk-RQLMW6MA.mjs +0 -4
- package/dist/preview-engine/chunk-XN56POGE.mjs +0 -1
- package/dist/preview-engine/renderers-2AD6AHAO.mjs +0 -1
- package/dist/preview-engine/renderers-37UYW266.mjs +0 -1
- package/dist/preview-engine/renderers-3YHETAPE.mjs +0 -1
- package/dist/preview-engine/renderers-43LBWRY2.mjs +0 -1
- package/dist/preview-engine/renderers-4I4UDLDR.mjs +0 -1
- package/dist/preview-engine/renderers-5EITT2FW.mjs +0 -1
- package/dist/preview-engine/renderers-7UKFQ75V.mjs +0 -1
- package/dist/preview-engine/renderers-AIRDDXRB.mjs +0 -1
- package/dist/preview-engine/renderers-BUOGMWAA.mjs +0 -1
- package/dist/preview-engine/renderers-C4XIAG3F.mjs +0 -1
- package/dist/preview-engine/renderers-ELARGDRC.mjs +0 -1
- package/dist/preview-engine/renderers-EU5VM2S2.mjs +0 -1
- package/dist/preview-engine/renderers-GEPP3YKK.mjs +0 -1
- package/dist/preview-engine/renderers-IQNZQWYU.mjs +0 -1
- package/dist/preview-engine/renderers-J6DEIWTU.mjs +0 -1
- package/dist/preview-engine/renderers-JQ7AI473.mjs +0 -228
- package/dist/preview-engine/renderers-JTVCE5PV.mjs +0 -1
- package/dist/preview-engine/renderers-KCNUETAD.mjs +0 -1
- package/dist/preview-engine/renderers-KKBHXAWS.mjs +0 -1
- package/dist/preview-engine/renderers-LER7SUT2.mjs +0 -1
- package/dist/preview-engine/renderers-MOERLDWF.mjs +0 -1
- package/dist/preview-engine/renderers-O57YIIAO.mjs +0 -1
- package/dist/preview-engine/renderers-OPUIAD7I.mjs +0 -1
- package/dist/preview-engine/renderers-PENUAXDD.mjs +0 -1
- package/dist/preview-engine/renderers-PFCI7ZFW.mjs +0 -1
- package/dist/preview-engine/renderers-Q4HDP2IE.mjs +0 -1
- package/dist/preview-engine/renderers-QMHUOKMM.mjs +0 -1
- package/dist/preview-engine/renderers-R26YPECG.mjs +0 -1
- package/dist/preview-engine/renderers-TAFDMFEA.mjs +0 -1
- package/dist/preview-engine/renderers-TMZLWQP2.mjs +0 -1
- package/dist/preview-engine/renderers-TP6ZMGU4.mjs +0 -1
- package/dist/preview-engine/renderers-TY63VTZB.mjs +0 -1
- package/dist/preview-engine/renderers-UBO4ZNE6.mjs +0 -1
- package/dist/preview-engine/renderers-UCNQ536S.mjs +0 -1
- package/dist/preview-engine/renderers-WOZQDE4A.mjs +0 -1
- package/dist/preview-engine/renderers-X2XGDF3R.mjs +0 -1
- package/dist/preview-engine/renderers-XG3BDROH.mjs +0 -1
- package/dist/preview-engine/renderers-XS4CFZWR.mjs +0 -1
- package/dist/preview-engine/renderers-ZQDMRWN7.mjs +0 -1
- package/dist/program-KwDdbC0-.mjs.map +0 -1
- package/dist/renderer-5C41E6gT.mjs +0 -5
- package/dist/renderer-6SXF9Ykm.mjs +0 -5
- package/dist/renderer-B2C2w3Wr.mjs +0 -5
- package/dist/renderer-B2QSfPYZ.mjs +0 -5
- package/dist/renderer-B5cQcMl1.mjs +0 -5
- package/dist/renderer-BDhD8Yab.mjs +0 -3
- package/dist/renderer-BSDdTHDh.mjs +0 -5
- package/dist/renderer-BTUjk8uY.mjs +0 -5
- package/dist/renderer-Bcey5Gvk.mjs +0 -5
- package/dist/renderer-Bd2MuOeJ.mjs +0 -5
- package/dist/renderer-Bd5A0zer.mjs +0 -5
- package/dist/renderer-CC-WlYa2.mjs +0 -5
- package/dist/renderer-Cb0qf1UG.mjs +0 -5
- package/dist/renderer-CfX13dgQ.mjs +0 -5
- package/dist/renderer-ChFkRLrv.mjs +0 -5
- package/dist/renderer-CjkfJj5R.mjs +0 -5
- package/dist/renderer-Ck7Lu6c9.mjs +0 -5
- package/dist/renderer-CuquqG_c.mjs +0 -5
- package/dist/renderer-Cwz2E4QD.mjs +0 -5
- package/dist/renderer-Czkt9YYp.mjs +0 -5
- package/dist/renderer-DFTIhSdJ.mjs +0 -5
- package/dist/renderer-DFaa-Ats.mjs +0 -5
- package/dist/renderer-DIHXKvPl.mjs +0 -5
- package/dist/renderer-DMzOqVM3.mjs +0 -5
- package/dist/renderer-DOId5U8x.mjs +0 -5
- package/dist/renderer-DQXFOup8.mjs +0 -5
- package/dist/renderer-DRt3BSTj.mjs +0 -5
- package/dist/renderer-Di_5vQ81.mjs +0 -6
- package/dist/renderer-DkmpsPIa.mjs +0 -5
- package/dist/renderer-Ds6wd9Gk.mjs +0 -5
- package/dist/renderer-DuuOlYIG.mjs +0 -3
- package/dist/renderer-Dv4p0lp9.mjs +0 -5
- package/dist/renderer-DzWoOlVc.mjs +0 -5
- package/dist/renderer-GbVNyv-E.mjs.map +0 -1
- package/dist/renderer-IOz63OWg.mjs +0 -5
- package/dist/renderer-JkSrsUa5.mjs +0 -5
- package/dist/renderer-Ocs1Djwu.mjs +0 -5
- package/dist/renderer-Wdn7m_uN.mjs +0 -5
- package/dist/renderer-mKpjaoE3.mjs +0 -5
- /package/dist/{chunk-GBe2k3y8.mjs → chunk-D7gtBK74.mjs} +0 -0
- /package/dist/preview-engine/{chunk-Q4Z54DQ7.mjs → chunk-LXHECDOB.mjs} +0 -0
- /package/dist/{renderer-B-BcgA6d.mjs → renderer-B7fX0C62.mjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dist-TrtLGPvc.mjs","names":["ProgrammaticSignal","ConfigSchemaRegistry"],"sources":["../../core/dist/index.mjs"],"sourcesContent":["import { nanoid } from \"nanoid\";\nimport z$1, { z } from \"zod\";\n\n//#region src/signals/programmatic.ts\nvar ProgrammaticSignal = class ProgrammaticSignal {\n\tgpuBinding;\n\tlabel;\n\t_evaluator;\n\t_samples;\n\t_fps;\n\t_durationFrames;\n\t_cachedFrame = -1;\n\t_cachedValue = 0;\n\t_seekedFrame = -1;\n\t_subscribers = /* @__PURE__ */ new Set();\n\t_children = /* @__PURE__ */ new Set();\n\tget fps() {\n\t\treturn this._fps;\n\t}\n\tconstructor(source, options = {}) {\n\t\tthis._fps = options.fps ?? 24;\n\t\tthis._durationFrames = options.durationFrames;\n\t\tthis.gpuBinding = options.gpuBinding;\n\t\tthis.label = options.label;\n\t\tif (typeof source === \"number\") {\n\t\t\tconst constVal = source;\n\t\t\tthis._evaluator = () => constVal;\n\t\t\tthis._cachedValue = constVal;\n\t\t} else if (typeof source === \"function\") this._evaluator = source;\n\t\telse if (isSignal(source)) this._evaluator = (ctx) => Number(source.get(ctx)) || 0;\n\t\telse {\n\t\t\tconst arr = source;\n\t\t\tthis._samples = arr instanceof Float32Array ? arr : new Float32Array(Array.from(arr));\n\t\t\tthis._durationFrames = this._samples.length;\n\t\t\tthis._cachedValue = this._samples.length > 0 ? this._samples[0] : 0;\n\t\t\tthis._evaluator = (ctx) => {\n\t\t\t\tif (!this._samples || this._samples.length === 0) return 0;\n\t\t\t\tconst compFps = ctx.fps ?? this._fps;\n\t\t\t\tconst targetFrame = compFps !== this._fps && compFps > 0 ? ctx.frame / compFps * this._fps : ctx.frame;\n\t\t\t\tconst idx = Math.max(0, Math.min(this._samples.length - 1, Math.round(targetFrame)));\n\t\t\t\treturn this._samples[idx];\n\t\t\t};\n\t\t}\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget(ctx) {\n\t\tregisterSignalDependency(this._subscribers);\n\t\tframeSignal.get();\n\t\tconst currentFrame = ctx?.frame ?? (this._seekedFrame >= 0 ? this._seekedFrame : frameSignal.value);\n\t\tif (this._cachedFrame === currentFrame) return this._cachedValue;\n\t\tconst fps$1 = ctx?.fps ?? this._fps;\n\t\tconst time = ctx?.time ?? (fps$1 > 0 ? currentFrame / fps$1 : 0);\n\t\tconst duration = ctx?.duration ?? this._durationFrames ?? 100;\n\t\tconst resolvedCtx = {\n\t\t\tframe: currentFrame,\n\t\t\tfps: fps$1,\n\t\t\ttime,\n\t\t\tduration,\n\t\t\tdurationMs: ctx?.durationMs ?? duration / fps$1 * 1e3,\n\t\t\tprogress: duration > 0 ? currentFrame / duration : 0,\n\t\t\tdeltaTime: ctx?.deltaTime ?? (fps$1 > 0 ? 1 / fps$1 : .0416)\n\t\t};\n\t\tthis._cachedFrame = currentFrame;\n\t\tthis._cachedValue = this._evaluator(resolvedCtx);\n\t\treturn this._cachedValue;\n\t}\n\tpeek() {\n\t\treturn this._cachedValue;\n\t}\n\tregisterChild(child) {\n\t\tthis._children.add(child);\n\t}\n\t_derive(evaluator, options, other) {\n\t\tconst child = new ProgrammaticSignal(evaluator, {\n\t\t\tfps: this._fps,\n\t\t\tdurationFrames: this._durationFrames,\n\t\t\t...options\n\t\t});\n\t\tthis._children.add(child);\n\t\tif (other instanceof ProgrammaticSignal) other.registerChild(child);\n\t\treturn child;\n\t}\n\tseekFrame(frame$1) {\n\t\tthis._seekedFrame = frame$1;\n\t\tthis._cachedFrame = -1;\n\t\tfor (const sub of this._subscribers) sub.markDirty();\n\t\tfor (const child of this._children) child.seekFrame(frame$1);\n\t}\n\tinvalidate() {\n\t\tthis._cachedFrame = -1;\n\t\tfor (const sub of this._subscribers) sub.markDirty();\n\t\tfor (const child of this._children) child.invalidate();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n\tsmooth(windowFrames) {\n\t\tconst window = Math.max(1, Math.round(windowFrames));\n\t\tif (window <= 1) return this;\n\t\treturn this._derive((ctx) => {\n\t\t\tlet sum = 0;\n\t\t\tlet count = 0;\n\t\t\tconst startF = Math.max(0, ctx.frame - window + 1);\n\t\t\tfor (let f = startF; f <= ctx.frame; f++) {\n\t\t\t\tsum += this.get({\n\t\t\t\t\t...ctx,\n\t\t\t\t\tframe: f,\n\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t});\n\t\t\t\tcount++;\n\t\t\t}\n\t\t\treturn count > 0 ? sum / count : 0;\n\t\t}, { label: `${this.label ?? \"sig\"}_smoothed(${window})` });\n\t}\n\tremap(inMin, inMax, outMin, outMax, clamp = false) {\n\t\tconst inRange = inMax - inMin;\n\t\tconst outRange = outMax - outMin;\n\t\treturn this._derive((ctx) => {\n\t\t\tconst val = this.get(ctx);\n\t\t\tconst remapped = outMin + (inRange !== 0 ? (val - inMin) / inRange : 0) * outRange;\n\t\t\tif (clamp) {\n\t\t\t\tconst lo = Math.min(outMin, outMax);\n\t\t\t\tconst hi = Math.max(outMin, outMax);\n\t\t\t\treturn Math.max(lo, Math.min(hi, remapped));\n\t\t\t}\n\t\t\treturn remapped;\n\t\t}, { label: `${this.label ?? \"sig\"}_remap` });\n\t}\n\tclamp(min, max) {\n\t\tconst lo = Math.min(min, max);\n\t\tconst hi = Math.max(min, max);\n\t\treturn this._derive((ctx) => Math.max(lo, Math.min(hi, this.get(ctx))), { label: `${this.label ?? \"sig\"}_clamped` });\n\t}\n\tgate(threshold, options = {}) {\n\t\tconst mode = options.mode ?? \"gate\";\n\t\tconst debounce = Math.max(1, options.debounceFrames ?? 2);\n\t\tconst hold = Math.max(1, options.holdFrames ?? 4);\n\t\tconst invert = Boolean(options.invert);\n\t\treturn this._derive((ctx) => {\n\t\t\tconst currentF = ctx.frame;\n\t\t\tlet out = 0;\n\t\t\tif (mode === \"gate\") out = this.get(ctx) >= threshold ? 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, currentF - 120);\n\t\t\t\tfor (let f = startF; f <= currentF; f++) {\n\t\t\t\t\tconst v = this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f,\n\t\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t\t});\n\t\t\t\t\tconst prev = f > 0 ? this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f - 1,\n\t\t\t\t\t\ttime: (f - 1) / ctx.fps\n\t\t\t\t\t}) : 0;\n\t\t\t\t\tif (v >= threshold && prev < threshold && f - lastTrigger >= debounce) lastTrigger = f;\n\t\t\t\t}\n\t\t\t\tout = currentF >= lastTrigger && currentF < lastTrigger + hold ? 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 <= currentF; f++) {\n\t\t\t\t\tconst v = this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f,\n\t\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t\t});\n\t\t\t\t\tconst prev = f > 0 ? this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f - 1,\n\t\t\t\t\t\ttime: (f - 1) / ctx.fps\n\t\t\t\t\t}) : 0;\n\t\t\t\t\tif (v >= threshold && prev < threshold && f - lastTrigger >= debounce) {\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\tout = toggleCount % 2 === 1 ? 1 : 0;\n\t\t\t}\n\t\t\treturn invert ? 1 - out : out;\n\t\t}, { label: `${this.label ?? \"sig\"}_gate(${threshold})` });\n\t}\n\tvelocity(dt = 1) {\n\t\tconst step = Math.max(1, Math.round(dt));\n\t\treturn this._derive((ctx) => {\n\t\t\tconst curr = this.get(ctx);\n\t\t\tconst prevF = Math.max(0, ctx.frame - step);\n\t\t\tconst prev = this.get({\n\t\t\t\t...ctx,\n\t\t\t\tframe: prevF,\n\t\t\t\ttime: prevF / ctx.fps\n\t\t\t});\n\t\t\tconst deltaSec = step / ctx.fps;\n\t\t\treturn deltaSec > 0 ? (curr - prev) / deltaSec : curr - prev;\n\t\t}, { label: `${this.label ?? \"sig\"}_velocity` });\n\t}\n\tdelay(frames) {\n\t\tconst shift = Math.max(0, Math.round(frames));\n\t\treturn this._derive((ctx) => {\n\t\t\tconst delayedF = Math.max(0, ctx.frame - shift);\n\t\t\treturn this.get({\n\t\t\t\t...ctx,\n\t\t\t\tframe: delayedF,\n\t\t\t\ttime: delayedF / ctx.fps\n\t\t\t});\n\t\t}, { label: `${this.label ?? \"sig\"}_delay(${shift})` });\n\t}\n\tspring(stiffness = 150, damping = 12) {\n\t\treturn this._derive((ctx) => {\n\t\t\tconst targetFrame = ctx.frame;\n\t\t\tif (targetFrame <= 0) return this.get(ctx);\n\t\t\tlet pos = this.get({\n\t\t\t\t...ctx,\n\t\t\t\tframe: 0,\n\t\t\t\ttime: 0\n\t\t\t});\n\t\t\tlet vel = 0;\n\t\t\tconst dt = 1 / Math.max(1, ctx.fps);\n\t\t\tfor (let f = 1; f <= targetFrame; f++) {\n\t\t\t\tconst targetVal = this.get({\n\t\t\t\t\t...ctx,\n\t\t\t\t\tframe: f,\n\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t});\n\t\t\t\tconst displacement = pos - targetVal;\n\t\t\t\tconst force = -stiffness * displacement - damping * vel;\n\t\t\t\tvel += force * dt;\n\t\t\t\tpos += vel * dt;\n\t\t\t}\n\t\t\treturn pos;\n\t\t}, { label: `${this.label ?? \"sig\"}_spring` });\n\t}\n\tadd(other) {\n\t\tif (typeof other === \"number\") return this._derive((ctx) => this.get(ctx) + other);\n\t\treturn this._derive((ctx) => this.get(ctx) + (Number(other.get(ctx)) || 0), void 0, other);\n\t}\n\tsubtract(other) {\n\t\tif (typeof other === \"number\") return this._derive((ctx) => this.get(ctx) - other);\n\t\treturn this._derive((ctx) => this.get(ctx) - (Number(other.get(ctx)) || 0), void 0, other);\n\t}\n\tmultiply(factor) {\n\t\tif (typeof factor === \"number\") return this._derive((ctx) => this.get(ctx) * factor);\n\t\treturn this._derive((ctx) => this.get(ctx) * (Number(factor.get(ctx)) || 0), void 0, factor);\n\t}\n\tinvert() {\n\t\treturn this._derive((ctx) => 1 - this.get(ctx), { label: `${this.label ?? \"sig\"}_inverted` });\n\t}\n\tpow(exponent) {\n\t\treturn this._derive((ctx) => this.get(ctx) ** exponent);\n\t}\n\tmap(fn) {\n\t\treturn this._derive((ctx) => fn(this.get(ctx), ctx));\n\t}\n\ttoFrameArray(totalFrames, fps$1) {\n\t\tconst count = Math.max(1, totalFrames);\n\t\tconst f = fps$1 ?? this._fps;\n\t\tconst out = new Float32Array(count);\n\t\tfor (let i = 0; i < count; i++) out[i] = this.get({\n\t\t\tframe: i,\n\t\t\tfps: f,\n\t\t\ttime: i / f,\n\t\t\tduration: count,\n\t\t\tdurationMs: count / f * 1e3,\n\t\t\tprogress: i / count,\n\t\t\tdeltaTime: 1 / f\n\t\t});\n\t\treturn out;\n\t}\n};\nfunction programmaticSignal(source, options) {\n\treturn new ProgrammaticSignal(source, options);\n}\n\n//#endregion\n//#region src/signals/resolve.ts\n/**\n* Unwraps a potential Signal, Signal-like object with `.peek()`,\n* or object with `.value`. Returns the raw value or the original object.\n*/\nfunction unwrapValue(val) {\n\tif (val === null || typeof val !== \"object\") return val;\n\tif (isSignal(val)) return val.peek();\n\tif (\"peek\" in val && typeof val.peek === \"function\") return val.peek();\n\tif (\"value\" in val) return val.value;\n\treturn val;\n}\n/**\n* Extracts a numeric value from a primitive, Signal, or wrapper object.\n* Returns the fallback if undefined, null, NaN, or non-numeric.\n*/\nfunction resolveNumber(val, fallback) {\n\tconst unwrapped = unwrapValue(val);\n\treturn typeof unwrapped === \"number\" && !Number.isNaN(unwrapped) ? unwrapped : fallback;\n}\n/**\n* Extracts a string value from a primitive, Signal, or wrapper object.\n* Returns the fallback if undefined, null, or non-string.\n*/\nfunction resolveString(val, fallback) {\n\tconst unwrapped = unwrapValue(val);\n\treturn typeof unwrapped === \"string\" ? unwrapped : fallback;\n}\n/**\n* Extracts a boolean value from a primitive, Signal, or wrapper object.\n* Returns the fallback if undefined, null, or non-boolean.\n*/\nfunction resolveBoolean(val, fallback) {\n\tconst unwrapped = unwrapValue(val);\n\treturn typeof unwrapped === \"boolean\" ? unwrapped : fallback;\n}\n/**\n* Generic parameter resolver matching the fallback value's type.\n*/\nfunction resolveParam(val, fallback) {\n\tif (typeof fallback === \"number\") return resolveNumber(val, fallback);\n\tif (typeof fallback === \"string\") return resolveString(val, fallback);\n\tif (typeof fallback === \"boolean\") return resolveBoolean(val, fallback);\n\tconst unwrapped = unwrapValue(val);\n\treturn unwrapped !== void 0 && unwrapped !== null ? unwrapped : fallback;\n}\n\n//#endregion\n//#region src/signals/index.ts\nlet activeComputed = null;\nfunction registerSignalDependency(subscribers) {\n\tif (activeComputed !== null) {\n\t\tsubscribers.add(activeComputed);\n\t\tactiveComputed.deps.add(subscribers);\n\t}\n}\nfunction isSignal(val) {\n\treturn val !== null && typeof val === \"object\" && \"get\" in val && typeof val.get === \"function\" && \"value\" in val;\n}\nvar StateSignalImpl = class {\n\t_value;\n\t_subscribers = /* @__PURE__ */ new Set();\n\tconstructor(initialValue) {\n\t\tthis._value = initialValue;\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tset value(nextValue) {\n\t\tthis.set(nextValue);\n\t}\n\tget() {\n\t\tif (activeComputed !== null) {\n\t\t\tthis._subscribers.add(activeComputed);\n\t\t\tactiveComputed.deps.add(this._subscribers);\n\t\t}\n\t\treturn this._value;\n\t}\n\tpeek() {\n\t\treturn this._value;\n\t}\n\tset(nextValue) {\n\t\tif (Object.is(this._value, nextValue)) return;\n\t\tthis._value = nextValue;\n\t\tthis.notifySubscribers();\n\t}\n\tupdate(fn) {\n\t\tthis.set(fn(this._value));\n\t}\n\tnotifySubscribers() {\n\t\tif (this._subscribers.size === 0) return;\n\t\tconst toNotify = Array.from(this._subscribers);\n\t\tfor (const sub of toNotify) sub.markDirty();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nvar ComputedImpl = class {\n\t_fn;\n\t_value;\n\t_dirty = true;\n\t_evaluating = false;\n\tdeps = /* @__PURE__ */ new Set();\n\t_subscribers = /* @__PURE__ */ new Set();\n\tconstructor(fn) {\n\t\tthis._fn = fn;\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget() {\n\t\tif (activeComputed !== null && activeComputed !== this) {\n\t\t\tthis._subscribers.add(activeComputed);\n\t\t\tactiveComputed.deps.add(this._subscribers);\n\t\t}\n\t\tif (this._dirty) this.compute();\n\t\treturn this._value;\n\t}\n\tpeek() {\n\t\tif (this._dirty) this.compute();\n\t\treturn this._value;\n\t}\n\tmarkDirty() {\n\t\tif (this._dirty) return;\n\t\tthis._dirty = true;\n\t\tconst toNotify = Array.from(this._subscribers);\n\t\tfor (const sub of toNotify) sub.markDirty();\n\t}\n\tcompute() {\n\t\tif (this._evaluating) throw new Error(\"Cyclic dependency detected in computed signal\");\n\t\tfor (const depSubSet of this.deps) depSubSet.delete(this);\n\t\tthis.deps.clear();\n\t\tconst prevActive = activeComputed;\n\t\tactiveComputed = this;\n\t\tthis._evaluating = true;\n\t\ttry {\n\t\t\tthis._value = this._fn();\n\t\t\tthis._dirty = false;\n\t\t} finally {\n\t\t\tthis._evaluating = false;\n\t\t\tactiveComputed = prevActive;\n\t\t}\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nvar FrameArraySignalImpl = class {\n\tgpuBinding;\n\tfps;\n\t_samples;\n\t_cachedFrame = -1;\n\t_cachedValue = 0;\n\t_seekedFrame = -1;\n\t_subscribers = /* @__PURE__ */ new Set();\n\tconstructor(samples, fps$1 = 24, gpuBinding) {\n\t\tthis._samples = samples;\n\t\tthis.fps = fps$1;\n\t\tthis.gpuBinding = gpuBinding;\n\t\tif (samples.length > 0) this._cachedValue = samples[0];\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget(ctx) {\n\t\tif (activeComputed !== null) {\n\t\t\tthis._subscribers.add(activeComputed);\n\t\t\tactiveComputed.deps.add(this._subscribers);\n\t\t}\n\t\tframeSignal.get();\n\t\tconst currentFrame = ctx?.frame ?? (this._seekedFrame >= 0 ? this._seekedFrame : frameSignal.value);\n\t\tif (this._cachedFrame === currentFrame) return this._cachedValue;\n\t\tthis._cachedFrame = currentFrame;\n\t\tif (!this._samples || this._samples.length === 0) {\n\t\t\tthis._cachedValue = 0;\n\t\t\treturn 0;\n\t\t}\n\t\tconst compFps = ctx?.fps ?? this.fps;\n\t\tconst targetFrame = compFps !== this.fps && compFps > 0 ? currentFrame / compFps * this.fps : currentFrame;\n\t\tconst idx = Math.max(0, Math.min(this._samples.length - 1, Math.round(targetFrame)));\n\t\tthis._cachedValue = Number(this._samples[idx]) || 0;\n\t\treturn this._cachedValue;\n\t}\n\tpeek() {\n\t\treturn this._cachedValue;\n\t}\n\tseekFrame(frame$1) {\n\t\tthis._seekedFrame = frame$1;\n\t\tthis._cachedFrame = frame$1;\n\t\tif (!this._samples || this._samples.length === 0) this._cachedValue = 0;\n\t\telse {\n\t\t\tconst idx = Math.max(0, Math.min(this._samples.length - 1, Math.round(frame$1)));\n\t\t\tthis._cachedValue = Number(this._samples[idx]) || 0;\n\t\t}\n\t\tfor (const sub of this._subscribers) sub.markDirty();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nfunction signal(initialValue) {\n\treturn new StateSignalImpl(initialValue);\n}\n/**\n* Whether `val` is a plain value signal (from `signal()`): it reads the same\n* whatever frame context it is given, so one read stands for every frame.\n*/\nfunction isValueSignal(val) {\n\treturn val instanceof StateSignalImpl;\n}\nfunction computed(fn) {\n\treturn new ComputedImpl(fn);\n}\nfunction frameArraySignal(samples, fps$1 = 24, gpuBinding) {\n\treturn new FrameArraySignalImpl(samples, fps$1, gpuBinding);\n}\nconst frameSignal = signal(0);\nconst timeSignal = signal(0);\nconst progressSignal = signal(0);\nfunction updateClockSignals(frame$1, fps$1 = 24, durationMs) {\n\tframeSignal.set(frame$1);\n\tconst timeSec = fps$1 > 0 ? frame$1 / fps$1 : 0;\n\ttimeSignal.set(timeSec);\n\tif (durationMs && durationMs > 0) {\n\t\tconst durSec = durationMs / 1e3;\n\t\tprogressSignal.set(Math.max(0, Math.min(1, timeSec / durSec)));\n\t} else progressSignal.set(0);\n}\nvar ProceduralSignalImpl = class {\n\tgpuBinding;\n\t_config;\n\tconstructor(config) {\n\t\tthis._config = {\n\t\t\ttype: \"sine\",\n\t\t\tfrequency: 1,\n\t\t\tamplitude: 1,\n\t\t\toffset: 0,\n\t\t\tphase: 0,\n\t\t\t...config\n\t\t};\n\t\tthis.gpuBinding = config.gpuBinding;\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget(ctx) {\n\t\tframeSignal.get();\n\t\tconst frame$1 = ctx?.frame ?? frameSignal.value;\n\t\tconst fps$1 = ctx?.fps ?? 24;\n\t\tconst time = ctx?.time ?? (fps$1 > 0 ? frame$1 / fps$1 : 0);\n\t\tif (this._config.fn) return this._config.fn(ctx ?? {\n\t\t\tframe: frame$1,\n\t\t\tfps: fps$1,\n\t\t\ttime,\n\t\t\tduration: 0,\n\t\t\tdurationMs: 0,\n\t\t\tprogress: 0,\n\t\t\tdeltaTime: fps$1 > 0 ? 1 / fps$1 : 0\n\t\t});\n\t\tconst freq = this._config.frequency ?? 1;\n\t\tconst amp = this._config.amplitude ?? 1;\n\t\tconst off = this._config.offset ?? 0;\n\t\tconst phase = this._config.phase ?? 0;\n\t\tswitch (this._config.type ?? \"sine\") {\n\t\t\tcase \"sine\": return off + amp * Math.sin(2 * Math.PI * freq * time + phase);\n\t\t\tcase \"triangle\": return off + amp * (2 * Math.abs(2 * (time * freq + phase / (2 * Math.PI) - Math.floor(time * freq + phase / (2 * Math.PI) + .5))) - 1);\n\t\t\tcase \"sawtooth\": return off + amp * (2 * (time * freq + phase / (2 * Math.PI) - Math.floor(time * freq + phase / (2 * Math.PI) + .5)));\n\t\t\tcase \"square\": return off + (Math.sin(2 * Math.PI * freq * time + phase) >= 0 ? amp : -amp);\n\t\t\tcase \"bounce\": {\n\t\t\t\tconst cycle = time * freq % 1;\n\t\t\t\treturn off + amp * Math.abs(Math.sin(Math.PI * cycle));\n\t\t\t}\n\t\t\tdefault: return off + amp * Math.sin(2 * Math.PI * freq * time + phase);\n\t\t}\n\t}\n\tpeek() {\n\t\treturn this.get();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nfunction signalBuilder(config) {\n\treturn new ProceduralSignalImpl(config);\n}\nfunction periodicSignal(wave, options) {\n\tconst min = options.min;\n\tconst max = options.max;\n\tlet amplitude = options.amplitude ?? 1;\n\tlet offset = options.offset ?? 0;\n\tif (min !== void 0 && max !== void 0) {\n\t\toffset = (min + max) / 2;\n\t\tamplitude = (max - min) / 2;\n\t} else if (min !== void 0) offset = min + amplitude;\n\telse if (max !== void 0) offset = max - amplitude;\n\tconst period = options.period;\n\tconst frequency = options.frequency;\n\tconst phase = options.phase ?? 0;\n\treturn signalBuilder({\n\t\ttype: \"custom\",\n\t\tfn: (ctx) => {\n\t\t\tlet angle;\n\t\t\tif (period !== void 0 && period > 0) angle = 2 * Math.PI * ctx.frame / period + phase;\n\t\t\telse {\n\t\t\t\tconst freq = frequency ?? 1;\n\t\t\t\tangle = 2 * Math.PI * freq * ctx.time + phase;\n\t\t\t}\n\t\t\treturn offset + amplitude * wave(angle);\n\t\t}\n\t});\n}\nfunction sineSignal(options = {}) {\n\treturn periodicSignal(Math.sin, options);\n}\nfunction cosineSignal(options = {}) {\n\treturn periodicSignal(Math.cos, options);\n}\nconst Signal = {\n\tstate: signal,\n\tcomputed,\n\tbuilder: signalBuilder,\n\tfromArray: frameArraySignal,\n\tprogrammatic: programmaticSignal,\n\tframe: frameSignal,\n\ttime: timeSignal,\n\tprogress: progressSignal,\n\tsine: sineSignal,\n\tcosine: cosineSignal\n};\n\n//#endregion\n//#region src/effects/index.ts\nvar Effect = class {\n\tdomain = \"visual\";\n\tsignals;\n\tconfig;\n\t_frameHooks = [];\n\tconstructor(initialConfig) {\n\t\tthis.config = { ...initialConfig };\n\t\tthis.signals = {};\n\t\tfor (const [key, val] of Object.entries(initialConfig)) if (isSignal(val)) this.signals[key] = val;\n\t\telse this.signals[key] = signal(val);\n\t\treturn new Proxy(this, {\n\t\t\tget(target, prop, receiver) {\n\t\t\t\tif (typeof prop === \"string\" && prop in target.signals) {\n\t\t\t\t\tconst sig = target.signals[prop];\n\t\t\t\t\treturn sig ? sig.value : void 0;\n\t\t\t\t}\n\t\t\t\treturn Reflect.get(target, prop, receiver);\n\t\t\t},\n\t\t\tset(target, prop, val, receiver) {\n\t\t\t\tif (typeof prop === \"string\" && prop in target.signals) {\n\t\t\t\t\tconst currentSig = target.signals[prop];\n\t\t\t\t\tif (isSignal(val)) {\n\t\t\t\t\t\ttarget.signals[prop] = val;\n\t\t\t\t\t\ttarget.config[prop] = val;\n\t\t\t\t\t} else if (currentSig && typeof currentSig.set === \"function\") {\n\t\t\t\t\t\tcurrentSig.set(val);\n\t\t\t\t\t\ttarget.config[prop] = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.signals[prop] = signal(val);\n\t\t\t\t\t\ttarget.config[prop] = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn Reflect.set(target, prop, val, receiver);\n\t\t\t}\n\t\t});\n\t}\n\t/**\n\t* Game-engine per-frame lifecycle hook.\n\t* Invoked before rendering each frame so scripts or agents can mutate properties.\n\t*/\n\tonRequestFrame(callback) {\n\t\tthis._frameHooks.push(callback);\n\t\treturn this;\n\t}\n\tnotifyFrame(ctx) {\n\t\tfor (const hook of this._frameHooks) hook(ctx);\n\t}\n\t/**\n\t* Samples concrete scalar / config values for the current frame.\n\t*/\n\tresolveUniforms(ctx) {\n\t\tconst out = {};\n\t\tfor (const [k, sig] of Object.entries(this.signals)) out[k] = sig.get(ctx);\n\t\treturn out;\n\t}\n\t/**\n\t* Returns WebGPU texture bindings attached to any property signal.\n\t*/\n\tresolveTextures() {\n\t\tconst out = {};\n\t\tfor (const [k, sig] of Object.entries(this.signals)) {\n\t\t\tconst gpu = sig.gpuBinding;\n\t\t\tif (gpu?.textureView) out[`${k}TextureView`] = gpu.textureView;\n\t\t\tif (gpu?.texture) out[`${k}Texture`] = gpu.texture;\n\t\t}\n\t\treturn out;\n\t}\n\t/**\n\t* Converts the effect into an operation node for the VirtualMediaData AST.\n\t*/\n\ttoOperation() {\n\t\tconst opPayload = {\n\t\t\top: this.op,\n\t\t\teffect: this,\n\t\t\tonRequestFrame: (ctx) => this.notifyFrame(ctx),\n\t\t\tsignals: this.signals,\n\t\t\t...this.config\n\t\t};\n\t\tfor (const [k, sig] of Object.entries(this.signals)) {\n\t\t\tconst orig = this.config[k];\n\t\t\tif (!isSignal(orig) && (typeof orig === \"string\" || typeof orig === \"boolean\")) opPayload[k] = sig.value;\n\t\t\telse opPayload[k] = sig;\n\t\t}\n\t\treturn opPayload;\n\t}\n};\n\n//#endregion\n//#region src/errors.ts\nvar ModerationError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"ModerationError\";\n\t}\n};\nvar ModerationUnrefundableError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"ModerationUnrefundableError\";\n\t}\n};\n\n//#endregion\n//#region src/id-gen.ts\n/**\n* Generates a unique ID using nanoid.\n* This function is cross-platform compatible (Node.js and Browser).\n*\n* @param size - Optional size of the ID (default is 21)\n* @returns A unique string ID\n*/\nconst generateId = (size) => {\n\treturn nanoid(size);\n};\n\n//#endregion\n//#region src/node-metadata.ts\nconst HandleDefinitionSchema = z$1.object({\n\tdataTypes: z$1.custom(),\n\tlabel: z$1.string(),\n\trequired: z$1.boolean().optional(),\n\torder: z$1.number(),\n\tdescription: z$1.string().optional()\n});\nconst ConfigHandleSchema = z$1.object({\n\tconfigKey: z$1.string(),\n\tdataTypes: z$1.custom(),\n\tlabel: z$1.string(),\n\tdescription: z$1.string().optional()\n});\n/**\n* Metadata defining the interface and identity of a node.\n* This is safe to import in any environment.\n*/\nconst NodeMetadataSchema = z$1.object({\n\ttype: z$1.string().min(1),\n\tversion: z$1.number().int().positive().optional(),\n\tbaseType: z$1.string().optional(),\n\tdisplayName: z$1.string().min(1),\n\tdescription: z$1.string().optional(),\n\tshowInQuickAccess: z$1.boolean().optional(),\n\tshowInSidebar: z$1.boolean().optional(),\n\tadvanced: z$1.boolean().optional(),\n\tcategory: z$1.string().min(1),\n\tsubcategory: z$1.string().optional(),\n\tdefaultDimensions: z$1.object({\n\t\twidth: z$1.number().positive().optional(),\n\t\theight: z$1.number().positive().optional()\n\t}).optional(),\n\thandles: z$1.object({\n\t\tinputs: z$1.array(HandleDefinitionSchema),\n\t\toutputs: z$1.array(HandleDefinitionSchema)\n\t}),\n\tvariableInputs: z$1.discriminatedUnion(\"enabled\", [z$1.object({\n\t\tenabled: z$1.literal(true),\n\t\tdataTypes: z$1.custom()\n\t}), z$1.object({\n\t\tenabled: z$1.literal(false),\n\t\tdataTypes: z$1.custom().optional()\n\t})]).optional(),\n\tvariableOutputs: z$1.discriminatedUnion(\"enabled\", [z$1.object({\n\t\tenabled: z$1.literal(true),\n\t\tdataTypes: z$1.custom()\n\t}), z$1.object({\n\t\tenabled: z$1.literal(false),\n\t\tdataTypes: z$1.custom().optional()\n\t})]).optional(),\n\tisTerminal: z$1.boolean().optional(),\n\tisTransient: z$1.boolean().optional(),\n\tconfigSchema: z$1.custom().optional(),\n\tdefaultConfig: z$1.record(z$1.string(), z$1.unknown()).optional(),\n\tvalidation: z$1.any().optional(),\n\tresultSchema: z$1.custom().optional(),\n\tconfigHandles: z$1.array(ConfigHandleSchema).optional()\n});\n\n//#endregion\n//#region src/render-diagnostics.ts\nconst STORE_KEY = Symbol.for(\"framefields.renderDiagnostics\");\nconst diagnosticsByRender = globalThis[STORE_KEY] ?? (globalThis[STORE_KEY] = /* @__PURE__ */ new Map());\nconst MAX_TRACKED_RENDERS = 256;\n/** Record a diagnostic for a render; repeats (same code, layer and message) are kept once. */\nfunction reportRenderDiagnostic(renderId, diagnostic) {\n\tlet forRender = diagnosticsByRender.get(renderId);\n\tif (!forRender) {\n\t\tif (diagnosticsByRender.size >= MAX_TRACKED_RENDERS) {\n\t\t\tconst oldest = diagnosticsByRender.keys().next().value;\n\t\t\tif (oldest !== void 0) diagnosticsByRender.delete(oldest);\n\t\t}\n\t\tforRender = /* @__PURE__ */ new Map();\n\t\tdiagnosticsByRender.set(renderId, forRender);\n\t}\n\tconst key = `${diagnostic.code}|${diagnostic.layerId ?? \"\"}|${diagnostic.message}`;\n\tif (!forRender.has(key)) forRender.set(key, diagnostic);\n}\n/**\n* Everything reported for a render, including its nested compositions (they\n* render under derived ids, `${renderId}-…`), removing it from the store.\n*/\nfunction takeRenderDiagnostics(renderId) {\n\tconst collected = /* @__PURE__ */ new Map();\n\tfor (const [id, forRender] of diagnosticsByRender) {\n\t\tif (id !== renderId && !id.startsWith(`${renderId}-`)) continue;\n\t\tfor (const [key, diagnostic] of forRender) collected.set(key, diagnostic);\n\t\tdiagnosticsByRender.delete(id);\n\t}\n\treturn [...collected.values()];\n}\n\n//#endregion\n//#region src/types/base.ts\nconst DataTypeVal = {\n\tText: \"Text\",\n\tNumber: \"Number\",\n\tBoolean: \"Boolean\",\n\tImage: \"Image\",\n\tVideo: \"Video\",\n\tAudio: \"Audio\",\n\tSVG: \"SVG\",\n\tCaption: \"Caption\",\n\tLottie: \"Lottie\",\n\tThreeD: \"ThreeD\",\n\tGIF: \"GIF\",\n\tSignal: \"Signal\",\n\tLUT: \"LUT\"\n};\nconst DataType = DataTypeVal;\nconst DataTypes = Object.values(DataTypeVal);\nconst HandleTypeVal = {\n\tInput: \"Input\",\n\tOutput: \"Output\"\n};\nconst JsonValueSchema = z$1.lazy(() => z$1.union([\n\tz$1.string(),\n\tz$1.number(),\n\tz$1.boolean(),\n\tz$1.null(),\n\tz$1.array(JsonValueSchema),\n\tz$1.record(z$1.string(), JsonValueSchema.optional())\n]));\n/**\n* Zod schema for the FileAsset model\n* Matches the Prisma schema definitions for types and nullability.\n*/\nconst FileAssetSchema = z$1.object({\n\tid: z$1.cuid2(),\n\tname: z$1.string(),\n\tcreatedAt: z$1.coerce.date(),\n\tupdatedAt: z$1.coerce.date(),\n\tuserId: z$1.cuid2().nullable(),\n\twidth: z$1.number().int().nullable(),\n\theight: z$1.number().int().nullable(),\n\tbucket: z$1.string(),\n\tsize: z$1.number().int(),\n\tmimeType: z$1.string(),\n\tkey: z$1.string(),\n\tisUploaded: z$1.boolean().default(true),\n\tduration: z$1.number().int().nullable(),\n\tsampleRate: z$1.number().int().nullable().optional(),\n\tchannels: z$1.number().int().nullable().optional(),\n\tbitDepth: z$1.number().int().nullable().optional(),\n\taudioCodec: z$1.string().nullable().optional(),\n\taudioBitrate: z$1.number().int().nullable().optional(),\n\tfps: z$1.number().int().nullable(),\n\tfingerprint: z$1.string().nullable()\n});\nconst NodeVisualConfigSchema = z$1.object({\n\tposition: z$1.object({\n\t\tx: z$1.number(),\n\t\ty: z$1.number()\n\t}).optional(),\n\twidth: z$1.number().nullish(),\n\theight: z$1.number().nullish(),\n\tlocked: z$1.boolean().optional().default(false),\n\tcollapsed: z$1.boolean().optional().default(false)\n}).passthrough();\n\n//#endregion\n//#region src/types/brands.ts\n/** Asserts and casts a number to an integer FrameIndex. */\nfunction frame(n) {\n\tif (!Number.isFinite(n) || !Number.isInteger(n) || n < 0) throw new RangeError(`FrameIndex must be a non-negative finite integer, got ${n}`);\n\treturn n;\n}\n/** Asserts and casts a number to Seconds. */\nfunction seconds(s) {\n\tif (!Number.isFinite(s)) throw new TypeError(`Seconds must be a finite number, got ${s}`);\n\treturn s;\n}\n/** Asserts and casts a number to Milliseconds. */\nfunction ms(m) {\n\tif (!Number.isFinite(m)) throw new TypeError(`Milliseconds must be a finite number, got ${m}`);\n\treturn m;\n}\n/** Asserts and casts a number to Fps. */\nfunction fps(f) {\n\tif (!Number.isFinite(f) || f <= 0) throw new RangeError(`Fps must be a positive finite number, got ${f}`);\n\treturn f;\n}\n/** Clamps and casts a number to Normalized [0.0, 1.0]. */\nfunction normalized(n) {\n\tif (!Number.isFinite(n)) throw new TypeError(`Normalized must be a finite number, got ${n}`);\n\treturn Math.max(0, Math.min(1, n));\n}\n/** Asserts and casts a number to Degrees. */\nfunction degrees(deg) {\n\tif (!Number.isFinite(deg)) throw new TypeError(`Degrees must be a finite number, got ${deg}`);\n\treturn deg;\n}\n/** Asserts and casts a number to Radians. */\nfunction radians(rad) {\n\tif (!Number.isFinite(rad)) throw new TypeError(`Radians must be a finite number, got ${rad}`);\n\treturn rad;\n}\n/** Asserts and casts a number to Pixels. */\nfunction pixels(px) {\n\tif (!Number.isFinite(px)) throw new TypeError(`Pixels must be a finite number, got ${px}`);\n\treturn px;\n}\n/** Casts a string to HandleId. */\nfunction handleId(id) {\n\tif (!id) throw new TypeError(\"HandleId cannot be empty\");\n\treturn id;\n}\n/** Casts a string to HandleLabel. */\nfunction handleLabel(label) {\n\tif (!label) throw new TypeError(\"HandleLabel cannot be empty\");\n\treturn label;\n}\n/** Casts a string to NodeId. */\nfunction nodeId(id) {\n\tif (!id) throw new TypeError(\"NodeId cannot be empty\");\n\treturn id;\n}\n/** Type guard checking if a number is a valid FrameIndex. */\nfunction isFrameIndex(val) {\n\treturn typeof val === \"number\" && Number.isInteger(val) && val >= 0;\n}\n/** Type guard checking if a number is in the Normalized [0, 1] range. */\nfunction isNormalized(val) {\n\treturn typeof val === \"number\" && Number.isFinite(val) && val >= 0 && val <= 1;\n}\n\n//#endregion\n//#region src/types/config/colors.ts\nconst dataTypeColors = {\n\tText: {\n\t\tbg: \"bg-blue-500\",\n\t\tstroke: \"stroke-blue-500\",\n\t\thex: \"#3b82f6\",\n\t\ttext: \"text-blue-500\",\n\t\tborder: \"border-blue-500\"\n\t},\n\tImage: {\n\t\tbg: \"bg-purple-500\",\n\t\tstroke: \"stroke-purple-500\",\n\t\thex: \"#a855f7\",\n\t\ttext: \"text-purple-500\",\n\t\tborder: \"border-purple-500\"\n\t},\n\tVideo: {\n\t\tbg: \"bg-teal-500\",\n\t\tstroke: \"stroke-teal-500\",\n\t\thex: \"oklch(60% 0.118 184.704)\",\n\t\ttext: \"text-teal-500\",\n\t\tborder: \"border-teal-500\"\n\t},\n\tAudio: {\n\t\tbg: \"bg-orange-500\",\n\t\tstroke: \"stroke-orange-500\",\n\t\thex: \"#f97316\",\n\t\ttext: \"text-orange-500\",\n\t\tborder: \"border-orange-500\"\n\t},\n\tNumber: {\n\t\tbg: \"bg-green-600\",\n\t\tstroke: \"stroke-green-600\",\n\t\thex: \"#16a34a\",\n\t\ttext: \"text-green-600\",\n\t\tborder: \"border-green-600\"\n\t},\n\tBoolean: {\n\t\tbg: \"bg-amber-600\",\n\t\tstroke: \"stroke-amber-600\",\n\t\thex: \"#d97706\",\n\t\ttext: \"text-amber-600\",\n\t\tborder: \"border-amber-600\"\n\t},\n\tSVG: {\n\t\tbg: \"bg-lime-600\",\n\t\tstroke: \"stroke-lime-600\",\n\t\thex: \"#65a30d\",\n\t\ttext: \"text-lime-600\",\n\t\tborder: \"border-lime-600\"\n\t},\n\tCaption: {\n\t\tbg: \"bg-rose-500\",\n\t\tstroke: \"stroke-rose-500\",\n\t\thex: \"#f43f5e\",\n\t\ttext: \"text-rose-500\",\n\t\tborder: \"border-rose-500\"\n\t},\n\tGIF: {\n\t\tbg: \"bg-pink-500\",\n\t\tstroke: \"stroke-pink-500\",\n\t\thex: \"#ec4899\",\n\t\ttext: \"text-pink-500\",\n\t\tborder: \"border-pink-500\"\n\t},\n\tLottie: {\n\t\tbg: \"bg-indigo-500\",\n\t\tstroke: \"stroke-indigo-500\",\n\t\thex: \"#6366f1\",\n\t\ttext: \"text-indigo-500\",\n\t\tborder: \"border-indigo-500\"\n\t},\n\tSignal: {\n\t\tbg: \"bg-fuchsia-500\",\n\t\tstroke: \"stroke-fuchsia-500\",\n\t\thex: \"#d946ef\",\n\t\ttext: \"text-fuchsia-500\",\n\t\tborder: \"border-fuchsia-500\"\n\t},\n\tLUT: {\n\t\tbg: \"bg-cyan-600\",\n\t\tstroke: \"stroke-cyan-600\",\n\t\thex: \"#0891b2\",\n\t\ttext: \"text-cyan-600\",\n\t\tborder: \"border-cyan-600\"\n\t}\n};\n\n//#endregion\n//#region src/types/config/schemas.ts\nconst DATA_TYPE_EXTENSIONS = {\n\tImage: \"png\",\n\tVideo: \"mp4\",\n\tAudio: \"mp3\",\n\tText: \"txt\",\n\tNumber: \"txt\",\n\tBoolean: \"txt\",\n\tSVG: \"svg\",\n\tCaption: \"srt\",\n\tLottie: \"json\",\n\tThreeD: \"glb\",\n\tGIF: \"gif\",\n\tSignal: \"txt\",\n\tLUT: \"cube\"\n};\nconst MIME_TYPES = {\n\tpng: \"image/png\",\n\tjpg: \"image/jpeg\",\n\tjpeg: \"image/jpeg\",\n\tgif: \"image/gif\",\n\twebp: \"image/webp\",\n\tsvg: \"image/svg+xml\",\n\tmp4: \"video/mp4\",\n\twebm: \"video/webm\",\n\tmov: \"video/quicktime\",\n\tmp3: \"audio/mpeg\",\n\twav: \"audio/wav\",\n\togg: \"audio/ogg\",\n\tpdf: \"application/pdf\",\n\tjson: \"application/json\",\n\ttxt: \"text/plain\",\n\tsrt: \"text/srt\",\n\taac: \"audio/aac\",\n\tflac: \"audio/flac\"\n};\nconst COMPOSITE_OPERATIONS = [\n\t\"source-over\",\n\t\"source-in\",\n\t\"source-out\",\n\t\"source-atop\",\n\t\"destination-over\",\n\t\"destination-in\",\n\t\"destination-out\",\n\t\"destination-atop\",\n\t\"lighter\",\n\t\"copy\",\n\t\"xor\",\n\t\"multiply\",\n\t\"screen\",\n\t\"overlay\",\n\t\"darken\",\n\t\"lighten\",\n\t\"color-dodge\",\n\t\"color-burn\",\n\t\"hard-light\",\n\t\"soft-light\",\n\t\"difference\",\n\t\"exclusion\",\n\t\"hue\",\n\t\"saturation\",\n\t\"color\",\n\t\"luminosity\"\n];\nconst GlobalCompositeOperation = z.enum(COMPOSITE_OPERATIONS);\nvar ConfigSchemaRegistry = class ConfigSchemaRegistry {\n\tstatic schemas = /* @__PURE__ */ new Map();\n\tstatic register(type, schema) {\n\t\tConfigSchemaRegistry.schemas.set(type, schema);\n\t}\n\tstatic get(type) {\n\t\treturn ConfigSchemaRegistry.schemas.get(type);\n\t}\n\tstatic clear() {\n\t\tConfigSchemaRegistry.schemas.clear();\n\t}\n};\n\n//#endregion\n//#region src/types/constants.ts\nconst COMPOSITOR_DEFAULTS = {\n\tFONT_FAMILY: \"Inter\",\n\tFONT_SIZE: 64,\n\tFILL: \"#ffffff\",\n\tLINE_HEIGHT: 1.1,\n\tALIGN: \"left\",\n\tVERTICAL_ALIGN: \"top\",\n\tLETTER_SPACING: 0,\n\tSTROKE_WIDTH: 0,\n\tSTROKE: \"#000000\",\n\tCORNER_RADIUS: 0,\n\tPADDING: 0\n};\n\n//#endregion\n//#region src/types/node-result.ts\nconst FileDataSchema = z$1.object({ entity: z$1.custom().optional() });\nconst SignalStatsSchema = z$1.object({\n\tmin: z$1.number().optional(),\n\tmax: z$1.number().optional(),\n\tmean: z$1.number().optional(),\n\trms: z$1.number().optional(),\n\tpeak: z$1.number().optional(),\n\tbeats: z$1.array(z$1.number()).optional(),\n\ttempo: z$1.number().optional()\n});\nconst SignalChannelMetaSchema = z$1.object({\n\tid: z$1.string(),\n\tname: z$1.string(),\n\tindex: z$1.number(),\n\tstats: SignalStatsSchema.optional()\n});\nconst GeneratorSignalDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"generator\"),\n\tnodeId: z$1.string().optional(),\n\tbaseType: z$1.string().optional(),\n\tfunc: z$1.enum([\n\t\t\"sine\",\n\t\t\"triangle\",\n\t\t\"sawtooth\",\n\t\t\"square\",\n\t\t\"custom\"\n\t]).or(z$1.string()).default(\"sine\"),\n\tfrequency: z$1.number().default(1),\n\tamplitude: z$1.number().default(1),\n\tphase: z$1.number().default(0),\n\toffset: z$1.number().default(0),\n\twaveform: z$1.string().optional(),\n\tbpm: z$1.number().optional(),\n\tsyncToBpm: z$1.boolean().optional(),\n\tfmFrequency: z$1.number().optional(),\n\tfmDepth: z$1.number().optional(),\n\tenvelope: z$1.string().optional(),\n\tfnBody: z$1.string().optional(),\n\tfnParams: z$1.array(z$1.record(z$1.string(), z$1.unknown())).optional(),\n\tcustomWGSL: z$1.string().optional(),\n\tsignalFnName: z$1.string().optional(),\n\toutputType: z$1.string().optional(),\n\tfps: z$1.number().optional(),\n\tdurationMs: z$1.number().optional(),\n\tstats: SignalStatsSchema.optional()\n}).passthrough();\nconst AudioExtractorSignalDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"audio_extractor\"),\n\tnodeId: z$1.string().optional(),\n\tsourceUrl: z$1.string().optional(),\n\tchannel: z$1.enum([\n\t\t\"primary\",\n\t\t\"beat\",\n\t\t\"bass\",\n\t\t\"energy\",\n\t\t\"spectral_flux\"\n\t]).or(z$1.string()).optional(),\n\tchannelIndex: z$1.number().optional(),\n\tchannels: z$1.array(SignalChannelMetaSchema).optional(),\n\textractionMode: z$1.string().optional(),\n\tattackMs: z$1.number().optional(),\n\treleaseMs: z$1.number().optional(),\n\tsensitivity: z$1.number().optional(),\n\tnoiseFloorDb: z$1.number().optional(),\n\tdynamicRangeDb: z$1.number().optional(),\n\tautoRange: z$1.boolean().optional(),\n\tsmoothing: z$1.number().optional(),\n\tcurve: z$1.string().optional(),\n\tbeatThreshold: z$1.number().optional(),\n\tbeatDecayMs: z$1.number().optional(),\n\tpreviewMode: z$1.string().optional(),\n\tsamples: z$1.union([z$1.array(z$1.number()), z$1.instanceof(Float32Array)]).optional(),\n\tfps: z$1.number().optional(),\n\tdurationMs: z$1.number().optional(),\n\tstats: SignalStatsSchema.optional(),\n\tstate: z$1.enum([\n\t\t\"pending\",\n\t\t\"ready\",\n\t\t\"failed\"\n\t]).optional(),\n\terror: z$1.string().optional(),\n\tvirtualMedia: z$1.record(z$1.string(), z$1.unknown()).optional(),\n\tsignalFnName: z$1.string().optional(),\n\tcustomWGSL: z$1.string().optional()\n}).passthrough();\nconst SignalMathDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"signal_math\"),\n\tnodeId: z$1.string().optional(),\n\top: z$1.string().optional(),\n\toperation: z$1.string().optional(),\n\tsignalA: z$1.unknown().optional(),\n\tsignalB: z$1.unknown().optional(),\n\tbValue: z$1.number().optional(),\n\tinMin: z$1.number().optional(),\n\tinMax: z$1.number().optional(),\n\toutMin: z$1.number().optional(),\n\toutMax: z$1.number().optional(),\n\tclampMin: z$1.number().optional(),\n\tclampMax: z$1.number().optional(),\n\texponent: z$1.number().optional(),\n\tedge0: z$1.number().optional(),\n\tedge1: z$1.number().optional(),\n\tcustomWGSL: z$1.string().optional(),\n\tstats: SignalStatsSchema.optional()\n}).passthrough();\nconst SignalGateDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"gate\"),\n\tnodeId: z$1.string().optional(),\n\tsourceSignal: z$1.unknown().optional(),\n\tthreshold: z$1.number().optional(),\n\tdebounceMs: z$1.number().optional(),\n\tmode: z$1.enum([\n\t\t\"gate\",\n\t\t\"trigger\",\n\t\t\"toggle\"\n\t]).optional(),\n\tholdFrames: z$1.number().optional(),\n\tinvert: z$1.boolean().optional(),\n\tstats: SignalStatsSchema.optional()\n}).passthrough();\nconst SignalDataSchema = z$1.union([\n\tGeneratorSignalDataSchema,\n\tAudioExtractorSignalDataSchema,\n\tSignalMathDataSchema,\n\tSignalGateDataSchema,\n\tz$1.object({ type: z$1.string() }).passthrough()\n]);\nfunction serializeSignalData(data) {\n\treturn JSON.stringify(data, (_key, value) => {\n\t\tif (value instanceof Float32Array) return Array.from(value);\n\t\treturn value;\n\t});\n}\nfunction deserializeSignalData(raw) {\n\tif (typeof raw === \"string\") try {\n\t\treturn SignalDataSchema.parse(JSON.parse(raw));\n\t} catch {\n\t\treturn { type: \"unknown\" };\n\t}\n\treturn SignalDataSchema.parse(raw);\n}\nconst OutputItemSchema = z$1.object({\n\ttype: z$1.custom(),\n\tdata: z$1.any(),\n\toutputHandleId: z$1.string().optional()\n});\nconst createOutputItemSchema = (type, dataSchema) => {\n\treturn z$1.object({\n\t\ttype,\n\t\tdata: dataSchema,\n\t\toutputHandleId: z$1.string().optional()\n\t});\n};\nconst SingleOutputGenericSchema = (outputItemSchema) => z$1.object({\n\tselectedOutputIndex: z$1.literal(0),\n\toutputs: z$1.tuple([z$1.object({ items: z$1.tuple([outputItemSchema]) })])\n});\nconst MultiOutputGenericSchema = (outputItemSchema) => z$1.object({\n\tselectedOutputIndex: z$1.number(),\n\toutputs: z$1.array(z$1.object({ items: z$1.array(outputItemSchema) })),\n\tsourceFingerprint: z$1.string().optional()\n});\nconst AnyOutputUnionSchema = z$1.object({\n\ttype: z$1.custom(),\n\tdata: z$1.any(),\n\toutputHandleId: z$1.string().optional()\n});\nconst NodeResultSchema = z$1.object({\n\tselectedOutputIndex: z$1.number(),\n\toutputs: z$1.array(z$1.object({ items: z$1.array(AnyOutputUnionSchema) }))\n});\nconst ExportResultSchema = MultiOutputGenericSchema(AnyOutputUnionSchema);\n\n//#endregion\n//#region src/types/video/base-layer-schema.ts\nconst AnimationTypeSchema = z.enum([\n\t\"fade-in\",\n\t\"fade-out\",\n\t\"slide-in-left\",\n\t\"slide-in-right\",\n\t\"slide-in-top\",\n\t\"slide-in-bottom\",\n\t\"zoom-in\",\n\t\"zoom-out\",\n\t\"rotate-cw\",\n\t\"rotate-ccw\",\n\t\"bounce\",\n\t\"shake\"\n]);\nconst VideoAnimationSchema = z.object({\n\tid: z.string(),\n\ttype: AnimationTypeSchema,\n\tvalue: z.number()\n});\nconst VideoSpatialPropsSchema = z.object({\n\tx: z.number().default(0),\n\ty: z.number().default(0),\n\twidth: z.number().optional(),\n\theight: z.number().optional(),\n\trotation: z.number().default(0),\n\tscale: z.number().min(0).default(1),\n\topacity: z.number().min(0).max(1).default(1),\n\tzIndex: z.number().int().optional(),\n\tblendMode: GlobalCompositeOperation.optional()\n});\nconst VideoTimingPropsSchema = z.object({\n\tstartFrame: z.number().int().min(0).default(0),\n\tdurationInMS: z.number().int().min(1).optional(),\n\ttrimStart: z.number().int().min(0).optional(),\n\ttrimEnd: z.number().int().min(0).optional(),\n\tspeed: z.number().min(.25).max(4).optional()\n});\nconst VideoTextPropsSchema = z.object({\n\ttext: z.string().optional(),\n\tfontSize: z.number().optional(),\n\tfontFamily: z.string().optional(),\n\tfontStyle: z.string().optional(),\n\tfontWeight: z.union([z.number(), z.string()]).optional(),\n\tfill: z.string().optional(),\n\talign: z.string().optional(),\n\tdirection: z.enum([\n\t\t\"ltr\",\n\t\t\"rtl\",\n\t\t\"auto\"\n\t]).optional(),\n\tverticalAlign: z.string().optional(),\n\tletterSpacing: z.number().optional(),\n\tlineHeight: z.number().optional(),\n\tpadding: z.number().optional(),\n\tstroke: z.string().optional(),\n\tstrokeWidth: z.number().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\ttextBackgroundColor: z.string().optional(),\n\tshadows: z.array(z.object({\n\t\tcolor: z.string(),\n\t\toffset: z.object({\n\t\t\tx: z.number(),\n\t\t\ty: z.number()\n\t\t}).optional(),\n\t\tblurRadius: z.number().optional()\n\t})).optional(),\n\ttextAnimation: z.any().optional(),\n\tbottomPadding: z.number().optional(),\n\tmaxWidth: z.number().optional()\n});\nconst VideoStylePropsSchema = z.object({\n\tbackgroundColor: z.string().optional(),\n\tborderColor: z.string().optional(),\n\tborderWidth: z.number().optional(),\n\tstrokeRadius: z.number().optional(),\n\tautoDimensions: z.boolean().optional()\n});\nconst VideoLayerTypeSchema = z.enum([\n\t\"Video\",\n\t\"Image\",\n\t\"Audio\",\n\t\"Text\",\n\t\"Caption\",\n\t\"SVG\",\n\t\"GIF\",\n\t\"Lottie\"\n]);\nconst BaseVideoLayerPropsSchema = VideoSpatialPropsSchema.merge(VideoTimingPropsSchema).merge(VideoTextPropsSchema).merge(VideoStylePropsSchema).extend({\n\ttype: VideoLayerTypeSchema.optional(),\n\tanimations: z.array(VideoAnimationSchema).optional()\n});\n\n//#endregion\n//#region src/types/video/transition-schema.ts\nconst TransitionTypeSchema = z.enum([\n\t\"none\",\n\t\"crossfade\",\n\t\"wipe-left\",\n\t\"wipe-right\",\n\t\"slide-up\",\n\t\"slide-down\"\n]);\nconst TransitionSchema = z.object({\n\ttype: TransitionTypeSchema,\n\tdurationFrames: z.number().min(1)\n});\n\n//#endregion\n//#region src/types/video/virtual-video.ts\nconst MediaSourceSchema = z.object({ entity: FileAssetSchema.optional() });\nconst MediaMetadataSchema = z.object({\n\twidth: z.number().optional().nullable(),\n\theight: z.number().optional().nullable(),\n\tfps: z.number().optional().nullable(),\n\tdurationMs: z.number().optional().nullable(),\n\tsampleRate: z.number().optional().nullable(),\n\tchannels: z.number().optional().nullable(),\n\tbitDepth: z.number().optional().nullable(),\n\taudioCodec: z.string().optional().nullable(),\n\taudioBitrate: z.number().optional().nullable()\n});\nconst TimelineSegmentSchema = z.object({\n\tstartSec: z.number(),\n\tendSec: z.number().optional()\n});\nconst TimelineTransformSchema = z.object({\n\tstartFrame: z.number().optional(),\n\tsegments: z.array(TimelineSegmentSchema).optional()\n});\nconst BaseMediaOperationPropsSchema = z.object({\n\tvolume: z.number().optional(),\n\topacity: z.number().optional(),\n\tstartFrame: z.number().optional(),\n\tdurationFrames: z.number().optional(),\n\ttimeline: TimelineTransformSchema.optional()\n});\n/** Original source file (leaf node) */\nconst SourceOperationSchema = BaseMediaOperationPropsSchema.extend({\n\top: z.literal(\"source\"),\n\tsource: MediaSourceSchema,\n\tsourceMeta: MediaMetadataSchema,\n\tdataType: z.enum(Object.values(DataTypeVal))\n});\n/** Text content (leaf node) */\nconst TextOperationSchema = BaseMediaOperationPropsSchema.extend({\n\top: z.literal(\"text\"),\n\ttext: z.string(),\n\tmetadata: MediaMetadataSchema.optional(),\n\tdataType: z.enum(Object.values(DataTypeVal))\n}).passthrough();\nconst MediaOperationSchema = z.union([\n\tSourceOperationSchema,\n\tTextOperationSchema,\n\tBaseMediaOperationPropsSchema.extend({\n\t\top: z.string(),\n\t\tmetadata: MediaMetadataSchema.optional(),\n\t\tdataType: z.enum(Object.values(DataTypeVal))\n\t}).passthrough()\n]);\nconst VirtualMediaDataSchema = z.lazy(() => z.object({\n\tmetadata: MediaMetadataSchema,\n\toperation: MediaOperationSchema,\n\tchildren: z.array(VirtualMediaDataSchema).default([])\n}));\n\n//#endregion\n//#region src/types/video/layer-schema.ts\nconst ExtendedLayerSchema = BaseVideoLayerPropsSchema.extend({\n\tid: z.string(),\n\tname: z.string().optional(),\n\ttype: VideoLayerTypeSchema,\n\tvirtualMedia: VirtualMediaDataSchema.optional(),\n\ttransitionIn: TransitionSchema.optional(),\n\ttransitionOut: TransitionSchema.optional(),\n\tdurationInMS: z.number(),\n\tmaxDurationInMS: z.number().optional(),\n\tsrc: z.string().optional(),\n\tvolume: z.number().default(1),\n\tinputHandleId: z.string().optional(),\n\tisPlaceholder: z.boolean().optional(),\n\tlockAspect: z.boolean().optional(),\n\tlockRatio: z.boolean().optional(),\n\tzIndex: z.number().optional()\n}).strict();\n\n//#endregion\n//#region src/types/video/rendering-defaults.ts\nconst DEFAULT_FPS = 60;\nconst DEFAULT_DURATION_MS = 3e3;\nconst DEFAULT_MEDIA_DIMENSION = 1080;\n/** Default styling applied to new Text layers. */\nconst TEXT_LAYER_DEFAULTS = {\n\tfontSize: 60,\n\tfontFamily: \"Inter\",\n\tfill: \"#ffffff\",\n\tfontStyle: \"normal\",\n\talign: \"start\",\n\tpadding: 0\n};\n/** Default styling applied to new Caption layers. */\nconst CAPTION_LAYER_DEFAULTS = {\n\tfontSize: 48,\n\tfontFamily: \"Inter\",\n\tfill: \"#ffffff\",\n\talign: \"center\",\n\tverticalAlign: \"bottom\",\n\tpadding: 0,\n\tlineHeight: 1.1,\n\ttextAnimation: {\n\t\tin: \"none\",\n\t\tout: \"none\",\n\t\tentranceMs: 0,\n\t\texitMs: 0,\n\t\tkinetic: \"none\",\n\t\tapplyBy: \"word\",\n\t\tsmoothing: true\n\t},\n\tbottomPadding: 60\n};\n\n//#endregion\n//#region src/types/video/resolve-media.ts\n/**\n* Identify the actual leaf media type (Video, Image, etc) by walking down the tree.\n* This can differ from getMediaType() if an operation (like Ken Burns) upgrades\n* an Image to a Video.\n*/\nfunction getLeafMediaType(vv) {\n\tif (!vv) return void 0;\n\tif (vv.operation?.op === \"source\") return vv.operation.dataType;\n\tif (vv.children && vv.children.length > 0) return getLeafMediaType(vv.children[0]);\n\treturn vv.operation.dataType;\n}\n/**\n* Resolve the MIME type of the leaf source media.\n*/\nfunction resolveMediaMimeType(vv) {\n\tif (!vv) return void 0;\n\tif (vv.operation?.op === \"source\") {\n\t\tconst op = vv.operation;\n\t\tif (op.mimeType) return op.mimeType;\n\t\tif (op.sourceMeta?.mimeType) return op.sourceMeta.mimeType;\n\t\tif (op.source?.entity?.mimeType) return op.source.entity.mimeType;\n\t\tconst url = typeof op.source === \"string\" ? op.source : op.url ?? op.source?.url;\n\t\tif (typeof url === \"string\") {\n\t\t\tconst ext = url.split(\".\").pop()?.toLowerCase();\n\t\t\tif (ext === \"mp4\") return \"video/mp4\";\n\t\t\tif (ext === \"webm\") return \"video/webm\";\n\t\t\tif (ext === \"mov\") return \"video/quicktime\";\n\t\t\tif (ext === \"png\") return \"image/png\";\n\t\t\tif (ext === \"jpg\" || ext === \"jpeg\") return \"image/jpeg\";\n\t\t\tif (ext === \"webp\") return \"image/webp\";\n\t\t\tif (ext === \"svg\") return \"image/svg+xml\";\n\t\t\tif (ext === \"mp3\") return \"audio/mpeg\";\n\t\t\tif (ext === \"wav\") return \"audio/wav\";\n\t\t\tif (ext === \"aac\") return \"audio/aac\";\n\t\t}\n\t}\n\tif (vv.children && vv.children.length > 0) return resolveMediaMimeType(vv.children[0]);\n}\n/**\n* Create a VirtualMediaData from a FileData source or Text.\n* Used by Import, VideoGen, and Text nodes to wrap concrete content.\n*/\nfunction createVirtualMedia(source, type = \"Video\") {\n\tif (source && typeof source === \"object\" && \"operation\" in source && \"metadata\" in source) return source;\n\tif (typeof source === \"string\") {\n\t\tconst url = source;\n\t\tconst sourceMeta$1 = {\n\t\t\twidth: void 0,\n\t\t\theight: void 0,\n\t\t\tdurationMs: type === \"Image\" || /\\.(png|jpg|jpeg|webp|gif|svg)$/i.test(url) ? DEFAULT_DURATION_MS : void 0,\n\t\t\tfps: void 0\n\t\t};\n\t\treturn {\n\t\t\tmetadata: sourceMeta$1,\n\t\t\toperation: {\n\t\t\t\top: \"source\",\n\t\t\t\turl,\n\t\t\t\tsource: url,\n\t\t\t\tsourceMeta: sourceMeta$1,\n\t\t\t\tdataType: type\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t}\n\tif (typeof source === \"object\" && source !== null && (\"url\" in source || \"path\" in source)) {\n\t\tconst desc = source;\n\t\tconst url = desc.url ?? desc.path;\n\t\tconst isImage = type === \"Image\" || /\\.(png|jpg|jpeg|webp|gif|svg)$/i.test(url);\n\t\tconst durationMs = desc.durationMs ?? (isImage ? DEFAULT_DURATION_MS : void 0);\n\t\tconst sourceMeta$1 = {\n\t\t\twidth: desc.width,\n\t\t\theight: desc.height,\n\t\t\tdurationMs,\n\t\t\tfps: desc.fps,\n\t\t\tsampleRate: desc.sampleRate,\n\t\t\tchannels: desc.channels,\n\t\t\tbitDepth: desc.bitDepth,\n\t\t\taudioCodec: desc.audioCodec,\n\t\t\taudioBitrate: desc.audioBitrate\n\t\t};\n\t\treturn {\n\t\t\tmetadata: sourceMeta$1,\n\t\t\toperation: {\n\t\t\t\top: \"source\",\n\t\t\t\turl,\n\t\t\t\tsource: url,\n\t\t\t\tsourceMeta: sourceMeta$1,\n\t\t\t\tdataType: type\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t}\n\tconst sourceMeta = getFileDataMetadata(source) || {\n\t\twidth: void 0,\n\t\theight: void 0,\n\t\tdurationMs: void 0,\n\t\tfps: void 0\n\t};\n\treturn {\n\t\tmetadata: sourceMeta,\n\t\toperation: {\n\t\t\top: \"source\",\n\t\t\tsource: { entity: source?.entity },\n\t\t\tsourceMeta,\n\t\t\tdataType: type\n\t\t},\n\t\tchildren: []\n\t};\n}\n/**\n* Identify if a VirtualMediaData node is intended to be Video, Audio, Image, or Text.\n*/\nfunction getMediaType(vv) {\n\tif (!vv) throw new Error(\"No media data provided\");\n\treturn vv.operation.dataType;\n}\n/**\n* Append an operation to an existing VirtualMediaData (recursive).\n* This creates a new parent node wrapping the current one as a child.\n*/\nfunction appendOperation(vv, operation) {\n\treturn {\n\t\tmetadata: computeNextMetadata(getActiveMediaMetadata(vv) ?? {}, operation),\n\t\toperation,\n\t\tchildren: [vv]\n\t};\n}\n/**\n* Helper to compute the metadata of the NEXT node in the operator tree.\n*/\nfunction computeNextMetadata(baseMeta, op) {\n\tlet { width, height, durationMs, fps: fps$1, sampleRate, channels, bitDepth, audioCodec, audioBitrate } = baseMeta;\n\tif (\"metadata\" in op && op.metadata) {\n\t\twidth = op.metadata.width ?? width;\n\t\theight = op.metadata.height ?? height;\n\t\tdurationMs = op.metadata.durationMs ?? durationMs;\n\t\tfps$1 = op.metadata.fps ?? fps$1;\n\t\tsampleRate = op.metadata.sampleRate ?? sampleRate;\n\t\tchannels = op.metadata.channels ?? channels;\n\t\tbitDepth = op.metadata.bitDepth ?? bitDepth;\n\t\taudioCodec = op.metadata.audioCodec ?? audioCodec;\n\t\taudioBitrate = op.metadata.audioBitrate ?? audioBitrate;\n\t}\n\tif (op.dataType === \"Audio\" || op.dataType === \"Text\" || op.dataType === \"Caption\") {\n\t\twidth = void 0;\n\t\theight = void 0;\n\t\tfps$1 = void 0;\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tdurationMs,\n\t\tfps: fps$1,\n\t\tsampleRate,\n\t\tchannels,\n\t\tbitDepth,\n\t\taudioCodec,\n\t\taudioBitrate\n\t};\n}\nfunction getFileDataMetadata(filedata) {\n\tif (!filedata) return null;\n\tconst { entity } = filedata;\n\tconst width = entity?.width;\n\tconst height = entity?.height;\n\tlet durationMs = entity?.duration;\n\tconst fps$1 = entity?.fps;\n\tconst sampleRate = entity?.sampleRate;\n\tconst channels = entity?.channels;\n\tconst bitDepth = entity?.bitDepth;\n\tconst audioCodec = entity?.audioCodec;\n\tconst audioBitrate = entity?.audioBitrate;\n\tif (durationMs === void 0 || durationMs === null) {\n\t\tconst mimeType = entity?.mimeType ?? \"\";\n\t\tif (mimeType.startsWith(\"image/\") || mimeType === \"image/svg+xml\") durationMs = DEFAULT_DURATION_MS;\n\t}\n\tif (width === void 0 && height === void 0 && durationMs === void 0 && sampleRate === void 0 && channels === void 0) return null;\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tdurationMs: durationMs === 0 ? void 0 : durationMs,\n\t\tfps: fps$1,\n\t\tsampleRate,\n\t\tchannels,\n\t\tbitDepth,\n\t\taudioCodec,\n\t\taudioBitrate\n\t};\n}\n/**\n* Get the active metadata from the VirtualMediaData node.\n* Simply returns the metadata property of the node.\n* Supports legacy formats (sourceMeta) and extracts from source if needed.\n*/\nfunction getActiveMediaMetadata(vv) {\n\tif (!vv) return null;\n\tlet width = vv.metadata?.width;\n\tlet height = vv.metadata?.height;\n\tlet durationMs = vv.metadata?.durationMs;\n\tlet fps$1 = vv.metadata?.fps;\n\tlet sampleRate = vv.metadata?.sampleRate;\n\tlet channels = vv.metadata?.channels;\n\tlet bitDepth = vv.metadata?.bitDepth;\n\tlet audioCodec = vv.metadata?.audioCodec;\n\tlet audioBitrate = vv.metadata?.audioBitrate;\n\tconst op = vv.operation;\n\tif (op?.op === \"source\") {\n\t\tconst sm = op.sourceMeta || {};\n\t\tconst fdm = op.source ? getFileDataMetadata(op.source) : null;\n\t\twidth = width ?? sm.width ?? fdm?.width;\n\t\theight = height ?? sm.height ?? fdm?.height;\n\t\tdurationMs = durationMs ?? sm.durationMs ?? fdm?.durationMs;\n\t\tfps$1 = fps$1 ?? sm.fps ?? fdm?.fps;\n\t\tsampleRate = sampleRate ?? sm.sampleRate ?? fdm?.sampleRate;\n\t\tchannels = channels ?? sm.channels ?? fdm?.channels;\n\t\tbitDepth = bitDepth ?? sm.bitDepth ?? fdm?.bitDepth;\n\t\taudioCodec = audioCodec ?? sm.audioCodec ?? fdm?.audioCodec;\n\t\taudioBitrate = audioBitrate ?? sm.audioBitrate ?? fdm?.audioBitrate;\n\t}\n\tif (width === void 0 && height === void 0 && durationMs === void 0 && sampleRate === void 0 && channels === void 0) return null;\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tdurationMs: durationMs === 0 ? void 0 : durationMs,\n\t\tfps: fps$1,\n\t\tsampleRate,\n\t\tchannels,\n\t\tbitDepth,\n\t\taudioCodec,\n\t\taudioBitrate\n\t};\n}\n/**\n* Compute the dimensions and offsets for rendering a cropped video.\n* Traverses the VirtualMediaData tree to find nested crops and source dimensions.\n*/\nfunction computeVideoCropRenderProps(virtualMedia) {\n\tlet totalOffsetX = 0;\n\tlet totalOffsetY = 0;\n\tlet hasCrop = false;\n\tlet sourceMetaFound = null;\n\tlet currentNode = virtualMedia;\n\twhile (currentNode) {\n\t\tconst op = currentNode.operation;\n\t\tif (op.op === \"Crop\") {\n\t\t\thasCrop = true;\n\t\t\tconst anyOp = op;\n\t\t\tconst inputMeta = currentNode.children[0]?.metadata;\n\t\t\tconst inputW = inputMeta?.width ?? 0;\n\t\t\tconst inputH = inputMeta?.height ?? 0;\n\t\t\tif (inputW > 0 && inputH > 0) {\n\t\t\t\tconst cropLeftPx = anyOp.leftPercentage / 100 * inputW;\n\t\t\t\tconst cropTopPx = anyOp.topPercentage / 100 * inputH;\n\t\t\t\ttotalOffsetX += cropLeftPx;\n\t\t\t\ttotalOffsetY += cropTopPx;\n\t\t\t}\n\t\t}\n\t\tif (op.op === \"source\") sourceMetaFound = op.sourceMeta ?? currentNode.metadata;\n\t\tcurrentNode = currentNode.children[0];\n\t}\n\tif (!hasCrop || !sourceMetaFound) return null;\n\tconst sourceW = sourceMetaFound.width ?? 1;\n\tconst sourceH = sourceMetaFound.height ?? 1;\n\treturn {\n\t\tvideoNaturalWidth: sourceW,\n\t\tvideoNaturalHeight: sourceH,\n\t\tcropTranslatePercentageX: -(totalOffsetX / sourceW) * 100,\n\t\tcropTranslatePercentageY: -(totalOffsetY / sourceH) * 100\n\t};\n}\n\n//#endregion\n//#region src/utils/assert.ts\n/**\n* Compile-time exhaustiveness check helper for discriminated unions and enums.\n*\n* In switch statements or if-else ladders, passing the unhandled variable to\n* `assertNever(x)` will fail TypeScript compilation if any variant was missed.\n* At runtime, if an unexpected value arrives (e.g. from unvalidated JSON), it throws\n* a descriptive Error.\n*/\nfunction assertNever(value, message) {\n\tconst detail = typeof value === \"object\" && value !== null ? JSON.stringify(value) : String(value);\n\tthrow new Error(message ?? `Unhandled union variant: ${detail}`);\n}\n\n//#endregion\n//#region src/utils/color.ts\nconst NAMED = {\n\ttransparent: \"#00000000\",\n\tblack: \"#000000\",\n\twhite: \"#ffffff\",\n\tred: \"#ff0000\",\n\tgreen: \"#008000\",\n\tlime: \"#00ff00\",\n\tblue: \"#0000ff\",\n\tyellow: \"#ffff00\",\n\tcyan: \"#00ffff\",\n\taqua: \"#00ffff\",\n\tmagenta: \"#ff00ff\",\n\tfuchsia: \"#ff00ff\",\n\torange: \"#ffa500\",\n\tpurple: \"#800080\",\n\tpink: \"#ffc0cb\",\n\tgray: \"#808080\",\n\tgrey: \"#808080\",\n\tsilver: \"#c0c0c0\",\n\tmaroon: \"#800000\",\n\tnavy: \"#000080\",\n\tteal: \"#008080\",\n\tolive: \"#808000\",\n\tgold: \"#ffd700\",\n\tcoral: \"#ff7f50\",\n\tsalmon: \"#fa8072\",\n\tcrimson: \"#dc143c\",\n\tindigo: \"#4b0082\",\n\tviolet: \"#ee82ee\",\n\tturquoise: \"#40e0d0\",\n\ttomato: \"#ff6347\",\n\tchocolate: \"#d2691e\",\n\ttan: \"#d2b48c\",\n\tbeige: \"#f5f5dc\",\n\tivory: \"#fffff0\",\n\tkhaki: \"#f0e68c\",\n\tlavender: \"#e6e6fa\",\n\tmint: \"#98ff98\",\n\tskyblue: \"#87ceeb\",\n\tslategray: \"#708090\",\n\tdimgray: \"#696969\",\n\tlightgray: \"#d3d3d3\",\n\tdarkgray: \"#a9a9a9\",\n\twhitesmoke: \"#f5f5f5\",\n\thotpink: \"#ff69b4\",\n\tdeeppink: \"#ff1493\",\n\tdodgerblue: \"#1e90ff\",\n\troyalblue: \"#4169e1\",\n\tsteelblue: \"#4682b4\",\n\tmidnightblue: \"#191970\",\n\tlimegreen: \"#32cd32\",\n\tforestgreen: \"#228b22\",\n\tseagreen: \"#2e8b57\",\n\tdarkorange: \"#ff8c00\",\n\torangered: \"#ff4500\",\n\tfirebrick: \"#b22222\",\n\trebeccapurple: \"#663399\"\n};\nconst clamp01 = (v) => v < 0 ? 0 : v > 1 ? 1 : v;\nfunction parseHex(h) {\n\tif (!/^[0-9a-f]+$/i.test(h)) return null;\n\tconst x = (i, n) => parseInt(n === 1 ? h[i] + h[i] : h.slice(i, i + 2), 16) / 255;\n\tswitch (h.length) {\n\t\tcase 3: return [\n\t\t\tx(0, 1),\n\t\t\tx(1, 1),\n\t\t\tx(2, 1),\n\t\t\t1\n\t\t];\n\t\tcase 4: return [\n\t\t\tx(0, 1),\n\t\t\tx(1, 1),\n\t\t\tx(2, 1),\n\t\t\tx(3, 1)\n\t\t];\n\t\tcase 6: return [\n\t\t\tx(0, 2),\n\t\t\tx(2, 2),\n\t\t\tx(4, 2),\n\t\t\t1\n\t\t];\n\t\tcase 8: return [\n\t\t\tx(0, 2),\n\t\t\tx(2, 2),\n\t\t\tx(4, 2),\n\t\t\tx(6, 2)\n\t\t];\n\t\tdefault: return null;\n\t}\n}\n/** Splits `rgb(1 2 3 / 50%)` or `rgb(1, 2, 3, .5)` into its argument tokens. */\nfunction fnArgs(body) {\n\treturn body.replace(/\\s*\\/\\s*/, \" \").split(/[\\s,]+/).filter(Boolean);\n}\n/** A number, or a percentage scaled so 100% = `pct100`. */\nfunction num(tok, pct100) {\n\tif (tok === void 0 || tok === \"none\") return 0;\n\tif (tok.endsWith(\"%\")) return parseFloat(tok) / 100 * pct100;\n\treturn parseFloat(tok);\n}\nfunction hue(tok) {\n\tif (tok === void 0) return 0;\n\tif (tok.endsWith(\"turn\")) return parseFloat(tok) * 360;\n\tif (tok.endsWith(\"rad\")) return parseFloat(tok) * 180 / Math.PI;\n\treturn parseFloat(tok);\n}\nfunction alpha(tok) {\n\treturn tok === void 0 ? 1 : clamp01(num(tok, 1));\n}\nfunction hslToRgb(h, s, l) {\n\tconst a = s * Math.min(l, 1 - l);\n\tconst f = (n) => {\n\t\tconst k = (n + h / 30) % 12;\n\t\treturn l - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));\n\t};\n\treturn [\n\t\tf(0),\n\t\tf(8),\n\t\tf(4)\n\t];\n}\nconst toLinear = (c) => c <= .04045 ? c / 12.92 : ((c + .055) / 1.055) ** 2.4;\nconst toGamma = (c) => c <= .0031308 ? 12.92 * c : 1.055 * c ** (1 / 2.4) - .055;\n/** sRGB (0..1) → OKLab [L, a, b]. */\nfunction rgbToOklab(r, g, b) {\n\tconst lr = toLinear(r);\n\tconst lg = toLinear(g);\n\tconst lb = toLinear(b);\n\tconst l = Math.cbrt(.4122214708 * lr + .5363325363 * lg + .0514459929 * lb);\n\tconst m = Math.cbrt(.2119034982 * lr + .6806995451 * lg + .1073969566 * lb);\n\tconst s = Math.cbrt(.0883024619 * lr + .2817188376 * lg + .6299787005 * lb);\n\treturn [\n\t\t.2104542553 * l + .793617785 * m - .0040720468 * s,\n\t\t1.9779984951 * l - 2.428592205 * m + .4505937099 * s,\n\t\t.0259040371 * l + .7827717662 * m - .808675766 * s\n\t];\n}\n/** OKLab → sRGB (0..1, clamped to gamut). */\nfunction oklabToRgb(L, a, b) {\n\tconst l = (L + .3963377774 * a + .2158037573 * b) ** 3;\n\tconst m = (L - .1055613458 * a - .0638541728 * b) ** 3;\n\tconst s = (L - .0894841775 * a - 1.291485548 * b) ** 3;\n\treturn [\n\t\tclamp01(toGamma(4.0767416621 * l - 3.3077115913 * m + .2309699292 * s)),\n\t\tclamp01(toGamma(-1.2684380046 * l + 2.6097574011 * m - .3413193965 * s)),\n\t\tclamp01(toGamma(-.0041960863 * l - .7034186147 * m + 1.707614701 * s))\n\t];\n}\n/**\n* Parses any CSS color this engine accepts: hex (3/4/6/8), `rgb()`/`rgba()`,\n* `hsl()`/`hsla()`, `oklch()`, `oklab()` (comma or space syntax, `/ alpha`)\n* and common named colors. Returns `null` when the string is not a color.\n*/\nfunction parseCssColor(input) {\n\tconst s = input.trim().toLowerCase();\n\tif (!s) return null;\n\tif (s.startsWith(\"#\")) return parseHex(s.slice(1));\n\tconst named = NAMED[s];\n\tif (named) return parseHex(named.slice(1));\n\tconst m = /^([a-z]+)\\((.*)\\)$/.exec(s);\n\tif (!m) return null;\n\tconst [, fn, body] = m;\n\tconst t = fnArgs(body);\n\tswitch (fn) {\n\t\tcase \"rgb\":\n\t\tcase \"rgba\": return [\n\t\t\tclamp01(num(t[0], 255) / 255),\n\t\t\tclamp01(num(t[1], 255) / 255),\n\t\t\tclamp01(num(t[2], 255) / 255),\n\t\t\talpha(t[3])\n\t\t];\n\t\tcase \"hsl\":\n\t\tcase \"hsla\": {\n\t\t\tconst [r, g, b] = hslToRgb((hue(t[0]) % 360 + 360) % 360, clamp01(num(t[1], 100) / 100), clamp01(num(t[2], 100) / 100));\n\t\t\treturn [\n\t\t\t\tr,\n\t\t\t\tg,\n\t\t\t\tb,\n\t\t\t\talpha(t[3])\n\t\t\t];\n\t\t}\n\t\tcase \"oklch\": {\n\t\t\tconst L = num(t[0], 1);\n\t\t\tconst C = num(t[1], .4);\n\t\t\tconst H = hue(t[2]) * Math.PI / 180;\n\t\t\tconst [r, g, b] = oklabToRgb(L, C * Math.cos(H), C * Math.sin(H));\n\t\t\treturn [\n\t\t\t\tr,\n\t\t\t\tg,\n\t\t\t\tb,\n\t\t\t\talpha(t[3])\n\t\t\t];\n\t\t}\n\t\tcase \"oklab\": {\n\t\t\tconst [r, g, b] = oklabToRgb(num(t[0], 1), num(t[1], .4), num(t[2], .4));\n\t\t\treturn [\n\t\t\t\tr,\n\t\t\t\tg,\n\t\t\t\tb,\n\t\t\t\talpha(t[3])\n\t\t\t];\n\t\t}\n\t\tdefault: return null;\n\t}\n}\n/** Formats straight sRGB as `#rrggbb` (or `#rrggbbaa` when translucent). */\nfunction formatHex([r, g, b, a]) {\n\tconst h = (v) => Math.round(clamp01(v) * 255).toString(16).padStart(2, \"0\");\n\treturn `#${h(r)}${h(g)}${h(b)}${a < .999 ? h(a) : \"\"}`;\n}\nconst parseOr = (c) => parseCssColor(c) ?? [\n\t0,\n\t0,\n\t0,\n\t0\n];\n/**\n* Mixes two colors perceptually (in OKLab), `t` = 0 → `a`, 1 → `b`.\n* Midpoints keep their lightness and saturation instead of going muddy\n* the way a plain sRGB lerp does.\n*/\nfunction mixColors(a, b, t) {\n\tconst ca = parseOr(a);\n\tconst cb = parseOr(b);\n\tconst pa = ca[3] < 1e-4 ? cb : ca;\n\tconst pb = cb[3] < 1e-4 ? ca : cb;\n\tconst la = rgbToOklab(pa[0], pa[1], pa[2]);\n\tconst lb = rgbToOklab(pb[0], pb[1], pb[2]);\n\tconst k = clamp01(t);\n\tconst [r, g, bl] = oklabToRgb(la[0] + (lb[0] - la[0]) * k, la[1] + (lb[1] - la[1]) * k, la[2] + (lb[2] - la[2]) * k);\n\treturn formatHex([\n\t\tr,\n\t\tg,\n\t\tbl,\n\t\tca[3] + (cb[3] - ca[3]) * k\n\t]);\n}\n/** Samples a multi-stop gradient (stops in any order) at `t` ∈ [0, 1]. */\nfunction sampleColorStops(stops, t) {\n\tconst list = normalizeColorStops(stops);\n\tif (list.length === 0) return \"#00000000\";\n\tif (t <= list[0].offset) return list[0].color;\n\tfor (let i = 1; i < list.length; i++) {\n\t\tconst b = list[i];\n\t\tif (t <= b.offset) {\n\t\t\tconst a = list[i - 1];\n\t\t\tconst span = b.offset - a.offset;\n\t\t\treturn mixColors(a.color, b.color, span > 0 ? (t - a.offset) / span : 1);\n\t\t}\n\t}\n\treturn list[list.length - 1].color;\n}\n/** Bare color strings become evenly spaced stops; result is sorted by offset. */\nfunction normalizeColorStops(stops) {\n\tconst n = stops.length;\n\treturn stops.map((s, i) => typeof s === \"string\" ? {\n\t\toffset: n > 1 ? i / (n - 1) : 0,\n\t\tcolor: s\n\t} : {\n\t\toffset: clamp01(s.offset),\n\t\tcolor: s.color\n\t}).sort((a, b) => a.offset - b.offset);\n}\nfunction oklchOf(c) {\n\tconst [r, g, b, a] = parseOr(c);\n\tconst [L, A, B] = rgbToOklab(r, g, b);\n\treturn [\n\t\tL,\n\t\tMath.hypot(A, B),\n\t\tMath.atan2(B, A) * 180 / Math.PI,\n\t\ta\n\t];\n}\nfunction fromOklch(L, C, H, a) {\n\tconst h = H * Math.PI / 180;\n\tconst [r, g, b] = oklabToRgb(L, C * Math.cos(h), C * Math.sin(h));\n\treturn formatHex([\n\t\tr,\n\t\tg,\n\t\tb,\n\t\ta\n\t]);\n}\n/**\n* Authoring helpers for colors. Every function returns a hex string, so the\n* result drops straight into any color prop or keyframe.\n*\n* ```ts\n* Color.oklch(0.7, 0.15, 250) // perceptual: equal L reads equally bright\n* Color.hsl(212, 0.95, 0.74)\n* Color.mix(\"#ff5a1f\", \"#1f6bff\", 0.5) // OKLab, no muddy midpoint\n* const wave = Color.ramp([\"#3b82f6\", \"#8b5cf6\", \"#ec4899\"]);\n* wave(0.5) // sample a gradient\n* Color.lighten(\"#ff5a1f\", 0.1), Color.alpha(\"#000\", 0.4)\n* ```\n*/\nconst Color = {\n\tparse: parseCssColor,\n\thex(c) {\n\t\treturn formatHex(parseOr(c));\n\t},\n\trgb(r, g, b, a = 1) {\n\t\treturn formatHex([\n\t\t\tr / 255,\n\t\t\tg / 255,\n\t\t\tb / 255,\n\t\t\ta\n\t\t]);\n\t},\n\thsl(h, s, l, a = 1) {\n\t\tconst [r, g, b] = hslToRgb((h % 360 + 360) % 360, clamp01(s), clamp01(l));\n\t\treturn formatHex([\n\t\t\tr,\n\t\t\tg,\n\t\t\tb,\n\t\t\ta\n\t\t]);\n\t},\n\toklch(l, c, h, a = 1) {\n\t\treturn fromOklch(l, c, h, a);\n\t},\n\tmix: mixColors,\n\tramp(stops) {\n\t\tconst list = normalizeColorStops(stops);\n\t\treturn (t) => sampleColorStops(list, t);\n\t},\n\tsteps(stops, n) {\n\t\tconst list = normalizeColorStops(stops);\n\t\treturn Array.from({ length: n }, (_, i) => sampleColorStops(list, n > 1 ? i / (n - 1) : 0));\n\t},\n\tlighten(c, amount) {\n\t\tconst [L, C, H, a] = oklchOf(c);\n\t\treturn fromOklch(clamp01(L + amount), C, H, a);\n\t},\n\tdarken(c, amount) {\n\t\tconst [L, C, H, a] = oklchOf(c);\n\t\treturn fromOklch(clamp01(L - amount), C, H, a);\n\t},\n\tsaturate(c, factor) {\n\t\tconst [L, C, H, a] = oklchOf(c);\n\t\treturn fromOklch(L, C * factor, H, a);\n\t},\n\trotate(c, degrees$1) {\n\t\tconst [L, C, H, a] = oklchOf(c);\n\t\treturn fromOklch(L, C, H + degrees$1, a);\n\t},\n\talpha(c, a) {\n\t\tconst [r, g, b] = parseOr(c);\n\t\treturn formatHex([\n\t\t\tr,\n\t\t\tg,\n\t\t\tb,\n\t\t\tclamp01(a)\n\t\t]);\n\t},\n\tcontrast(a, b) {\n\t\tconst lum = (c) => {\n\t\t\tconst [r, g, bl] = parseOr(c);\n\t\t\treturn .2126 * toLinear(r) + .7152 * toLinear(g) + .0722 * toLinear(bl);\n\t\t};\n\t\tconst [hi, lo] = [lum(a), lum(b)].sort((x, y) => y - x);\n\t\treturn (hi + .05) / (lo + .05);\n\t},\n\treadableOn(background) {\n\t\treturn Color.contrast(background, \"#ffffff\") >= Color.contrast(background, \"#000000\") ? \"#ffffff\" : \"#000000\";\n\t}\n};\n\n//#endregion\n//#region src/utils/gradient.ts\n/**\n* CSS gradients (`linear-gradient`, `radial-gradient`, `conic-gradient`) as\n* values for any `background` or shape `fill`, plus `Gradient` helpers that\n* write them. Colors blend perceptually (OKLab), not through muddy sRGB.\n*/\n/** Gradients this renderer draws at most this many stops (extra ones are resampled). */\nconst MAX_GRADIENT_STOPS = 8;\nconst GRADIENT_RE = /^\\s*(linear|radial|conic)-gradient\\(\\s*([\\s\\S]*)\\)\\s*$/i;\nfunction isCssGradient(value) {\n\treturn typeof value === \"string\" && GRADIENT_RE.test(value);\n}\n/** Splits on commas that are not inside parentheses. */\nfunction splitTopLevel(s) {\n\tconst out = [];\n\tlet depth = 0;\n\tlet cur = \"\";\n\tfor (const ch of s) {\n\t\tif (ch === \"(\") depth++;\n\t\tif (ch === \")\") depth--;\n\t\tif (ch === \",\" && depth === 0) {\n\t\t\tout.push(cur.trim());\n\t\t\tcur = \"\";\n\t\t} else cur += ch;\n\t}\n\tif (cur.trim()) out.push(cur.trim());\n\treturn out;\n}\nfunction parseAngle(tok) {\n\tconst m = /^(-?[\\d.]+)(deg|turn|rad|grad)?$/i.exec(tok.trim());\n\tif (!m) return null;\n\tconst v = parseFloat(m[1]);\n\tswitch ((m[2] ?? \"deg\").toLowerCase()) {\n\t\tcase \"turn\": return v * 360;\n\t\tcase \"rad\": return v * 180 / Math.PI;\n\t\tcase \"grad\": return v * .9;\n\t\tdefault: return v;\n\t}\n}\nconst SIDE_ANGLES = {\n\ttop: 0,\n\tright: 90,\n\tbottom: 180,\n\tleft: 270,\n\t\"top right\": 45,\n\t\"right top\": 45,\n\t\"bottom right\": 135,\n\t\"right bottom\": 135,\n\t\"bottom left\": 225,\n\t\"left bottom\": 225,\n\t\"top left\": 315,\n\t\"left top\": 315\n};\nconst POSITION_KEYWORDS = {\n\tleft: 0,\n\ttop: 0,\n\tcenter: .5,\n\tright: 1,\n\tbottom: 1\n};\n/** `at 30% 70%`, `at left top`, `at center`. */\nfunction parsePosition(tokens) {\n\tconst vals = tokens.map((t) => t in POSITION_KEYWORDS ? {\n\t\tv: POSITION_KEYWORDS[t],\n\t\taxis: t === \"top\" || t === \"bottom\" ? \"y\" : t === \"left\" || t === \"right\" ? \"x\" : \"any\"\n\t} : {\n\t\tv: t.endsWith(\"%\") ? parseFloat(t) / 100 : .5,\n\t\taxis: \"any\"\n\t});\n\tlet x = .5;\n\tlet y = .5;\n\tif (vals.length === 1) if (vals[0].axis === \"y\") y = vals[0].v;\n\telse x = vals[0].v;\n\telse if (vals.length >= 2) if (vals[0].axis === \"y\" || vals[1].axis === \"x\") {\n\t\ty = vals[0].v;\n\t\tx = vals[1].v;\n\t} else {\n\t\tx = vals[0].v;\n\t\ty = vals[1].v;\n\t}\n\treturn [x, y];\n}\n/** Parses one `color [pos] [pos]` stop list entry; positions in 0..1 (or px later). */\nfunction parseStop(s) {\n\tconst m = /^((?:[a-z]+\\([^)]*\\))|#[0-9a-f]+|[a-z]+)\\s*(.*)$/i.exec(s.trim());\n\tif (!m) return null;\n\tconst color = parseCssColor(m[1]);\n\tif (!color) return null;\n\tconst positions = [];\n\tfor (const p of m[2].split(/\\s+/).filter(Boolean)) if (p.endsWith(\"%\")) positions.push(parseFloat(p) / 100);\n\telse if (p === \"0\") positions.push(0);\n\telse if (/(deg|turn|rad|grad)$/i.test(p)) {\n\t\tconst a = parseAngle(p);\n\t\tif (a !== null) positions.push(a / 360);\n\t}\n\treturn {\n\t\tcolor,\n\t\tpositions: positions.filter((p) => Number.isFinite(p))\n\t};\n}\n/** CSS stop fixup: clamp ascending, spread unpositioned stops evenly. */\nfunction resolveStops(raw) {\n\tconst n = raw.length;\n\tif (n === 0) return [];\n\tconst pos = raw.map((r) => r.position);\n\tif (pos[0] === void 0) pos[0] = 0;\n\tif (pos[n - 1] === void 0) pos[n - 1] = 1;\n\tlet maxSoFar = -Infinity;\n\tfor (let i = 0; i < n; i++) {\n\t\tconst p = pos[i];\n\t\tif (p !== void 0) {\n\t\t\tpos[i] = Math.max(p, maxSoFar);\n\t\t\tmaxSoFar = pos[i];\n\t\t}\n\t}\n\tfor (let i = 1; i < n; i++) {\n\t\tif (pos[i] !== void 0) continue;\n\t\tlet j = i;\n\t\twhile (pos[j] === void 0) j++;\n\t\tconst a = pos[i - 1];\n\t\tconst b = pos[j];\n\t\tfor (let k = i; k < j; k++) pos[k] = a + (b - a) * (k - i + 1) / (j - i + 1);\n\t}\n\treturn raw.map((r, i) => ({\n\t\toffset: pos[i],\n\t\tcolor: r.color\n\t}));\n}\nconst cache = /* @__PURE__ */ new Map();\n/** Parses a CSS gradient string; `null` when it is not one this engine draws. */\nfunction parseCssGradient(input) {\n\tconst hit = cache.get(input);\n\tif (hit !== void 0) return hit;\n\tconst result = parseUncached(input);\n\tif (cache.size > 512) cache.clear();\n\tcache.set(input, result);\n\treturn result;\n}\nfunction parseUncached(input) {\n\tconst m = GRADIENT_RE.exec(input);\n\tif (!m) return null;\n\tconst type = m[1].toLowerCase();\n\tconst parts = splitTopLevel(m[2]);\n\tconst g = {\n\t\ttype,\n\t\tangle: 180,\n\t\tcenter: [.5, .5],\n\t\tshape: \"ellipse\",\n\t\tfrom: 0,\n\t\tstops: []\n\t};\n\tconst first = parts[0]?.toLowerCase().trim() ?? \"\";\n\tlet consumedFirst = false;\n\tif (type === \"linear\") if (first.startsWith(\"to \")) {\n\t\tconst side = first.slice(3).trim().replace(/\\s+/g, \" \");\n\t\tif (side in SIDE_ANGLES) {\n\t\t\tg.angle = SIDE_ANGLES[side];\n\t\t\tconsumedFirst = true;\n\t\t}\n\t} else {\n\t\tconst a = parseAngle(first);\n\t\tif (a !== null) {\n\t\t\tg.angle = a;\n\t\t\tconsumedFirst = true;\n\t\t}\n\t}\n\telse {\n\t\tconst tokens = first.split(/\\s+/).filter(Boolean);\n\t\tconst at = tokens.indexOf(\"at\");\n\t\tconst before = at >= 0 ? tokens.slice(0, at) : tokens;\n\t\tif (at >= 0 || before.some((t) => t === \"circle\" || t === \"ellipse\" || t === \"from\" || /^closest|^farthest/.test(t) || type === \"radial\" && /px$/.test(t))) {\n\t\t\tconsumedFirst = true;\n\t\t\tif (at >= 0) g.center = parsePosition(tokens.slice(at + 1));\n\t\t\tif (type === \"radial\") {\n\t\t\t\tif (before.includes(\"circle\")) g.shape = \"circle\";\n\t\t\t\tconst px = before.filter((t) => /px$/.test(t)).map((t) => parseFloat(t));\n\t\t\t\tif (px.length === 1) {\n\t\t\t\t\tg.shape = \"circle\";\n\t\t\t\t\tg.radius = [px[0], px[0]];\n\t\t\t\t} else if (px.length >= 2) g.radius = [px[0], px[1]];\n\t\t\t} else {\n\t\t\t\tconst f = before.indexOf(\"from\");\n\t\t\t\tif (f >= 0 && before[f + 1]) g.from = parseAngle(before[f + 1]) ?? 0;\n\t\t\t}\n\t\t}\n\t}\n\tconst raw = [];\n\tfor (const p of consumedFirst ? parts.slice(1) : parts) {\n\t\tconst stop = parseStop(p);\n\t\tif (!stop) return null;\n\t\tif (stop.positions.length === 0) raw.push({ color: stop.color });\n\t\tfor (const pos of stop.positions) raw.push({\n\t\t\tcolor: stop.color,\n\t\t\tposition: pos\n\t\t});\n\t}\n\tif (raw.length === 0) return null;\n\tif (raw.length === 1) raw.push({ ...raw[0] });\n\tg.stops = resolveStops(raw);\n\treturn g;\n}\n/** Up to MAX_GRADIENT_STOPS stops: longer lists are resampled evenly. */\nfunction limitGradientStops(stops) {\n\tif (stops.length <= MAX_GRADIENT_STOPS) return stops;\n\tconst out = [];\n\tconst lo = stops[0].offset;\n\tconst hi = stops[stops.length - 1].offset;\n\tfor (let i = 0; i < MAX_GRADIENT_STOPS; i++) {\n\t\tconst t = lo + (hi - lo) * i / (MAX_GRADIENT_STOPS - 1);\n\t\tlet k = 1;\n\t\twhile (k < stops.length - 1 && stops[k].offset < t) k++;\n\t\tconst a = stops[k - 1];\n\t\tconst b = stops[k];\n\t\tconst span = b.offset - a.offset;\n\t\tconst f = span > 0 ? Math.min(1, Math.max(0, (t - a.offset) / span)) : 1;\n\t\tout.push({\n\t\t\toffset: t,\n\t\t\tcolor: a.color.map((v, j) => v + (b.color[j] - v) * f)\n\t\t});\n\t}\n\treturn out;\n}\n/**\n* Stops as OKLab + alpha for the GPU. A transparent stop borrows its\n* neighbor's color, so fading to `transparent` keeps the hue instead of\n* passing through grey (CSS premultiplied interpolation does the same).\n*/\nfunction gradientStopsToOklab(stops) {\n\tconst lab = stops.map((s) => rgbToOklab(s.color[0], s.color[1], s.color[2]));\n\treturn stops.map((s, i) => {\n\t\tlet src = lab[i];\n\t\tif (s.color[3] < 1e-4) {\n\t\t\tconst prev = stops.slice(0, i).reverse().findIndex((p) => p.color[3] > 1e-4);\n\t\t\tconst next = stops.slice(i + 1).findIndex((p) => p.color[3] > 1e-4);\n\t\t\tconst pi = prev >= 0 ? i - 1 - prev : -1;\n\t\t\tconst ni = next >= 0 ? i + 1 + next : -1;\n\t\t\tif (pi >= 0 && ni >= 0) {\n\t\t\t\tconst a = lab[pi];\n\t\t\t\tconst b = lab[ni];\n\t\t\t\tsrc = [\n\t\t\t\t\t(a[0] + b[0]) / 2,\n\t\t\t\t\t(a[1] + b[1]) / 2,\n\t\t\t\t\t(a[2] + b[2]) / 2\n\t\t\t\t];\n\t\t\t} else if (pi >= 0) src = lab[pi];\n\t\t\telse if (ni >= 0) src = lab[ni];\n\t\t}\n\t\treturn [\n\t\t\tsrc[0],\n\t\t\tsrc[1],\n\t\t\tsrc[2],\n\t\t\ts.color[3]\n\t\t];\n\t});\n}\nfunction stopList(stops) {\n\treturn stops.map((s) => typeof s === \"string\" ? s : `${s.color} ${Math.round(s.offset * 1e4) / 100}%`).join(\", \");\n}\n/**\n* Writes CSS gradient strings for `background` / `fill`:\n*\n* ```ts\n* Layer.box({ background: Gradient.linear([\"#ff5a1f\", \"#7c3aed\"], 135) })\n* Layer.shape(\"circle\", { fill: Gradient.radial([\"#fff\", \"transparent\"]) })\n* Gradient.conic([\"red\", \"yellow\", \"lime\", \"aqua\", \"blue\", \"magenta\", \"red\"])\n* ```\n* Plain strings work too: `\"linear-gradient(to right, #000, #fff 80%)\"`.\n*/\nconst Gradient = {\n\tlinear(stops, angle = 180) {\n\t\treturn `linear-gradient(${angle}deg, ${stopList(stops)})`;\n\t},\n\tradial(stops, options = {}) {\n\t\tconst at = options.at ?? [.5, .5];\n\t\treturn `radial-gradient(${options.radius !== void 0 ? `${options.radius}px` : options.circle ? \"circle\" : \"ellipse\"} at ${at[0] * 100}% ${at[1] * 100}%, ${stopList(stops)})`;\n\t},\n\tconic(stops, options = {}) {\n\t\tconst at = options.at ?? [.5, .5];\n\t\treturn `conic-gradient(from ${options.from ?? 0}deg at ${at[0] * 100}% ${at[1] * 100}%, ${stopList(stops)})`;\n\t},\n\tparse: parseCssGradient,\n\tis: isCssGradient\n};\n\n//#endregion\n//#region src/utils/is-equal.ts\n/**\n* Performs a deep comparison between two values to determine if they are equivalent.\n* Handles primitives, objects, arrays, Dates, and NaNs.\n*/\nfunction isEqual(a, b) {\n\tif (a === b) return true;\n\tif (typeof a === \"number\" && typeof b === \"number\" && Number.isNaN(a) && Number.isNaN(b)) return true;\n\tif (a && b && typeof a === \"object\" && typeof b === \"object\") {\n\t\tif (a.constructor !== b.constructor) return false;\n\t\tif (Array.isArray(a)) {\n\t\t\tif (a.length !== b.length) return false;\n\t\t\tfor (let i = 0; i < a.length; i++) if (!isEqual(a[i], b[i])) return false;\n\t\t\treturn true;\n\t\t}\n\t\tif (a instanceof Date) return a.getTime() === b.getTime();\n\t\tif (a instanceof RegExp) return a.toString() === b.toString();\n\t\tconst keys = Object.keys(a);\n\t\tif (keys.length !== Object.keys(b).length) return false;\n\t\tfor (const key of keys) {\n\t\t\tif (!Object.hasOwn(b, key)) return false;\n\t\t\tif (!isEqual(a[key], b[key])) return false;\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/utils/virtual-media.ts\n/**\n* Gets a stable object for hashing/fingerprinting by sorting keys and skipping volatile fields.\n*/\nfunction getStableData(data) {\n\tif (typeof data !== \"object\" || data === null) return data;\n\tif (Array.isArray(data)) return data.map(getStableData);\n\tconst result = {};\n\tconst keys = Object.keys(data).sort();\n\tfor (const key of keys) {\n\t\tconst val = data[key];\n\t\tif (key === \"createdAt\" || key === \"updatedAt\" || key === \"dataUrl\" || key === \"filePath\") continue;\n\t\tif (typeof val === \"string\" && val.startsWith(\"blob:\")) continue;\n\t\tif (key === \"entity\" && val && typeof val === \"object\" && val.id) {\n\t\t\tresult.entity = { id: val.id };\n\t\t\tcontinue;\n\t\t}\n\t\tresult[key] = getStableData(val);\n\t}\n\treturn result;\n}\n/**\n* Generates a fingerprint for the given data.\n*/\nfunction getFingerprint(data) {\n\tconst stableData = getStableData(data);\n\tconst str = JSON.stringify(stableData);\n\tif (str.length === 0) return \"0\";\n\tconst getHash = (seed) => {\n\t\tlet h1 = 3735928559 ^ seed;\n\t\tlet h2 = 1103547991 ^ seed;\n\t\tfor (let i = 0; i < str.length; i++) {\n\t\t\tconst ch = str.charCodeAt(i);\n\t\t\th1 = Math.imul(h1 ^ ch, 2654435761);\n\t\t\th2 = Math.imul(h2 ^ ch, 1597334677);\n\t\t}\n\t\th1 = Math.imul(h1 ^ h1 >>> 16, 2246822519);\n\t\th1 = Math.imul(h1 ^ h1 >>> 13, 3266489917);\n\t\th1 = h1 ^ h1 >>> 16;\n\t\th2 = Math.imul(h2 ^ h2 >>> 16, 2246822519);\n\t\th2 = Math.imul(h2 ^ h2 >>> 13, 3266489917);\n\t\th2 = h2 ^ h2 >>> 16;\n\t\treturn (h1 >>> 0).toString(36).padStart(7, \"0\") + (h2 >>> 0).toString(36).padStart(7, \"0\");\n\t};\n\treturn getHash(0) + getHash(1);\n}\n/**\n* Generates a version-aware fingerprint for render caching.\n* Includes app version so cached renders are invalidated on version bumps.\n*/\nfunction getRenderFingerprint(data, appVersion, extra) {\n\treturn getFingerprint({\n\t\t__v: appVersion,\n\t\tdata,\n\t\t...extra\n\t});\n}\n/**\n* Checks if data is VirtualMediaData.\n*/\nfunction isVirtualMediaData(data) {\n\treturn typeof data === \"object\" && data !== null && \"metadata\" in data && \"operation\" in data && \"children\" in data;\n}\n/**\n* Checks if the virtual media is just a raw source without any significant operations\n* that would require a rendering step (like transformations, trimming, or effects).\n*/\nfunction hasOnlySingleSource(data) {\n\tif (!isVirtualMediaData(data)) return false;\n\tif (data.operation.op === \"source\") {\n\t\tif (data.children && data.children.length > 0) return false;\n\t\tconst op = data.operation;\n\t\treturn !(op.volume !== void 0 && op.volume !== 1 || op.opacity !== void 0 && op.opacity !== 1 || op.startFrame !== void 0 && op.startFrame !== 0 || op.timeline && (op.timeline.startFrame !== void 0 && op.timeline.startFrame !== 0 || op.timeline.segments && op.timeline.segments.length > 0));\n\t}\n\tif (data.operation.op === \"compose\") return false;\n\tif (data.operation.op === \"layer\" && data.children.length === 1) {\n\t\tconst op = data.operation;\n\t\tif (!(op.x !== void 0 && op.x !== 0 || op.y !== void 0 && op.y !== 0 || op.rotation !== void 0 && op.rotation !== 0 || op.scale !== void 0 && op.scale !== 1 || op.opacity !== void 0 && op.opacity !== 1 || op.volume !== void 0 && op.volume !== 1 || op.zIndex !== void 0 || op.blendMode !== void 0 || op.filters !== void 0 || op.transitionIn !== void 0 || op.transitionOut !== void 0 || op.animations && op.animations.length > 0 || op.trimStart !== void 0 || op.trimEnd !== void 0 || op.speed !== void 0 || op.backgroundColor !== void 0 || op.borderColor !== void 0 || op.borderWidth !== void 0 || op.strokeRadius !== void 0)) return hasOnlySingleSource(data.children[0]);\n\t}\n\treturn false;\n}\n/**\n* Finds the source asset in a virtual media tree.\n*/\nfunction findSourceAsset(vm) {\n\tif (vm.operation.op === \"source\") return vm.operation.source;\n\tif (vm.children && vm.children.length > 0) return findSourceAsset(vm.children[0]);\n\treturn null;\n}\n\n//#endregion\n//#region src/utils/result-cache.ts\n/**\n* Checks if a cached node result can be reused based on source fingerprint.\n* Returns the valid cached result, or null if the cache is stale.\n*/\nfunction checkNodeResultCache(currentResult, input) {\n\tif (!currentResult?.sourceFingerprint) return null;\n\tconst inputFingerprint = getFingerprint(input);\n\tif (currentResult.sourceFingerprint !== inputFingerprint) return null;\n\treturn currentResult;\n}\n/**\n* Creates a fresh result with a source fingerprint stamp.\n*/\nfunction stampResult(result, input) {\n\treturn {\n\t\t...result,\n\t\tsourceFingerprint: getFingerprint(input)\n\t};\n}\n\n//#endregion\n//#region src/utils/svg.ts\n/**\n* Attempts to parse the width and height of an SVG from its buffer.\n* Falls back to viewBox ratios if explicitly defined sizes are missing.\n*/\nfunction extractSvgDimensions(buffer) {\n\ttry {\n\t\tconst match = buffer.toString(\"utf-8\").match(/<svg[^>]*>/i);\n\t\tif (!match) return null;\n\t\tconst svgTag = match[0];\n\t\tconst getAttr = (name) => {\n\t\t\tconst attrMatch = svgTag.match(new RegExp(`${name}=[\"']([^\"']+)[\"']`, \"i\"));\n\t\t\tif (!attrMatch) return null;\n\t\t\tconst val = parseFloat(attrMatch[1].replace(/[a-z%]/gi, \"\"));\n\t\t\treturn isNaN(val) ? null : val;\n\t\t};\n\t\tlet w = getAttr(\"width\");\n\t\tlet h = getAttr(\"height\");\n\t\tconst viewBoxMatch = svgTag.match(/viewBox=[\"']([^\"']+)[\"']/i);\n\t\tif (viewBoxMatch) {\n\t\t\tconst parts = viewBoxMatch[1].split(/[\\s,]+/).map(parseFloat);\n\t\t\tif (parts.length >= 4 && !isNaN(parts[2]) && !isNaN(parts[3])) {\n\t\t\t\tconst vbW = parts[2];\n\t\t\t\tconst vbH = parts[3];\n\t\t\t\tif (w == null && h == null) {\n\t\t\t\t\tw = vbW;\n\t\t\t\t\th = vbH;\n\t\t\t\t} else if (w != null && h == null) h = w * (vbH / vbW);\n\t\t\t\telse if (h != null && w == null) w = h * (vbW / vbH);\n\t\t\t}\n\t\t}\n\t\tif (w != null && h != null && w > 0 && h > 0) return {\n\t\t\tw,\n\t\t\th\n\t\t};\n\t\treturn null;\n\t} catch (error) {\n\t\tconsole.error(\"Error parsing SVG dimensions\", error);\n\t\treturn null;\n\t}\n}\n\n//#endregion\nexport { AnimationTypeSchema, AnyOutputUnionSchema, AudioExtractorSignalDataSchema, BaseMediaOperationPropsSchema, BaseVideoLayerPropsSchema, CAPTION_LAYER_DEFAULTS, COMPOSITE_OPERATIONS, COMPOSITOR_DEFAULTS, Color, ConfigHandleSchema, ConfigSchemaRegistry, DATA_TYPE_EXTENSIONS, DEFAULT_DURATION_MS, DEFAULT_FPS, DEFAULT_MEDIA_DIMENSION, DataType, DataTypeVal, DataTypes, Effect, ExportResultSchema, ExtendedLayerSchema, FileAssetSchema, FileDataSchema, GeneratorSignalDataSchema, GlobalCompositeOperation, Gradient, HandleTypeVal, JsonValueSchema, MAX_GRADIENT_STOPS, MIME_TYPES, MediaMetadataSchema, MediaOperationSchema, MediaSourceSchema, ModerationError, ModerationUnrefundableError, MultiOutputGenericSchema, NodeMetadataSchema, NodeResultSchema, NodeVisualConfigSchema, OutputItemSchema, ProgrammaticSignal, Signal, SignalChannelMetaSchema, SignalDataSchema, SignalGateDataSchema, SignalMathDataSchema, SignalStatsSchema, SingleOutputGenericSchema, SourceOperationSchema, TEXT_LAYER_DEFAULTS, TextOperationSchema, TimelineSegmentSchema, TimelineTransformSchema, TransitionSchema, TransitionTypeSchema, VideoAnimationSchema, VideoLayerTypeSchema, VideoSpatialPropsSchema, VideoStylePropsSchema, VideoTextPropsSchema, VideoTimingPropsSchema, VirtualMediaDataSchema, appendOperation, assertNever, checkNodeResultCache, computeVideoCropRenderProps, computed, cosineSignal, createOutputItemSchema, createVirtualMedia, dataTypeColors, degrees, deserializeSignalData, extractSvgDimensions, findSourceAsset, formatHex, fps, frame, frameArraySignal, frameSignal, generateId, getActiveMediaMetadata, getFileDataMetadata, getFingerprint, getLeafMediaType, getMediaType, getRenderFingerprint, gradientStopsToOklab, handleId, handleLabel, hasOnlySingleSource, isCssGradient, isEqual, isFrameIndex, isNormalized, isSignal, isValueSignal, isVirtualMediaData, limitGradientStops, mixColors, ms, nodeId, normalizeColorStops, normalized, oklabToRgb, parseCssColor, parseCssGradient, pixels, programmaticSignal, progressSignal, radians, registerSignalDependency, reportRenderDiagnostic, resolveBoolean, resolveMediaMimeType, resolveNumber, resolveParam, resolveString, rgbToOklab, sampleColorStops, seconds, serializeSignalData, signal, signalBuilder, sineSignal, stampResult, takeRenderDiagnostics, timeSignal, updateClockSignals };\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dist-DFeF-ygz.mjs","names":["ProgrammaticSignal","ConfigSchemaRegistry"],"sources":["../../core/dist/index.mjs"],"sourcesContent":["import { nanoid } from \"nanoid\";\nimport z$1, { z } from \"zod\";\n\n//#region src/signals/programmatic.ts\nvar ProgrammaticSignal = class ProgrammaticSignal {\n\tgpuBinding;\n\tlabel;\n\t_evaluator;\n\t_samples;\n\t_fps;\n\t_durationFrames;\n\t_cachedFrame = -1;\n\t_cachedValue = 0;\n\t_seekedFrame = -1;\n\t_subscribers = /* @__PURE__ */ new Set();\n\t_children = /* @__PURE__ */ new Set();\n\tget fps() {\n\t\treturn this._fps;\n\t}\n\tconstructor(source, options = {}) {\n\t\tthis._fps = options.fps ?? 24;\n\t\tthis._durationFrames = options.durationFrames;\n\t\tthis.gpuBinding = options.gpuBinding;\n\t\tthis.label = options.label;\n\t\tif (typeof source === \"number\") {\n\t\t\tconst constVal = source;\n\t\t\tthis._evaluator = () => constVal;\n\t\t\tthis._cachedValue = constVal;\n\t\t} else if (typeof source === \"function\") this._evaluator = source;\n\t\telse if (isSignal(source)) this._evaluator = (ctx) => Number(source.get(ctx)) || 0;\n\t\telse {\n\t\t\tconst arr = source;\n\t\t\tthis._samples = arr instanceof Float32Array ? arr : new Float32Array(Array.from(arr));\n\t\t\tthis._durationFrames = this._samples.length;\n\t\t\tthis._cachedValue = this._samples.length > 0 ? this._samples[0] : 0;\n\t\t\tthis._evaluator = (ctx) => {\n\t\t\t\tif (!this._samples || this._samples.length === 0) return 0;\n\t\t\t\tconst compFps = ctx.fps ?? this._fps;\n\t\t\t\tconst targetFrame = compFps !== this._fps && compFps > 0 ? ctx.frame / compFps * this._fps : ctx.frame;\n\t\t\t\tconst idx = Math.max(0, Math.min(this._samples.length - 1, Math.round(targetFrame)));\n\t\t\t\treturn this._samples[idx];\n\t\t\t};\n\t\t}\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget(ctx) {\n\t\tregisterSignalDependency(this._subscribers);\n\t\tframeSignal.get();\n\t\tconst currentFrame = ctx?.frame ?? (this._seekedFrame >= 0 ? this._seekedFrame : frameSignal.value);\n\t\tif (this._cachedFrame === currentFrame) return this._cachedValue;\n\t\tconst fps$1 = ctx?.fps ?? this._fps;\n\t\tconst time = ctx?.time ?? (fps$1 > 0 ? currentFrame / fps$1 : 0);\n\t\tconst duration = ctx?.duration ?? this._durationFrames ?? 100;\n\t\tconst resolvedCtx = {\n\t\t\tframe: currentFrame,\n\t\t\tfps: fps$1,\n\t\t\ttime,\n\t\t\tduration,\n\t\t\tdurationMs: ctx?.durationMs ?? duration / fps$1 * 1e3,\n\t\t\tprogress: duration > 0 ? currentFrame / duration : 0,\n\t\t\tdeltaTime: ctx?.deltaTime ?? (fps$1 > 0 ? 1 / fps$1 : .0416)\n\t\t};\n\t\tthis._cachedFrame = currentFrame;\n\t\tthis._cachedValue = this._evaluator(resolvedCtx);\n\t\treturn this._cachedValue;\n\t}\n\tpeek() {\n\t\treturn this._cachedValue;\n\t}\n\tregisterChild(child) {\n\t\tthis._children.add(child);\n\t}\n\t_derive(evaluator, options, other) {\n\t\tconst child = new ProgrammaticSignal(evaluator, {\n\t\t\tfps: this._fps,\n\t\t\tdurationFrames: this._durationFrames,\n\t\t\t...options\n\t\t});\n\t\tthis._children.add(child);\n\t\tif (other instanceof ProgrammaticSignal) other.registerChild(child);\n\t\treturn child;\n\t}\n\tseekFrame(frame$1) {\n\t\tthis._seekedFrame = frame$1;\n\t\tthis._cachedFrame = -1;\n\t\tfor (const sub of this._subscribers) sub.markDirty();\n\t\tfor (const child of this._children) child.seekFrame(frame$1);\n\t}\n\tinvalidate() {\n\t\tthis._cachedFrame = -1;\n\t\tfor (const sub of this._subscribers) sub.markDirty();\n\t\tfor (const child of this._children) child.invalidate();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n\tsmooth(windowFrames) {\n\t\tconst window = Math.max(1, Math.round(windowFrames));\n\t\tif (window <= 1) return this;\n\t\treturn this._derive((ctx) => {\n\t\t\tlet sum = 0;\n\t\t\tlet count = 0;\n\t\t\tconst startF = Math.max(0, ctx.frame - window + 1);\n\t\t\tfor (let f = startF; f <= ctx.frame; f++) {\n\t\t\t\tsum += this.get({\n\t\t\t\t\t...ctx,\n\t\t\t\t\tframe: f,\n\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t});\n\t\t\t\tcount++;\n\t\t\t}\n\t\t\treturn count > 0 ? sum / count : 0;\n\t\t}, { label: `${this.label ?? \"sig\"}_smoothed(${window})` });\n\t}\n\tremap(inMin, inMax, outMin, outMax, clamp = false) {\n\t\tconst inRange = inMax - inMin;\n\t\tconst outRange = outMax - outMin;\n\t\treturn this._derive((ctx) => {\n\t\t\tconst val = this.get(ctx);\n\t\t\tconst remapped = outMin + (inRange !== 0 ? (val - inMin) / inRange : 0) * outRange;\n\t\t\tif (clamp) {\n\t\t\t\tconst lo = Math.min(outMin, outMax);\n\t\t\t\tconst hi = Math.max(outMin, outMax);\n\t\t\t\treturn Math.max(lo, Math.min(hi, remapped));\n\t\t\t}\n\t\t\treturn remapped;\n\t\t}, { label: `${this.label ?? \"sig\"}_remap` });\n\t}\n\tclamp(min, max) {\n\t\tconst lo = Math.min(min, max);\n\t\tconst hi = Math.max(min, max);\n\t\treturn this._derive((ctx) => Math.max(lo, Math.min(hi, this.get(ctx))), { label: `${this.label ?? \"sig\"}_clamped` });\n\t}\n\tgate(threshold, options = {}) {\n\t\tconst mode = options.mode ?? \"gate\";\n\t\tconst debounce = Math.max(1, options.debounceFrames ?? 2);\n\t\tconst hold = Math.max(1, options.holdFrames ?? 4);\n\t\tconst invert = Boolean(options.invert);\n\t\treturn this._derive((ctx) => {\n\t\t\tconst currentF = ctx.frame;\n\t\t\tlet out = 0;\n\t\t\tif (mode === \"gate\") out = this.get(ctx) >= threshold ? 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, currentF - 120);\n\t\t\t\tfor (let f = startF; f <= currentF; f++) {\n\t\t\t\t\tconst v = this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f,\n\t\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t\t});\n\t\t\t\t\tconst prev = f > 0 ? this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f - 1,\n\t\t\t\t\t\ttime: (f - 1) / ctx.fps\n\t\t\t\t\t}) : 0;\n\t\t\t\t\tif (v >= threshold && prev < threshold && f - lastTrigger >= debounce) lastTrigger = f;\n\t\t\t\t}\n\t\t\t\tout = currentF >= lastTrigger && currentF < lastTrigger + hold ? 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 <= currentF; f++) {\n\t\t\t\t\tconst v = this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f,\n\t\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t\t});\n\t\t\t\t\tconst prev = f > 0 ? this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f - 1,\n\t\t\t\t\t\ttime: (f - 1) / ctx.fps\n\t\t\t\t\t}) : 0;\n\t\t\t\t\tif (v >= threshold && prev < threshold && f - lastTrigger >= debounce) {\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\tout = toggleCount % 2 === 1 ? 1 : 0;\n\t\t\t}\n\t\t\treturn invert ? 1 - out : out;\n\t\t}, { label: `${this.label ?? \"sig\"}_gate(${threshold})` });\n\t}\n\tvelocity(dt = 1) {\n\t\tconst step = Math.max(1, Math.round(dt));\n\t\treturn this._derive((ctx) => {\n\t\t\tconst curr = this.get(ctx);\n\t\t\tconst prevF = Math.max(0, ctx.frame - step);\n\t\t\tconst prev = this.get({\n\t\t\t\t...ctx,\n\t\t\t\tframe: prevF,\n\t\t\t\ttime: prevF / ctx.fps\n\t\t\t});\n\t\t\tconst deltaSec = step / ctx.fps;\n\t\t\treturn deltaSec > 0 ? (curr - prev) / deltaSec : curr - prev;\n\t\t}, { label: `${this.label ?? \"sig\"}_velocity` });\n\t}\n\tdelay(frames) {\n\t\tconst shift = Math.max(0, Math.round(frames));\n\t\treturn this._derive((ctx) => {\n\t\t\tconst delayedF = Math.max(0, ctx.frame - shift);\n\t\t\treturn this.get({\n\t\t\t\t...ctx,\n\t\t\t\tframe: delayedF,\n\t\t\t\ttime: delayedF / ctx.fps\n\t\t\t});\n\t\t}, { label: `${this.label ?? \"sig\"}_delay(${shift})` });\n\t}\n\tspring(stiffness = 150, damping = 12) {\n\t\treturn this._derive((ctx) => {\n\t\t\tconst targetFrame = ctx.frame;\n\t\t\tif (targetFrame <= 0) return this.get(ctx);\n\t\t\tlet pos = this.get({\n\t\t\t\t...ctx,\n\t\t\t\tframe: 0,\n\t\t\t\ttime: 0\n\t\t\t});\n\t\t\tlet vel = 0;\n\t\t\tconst dt = 1 / Math.max(1, ctx.fps);\n\t\t\tfor (let f = 1; f <= targetFrame; f++) {\n\t\t\t\tconst targetVal = this.get({\n\t\t\t\t\t...ctx,\n\t\t\t\t\tframe: f,\n\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t});\n\t\t\t\tconst displacement = pos - targetVal;\n\t\t\t\tconst force = -stiffness * displacement - damping * vel;\n\t\t\t\tvel += force * dt;\n\t\t\t\tpos += vel * dt;\n\t\t\t}\n\t\t\treturn pos;\n\t\t}, { label: `${this.label ?? \"sig\"}_spring` });\n\t}\n\tadd(other) {\n\t\tif (typeof other === \"number\") return this._derive((ctx) => this.get(ctx) + other);\n\t\treturn this._derive((ctx) => this.get(ctx) + (Number(other.get(ctx)) || 0), void 0, other);\n\t}\n\tsubtract(other) {\n\t\tif (typeof other === \"number\") return this._derive((ctx) => this.get(ctx) - other);\n\t\treturn this._derive((ctx) => this.get(ctx) - (Number(other.get(ctx)) || 0), void 0, other);\n\t}\n\tmultiply(factor) {\n\t\tif (typeof factor === \"number\") return this._derive((ctx) => this.get(ctx) * factor);\n\t\treturn this._derive((ctx) => this.get(ctx) * (Number(factor.get(ctx)) || 0), void 0, factor);\n\t}\n\tinvert() {\n\t\treturn this._derive((ctx) => 1 - this.get(ctx), { label: `${this.label ?? \"sig\"}_inverted` });\n\t}\n\tpow(exponent) {\n\t\treturn this._derive((ctx) => this.get(ctx) ** exponent);\n\t}\n\tmap(fn) {\n\t\treturn this._derive((ctx) => fn(this.get(ctx), ctx));\n\t}\n\ttoFrameArray(totalFrames, fps$1) {\n\t\tconst count = Math.max(1, totalFrames);\n\t\tconst f = fps$1 ?? this._fps;\n\t\tconst out = new Float32Array(count);\n\t\tfor (let i = 0; i < count; i++) out[i] = this.get({\n\t\t\tframe: i,\n\t\t\tfps: f,\n\t\t\ttime: i / f,\n\t\t\tduration: count,\n\t\t\tdurationMs: count / f * 1e3,\n\t\t\tprogress: i / count,\n\t\t\tdeltaTime: 1 / f\n\t\t});\n\t\treturn out;\n\t}\n};\nfunction programmaticSignal(source, options) {\n\treturn new ProgrammaticSignal(source, options);\n}\n\n//#endregion\n//#region src/signals/resolve.ts\n/**\n* Unwraps a potential Signal, Signal-like object with `.peek()`,\n* or object with `.value`. Returns the raw value or the original object.\n*/\nfunction unwrapValue(val) {\n\tif (val === null || typeof val !== \"object\") return val;\n\tif (isSignal(val)) return val.peek();\n\tif (\"peek\" in val && typeof val.peek === \"function\") return val.peek();\n\tif (\"value\" in val) return val.value;\n\treturn val;\n}\n/**\n* Extracts a numeric value from a primitive, Signal, or wrapper object.\n* Returns the fallback if undefined, null, NaN, or non-numeric.\n*/\nfunction resolveNumber(val, fallback) {\n\tconst unwrapped = unwrapValue(val);\n\treturn typeof unwrapped === \"number\" && !Number.isNaN(unwrapped) ? unwrapped : fallback;\n}\n/**\n* Extracts a string value from a primitive, Signal, or wrapper object.\n* Returns the fallback if undefined, null, or non-string.\n*/\nfunction resolveString(val, fallback) {\n\tconst unwrapped = unwrapValue(val);\n\treturn typeof unwrapped === \"string\" ? unwrapped : fallback;\n}\n/**\n* Extracts a boolean value from a primitive, Signal, or wrapper object.\n* Returns the fallback if undefined, null, or non-boolean.\n*/\nfunction resolveBoolean(val, fallback) {\n\tconst unwrapped = unwrapValue(val);\n\treturn typeof unwrapped === \"boolean\" ? unwrapped : fallback;\n}\n/**\n* Generic parameter resolver matching the fallback value's type.\n*/\nfunction resolveParam(val, fallback) {\n\tif (typeof fallback === \"number\") return resolveNumber(val, fallback);\n\tif (typeof fallback === \"string\") return resolveString(val, fallback);\n\tif (typeof fallback === \"boolean\") return resolveBoolean(val, fallback);\n\tconst unwrapped = unwrapValue(val);\n\treturn unwrapped !== void 0 && unwrapped !== null ? unwrapped : fallback;\n}\n\n//#endregion\n//#region src/signals/index.ts\nlet activeComputed = null;\nfunction registerSignalDependency(subscribers) {\n\tif (activeComputed !== null) {\n\t\tsubscribers.add(activeComputed);\n\t\tactiveComputed.deps.add(subscribers);\n\t}\n}\nfunction isSignal(val) {\n\treturn val !== null && typeof val === \"object\" && \"get\" in val && typeof val.get === \"function\" && \"value\" in val;\n}\nvar StateSignalImpl = class {\n\t_value;\n\t_subscribers = /* @__PURE__ */ new Set();\n\tconstructor(initialValue) {\n\t\tthis._value = initialValue;\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tset value(nextValue) {\n\t\tthis.set(nextValue);\n\t}\n\tget() {\n\t\tif (activeComputed !== null) {\n\t\t\tthis._subscribers.add(activeComputed);\n\t\t\tactiveComputed.deps.add(this._subscribers);\n\t\t}\n\t\treturn this._value;\n\t}\n\tpeek() {\n\t\treturn this._value;\n\t}\n\tset(nextValue) {\n\t\tif (Object.is(this._value, nextValue)) return;\n\t\tthis._value = nextValue;\n\t\tthis.notifySubscribers();\n\t}\n\tupdate(fn) {\n\t\tthis.set(fn(this._value));\n\t}\n\tnotifySubscribers() {\n\t\tif (this._subscribers.size === 0) return;\n\t\tconst toNotify = Array.from(this._subscribers);\n\t\tfor (const sub of toNotify) sub.markDirty();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nvar ComputedImpl = class {\n\t_fn;\n\t_value;\n\t_dirty = true;\n\t_evaluating = false;\n\tdeps = /* @__PURE__ */ new Set();\n\t_subscribers = /* @__PURE__ */ new Set();\n\tconstructor(fn) {\n\t\tthis._fn = fn;\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget() {\n\t\tif (activeComputed !== null && activeComputed !== this) {\n\t\t\tthis._subscribers.add(activeComputed);\n\t\t\tactiveComputed.deps.add(this._subscribers);\n\t\t}\n\t\tif (this._dirty) this.compute();\n\t\treturn this._value;\n\t}\n\tpeek() {\n\t\tif (this._dirty) this.compute();\n\t\treturn this._value;\n\t}\n\tmarkDirty() {\n\t\tif (this._dirty) return;\n\t\tthis._dirty = true;\n\t\tconst toNotify = Array.from(this._subscribers);\n\t\tfor (const sub of toNotify) sub.markDirty();\n\t}\n\tcompute() {\n\t\tif (this._evaluating) throw new Error(\"Cyclic dependency detected in computed signal\");\n\t\tfor (const depSubSet of this.deps) depSubSet.delete(this);\n\t\tthis.deps.clear();\n\t\tconst prevActive = activeComputed;\n\t\tactiveComputed = this;\n\t\tthis._evaluating = true;\n\t\ttry {\n\t\t\tthis._value = this._fn();\n\t\t\tthis._dirty = false;\n\t\t} finally {\n\t\t\tthis._evaluating = false;\n\t\t\tactiveComputed = prevActive;\n\t\t}\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nvar FrameArraySignalImpl = class {\n\tgpuBinding;\n\tfps;\n\t_samples;\n\t_cachedFrame = -1;\n\t_cachedValue = 0;\n\t_seekedFrame = -1;\n\t_subscribers = /* @__PURE__ */ new Set();\n\tconstructor(samples, fps$1 = 24, gpuBinding) {\n\t\tthis._samples = samples;\n\t\tthis.fps = fps$1;\n\t\tthis.gpuBinding = gpuBinding;\n\t\tif (samples.length > 0) this._cachedValue = samples[0];\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget(ctx) {\n\t\tif (activeComputed !== null) {\n\t\t\tthis._subscribers.add(activeComputed);\n\t\t\tactiveComputed.deps.add(this._subscribers);\n\t\t}\n\t\tframeSignal.get();\n\t\tconst currentFrame = ctx?.frame ?? (this._seekedFrame >= 0 ? this._seekedFrame : frameSignal.value);\n\t\tif (this._cachedFrame === currentFrame) return this._cachedValue;\n\t\tthis._cachedFrame = currentFrame;\n\t\tif (!this._samples || this._samples.length === 0) {\n\t\t\tthis._cachedValue = 0;\n\t\t\treturn 0;\n\t\t}\n\t\tconst compFps = ctx?.fps ?? this.fps;\n\t\tconst targetFrame = compFps !== this.fps && compFps > 0 ? currentFrame / compFps * this.fps : currentFrame;\n\t\tconst idx = Math.max(0, Math.min(this._samples.length - 1, Math.round(targetFrame)));\n\t\tthis._cachedValue = Number(this._samples[idx]) || 0;\n\t\treturn this._cachedValue;\n\t}\n\tpeek() {\n\t\treturn this._cachedValue;\n\t}\n\tseekFrame(frame$1) {\n\t\tthis._seekedFrame = frame$1;\n\t\tthis._cachedFrame = frame$1;\n\t\tif (!this._samples || this._samples.length === 0) this._cachedValue = 0;\n\t\telse {\n\t\t\tconst idx = Math.max(0, Math.min(this._samples.length - 1, Math.round(frame$1)));\n\t\t\tthis._cachedValue = Number(this._samples[idx]) || 0;\n\t\t}\n\t\tfor (const sub of this._subscribers) sub.markDirty();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nfunction signal(initialValue) {\n\treturn new StateSignalImpl(initialValue);\n}\n/**\n* Whether `val` is a plain value signal (from `signal()`): it reads the same\n* whatever frame context it is given, so one read stands for every frame.\n*/\nfunction isValueSignal(val) {\n\treturn val instanceof StateSignalImpl;\n}\nfunction computed(fn) {\n\treturn new ComputedImpl(fn);\n}\nfunction frameArraySignal(samples, fps$1 = 24, gpuBinding) {\n\treturn new FrameArraySignalImpl(samples, fps$1, gpuBinding);\n}\nconst frameSignal = signal(0);\nconst timeSignal = signal(0);\nconst progressSignal = signal(0);\nfunction updateClockSignals(frame$1, fps$1 = 24, durationMs) {\n\tframeSignal.set(frame$1);\n\tconst timeSec = fps$1 > 0 ? frame$1 / fps$1 : 0;\n\ttimeSignal.set(timeSec);\n\tif (durationMs && durationMs > 0) {\n\t\tconst durSec = durationMs / 1e3;\n\t\tprogressSignal.set(Math.max(0, Math.min(1, timeSec / durSec)));\n\t} else progressSignal.set(0);\n}\nvar ProceduralSignalImpl = class {\n\tgpuBinding;\n\t_config;\n\tconstructor(config) {\n\t\tthis._config = {\n\t\t\ttype: \"sine\",\n\t\t\tfrequency: 1,\n\t\t\tamplitude: 1,\n\t\t\toffset: 0,\n\t\t\tphase: 0,\n\t\t\t...config\n\t\t};\n\t\tthis.gpuBinding = config.gpuBinding;\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget(ctx) {\n\t\tframeSignal.get();\n\t\tconst frame$1 = ctx?.frame ?? frameSignal.value;\n\t\tconst fps$1 = ctx?.fps ?? 24;\n\t\tconst time = ctx?.time ?? (fps$1 > 0 ? frame$1 / fps$1 : 0);\n\t\tif (this._config.fn) return this._config.fn(ctx ?? {\n\t\t\tframe: frame$1,\n\t\t\tfps: fps$1,\n\t\t\ttime,\n\t\t\tduration: 0,\n\t\t\tdurationMs: 0,\n\t\t\tprogress: 0,\n\t\t\tdeltaTime: fps$1 > 0 ? 1 / fps$1 : 0\n\t\t});\n\t\tconst freq = this._config.frequency ?? 1;\n\t\tconst amp = this._config.amplitude ?? 1;\n\t\tconst off = this._config.offset ?? 0;\n\t\tconst phase = this._config.phase ?? 0;\n\t\tswitch (this._config.type ?? \"sine\") {\n\t\t\tcase \"sine\": return off + amp * Math.sin(2 * Math.PI * freq * time + phase);\n\t\t\tcase \"triangle\": return off + amp * (2 * Math.abs(2 * (time * freq + phase / (2 * Math.PI) - Math.floor(time * freq + phase / (2 * Math.PI) + .5))) - 1);\n\t\t\tcase \"sawtooth\": return off + amp * (2 * (time * freq + phase / (2 * Math.PI) - Math.floor(time * freq + phase / (2 * Math.PI) + .5)));\n\t\t\tcase \"square\": return off + (Math.sin(2 * Math.PI * freq * time + phase) >= 0 ? amp : -amp);\n\t\t\tcase \"bounce\": {\n\t\t\t\tconst cycle = time * freq % 1;\n\t\t\t\treturn off + amp * Math.abs(Math.sin(Math.PI * cycle));\n\t\t\t}\n\t\t\tdefault: return off + amp * Math.sin(2 * Math.PI * freq * time + phase);\n\t\t}\n\t}\n\tpeek() {\n\t\treturn this.get();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nfunction signalBuilder(config) {\n\treturn new ProceduralSignalImpl(config);\n}\nfunction periodicSignal(wave, options) {\n\tconst min = options.min;\n\tconst max = options.max;\n\tlet amplitude = options.amplitude ?? 1;\n\tlet offset = options.offset ?? 0;\n\tif (min !== void 0 && max !== void 0) {\n\t\toffset = (min + max) / 2;\n\t\tamplitude = (max - min) / 2;\n\t} else if (min !== void 0) offset = min + amplitude;\n\telse if (max !== void 0) offset = max - amplitude;\n\tconst period = options.period;\n\tconst frequency = options.frequency;\n\tconst phase = options.phase ?? 0;\n\treturn signalBuilder({\n\t\ttype: \"custom\",\n\t\tfn: (ctx) => {\n\t\t\tlet angle;\n\t\t\tif (period !== void 0 && period > 0) angle = 2 * Math.PI * ctx.frame / period + phase;\n\t\t\telse {\n\t\t\t\tconst freq = frequency ?? 1;\n\t\t\t\tangle = 2 * Math.PI * freq * ctx.time + phase;\n\t\t\t}\n\t\t\treturn offset + amplitude * wave(angle);\n\t\t}\n\t});\n}\nfunction sineSignal(options = {}) {\n\treturn periodicSignal(Math.sin, options);\n}\nfunction cosineSignal(options = {}) {\n\treturn periodicSignal(Math.cos, options);\n}\nconst Signal = {\n\tstate: signal,\n\tcomputed,\n\tbuilder: signalBuilder,\n\tfromArray: frameArraySignal,\n\tprogrammatic: programmaticSignal,\n\tframe: frameSignal,\n\ttime: timeSignal,\n\tprogress: progressSignal,\n\tsine: sineSignal,\n\tcosine: cosineSignal\n};\n\n//#endregion\n//#region src/effects/index.ts\nvar Effect = class {\n\tdomain = \"visual\";\n\tsignals;\n\tconfig;\n\t_frameHooks = [];\n\tconstructor(initialConfig) {\n\t\tthis.config = { ...initialConfig };\n\t\tthis.signals = {};\n\t\tfor (const [key, val] of Object.entries(initialConfig)) if (isSignal(val)) this.signals[key] = val;\n\t\telse this.signals[key] = signal(val);\n\t\treturn new Proxy(this, {\n\t\t\tget(target, prop, receiver) {\n\t\t\t\tif (typeof prop === \"string\" && prop in target.signals) {\n\t\t\t\t\tconst sig = target.signals[prop];\n\t\t\t\t\treturn sig ? sig.value : void 0;\n\t\t\t\t}\n\t\t\t\treturn Reflect.get(target, prop, receiver);\n\t\t\t},\n\t\t\tset(target, prop, val, receiver) {\n\t\t\t\tif (typeof prop === \"string\" && prop in target.signals) {\n\t\t\t\t\tconst currentSig = target.signals[prop];\n\t\t\t\t\tif (isSignal(val)) {\n\t\t\t\t\t\ttarget.signals[prop] = val;\n\t\t\t\t\t\ttarget.config[prop] = val;\n\t\t\t\t\t} else if (currentSig && typeof currentSig.set === \"function\") {\n\t\t\t\t\t\tcurrentSig.set(val);\n\t\t\t\t\t\ttarget.config[prop] = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.signals[prop] = signal(val);\n\t\t\t\t\t\ttarget.config[prop] = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn Reflect.set(target, prop, val, receiver);\n\t\t\t}\n\t\t});\n\t}\n\t/**\n\t* Game-engine per-frame lifecycle hook.\n\t* Invoked before rendering each frame so scripts or agents can mutate properties.\n\t*/\n\tonRequestFrame(callback) {\n\t\tthis._frameHooks.push(callback);\n\t\treturn this;\n\t}\n\tnotifyFrame(ctx) {\n\t\tfor (const hook of this._frameHooks) hook(ctx);\n\t}\n\t/**\n\t* Samples concrete scalar / config values for the current frame.\n\t*/\n\tresolveUniforms(ctx) {\n\t\tconst out = {};\n\t\tfor (const [k, sig] of Object.entries(this.signals)) out[k] = sig.get(ctx);\n\t\treturn out;\n\t}\n\t/**\n\t* Returns WebGPU texture bindings attached to any property signal.\n\t*/\n\tresolveTextures() {\n\t\tconst out = {};\n\t\tfor (const [k, sig] of Object.entries(this.signals)) {\n\t\t\tconst gpu = sig.gpuBinding;\n\t\t\tif (gpu?.textureView) out[`${k}TextureView`] = gpu.textureView;\n\t\t\tif (gpu?.texture) out[`${k}Texture`] = gpu.texture;\n\t\t}\n\t\treturn out;\n\t}\n\t/**\n\t* Converts the effect into an operation node for the VirtualMediaData AST.\n\t*/\n\ttoOperation() {\n\t\tconst opPayload = {\n\t\t\top: this.op,\n\t\t\teffect: this,\n\t\t\tonRequestFrame: (ctx) => this.notifyFrame(ctx),\n\t\t\tsignals: this.signals,\n\t\t\t...this.config\n\t\t};\n\t\tfor (const [k, sig] of Object.entries(this.signals)) {\n\t\t\tconst orig = this.config[k];\n\t\t\tif (!isSignal(orig) && (typeof orig === \"string\" || typeof orig === \"boolean\")) opPayload[k] = sig.value;\n\t\t\telse opPayload[k] = sig;\n\t\t}\n\t\treturn opPayload;\n\t}\n};\n\n//#endregion\n//#region src/errors.ts\nvar ModerationError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"ModerationError\";\n\t}\n};\nvar ModerationUnrefundableError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"ModerationUnrefundableError\";\n\t}\n};\n\n//#endregion\n//#region src/id-gen.ts\n/**\n* Generates a unique ID using nanoid.\n* This function is cross-platform compatible (Node.js and Browser).\n*\n* @param size - Optional size of the ID (default is 21)\n* @returns A unique string ID\n*/\nconst generateId = (size) => {\n\treturn nanoid(size);\n};\n\n//#endregion\n//#region src/node-metadata.ts\nconst HandleDefinitionSchema = z$1.object({\n\tdataTypes: z$1.custom(),\n\tlabel: z$1.string(),\n\trequired: z$1.boolean().optional(),\n\torder: z$1.number(),\n\tdescription: z$1.string().optional()\n});\nconst ConfigHandleSchema = z$1.object({\n\tconfigKey: z$1.string(),\n\tdataTypes: z$1.custom(),\n\tlabel: z$1.string(),\n\tdescription: z$1.string().optional()\n});\n/**\n* Metadata defining the interface and identity of a node.\n* This is safe to import in any environment.\n*/\nconst NodeMetadataSchema = z$1.object({\n\ttype: z$1.string().min(1),\n\tversion: z$1.number().int().positive().optional(),\n\tbaseType: z$1.string().optional(),\n\tdisplayName: z$1.string().min(1),\n\tdescription: z$1.string().optional(),\n\tshowInQuickAccess: z$1.boolean().optional(),\n\tshowInSidebar: z$1.boolean().optional(),\n\tadvanced: z$1.boolean().optional(),\n\tcategory: z$1.string().min(1),\n\tsubcategory: z$1.string().optional(),\n\tdefaultDimensions: z$1.object({\n\t\twidth: z$1.number().positive().optional(),\n\t\theight: z$1.number().positive().optional()\n\t}).optional(),\n\thandles: z$1.object({\n\t\tinputs: z$1.array(HandleDefinitionSchema),\n\t\toutputs: z$1.array(HandleDefinitionSchema)\n\t}),\n\tvariableInputs: z$1.discriminatedUnion(\"enabled\", [z$1.object({\n\t\tenabled: z$1.literal(true),\n\t\tdataTypes: z$1.custom()\n\t}), z$1.object({\n\t\tenabled: z$1.literal(false),\n\t\tdataTypes: z$1.custom().optional()\n\t})]).optional(),\n\tvariableOutputs: z$1.discriminatedUnion(\"enabled\", [z$1.object({\n\t\tenabled: z$1.literal(true),\n\t\tdataTypes: z$1.custom()\n\t}), z$1.object({\n\t\tenabled: z$1.literal(false),\n\t\tdataTypes: z$1.custom().optional()\n\t})]).optional(),\n\tisTerminal: z$1.boolean().optional(),\n\tisTransient: z$1.boolean().optional(),\n\tconfigSchema: z$1.custom().optional(),\n\tdefaultConfig: z$1.record(z$1.string(), z$1.unknown()).optional(),\n\tvalidation: z$1.any().optional(),\n\tresultSchema: z$1.custom().optional(),\n\tconfigHandles: z$1.array(ConfigHandleSchema).optional()\n});\n\n//#endregion\n//#region src/render-diagnostics.ts\nconst STORE_KEY = Symbol.for(\"framefields.renderDiagnostics\");\nconst diagnosticsByRender = globalThis[STORE_KEY] ?? (globalThis[STORE_KEY] = /* @__PURE__ */ new Map());\nconst MAX_TRACKED_RENDERS = 256;\n/** Record a diagnostic for a render; repeats (same code, layer and message) are kept once. */\nfunction reportRenderDiagnostic(renderId, diagnostic) {\n\tlet forRender = diagnosticsByRender.get(renderId);\n\tif (!forRender) {\n\t\tif (diagnosticsByRender.size >= MAX_TRACKED_RENDERS) {\n\t\t\tconst oldest = diagnosticsByRender.keys().next().value;\n\t\t\tif (oldest !== void 0) diagnosticsByRender.delete(oldest);\n\t\t}\n\t\tforRender = /* @__PURE__ */ new Map();\n\t\tdiagnosticsByRender.set(renderId, forRender);\n\t}\n\tconst key = `${diagnostic.code}|${diagnostic.layerId ?? \"\"}|${diagnostic.message}`;\n\tif (!forRender.has(key)) forRender.set(key, diagnostic);\n}\n/**\n* Everything reported for a render, including its nested compositions (they\n* render under derived ids, `${renderId}-…`), removing it from the store.\n*/\nfunction takeRenderDiagnostics(renderId) {\n\tconst collected = /* @__PURE__ */ new Map();\n\tfor (const [id, forRender] of diagnosticsByRender) {\n\t\tif (id !== renderId && !id.startsWith(`${renderId}-`)) continue;\n\t\tfor (const [key, diagnostic] of forRender) collected.set(key, diagnostic);\n\t\tdiagnosticsByRender.delete(id);\n\t}\n\treturn [...collected.values()];\n}\n\n//#endregion\n//#region src/types/base.ts\nconst DataTypeVal = {\n\tText: \"Text\",\n\tNumber: \"Number\",\n\tBoolean: \"Boolean\",\n\tImage: \"Image\",\n\tVideo: \"Video\",\n\tAudio: \"Audio\",\n\tSVG: \"SVG\",\n\tCaption: \"Caption\",\n\tLottie: \"Lottie\",\n\tThreeD: \"ThreeD\",\n\tGIF: \"GIF\",\n\tSignal: \"Signal\",\n\tLUT: \"LUT\"\n};\nconst DataType = DataTypeVal;\nconst DataTypes = Object.values(DataTypeVal);\nconst HandleTypeVal = {\n\tInput: \"Input\",\n\tOutput: \"Output\"\n};\nconst JsonValueSchema = z$1.lazy(() => z$1.union([\n\tz$1.string(),\n\tz$1.number(),\n\tz$1.boolean(),\n\tz$1.null(),\n\tz$1.array(JsonValueSchema),\n\tz$1.record(z$1.string(), JsonValueSchema.optional())\n]));\n/**\n* Zod schema for the FileAsset model\n* Matches the Prisma schema definitions for types and nullability.\n*/\nconst FileAssetSchema = z$1.object({\n\tid: z$1.cuid2(),\n\tname: z$1.string(),\n\tcreatedAt: z$1.coerce.date(),\n\tupdatedAt: z$1.coerce.date(),\n\tuserId: z$1.cuid2().nullable(),\n\twidth: z$1.number().int().nullable(),\n\theight: z$1.number().int().nullable(),\n\tbucket: z$1.string(),\n\tsize: z$1.number().int(),\n\tmimeType: z$1.string(),\n\tkey: z$1.string(),\n\tisUploaded: z$1.boolean().default(true),\n\tduration: z$1.number().int().nullable(),\n\tsampleRate: z$1.number().int().nullable().optional(),\n\tchannels: z$1.number().int().nullable().optional(),\n\tbitDepth: z$1.number().int().nullable().optional(),\n\taudioCodec: z$1.string().nullable().optional(),\n\taudioBitrate: z$1.number().int().nullable().optional(),\n\tfps: z$1.number().int().nullable(),\n\tfingerprint: z$1.string().nullable()\n});\nconst NodeVisualConfigSchema = z$1.object({\n\tposition: z$1.object({\n\t\tx: z$1.number(),\n\t\ty: z$1.number()\n\t}).optional(),\n\twidth: z$1.number().nullish(),\n\theight: z$1.number().nullish(),\n\tlocked: z$1.boolean().optional().default(false),\n\tcollapsed: z$1.boolean().optional().default(false)\n}).passthrough();\n\n//#endregion\n//#region src/types/brands.ts\n/** Asserts and casts a number to an integer FrameIndex. */\nfunction frame(n) {\n\tif (!Number.isFinite(n) || !Number.isInteger(n) || n < 0) throw new RangeError(`FrameIndex must be a non-negative finite integer, got ${n}`);\n\treturn n;\n}\n/** Asserts and casts a number to Seconds. */\nfunction seconds(s) {\n\tif (!Number.isFinite(s)) throw new TypeError(`Seconds must be a finite number, got ${s}`);\n\treturn s;\n}\n/** Asserts and casts a number to Milliseconds. */\nfunction ms(m) {\n\tif (!Number.isFinite(m)) throw new TypeError(`Milliseconds must be a finite number, got ${m}`);\n\treturn m;\n}\n/** Asserts and casts a number to Fps. */\nfunction fps(f) {\n\tif (!Number.isFinite(f) || f <= 0) throw new RangeError(`Fps must be a positive finite number, got ${f}`);\n\treturn f;\n}\n/** Clamps and casts a number to Normalized [0.0, 1.0]. */\nfunction normalized(n) {\n\tif (!Number.isFinite(n)) throw new TypeError(`Normalized must be a finite number, got ${n}`);\n\treturn Math.max(0, Math.min(1, n));\n}\n/** Asserts and casts a number to Degrees. */\nfunction degrees(deg) {\n\tif (!Number.isFinite(deg)) throw new TypeError(`Degrees must be a finite number, got ${deg}`);\n\treturn deg;\n}\n/** Asserts and casts a number to Radians. */\nfunction radians(rad) {\n\tif (!Number.isFinite(rad)) throw new TypeError(`Radians must be a finite number, got ${rad}`);\n\treturn rad;\n}\n/** Asserts and casts a number to Pixels. */\nfunction pixels(px) {\n\tif (!Number.isFinite(px)) throw new TypeError(`Pixels must be a finite number, got ${px}`);\n\treturn px;\n}\n/** Casts a string to HandleId. */\nfunction handleId(id) {\n\tif (!id) throw new TypeError(\"HandleId cannot be empty\");\n\treturn id;\n}\n/** Casts a string to HandleLabel. */\nfunction handleLabel(label) {\n\tif (!label) throw new TypeError(\"HandleLabel cannot be empty\");\n\treturn label;\n}\n/** Casts a string to NodeId. */\nfunction nodeId(id) {\n\tif (!id) throw new TypeError(\"NodeId cannot be empty\");\n\treturn id;\n}\n/** Type guard checking if a number is a valid FrameIndex. */\nfunction isFrameIndex(val) {\n\treturn typeof val === \"number\" && Number.isInteger(val) && val >= 0;\n}\n/** Type guard checking if a number is in the Normalized [0, 1] range. */\nfunction isNormalized(val) {\n\treturn typeof val === \"number\" && Number.isFinite(val) && val >= 0 && val <= 1;\n}\n\n//#endregion\n//#region src/types/config/colors.ts\nconst dataTypeColors = {\n\tText: {\n\t\tbg: \"bg-blue-500\",\n\t\tstroke: \"stroke-blue-500\",\n\t\thex: \"#3b82f6\",\n\t\ttext: \"text-blue-500\",\n\t\tborder: \"border-blue-500\"\n\t},\n\tImage: {\n\t\tbg: \"bg-purple-500\",\n\t\tstroke: \"stroke-purple-500\",\n\t\thex: \"#a855f7\",\n\t\ttext: \"text-purple-500\",\n\t\tborder: \"border-purple-500\"\n\t},\n\tVideo: {\n\t\tbg: \"bg-teal-500\",\n\t\tstroke: \"stroke-teal-500\",\n\t\thex: \"oklch(60% 0.118 184.704)\",\n\t\ttext: \"text-teal-500\",\n\t\tborder: \"border-teal-500\"\n\t},\n\tAudio: {\n\t\tbg: \"bg-orange-500\",\n\t\tstroke: \"stroke-orange-500\",\n\t\thex: \"#f97316\",\n\t\ttext: \"text-orange-500\",\n\t\tborder: \"border-orange-500\"\n\t},\n\tNumber: {\n\t\tbg: \"bg-green-600\",\n\t\tstroke: \"stroke-green-600\",\n\t\thex: \"#16a34a\",\n\t\ttext: \"text-green-600\",\n\t\tborder: \"border-green-600\"\n\t},\n\tBoolean: {\n\t\tbg: \"bg-amber-600\",\n\t\tstroke: \"stroke-amber-600\",\n\t\thex: \"#d97706\",\n\t\ttext: \"text-amber-600\",\n\t\tborder: \"border-amber-600\"\n\t},\n\tSVG: {\n\t\tbg: \"bg-lime-600\",\n\t\tstroke: \"stroke-lime-600\",\n\t\thex: \"#65a30d\",\n\t\ttext: \"text-lime-600\",\n\t\tborder: \"border-lime-600\"\n\t},\n\tCaption: {\n\t\tbg: \"bg-rose-500\",\n\t\tstroke: \"stroke-rose-500\",\n\t\thex: \"#f43f5e\",\n\t\ttext: \"text-rose-500\",\n\t\tborder: \"border-rose-500\"\n\t},\n\tGIF: {\n\t\tbg: \"bg-pink-500\",\n\t\tstroke: \"stroke-pink-500\",\n\t\thex: \"#ec4899\",\n\t\ttext: \"text-pink-500\",\n\t\tborder: \"border-pink-500\"\n\t},\n\tLottie: {\n\t\tbg: \"bg-indigo-500\",\n\t\tstroke: \"stroke-indigo-500\",\n\t\thex: \"#6366f1\",\n\t\ttext: \"text-indigo-500\",\n\t\tborder: \"border-indigo-500\"\n\t},\n\tSignal: {\n\t\tbg: \"bg-fuchsia-500\",\n\t\tstroke: \"stroke-fuchsia-500\",\n\t\thex: \"#d946ef\",\n\t\ttext: \"text-fuchsia-500\",\n\t\tborder: \"border-fuchsia-500\"\n\t},\n\tLUT: {\n\t\tbg: \"bg-cyan-600\",\n\t\tstroke: \"stroke-cyan-600\",\n\t\thex: \"#0891b2\",\n\t\ttext: \"text-cyan-600\",\n\t\tborder: \"border-cyan-600\"\n\t}\n};\n\n//#endregion\n//#region src/types/config/schemas.ts\nconst DATA_TYPE_EXTENSIONS = {\n\tImage: \"png\",\n\tVideo: \"mp4\",\n\tAudio: \"mp3\",\n\tText: \"txt\",\n\tNumber: \"txt\",\n\tBoolean: \"txt\",\n\tSVG: \"svg\",\n\tCaption: \"srt\",\n\tLottie: \"json\",\n\tThreeD: \"glb\",\n\tGIF: \"gif\",\n\tSignal: \"txt\",\n\tLUT: \"cube\"\n};\nconst MIME_TYPES = {\n\tpng: \"image/png\",\n\tjpg: \"image/jpeg\",\n\tjpeg: \"image/jpeg\",\n\tgif: \"image/gif\",\n\twebp: \"image/webp\",\n\tsvg: \"image/svg+xml\",\n\tmp4: \"video/mp4\",\n\twebm: \"video/webm\",\n\tmov: \"video/quicktime\",\n\tmp3: \"audio/mpeg\",\n\twav: \"audio/wav\",\n\togg: \"audio/ogg\",\n\tpdf: \"application/pdf\",\n\tjson: \"application/json\",\n\ttxt: \"text/plain\",\n\tsrt: \"text/srt\",\n\taac: \"audio/aac\",\n\tflac: \"audio/flac\"\n};\nconst COMPOSITE_OPERATIONS = [\n\t\"source-over\",\n\t\"source-in\",\n\t\"source-out\",\n\t\"source-atop\",\n\t\"destination-over\",\n\t\"destination-in\",\n\t\"destination-out\",\n\t\"destination-atop\",\n\t\"lighter\",\n\t\"copy\",\n\t\"xor\",\n\t\"multiply\",\n\t\"screen\",\n\t\"overlay\",\n\t\"darken\",\n\t\"lighten\",\n\t\"color-dodge\",\n\t\"color-burn\",\n\t\"hard-light\",\n\t\"soft-light\",\n\t\"difference\",\n\t\"exclusion\",\n\t\"hue\",\n\t\"saturation\",\n\t\"color\",\n\t\"luminosity\"\n];\nconst GlobalCompositeOperation = z.enum(COMPOSITE_OPERATIONS);\nvar ConfigSchemaRegistry = class ConfigSchemaRegistry {\n\tstatic schemas = /* @__PURE__ */ new Map();\n\tstatic register(type, schema) {\n\t\tConfigSchemaRegistry.schemas.set(type, schema);\n\t}\n\tstatic get(type) {\n\t\treturn ConfigSchemaRegistry.schemas.get(type);\n\t}\n\tstatic clear() {\n\t\tConfigSchemaRegistry.schemas.clear();\n\t}\n};\n\n//#endregion\n//#region src/types/constants.ts\nconst COMPOSITOR_DEFAULTS = {\n\tFONT_FAMILY: \"Inter\",\n\tFONT_SIZE: 64,\n\tFILL: \"#ffffff\",\n\tLINE_HEIGHT: 1.1,\n\tALIGN: \"left\",\n\tVERTICAL_ALIGN: \"top\",\n\tLETTER_SPACING: 0,\n\tSTROKE_WIDTH: 0,\n\tSTROKE: \"#000000\",\n\tCORNER_RADIUS: 0,\n\tPADDING: 0\n};\n\n//#endregion\n//#region src/types/node-result.ts\nconst FileDataSchema = z$1.object({ entity: z$1.custom().optional() });\nconst SignalStatsSchema = z$1.object({\n\tmin: z$1.number().optional(),\n\tmax: z$1.number().optional(),\n\tmean: z$1.number().optional(),\n\trms: z$1.number().optional(),\n\tpeak: z$1.number().optional(),\n\tbeats: z$1.array(z$1.number()).optional(),\n\ttempo: z$1.number().optional()\n});\nconst SignalChannelMetaSchema = z$1.object({\n\tid: z$1.string(),\n\tname: z$1.string(),\n\tindex: z$1.number(),\n\tstats: SignalStatsSchema.optional()\n});\nconst GeneratorSignalDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"generator\"),\n\tnodeId: z$1.string().optional(),\n\tbaseType: z$1.string().optional(),\n\tfunc: z$1.enum([\n\t\t\"sine\",\n\t\t\"triangle\",\n\t\t\"sawtooth\",\n\t\t\"square\",\n\t\t\"custom\"\n\t]).or(z$1.string()).default(\"sine\"),\n\tfrequency: z$1.number().default(1),\n\tamplitude: z$1.number().default(1),\n\tphase: z$1.number().default(0),\n\toffset: z$1.number().default(0),\n\twaveform: z$1.string().optional(),\n\tbpm: z$1.number().optional(),\n\tsyncToBpm: z$1.boolean().optional(),\n\tfmFrequency: z$1.number().optional(),\n\tfmDepth: z$1.number().optional(),\n\tenvelope: z$1.string().optional(),\n\tfnBody: z$1.string().optional(),\n\tfnParams: z$1.array(z$1.record(z$1.string(), z$1.unknown())).optional(),\n\tcustomWGSL: z$1.string().optional(),\n\tsignalFnName: z$1.string().optional(),\n\toutputType: z$1.string().optional(),\n\tfps: z$1.number().optional(),\n\tdurationMs: z$1.number().optional(),\n\tstats: SignalStatsSchema.optional()\n}).passthrough();\nconst AudioExtractorSignalDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"audio_extractor\"),\n\tnodeId: z$1.string().optional(),\n\tsourceUrl: z$1.string().optional(),\n\tchannel: z$1.enum([\n\t\t\"primary\",\n\t\t\"beat\",\n\t\t\"bass\",\n\t\t\"energy\",\n\t\t\"spectral_flux\"\n\t]).or(z$1.string()).optional(),\n\tchannelIndex: z$1.number().optional(),\n\tchannels: z$1.array(SignalChannelMetaSchema).optional(),\n\textractionMode: z$1.string().optional(),\n\tattackMs: z$1.number().optional(),\n\treleaseMs: z$1.number().optional(),\n\tsensitivity: z$1.number().optional(),\n\tnoiseFloorDb: z$1.number().optional(),\n\tdynamicRangeDb: z$1.number().optional(),\n\tautoRange: z$1.boolean().optional(),\n\tsmoothing: z$1.number().optional(),\n\tcurve: z$1.string().optional(),\n\tbeatThreshold: z$1.number().optional(),\n\tbeatDecayMs: z$1.number().optional(),\n\tpreviewMode: z$1.string().optional(),\n\tsamples: z$1.union([z$1.array(z$1.number()), z$1.instanceof(Float32Array)]).optional(),\n\tfps: z$1.number().optional(),\n\tdurationMs: z$1.number().optional(),\n\tstats: SignalStatsSchema.optional(),\n\tstate: z$1.enum([\n\t\t\"pending\",\n\t\t\"ready\",\n\t\t\"failed\"\n\t]).optional(),\n\terror: z$1.string().optional(),\n\tvirtualMedia: z$1.record(z$1.string(), z$1.unknown()).optional(),\n\tsignalFnName: z$1.string().optional(),\n\tcustomWGSL: z$1.string().optional()\n}).passthrough();\nconst SignalMathDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"signal_math\"),\n\tnodeId: z$1.string().optional(),\n\top: z$1.string().optional(),\n\toperation: z$1.string().optional(),\n\tsignalA: z$1.unknown().optional(),\n\tsignalB: z$1.unknown().optional(),\n\tbValue: z$1.number().optional(),\n\tinMin: z$1.number().optional(),\n\tinMax: z$1.number().optional(),\n\toutMin: z$1.number().optional(),\n\toutMax: z$1.number().optional(),\n\tclampMin: z$1.number().optional(),\n\tclampMax: z$1.number().optional(),\n\texponent: z$1.number().optional(),\n\tedge0: z$1.number().optional(),\n\tedge1: z$1.number().optional(),\n\tcustomWGSL: z$1.string().optional(),\n\tstats: SignalStatsSchema.optional()\n}).passthrough();\nconst SignalGateDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"gate\"),\n\tnodeId: z$1.string().optional(),\n\tsourceSignal: z$1.unknown().optional(),\n\tthreshold: z$1.number().optional(),\n\tdebounceMs: z$1.number().optional(),\n\tmode: z$1.enum([\n\t\t\"gate\",\n\t\t\"trigger\",\n\t\t\"toggle\"\n\t]).optional(),\n\tholdFrames: z$1.number().optional(),\n\tinvert: z$1.boolean().optional(),\n\tstats: SignalStatsSchema.optional()\n}).passthrough();\nconst SignalDataSchema = z$1.union([\n\tGeneratorSignalDataSchema,\n\tAudioExtractorSignalDataSchema,\n\tSignalMathDataSchema,\n\tSignalGateDataSchema,\n\tz$1.object({ type: z$1.string() }).passthrough()\n]);\nfunction serializeSignalData(data) {\n\treturn JSON.stringify(data, (_key, value) => {\n\t\tif (value instanceof Float32Array) return Array.from(value);\n\t\treturn value;\n\t});\n}\nfunction deserializeSignalData(raw) {\n\tif (typeof raw === \"string\") try {\n\t\treturn SignalDataSchema.parse(JSON.parse(raw));\n\t} catch {\n\t\treturn { type: \"unknown\" };\n\t}\n\treturn SignalDataSchema.parse(raw);\n}\nconst OutputItemSchema = z$1.object({\n\ttype: z$1.custom(),\n\tdata: z$1.any(),\n\toutputHandleId: z$1.string().optional()\n});\nconst createOutputItemSchema = (type, dataSchema) => {\n\treturn z$1.object({\n\t\ttype,\n\t\tdata: dataSchema,\n\t\toutputHandleId: z$1.string().optional()\n\t});\n};\nconst SingleOutputGenericSchema = (outputItemSchema) => z$1.object({\n\tselectedOutputIndex: z$1.literal(0),\n\toutputs: z$1.tuple([z$1.object({ items: z$1.tuple([outputItemSchema]) })])\n});\nconst MultiOutputGenericSchema = (outputItemSchema) => z$1.object({\n\tselectedOutputIndex: z$1.number(),\n\toutputs: z$1.array(z$1.object({ items: z$1.array(outputItemSchema) })),\n\tsourceFingerprint: z$1.string().optional()\n});\nconst AnyOutputUnionSchema = z$1.object({\n\ttype: z$1.custom(),\n\tdata: z$1.any(),\n\toutputHandleId: z$1.string().optional()\n});\nconst NodeResultSchema = z$1.object({\n\tselectedOutputIndex: z$1.number(),\n\toutputs: z$1.array(z$1.object({ items: z$1.array(AnyOutputUnionSchema) }))\n});\nconst ExportResultSchema = MultiOutputGenericSchema(AnyOutputUnionSchema);\n\n//#endregion\n//#region src/types/video/base-layer-schema.ts\nconst AnimationTypeSchema = z.enum([\n\t\"fade-in\",\n\t\"fade-out\",\n\t\"slide-in-left\",\n\t\"slide-in-right\",\n\t\"slide-in-top\",\n\t\"slide-in-bottom\",\n\t\"zoom-in\",\n\t\"zoom-out\",\n\t\"rotate-cw\",\n\t\"rotate-ccw\",\n\t\"bounce\",\n\t\"shake\"\n]);\nconst VideoAnimationSchema = z.object({\n\tid: z.string(),\n\ttype: AnimationTypeSchema,\n\tvalue: z.number()\n});\nconst VideoSpatialPropsSchema = z.object({\n\tx: z.number().default(0),\n\ty: z.number().default(0),\n\twidth: z.number().optional(),\n\theight: z.number().optional(),\n\trotation: z.number().default(0),\n\tscale: z.number().min(0).default(1),\n\topacity: z.number().min(0).max(1).default(1),\n\tzIndex: z.number().int().optional(),\n\tblendMode: GlobalCompositeOperation.optional()\n});\nconst VideoTimingPropsSchema = z.object({\n\tstartFrame: z.number().int().min(0).default(0),\n\tdurationInMS: z.number().int().min(1).optional(),\n\ttrimStart: z.number().int().min(0).optional(),\n\ttrimEnd: z.number().int().min(0).optional(),\n\tspeed: z.number().min(.25).max(4).optional()\n});\nconst VideoTextPropsSchema = z.object({\n\ttext: z.string().optional(),\n\tfontSize: z.number().optional(),\n\tfontFamily: z.string().optional(),\n\tfontStyle: z.string().optional(),\n\tfontWeight: z.union([z.number(), z.string()]).optional(),\n\tfill: z.string().optional(),\n\talign: z.string().optional(),\n\tdirection: z.enum([\n\t\t\"ltr\",\n\t\t\"rtl\",\n\t\t\"auto\"\n\t]).optional(),\n\tverticalAlign: z.string().optional(),\n\tletterSpacing: z.number().optional(),\n\tlineHeight: z.number().optional(),\n\tpadding: z.number().optional(),\n\tstroke: z.string().optional(),\n\tstrokeWidth: z.number().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\ttextBackgroundColor: z.string().optional(),\n\tshadows: z.array(z.object({\n\t\tcolor: z.string(),\n\t\toffset: z.object({\n\t\t\tx: z.number(),\n\t\t\ty: z.number()\n\t\t}).optional(),\n\t\tblurRadius: z.number().optional()\n\t})).optional(),\n\ttextAnimation: z.any().optional(),\n\tbottomPadding: z.number().optional(),\n\tmaxWidth: z.number().optional()\n});\nconst VideoStylePropsSchema = z.object({\n\tbackgroundColor: z.string().optional(),\n\tborderColor: z.string().optional(),\n\tborderWidth: z.number().optional(),\n\tstrokeRadius: z.number().optional(),\n\tautoDimensions: z.boolean().optional()\n});\nconst VideoLayerTypeSchema = z.enum([\n\t\"Video\",\n\t\"Image\",\n\t\"Audio\",\n\t\"Text\",\n\t\"Caption\",\n\t\"SVG\",\n\t\"GIF\",\n\t\"Lottie\"\n]);\nconst BaseVideoLayerPropsSchema = VideoSpatialPropsSchema.merge(VideoTimingPropsSchema).merge(VideoTextPropsSchema).merge(VideoStylePropsSchema).extend({\n\ttype: VideoLayerTypeSchema.optional(),\n\tanimations: z.array(VideoAnimationSchema).optional()\n});\n\n//#endregion\n//#region src/types/video/transition-schema.ts\nconst TransitionTypeSchema = z.enum([\n\t\"none\",\n\t\"crossfade\",\n\t\"wipe-left\",\n\t\"wipe-right\",\n\t\"slide-up\",\n\t\"slide-down\"\n]);\nconst TransitionSchema = z.object({\n\ttype: TransitionTypeSchema,\n\tdurationFrames: z.number().min(1)\n});\n\n//#endregion\n//#region src/types/video/virtual-video.ts\nconst MediaSourceSchema = z.object({ entity: FileAssetSchema.optional() });\nconst MediaMetadataSchema = z.object({\n\twidth: z.number().optional().nullable(),\n\theight: z.number().optional().nullable(),\n\tfps: z.number().optional().nullable(),\n\tdurationMs: z.number().optional().nullable(),\n\tsampleRate: z.number().optional().nullable(),\n\tchannels: z.number().optional().nullable(),\n\tbitDepth: z.number().optional().nullable(),\n\taudioCodec: z.string().optional().nullable(),\n\taudioBitrate: z.number().optional().nullable()\n});\nconst TimelineSegmentSchema = z.object({\n\tstartSec: z.number(),\n\tendSec: z.number().optional()\n});\nconst TimelineTransformSchema = z.object({\n\tstartFrame: z.number().optional(),\n\tsegments: z.array(TimelineSegmentSchema).optional()\n});\nconst BaseMediaOperationPropsSchema = z.object({\n\tvolume: z.number().optional(),\n\topacity: z.number().optional(),\n\tstartFrame: z.number().optional(),\n\tdurationFrames: z.number().optional(),\n\ttimeline: TimelineTransformSchema.optional()\n});\n/** Original source file (leaf node) */\nconst SourceOperationSchema = BaseMediaOperationPropsSchema.extend({\n\top: z.literal(\"source\"),\n\tsource: MediaSourceSchema,\n\tsourceMeta: MediaMetadataSchema,\n\tdataType: z.enum(Object.values(DataTypeVal))\n});\n/** Text content (leaf node) */\nconst TextOperationSchema = BaseMediaOperationPropsSchema.extend({\n\top: z.literal(\"text\"),\n\ttext: z.string(),\n\tmetadata: MediaMetadataSchema.optional(),\n\tdataType: z.enum(Object.values(DataTypeVal))\n}).passthrough();\nconst MediaOperationSchema = z.union([\n\tSourceOperationSchema,\n\tTextOperationSchema,\n\tBaseMediaOperationPropsSchema.extend({\n\t\top: z.string(),\n\t\tmetadata: MediaMetadataSchema.optional(),\n\t\tdataType: z.enum(Object.values(DataTypeVal))\n\t}).passthrough()\n]);\nconst VirtualMediaDataSchema = z.lazy(() => z.object({\n\tmetadata: MediaMetadataSchema,\n\toperation: MediaOperationSchema,\n\tchildren: z.array(VirtualMediaDataSchema).default([])\n}));\n\n//#endregion\n//#region src/types/video/layer-schema.ts\nconst ExtendedLayerSchema = BaseVideoLayerPropsSchema.extend({\n\tid: z.string(),\n\tname: z.string().optional(),\n\ttype: VideoLayerTypeSchema,\n\tvirtualMedia: VirtualMediaDataSchema.optional(),\n\ttransitionIn: TransitionSchema.optional(),\n\ttransitionOut: TransitionSchema.optional(),\n\tdurationInMS: z.number(),\n\tmaxDurationInMS: z.number().optional(),\n\tsrc: z.string().optional(),\n\tvolume: z.number().default(1),\n\tinputHandleId: z.string().optional(),\n\tisPlaceholder: z.boolean().optional(),\n\tlockAspect: z.boolean().optional(),\n\tlockRatio: z.boolean().optional(),\n\tzIndex: z.number().optional()\n}).strict();\n\n//#endregion\n//#region src/types/video/rendering-defaults.ts\nconst DEFAULT_FPS = 60;\nconst DEFAULT_DURATION_MS = 3e3;\nconst DEFAULT_MEDIA_DIMENSION = 1080;\n/** Default styling applied to new Text layers. */\nconst TEXT_LAYER_DEFAULTS = {\n\tfontSize: 60,\n\tfontFamily: \"Inter\",\n\tfill: \"#ffffff\",\n\tfontStyle: \"normal\",\n\talign: \"start\",\n\tpadding: 0\n};\n/** Default styling applied to new Caption layers. */\nconst CAPTION_LAYER_DEFAULTS = {\n\tfontSize: 48,\n\tfontFamily: \"Inter\",\n\tfill: \"#ffffff\",\n\talign: \"center\",\n\tverticalAlign: \"bottom\",\n\tpadding: 0,\n\tlineHeight: 1.1,\n\ttextAnimation: {\n\t\tin: \"none\",\n\t\tout: \"none\",\n\t\tentranceMs: 0,\n\t\texitMs: 0,\n\t\tkinetic: \"none\",\n\t\tapplyBy: \"word\",\n\t\tsmoothing: true\n\t},\n\tbottomPadding: 60\n};\n\n//#endregion\n//#region src/types/video/resolve-media.ts\n/**\n* Identify the actual leaf media type (Video, Image, etc) by walking down the tree.\n* This can differ from getMediaType() if an operation (like Ken Burns) upgrades\n* an Image to a Video.\n*/\nfunction getLeafMediaType(vv) {\n\tif (!vv) return void 0;\n\tif (vv.operation?.op === \"source\") return vv.operation.dataType;\n\tif (vv.children && vv.children.length > 0) return getLeafMediaType(vv.children[0]);\n\treturn vv.operation.dataType;\n}\n/**\n* Resolve the MIME type of the leaf source media.\n*/\nfunction resolveMediaMimeType(vv) {\n\tif (!vv) return void 0;\n\tif (vv.operation?.op === \"source\") {\n\t\tconst op = vv.operation;\n\t\tif (op.mimeType) return op.mimeType;\n\t\tif (op.sourceMeta?.mimeType) return op.sourceMeta.mimeType;\n\t\tif (op.source?.entity?.mimeType) return op.source.entity.mimeType;\n\t\tconst url = typeof op.source === \"string\" ? op.source : op.url ?? op.source?.url;\n\t\tif (typeof url === \"string\") {\n\t\t\tconst ext = url.split(\".\").pop()?.toLowerCase();\n\t\t\tif (ext === \"mp4\") return \"video/mp4\";\n\t\t\tif (ext === \"webm\") return \"video/webm\";\n\t\t\tif (ext === \"mov\") return \"video/quicktime\";\n\t\t\tif (ext === \"png\") return \"image/png\";\n\t\t\tif (ext === \"jpg\" || ext === \"jpeg\") return \"image/jpeg\";\n\t\t\tif (ext === \"webp\") return \"image/webp\";\n\t\t\tif (ext === \"svg\") return \"image/svg+xml\";\n\t\t\tif (ext === \"mp3\") return \"audio/mpeg\";\n\t\t\tif (ext === \"wav\") return \"audio/wav\";\n\t\t\tif (ext === \"aac\") return \"audio/aac\";\n\t\t}\n\t}\n\tif (vv.children && vv.children.length > 0) return resolveMediaMimeType(vv.children[0]);\n}\n/**\n* Create a VirtualMediaData from a FileData source or Text.\n* Used by Import, VideoGen, and Text nodes to wrap concrete content.\n*/\nfunction createVirtualMedia(source, type = \"Video\") {\n\tif (source && typeof source === \"object\" && \"operation\" in source && \"metadata\" in source) return source;\n\tif (typeof source === \"string\") {\n\t\tconst url = source;\n\t\tconst sourceMeta$1 = {\n\t\t\twidth: void 0,\n\t\t\theight: void 0,\n\t\t\tdurationMs: type === \"Image\" || /\\.(png|jpg|jpeg|webp|gif|svg)$/i.test(url) ? DEFAULT_DURATION_MS : void 0,\n\t\t\tfps: void 0\n\t\t};\n\t\treturn {\n\t\t\tmetadata: sourceMeta$1,\n\t\t\toperation: {\n\t\t\t\top: \"source\",\n\t\t\t\turl,\n\t\t\t\tsource: url,\n\t\t\t\tsourceMeta: sourceMeta$1,\n\t\t\t\tdataType: type\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t}\n\tif (typeof source === \"object\" && source !== null && (\"url\" in source || \"path\" in source)) {\n\t\tconst desc = source;\n\t\tconst url = desc.url ?? desc.path;\n\t\tconst isImage = type === \"Image\" || /\\.(png|jpg|jpeg|webp|gif|svg)$/i.test(url);\n\t\tconst durationMs = desc.durationMs ?? (isImage ? DEFAULT_DURATION_MS : void 0);\n\t\tconst sourceMeta$1 = {\n\t\t\twidth: desc.width,\n\t\t\theight: desc.height,\n\t\t\tdurationMs,\n\t\t\tfps: desc.fps,\n\t\t\tsampleRate: desc.sampleRate,\n\t\t\tchannels: desc.channels,\n\t\t\tbitDepth: desc.bitDepth,\n\t\t\taudioCodec: desc.audioCodec,\n\t\t\taudioBitrate: desc.audioBitrate\n\t\t};\n\t\treturn {\n\t\t\tmetadata: sourceMeta$1,\n\t\t\toperation: {\n\t\t\t\top: \"source\",\n\t\t\t\turl,\n\t\t\t\tsource: url,\n\t\t\t\tsourceMeta: sourceMeta$1,\n\t\t\t\tdataType: type\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t}\n\tconst sourceMeta = getFileDataMetadata(source) || {\n\t\twidth: void 0,\n\t\theight: void 0,\n\t\tdurationMs: void 0,\n\t\tfps: void 0\n\t};\n\treturn {\n\t\tmetadata: sourceMeta,\n\t\toperation: {\n\t\t\top: \"source\",\n\t\t\tsource: { entity: source?.entity },\n\t\t\tsourceMeta,\n\t\t\tdataType: type\n\t\t},\n\t\tchildren: []\n\t};\n}\n/**\n* Identify if a VirtualMediaData node is intended to be Video, Audio, Image, or Text.\n*/\nfunction getMediaType(vv) {\n\tif (!vv) throw new Error(\"No media data provided\");\n\treturn vv.operation.dataType;\n}\n/**\n* Append an operation to an existing VirtualMediaData (recursive).\n* This creates a new parent node wrapping the current one as a child.\n*/\nfunction appendOperation(vv, operation) {\n\treturn {\n\t\tmetadata: computeNextMetadata(getActiveMediaMetadata(vv) ?? {}, operation),\n\t\toperation,\n\t\tchildren: [vv]\n\t};\n}\n/**\n* Helper to compute the metadata of the NEXT node in the operator tree.\n*/\nfunction computeNextMetadata(baseMeta, op) {\n\tlet { width, height, durationMs, fps: fps$1, sampleRate, channels, bitDepth, audioCodec, audioBitrate } = baseMeta;\n\tif (\"metadata\" in op && op.metadata) {\n\t\twidth = op.metadata.width ?? width;\n\t\theight = op.metadata.height ?? height;\n\t\tdurationMs = op.metadata.durationMs ?? durationMs;\n\t\tfps$1 = op.metadata.fps ?? fps$1;\n\t\tsampleRate = op.metadata.sampleRate ?? sampleRate;\n\t\tchannels = op.metadata.channels ?? channels;\n\t\tbitDepth = op.metadata.bitDepth ?? bitDepth;\n\t\taudioCodec = op.metadata.audioCodec ?? audioCodec;\n\t\taudioBitrate = op.metadata.audioBitrate ?? audioBitrate;\n\t}\n\tif (op.dataType === \"Audio\" || op.dataType === \"Text\" || op.dataType === \"Caption\") {\n\t\twidth = void 0;\n\t\theight = void 0;\n\t\tfps$1 = void 0;\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tdurationMs,\n\t\tfps: fps$1,\n\t\tsampleRate,\n\t\tchannels,\n\t\tbitDepth,\n\t\taudioCodec,\n\t\taudioBitrate\n\t};\n}\nfunction getFileDataMetadata(filedata) {\n\tif (!filedata) return null;\n\tconst { entity } = filedata;\n\tconst width = entity?.width;\n\tconst height = entity?.height;\n\tlet durationMs = entity?.duration;\n\tconst fps$1 = entity?.fps;\n\tconst sampleRate = entity?.sampleRate;\n\tconst channels = entity?.channels;\n\tconst bitDepth = entity?.bitDepth;\n\tconst audioCodec = entity?.audioCodec;\n\tconst audioBitrate = entity?.audioBitrate;\n\tif (durationMs === void 0 || durationMs === null) {\n\t\tconst mimeType = entity?.mimeType ?? \"\";\n\t\tif (mimeType.startsWith(\"image/\") || mimeType === \"image/svg+xml\") durationMs = DEFAULT_DURATION_MS;\n\t}\n\tif (width === void 0 && height === void 0 && durationMs === void 0 && sampleRate === void 0 && channels === void 0) return null;\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tdurationMs: durationMs === 0 ? void 0 : durationMs,\n\t\tfps: fps$1,\n\t\tsampleRate,\n\t\tchannels,\n\t\tbitDepth,\n\t\taudioCodec,\n\t\taudioBitrate\n\t};\n}\n/**\n* Get the active metadata from the VirtualMediaData node.\n* Simply returns the metadata property of the node.\n* Supports legacy formats (sourceMeta) and extracts from source if needed.\n*/\nfunction getActiveMediaMetadata(vv) {\n\tif (!vv) return null;\n\tlet width = vv.metadata?.width;\n\tlet height = vv.metadata?.height;\n\tlet durationMs = vv.metadata?.durationMs;\n\tlet fps$1 = vv.metadata?.fps;\n\tlet sampleRate = vv.metadata?.sampleRate;\n\tlet channels = vv.metadata?.channels;\n\tlet bitDepth = vv.metadata?.bitDepth;\n\tlet audioCodec = vv.metadata?.audioCodec;\n\tlet audioBitrate = vv.metadata?.audioBitrate;\n\tconst op = vv.operation;\n\tif (op?.op === \"source\") {\n\t\tconst sm = op.sourceMeta || {};\n\t\tconst fdm = op.source ? getFileDataMetadata(op.source) : null;\n\t\twidth = width ?? sm.width ?? fdm?.width;\n\t\theight = height ?? sm.height ?? fdm?.height;\n\t\tdurationMs = durationMs ?? sm.durationMs ?? fdm?.durationMs;\n\t\tfps$1 = fps$1 ?? sm.fps ?? fdm?.fps;\n\t\tsampleRate = sampleRate ?? sm.sampleRate ?? fdm?.sampleRate;\n\t\tchannels = channels ?? sm.channels ?? fdm?.channels;\n\t\tbitDepth = bitDepth ?? sm.bitDepth ?? fdm?.bitDepth;\n\t\taudioCodec = audioCodec ?? sm.audioCodec ?? fdm?.audioCodec;\n\t\taudioBitrate = audioBitrate ?? sm.audioBitrate ?? fdm?.audioBitrate;\n\t}\n\tif (width === void 0 && height === void 0 && durationMs === void 0 && sampleRate === void 0 && channels === void 0) return null;\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tdurationMs: durationMs === 0 ? void 0 : durationMs,\n\t\tfps: fps$1,\n\t\tsampleRate,\n\t\tchannels,\n\t\tbitDepth,\n\t\taudioCodec,\n\t\taudioBitrate\n\t};\n}\n/**\n* Compute the dimensions and offsets for rendering a cropped video.\n* Traverses the VirtualMediaData tree to find nested crops and source dimensions.\n*/\nfunction computeVideoCropRenderProps(virtualMedia) {\n\tlet totalOffsetX = 0;\n\tlet totalOffsetY = 0;\n\tlet hasCrop = false;\n\tlet sourceMetaFound = null;\n\tlet currentNode = virtualMedia;\n\twhile (currentNode) {\n\t\tconst op = currentNode.operation;\n\t\tif (op.op === \"Crop\") {\n\t\t\thasCrop = true;\n\t\t\tconst anyOp = op;\n\t\t\tconst inputMeta = currentNode.children[0]?.metadata;\n\t\t\tconst inputW = inputMeta?.width ?? 0;\n\t\t\tconst inputH = inputMeta?.height ?? 0;\n\t\t\tif (inputW > 0 && inputH > 0) {\n\t\t\t\tconst cropLeftPx = anyOp.leftPercentage / 100 * inputW;\n\t\t\t\tconst cropTopPx = anyOp.topPercentage / 100 * inputH;\n\t\t\t\ttotalOffsetX += cropLeftPx;\n\t\t\t\ttotalOffsetY += cropTopPx;\n\t\t\t}\n\t\t}\n\t\tif (op.op === \"source\") sourceMetaFound = op.sourceMeta ?? currentNode.metadata;\n\t\tcurrentNode = currentNode.children[0];\n\t}\n\tif (!hasCrop || !sourceMetaFound) return null;\n\tconst sourceW = sourceMetaFound.width ?? 1;\n\tconst sourceH = sourceMetaFound.height ?? 1;\n\treturn {\n\t\tvideoNaturalWidth: sourceW,\n\t\tvideoNaturalHeight: sourceH,\n\t\tcropTranslatePercentageX: -(totalOffsetX / sourceW) * 100,\n\t\tcropTranslatePercentageY: -(totalOffsetY / sourceH) * 100\n\t};\n}\n\n//#endregion\n//#region src/utils/assert.ts\n/**\n* Compile-time exhaustiveness check helper for discriminated unions and enums.\n*\n* In switch statements or if-else ladders, passing the unhandled variable to\n* `assertNever(x)` will fail TypeScript compilation if any variant was missed.\n* At runtime, if an unexpected value arrives (e.g. from unvalidated JSON), it throws\n* a descriptive Error.\n*/\nfunction assertNever(value, message) {\n\tconst detail = typeof value === \"object\" && value !== null ? JSON.stringify(value) : String(value);\n\tthrow new Error(message ?? `Unhandled union variant: ${detail}`);\n}\n\n//#endregion\n//#region src/utils/color.ts\nconst NAMED = {\n\ttransparent: \"#00000000\",\n\tblack: \"#000000\",\n\twhite: \"#ffffff\",\n\tred: \"#ff0000\",\n\tgreen: \"#008000\",\n\tlime: \"#00ff00\",\n\tblue: \"#0000ff\",\n\tyellow: \"#ffff00\",\n\tcyan: \"#00ffff\",\n\taqua: \"#00ffff\",\n\tmagenta: \"#ff00ff\",\n\tfuchsia: \"#ff00ff\",\n\torange: \"#ffa500\",\n\tpurple: \"#800080\",\n\tpink: \"#ffc0cb\",\n\tgray: \"#808080\",\n\tgrey: \"#808080\",\n\tsilver: \"#c0c0c0\",\n\tmaroon: \"#800000\",\n\tnavy: \"#000080\",\n\tteal: \"#008080\",\n\tolive: \"#808000\",\n\tgold: \"#ffd700\",\n\tcoral: \"#ff7f50\",\n\tsalmon: \"#fa8072\",\n\tcrimson: \"#dc143c\",\n\tindigo: \"#4b0082\",\n\tviolet: \"#ee82ee\",\n\tturquoise: \"#40e0d0\",\n\ttomato: \"#ff6347\",\n\tchocolate: \"#d2691e\",\n\ttan: \"#d2b48c\",\n\tbeige: \"#f5f5dc\",\n\tivory: \"#fffff0\",\n\tkhaki: \"#f0e68c\",\n\tlavender: \"#e6e6fa\",\n\tmint: \"#98ff98\",\n\tskyblue: \"#87ceeb\",\n\tslategray: \"#708090\",\n\tdimgray: \"#696969\",\n\tlightgray: \"#d3d3d3\",\n\tdarkgray: \"#a9a9a9\",\n\twhitesmoke: \"#f5f5f5\",\n\thotpink: \"#ff69b4\",\n\tdeeppink: \"#ff1493\",\n\tdodgerblue: \"#1e90ff\",\n\troyalblue: \"#4169e1\",\n\tsteelblue: \"#4682b4\",\n\tmidnightblue: \"#191970\",\n\tlimegreen: \"#32cd32\",\n\tforestgreen: \"#228b22\",\n\tseagreen: \"#2e8b57\",\n\tdarkorange: \"#ff8c00\",\n\torangered: \"#ff4500\",\n\tfirebrick: \"#b22222\",\n\trebeccapurple: \"#663399\"\n};\nconst clamp01 = (v) => v < 0 ? 0 : v > 1 ? 1 : v;\nfunction parseHex(h) {\n\tif (!/^[0-9a-f]+$/i.test(h)) return null;\n\tconst x = (i, n) => parseInt(n === 1 ? h[i] + h[i] : h.slice(i, i + 2), 16) / 255;\n\tswitch (h.length) {\n\t\tcase 3: return [\n\t\t\tx(0, 1),\n\t\t\tx(1, 1),\n\t\t\tx(2, 1),\n\t\t\t1\n\t\t];\n\t\tcase 4: return [\n\t\t\tx(0, 1),\n\t\t\tx(1, 1),\n\t\t\tx(2, 1),\n\t\t\tx(3, 1)\n\t\t];\n\t\tcase 6: return [\n\t\t\tx(0, 2),\n\t\t\tx(2, 2),\n\t\t\tx(4, 2),\n\t\t\t1\n\t\t];\n\t\tcase 8: return [\n\t\t\tx(0, 2),\n\t\t\tx(2, 2),\n\t\t\tx(4, 2),\n\t\t\tx(6, 2)\n\t\t];\n\t\tdefault: return null;\n\t}\n}\n/** Splits `rgb(1 2 3 / 50%)` or `rgb(1, 2, 3, .5)` into its argument tokens. */\nfunction fnArgs(body) {\n\treturn body.replace(/\\s*\\/\\s*/, \" \").split(/[\\s,]+/).filter(Boolean);\n}\n/** A number, or a percentage scaled so 100% = `pct100`. */\nfunction num(tok, pct100) {\n\tif (tok === void 0 || tok === \"none\") return 0;\n\tif (tok.endsWith(\"%\")) return parseFloat(tok) / 100 * pct100;\n\treturn parseFloat(tok);\n}\nfunction hue(tok) {\n\tif (tok === void 0) return 0;\n\tif (tok.endsWith(\"turn\")) return parseFloat(tok) * 360;\n\tif (tok.endsWith(\"rad\")) return parseFloat(tok) * 180 / Math.PI;\n\treturn parseFloat(tok);\n}\nfunction alpha(tok) {\n\treturn tok === void 0 ? 1 : clamp01(num(tok, 1));\n}\nfunction hslToRgb(h, s, l) {\n\tconst a = s * Math.min(l, 1 - l);\n\tconst f = (n) => {\n\t\tconst k = (n + h / 30) % 12;\n\t\treturn l - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));\n\t};\n\treturn [\n\t\tf(0),\n\t\tf(8),\n\t\tf(4)\n\t];\n}\nconst toLinear = (c) => c <= .04045 ? c / 12.92 : ((c + .055) / 1.055) ** 2.4;\nconst toGamma = (c) => c <= .0031308 ? 12.92 * c : 1.055 * c ** (1 / 2.4) - .055;\n/** sRGB (0..1) → OKLab [L, a, b]. */\nfunction rgbToOklab(r, g, b) {\n\tconst lr = toLinear(r);\n\tconst lg = toLinear(g);\n\tconst lb = toLinear(b);\n\tconst l = Math.cbrt(.4122214708 * lr + .5363325363 * lg + .0514459929 * lb);\n\tconst m = Math.cbrt(.2119034982 * lr + .6806995451 * lg + .1073969566 * lb);\n\tconst s = Math.cbrt(.0883024619 * lr + .2817188376 * lg + .6299787005 * lb);\n\treturn [\n\t\t.2104542553 * l + .793617785 * m - .0040720468 * s,\n\t\t1.9779984951 * l - 2.428592205 * m + .4505937099 * s,\n\t\t.0259040371 * l + .7827717662 * m - .808675766 * s\n\t];\n}\n/** OKLab → sRGB (0..1, clamped to gamut). */\nfunction oklabToRgb(L, a, b) {\n\tconst l = (L + .3963377774 * a + .2158037573 * b) ** 3;\n\tconst m = (L - .1055613458 * a - .0638541728 * b) ** 3;\n\tconst s = (L - .0894841775 * a - 1.291485548 * b) ** 3;\n\treturn [\n\t\tclamp01(toGamma(4.0767416621 * l - 3.3077115913 * m + .2309699292 * s)),\n\t\tclamp01(toGamma(-1.2684380046 * l + 2.6097574011 * m - .3413193965 * s)),\n\t\tclamp01(toGamma(-.0041960863 * l - .7034186147 * m + 1.707614701 * s))\n\t];\n}\n/**\n* Parses any CSS color this engine accepts: hex (3/4/6/8), `rgb()`/`rgba()`,\n* `hsl()`/`hsla()`, `oklch()`, `oklab()` (comma or space syntax, `/ alpha`)\n* and common named colors. Returns `null` when the string is not a color.\n*/\nfunction parseCssColor(input) {\n\tconst s = input.trim().toLowerCase();\n\tif (!s) return null;\n\tif (s.startsWith(\"#\")) return parseHex(s.slice(1));\n\tconst named = NAMED[s];\n\tif (named) return parseHex(named.slice(1));\n\tconst m = /^([a-z]+)\\((.*)\\)$/.exec(s);\n\tif (!m) return null;\n\tconst [, fn, body] = m;\n\tconst t = fnArgs(body);\n\tswitch (fn) {\n\t\tcase \"rgb\":\n\t\tcase \"rgba\": return [\n\t\t\tclamp01(num(t[0], 255) / 255),\n\t\t\tclamp01(num(t[1], 255) / 255),\n\t\t\tclamp01(num(t[2], 255) / 255),\n\t\t\talpha(t[3])\n\t\t];\n\t\tcase \"hsl\":\n\t\tcase \"hsla\": {\n\t\t\tconst [r, g, b] = hslToRgb((hue(t[0]) % 360 + 360) % 360, clamp01(num(t[1], 100) / 100), clamp01(num(t[2], 100) / 100));\n\t\t\treturn [\n\t\t\t\tr,\n\t\t\t\tg,\n\t\t\t\tb,\n\t\t\t\talpha(t[3])\n\t\t\t];\n\t\t}\n\t\tcase \"oklch\": {\n\t\t\tconst L = num(t[0], 1);\n\t\t\tconst C = num(t[1], .4);\n\t\t\tconst H = hue(t[2]) * Math.PI / 180;\n\t\t\tconst [r, g, b] = oklabToRgb(L, C * Math.cos(H), C * Math.sin(H));\n\t\t\treturn [\n\t\t\t\tr,\n\t\t\t\tg,\n\t\t\t\tb,\n\t\t\t\talpha(t[3])\n\t\t\t];\n\t\t}\n\t\tcase \"oklab\": {\n\t\t\tconst [r, g, b] = oklabToRgb(num(t[0], 1), num(t[1], .4), num(t[2], .4));\n\t\t\treturn [\n\t\t\t\tr,\n\t\t\t\tg,\n\t\t\t\tb,\n\t\t\t\talpha(t[3])\n\t\t\t];\n\t\t}\n\t\tdefault: return null;\n\t}\n}\n/** Formats straight sRGB as `#rrggbb` (or `#rrggbbaa` when translucent). */\nfunction formatHex([r, g, b, a]) {\n\tconst h = (v) => Math.round(clamp01(v) * 255).toString(16).padStart(2, \"0\");\n\treturn `#${h(r)}${h(g)}${h(b)}${a < .999 ? h(a) : \"\"}`;\n}\nconst parseOr = (c) => parseCssColor(c) ?? [\n\t0,\n\t0,\n\t0,\n\t0\n];\n/**\n* Mixes two colors perceptually (in OKLab), `t` = 0 → `a`, 1 → `b`.\n* Midpoints keep their lightness and saturation instead of going muddy\n* the way a plain sRGB lerp does.\n*/\nfunction mixColors(a, b, t) {\n\tconst ca = parseOr(a);\n\tconst cb = parseOr(b);\n\tconst pa = ca[3] < 1e-4 ? cb : ca;\n\tconst pb = cb[3] < 1e-4 ? ca : cb;\n\tconst la = rgbToOklab(pa[0], pa[1], pa[2]);\n\tconst lb = rgbToOklab(pb[0], pb[1], pb[2]);\n\tconst k = clamp01(t);\n\tconst [r, g, bl] = oklabToRgb(la[0] + (lb[0] - la[0]) * k, la[1] + (lb[1] - la[1]) * k, la[2] + (lb[2] - la[2]) * k);\n\treturn formatHex([\n\t\tr,\n\t\tg,\n\t\tbl,\n\t\tca[3] + (cb[3] - ca[3]) * k\n\t]);\n}\n/** Samples a multi-stop gradient (stops in any order) at `t` ∈ [0, 1]. */\nfunction sampleColorStops(stops, t) {\n\tconst list = normalizeColorStops(stops);\n\tif (list.length === 0) return \"#00000000\";\n\tif (t <= list[0].offset) return list[0].color;\n\tfor (let i = 1; i < list.length; i++) {\n\t\tconst b = list[i];\n\t\tif (t <= b.offset) {\n\t\t\tconst a = list[i - 1];\n\t\t\tconst span = b.offset - a.offset;\n\t\t\treturn mixColors(a.color, b.color, span > 0 ? (t - a.offset) / span : 1);\n\t\t}\n\t}\n\treturn list[list.length - 1].color;\n}\n/** Bare color strings become evenly spaced stops; result is sorted by offset. */\nfunction normalizeColorStops(stops) {\n\tconst n = stops.length;\n\treturn stops.map((s, i) => typeof s === \"string\" ? {\n\t\toffset: n > 1 ? i / (n - 1) : 0,\n\t\tcolor: s\n\t} : {\n\t\toffset: clamp01(s.offset),\n\t\tcolor: s.color\n\t}).sort((a, b) => a.offset - b.offset);\n}\nfunction oklchOf(c) {\n\tconst [r, g, b, a] = parseOr(c);\n\tconst [L, A, B] = rgbToOklab(r, g, b);\n\treturn [\n\t\tL,\n\t\tMath.hypot(A, B),\n\t\tMath.atan2(B, A) * 180 / Math.PI,\n\t\ta\n\t];\n}\nfunction fromOklch(L, C, H, a) {\n\tconst h = H * Math.PI / 180;\n\tconst [r, g, b] = oklabToRgb(L, C * Math.cos(h), C * Math.sin(h));\n\treturn formatHex([\n\t\tr,\n\t\tg,\n\t\tb,\n\t\ta\n\t]);\n}\n/**\n* Authoring helpers for colors. Every function returns a hex string, so the\n* result drops straight into any color prop or keyframe.\n*\n* ```ts\n* Color.oklch(0.7, 0.15, 250) // perceptual: equal L reads equally bright\n* Color.hsl(212, 0.95, 0.74)\n* Color.mix(\"#ff5a1f\", \"#1f6bff\", 0.5) // OKLab, no muddy midpoint\n* const wave = Color.ramp([\"#3b82f6\", \"#8b5cf6\", \"#ec4899\"]);\n* wave(0.5) // sample a gradient\n* Color.lighten(\"#ff5a1f\", 0.1), Color.alpha(\"#000\", 0.4)\n* ```\n*/\nconst Color = {\n\tparse: parseCssColor,\n\thex(c) {\n\t\treturn formatHex(parseOr(c));\n\t},\n\trgb(r, g, b, a = 1) {\n\t\treturn formatHex([\n\t\t\tr / 255,\n\t\t\tg / 255,\n\t\t\tb / 255,\n\t\t\ta\n\t\t]);\n\t},\n\thsl(h, s, l, a = 1) {\n\t\tconst [r, g, b] = hslToRgb((h % 360 + 360) % 360, clamp01(s), clamp01(l));\n\t\treturn formatHex([\n\t\t\tr,\n\t\t\tg,\n\t\t\tb,\n\t\t\ta\n\t\t]);\n\t},\n\toklch(l, c, h, a = 1) {\n\t\treturn fromOklch(l, c, h, a);\n\t},\n\tmix: mixColors,\n\tramp(stops) {\n\t\tconst list = normalizeColorStops(stops);\n\t\treturn (t) => sampleColorStops(list, t);\n\t},\n\tsteps(stops, n) {\n\t\tconst list = normalizeColorStops(stops);\n\t\treturn Array.from({ length: n }, (_, i) => sampleColorStops(list, n > 1 ? i / (n - 1) : 0));\n\t},\n\tlighten(c, amount) {\n\t\tconst [L, C, H, a] = oklchOf(c);\n\t\treturn fromOklch(clamp01(L + amount), C, H, a);\n\t},\n\tdarken(c, amount) {\n\t\tconst [L, C, H, a] = oklchOf(c);\n\t\treturn fromOklch(clamp01(L - amount), C, H, a);\n\t},\n\tsaturate(c, factor) {\n\t\tconst [L, C, H, a] = oklchOf(c);\n\t\treturn fromOklch(L, C * factor, H, a);\n\t},\n\trotate(c, degrees$1) {\n\t\tconst [L, C, H, a] = oklchOf(c);\n\t\treturn fromOklch(L, C, H + degrees$1, a);\n\t},\n\talpha(c, a) {\n\t\tconst [r, g, b] = parseOr(c);\n\t\treturn formatHex([\n\t\t\tr,\n\t\t\tg,\n\t\t\tb,\n\t\t\tclamp01(a)\n\t\t]);\n\t},\n\tcontrast(a, b) {\n\t\tconst lum = (c) => {\n\t\t\tconst [r, g, bl] = parseOr(c);\n\t\t\treturn .2126 * toLinear(r) + .7152 * toLinear(g) + .0722 * toLinear(bl);\n\t\t};\n\t\tconst [hi, lo] = [lum(a), lum(b)].sort((x, y) => y - x);\n\t\treturn (hi + .05) / (lo + .05);\n\t},\n\treadableOn(background) {\n\t\treturn Color.contrast(background, \"#ffffff\") >= Color.contrast(background, \"#000000\") ? \"#ffffff\" : \"#000000\";\n\t}\n};\n\n//#endregion\n//#region src/utils/gradient.ts\n/**\n* CSS gradients (`linear-gradient`, `radial-gradient`, `conic-gradient`) as\n* values for any `background` or shape `fill`, plus `Gradient` helpers that\n* write them. Colors blend perceptually (OKLab), not through muddy sRGB.\n*/\n/** Gradients this renderer draws at most this many stops (extra ones are resampled). */\nconst MAX_GRADIENT_STOPS = 8;\nconst GRADIENT_RE = /^\\s*(linear|radial|conic)-gradient\\(\\s*([\\s\\S]*)\\)\\s*$/i;\nfunction isCssGradient(value) {\n\treturn typeof value === \"string\" && GRADIENT_RE.test(value);\n}\n/** Splits on commas that are not inside parentheses. */\nfunction splitTopLevel(s) {\n\tconst out = [];\n\tlet depth = 0;\n\tlet cur = \"\";\n\tfor (const ch of s) {\n\t\tif (ch === \"(\") depth++;\n\t\tif (ch === \")\") depth--;\n\t\tif (ch === \",\" && depth === 0) {\n\t\t\tout.push(cur.trim());\n\t\t\tcur = \"\";\n\t\t} else cur += ch;\n\t}\n\tif (cur.trim()) out.push(cur.trim());\n\treturn out;\n}\nfunction parseAngle(tok) {\n\tconst m = /^(-?[\\d.]+)(deg|turn|rad|grad)?$/i.exec(tok.trim());\n\tif (!m) return null;\n\tconst v = parseFloat(m[1]);\n\tswitch ((m[2] ?? \"deg\").toLowerCase()) {\n\t\tcase \"turn\": return v * 360;\n\t\tcase \"rad\": return v * 180 / Math.PI;\n\t\tcase \"grad\": return v * .9;\n\t\tdefault: return v;\n\t}\n}\nconst SIDE_ANGLES = {\n\ttop: 0,\n\tright: 90,\n\tbottom: 180,\n\tleft: 270,\n\t\"top right\": 45,\n\t\"right top\": 45,\n\t\"bottom right\": 135,\n\t\"right bottom\": 135,\n\t\"bottom left\": 225,\n\t\"left bottom\": 225,\n\t\"top left\": 315,\n\t\"left top\": 315\n};\nconst POSITION_KEYWORDS = {\n\tleft: 0,\n\ttop: 0,\n\tcenter: .5,\n\tright: 1,\n\tbottom: 1\n};\n/** `at 30% 70%`, `at left top`, `at center`. */\nfunction parsePosition(tokens) {\n\tconst vals = tokens.map((t) => t in POSITION_KEYWORDS ? {\n\t\tv: POSITION_KEYWORDS[t],\n\t\taxis: t === \"top\" || t === \"bottom\" ? \"y\" : t === \"left\" || t === \"right\" ? \"x\" : \"any\"\n\t} : {\n\t\tv: t.endsWith(\"%\") ? parseFloat(t) / 100 : .5,\n\t\taxis: \"any\"\n\t});\n\tlet x = .5;\n\tlet y = .5;\n\tif (vals.length === 1) if (vals[0].axis === \"y\") y = vals[0].v;\n\telse x = vals[0].v;\n\telse if (vals.length >= 2) if (vals[0].axis === \"y\" || vals[1].axis === \"x\") {\n\t\ty = vals[0].v;\n\t\tx = vals[1].v;\n\t} else {\n\t\tx = vals[0].v;\n\t\ty = vals[1].v;\n\t}\n\treturn [x, y];\n}\n/** Parses one `color [pos] [pos]` stop list entry; positions in 0..1 (or px later). */\nfunction parseStop(s) {\n\tconst m = /^((?:[a-z]+\\([^)]*\\))|#[0-9a-f]+|[a-z]+)\\s*(.*)$/i.exec(s.trim());\n\tif (!m) return null;\n\tconst color = parseCssColor(m[1]);\n\tif (!color) return null;\n\tconst positions = [];\n\tfor (const p of m[2].split(/\\s+/).filter(Boolean)) if (p.endsWith(\"%\")) positions.push(parseFloat(p) / 100);\n\telse if (p === \"0\") positions.push(0);\n\telse if (/(deg|turn|rad|grad)$/i.test(p)) {\n\t\tconst a = parseAngle(p);\n\t\tif (a !== null) positions.push(a / 360);\n\t}\n\treturn {\n\t\tcolor,\n\t\tpositions: positions.filter((p) => Number.isFinite(p))\n\t};\n}\n/** CSS stop fixup: clamp ascending, spread unpositioned stops evenly. */\nfunction resolveStops(raw) {\n\tconst n = raw.length;\n\tif (n === 0) return [];\n\tconst pos = raw.map((r) => r.position);\n\tif (pos[0] === void 0) pos[0] = 0;\n\tif (pos[n - 1] === void 0) pos[n - 1] = 1;\n\tlet maxSoFar = -Infinity;\n\tfor (let i = 0; i < n; i++) {\n\t\tconst p = pos[i];\n\t\tif (p !== void 0) {\n\t\t\tpos[i] = Math.max(p, maxSoFar);\n\t\t\tmaxSoFar = pos[i];\n\t\t}\n\t}\n\tfor (let i = 1; i < n; i++) {\n\t\tif (pos[i] !== void 0) continue;\n\t\tlet j = i;\n\t\twhile (pos[j] === void 0) j++;\n\t\tconst a = pos[i - 1];\n\t\tconst b = pos[j];\n\t\tfor (let k = i; k < j; k++) pos[k] = a + (b - a) * (k - i + 1) / (j - i + 1);\n\t}\n\treturn raw.map((r, i) => ({\n\t\toffset: pos[i],\n\t\tcolor: r.color\n\t}));\n}\nconst cache = /* @__PURE__ */ new Map();\n/** Parses a CSS gradient string; `null` when it is not one this engine draws. */\nfunction parseCssGradient(input) {\n\tconst hit = cache.get(input);\n\tif (hit !== void 0) return hit;\n\tconst result = parseUncached(input);\n\tif (cache.size > 512) cache.clear();\n\tcache.set(input, result);\n\treturn result;\n}\nfunction parseUncached(input) {\n\tconst m = GRADIENT_RE.exec(input);\n\tif (!m) return null;\n\tconst type = m[1].toLowerCase();\n\tconst parts = splitTopLevel(m[2]);\n\tconst g = {\n\t\ttype,\n\t\tangle: 180,\n\t\tcenter: [.5, .5],\n\t\tshape: \"ellipse\",\n\t\tfrom: 0,\n\t\tstops: []\n\t};\n\tconst first = parts[0]?.toLowerCase().trim() ?? \"\";\n\tlet consumedFirst = false;\n\tif (type === \"linear\") if (first.startsWith(\"to \")) {\n\t\tconst side = first.slice(3).trim().replace(/\\s+/g, \" \");\n\t\tif (side in SIDE_ANGLES) {\n\t\t\tg.angle = SIDE_ANGLES[side];\n\t\t\tconsumedFirst = true;\n\t\t}\n\t} else {\n\t\tconst a = parseAngle(first);\n\t\tif (a !== null) {\n\t\t\tg.angle = a;\n\t\t\tconsumedFirst = true;\n\t\t}\n\t}\n\telse {\n\t\tconst tokens = first.split(/\\s+/).filter(Boolean);\n\t\tconst at = tokens.indexOf(\"at\");\n\t\tconst before = at >= 0 ? tokens.slice(0, at) : tokens;\n\t\tif (at >= 0 || before.some((t) => t === \"circle\" || t === \"ellipse\" || t === \"from\" || /^closest|^farthest/.test(t) || type === \"radial\" && /px$/.test(t))) {\n\t\t\tconsumedFirst = true;\n\t\t\tif (at >= 0) g.center = parsePosition(tokens.slice(at + 1));\n\t\t\tif (type === \"radial\") {\n\t\t\t\tif (before.includes(\"circle\")) g.shape = \"circle\";\n\t\t\t\tconst px = before.filter((t) => /px$/.test(t)).map((t) => parseFloat(t));\n\t\t\t\tif (px.length === 1) {\n\t\t\t\t\tg.shape = \"circle\";\n\t\t\t\t\tg.radius = [px[0], px[0]];\n\t\t\t\t} else if (px.length >= 2) g.radius = [px[0], px[1]];\n\t\t\t} else {\n\t\t\t\tconst f = before.indexOf(\"from\");\n\t\t\t\tif (f >= 0 && before[f + 1]) g.from = parseAngle(before[f + 1]) ?? 0;\n\t\t\t}\n\t\t}\n\t}\n\tconst raw = [];\n\tfor (const p of consumedFirst ? parts.slice(1) : parts) {\n\t\tconst stop = parseStop(p);\n\t\tif (!stop) return null;\n\t\tif (stop.positions.length === 0) raw.push({ color: stop.color });\n\t\tfor (const pos of stop.positions) raw.push({\n\t\t\tcolor: stop.color,\n\t\t\tposition: pos\n\t\t});\n\t}\n\tif (raw.length === 0) return null;\n\tif (raw.length === 1) raw.push({ ...raw[0] });\n\tg.stops = resolveStops(raw);\n\treturn g;\n}\n/** Up to MAX_GRADIENT_STOPS stops: longer lists are resampled evenly. */\nfunction limitGradientStops(stops) {\n\tif (stops.length <= MAX_GRADIENT_STOPS) return stops;\n\tconst out = [];\n\tconst lo = stops[0].offset;\n\tconst hi = stops[stops.length - 1].offset;\n\tfor (let i = 0; i < MAX_GRADIENT_STOPS; i++) {\n\t\tconst t = lo + (hi - lo) * i / (MAX_GRADIENT_STOPS - 1);\n\t\tlet k = 1;\n\t\twhile (k < stops.length - 1 && stops[k].offset < t) k++;\n\t\tconst a = stops[k - 1];\n\t\tconst b = stops[k];\n\t\tconst span = b.offset - a.offset;\n\t\tconst f = span > 0 ? Math.min(1, Math.max(0, (t - a.offset) / span)) : 1;\n\t\tout.push({\n\t\t\toffset: t,\n\t\t\tcolor: a.color.map((v, j) => v + (b.color[j] - v) * f)\n\t\t});\n\t}\n\treturn out;\n}\n/**\n* Stops as OKLab + alpha for the GPU. A transparent stop borrows its\n* neighbor's color, so fading to `transparent` keeps the hue instead of\n* passing through grey (CSS premultiplied interpolation does the same).\n*/\nfunction gradientStopsToOklab(stops) {\n\tconst lab = stops.map((s) => rgbToOklab(s.color[0], s.color[1], s.color[2]));\n\treturn stops.map((s, i) => {\n\t\tlet src = lab[i];\n\t\tif (s.color[3] < 1e-4) {\n\t\t\tconst prev = stops.slice(0, i).reverse().findIndex((p) => p.color[3] > 1e-4);\n\t\t\tconst next = stops.slice(i + 1).findIndex((p) => p.color[3] > 1e-4);\n\t\t\tconst pi = prev >= 0 ? i - 1 - prev : -1;\n\t\t\tconst ni = next >= 0 ? i + 1 + next : -1;\n\t\t\tif (pi >= 0 && ni >= 0) {\n\t\t\t\tconst a = lab[pi];\n\t\t\t\tconst b = lab[ni];\n\t\t\t\tsrc = [\n\t\t\t\t\t(a[0] + b[0]) / 2,\n\t\t\t\t\t(a[1] + b[1]) / 2,\n\t\t\t\t\t(a[2] + b[2]) / 2\n\t\t\t\t];\n\t\t\t} else if (pi >= 0) src = lab[pi];\n\t\t\telse if (ni >= 0) src = lab[ni];\n\t\t}\n\t\treturn [\n\t\t\tsrc[0],\n\t\t\tsrc[1],\n\t\t\tsrc[2],\n\t\t\ts.color[3]\n\t\t];\n\t});\n}\nfunction stopList(stops) {\n\treturn stops.map((s) => typeof s === \"string\" ? s : `${s.color} ${Math.round(s.offset * 1e4) / 100}%`).join(\", \");\n}\n/**\n* Writes CSS gradient strings for `background` / `fill`:\n*\n* ```ts\n* Layer.box({ background: Gradient.linear([\"#ff5a1f\", \"#7c3aed\"], 135) })\n* Layer.shape(\"circle\", { fill: Gradient.radial([\"#fff\", \"transparent\"]) })\n* Gradient.conic([\"red\", \"yellow\", \"lime\", \"aqua\", \"blue\", \"magenta\", \"red\"])\n* ```\n* Plain strings work too: `\"linear-gradient(to right, #000, #fff 80%)\"`.\n*/\nconst Gradient = {\n\tlinear(stops, angle = 180) {\n\t\treturn `linear-gradient(${angle}deg, ${stopList(stops)})`;\n\t},\n\tradial(stops, options = {}) {\n\t\tconst at = options.at ?? [.5, .5];\n\t\treturn `radial-gradient(${options.radius !== void 0 ? `${options.radius}px` : options.circle ? \"circle\" : \"ellipse\"} at ${at[0] * 100}% ${at[1] * 100}%, ${stopList(stops)})`;\n\t},\n\tconic(stops, options = {}) {\n\t\tconst at = options.at ?? [.5, .5];\n\t\treturn `conic-gradient(from ${options.from ?? 0}deg at ${at[0] * 100}% ${at[1] * 100}%, ${stopList(stops)})`;\n\t},\n\tparse: parseCssGradient,\n\tis: isCssGradient\n};\n\n//#endregion\n//#region src/utils/is-equal.ts\n/**\n* Performs a deep comparison between two values to determine if they are equivalent.\n* Handles primitives, objects, arrays, Dates, and NaNs.\n*/\nfunction isEqual(a, b) {\n\tif (a === b) return true;\n\tif (typeof a === \"number\" && typeof b === \"number\" && Number.isNaN(a) && Number.isNaN(b)) return true;\n\tif (a && b && typeof a === \"object\" && typeof b === \"object\") {\n\t\tif (a.constructor !== b.constructor) return false;\n\t\tif (Array.isArray(a)) {\n\t\t\tif (a.length !== b.length) return false;\n\t\t\tfor (let i = 0; i < a.length; i++) if (!isEqual(a[i], b[i])) return false;\n\t\t\treturn true;\n\t\t}\n\t\tif (a instanceof Date) return a.getTime() === b.getTime();\n\t\tif (a instanceof RegExp) return a.toString() === b.toString();\n\t\tconst keys = Object.keys(a);\n\t\tif (keys.length !== Object.keys(b).length) return false;\n\t\tfor (const key of keys) {\n\t\t\tif (!Object.hasOwn(b, key)) return false;\n\t\t\tif (!isEqual(a[key], b[key])) return false;\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/utils/virtual-media.ts\n/**\n* Gets a stable object for hashing/fingerprinting by sorting keys and skipping volatile fields.\n*/\nfunction getStableData(data) {\n\tif (typeof data !== \"object\" || data === null) return data;\n\tif (Array.isArray(data)) return data.map(getStableData);\n\tconst result = {};\n\tconst keys = Object.keys(data).sort();\n\tfor (const key of keys) {\n\t\tconst val = data[key];\n\t\tif (key === \"createdAt\" || key === \"updatedAt\" || key === \"dataUrl\" || key === \"filePath\") continue;\n\t\tif (typeof val === \"string\" && val.startsWith(\"blob:\")) continue;\n\t\tif (key === \"entity\" && val && typeof val === \"object\" && val.id) {\n\t\t\tresult.entity = { id: val.id };\n\t\t\tcontinue;\n\t\t}\n\t\tresult[key] = getStableData(val);\n\t}\n\treturn result;\n}\n/**\n* Generates a fingerprint for the given data.\n*/\nfunction getFingerprint(data) {\n\tconst stableData = getStableData(data);\n\tconst str = JSON.stringify(stableData);\n\tif (str.length === 0) return \"0\";\n\tconst getHash = (seed) => {\n\t\tlet h1 = 3735928559 ^ seed;\n\t\tlet h2 = 1103547991 ^ seed;\n\t\tfor (let i = 0; i < str.length; i++) {\n\t\t\tconst ch = str.charCodeAt(i);\n\t\t\th1 = Math.imul(h1 ^ ch, 2654435761);\n\t\t\th2 = Math.imul(h2 ^ ch, 1597334677);\n\t\t}\n\t\th1 = Math.imul(h1 ^ h1 >>> 16, 2246822519);\n\t\th1 = Math.imul(h1 ^ h1 >>> 13, 3266489917);\n\t\th1 = h1 ^ h1 >>> 16;\n\t\th2 = Math.imul(h2 ^ h2 >>> 16, 2246822519);\n\t\th2 = Math.imul(h2 ^ h2 >>> 13, 3266489917);\n\t\th2 = h2 ^ h2 >>> 16;\n\t\treturn (h1 >>> 0).toString(36).padStart(7, \"0\") + (h2 >>> 0).toString(36).padStart(7, \"0\");\n\t};\n\treturn getHash(0) + getHash(1);\n}\n/**\n* Generates a version-aware fingerprint for render caching.\n* Includes app version so cached renders are invalidated on version bumps.\n*/\nfunction getRenderFingerprint(data, appVersion, extra) {\n\treturn getFingerprint({\n\t\t__v: appVersion,\n\t\tdata,\n\t\t...extra\n\t});\n}\n/**\n* Checks if data is VirtualMediaData.\n*/\nfunction isVirtualMediaData(data) {\n\treturn typeof data === \"object\" && data !== null && \"metadata\" in data && \"operation\" in data && \"children\" in data;\n}\n/**\n* Checks if the virtual media is just a raw source without any significant operations\n* that would require a rendering step (like transformations, trimming, or effects).\n*/\nfunction hasOnlySingleSource(data) {\n\tif (!isVirtualMediaData(data)) return false;\n\tif (data.operation.op === \"source\") {\n\t\tif (data.children && data.children.length > 0) return false;\n\t\tconst op = data.operation;\n\t\treturn !(op.volume !== void 0 && op.volume !== 1 || op.opacity !== void 0 && op.opacity !== 1 || op.startFrame !== void 0 && op.startFrame !== 0 || op.timeline && (op.timeline.startFrame !== void 0 && op.timeline.startFrame !== 0 || op.timeline.segments && op.timeline.segments.length > 0));\n\t}\n\tif (data.operation.op === \"compose\") return false;\n\tif (data.operation.op === \"layer\" && data.children.length === 1) {\n\t\tconst op = data.operation;\n\t\tif (!(op.x !== void 0 && op.x !== 0 || op.y !== void 0 && op.y !== 0 || op.rotation !== void 0 && op.rotation !== 0 || op.scale !== void 0 && op.scale !== 1 || op.opacity !== void 0 && op.opacity !== 1 || op.volume !== void 0 && op.volume !== 1 || op.zIndex !== void 0 || op.blendMode !== void 0 || op.filters !== void 0 || op.transitionIn !== void 0 || op.transitionOut !== void 0 || op.animations && op.animations.length > 0 || op.trimStart !== void 0 || op.trimEnd !== void 0 || op.speed !== void 0 || op.backgroundColor !== void 0 || op.borderColor !== void 0 || op.borderWidth !== void 0 || op.strokeRadius !== void 0)) return hasOnlySingleSource(data.children[0]);\n\t}\n\treturn false;\n}\n/**\n* Finds the source asset in a virtual media tree.\n*/\nfunction findSourceAsset(vm) {\n\tif (vm.operation.op === \"source\") return vm.operation.source;\n\tif (vm.children && vm.children.length > 0) return findSourceAsset(vm.children[0]);\n\treturn null;\n}\n\n//#endregion\n//#region src/utils/result-cache.ts\n/**\n* Checks if a cached node result can be reused based on source fingerprint.\n* Returns the valid cached result, or null if the cache is stale.\n*/\nfunction checkNodeResultCache(currentResult, input) {\n\tif (!currentResult?.sourceFingerprint) return null;\n\tconst inputFingerprint = getFingerprint(input);\n\tif (currentResult.sourceFingerprint !== inputFingerprint) return null;\n\treturn currentResult;\n}\n/**\n* Creates a fresh result with a source fingerprint stamp.\n*/\nfunction stampResult(result, input) {\n\treturn {\n\t\t...result,\n\t\tsourceFingerprint: getFingerprint(input)\n\t};\n}\n\n//#endregion\n//#region src/utils/svg.ts\n/**\n* Attempts to parse the width and height of an SVG from its buffer.\n* Falls back to viewBox ratios if explicitly defined sizes are missing.\n*/\nfunction extractSvgDimensions(buffer) {\n\ttry {\n\t\tconst match = buffer.toString(\"utf-8\").match(/<svg[^>]*>/i);\n\t\tif (!match) return null;\n\t\tconst svgTag = match[0];\n\t\tconst getAttr = (name) => {\n\t\t\tconst attrMatch = svgTag.match(new RegExp(`${name}=[\"']([^\"']+)[\"']`, \"i\"));\n\t\t\tif (!attrMatch) return null;\n\t\t\tconst val = parseFloat(attrMatch[1].replace(/[a-z%]/gi, \"\"));\n\t\t\treturn isNaN(val) ? null : val;\n\t\t};\n\t\tlet w = getAttr(\"width\");\n\t\tlet h = getAttr(\"height\");\n\t\tconst viewBoxMatch = svgTag.match(/viewBox=[\"']([^\"']+)[\"']/i);\n\t\tif (viewBoxMatch) {\n\t\t\tconst parts = viewBoxMatch[1].split(/[\\s,]+/).map(parseFloat);\n\t\t\tif (parts.length >= 4 && !isNaN(parts[2]) && !isNaN(parts[3])) {\n\t\t\t\tconst vbW = parts[2];\n\t\t\t\tconst vbH = parts[3];\n\t\t\t\tif (w == null && h == null) {\n\t\t\t\t\tw = vbW;\n\t\t\t\t\th = vbH;\n\t\t\t\t} else if (w != null && h == null) h = w * (vbH / vbW);\n\t\t\t\telse if (h != null && w == null) w = h * (vbW / vbH);\n\t\t\t}\n\t\t}\n\t\tif (w != null && h != null && w > 0 && h > 0) return {\n\t\t\tw,\n\t\t\th\n\t\t};\n\t\treturn null;\n\t} catch (error) {\n\t\tconsole.error(\"Error parsing SVG dimensions\", error);\n\t\treturn null;\n\t}\n}\n\n//#endregion\nexport { AnimationTypeSchema, AnyOutputUnionSchema, AudioExtractorSignalDataSchema, BaseMediaOperationPropsSchema, BaseVideoLayerPropsSchema, CAPTION_LAYER_DEFAULTS, COMPOSITE_OPERATIONS, COMPOSITOR_DEFAULTS, Color, ConfigHandleSchema, ConfigSchemaRegistry, DATA_TYPE_EXTENSIONS, DEFAULT_DURATION_MS, DEFAULT_FPS, DEFAULT_MEDIA_DIMENSION, DataType, DataTypeVal, DataTypes, Effect, ExportResultSchema, ExtendedLayerSchema, FileAssetSchema, FileDataSchema, GeneratorSignalDataSchema, GlobalCompositeOperation, Gradient, HandleTypeVal, JsonValueSchema, MAX_GRADIENT_STOPS, MIME_TYPES, MediaMetadataSchema, MediaOperationSchema, MediaSourceSchema, ModerationError, ModerationUnrefundableError, MultiOutputGenericSchema, NodeMetadataSchema, NodeResultSchema, NodeVisualConfigSchema, OutputItemSchema, ProgrammaticSignal, Signal, SignalChannelMetaSchema, SignalDataSchema, SignalGateDataSchema, SignalMathDataSchema, SignalStatsSchema, SingleOutputGenericSchema, SourceOperationSchema, TEXT_LAYER_DEFAULTS, TextOperationSchema, TimelineSegmentSchema, TimelineTransformSchema, TransitionSchema, TransitionTypeSchema, VideoAnimationSchema, VideoLayerTypeSchema, VideoSpatialPropsSchema, VideoStylePropsSchema, VideoTextPropsSchema, VideoTimingPropsSchema, VirtualMediaDataSchema, appendOperation, assertNever, checkNodeResultCache, computeVideoCropRenderProps, computed, cosineSignal, createOutputItemSchema, createVirtualMedia, dataTypeColors, degrees, deserializeSignalData, extractSvgDimensions, findSourceAsset, formatHex, fps, frame, frameArraySignal, frameSignal, generateId, getActiveMediaMetadata, getFileDataMetadata, getFingerprint, getLeafMediaType, getMediaType, getRenderFingerprint, gradientStopsToOklab, handleId, handleLabel, hasOnlySingleSource, isCssGradient, isEqual, isFrameIndex, isNormalized, isSignal, isValueSignal, isVirtualMediaData, limitGradientStops, mixColors, ms, nodeId, normalizeColorStops, normalized, oklabToRgb, parseCssColor, parseCssGradient, pixels, programmaticSignal, progressSignal, radians, registerSignalDependency, reportRenderDiagnostic, resolveBoolean, resolveMediaMimeType, resolveNumber, resolveParam, resolveString, rgbToOklab, sampleColorStops, seconds, serializeSignalData, signal, signalBuilder, sineSignal, stampResult, takeRenderDiagnostics, timeSignal, updateClockSignals };\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|