framefields 2.2.0-beta.4 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -2
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-BvYmTu5T.d.mts → audio-BNnEclHU.d.mts} +3 -3
- package/dist/{audio-BvYmTu5T.d.mts.map → audio-BNnEclHU.d.mts.map} +1 -1
- package/dist/{audio-DMUr01vS.mjs → audio-ChRqnFwB.mjs} +3 -3
- package/dist/{audio-DMUr01vS.mjs.map → audio-ChRqnFwB.mjs.map} +1 -1
- package/dist/{dist-cjxDXQdx.mjs → dist-PwT_Vmax.mjs} +102 -6
- package/dist/{dist-cjxDXQdx.mjs.map → dist-PwT_Vmax.mjs.map} +1 -1
- package/dist/{dist-CT___nEU.mjs → dist-t-NLlnhM.mjs} +7 -5
- package/dist/dist-t-NLlnhM.mjs.map +1 -0
- package/dist/effects/index.d.mts +5 -5
- package/dist/effects/index.mjs +36 -36
- package/dist/{effects-C06-AOge.mjs → effects-Duoqc_Oa.mjs} +532 -4
- package/dist/effects-Duoqc_Oa.mjs.map +1 -0
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-C0UuLQvr.mjs → fonts-CgNmeFXh.mjs} +2 -2
- package/dist/{fonts-C0UuLQvr.mjs.map → fonts-CgNmeFXh.mjs.map} +1 -1
- package/dist/{gpu-Du7GpVFW.mjs → gpu-1ZpAuQOR.mjs} +2 -2
- package/dist/{gpu-Du7GpVFW.mjs.map → gpu-1ZpAuQOR.mjs.map} +1 -1
- package/dist/{index-B-oUlLoO.d.mts → index-AdrZIWT0.d.mts} +27 -2
- package/dist/index-AdrZIWT0.d.mts.map +1 -0
- package/dist/{index-BcA8rep0.d.mts → index-B-55dXDu.d.mts} +1 -1
- package/dist/{index-BcA8rep0.d.mts.map → index-B-55dXDu.d.mts.map} +1 -1
- package/dist/{index-D-Iek5sq.d.mts → index-B3BwLHa6.d.mts} +3 -3
- package/dist/{index-D-Iek5sq.d.mts.map → index-B3BwLHa6.d.mts.map} +1 -1
- package/dist/{index-CwbszPDG.d.mts → index-BU51pxZO.d.mts} +956 -9
- package/dist/index-BU51pxZO.d.mts.map +1 -0
- package/dist/{index-XdQPNJnq.d.mts → index-CeRv1KC0.d.mts} +3 -3
- package/dist/{index-XdQPNJnq.d.mts.map → index-CeRv1KC0.d.mts.map} +1 -1
- package/dist/{index-DXfp_T-3.d.mts → index-Cg2ptXcs.d.mts} +2 -2
- package/dist/{index-DXfp_T-3.d.mts.map → index-Cg2ptXcs.d.mts.map} +1 -1
- package/dist/{index-CdyE1tst.d.mts → index-QmkcUL3W.d.mts} +2 -2
- package/dist/{index-CdyE1tst.d.mts.map → index-QmkcUL3W.d.mts.map} +1 -1
- package/dist/index.d.mts +1438 -66
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3122 -83
- package/dist/index.mjs.map +1 -1
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-M0TsUzC6.mjs → preview-CArsjmkd.mjs} +2 -2
- package/dist/{preview-M0TsUzC6.mjs.map → preview-CArsjmkd.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/chunk-2JKXYG6J.mjs +127 -0
- package/dist/preview-engine/chunk-7I7PKKDL.mjs +214 -0
- package/dist/preview-engine/chunk-BQY4BUMN.mjs +1 -0
- package/dist/preview-engine/{chunk-RSMO7NPN.mjs → chunk-BSOJR4JU.mjs} +1 -1
- package/dist/preview-engine/chunk-BVA5NGSH.mjs +1 -0
- package/dist/preview-engine/chunk-DLAHSLNX.mjs +1522 -0
- package/dist/preview-engine/{chunk-ZTHWCQ2A.mjs → chunk-FNE22WGA.mjs} +1 -1
- package/dist/preview-engine/chunk-KERW7QJ4.mjs +174 -0
- package/dist/preview-engine/{chunk-7B5S5D4N.mjs → chunk-TPAEN6VV.mjs} +1 -1
- package/dist/preview-engine/chunk-YQRKT47I.mjs +1 -0
- package/dist/preview-engine/crypto-W5UAWSNT.mjs +1 -0
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +26 -26
- package/dist/preview-engine/player.mjs +5 -5
- package/dist/preview-engine/rapier-AHBIGHEL.mjs +1 -0
- package/dist/preview-engine/rapier-JD7KNQRV.mjs +1 -0
- package/dist/preview-engine/renderers-527ONFIA.mjs +228 -0
- package/dist/preview-engine/renderers-6ODPWZ2R.mjs +96 -0
- package/dist/preview-engine/renderers-7NCG6BYS.mjs +94 -0
- package/dist/preview-engine/renderers-BGGRPAVV.mjs +363 -0
- package/dist/preview-engine/renderers-DN2GF3I7.mjs +82 -0
- package/dist/preview-engine/renderers-FGHOLJJK.mjs +44 -0
- package/dist/preview-engine/renderers-FK72LKQC.mjs +275 -0
- package/dist/preview-engine/renderers-FQWWAETX.mjs +203 -0
- package/dist/preview-engine/renderers-HMR2NAD7.mjs +81 -0
- package/dist/preview-engine/renderers-HUW2ZMS3.mjs +1 -0
- package/dist/preview-engine/renderers-JLFGBYN4.mjs +78 -0
- package/dist/preview-engine/renderers-LLUEOW5T.mjs +77 -0
- package/dist/preview-engine/renderers-NC64EQDE.mjs +1 -0
- package/dist/preview-engine/renderers-PVYP2ONH.mjs +76 -0
- package/dist/preview-engine/renderers-TPBPNXWH.mjs +26 -0
- package/dist/preview-engine/renderers-UJ4YVJZT.mjs +80 -0
- package/dist/preview-engine/renderers-WHBDHTRI.mjs +78 -0
- package/dist/preview-engine/renderers-WP67KK5K.mjs +89 -0
- package/dist/preview-engine/renderers-YNFKFM7D.mjs +67 -0
- package/dist/preview-engine/renderers-ZSENYGIY.mjs +84 -0
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-DzknMiY0.mjs → program-Dd9tJFkY.mjs} +346 -13
- package/dist/program-Dd9tJFkY.mjs.map +1 -0
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-C8uKdelk.mjs → renderer-0L9MEb3A.mjs} +2 -2
- package/dist/{renderer-C8uKdelk.mjs.map → renderer-0L9MEb3A.mjs.map} +1 -1
- package/dist/renderer-0lp9ClNc.mjs +5 -0
- package/dist/{renderer-BbdZ0YHR.mjs → renderer-257LxOyx.mjs} +3 -3
- package/dist/{renderer-BbdZ0YHR.mjs.map → renderer-257LxOyx.mjs.map} +1 -1
- package/dist/renderer-2BnBo6CX.mjs +219 -0
- package/dist/renderer-2BnBo6CX.mjs.map +1 -0
- package/dist/renderer-4g_BfiKp.mjs +5 -0
- package/dist/renderer-72A4SvOE.mjs +220 -0
- package/dist/renderer-72A4SvOE.mjs.map +1 -0
- package/dist/renderer-7Aw6AHqW.mjs +5 -0
- package/dist/{renderer-PKQNH21k.mjs → renderer-7OvgLE8w.mjs} +2 -2
- package/dist/{renderer-BerD3T-X.mjs → renderer-94byj7Mk.mjs} +2 -2
- package/dist/{renderer-BerD3T-X.mjs.map → renderer-94byj7Mk.mjs.map} +1 -1
- package/dist/{renderer-D-vRKssW.mjs → renderer-B2aXfdW_.mjs} +2 -2
- package/dist/{renderer-D-vRKssW.mjs.map → renderer-B2aXfdW_.mjs.map} +1 -1
- package/dist/{renderer-DD8napek.mjs → renderer-B3c-j-e5.mjs} +2 -2
- package/dist/{renderer-DD8napek.mjs.map → renderer-B3c-j-e5.mjs.map} +1 -1
- package/dist/renderer-B3ypX3MH.mjs +308 -0
- package/dist/renderer-B3ypX3MH.mjs.map +1 -0
- package/dist/renderer-B82v8PyC.mjs +5 -0
- package/dist/renderer-B8BDMJNz.mjs +5 -0
- package/dist/renderer-BARst3ZD.mjs +3 -0
- package/dist/renderer-BCPRrhP8.mjs +5 -0
- package/dist/{renderer-CMT4QcpV.mjs → renderer-BEdc-7JW.mjs} +3 -3
- package/dist/{renderer-CMT4QcpV.mjs.map → renderer-BEdc-7JW.mjs.map} +1 -1
- package/dist/renderer-BEpANdcO.mjs +204 -0
- package/dist/renderer-BEpANdcO.mjs.map +1 -0
- package/dist/renderer-BFhzO6En.mjs +5 -0
- package/dist/renderer-BH0KF-y-.mjs +6 -0
- package/dist/renderer-BHrqEgIA.mjs +541 -0
- package/dist/renderer-BHrqEgIA.mjs.map +1 -0
- package/dist/{renderer-DpW_LxLO.mjs → renderer-BId5hBLb.mjs} +3 -3
- package/dist/{renderer-DpW_LxLO.mjs.map → renderer-BId5hBLb.mjs.map} +1 -1
- package/dist/renderer-BK32cV7E.mjs +203 -0
- package/dist/renderer-BK32cV7E.mjs.map +1 -0
- package/dist/renderer-BTI5ybyH.mjs +5 -0
- package/dist/{renderer-0gY4IQhM.mjs → renderer-BVR0mEIT.mjs} +2 -2
- package/dist/{renderer-0gY4IQhM.mjs.map → renderer-BVR0mEIT.mjs.map} +1 -1
- package/dist/{renderer-CebB0v1y.mjs → renderer-BY08hHFS.mjs} +2 -2
- package/dist/{renderer-CebB0v1y.mjs.map → renderer-BY08hHFS.mjs.map} +1 -1
- package/dist/renderer-Ba7LH8U2.mjs +5 -0
- package/dist/renderer-BcQBlfhC.mjs +5 -0
- package/dist/renderer-BdMJzCTz.mjs +5 -0
- package/dist/{renderer-D1Cm21eq.mjs → renderer-BmQbSQHf.mjs} +2 -2
- package/dist/{renderer-D1Cm21eq.mjs.map → renderer-BmQbSQHf.mjs.map} +1 -1
- package/dist/{renderer-DqdhsSwS.mjs → renderer-BmTDXIUI.mjs} +2 -2
- package/dist/{renderer-DqdhsSwS.mjs.map → renderer-BmTDXIUI.mjs.map} +1 -1
- package/dist/renderer-BpdzhZE7.mjs +224 -0
- package/dist/renderer-BpdzhZE7.mjs.map +1 -0
- package/dist/renderer-Bxi2j-tG.mjs +5 -0
- package/dist/{renderer-D8thCpS7.mjs → renderer-C-Qj0BnT.mjs} +3 -3
- package/dist/{renderer-D8thCpS7.mjs.map → renderer-C-Qj0BnT.mjs.map} +1 -1
- package/dist/{renderer-BiwIh_w4.mjs → renderer-C4tUATd_.mjs} +3 -3
- package/dist/{renderer-BiwIh_w4.mjs.map → renderer-C4tUATd_.mjs.map} +1 -1
- package/dist/{renderer-1vhaKMeg.mjs → renderer-CC72sZ8l.mjs} +141 -56
- package/dist/renderer-CC72sZ8l.mjs.map +1 -0
- package/dist/renderer-CCn5ISVM.mjs +5 -0
- package/dist/renderer-CDRsdhg9.mjs +5 -0
- package/dist/{renderer-BC8XOVl5.mjs → renderer-CI9Pq77W.mjs} +3 -3
- package/dist/{renderer-BC8XOVl5.mjs.map → renderer-CI9Pq77W.mjs.map} +1 -1
- package/dist/{renderer-CrABA3lB.mjs → renderer-CIMI33Yd.mjs} +2 -2
- package/dist/{renderer-CrABA3lB.mjs.map → renderer-CIMI33Yd.mjs.map} +1 -1
- package/dist/renderer-CKSdl0Xf.mjs +331 -0
- package/dist/renderer-CKSdl0Xf.mjs.map +1 -0
- package/dist/{renderer-Cce2fgpX.mjs → renderer-CKpwEo1w.mjs} +3 -3
- package/dist/{renderer-Cce2fgpX.mjs.map → renderer-CKpwEo1w.mjs.map} +1 -1
- package/dist/{renderer-CursFKUf.mjs → renderer-CLUyYFqS.mjs} +2 -2
- package/dist/{renderer-CursFKUf.mjs.map → renderer-CLUyYFqS.mjs.map} +1 -1
- package/dist/{renderer-Br6KyRO_.mjs → renderer-CS-goRD3.mjs} +3 -3
- package/dist/{renderer-Br6KyRO_.mjs.map → renderer-CS-goRD3.mjs.map} +1 -1
- package/dist/{renderer-DtgMsjyL.mjs → renderer-CSPpKLi3.mjs} +2 -2
- package/dist/{renderer-DtgMsjyL.mjs.map → renderer-CSPpKLi3.mjs.map} +1 -1
- package/dist/{renderer-CuVPo-wP.mjs → renderer-CWQ-Bct7.mjs} +2 -2
- package/dist/{renderer-CuVPo-wP.mjs.map → renderer-CWQ-Bct7.mjs.map} +1 -1
- package/dist/{renderer-DHGTzype.mjs → renderer-ChoYV7Ko.mjs} +2 -2
- package/dist/{renderer-DHGTzype.mjs.map → renderer-ChoYV7Ko.mjs.map} +1 -1
- package/dist/renderer-CiCK8ZG_.mjs +5 -0
- package/dist/{renderer-CJB9nU1x.mjs → renderer-Ck2pRec0.mjs} +3 -3
- package/dist/{renderer-CJB9nU1x.mjs.map → renderer-Ck2pRec0.mjs.map} +1 -1
- package/dist/{renderer-BzDjy1_x.mjs → renderer-CrUudSLP.mjs} +2 -2
- package/dist/{renderer-BzDjy1_x.mjs.map → renderer-CrUudSLP.mjs.map} +1 -1
- package/dist/{renderer-DupsdRIw.mjs → renderer-CraudZUC.mjs} +3 -3
- package/dist/{renderer-DupsdRIw.mjs.map → renderer-CraudZUC.mjs.map} +1 -1
- package/dist/renderer-CsEk9TFz.mjs +5 -0
- package/dist/renderer-CvOzuDX3.mjs +215 -0
- package/dist/renderer-CvOzuDX3.mjs.map +1 -0
- package/dist/{renderer-DJfFc-XW.mjs → renderer-Cvysm2Jg.mjs} +3 -3
- package/dist/{renderer-DJfFc-XW.mjs.map → renderer-Cvysm2Jg.mjs.map} +1 -1
- package/dist/{renderer-Bn2eQE-t.mjs → renderer-CwwmwM7J.mjs} +3 -3
- package/dist/{renderer-Bn2eQE-t.mjs.map → renderer-CwwmwM7J.mjs.map} +1 -1
- package/dist/{renderer-KnCcN_Nz.mjs → renderer-CxP2e6Ov.mjs} +2 -2
- package/dist/{renderer-KnCcN_Nz.mjs.map → renderer-CxP2e6Ov.mjs.map} +1 -1
- package/dist/{renderer-BteUC_7n.mjs → renderer-D-yNHLG7.mjs} +3 -3
- package/dist/{renderer-BteUC_7n.mjs.map → renderer-D-yNHLG7.mjs.map} +1 -1
- package/dist/renderer-D0xLIq1r.mjs +203 -0
- package/dist/renderer-D0xLIq1r.mjs.map +1 -0
- package/dist/{renderer-id8TbKBY.mjs → renderer-D1MOTlWS.mjs} +2 -2
- package/dist/{renderer-id8TbKBY.mjs.map → renderer-D1MOTlWS.mjs.map} +1 -1
- package/dist/renderer-D1T7A3NF.mjs +233 -0
- package/dist/renderer-D1T7A3NF.mjs.map +1 -0
- package/dist/renderer-D1gx_-hi.mjs +5 -0
- package/dist/renderer-D5MCGNAF.mjs +5 -0
- package/dist/{renderer-Db3JIF1K.mjs → renderer-D6YcQTLI.mjs} +3 -3
- package/dist/{renderer-Db3JIF1K.mjs.map → renderer-D6YcQTLI.mjs.map} +1 -1
- package/dist/{renderer-BNqwn0gZ.mjs → renderer-D8_UYdDb.mjs} +2 -2
- package/dist/{renderer-BNqwn0gZ.mjs.map → renderer-D8_UYdDb.mjs.map} +1 -1
- package/dist/renderer-DD_MzvM-.mjs +5 -0
- package/dist/{renderer-BHskWZNG.mjs → renderer-DIqwz7dV.mjs} +2 -2
- package/dist/{renderer-57ATc_mQ.mjs → renderer-DJQD7tai.mjs} +2 -2
- package/dist/{renderer-57ATc_mQ.mjs.map → renderer-DJQD7tai.mjs.map} +1 -1
- package/dist/{renderer-CWBHVCvA.mjs → renderer-DKXK5hDm.mjs} +2 -2
- package/dist/{renderer-CWBHVCvA.mjs.map → renderer-DKXK5hDm.mjs.map} +1 -1
- package/dist/{renderer-p_C_T9Kn.mjs → renderer-DNYSf2Fl.mjs} +2 -2
- package/dist/{renderer-p_C_T9Kn.mjs.map → renderer-DNYSf2Fl.mjs.map} +1 -1
- package/dist/{renderer-DXqIslFk.mjs → renderer-DNaHFctD.mjs} +2 -2
- package/dist/{renderer-DXqIslFk.mjs.map → renderer-DNaHFctD.mjs.map} +1 -1
- package/dist/renderer-DO5r7ZV-.mjs +658 -0
- package/dist/renderer-DO5r7ZV-.mjs.map +1 -0
- package/dist/renderer-DP7YoZ0K.mjs +5 -0
- package/dist/{renderer-CE7fwGgw.mjs → renderer-DQtk282o.mjs} +29 -8
- package/dist/renderer-DQtk282o.mjs.map +1 -0
- package/dist/{renderer-u8ynJtAC.mjs → renderer-DWcbrx2M.mjs} +2 -2
- package/dist/{renderer-u8ynJtAC.mjs.map → renderer-DWcbrx2M.mjs.map} +1 -1
- package/dist/renderer-DXiWvKij.mjs +5 -0
- package/dist/renderer-DZnUiiBp.mjs +222 -0
- package/dist/renderer-DZnUiiBp.mjs.map +1 -0
- package/dist/renderer-Dc6fW-o1.mjs +5 -0
- package/dist/renderer-DiurlsNT.mjs +5 -0
- package/dist/{renderer-BmGPTWwV.mjs → renderer-Dju3SEAJ.mjs} +3 -3
- package/dist/{renderer-BmGPTWwV.mjs.map → renderer-Dju3SEAJ.mjs.map} +1 -1
- package/dist/{renderer-BT-_EoXw.d.mts → renderer-DlESyfg7.d.mts} +2 -2
- package/dist/{renderer-BT-_EoXw.d.mts.map → renderer-DlESyfg7.d.mts.map} +1 -1
- package/dist/{renderer-aArb4RwJ.mjs → renderer-DpQaiH6C.mjs} +2 -2
- package/dist/{renderer-aArb4RwJ.mjs.map → renderer-DpQaiH6C.mjs.map} +1 -1
- package/dist/{renderer-CeyAgJnw.mjs → renderer-DuxzqfoE.mjs} +2 -2
- package/dist/renderer-DvCUdgVz.mjs +5 -0
- package/dist/{renderer-AF884a7T.mjs → renderer-Dvg5nbgU.mjs} +3 -3
- package/dist/{renderer-AF884a7T.mjs.map → renderer-Dvg5nbgU.mjs.map} +1 -1
- package/dist/{renderer-DvFaC_-7.mjs → renderer-Dvq11SEA.mjs} +2 -2
- package/dist/{renderer-DvFaC_-7.mjs.map → renderer-Dvq11SEA.mjs.map} +1 -1
- package/dist/renderer-DyPgVl1l.mjs +223 -0
- package/dist/renderer-DyPgVl1l.mjs.map +1 -0
- package/dist/{renderer-DEuIwr-t.mjs → renderer-DzOzVxNS.mjs} +2 -2
- package/dist/{renderer-DEuIwr-t.mjs.map → renderer-DzOzVxNS.mjs.map} +1 -1
- package/dist/renderer-EhCkD11e.mjs +208 -0
- package/dist/renderer-EhCkD11e.mjs.map +1 -0
- package/dist/renderer-IiwAh9-K.mjs +5 -0
- package/dist/{renderer-jqByPgkD.mjs → renderer-JiEpssIz.mjs} +2 -2
- package/dist/{renderer-jqByPgkD.mjs.map → renderer-JiEpssIz.mjs.map} +1 -1
- package/dist/renderer-JlGXqH0E.mjs +5 -0
- package/dist/{renderer-Beg7FLt2.mjs → renderer-OxafT7Xm.mjs} +75 -27
- package/dist/renderer-OxafT7Xm.mjs.map +1 -0
- package/dist/renderer-TZFKKgL1.mjs +5 -0
- package/dist/renderer-UT0CcmMZ.mjs +191 -0
- package/dist/renderer-UT0CcmMZ.mjs.map +1 -0
- package/dist/{renderer-YbaCzPcG.mjs → renderer-YyEBKPcE.mjs} +2 -2
- package/dist/{renderer-jYxN4mHn.mjs → renderer-_AuL8mAi.mjs} +3 -3
- package/dist/{renderer-jYxN4mHn.mjs.map → renderer-_AuL8mAi.mjs.map} +1 -1
- package/dist/{renderer-C6md3msE.mjs → renderer-aCDIEYb3.mjs} +2 -2
- package/dist/{renderer-C6md3msE.mjs.map → renderer-aCDIEYb3.mjs.map} +1 -1
- package/dist/renderer-aEecoNPX.mjs +5 -0
- package/dist/{renderer-BeIUgp1r.mjs → renderer-aN60v8jR.mjs} +2 -2
- package/dist/{renderer-BeIUgp1r.mjs.map → renderer-aN60v8jR.mjs.map} +1 -1
- package/dist/renderer-ewhliYYP.mjs +5 -0
- package/dist/renderer-hQc6GgTi.mjs +5 -0
- package/dist/renderer-iuX0RZIi.mjs +5 -0
- package/dist/renderer-j4vkTzHa.mjs +5 -0
- package/dist/{renderer-EemDpvv3.mjs → renderer-mpInX4Iy.mjs} +3 -3
- package/dist/{renderer-EemDpvv3.mjs.map → renderer-mpInX4Iy.mjs.map} +1 -1
- package/dist/renderer-msPjwx_9.mjs +5 -0
- package/dist/renderer-pI2ndu-b.mjs +5 -0
- package/dist/renderer-x1OGMhsC.mjs +5 -0
- package/dist/{renderer-DZXbgVMK.mjs → renderer-xezE7IZX.mjs} +3 -3
- package/dist/{renderer-DZXbgVMK.mjs.map → renderer-xezE7IZX.mjs.map} +1 -1
- package/dist/renderer-yGAk7J9P.mjs +222 -0
- package/dist/renderer-yGAk7J9P.mjs.map +1 -0
- package/dist/{renderer-Bvx56GR6.mjs → renderer-zQIB2VZZ.mjs} +2 -2
- package/dist/{renderer-Bvx56GR6.mjs.map → renderer-zQIB2VZZ.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-BA-4l6By.mjs → renderers-CP8CFWDs-i6u_rhCX.mjs} +2 -2
- package/dist/{renderers-CP8CFWDs-BA-4l6By.mjs.map → renderers-CP8CFWDs-i6u_rhCX.mjs.map} +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +4 -4
- package/package.json +58 -55
- package/dist/dist-CT___nEU.mjs.map +0 -1
- package/dist/effects-C06-AOge.mjs.map +0 -1
- package/dist/index-B-oUlLoO.d.mts.map +0 -1
- package/dist/index-CwbszPDG.d.mts.map +0 -1
- package/dist/preview-engine/chunk-G4K6TLNA.mjs +0 -1
- package/dist/preview-engine/chunk-HVCAOHNI.mjs +0 -1
- package/dist/preview-engine/chunk-KBO6EX3M.mjs +0 -1448
- package/dist/preview-engine/chunk-N4LHIPHZ.mjs +0 -340
- package/dist/preview-engine/chunk-NECOKNHA.mjs +0 -174
- package/dist/preview-engine/renderers-T4JMJXWL.mjs +0 -1
- package/dist/preview-engine/renderers-VFV5QWO3.mjs +0 -1
- package/dist/preview-engine/renderers-VUL4HBX3.mjs +0 -228
- package/dist/program-DzknMiY0.mjs.map +0 -1
- package/dist/renderer--IDyGdqT.mjs +0 -5
- package/dist/renderer-17K4tjid.mjs +0 -5
- package/dist/renderer-1vhaKMeg.mjs.map +0 -1
- package/dist/renderer-Ab9Ttn_m.mjs +0 -5
- package/dist/renderer-B-roDBBo.mjs +0 -5
- package/dist/renderer-B03uwoUX.mjs +0 -5
- package/dist/renderer-B3BI_7YJ.mjs +0 -5
- package/dist/renderer-BGD4lQ74.mjs +0 -5
- package/dist/renderer-BHXhYfeC.mjs +0 -5
- package/dist/renderer-BRsTIMFa.mjs +0 -5
- package/dist/renderer-Beg7FLt2.mjs.map +0 -1
- package/dist/renderer-BjMTtYZw.mjs +0 -5
- package/dist/renderer-BoCh3Yts.mjs +0 -5
- package/dist/renderer-BqPbR8c4.mjs +0 -5
- package/dist/renderer-Bxa4SDm9.mjs +0 -3
- package/dist/renderer-C4Da2I1-.mjs +0 -5
- package/dist/renderer-C93X6dgl.mjs +0 -5
- package/dist/renderer-CE7fwGgw.mjs.map +0 -1
- package/dist/renderer-CMAwFfGx.mjs +0 -6
- package/dist/renderer-CRXeSuX2.mjs +0 -5
- package/dist/renderer-CSp6WYBN.mjs +0 -5
- package/dist/renderer-CUXX7HTL.mjs +0 -5
- package/dist/renderer-CUgThpka.mjs +0 -5
- package/dist/renderer-CeVtufiT.mjs +0 -5
- package/dist/renderer-CespkZUk.mjs +0 -5
- package/dist/renderer-D1l47xhL.mjs +0 -5
- package/dist/renderer-DDuG18J8.mjs +0 -5
- package/dist/renderer-DFhrFSMn.mjs +0 -5
- package/dist/renderer-DO48vQ7Y.mjs +0 -5
- package/dist/renderer-DTC39B_n.mjs +0 -5
- package/dist/renderer-DbyU3hNF.mjs +0 -5
- package/dist/renderer-DftVpmfu.mjs +0 -5
- package/dist/renderer-Dj5jm63K.mjs +0 -5
- package/dist/renderer-Dju57ZaF.mjs +0 -5
- package/dist/renderer-Dn8TQCw7.mjs +0 -5
- package/dist/renderer-ETF46K0D.mjs +0 -5
- package/dist/renderer-azYzWGC3.mjs +0 -5
- package/dist/renderer-dxNoRW59.mjs +0 -5
- package/dist/renderer-fdfelx_I.mjs +0 -5
- package/dist/renderer-snwEKwMw.mjs +0 -5
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import{a as S,d as U,f as R,h as T,j as G,m as k}from"./chunk-ENKKLU7B.mjs";import"./chunk-6YJP57MZ.mjs";import{z as P}from"./chunk-63SFBHEH.mjs";import{e as u}from"./chunk-BVF64D6H.mjs";u();u();var p="Posterize",N=76,_=[`struct U { v : array<vec4<f32>, 19> };
|
|
2
|
+
@group(0) @binding(0) var<uniform> u : U;
|
|
3
|
+
@group(0) @binding(1) var src : texture_2d<f32>;
|
|
4
|
+
@group(0) @binding(2) var prev : texture_2d<f32>;
|
|
5
|
+
@group(0) @binding(3) var samp : sampler;
|
|
6
|
+
${S}
|
|
7
|
+
|
|
8
|
+
fn straight(c : vec4<f32>) -> vec4<f32> {
|
|
9
|
+
if (c.a <= 0.0001) { return vec4<f32>(0.0); }
|
|
10
|
+
return vec4<f32>(c.rgb / c.a, c.a);
|
|
11
|
+
}
|
|
12
|
+
fn premul(c : vec4<f32>) -> vec4<f32> { return vec4<f32>(c.rgb * c.a, c.a); }
|
|
13
|
+
fn res() -> vec2<f32> { return vec2<f32>(textureDimensions(src)); }
|
|
14
|
+
/** Straight-alpha color of the layer at a uv (filtered). */
|
|
15
|
+
fn sampleS(uv : vec2<f32>) -> vec4<f32> { return straight(textureSampleLevel(src, samp, uv, 0.0)); }
|
|
16
|
+
/** Premultiplied color of the layer at a uv (filtered). */
|
|
17
|
+
fn sampleP(uv : vec2<f32>) -> vec4<f32> { return textureSampleLevel(src, samp, uv, 0.0); }
|
|
18
|
+
/** Straight-alpha color of the layer's texel at a pixel position (nearest). */
|
|
19
|
+
fn texelS(p : vec2<f32>) -> vec4<f32> {
|
|
20
|
+
let d = vec2<i32>(textureDimensions(src));
|
|
21
|
+
let q = clamp(vec2<i32>(floor(p)), vec2<i32>(0), d - vec2<i32>(1));
|
|
22
|
+
return straight(textureLoad(src, q, 0));
|
|
23
|
+
}
|
|
24
|
+
fn luma(c : vec3<f32>) -> f32 { return dot(c, vec3<f32>(0.2126, 0.7152, 0.0722)); }
|
|
25
|
+
fn hash12(p : vec2<f32>) -> f32 {
|
|
26
|
+
var p3 = fract(vec3<f32>(p.xyx) * 0.1031);
|
|
27
|
+
p3 += dot(p3, p3.yzx + 33.33);
|
|
28
|
+
return fract((p3.x + p3.y) * p3.z);
|
|
29
|
+
}
|
|
30
|
+
fn vnoise(p : vec2<f32>) -> f32 {
|
|
31
|
+
let i = floor(p);
|
|
32
|
+
let f = fract(p);
|
|
33
|
+
let u = f * f * (3.0 - 2.0 * f);
|
|
34
|
+
return mix(mix(hash12(i), hash12(i + vec2<f32>(1.0, 0.0)), u.x),
|
|
35
|
+
mix(hash12(i + vec2<f32>(0.0, 1.0)), hash12(i + vec2<f32>(1.0, 1.0)), u.x), u.y);
|
|
36
|
+
}
|
|
37
|
+
/** 8x8 ordered-dither threshold, 0..1. */
|
|
38
|
+
fn bayer8(p : vec2<f32>) -> f32 {
|
|
39
|
+
let x = u32(p.x) & 7u;
|
|
40
|
+
let y = u32(p.y) & 7u;
|
|
41
|
+
var v = 0u;
|
|
42
|
+
for (var k = 0u; k < 3u; k++) {
|
|
43
|
+
let bx = (x >> k) & 1u;
|
|
44
|
+
let by = (y >> k) & 1u;
|
|
45
|
+
let m = ((bx ^ by) << 1u) | by;
|
|
46
|
+
v += m * (1u << (2u * (2u - k)));
|
|
47
|
+
}
|
|
48
|
+
return (f32(v) + 0.5) / 64.0;
|
|
49
|
+
}
|
|
50
|
+
fn rot2(a : f32) -> mat2x2<f32> { let c = cos(a); let s = sin(a); return mat2x2<f32>(c, s, -s, c); }
|
|
51
|
+
fn paletteColor(i : u32) -> vec3<f32> { return u.v[3u + i].rgb; }
|
|
52
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
53
|
+
let time = u.v[0].x;
|
|
54
|
+
let frame = u.v[0].y;
|
|
55
|
+
let levels = u.v[1].x;
|
|
56
|
+
let palette = u32(u.v[1].y + 0.5);
|
|
57
|
+
let dither = u.v[1].z;
|
|
58
|
+
let pixelSize = u.v[1].w;
|
|
59
|
+
let paletteCount = u.v[2].x;
|
|
60
|
+
|
|
61
|
+
let R = res();
|
|
62
|
+
let ps = max(pixelSize, 1.0);
|
|
63
|
+
let cellp = floor(in.uv * R / ps);
|
|
64
|
+
let c = texelS(cellp * ps + ps * 0.5);
|
|
65
|
+
let t = bayer8(cellp) - 0.5;
|
|
66
|
+
var rgb = c.rgb;
|
|
67
|
+
if (paletteCount > 0.5) {
|
|
68
|
+
rgb = clamp(rgb + t * dither * 0.35, vec3<f32>(0.0), vec3<f32>(1.0));
|
|
69
|
+
var best = paletteColor(0u);
|
|
70
|
+
var bestD = 1e9;
|
|
71
|
+
for (var i = 0u; i < u32(paletteCount); i++) {
|
|
72
|
+
let pc = paletteColor(i);
|
|
73
|
+
let d = rgb - pc;
|
|
74
|
+
let dd = dot(d * d, vec3<f32>(0.3, 0.59, 0.11));
|
|
75
|
+
if (dd < bestD) { bestD = dd; best = pc; }
|
|
76
|
+
}
|
|
77
|
+
rgb = best;
|
|
78
|
+
} else {
|
|
79
|
+
let n = max(levels - 1.0, 1.0);
|
|
80
|
+
rgb = clamp(floor(rgb * n + 0.5 + t * dither) / n, vec3<f32>(0.0), vec3<f32>(1.0));
|
|
81
|
+
}
|
|
82
|
+
return premul(vec4<f32>(rgb, c.a));
|
|
83
|
+
}
|
|
84
|
+
`],W={gameboy:["#0f380f","#306230","#8bac0f","#9bbc0f"],teletext:["#000000","#ff0000","#00ff00","#ffff00","#0000ff","#ff00ff","#00ffff","#ffffff"],cga:["#000000","#55ffff","#ff55ff","#ffffff"],pico8:["#000000","#1d2b53","#7e2553","#008751","#ab5236","#5f574f","#c2c3c7","#fff1e8","#ff004d","#ffa300","#ffec27","#00e436","#29adff","#83769c","#ff77a8","#ffccaa"],c64:["#000000","#ffffff","#880000","#aaffee","#cc44cc","#00cc55","#0000aa","#eeee77","#dd8855","#664400","#ff7777","#333333","#777777","#aaff66","#0088ff","#bbbbbb"],grayscale:["#000000","#555555","#aaaaaa","#ffffff"],sepia:["#2b1d0e","#6b4a2b","#b08a5a","#efe0c0"]},F=R(r=>({layout:U(r,["uniform","texture","texture","sampler"],`${p}_layout`),pipelines:new Map,sampler:r.createSampler({magFilter:"linear",minFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})}));function A(r,e){let t=F(r),n=t.pipelines.get(e);return n||(n=_.map((a,o)=>{let i=r.createShaderModule({code:a,label:`${p}_${o}.wgsl`});return r.createRenderPipeline({label:`${p}_${o}`,layout:r.createPipelineLayout({bindGroupLayouts:[t.layout]}),vertex:{module:i,entryPoint:"vs"},fragment:{module:i,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}})}),t.pipelines.set(e,n)),n}function b(r,e){let t=typeof r=="number"?r:Number(r);return Number.isFinite(t)?t:e}function E(r){let e=r.trim().replace("#","");(e.length===3||e.length===4)&&(e=[...e].map(n=>n+n).join(""));let t=n=>Number.parseInt(e.slice(n,n+2),16)/255;return[t(0),t(2),t(4),e.length>=8?t(6):1]}function $(r,e,t,n){e.fill(0),e[0]=t,e[1]=n,e[4]=b(r.levels,6),e[5]=Math.max(0,["none","gameboy","teletext","cga","pico8","c64","grayscale","sepia","custom"].indexOf(String(r.palette??"none"))),e[6]=b(r.dither,0),e[7]=b(r.pixelSize,1);let a=String(r.palette??"none"),o=a==="custom"?r.colors??[]:W[a]??[];e[8]=Math.min(o.length,16),o.slice(0,16).forEach((i,f)=>{e.set(E(i),12+f*4)})}var w=async r=>{let{ctx:e,encoder:t,pass:n,targetTexture:a,targetWidth:o,targetHeight:i,props:f}=r,c=f.virtualMedia?.operation;if(c?.op!==p)return;let g=f.virtualMedia?.children?.[0];if(!g)return;n.end();let d=f.fps||30,l=Math.round(f.compositionFrame??f.frame??0),L=c.effect?.resolveUniforms?c.effect.resolveUniforms({frame:l,fps:d,time:l/d}):c,x=new Float32Array(N);$(L,x,l/d,l);let{texture:m}=await T(r,g),v=e.device,h=F(v),M=A(v,e.renderer.format),z=e.renderer.getTemporaryBuffer(x),s=m;for(let D of M){let y=e.renderer.getTemporaryTexture(o,i,[m,s,a,...f.excludeTextures||[]]);k(t,y.createView(),D,[v.createBindGroup({layout:h.layout,entries:[{binding:0,resource:{buffer:z}},{binding:1,resource:m.createView()},{binding:2,resource:s.createView()},{binding:3,resource:h.sampler}]})]),s=y}G(r,s)};var j=P({WebGPURenderer:w});export{w as PosterizeWebGPURenderer,j as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l,b as m,c as n,d as o}from"./chunk-GMGGDADT.mjs";import"./chunk-7J2FWGVD.mjs";import{a as p}from"./chunk-
|
|
1
|
+
import{a as l,b as m,c as n,d as o}from"./chunk-GMGGDADT.mjs";import"./chunk-7J2FWGVD.mjs";import{a as p}from"./chunk-TPAEN6VV.mjs";import{a as k}from"./chunk-PFA427ZC.mjs";import"./chunk-FLPSWDX4.mjs";import"./chunk-NQZKBFC6.mjs";import"./chunk-ENKKLU7B.mjs";import"./chunk-VUFDQJ2B.mjs";import"./chunk-PR2BUYCL.mjs";import"./chunk-BVA5NGSH.mjs";import"./chunk-37EFVZWT.mjs";import"./chunk-2SJ4BBMT.mjs";import"./chunk-24P6DAB3.mjs";import"./chunk-NIRW77QA.mjs";import"./chunk-Q4Z54DQ7.mjs";import{a as g,b as h,c as i,d as j}from"./chunk-6YJP57MZ.mjs";import{i as a,j as b,p as c,q as d,r as e,s as f}from"./chunk-63SFBHEH.mjs";import"./chunk-BVF64D6H.mjs";export{p as AudioSignal,g as AudioSignalComputePipeline,l as AudioSignalExtractorNode,f as Signal,n as SignalGateNode,o as SignalMathNode,m as SignalNode,i as SignalRegistry,h as buildWGSLSignalFn,b as computed,e as cosineSignal,k as modulateRenderer,a as signal,c as signalBuilder,j as signalRegistry,d as sineSignal};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Bt as parseCssColor, Lt as mixColors, Vt as parseCssGradient, ht as createVirtualMedia, l as Color, wt as getActiveMediaMetadata } from "./dist-fjKpBYkc.mjs";
|
|
2
2
|
import { t as ColorSchema } from "./dist-BY0bIWgr.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { Mt as KineticMarqueeConfigSchema, Nn as signalRegistry, Yt as TextPathOptionsSchema, gt as AETextAnimatorSchema, nn as TypewriterAnimatorSchema, vt as AdvancedTextAnimatorSchema } from "./dist-PwT_Vmax.mjs";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { loadYoga } from "yoga-layout/load";
|
|
6
6
|
|
|
@@ -77,15 +77,15 @@ function containerStyle(node) {
|
|
|
77
77
|
}
|
|
78
78
|
let justify = "start";
|
|
79
79
|
if (node.kind === "flex") justify = node.justify ?? "start";
|
|
80
|
-
let align = "start";
|
|
81
|
-
if (node.kind === "flex" || node.kind === "block") align = node.align ?? "start";
|
|
80
|
+
let align$1 = "start";
|
|
81
|
+
if (node.kind === "flex" || node.kind === "block") align$1 = node.align ?? "start";
|
|
82
82
|
let wrap = false;
|
|
83
83
|
if (node.kind === "flex") wrap = typeof node.wrap === "boolean" ? node.wrap : false;
|
|
84
84
|
return {
|
|
85
85
|
gap,
|
|
86
86
|
padding,
|
|
87
87
|
justify,
|
|
88
|
-
align,
|
|
88
|
+
align: align$1,
|
|
89
89
|
wrap
|
|
90
90
|
};
|
|
91
91
|
}
|
|
@@ -510,12 +510,28 @@ function parseEase(ease) {
|
|
|
510
510
|
*/
|
|
511
511
|
var LayerAnimation = class LayerAnimation$1 {
|
|
512
512
|
tracks = [];
|
|
513
|
+
/** Hold each value for this many frames (see {@link LayerAnimation.stepped}). */
|
|
514
|
+
frameStep;
|
|
513
515
|
constructor(tracks = []) {
|
|
514
516
|
this.tracks = [...tracks];
|
|
515
517
|
}
|
|
516
518
|
static create() {
|
|
517
519
|
return new LayerAnimation$1();
|
|
518
520
|
}
|
|
521
|
+
/**
|
|
522
|
+
* Stepped timing for the whole layer: every animated value is held for
|
|
523
|
+
* `frames` frames ("on twos" = 2, "on threes" = 3), the choppy, hand-made
|
|
524
|
+
* look of stop motion and cel animation. Applies to all of the layer's
|
|
525
|
+
* tracks, including ones added by other `.animate()` calls.
|
|
526
|
+
*/
|
|
527
|
+
static stepped(frames = 2) {
|
|
528
|
+
return new LayerAnimation$1().stepped(frames);
|
|
529
|
+
}
|
|
530
|
+
/** See {@link LayerAnimation.stepped}. */
|
|
531
|
+
stepped(frames = 2) {
|
|
532
|
+
this.frameStep = Math.max(1, Math.min(24, Math.round(frames)));
|
|
533
|
+
return this;
|
|
534
|
+
}
|
|
519
535
|
static fromTo(prop, fromValue, toValue, options = {}) {
|
|
520
536
|
return new LayerAnimation$1().fromTo(prop, fromValue, toValue, options);
|
|
521
537
|
}
|
|
@@ -828,8 +844,8 @@ var LayerAnimation = class LayerAnimation$1 {
|
|
|
828
844
|
const source = {
|
|
829
845
|
type: "signal",
|
|
830
846
|
inputHandleId: handleId,
|
|
831
|
-
multiplier: 1,
|
|
832
|
-
offset: 0,
|
|
847
|
+
multiplier: options.multiplier ?? 1,
|
|
848
|
+
offset: options.offset ?? 0,
|
|
833
849
|
smoothingWindowFrames: options.smoothing ?? 0,
|
|
834
850
|
colorMode: options.colorMode ?? "interpolate",
|
|
835
851
|
colorA: options.colorA,
|
|
@@ -1166,6 +1182,315 @@ var CameraAnimation = class CameraAnimation$1 extends LayerAnimation {
|
|
|
1166
1182
|
return this;
|
|
1167
1183
|
}
|
|
1168
1184
|
};
|
|
1185
|
+
const SAMPLES = 128;
|
|
1186
|
+
const CURVE_STEPS = 16;
|
|
1187
|
+
const NUM_RE = /-?(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?/gi;
|
|
1188
|
+
const CMD_RE = /([MmLlHhVvCcSsQqTtAaZz])([^MmLlHhVvCcSsQqTtAaZz]*)/g;
|
|
1189
|
+
/** Flattens an SVG path into polylines, one per subpath. */
|
|
1190
|
+
function flattenPath(d) {
|
|
1191
|
+
const subs = [];
|
|
1192
|
+
let cur = [];
|
|
1193
|
+
let x = 0;
|
|
1194
|
+
let y = 0;
|
|
1195
|
+
let sx = 0;
|
|
1196
|
+
let sy = 0;
|
|
1197
|
+
let cx = 0;
|
|
1198
|
+
let cy = 0;
|
|
1199
|
+
let prev = "";
|
|
1200
|
+
const end = (closed) => {
|
|
1201
|
+
if (cur.length > 1) subs.push({
|
|
1202
|
+
pts: cur,
|
|
1203
|
+
closed
|
|
1204
|
+
});
|
|
1205
|
+
cur = [];
|
|
1206
|
+
};
|
|
1207
|
+
for (const m of d.matchAll(CMD_RE)) {
|
|
1208
|
+
const cmd = m[1];
|
|
1209
|
+
const nums = (m[2].match(NUM_RE) ?? []).map(Number);
|
|
1210
|
+
const rel = cmd === cmd.toLowerCase();
|
|
1211
|
+
const C = cmd.toUpperCase();
|
|
1212
|
+
let i = 0;
|
|
1213
|
+
const take = (n) => {
|
|
1214
|
+
const v = nums.slice(i, i + n);
|
|
1215
|
+
i += n;
|
|
1216
|
+
return v;
|
|
1217
|
+
};
|
|
1218
|
+
const has = (n) => i + n <= nums.length;
|
|
1219
|
+
if (C === "Z") {
|
|
1220
|
+
x = sx;
|
|
1221
|
+
y = sy;
|
|
1222
|
+
end(true);
|
|
1223
|
+
cur = [[x, y]];
|
|
1224
|
+
prev = C;
|
|
1225
|
+
continue;
|
|
1226
|
+
}
|
|
1227
|
+
let first = true;
|
|
1228
|
+
while (has(C === "H" || C === "V" ? 1 : C === "A" ? 7 : C === "C" ? 6 : C === "S" || C === "Q" ? 4 : 2)) {
|
|
1229
|
+
if (C === "M") {
|
|
1230
|
+
const [a, b] = take(2);
|
|
1231
|
+
x = rel ? x + a : a;
|
|
1232
|
+
y = rel ? y + b : b;
|
|
1233
|
+
if (first) {
|
|
1234
|
+
end(false);
|
|
1235
|
+
sx = x;
|
|
1236
|
+
sy = y;
|
|
1237
|
+
cur = [[x, y]];
|
|
1238
|
+
} else cur.push([x, y]);
|
|
1239
|
+
} else if (C === "L" || C === "T") {
|
|
1240
|
+
const [a, b] = take(2);
|
|
1241
|
+
const nx = rel ? x + a : a;
|
|
1242
|
+
const ny = rel ? y + b : b;
|
|
1243
|
+
if (C === "T") {
|
|
1244
|
+
const qx = prev === "Q" || prev === "T" ? 2 * x - cx : x;
|
|
1245
|
+
const qy = prev === "Q" || prev === "T" ? 2 * y - cy : y;
|
|
1246
|
+
quad(cur, x, y, qx, qy, nx, ny);
|
|
1247
|
+
cx = qx;
|
|
1248
|
+
cy = qy;
|
|
1249
|
+
} else cur.push([nx, ny]);
|
|
1250
|
+
x = nx;
|
|
1251
|
+
y = ny;
|
|
1252
|
+
} else if (C === "H") {
|
|
1253
|
+
const [a] = take(1);
|
|
1254
|
+
x = rel ? x + a : a;
|
|
1255
|
+
cur.push([x, y]);
|
|
1256
|
+
} else if (C === "V") {
|
|
1257
|
+
const [a] = take(1);
|
|
1258
|
+
y = rel ? y + a : a;
|
|
1259
|
+
cur.push([x, y]);
|
|
1260
|
+
} else if (C === "C" || C === "S") {
|
|
1261
|
+
let x1;
|
|
1262
|
+
let y1;
|
|
1263
|
+
if (C === "C") {
|
|
1264
|
+
const [a, b] = take(2);
|
|
1265
|
+
x1 = rel ? x + a : a;
|
|
1266
|
+
y1 = rel ? y + b : b;
|
|
1267
|
+
} else {
|
|
1268
|
+
x1 = prev === "C" || prev === "S" ? 2 * x - cx : x;
|
|
1269
|
+
y1 = prev === "C" || prev === "S" ? 2 * y - cy : y;
|
|
1270
|
+
}
|
|
1271
|
+
const [c, e, f, g] = take(4);
|
|
1272
|
+
const x2 = rel ? x + c : c;
|
|
1273
|
+
const y2 = rel ? y + e : e;
|
|
1274
|
+
const nx = rel ? x + f : f;
|
|
1275
|
+
const ny = rel ? y + g : g;
|
|
1276
|
+
for (let k = 1; k <= CURVE_STEPS; k++) {
|
|
1277
|
+
const t = k / CURVE_STEPS;
|
|
1278
|
+
const u = 1 - t;
|
|
1279
|
+
cur.push([u * u * u * x + 3 * u * u * t * x1 + 3 * u * t * t * x2 + t * t * t * nx, u * u * u * y + 3 * u * u * t * y1 + 3 * u * t * t * y2 + t * t * t * ny]);
|
|
1280
|
+
}
|
|
1281
|
+
cx = x2;
|
|
1282
|
+
cy = y2;
|
|
1283
|
+
x = nx;
|
|
1284
|
+
y = ny;
|
|
1285
|
+
} else if (C === "Q") {
|
|
1286
|
+
const [a, b, c, e] = take(4);
|
|
1287
|
+
const qx = rel ? x + a : a;
|
|
1288
|
+
const qy = rel ? y + b : b;
|
|
1289
|
+
const nx = rel ? x + c : c;
|
|
1290
|
+
const ny = rel ? y + e : e;
|
|
1291
|
+
quad(cur, x, y, qx, qy, nx, ny);
|
|
1292
|
+
cx = qx;
|
|
1293
|
+
cy = qy;
|
|
1294
|
+
x = nx;
|
|
1295
|
+
y = ny;
|
|
1296
|
+
} else if (C === "A") {
|
|
1297
|
+
const [rx, ry, rot, large, sweep, a, b] = take(7);
|
|
1298
|
+
const nx = rel ? x + a : a;
|
|
1299
|
+
const ny = rel ? y + b : b;
|
|
1300
|
+
arc(cur, x, y, rx, ry, rot, large !== 0, sweep !== 0, nx, ny);
|
|
1301
|
+
x = nx;
|
|
1302
|
+
y = ny;
|
|
1303
|
+
}
|
|
1304
|
+
first = false;
|
|
1305
|
+
prev = C;
|
|
1306
|
+
if (C === "M") prev = "L";
|
|
1307
|
+
}
|
|
1308
|
+
prev = C;
|
|
1309
|
+
}
|
|
1310
|
+
end(false);
|
|
1311
|
+
return subs;
|
|
1312
|
+
}
|
|
1313
|
+
function quad(out, x0, y0, qx, qy, x1, y1) {
|
|
1314
|
+
for (let k = 1; k <= CURVE_STEPS; k++) {
|
|
1315
|
+
const t = k / CURVE_STEPS;
|
|
1316
|
+
const u = 1 - t;
|
|
1317
|
+
out.push([u * u * x0 + 2 * u * t * qx + t * t * x1, u * u * y0 + 2 * u * t * qy + t * t * y1]);
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
/** SVG endpoint arc → points (spec F.6.5). */
|
|
1321
|
+
function arc(out, x1, y1, rxIn, ryIn, rotDeg, large, sweep, x2, y2) {
|
|
1322
|
+
let rx = Math.abs(rxIn);
|
|
1323
|
+
let ry = Math.abs(ryIn);
|
|
1324
|
+
if (rx === 0 || ry === 0) {
|
|
1325
|
+
out.push([x2, y2]);
|
|
1326
|
+
return;
|
|
1327
|
+
}
|
|
1328
|
+
const phi = rotDeg * Math.PI / 180;
|
|
1329
|
+
const cos = Math.cos(phi);
|
|
1330
|
+
const sin = Math.sin(phi);
|
|
1331
|
+
const dx = (x1 - x2) / 2;
|
|
1332
|
+
const dy = (y1 - y2) / 2;
|
|
1333
|
+
const xp = cos * dx + sin * dy;
|
|
1334
|
+
const yp = -sin * dx + cos * dy;
|
|
1335
|
+
const lam = xp * xp / (rx * rx) + yp * yp / (ry * ry);
|
|
1336
|
+
if (lam > 1) {
|
|
1337
|
+
rx *= Math.sqrt(lam);
|
|
1338
|
+
ry *= Math.sqrt(lam);
|
|
1339
|
+
}
|
|
1340
|
+
const num = rx * rx * ry * ry - rx * rx * yp * yp - ry * ry * xp * xp;
|
|
1341
|
+
const den = rx * rx * yp * yp + ry * ry * xp * xp;
|
|
1342
|
+
let co = Math.sqrt(Math.max(0, num / den));
|
|
1343
|
+
if (large === sweep) co = -co;
|
|
1344
|
+
const cxp = co * rx * yp / ry;
|
|
1345
|
+
const cyp = -co * ry * xp / rx;
|
|
1346
|
+
const ccx = cos * cxp - sin * cyp + (x1 + x2) / 2;
|
|
1347
|
+
const ccy = sin * cxp + cos * cyp + (y1 + y2) / 2;
|
|
1348
|
+
const ang = (ux, uy, vx, vy) => Math.atan2(ux * vy - uy * vx, ux * vx + uy * vy);
|
|
1349
|
+
const t1 = ang(1, 0, (xp - cxp) / rx, (yp - cyp) / ry);
|
|
1350
|
+
let dt = ang((xp - cxp) / rx, (yp - cyp) / ry, (-xp - cxp) / rx, (-yp - cyp) / ry);
|
|
1351
|
+
if (!sweep && dt > 0) dt -= 2 * Math.PI;
|
|
1352
|
+
if (sweep && dt < 0) dt += 2 * Math.PI;
|
|
1353
|
+
const steps = Math.max(4, Math.ceil(Math.abs(dt) / (Math.PI / 2) * CURVE_STEPS));
|
|
1354
|
+
for (let k = 1; k <= steps; k++) {
|
|
1355
|
+
const t = t1 + dt * k / steps;
|
|
1356
|
+
const ex = rx * Math.cos(t);
|
|
1357
|
+
const ey = ry * Math.sin(t);
|
|
1358
|
+
out.push([cos * ex - sin * ey + ccx, sin * ex + cos * ey + ccy]);
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1361
|
+
/** `n` points evenly spaced along a polyline (closed: around the loop). */
|
|
1362
|
+
function resample(sub, n) {
|
|
1363
|
+
const pts = sub.closed ? [...sub.pts, sub.pts[0]] : sub.pts;
|
|
1364
|
+
const cum = [0];
|
|
1365
|
+
for (let i = 1; i < pts.length; i++) cum.push(cum[i - 1] + Math.hypot(pts[i][0] - pts[i - 1][0], pts[i][1] - pts[i - 1][1]));
|
|
1366
|
+
const total = cum[cum.length - 1];
|
|
1367
|
+
const out = [];
|
|
1368
|
+
if (total <= 0) {
|
|
1369
|
+
for (let i = 0; i < n; i++) out.push([pts[0][0], pts[0][1]]);
|
|
1370
|
+
return out;
|
|
1371
|
+
}
|
|
1372
|
+
const count = sub.closed ? n : n - 1;
|
|
1373
|
+
let j = 0;
|
|
1374
|
+
for (let i = 0; i < n; i++) {
|
|
1375
|
+
const s = total * i / count;
|
|
1376
|
+
while (j < cum.length - 2 && cum[j + 1] < s) j++;
|
|
1377
|
+
const seg = cum[j + 1] - cum[j];
|
|
1378
|
+
const t = seg > 0 ? (s - cum[j]) / seg : 0;
|
|
1379
|
+
out.push([pts[j][0] + (pts[j + 1][0] - pts[j][0]) * t, pts[j][1] + (pts[j + 1][1] - pts[j][1]) * t]);
|
|
1380
|
+
}
|
|
1381
|
+
return out;
|
|
1382
|
+
}
|
|
1383
|
+
function area(p) {
|
|
1384
|
+
let a = 0;
|
|
1385
|
+
for (let i = 0; i < p.length; i++) {
|
|
1386
|
+
const q = p[(i + 1) % p.length];
|
|
1387
|
+
a += p[i][0] * q[1] - q[0] * p[i][1];
|
|
1388
|
+
}
|
|
1389
|
+
return a / 2;
|
|
1390
|
+
}
|
|
1391
|
+
function centroid(p) {
|
|
1392
|
+
let x = 0;
|
|
1393
|
+
let y = 0;
|
|
1394
|
+
for (const q of p) {
|
|
1395
|
+
x += q[0];
|
|
1396
|
+
y += q[1];
|
|
1397
|
+
}
|
|
1398
|
+
return [x / p.length, y / p.length];
|
|
1399
|
+
}
|
|
1400
|
+
/** Rotates (and maybe reverses) `b` so its points line up with `a`'s. */
|
|
1401
|
+
function align(a, b, closed) {
|
|
1402
|
+
if (!closed) {
|
|
1403
|
+
const d0 = Math.hypot(a[0][0] - b[0][0], a[0][1] - b[0][1]);
|
|
1404
|
+
return Math.hypot(a[0][0] - b[b.length - 1][0], a[0][1] - b[b.length - 1][1]) < d0 ? [...b].reverse() : b;
|
|
1405
|
+
}
|
|
1406
|
+
const bb = Math.sign(area(a)) !== Math.sign(area(b)) ? [...b].reverse() : b;
|
|
1407
|
+
const n = a.length;
|
|
1408
|
+
let best = 0;
|
|
1409
|
+
let bestD = Number.POSITIVE_INFINITY;
|
|
1410
|
+
const score = (k) => {
|
|
1411
|
+
let s = 0;
|
|
1412
|
+
for (let i = 0; i < n; i += 2) {
|
|
1413
|
+
const q = bb[(i + k) % n];
|
|
1414
|
+
s += (a[i][0] - q[0]) ** 2 + (a[i][1] - q[1]) ** 2;
|
|
1415
|
+
}
|
|
1416
|
+
return s;
|
|
1417
|
+
};
|
|
1418
|
+
for (let k = 0; k < n; k += 4) {
|
|
1419
|
+
const s = score(k);
|
|
1420
|
+
if (s < bestD) {
|
|
1421
|
+
bestD = s;
|
|
1422
|
+
best = k;
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1425
|
+
for (let k = best - 3; k <= best + 3; k++) {
|
|
1426
|
+
const kk = (k + n) % n;
|
|
1427
|
+
const s = score(kk);
|
|
1428
|
+
if (s < bestD) {
|
|
1429
|
+
bestD = s;
|
|
1430
|
+
best = kk;
|
|
1431
|
+
}
|
|
1432
|
+
}
|
|
1433
|
+
return a.map((_, i) => bb[(i + best) % n]);
|
|
1434
|
+
}
|
|
1435
|
+
const memo = /* @__PURE__ */ new Map();
|
|
1436
|
+
function prepare(from, to) {
|
|
1437
|
+
const key = `${from}\u0000${to}`;
|
|
1438
|
+
const hit = memo.get(key);
|
|
1439
|
+
if (hit) return hit;
|
|
1440
|
+
const sa = flattenPath(from);
|
|
1441
|
+
const sb = flattenPath(to);
|
|
1442
|
+
const n = Math.max(sa.length, sb.length);
|
|
1443
|
+
const out = {
|
|
1444
|
+
a: [],
|
|
1445
|
+
b: [],
|
|
1446
|
+
closed: []
|
|
1447
|
+
};
|
|
1448
|
+
for (let i = 0; i < n; i++) {
|
|
1449
|
+
const A = sa[i];
|
|
1450
|
+
const B = sb[i];
|
|
1451
|
+
const closed = (A?.closed ?? true) && (B?.closed ?? true);
|
|
1452
|
+
let pa = A ? resample(A, SAMPLES) : void 0;
|
|
1453
|
+
let pb = B ? resample(B, SAMPLES) : void 0;
|
|
1454
|
+
if (!pa && pb) {
|
|
1455
|
+
const c = centroid(pb);
|
|
1456
|
+
pa = pb.map(() => [c[0], c[1]]);
|
|
1457
|
+
}
|
|
1458
|
+
if (!pb && pa) {
|
|
1459
|
+
const c = centroid(pa);
|
|
1460
|
+
pb = pa.map(() => [c[0], c[1]]);
|
|
1461
|
+
}
|
|
1462
|
+
if (!pa || !pb) continue;
|
|
1463
|
+
out.a.push(pa);
|
|
1464
|
+
out.b.push(align(pa, pb, closed));
|
|
1465
|
+
out.closed.push(closed);
|
|
1466
|
+
}
|
|
1467
|
+
if (memo.size > 256) memo.clear();
|
|
1468
|
+
memo.set(key, out);
|
|
1469
|
+
return out;
|
|
1470
|
+
}
|
|
1471
|
+
const fmt = (v) => (Math.round(v * 100) / 100).toString();
|
|
1472
|
+
/**
|
|
1473
|
+
* The path `t` of the way from `from` to `to` (0 = `from`, 1 = `to`; `t`
|
|
1474
|
+
* may overshoot for back / elastic eases).
|
|
1475
|
+
*/
|
|
1476
|
+
function morphPath(from, to, t) {
|
|
1477
|
+
if (t <= 0) return from;
|
|
1478
|
+
if (t === 1) return to;
|
|
1479
|
+
const p = prepare(from, to);
|
|
1480
|
+
const parts = [];
|
|
1481
|
+
for (let s = 0; s < p.a.length; s++) {
|
|
1482
|
+
const A = p.a[s];
|
|
1483
|
+
const B = p.b[s];
|
|
1484
|
+
let d = "";
|
|
1485
|
+
for (let i = 0; i < A.length; i++) {
|
|
1486
|
+
const x = A[i][0] + (B[i][0] - A[i][0]) * t;
|
|
1487
|
+
const y = A[i][1] + (B[i][1] - A[i][1]) * t;
|
|
1488
|
+
d += `${i === 0 ? "M" : "L"}${fmt(x)} ${fmt(y)}`;
|
|
1489
|
+
}
|
|
1490
|
+
parts.push(p.closed[s] ? `${d}Z` : d);
|
|
1491
|
+
}
|
|
1492
|
+
return parts.join("");
|
|
1493
|
+
}
|
|
1169
1494
|
function hash1D(n, seed) {
|
|
1170
1495
|
let x = Math.floor(n) ^ seed * 1013 | 0;
|
|
1171
1496
|
x = Math.imul(x ^ x >>> 15, x | 1);
|
|
@@ -1577,7 +1902,7 @@ const COLOR_PROPS$1 = new Set([
|
|
|
1577
1902
|
/**
|
|
1578
1903
|
* Standard keyframe track evaluation.
|
|
1579
1904
|
*/
|
|
1580
|
-
function evaluateKeyframes(track, localFrame) {
|
|
1905
|
+
function evaluateKeyframes(track, localFrame, ease) {
|
|
1581
1906
|
const keyframes = track.keyframes ?? [];
|
|
1582
1907
|
if (keyframes.length === 0) return 0;
|
|
1583
1908
|
if (keyframes.length === 1) return keyframes[0].value;
|
|
@@ -1588,9 +1913,13 @@ function evaluateKeyframes(track, localFrame) {
|
|
|
1588
1913
|
const kf1 = keyframes[i + 1];
|
|
1589
1914
|
if (localFrame >= kf0.frame && localFrame <= kf1.frame) {
|
|
1590
1915
|
const delta = kf1.frame - kf0.frame;
|
|
1591
|
-
const
|
|
1592
|
-
|
|
1593
|
-
if (typeof kf0.value === "
|
|
1916
|
+
const linear = delta > 0 ? (localFrame - kf0.frame) / delta : 0;
|
|
1917
|
+
const t = ease ? ease(kf1.ease ?? kf0.ease, delta, linear) : linear;
|
|
1918
|
+
if (typeof kf0.value === "boolean") return linear >= 1 ? kf1.value : kf0.value;
|
|
1919
|
+
if (typeof kf0.value === "string" && typeof kf1.value === "string") {
|
|
1920
|
+
if (track.prop === "d") return morphPath(kf0.value, kf1.value, t);
|
|
1921
|
+
return lerpColor(kf0.value, kf1.value, t);
|
|
1922
|
+
}
|
|
1594
1923
|
return lerp(Number(kf0.value) || 0, Number(kf1.value) || 0, t);
|
|
1595
1924
|
}
|
|
1596
1925
|
}
|
|
@@ -1852,6 +2181,7 @@ const AnimatablePropSchema = z.enum([
|
|
|
1852
2181
|
"fill",
|
|
1853
2182
|
"color",
|
|
1854
2183
|
"letterSpacing",
|
|
2184
|
+
"d",
|
|
1855
2185
|
"trimStart",
|
|
1856
2186
|
"trimEnd",
|
|
1857
2187
|
"trimOffset",
|
|
@@ -2173,7 +2503,10 @@ const AnimationTrackSchema = z.object({
|
|
|
2173
2503
|
yoyo: z.boolean().optional(),
|
|
2174
2504
|
durationFrames: z.number().int().min(1).optional()
|
|
2175
2505
|
}).strict();
|
|
2176
|
-
const LayerAnimationSchema = z.object({
|
|
2506
|
+
const LayerAnimationSchema = z.object({
|
|
2507
|
+
tracks: z.array(AnimationTrackSchema).max(24),
|
|
2508
|
+
frameStep: z.number().int().min(1).max(24).optional()
|
|
2509
|
+
}).strict().superRefine(animationInvariants);
|
|
2177
2510
|
const BaseNodeFields = {
|
|
2178
2511
|
id: z.string().min(1),
|
|
2179
2512
|
inputHandleId: z.string().optional(),
|
|
@@ -3200,5 +3533,5 @@ function collectNodeOps(nodes) {
|
|
|
3200
3533
|
}
|
|
3201
3534
|
|
|
3202
3535
|
//#endregion
|
|
3203
|
-
export { applyStaggerToChildren as A,
|
|
3204
|
-
//# sourceMappingURL=program-
|
|
3536
|
+
export { applyStaggerToChildren as A, evaluateTrackAtFrame as B, ShapeNodeSchema as C, TextSpanMarkSchema as D, TextNodeSchema as E, computeLayout as F, initLayout as H, computeLayoutSync as I, computeStaggerDelay as L, collectNodeOps as M, compositorToProgram as N, TextSpanSchema as O, computeCarrierContinuity as P, evaluateAnimationAtFrame as R, Sequence as S, TextAnimatorSchema as T, lintComposition as U, hoistMattes as V, mergeAnimationTracks as W, MediaNodeSchema as _, CarrierHandoffConfigSchema as a, SceneDefinitionSchema as b, EnvironmentFogSchema as c, LayerAnimation as d, LayoutNodeSchema as f, MatteModeSchema as g, MaterialTypeSchema as h, CameraNodeSchema as i, calculateSequenceTimeline as j, ToneMappingSchema as k, EnvironmentPresetSchema as l, LightTypeSchema as m, BoxNodeSchema as n, ColorStopSchema as o, LightNodeSchema as p, CameraAnimation as r, CompositorProgramSchema as s, BloomConfigSchema as t, FlexNodeSchema as u, Model3DNodeSchema as v, TextAnimator as w, SceneTransitionTypeSchema as x, Scene as y, evaluateKeyframes as z };
|
|
3537
|
+
//# sourceMappingURL=program-Dd9tJFkY.mjs.map
|