framefields 2.5.5 → 2.6.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 +11 -0
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-C9euVW4K.mjs → audio-CYrO9q9P.mjs} +3 -3
- package/dist/{audio-C9euVW4K.mjs.map → audio-CYrO9q9P.mjs.map} +1 -1
- package/dist/cli.mjs +866 -16
- package/dist/cli.mjs.map +1 -1
- package/dist/components/index.d.mts +2 -2
- package/dist/components/index.mjs +43 -43
- package/dist/{dist-DBdxM6xv.mjs → dist-DSKhnhDk.mjs} +3 -3
- package/dist/dist-DSKhnhDk.mjs.map +1 -0
- package/dist/{dist-BuirkW-f.mjs → dist-cC6nOaMR.mjs} +11 -3
- package/dist/dist-cC6nOaMR.mjs.map +1 -0
- package/dist/effects/index.mjs +34 -34
- package/dist/{effects-B263lgUi.mjs → effects-Dvdwndk0.mjs} +2 -2
- package/dist/{effects-B263lgUi.mjs.map → effects-Dvdwndk0.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-DNx6ps2p.mjs → fonts-B6a4CyoM.mjs} +7 -3
- package/dist/fonts-B6a4CyoM.mjs.map +1 -0
- package/dist/{gpu-BRBIoxMC.mjs → gpu-CrQADlcf.mjs} +2 -2
- package/dist/{gpu-BRBIoxMC.mjs.map → gpu-CrQADlcf.mjs.map} +1 -1
- package/dist/index-3Vdef2KE.d.mts.map +1 -1
- package/dist/{index-N1tMc5Z9.d.mts → index-CWG19cm-.d.mts} +821 -393
- package/dist/index-CWG19cm-.d.mts.map +1 -0
- package/dist/index-D-Gnyffj.d.mts.map +1 -1
- package/dist/{index-CalU-mpZ.d.mts → index-j5LGVVbm.d.mts} +3 -1
- package/dist/index-j5LGVVbm.d.mts.map +1 -0
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +50 -50
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-ChR8Z8Fm.mjs → preview-OTsGYyOU.mjs} +2 -2
- package/dist/{preview-ChR8Z8Fm.mjs.map → preview-OTsGYyOU.mjs.map} +1 -1
- package/dist/preview-engine/{chunk-BBHRXV75.mjs → chunk-4C26NVQY.mjs} +1 -1
- package/dist/preview-engine/chunk-5NLDETDV.mjs +1974 -0
- package/dist/preview-engine/{chunk-VY6ST4QX.mjs → chunk-AGLAJGQJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZJLNXN7W.mjs → chunk-K3IMPV6T.mjs} +6 -6
- package/dist/preview-engine/chunk-LHCEQ77S.mjs +5 -0
- package/dist/preview-engine/{chunk-2LQCQ3OT.mjs → chunk-Q6CRERSJ.mjs} +5 -5
- package/dist/preview-engine/chunk-ZGMA27IG.mjs +3 -0
- package/dist/preview-engine/components.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/{renderers-WZEV464O.mjs → renderers-IT5ISWSA.mjs} +1 -1
- package/dist/{program-O2bWX0cs.mjs → program-W4CWO2bp.mjs} +19 -3
- package/dist/program-W4CWO2bp.mjs.map +1 -0
- package/dist/registry/annotate.json +1 -1
- package/dist/registry/app-frame.json +1 -1
- package/dist/registry/backdrop.json +3 -3
- package/dist/registry/before-after.json +1 -1
- package/dist/registry/callout.json +1 -1
- package/dist/registry/captions.json +7 -1
- package/dist/registry/card-stack.json +3 -3
- package/dist/registry/chat-thread.json +7 -1
- package/dist/registry/code-block.json +8 -2
- package/dist/registry/confetti.json +1 -1
- package/dist/registry/device-frame.json +2 -1
- package/dist/registry/focus-zoom.json +1 -1
- package/dist/registry/logo-reveal.json +1 -1
- package/dist/registry/lower-third.json +1 -1
- package/dist/registry/meter.json +1 -1
- package/dist/registry/mouse-pointer.json +1 -1
- package/dist/registry/selection.json +3 -3
- package/dist/registry/spotlight.json +1 -1
- package/dist/registry/terminal.json +7 -1
- package/dist/registry/text-reveal.json +2 -1
- package/dist/registry/title-card.json +1 -1
- package/dist/registry/toasts.json +1 -1
- package/dist/registry/touch-point.json +4 -4
- package/dist/registry/waveform.json +3 -3
- package/dist/registry/word-cycle.json +2 -2
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-DkM6Ikdf.mjs → renderer-0W-Ty55h.mjs} +3 -3
- package/dist/{renderer-DkM6Ikdf.mjs.map → renderer-0W-Ty55h.mjs.map} +1 -1
- package/dist/{renderer-CrKYlipx.mjs → renderer-0n4A8P2_.mjs} +2 -2
- package/dist/{renderer-CrKYlipx.mjs.map → renderer-0n4A8P2_.mjs.map} +1 -1
- package/dist/{renderer-D3FJcRA3.mjs → renderer-158rymL0.mjs} +2 -2
- package/dist/{renderer-D3FJcRA3.mjs.map → renderer-158rymL0.mjs.map} +1 -1
- package/dist/{renderer-Dwh0jaor.mjs → renderer-1KfQICGK.mjs} +3 -3
- package/dist/{renderer-Dwh0jaor.mjs.map → renderer-1KfQICGK.mjs.map} +1 -1
- package/dist/renderer-8HnHWqYj.mjs +5 -0
- package/dist/renderer-8itujues.mjs +5 -0
- package/dist/{renderer-DWG6EXGj.mjs → renderer-B3gQT1uq.mjs} +3 -3
- package/dist/{renderer-DWG6EXGj.mjs.map → renderer-B3gQT1uq.mjs.map} +1 -1
- package/dist/{renderer-Bs6BaMLf.mjs → renderer-BE6K88VR.mjs} +3 -3
- package/dist/{renderer-Bs6BaMLf.mjs.map → renderer-BE6K88VR.mjs.map} +1 -1
- package/dist/{renderer-CqJou_2L.mjs → renderer-BEpA2g1_.mjs} +2 -2
- package/dist/{renderer-CqJou_2L.mjs.map → renderer-BEpA2g1_.mjs.map} +1 -1
- package/dist/renderer-BFods-7v.mjs +5 -0
- package/dist/{renderer-RbMM6Njv.mjs → renderer-BGDKxfsM.mjs} +3 -3
- package/dist/{renderer-RbMM6Njv.mjs.map → renderer-BGDKxfsM.mjs.map} +1 -1
- package/dist/{renderer-DGOY-LBR.mjs → renderer-BGnMRdUK.mjs} +2 -2
- package/dist/{renderer-DGOY-LBR.mjs.map → renderer-BGnMRdUK.mjs.map} +1 -1
- package/dist/{renderer-CpDaUeCN.mjs → renderer-BIMm7lYG.mjs} +3 -3
- package/dist/{renderer-CpDaUeCN.mjs.map → renderer-BIMm7lYG.mjs.map} +1 -1
- package/dist/{renderer-Dw3K8KT9.mjs → renderer-BKL3UEzN.mjs} +2 -2
- package/dist/{renderer-Dw3K8KT9.mjs.map → renderer-BKL3UEzN.mjs.map} +1 -1
- package/dist/{renderer-DtqiWq1m.mjs → renderer-BKhdqykZ.mjs} +3 -3
- package/dist/{renderer-DtqiWq1m.mjs.map → renderer-BKhdqykZ.mjs.map} +1 -1
- package/dist/{renderer-CnclEQdA.mjs → renderer-BO5u8eFS.mjs} +2 -2
- package/dist/{renderer-CnclEQdA.mjs.map → renderer-BO5u8eFS.mjs.map} +1 -1
- package/dist/{renderer-DTPmvL1i.mjs → renderer-BQ-pHSPI.mjs} +3 -3
- package/dist/{renderer-DTPmvL1i.mjs.map → renderer-BQ-pHSPI.mjs.map} +1 -1
- package/dist/{renderer-BStETpqC.mjs → renderer-BXGr426R.mjs} +2 -2
- package/dist/{renderer-BStETpqC.mjs.map → renderer-BXGr426R.mjs.map} +1 -1
- package/dist/{renderer-Dk0okoS3.mjs → renderer-B_Oz9L3g.mjs} +2 -2
- package/dist/{renderer-Dk0okoS3.mjs.map → renderer-B_Oz9L3g.mjs.map} +1 -1
- package/dist/renderer-BbQygRwc.mjs +5 -0
- package/dist/{renderer-PhjHSS97.mjs → renderer-BcaT2j3R.mjs} +2 -2
- package/dist/{renderer-PhjHSS97.mjs.map → renderer-BcaT2j3R.mjs.map} +1 -1
- package/dist/{renderer-C6n8y6Pw.mjs → renderer-Bh7d3RSt.mjs} +3 -3
- package/dist/{renderer-C6n8y6Pw.mjs.map → renderer-Bh7d3RSt.mjs.map} +1 -1
- package/dist/{renderer-QQDU1b0Z.mjs → renderer-BiH29MS6.mjs} +3 -3
- package/dist/{renderer-QQDU1b0Z.mjs.map → renderer-BiH29MS6.mjs.map} +1 -1
- package/dist/{renderer-DdkPY4hO.mjs → renderer-BnpMAub0.mjs} +2 -2
- package/dist/{renderer-DdkPY4hO.mjs.map → renderer-BnpMAub0.mjs.map} +1 -1
- package/dist/renderer-Bq_sPaCg.mjs +5 -0
- package/dist/renderer-BrkDrvqS.mjs +5 -0
- package/dist/{renderer-DVGVcDvB.mjs → renderer-Bt3F1tmP.mjs} +3 -3
- package/dist/{renderer-DVGVcDvB.mjs.map → renderer-Bt3F1tmP.mjs.map} +1 -1
- package/dist/{renderer-DsnV8tpW.mjs → renderer-BwnQRuce.mjs} +3 -3
- package/dist/{renderer-DsnV8tpW.mjs.map → renderer-BwnQRuce.mjs.map} +1 -1
- package/dist/renderer-C1diVT5Q.mjs +5 -0
- package/dist/{renderer-CTy0bSsl.mjs → renderer-C2O4nK9x.mjs} +3 -3
- package/dist/{renderer-CTy0bSsl.mjs.map → renderer-C2O4nK9x.mjs.map} +1 -1
- package/dist/{renderer-Cg2xS8h8.mjs → renderer-C4Jfgjm5.mjs} +2 -2
- package/dist/{renderer-Cg2xS8h8.mjs.map → renderer-C4Jfgjm5.mjs.map} +1 -1
- package/dist/renderer-C8E7ajTR.mjs +5 -0
- package/dist/renderer-CAz8JW5c.mjs +5 -0
- package/dist/{renderer-1NoJLLDa.mjs → renderer-CEvj79Wg.mjs} +3 -3
- package/dist/{renderer-1NoJLLDa.mjs.map → renderer-CEvj79Wg.mjs.map} +1 -1
- package/dist/{renderer-Bag1LFos.mjs → renderer-CFSh2eG-.mjs} +3 -3
- package/dist/{renderer-Bag1LFos.mjs.map → renderer-CFSh2eG-.mjs.map} +1 -1
- package/dist/{renderer-Daqvhwjp.mjs → renderer-CHvEgLHy.mjs} +3 -3
- package/dist/{renderer-Daqvhwjp.mjs.map → renderer-CHvEgLHy.mjs.map} +1 -1
- package/dist/renderer-CKfrUdGw.mjs +5 -0
- package/dist/renderer-CL0rqBA4.mjs +5 -0
- package/dist/{renderer-R5Lg65F8.mjs → renderer-CLP6Lm7y.mjs} +2 -2
- package/dist/{renderer-B0IJirDs.mjs → renderer-COcFh5bK.mjs} +3 -3
- package/dist/{renderer-B0IJirDs.mjs.map → renderer-COcFh5bK.mjs.map} +1 -1
- package/dist/renderer-COyavIEv.mjs +5 -0
- package/dist/{renderer-DcApNxER.mjs → renderer-CPtyQrJI.mjs} +2 -2
- package/dist/{renderer-DcApNxER.mjs.map → renderer-CPtyQrJI.mjs.map} +1 -1
- package/dist/renderer-CUrShvUZ.mjs +5 -0
- package/dist/renderer-CWvJ_GaL.mjs +5 -0
- package/dist/{renderer-B2no_9zi.mjs → renderer-CX4rvqm9.mjs} +3 -3
- package/dist/{renderer-B2no_9zi.mjs.map → renderer-CX4rvqm9.mjs.map} +1 -1
- package/dist/{renderer-C3tdjg8B.mjs → renderer-CZGpETnc.mjs} +3 -3
- package/dist/{renderer-C3tdjg8B.mjs.map → renderer-CZGpETnc.mjs.map} +1 -1
- package/dist/{renderer-DmTxEeMh.mjs → renderer-C_-hWBF1.mjs} +3 -3
- package/dist/{renderer-DmTxEeMh.mjs.map → renderer-C_-hWBF1.mjs.map} +1 -1
- package/dist/{renderer-H4-8sBjl.mjs → renderer-Cb74SQHm.mjs} +2 -2
- package/dist/{renderer-H4-8sBjl.mjs.map → renderer-Cb74SQHm.mjs.map} +1 -1
- package/dist/{renderer-DO1TeUqV.mjs → renderer-Cba208C9.mjs} +3 -3
- package/dist/{renderer-DO1TeUqV.mjs.map → renderer-Cba208C9.mjs.map} +1 -1
- package/dist/{renderer-CA_CwisV.mjs → renderer-CdJoOfQw.mjs} +2 -2
- package/dist/{renderer-CA_CwisV.mjs.map → renderer-CdJoOfQw.mjs.map} +1 -1
- package/dist/renderer-Ck0mGIo9.mjs +5 -0
- package/dist/{renderer-YBwN9uyj.mjs → renderer-CoaDDIS6.mjs} +5 -5
- package/dist/{renderer-YBwN9uyj.mjs.map → renderer-CoaDDIS6.mjs.map} +1 -1
- package/dist/renderer-CqIXqdf0.mjs +5 -0
- package/dist/renderer-Csod6biL.mjs +5 -0
- package/dist/{renderer-BMiZIGkZ.mjs → renderer-CsxO_wBG.mjs} +2 -2
- package/dist/renderer-CueO924-.mjs +5 -0
- package/dist/{renderer-x1xlZaH_.mjs → renderer-Cv6od7Be.mjs} +3 -3
- package/dist/{renderer-x1xlZaH_.mjs.map → renderer-Cv6od7Be.mjs.map} +1 -1
- package/dist/{renderer-B5ZdkcMi.mjs → renderer-Cw7R1U43.mjs} +2 -2
- package/dist/{renderer-B5ZdkcMi.mjs.map → renderer-Cw7R1U43.mjs.map} +1 -1
- package/dist/renderer-D1vM4obC.mjs +5 -0
- package/dist/{renderer-CEAmByVW.mjs → renderer-D36Pjp0B.mjs} +2 -2
- package/dist/{renderer-CEAmByVW.mjs.map → renderer-D36Pjp0B.mjs.map} +1 -1
- package/dist/{renderer-CFCR_7bq.mjs → renderer-D52KWsb8.mjs} +3 -3
- package/dist/{renderer-CFCR_7bq.mjs.map → renderer-D52KWsb8.mjs.map} +1 -1
- package/dist/renderer-DB7QUt90.mjs +5 -0
- package/dist/{renderer-BfQdc3RM.mjs → renderer-DGsWlXjl.mjs} +69 -69
- package/dist/{renderer-BfQdc3RM.mjs.map → renderer-DGsWlXjl.mjs.map} +1 -1
- package/dist/renderer-DLMDnKlA.mjs +6 -0
- package/dist/renderer-DNs7yWMr.mjs +5 -0
- package/dist/{renderer-C8pJFxcL.mjs → renderer-DORydJHm.mjs} +2 -2
- package/dist/{renderer-C8pJFxcL.mjs.map → renderer-DORydJHm.mjs.map} +1 -1
- package/dist/renderer-DOrtuoa9.mjs +5 -0
- package/dist/{renderer-Dz4muMyE.mjs → renderer-DTKtkgTO.mjs} +2 -2
- package/dist/{renderer-Dz4muMyE.mjs.map → renderer-DTKtkgTO.mjs.map} +1 -1
- package/dist/{renderer-YFHESw3v.mjs → renderer-DVdRzDwX.mjs} +3 -3
- package/dist/{renderer-YFHESw3v.mjs.map → renderer-DVdRzDwX.mjs.map} +1 -1
- package/dist/renderer-D_JgOawb.mjs +5 -0
- package/dist/renderer-DdLo1uoa.mjs +5 -0
- package/dist/renderer-DeX3JEZV.mjs +5 -0
- package/dist/{renderer-C2MaJKfY.mjs → renderer-Df-rf7RC.mjs} +3 -3
- package/dist/{renderer-C2MaJKfY.mjs.map → renderer-Df-rf7RC.mjs.map} +1 -1
- package/dist/renderer-DfgZVACG.mjs +5 -0
- package/dist/{renderer-CFRTJ7cT.mjs → renderer-DmrP4dsn.mjs} +2 -2
- package/dist/{renderer-CFRTJ7cT.mjs.map → renderer-DmrP4dsn.mjs.map} +1 -1
- package/dist/renderer-DoYG7Pn6.mjs +5 -0
- package/dist/{renderer-Bvizxddu.mjs → renderer-DqIrYB0P.mjs} +2 -2
- package/dist/{renderer-Bvizxddu.mjs.map → renderer-DqIrYB0P.mjs.map} +1 -1
- package/dist/{renderer-BrKgtYq4.mjs → renderer-DrrWvz8l.mjs} +3 -3
- package/dist/{renderer-BrKgtYq4.mjs.map → renderer-DrrWvz8l.mjs.map} +1 -1
- package/dist/{renderer-Bwxm-kWL.mjs → renderer-DuFwDHHF.mjs} +2 -2
- package/dist/{renderer-CVbNiH03.mjs → renderer-DxOJv_G7.mjs} +3 -3
- package/dist/{renderer-CVbNiH03.mjs.map → renderer-DxOJv_G7.mjs.map} +1 -1
- package/dist/{renderer-CbxfSmYE.mjs → renderer-E54Vv1_W.mjs} +3 -3
- package/dist/{renderer-CbxfSmYE.mjs.map → renderer-E54Vv1_W.mjs.map} +1 -1
- package/dist/{renderer-B7vXnBUo.mjs → renderer-FPYVmSf6.mjs} +3 -3
- package/dist/{renderer-B7vXnBUo.mjs.map → renderer-FPYVmSf6.mjs.map} +1 -1
- package/dist/{renderer-BlU3Sh_0.mjs → renderer-FgP_1OgD.mjs} +3 -3
- package/dist/{renderer-BlU3Sh_0.mjs.map → renderer-FgP_1OgD.mjs.map} +1 -1
- package/dist/{renderer-DW21AyEv.mjs → renderer-H-Adf8Za.mjs} +3 -3
- package/dist/{renderer-DW21AyEv.mjs.map → renderer-H-Adf8Za.mjs.map} +1 -1
- package/dist/{renderer-CPSg6eEQ.mjs → renderer-HPBahXjt.mjs} +2 -2
- package/dist/{renderer-CPSg6eEQ.mjs.map → renderer-HPBahXjt.mjs.map} +1 -1
- package/dist/renderer-Jwqa-BUN.mjs +5 -0
- package/dist/{renderer-BNs31kME.mjs → renderer-KkDYCAkn.mjs} +3 -3
- package/dist/{renderer-BNs31kME.mjs.map → renderer-KkDYCAkn.mjs.map} +1 -1
- package/dist/{renderer-BvA4sQz5.mjs → renderer-PDAlUGKG.mjs} +3 -3
- package/dist/{renderer-BvA4sQz5.mjs.map → renderer-PDAlUGKG.mjs.map} +1 -1
- package/dist/{renderer-C5QYI1Wu.mjs → renderer-PDs21Gsq.mjs} +2 -2
- package/dist/{renderer-C5QYI1Wu.mjs.map → renderer-PDs21Gsq.mjs.map} +1 -1
- package/dist/{renderer-DADTT3ym.mjs → renderer-Sdsy27LH.mjs} +2 -2
- package/dist/{renderer-DHdFVpdH.mjs → renderer-YEDoDnsE.mjs} +2 -2
- package/dist/{renderer-DHdFVpdH.mjs.map → renderer-YEDoDnsE.mjs.map} +1 -1
- package/dist/renderer-Z2Vs-IqP.mjs +5 -0
- package/dist/{renderer-BWNQQZ12.mjs → renderer-ZM2jwJbX.mjs} +3 -3
- package/dist/{renderer-BWNQQZ12.mjs.map → renderer-ZM2jwJbX.mjs.map} +1 -1
- package/dist/{renderer-BKJ8cywK.mjs → renderer-ZarULMvJ.mjs} +2 -2
- package/dist/{renderer-BKJ8cywK.mjs.map → renderer-ZarULMvJ.mjs.map} +1 -1
- package/dist/renderer-ZnyCpdWE.mjs +5 -0
- package/dist/{renderer-8_d6YNnE.mjs → renderer-aT6MUYPr.mjs} +2 -2
- package/dist/{renderer-8_d6YNnE.mjs.map → renderer-aT6MUYPr.mjs.map} +1 -1
- package/dist/{renderer-DkOxEQsg.mjs → renderer-dX7Fy1NR.mjs} +3 -3
- package/dist/{renderer-DkOxEQsg.mjs.map → renderer-dX7Fy1NR.mjs.map} +1 -1
- package/dist/{renderer-tcS585Iy.mjs → renderer-eQP0fvgc.mjs} +2 -2
- package/dist/{renderer-tcS585Iy.mjs.map → renderer-eQP0fvgc.mjs.map} +1 -1
- package/dist/renderer-emCnsnTH.mjs +5 -0
- package/dist/renderer-ioxa4-Dy.mjs +5 -0
- package/dist/renderer-iyIwrDWO.mjs +5 -0
- package/dist/{renderer-BZ5uOfoX.mjs → renderer-lP23pU1s.mjs} +2 -2
- package/dist/{renderer-BZ5uOfoX.mjs.map → renderer-lP23pU1s.mjs.map} +1 -1
- package/dist/{renderer-oR1LvHeO.mjs → renderer-tYmQUp4d.mjs} +2 -2
- package/dist/{renderer-oR1LvHeO.mjs.map → renderer-tYmQUp4d.mjs.map} +1 -1
- package/dist/renderer-tuudA_RZ.mjs +5 -0
- package/dist/{renderer-D8m3fuRp.mjs → renderer-wrXFfvpJ.mjs} +2 -2
- package/dist/{renderer-D8m3fuRp.mjs.map → renderer-wrXFfvpJ.mjs.map} +1 -1
- package/dist/renderer-yyn8S821.mjs +5 -0
- package/dist/{renderers-CP8CFWDs-EZZPEbhW.mjs → renderers-CP8CFWDs-CZJ7NRsl.mjs} +2 -2
- package/dist/{renderers-CP8CFWDs-EZZPEbhW.mjs.map → renderers-CP8CFWDs-CZJ7NRsl.mjs.map} +1 -1
- package/dist/signals/index.mjs +4 -4
- package/dist/{src-r7Suenhp.mjs → src-_l81YkMD.mjs} +612 -117
- package/dist/src-_l81YkMD.mjs.map +1 -0
- package/package.json +59 -58
- package/dist/dist-BuirkW-f.mjs.map +0 -1
- package/dist/dist-DBdxM6xv.mjs.map +0 -1
- package/dist/fonts-DNx6ps2p.mjs.map +0 -1
- package/dist/index-CalU-mpZ.d.mts.map +0 -1
- package/dist/index-N1tMc5Z9.d.mts.map +0 -1
- package/dist/preview-engine/chunk-2TCJSHFA.mjs +0 -1974
- package/dist/preview-engine/chunk-Q7XC3FI7.mjs +0 -3
- package/dist/preview-engine/chunk-ZZAZF6VC.mjs +0 -5
- package/dist/program-O2bWX0cs.mjs.map +0 -1
- package/dist/renderer-0441BN0U.mjs +0 -5
- package/dist/renderer-3qDgFc-W.mjs +0 -5
- package/dist/renderer-6AIqTN5Z.mjs +0 -5
- package/dist/renderer-B7MZ5R7u.mjs +0 -5
- package/dist/renderer-BE2rIA4B.mjs +0 -5
- package/dist/renderer-BIQ81ln4.mjs +0 -5
- package/dist/renderer-BKm3_Ob3.mjs +0 -5
- package/dist/renderer-BNdT1Wwf.mjs +0 -5
- package/dist/renderer-BQycs1q_.mjs +0 -5
- package/dist/renderer-Bj7MxXfk.mjs +0 -5
- package/dist/renderer-BjRAGYYC.mjs +0 -5
- package/dist/renderer-BqE2BQ_X.mjs +0 -5
- package/dist/renderer-Bz5BMkOE.mjs +0 -5
- package/dist/renderer-CDOSfB9H.mjs +0 -5
- package/dist/renderer-CT26yQT-.mjs +0 -5
- package/dist/renderer-CZeAbz48.mjs +0 -5
- package/dist/renderer-D50b7kip.mjs +0 -5
- package/dist/renderer-D5LmrO96.mjs +0 -5
- package/dist/renderer-DCvqZ5o_.mjs +0 -5
- package/dist/renderer-DJGJeGEn.mjs +0 -5
- package/dist/renderer-DONvNNXi.mjs +0 -5
- package/dist/renderer-DPaSo--Y.mjs +0 -6
- package/dist/renderer-DfYYokhr.mjs +0 -5
- package/dist/renderer-DlIJhdEM.mjs +0 -5
- package/dist/renderer-DqD3nMtv.mjs +0 -5
- package/dist/renderer-DrIl-uGt.mjs +0 -5
- package/dist/renderer-DyCB3Q1d.mjs +0 -5
- package/dist/renderer-DyJ-iSv6.mjs +0 -5
- package/dist/renderer-Dzs0jV0G.mjs +0 -5
- package/dist/renderer-HIKXw5-Y.mjs +0 -5
- package/dist/renderer-Jgt2g8Wp.mjs +0 -5
- package/dist/renderer-KnZWmT-M.mjs +0 -5
- package/dist/renderer-OMSXddG9.mjs +0 -5
- package/dist/renderer-P78xh6OV.mjs +0 -5
- package/dist/renderer-gaFP1Kak.mjs +0 -5
- package/dist/renderer-lQ8gH7Zd.mjs +0 -5
- package/dist/src-r7Suenhp.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { $i as MediaSourceInput, A as SlugFontCache, Ba as Signal, Ei as FrameContext, Et as KineticMarqueeConfig, Ia as RenderDiagnostic, M as SphereGeometryOptions, Ma as ProgrammaticSignal, No as VisionTask, Oi as FrameSignal, Y as AETextAnimator, Z as AdvancedTextAnimator, ba as NormalRelightingOptions, ci as DeflickerOptions, fi as Effect$1, fo as TextSpan, hi as EffectDomain, ii as DataType, in as TextPathOptions, ko as VirtualMediaData, qi as MediaMetadata, ta as MeshAudioDeformConfig, u as CylinderGeometryOptions, vn as TypewriterAnimator, w as RoundedBoxGeometryOptions } from "./index-ocZc12ZS.mjs";
|
|
2
|
-
import { i as RegisterFontOptions } from "./index-
|
|
2
|
+
import { i as RegisterFontOptions } from "./index-j5LGVVbm.mjs";
|
|
3
3
|
import { $n as ResizerScalerProps, $t as FlipProps, An as Paint, At as CameraParallax3DProps, B as PBRGlass, Bn as Pixelate, Bt as ContourProps, C as GradientMapProps, Cn as MeshWarp, Ct as AudioParametricEq, D as HalftoneScreen, Dn as NoiseGeneratorProps, Dt as CRT, Ei as TensorPipeline, En as NoiseGenerator, Et as AudioReverbProps, F as LevelsProps, Fn as Painterly, Ft as ColorBalance, G as SSAOProps, Gn as ProceduralVFXProps, Gt as DatamoshProps, H as Relight3D, Hn as Posterize, I as Modulate, In as PainterlyProps, It as ColorBalanceProps, J as SelectiveColorProps, Jn as RefineEdge, Jr as ClipSubjectSource, Jt as Dither, K as SelectiveColor, Kn as RGBSplit, Kr as COCO17_KEYPOINT_NAMES, Kt as DisplacementMap, L as ModulateProps, Ln as PatchHeal, Lt as ColorKey, M as HighPassProps, Mt as ChannelMergerProps, Nt as ChannelSplitter, O as HalftoneScreenProps, On as OpArt, Ot as CRTProps, P as Levels, Pt as ChannelSplitterProps, Q as TileOffset, Qn as ResizerScaler, Qt as Flip, R as MotionBlur, Rt as ColorKeyProps, S as GradientMap, Sn as MaskMathProps, St as AudioNoiseGateProps, Tn as MeshWarpProps, Tt as AudioReverb, U as Relight3DProps, Un as PosterizeProps, Ut as CornerPinProps, V as PBRGlassProps, Vn as PixelateProps, Vt as CornerPin, W as SSAO, Wn as ProceduralVFX, Wt as Datamosh, X as ShadowsHighlightsProps, Xn as RefractionCaustics3D, Xr as LandmarkCoordinateSignals, Xt as ExtractLUT, Y as ShadowsHighlights, Yn as RefineEdgeProps, Yr as InstanceMask, Yt as DitherProps, Z as TemporalDeflicker, Zn as RefractionCaustics3DProps, Zr as MaskTrackSignals, Zt as ExtractLUTProps, _t as AudioDelay, a as ApplyLUTProps, ai as PinToLandmarkOptions, an as KaleidoscopeProps, ar as Toon, b as FilmGrain, bn as LiquifyProps, bt as AudioFadeProps, c as Crop, cn as KenBurnsProps, cr as TrailsProps, dr as EffectProp, dt as Blur, en as Gooey, er as Rotate, et as TileOffsetProps, f as CurvesProps, ft as BlurProps, g as DepthOfFieldProps, gi as VisionNode, gn as LayerStyleProps, gt as AudioCompressorProps, h as DepthOfField, hi as VisionBundle, ht as AudioCompressor, i as ApplyLUT, in as Kaleidoscope, it as VisionProps, j as HighPass, jn as PaintProps, jt as ChannelMerger, kn as OpArtProps, kt as CameraParallax3D, l as CropProps, ln as LayerStyle, lr as Vignette, m as DeflickerProps, mi as VisionAnalysisReport, mt as AsciiProps, n as AnyEffect, nn as Iridescence, nr as StereoPanning, nt as UnsharpMaskProps, oi as PinToObjectOptions, on as KenBurns, or as ToonProps, p as CustomEffect, pt as Ascii, qn as RGBSplitProps, qt as DisplacementMapProps, r as AnyVisualEffect, ri as ObjectTrackSignals, rn as IridescenceProps, rr as StereoPanningProps, rt as Vision, sr as Trails, t as AnyAudioEffect, tn as GooeyProps, tr as RotateProps, tt as UnsharpMask, u as Curves, ur as VignetteProps, vn as Liquify, vt as AudioDelayProps, wt as AudioParametricEqProps, x as FilmGrainProps, xn as MaskMath, xt as AudioNoiseGate, yt as AudioFade, z as MotionBlurProps, zn as PatchHealProps, zt as Contour } from "./index-D-Gnyffj.mjs";
|
|
4
4
|
import { c as HeadlessMediaRenderer, f as RenderProgress, m as VideoQaReport, p as VideoQaOptions, t as FrameGridOptions } from "./index-BhzlG_1Q.mjs";
|
|
5
5
|
import { z, z as z$2 } from "zod";
|
|
@@ -1653,9 +1653,17 @@ declare function evaluateAnimationAtFrame(animation: LayerAnimationSpec | undefi
|
|
|
1653
1653
|
* any count, but programs this size are slow to send, read and edit.
|
|
1654
1654
|
*/
|
|
1655
1655
|
|
|
1656
|
+
interface LintOptions {
|
|
1657
|
+
/**
|
|
1658
|
+
* Whether a color emoji font is registered (framefields'
|
|
1659
|
+
* `FontManager.hasEmojiFont()`). When false, text with emoji is flagged:
|
|
1660
|
+
* the emoji would draw nothing. Unknown (omitted): not checked.
|
|
1661
|
+
*/
|
|
1662
|
+
emojiFont?: boolean;
|
|
1663
|
+
}
|
|
1656
1664
|
declare function lintComposition(config: Pick<CompositorProgramConfig, "width" | "height" | "layout"> & {
|
|
1657
1665
|
backgroundColor?: string;
|
|
1658
|
-
}): RenderDiagnostic[];
|
|
1666
|
+
}, options?: LintOptions): RenderDiagnostic[];
|
|
1659
1667
|
//#endregion
|
|
1660
1668
|
//#region src/program/mattes.d.ts
|
|
1661
1669
|
/** Returns the tree with every `matte` turned into a sibling matte layer. */
|
|
@@ -1710,12 +1718,12 @@ type CarrierHandoffConfig = z.infer<typeof CarrierHandoffConfigSchema>;
|
|
|
1710
1718
|
declare const SceneDefinitionSchema: z.ZodObject<{
|
|
1711
1719
|
id: z.ZodString;
|
|
1712
1720
|
chapter: z.ZodDefault<z.ZodEnum<{
|
|
1721
|
+
custom: "custom";
|
|
1713
1722
|
hook: "hook";
|
|
1714
1723
|
tension: "tension";
|
|
1715
1724
|
solution: "solution";
|
|
1716
1725
|
feature_spotlight: "feature_spotlight";
|
|
1717
1726
|
outro: "outro";
|
|
1718
|
-
custom: "custom";
|
|
1719
1727
|
}>>;
|
|
1720
1728
|
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
1721
1729
|
durationFrames: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1866,92 +1874,7 @@ declare function collectNodeOps(nodes: VirtualMediaData[]): VirtualMediaData[];
|
|
|
1866
1874
|
//#endregion
|
|
1867
1875
|
//#region src/program/validate.d.ts
|
|
1868
1876
|
//#endregion
|
|
1869
|
-
//#region ../components/dist/
|
|
1870
|
-
//#region src/core/audio.d.ts
|
|
1871
|
-
|
|
1872
|
-
/** A track's spectrum and loudness per frame, every value 0–1. */
|
|
1873
|
-
interface AudioLevels {
|
|
1874
|
-
fps: number;
|
|
1875
|
-
/** Length in frames. */
|
|
1876
|
-
frames: number;
|
|
1877
|
-
/** `[band][frame]`, low → high frequencies. */
|
|
1878
|
-
bands: number[][];
|
|
1879
|
-
/** Loudness envelope, `[frame]`. */
|
|
1880
|
-
level: number[];
|
|
1881
|
-
/** Onset frames (kicks, plosives), from low-band flux. */
|
|
1882
|
-
beats: number[];
|
|
1883
|
-
}
|
|
1884
|
-
interface AnalyzeOptions {
|
|
1885
|
-
/** Frame rate of the composition. Default 30. */
|
|
1886
|
-
fps?: number;
|
|
1887
|
-
/** Log-spaced bands. Default 32. */
|
|
1888
|
-
bands?: number;
|
|
1889
|
-
/** Lowest band edge, Hz. Default 50. */
|
|
1890
|
-
minHz?: number;
|
|
1891
|
-
/** Highest band edge, Hz. Default 12 000 (or Nyquist). */
|
|
1892
|
-
maxHz?: number;
|
|
1893
|
-
}
|
|
1894
|
-
/** Band edges in Hz, log-spaced. */
|
|
1895
|
-
declare function bandEdges(count: number, minHz: number, maxHz: number): number[];
|
|
1896
|
-
/**
|
|
1897
|
-
* Analyse decoded audio: a Hann-windowed FFT per frame into log-spaced
|
|
1898
|
-
* bands, each normalised to its own 98th percentile (floored 30 dB under the
|
|
1899
|
-
* loudest band's, so a quiet band is not stretched into noise), an RMS level
|
|
1900
|
-
* envelope, and onsets from low-band spectral flux.
|
|
1901
|
-
*/
|
|
1902
|
-
declare function analyzeChannels(channels: readonly Float32Array[], sampleRate: number, options?: AnalyzeOptions): AudioLevels;
|
|
1903
|
-
/** Average adjacent bands down (or repeat them up) to `count` bands. */
|
|
1904
|
-
declare function resampleBands(bands: readonly (readonly number[])[], count: number): number[][];
|
|
1905
|
-
/** Each value falls no faster than `release` frames from its peak (attack is instant). */
|
|
1906
|
-
declare function smoothRelease(values: readonly number[], release: number): number[];
|
|
1907
|
-
/** The schema for `AudioLevels` props (Waveform, Captions `pulse`). */
|
|
1908
|
-
declare function audioLevelsSchema(): z.ZodType<AudioLevels>;
|
|
1909
|
-
//#endregion
|
|
1910
|
-
//#region src/core/bake.d.ts
|
|
1911
|
-
/**
|
|
1912
|
-
* Turn per-frame values into a few linear keyframes. Components solve motion
|
|
1913
|
-
* offline (springs, camera follow, arc-length travel) and bake it, so the
|
|
1914
|
-
* output stays plain keyframe JSON that seeks exactly.
|
|
1915
|
-
*/
|
|
1916
|
-
/** `[frame, value]`: a linear keyframe, as `LayerAnimation.keys` takes it. */
|
|
1917
|
-
type BakedKey = [frame: number, value: number];
|
|
1918
|
-
interface BakeOptions {
|
|
1919
|
-
/** Max deviation (in the value's units) of the simplified curve. Default 0.25. */
|
|
1920
|
-
tolerance?: number;
|
|
1921
|
-
}
|
|
1922
|
-
/**
|
|
1923
|
-
* Simplify `values` (one per frame, starting at `startFrame`) to linear keys
|
|
1924
|
-
* whose interpolation stays within `tolerance` of every sample
|
|
1925
|
-
* (Ramer–Douglas–Peucker on the frame/value polyline). First and last
|
|
1926
|
-
* samples are always kept.
|
|
1927
|
-
*/
|
|
1928
|
-
declare function bakeSamples(values: readonly number[], startFrame?: number, options?: BakeOptions): BakedKey[];
|
|
1929
|
-
/** Sample `fn` on every frame in [start, end] and bake it. */
|
|
1930
|
-
declare function bakeFunction(fn: (frame: number) => number, start: number, end: number, options?: BakeOptions): BakedKey[];
|
|
1931
|
-
/**
|
|
1932
|
-
* Damped spring from 0 to 1 in closed form: `stiffness` (k), `damping` (c),
|
|
1933
|
-
* `mass` (m), sampled in seconds. Under-damped springs overshoot.
|
|
1934
|
-
*/
|
|
1935
|
-
declare function springAt(seconds: number, {
|
|
1936
|
-
stiffness,
|
|
1937
|
-
damping,
|
|
1938
|
-
mass
|
|
1939
|
-
}?: {
|
|
1940
|
-
stiffness?: number | undefined;
|
|
1941
|
-
damping?: number | undefined;
|
|
1942
|
-
mass?: number | undefined;
|
|
1943
|
-
}): number;
|
|
1944
|
-
/**
|
|
1945
|
-
* Frames until a spring stays within `epsilon` of rest, at `fps`; capped at
|
|
1946
|
-
* `max` frames.
|
|
1947
|
-
*/
|
|
1948
|
-
declare function springSettleFrames(fps: number, options?: Parameters<typeof springAt>[1], epsilon?: number, max?: number): number;
|
|
1949
|
-
/**
|
|
1950
|
-
* A spring from `from` to `to` starting at frame `start`, baked to linear
|
|
1951
|
-
* keys (within `tolerance`, default 0.2 % of the distance).
|
|
1952
|
-
*/
|
|
1953
|
-
declare function springKeys(start: number, from: number, to: number, fps: number, options?: Parameters<typeof springAt>[1], tolerance?: number): BakedKey[];
|
|
1954
|
-
//#endregion
|
|
1877
|
+
//#region ../components/dist/typing-c419Mp0t.d.mts
|
|
1955
1878
|
//#region src/core/path.d.ts
|
|
1956
1879
|
/**
|
|
1957
1880
|
* 2D path math: smooth curves through points, arc-length sampling, and SVG
|
|
@@ -2126,181 +2049,241 @@ declare function lineShift(metrics: Metrics$1, line: number, options: MeasureOpt
|
|
|
2126
2049
|
*/
|
|
2127
2050
|
declare function rangeRects(metrics: Metrics$1, start: number, end: number, options: MeasureOptions): Rect[];
|
|
2128
2051
|
//#endregion
|
|
2129
|
-
//#region src/core/
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
opacity?: number;
|
|
2135
|
-
/** Light angle in degrees (90 = shadow straight down). */
|
|
2136
|
-
angle?: number;
|
|
2137
|
-
distance?: number;
|
|
2138
|
-
spread?: number;
|
|
2139
|
-
size?: number;
|
|
2140
|
-
blendMode?: string;
|
|
2141
|
-
};
|
|
2142
|
-
outerGlow?: {
|
|
2143
|
-
color?: string;
|
|
2144
|
-
opacity?: number;
|
|
2145
|
-
size?: number;
|
|
2146
|
-
spread?: number;
|
|
2147
|
-
blendMode?: string;
|
|
2148
|
-
};
|
|
2149
|
-
innerShadow?: {
|
|
2150
|
-
color?: string;
|
|
2151
|
-
opacity?: number;
|
|
2152
|
-
angle?: number;
|
|
2153
|
-
distance?: number;
|
|
2154
|
-
size?: number;
|
|
2155
|
-
};
|
|
2156
|
-
stroke?: {
|
|
2157
|
-
size?: number;
|
|
2158
|
-
position?: "inside" | "center" | "outside";
|
|
2159
|
-
color?: string;
|
|
2160
|
-
opacity?: number;
|
|
2161
|
-
};
|
|
2162
|
-
}
|
|
2163
|
-
interface MediaOptions {
|
|
2052
|
+
//#region src/core/targets.d.ts
|
|
2053
|
+
type Anchor = "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right"
|
|
2054
|
+
/** Where a pointer should land: the centre, or mid-left for text. */ | "tip";
|
|
2055
|
+
/** A node as targets read it: absolute numeric geometry, or text. */
|
|
2056
|
+
interface TargetNode {
|
|
2164
2057
|
id?: string;
|
|
2165
|
-
|
|
2166
|
-
x?:
|
|
2167
|
-
y?:
|
|
2168
|
-
width?:
|
|
2169
|
-
height?:
|
|
2170
|
-
|
|
2058
|
+
kind?: string;
|
|
2059
|
+
x?: unknown;
|
|
2060
|
+
y?: unknown;
|
|
2061
|
+
width?: unknown;
|
|
2062
|
+
height?: unknown;
|
|
2063
|
+
text?: unknown;
|
|
2064
|
+
content?: unknown;
|
|
2065
|
+
[key: string]: unknown;
|
|
2171
2066
|
}
|
|
2172
|
-
/** The
|
|
2173
|
-
interface
|
|
2174
|
-
|
|
2067
|
+
/** The frame context signals are read with. */
|
|
2068
|
+
interface FrameContextLike {
|
|
2069
|
+
frame: number;
|
|
2070
|
+
fps: number;
|
|
2071
|
+
time: number;
|
|
2072
|
+
duration: number;
|
|
2073
|
+
durationMs: number;
|
|
2074
|
+
progress: number;
|
|
2075
|
+
deltaTime: number;
|
|
2175
2076
|
}
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
fonts(): readonly string[];
|
|
2186
|
-
/** A default id: stable per run (a counter per prefix), like `Layer.*` ids. */
|
|
2187
|
-
autoId(prefix: string): string;
|
|
2188
|
-
/** A video, image or SVG layer, by file extension. */
|
|
2189
|
-
media(source: string, options: MediaOptions): Animatable<LayoutNode>;
|
|
2190
|
-
/** Attach layer styles (shadow, glow, stroke) to `node`; returns it. */
|
|
2191
|
-
style<T extends Animatable<LayoutNode>>(node: T, config: LayerStyleConfig): T;
|
|
2192
|
-
/**
|
|
2193
|
-
* Mask `node` by `matte`'s alpha (a box: solid or CSS-gradient
|
|
2194
|
-
* background), or by its inverse (`"alpha-inverted"`: show `node`
|
|
2195
|
-
* everywhere the matte is not). The matte is laid out like a sibling of
|
|
2196
|
-
* `node`; returns `node`.
|
|
2197
|
-
*/
|
|
2198
|
-
matte<T extends Animatable<LayoutNode>>(node: T, matte: LayoutNode, mode?: "alpha" | "alpha-inverted"): T;
|
|
2199
|
-
/**
|
|
2200
|
-
* A video showing only its person / subject (vision segmentation), the
|
|
2201
|
-
* rest transparent: stacked over captions so text passes behind them.
|
|
2202
|
-
*/
|
|
2203
|
-
cutout(source: string, options: CutoutOptions): Animatable<LayoutNode>;
|
|
2204
|
-
/** A GPU particle system layer. */
|
|
2205
|
-
particles(options: ParticleOptions): Animatable<LayoutNode>;
|
|
2206
|
-
/**
|
|
2207
|
-
* A per-frame signal from values (framefields' `Signal.fromArray`), for
|
|
2208
|
-
* `LayerAnimation.signal`. Signals read the composition's frame: value
|
|
2209
|
-
* `k` drives composition frame `k`.
|
|
2210
|
-
*/
|
|
2211
|
-
signal(values: readonly number[], fps: number): object;
|
|
2212
|
-
/**
|
|
2213
|
-
* An animated film-grain layer to put over other layers: neutral grey
|
|
2214
|
-
* carrying framefields' `FilmGrain`, soft-light blended. (Effects only
|
|
2215
|
-
* attach to media layers, so grain can't go on a box.)
|
|
2216
|
-
*/
|
|
2217
|
-
grain(options: GrainOptions): Animatable<LayoutNode>;
|
|
2218
|
-
/** Solid extruded 3D text (framefields' `Layer3D.extrudedText`), centred on x, y. */
|
|
2219
|
-
extrudedText(options: ExtrudedTextOptions): Animatable<LayoutNode>;
|
|
2077
|
+
/** A per-frame value: a signal (what tracked objects expose) or a function. */
|
|
2078
|
+
type FrameValue = {
|
|
2079
|
+
get(ctx?: FrameContextLike): number;
|
|
2080
|
+
} | ((frame: number) => number);
|
|
2081
|
+
interface TrackedObjectLike {
|
|
2082
|
+
x: FrameValue;
|
|
2083
|
+
y: FrameValue;
|
|
2084
|
+
width: FrameValue;
|
|
2085
|
+
height: FrameValue;
|
|
2220
2086
|
}
|
|
2221
|
-
|
|
2222
|
-
|
|
2087
|
+
type Target = Vec2$1 | Rect | {
|
|
2088
|
+
node: TargetNode;
|
|
2089
|
+
anchor?: Anchor;
|
|
2090
|
+
} | {
|
|
2091
|
+
text: TargetNode;
|
|
2092
|
+
match?: string | RegExp;
|
|
2093
|
+
range?: [number, number];
|
|
2094
|
+
nth?: number;
|
|
2095
|
+
anchor?: Anchor;
|
|
2096
|
+
} | {
|
|
2097
|
+
track: TrackedObjectLike;
|
|
2098
|
+
anchor?: Anchor;
|
|
2099
|
+
} | ((frame: number) => Vec2$1 | Rect);
|
|
2100
|
+
interface TargetContext {
|
|
2101
|
+
measure?: MeasureFn;
|
|
2102
|
+
/** Frame rate signals are sampled at (tracked targets). Default 30. */
|
|
2103
|
+
fps?: number;
|
|
2104
|
+
/** Font defaults for text nodes that don't set them. */
|
|
2105
|
+
textDefaults?: Partial<MeasureOptions>;
|
|
2106
|
+
}
|
|
2107
|
+
type ResolvedTarget = {
|
|
2108
|
+
kind: "static";
|
|
2109
|
+
rects: Rect[];
|
|
2110
|
+
anchor: Anchor;
|
|
2111
|
+
} | {
|
|
2112
|
+
kind: "dynamic";
|
|
2113
|
+
at: (frame: number) => Rect;
|
|
2114
|
+
anchor: Anchor;
|
|
2115
|
+
};
|
|
2116
|
+
/** Resolve a target to rects (static) or a per-frame rect (dynamic). */
|
|
2117
|
+
declare function resolveTarget(target: Target, ctx?: TargetContext): ResolvedTarget;
|
|
2118
|
+
/** A text target's string, measured glyphs and range, and where the node sits. */
|
|
2119
|
+
interface TextLayout {
|
|
2120
|
+
content: string;
|
|
2121
|
+
metrics: ReturnType<MeasureFn>;
|
|
2122
|
+
options: MeasureOptions;
|
|
2123
|
+
range: [number, number];
|
|
2124
|
+
/** The node's x / y: add to measured glyph positions. */
|
|
2223
2125
|
x: number;
|
|
2224
2126
|
y: number;
|
|
2225
|
-
width: number;
|
|
2226
|
-
height: number;
|
|
2227
|
-
/** 0–100, the engine's scale. */
|
|
2228
|
-
strength: number;
|
|
2229
|
-
size?: number;
|
|
2230
2127
|
}
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
text:
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2128
|
+
/** Measure a text target the way the renderer lays it out. */
|
|
2129
|
+
declare function textLayout(target: Extract<Target, {
|
|
2130
|
+
text: TargetNode;
|
|
2131
|
+
}>, ctx: TargetContext): TextLayout;
|
|
2132
|
+
/** The union rect of `rects`. */
|
|
2133
|
+
declare function boundsOf(rects: readonly Rect[]): Rect;
|
|
2134
|
+
/** The point of `rect` named by `anchor`. `tip` on text = start of the first line, mid-height. */
|
|
2135
|
+
declare function anchorPoint(rect: Rect, anchor?: Anchor, isText?: boolean): Vec2$1;
|
|
2136
|
+
/** The point a resolved target names at `frame` (static targets ignore frame). */
|
|
2137
|
+
declare function targetPoint(resolved: ResolvedTarget, frame?: number, isText?: boolean): Vec2$1;
|
|
2138
|
+
//#endregion
|
|
2139
|
+
//#region src/core/audio.d.ts
|
|
2140
|
+
/** A track's spectrum and loudness per frame, every value 0–1. */
|
|
2141
|
+
interface AudioLevels {
|
|
2142
|
+
fps: number;
|
|
2143
|
+
/** Length in frames. */
|
|
2144
|
+
frames: number;
|
|
2145
|
+
/** `[band][frame]`, low → high frequencies. */
|
|
2146
|
+
bands: number[][];
|
|
2147
|
+
/** Loudness envelope, `[frame]`. */
|
|
2148
|
+
level: number[];
|
|
2149
|
+
/** Onset frames (kicks, plosives), from low-band flux. */
|
|
2150
|
+
beats: number[];
|
|
2248
2151
|
}
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
max?: number;
|
|
2259
|
-
emitter: {
|
|
2260
|
-
shape: "point";
|
|
2261
|
-
x: number;
|
|
2262
|
-
y: number;
|
|
2263
|
-
/** Particles a second (0 for bursts only). */
|
|
2264
|
-
rate: number;
|
|
2265
|
-
bursts: Array<{
|
|
2266
|
-
frame: number;
|
|
2267
|
-
count: number;
|
|
2268
|
-
}>;
|
|
2269
|
-
};
|
|
2270
|
-
/** Seconds each particle lives. */
|
|
2271
|
-
lifetime?: [number, number];
|
|
2272
|
-
/** Launch speed, px/s. */
|
|
2273
|
-
speed?: [number, number];
|
|
2274
|
-
/** Degrees, 0 = right, -90 = up. */
|
|
2275
|
-
direction?: number;
|
|
2276
|
-
spread?: number;
|
|
2277
|
-
/** px/s², down. */
|
|
2278
|
-
gravity?: number;
|
|
2279
|
-
drag?: number;
|
|
2280
|
-
noise?: {
|
|
2281
|
-
strength: number;
|
|
2282
|
-
scale: number;
|
|
2283
|
-
speed: number;
|
|
2284
|
-
};
|
|
2285
|
-
/** A floor line (layer px) particles bounce on and settle. */
|
|
2286
|
-
floor?: number;
|
|
2287
|
-
bounce?: number;
|
|
2288
|
-
/** px at birth → death. */
|
|
2289
|
-
size?: [number, number];
|
|
2290
|
-
sizeJitter?: number;
|
|
2291
|
-
fade?: [number, number];
|
|
2292
|
-
shape?: "circle" | "soft" | "square" | "spark";
|
|
2293
|
-
stretch?: number;
|
|
2294
|
-
blend?: "normal" | "add" | "screen";
|
|
2295
|
-
color?: string | string[];
|
|
2296
|
-
opacity?: number;
|
|
2152
|
+
interface AnalyzeOptions {
|
|
2153
|
+
/** Frame rate of the composition. Default 30. */
|
|
2154
|
+
fps?: number;
|
|
2155
|
+
/** Log-spaced bands. Default 32. */
|
|
2156
|
+
bands?: number;
|
|
2157
|
+
/** Lowest band edge, Hz. Default 50. */
|
|
2158
|
+
minHz?: number;
|
|
2159
|
+
/** Highest band edge, Hz. Default 12 000 (or Nyquist). */
|
|
2160
|
+
maxHz?: number;
|
|
2297
2161
|
}
|
|
2298
|
-
|
|
2299
|
-
|
|
2162
|
+
/** Band edges in Hz, log-spaced. */
|
|
2163
|
+
declare function bandEdges(count: number, minHz: number, maxHz: number): number[];
|
|
2164
|
+
/**
|
|
2165
|
+
* Analyse decoded audio: a Hann-windowed FFT per frame into log-spaced
|
|
2166
|
+
* bands, each normalised to its own 98th percentile (floored 30 dB under the
|
|
2167
|
+
* loudest band's, so a quiet band is not stretched into noise), an RMS level
|
|
2168
|
+
* envelope, and onsets from low-band spectral flux.
|
|
2169
|
+
*/
|
|
2170
|
+
declare function analyzeChannels(channels: readonly Float32Array[], sampleRate: number, options?: AnalyzeOptions): AudioLevels;
|
|
2171
|
+
/** Average adjacent bands down (or repeat them up) to `count` bands. */
|
|
2172
|
+
declare function resampleBands(bands: readonly (readonly number[])[], count: number): number[][];
|
|
2173
|
+
/** Each value falls no faster than `release` frames from its peak (attack is instant). */
|
|
2174
|
+
declare function smoothRelease(values: readonly number[], release: number): number[];
|
|
2175
|
+
/** The schema for `AudioLevels` props (Waveform, Captions `pulse`). */
|
|
2176
|
+
declare function audioLevelsSchema(): z.ZodType<AudioLevels>;
|
|
2177
|
+
//#endregion
|
|
2178
|
+
//#region src/core/bake.d.ts
|
|
2179
|
+
/**
|
|
2180
|
+
* Turn per-frame values into a few linear keyframes. Components solve motion
|
|
2181
|
+
* offline (springs, camera follow, arc-length travel) and bake it, so the
|
|
2182
|
+
* output stays plain keyframe JSON that seeks exactly.
|
|
2183
|
+
*/
|
|
2184
|
+
/** `[frame, value]`: a linear keyframe, as `LayerAnimation.keys` takes it. */
|
|
2185
|
+
type BakedKey = [frame: number, value: number];
|
|
2186
|
+
interface BakeOptions {
|
|
2187
|
+
/** Max deviation (in the value's units) of the simplified curve. Default 0.25. */
|
|
2188
|
+
tolerance?: number;
|
|
2300
2189
|
}
|
|
2190
|
+
/**
|
|
2191
|
+
* Simplify `values` (one per frame, starting at `startFrame`) to linear keys
|
|
2192
|
+
* whose interpolation stays within `tolerance` of every sample
|
|
2193
|
+
* (Ramer–Douglas–Peucker on the frame/value polyline). First and last
|
|
2194
|
+
* samples are always kept.
|
|
2195
|
+
*/
|
|
2196
|
+
declare function bakeSamples(values: readonly number[], startFrame?: number, options?: BakeOptions): BakedKey[];
|
|
2197
|
+
/** Sample `fn` on every frame in [start, end] and bake it. */
|
|
2198
|
+
declare function bakeFunction(fn: (frame: number) => number, start: number, end: number, options?: BakeOptions): BakedKey[];
|
|
2199
|
+
/**
|
|
2200
|
+
* Damped spring from 0 to 1 in closed form: `stiffness` (k), `damping` (c),
|
|
2201
|
+
* `mass` (m), sampled in seconds. Under-damped springs overshoot.
|
|
2202
|
+
*/
|
|
2203
|
+
declare function springAt(seconds: number, {
|
|
2204
|
+
stiffness,
|
|
2205
|
+
damping,
|
|
2206
|
+
mass
|
|
2207
|
+
}?: {
|
|
2208
|
+
stiffness?: number | undefined;
|
|
2209
|
+
damping?: number | undefined;
|
|
2210
|
+
mass?: number | undefined;
|
|
2211
|
+
}): number;
|
|
2212
|
+
/**
|
|
2213
|
+
* Frames until a spring stays within `epsilon` of rest, at `fps`; capped at
|
|
2214
|
+
* `max` frames.
|
|
2215
|
+
*/
|
|
2216
|
+
declare function springSettleFrames(fps: number, options?: Parameters<typeof springAt>[1], epsilon?: number, max?: number): number;
|
|
2217
|
+
/**
|
|
2218
|
+
* A spring from `from` to `to` starting at frame `start`, baked to linear
|
|
2219
|
+
* keys (within `tolerance`, default 0.2 % of the distance).
|
|
2220
|
+
*/
|
|
2221
|
+
declare function springKeys(start: number, from: number, to: number, fps: number, options?: Parameters<typeof springAt>[1], tolerance?: number): BakedKey[];
|
|
2222
|
+
/**
|
|
2223
|
+
* Per-frame values (frames 0…`length`) that spring to each new target from
|
|
2224
|
+
* wherever they are: a retarget mid-flight starts from the current value
|
|
2225
|
+
* (velocity isn't carried over). Bake with `bakeSamples` or bind as a signal.
|
|
2226
|
+
*/
|
|
2227
|
+
declare function springTrack(changes: ReadonlyArray<readonly [frame: number, target: number]>, initial: number, length: number, fps: number, options?: {
|
|
2228
|
+
stiffness: number;
|
|
2229
|
+
damping: number;
|
|
2230
|
+
}): number[];
|
|
2231
|
+
//#endregion
|
|
2232
|
+
//#region src/core/color.d.ts
|
|
2233
|
+
/**
|
|
2234
|
+
* Color math for components: parse, fade, mix and judge lightness. Accepts
|
|
2235
|
+
* `#rgb`, `#rgba`, `#rrggbb`, `#rrggbbaa`, `rgb()` / `rgba()` (comma or
|
|
2236
|
+
* space syntax) and `white` / `black` / `transparent`. Anything else (a
|
|
2237
|
+
* gradient, `oklch()`, a CSS variable) passes through untouched where a
|
|
2238
|
+
* function returns a color, and counts as unknown where it returns a number.
|
|
2239
|
+
*/
|
|
2240
|
+
/** Red, green, blue (0–255) and alpha (0–1). */
|
|
2241
|
+
type Rgba = [r: number, g: number, b: number, a: number];
|
|
2242
|
+
/** The color's channels, or null when the format isn't one listed above. */
|
|
2243
|
+
declare function parseColor(color: string): Rgba | null;
|
|
2244
|
+
/** `color` at `alpha` (replacing its own); unknown formats pass through. */
|
|
2245
|
+
declare function withAlpha(color: string, alpha: number): string;
|
|
2246
|
+
/**
|
|
2247
|
+
* `color` fully transparent, keeping its hue, so a gradient fading to it has
|
|
2248
|
+
* no dark fringe. Unknown formats give plain `rgba(0,0,0,0)`.
|
|
2249
|
+
*/
|
|
2250
|
+
declare function transparent(color: string): string;
|
|
2251
|
+
/** Mix `a` toward `b` by `t` (0 → a, 1 → b): `#rrggbb` when both are opaque. */
|
|
2252
|
+
declare function mix(a: string, b: string, t: number): string;
|
|
2253
|
+
/** WCAG relative luminance (0 black … 1 white), or null for unknown formats. */
|
|
2254
|
+
declare function luminance(color: string): number | null;
|
|
2255
|
+
/** WCAG contrast ratio of two colors, or null when either is unknown. */
|
|
2256
|
+
declare function contrastRatio(a: string, b: string): number | null;
|
|
2257
|
+
/**
|
|
2258
|
+
* True when black text reads better than white on `color` (luminance above
|
|
2259
|
+
* ~0.18). Unknown formats count as dark.
|
|
2260
|
+
*/
|
|
2261
|
+
declare function isLight(color: string): boolean;
|
|
2262
|
+
/** Whichever of `light` / `dark` ink reads better on `background`. */
|
|
2263
|
+
declare function inkOn(background: string, light?: string, dark?: string): string;
|
|
2301
2264
|
//#endregion
|
|
2302
2265
|
//#region src/core/theme.d.ts
|
|
2266
|
+
/** A spring, as `springKeys` / `springAt` take it. */
|
|
2267
|
+
interface Spring {
|
|
2268
|
+
stiffness: number;
|
|
2269
|
+
damping: number;
|
|
2270
|
+
}
|
|
2271
|
+
/**
|
|
2272
|
+
* How far a surface sits above what's behind it: a soft drop shadow, plus a
|
|
2273
|
+
* faint highlight along its top edge so it reads as a lit object.
|
|
2274
|
+
*/
|
|
2275
|
+
interface Elevation {
|
|
2276
|
+
/** Shadow opacity, 0–1. */
|
|
2277
|
+
opacity: number;
|
|
2278
|
+
/** Shadow offset (straight down) and blur, px at theme scale 1. */
|
|
2279
|
+
distance: number;
|
|
2280
|
+
size: number;
|
|
2281
|
+
/** Opacity of the 1 px top-edge highlight, 0–1 (0: none). */
|
|
2282
|
+
edge: number;
|
|
2283
|
+
}
|
|
2303
2284
|
interface Theme {
|
|
2285
|
+
/** Whether `bg` is dark or light; components pick shadows and chrome by it. */
|
|
2286
|
+
mode: "dark" | "light";
|
|
2304
2287
|
color: {
|
|
2305
2288
|
bg: string;
|
|
2306
2289
|
surface: string;
|
|
@@ -2313,6 +2296,8 @@ interface Theme {
|
|
|
2313
2296
|
positive: string;
|
|
2314
2297
|
negative: string;
|
|
2315
2298
|
highlight: string;
|
|
2299
|
+
/** Shadow color (elevation). */
|
|
2300
|
+
shadow: string;
|
|
2316
2301
|
};
|
|
2317
2302
|
font: {
|
|
2318
2303
|
display: string;
|
|
@@ -2320,6 +2305,14 @@ interface Theme {
|
|
|
2320
2305
|
mono: string;
|
|
2321
2306
|
hand?: string;
|
|
2322
2307
|
};
|
|
2308
|
+
/** Font weights by role, so one theme can swap a heavier or lighter family. */
|
|
2309
|
+
weight: {
|
|
2310
|
+
regular: number;
|
|
2311
|
+
medium: number;
|
|
2312
|
+
semibold: number;
|
|
2313
|
+
bold: number;
|
|
2314
|
+
heavy: number;
|
|
2315
|
+
};
|
|
2323
2316
|
radius: {
|
|
2324
2317
|
sm: number;
|
|
2325
2318
|
md: number;
|
|
@@ -2331,6 +2324,12 @@ interface Theme {
|
|
|
2331
2324
|
base: number;
|
|
2332
2325
|
bold: number;
|
|
2333
2326
|
};
|
|
2327
|
+
/** Surfaces: `low` (chips, tags), `mid` (cards, toasts), `high` (windows, modals). */
|
|
2328
|
+
elevation: {
|
|
2329
|
+
low: Elevation;
|
|
2330
|
+
mid: Elevation;
|
|
2331
|
+
high: Elevation;
|
|
2332
|
+
};
|
|
2334
2333
|
motion: {
|
|
2335
2334
|
ease: {
|
|
2336
2335
|
enter: string;
|
|
@@ -2344,16 +2343,31 @@ interface Theme {
|
|
|
2344
2343
|
base: number;
|
|
2345
2344
|
slow: number;
|
|
2346
2345
|
};
|
|
2346
|
+
/** `settle` lands without overshoot, `base` overshoots a little, `pop` bounces. */
|
|
2347
|
+
spring: {
|
|
2348
|
+
settle: Spring;
|
|
2349
|
+
base: Spring;
|
|
2350
|
+
pop: Spring;
|
|
2351
|
+
};
|
|
2347
2352
|
};
|
|
2353
|
+
/** Code token colors (CodeBlock); unset kinds use the built-in palette. */
|
|
2354
|
+
syntax?: Partial<Record<SyntaxKind, string>>;
|
|
2348
2355
|
/** 1 = designed for 1080p. 2 for 4K, 0.5 for 540p. */
|
|
2349
2356
|
scale: number;
|
|
2350
2357
|
}
|
|
2358
|
+
/** Token kinds CodeBlock colors. */
|
|
2359
|
+
type SyntaxKind = "plain" | "keyword" | "string" | "number" | "comment" | "function" | "type" | "property" | "punctuation" | "operator";
|
|
2351
2360
|
type ThemeInput = DeepPartial<Theme>;
|
|
2352
2361
|
type DeepPartial<T> = { [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K] };
|
|
2353
2362
|
/** Built-in themes. Fonts are never bundled: register the families you use. */
|
|
2354
2363
|
declare const themes: {
|
|
2355
2364
|
/** Dark neutral: product demos, dev tools. */
|
|
2356
2365
|
readonly graphite: {
|
|
2366
|
+
readonly elevation: {
|
|
2367
|
+
low: Elevation;
|
|
2368
|
+
mid: Elevation;
|
|
2369
|
+
high: Elevation;
|
|
2370
|
+
};
|
|
2357
2371
|
readonly motion: {
|
|
2358
2372
|
ease: {
|
|
2359
2373
|
enter: string;
|
|
@@ -2367,6 +2381,12 @@ declare const themes: {
|
|
|
2367
2381
|
base: number;
|
|
2368
2382
|
slow: number;
|
|
2369
2383
|
};
|
|
2384
|
+
/** `settle` lands without overshoot, `base` overshoots a little, `pop` bounces. */
|
|
2385
|
+
spring: {
|
|
2386
|
+
settle: Spring;
|
|
2387
|
+
base: Spring;
|
|
2388
|
+
pop: Spring;
|
|
2389
|
+
};
|
|
2370
2390
|
};
|
|
2371
2391
|
readonly scale: 1;
|
|
2372
2392
|
readonly radius: {
|
|
@@ -2380,6 +2400,7 @@ declare const themes: {
|
|
|
2380
2400
|
base: number;
|
|
2381
2401
|
bold: number;
|
|
2382
2402
|
};
|
|
2403
|
+
readonly mode: "dark";
|
|
2383
2404
|
readonly color: {
|
|
2384
2405
|
readonly bg: "#0d0e11";
|
|
2385
2406
|
readonly surface: "#16181d";
|
|
@@ -2392,6 +2413,7 @@ declare const themes: {
|
|
|
2392
2413
|
readonly positive: "#3ecf8e";
|
|
2393
2414
|
readonly negative: "#ff5c5c";
|
|
2394
2415
|
readonly highlight: "#ffd23f";
|
|
2416
|
+
readonly shadow: "#000000";
|
|
2395
2417
|
};
|
|
2396
2418
|
readonly font: {
|
|
2397
2419
|
display: string;
|
|
@@ -2399,9 +2421,21 @@ declare const themes: {
|
|
|
2399
2421
|
mono: string;
|
|
2400
2422
|
hand?: string;
|
|
2401
2423
|
};
|
|
2424
|
+
readonly weight: {
|
|
2425
|
+
regular: number;
|
|
2426
|
+
medium: number;
|
|
2427
|
+
semibold: number;
|
|
2428
|
+
bold: number;
|
|
2429
|
+
heavy: number;
|
|
2430
|
+
};
|
|
2402
2431
|
};
|
|
2403
2432
|
/** Light editorial: explainers, documentaries. */
|
|
2404
2433
|
readonly paper: {
|
|
2434
|
+
readonly elevation: {
|
|
2435
|
+
low: Elevation;
|
|
2436
|
+
mid: Elevation;
|
|
2437
|
+
high: Elevation;
|
|
2438
|
+
};
|
|
2405
2439
|
readonly motion: {
|
|
2406
2440
|
ease: {
|
|
2407
2441
|
enter: string;
|
|
@@ -2415,6 +2449,12 @@ declare const themes: {
|
|
|
2415
2449
|
base: number;
|
|
2416
2450
|
slow: number;
|
|
2417
2451
|
};
|
|
2452
|
+
/** `settle` lands without overshoot, `base` overshoots a little, `pop` bounces. */
|
|
2453
|
+
spring: {
|
|
2454
|
+
settle: Spring;
|
|
2455
|
+
base: Spring;
|
|
2456
|
+
pop: Spring;
|
|
2457
|
+
};
|
|
2418
2458
|
};
|
|
2419
2459
|
readonly scale: 1;
|
|
2420
2460
|
readonly radius: {
|
|
@@ -2428,6 +2468,7 @@ declare const themes: {
|
|
|
2428
2468
|
base: number;
|
|
2429
2469
|
bold: number;
|
|
2430
2470
|
};
|
|
2471
|
+
readonly mode: "light";
|
|
2431
2472
|
readonly color: {
|
|
2432
2473
|
readonly bg: "#f4f1ea";
|
|
2433
2474
|
readonly surface: "#fffdf8";
|
|
@@ -2440,6 +2481,82 @@ declare const themes: {
|
|
|
2440
2481
|
readonly positive: "#1f8a4c";
|
|
2441
2482
|
readonly negative: "#c8282d";
|
|
2442
2483
|
readonly highlight: "#ffe066";
|
|
2484
|
+
readonly shadow: "#3b2f1e";
|
|
2485
|
+
};
|
|
2486
|
+
readonly font: {
|
|
2487
|
+
display: string;
|
|
2488
|
+
body: string;
|
|
2489
|
+
mono: string;
|
|
2490
|
+
hand?: string;
|
|
2491
|
+
};
|
|
2492
|
+
readonly weight: {
|
|
2493
|
+
regular: number;
|
|
2494
|
+
medium: number;
|
|
2495
|
+
semibold: number;
|
|
2496
|
+
bold: number;
|
|
2497
|
+
heavy: number;
|
|
2498
|
+
};
|
|
2499
|
+
};
|
|
2500
|
+
/** High contrast, saturated accent: social clips. */
|
|
2501
|
+
readonly signal: {
|
|
2502
|
+
readonly elevation: {
|
|
2503
|
+
low: Elevation;
|
|
2504
|
+
mid: Elevation;
|
|
2505
|
+
high: Elevation;
|
|
2506
|
+
};
|
|
2507
|
+
readonly motion: {
|
|
2508
|
+
readonly ease: {
|
|
2509
|
+
readonly enter: "back.out(1.8)";
|
|
2510
|
+
readonly exit: string;
|
|
2511
|
+
readonly move: string;
|
|
2512
|
+
readonly snap: string;
|
|
2513
|
+
};
|
|
2514
|
+
readonly speed: {
|
|
2515
|
+
readonly fast: 6;
|
|
2516
|
+
readonly base: 12;
|
|
2517
|
+
readonly slow: 24;
|
|
2518
|
+
};
|
|
2519
|
+
readonly spring: {
|
|
2520
|
+
readonly settle: {
|
|
2521
|
+
readonly stiffness: 300;
|
|
2522
|
+
readonly damping: 26;
|
|
2523
|
+
};
|
|
2524
|
+
readonly base: {
|
|
2525
|
+
readonly stiffness: 340;
|
|
2526
|
+
readonly damping: 22;
|
|
2527
|
+
};
|
|
2528
|
+
readonly pop: {
|
|
2529
|
+
readonly stiffness: 400;
|
|
2530
|
+
readonly damping: 14;
|
|
2531
|
+
};
|
|
2532
|
+
};
|
|
2533
|
+
};
|
|
2534
|
+
readonly scale: 1;
|
|
2535
|
+
readonly radius: {
|
|
2536
|
+
sm: number;
|
|
2537
|
+
md: number;
|
|
2538
|
+
lg: number;
|
|
2539
|
+
pill: number;
|
|
2540
|
+
};
|
|
2541
|
+
readonly stroke: {
|
|
2542
|
+
hair: number;
|
|
2543
|
+
base: number;
|
|
2544
|
+
bold: number;
|
|
2545
|
+
};
|
|
2546
|
+
readonly mode: "dark";
|
|
2547
|
+
readonly color: {
|
|
2548
|
+
readonly bg: "#000000";
|
|
2549
|
+
readonly surface: "#111111";
|
|
2550
|
+
readonly raised: "#1c1c1c";
|
|
2551
|
+
readonly line: "#333333";
|
|
2552
|
+
readonly ink: "#ffffff";
|
|
2553
|
+
readonly muted: "#a3a3a3";
|
|
2554
|
+
readonly accent: "#c6ff00";
|
|
2555
|
+
readonly accent2: "#ff2e88";
|
|
2556
|
+
readonly positive: "#00e676";
|
|
2557
|
+
readonly negative: "#ff1744";
|
|
2558
|
+
readonly highlight: "#c6ff00";
|
|
2559
|
+
readonly shadow: "#000000";
|
|
2443
2560
|
};
|
|
2444
2561
|
readonly font: {
|
|
2445
2562
|
display: string;
|
|
@@ -2447,65 +2564,254 @@ declare const themes: {
|
|
|
2447
2564
|
mono: string;
|
|
2448
2565
|
hand?: string;
|
|
2449
2566
|
};
|
|
2567
|
+
readonly weight: {
|
|
2568
|
+
regular: number;
|
|
2569
|
+
medium: number;
|
|
2570
|
+
semibold: number;
|
|
2571
|
+
bold: number;
|
|
2572
|
+
heavy: number;
|
|
2573
|
+
};
|
|
2574
|
+
};
|
|
2575
|
+
};
|
|
2576
|
+
type ThemeName = keyof typeof themes;
|
|
2577
|
+
/**
|
|
2578
|
+
* Merge a partial theme over a base (default `themes.graphite`). Throws when
|
|
2579
|
+
* `ink` on `surface` falls below WCAG 4.5:1 and both are hex colors.
|
|
2580
|
+
*/
|
|
2581
|
+
declare function defineTheme(input?: ThemeInput | Theme, base?: Theme): Theme;
|
|
2582
|
+
/** A theme's duration token in frames at `fps`. */
|
|
2583
|
+
declare function themeFrames(theme: Theme, speed: keyof Theme["motion"]["speed"], fps?: number): number;
|
|
2584
|
+
//#endregion
|
|
2585
|
+
//#region src/core/host.d.ts
|
|
2586
|
+
/** Photoshop-style layer styles (framefields' `LayerStyle`). Omitted styles are off. */
|
|
2587
|
+
interface LayerStyleConfig {
|
|
2588
|
+
dropShadow?: {
|
|
2589
|
+
color?: string;
|
|
2590
|
+
opacity?: number;
|
|
2591
|
+
/** Light angle in degrees (90 = shadow straight down). */
|
|
2592
|
+
angle?: number;
|
|
2593
|
+
distance?: number;
|
|
2594
|
+
spread?: number;
|
|
2595
|
+
size?: number;
|
|
2596
|
+
blendMode?: string;
|
|
2597
|
+
};
|
|
2598
|
+
outerGlow?: {
|
|
2599
|
+
color?: string;
|
|
2600
|
+
opacity?: number;
|
|
2601
|
+
size?: number;
|
|
2602
|
+
spread?: number;
|
|
2603
|
+
blendMode?: string;
|
|
2604
|
+
};
|
|
2605
|
+
innerShadow?: {
|
|
2606
|
+
color?: string;
|
|
2607
|
+
opacity?: number;
|
|
2608
|
+
/** Degrees, as for drop shadows: 90 shades the bottom inside edge, 270 the top. */
|
|
2609
|
+
angle?: number;
|
|
2610
|
+
distance?: number;
|
|
2611
|
+
size?: number;
|
|
2612
|
+
choke?: number;
|
|
2613
|
+
/** Default `"multiply"` (a light color then does nothing: use `"normal"` or `"screen"`). */
|
|
2614
|
+
blendMode?: string;
|
|
2615
|
+
};
|
|
2616
|
+
stroke?: {
|
|
2617
|
+
size?: number;
|
|
2618
|
+
position?: "inside" | "center" | "outside";
|
|
2619
|
+
color?: string;
|
|
2620
|
+
opacity?: number;
|
|
2621
|
+
};
|
|
2622
|
+
}
|
|
2623
|
+
interface MediaOptions {
|
|
2624
|
+
id?: string;
|
|
2625
|
+
position?: "absolute" | "relative";
|
|
2626
|
+
x?: number;
|
|
2627
|
+
y?: number;
|
|
2628
|
+
width?: number;
|
|
2629
|
+
height?: number;
|
|
2630
|
+
fit?: "cover" | "contain" | "fill";
|
|
2631
|
+
}
|
|
2632
|
+
/** The part of framefields' `AnimatableNode` components rely on. */
|
|
2633
|
+
interface AnimatableMethods {
|
|
2634
|
+
animate(...anims: unknown[]): unknown;
|
|
2635
|
+
}
|
|
2636
|
+
type Animatable<T> = T & AnimatableMethods;
|
|
2637
|
+
interface Host {
|
|
2638
|
+
box(options: Partial<BoxNode>): Animatable<BoxNode>;
|
|
2639
|
+
flex(options: Partial<FlexNode>): Animatable<FlexNode>;
|
|
2640
|
+
text(content: string, options?: Partial<TextNode>): Animatable<TextNode>;
|
|
2641
|
+
shape(type: ShapeType, options?: Partial<ShapeNode>): Animatable<ShapeNode>;
|
|
2642
|
+
/** `FontManager.measure`. */
|
|
2643
|
+
measure: MeasureFn;
|
|
2644
|
+
/** Registered font families. */
|
|
2645
|
+
fonts(): readonly string[];
|
|
2646
|
+
/** A default id: stable per run (a counter per prefix), like `Layer.*` ids. */
|
|
2647
|
+
autoId(prefix: string): string;
|
|
2648
|
+
/** A video, image or SVG layer, by file extension. */
|
|
2649
|
+
media(source: string, options: MediaOptions): Animatable<LayoutNode>;
|
|
2650
|
+
/** Attach layer styles (shadow, glow, stroke) to `node`; returns it. */
|
|
2651
|
+
style<T extends Animatable<LayoutNode>>(node: T, config: LayerStyleConfig): T;
|
|
2652
|
+
/**
|
|
2653
|
+
* Mask `node` by `matte`'s alpha (a box: solid or CSS-gradient
|
|
2654
|
+
* background), or by its inverse (`"alpha-inverted"`: show `node`
|
|
2655
|
+
* everywhere the matte is not). The matte is laid out like a sibling of
|
|
2656
|
+
* `node`; returns `node`.
|
|
2657
|
+
*/
|
|
2658
|
+
matte<T extends Animatable<LayoutNode>>(node: T, matte: LayoutNode, mode?: "alpha" | "alpha-inverted"): T;
|
|
2659
|
+
/**
|
|
2660
|
+
* A video showing only its person / subject (vision segmentation), the
|
|
2661
|
+
* rest transparent: stacked over captions so text passes behind them.
|
|
2662
|
+
*/
|
|
2663
|
+
cutout(source: string, options: CutoutOptions): Animatable<LayoutNode>;
|
|
2664
|
+
/** A GPU particle system layer. */
|
|
2665
|
+
particles(options: ParticleOptions): Animatable<LayoutNode>;
|
|
2666
|
+
/**
|
|
2667
|
+
* A per-frame signal from values (framefields' `Signal.fromArray`), for
|
|
2668
|
+
* `LayerAnimation.signal`. Signals read the composition's frame: value
|
|
2669
|
+
* `k` drives composition frame `k`.
|
|
2670
|
+
*/
|
|
2671
|
+
signal(values: readonly number[], fps: number): object;
|
|
2672
|
+
/**
|
|
2673
|
+
* An animated film-grain layer to put over other layers: neutral grey
|
|
2674
|
+
* carrying framefields' `FilmGrain`, soft-light blended. (Effects only
|
|
2675
|
+
* attach to media layers, so grain can't go on a box.)
|
|
2676
|
+
*/
|
|
2677
|
+
grain(options: GrainOptions): Animatable<LayoutNode>;
|
|
2678
|
+
/** Solid extruded 3D text (framefields' `Layer3D.extrudedText`), centred on x, y. */
|
|
2679
|
+
extrudedText(options: ExtrudedTextOptions): Animatable<LayoutNode>;
|
|
2680
|
+
}
|
|
2681
|
+
interface GrainOptions {
|
|
2682
|
+
id?: string;
|
|
2683
|
+
x: number;
|
|
2684
|
+
y: number;
|
|
2685
|
+
width: number;
|
|
2686
|
+
height: number;
|
|
2687
|
+
/** 0–100, the engine's scale. */
|
|
2688
|
+
strength: number;
|
|
2689
|
+
size?: number;
|
|
2690
|
+
}
|
|
2691
|
+
interface ExtrudedTextOptions {
|
|
2692
|
+
id?: string;
|
|
2693
|
+
text: string;
|
|
2694
|
+
/** Centre of the text. */
|
|
2695
|
+
x: number;
|
|
2696
|
+
y: number;
|
|
2697
|
+
depth: number;
|
|
2698
|
+
fontFamily?: string;
|
|
2699
|
+
fontSize: number;
|
|
2700
|
+
fontWeight?: number;
|
|
2701
|
+
fill?: string;
|
|
2702
|
+
bevelColor?: string;
|
|
2703
|
+
material?: "lit" | "glass";
|
|
2704
|
+
metallic?: number;
|
|
2705
|
+
roughness?: number;
|
|
2706
|
+
shininess?: number;
|
|
2707
|
+
opacity?: number;
|
|
2708
|
+
}
|
|
2709
|
+
/** A GPU particle system (framefields' `Layer.particles`), as plain data. */
|
|
2710
|
+
interface ParticleOptions {
|
|
2711
|
+
id?: string;
|
|
2712
|
+
x: number;
|
|
2713
|
+
y: number;
|
|
2714
|
+
width: number;
|
|
2715
|
+
height: number;
|
|
2716
|
+
seed?: number;
|
|
2717
|
+
/** Most particles alive at once. */
|
|
2718
|
+
max?: number;
|
|
2719
|
+
emitter: {
|
|
2720
|
+
shape: "point";
|
|
2721
|
+
x: number;
|
|
2722
|
+
y: number;
|
|
2723
|
+
/** Particles a second (0 for bursts only). */
|
|
2724
|
+
rate: number;
|
|
2725
|
+
bursts: Array<{
|
|
2726
|
+
frame: number;
|
|
2727
|
+
count: number;
|
|
2728
|
+
}>;
|
|
2450
2729
|
};
|
|
2451
|
-
/**
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2730
|
+
/** Seconds each particle lives. */
|
|
2731
|
+
lifetime?: [number, number];
|
|
2732
|
+
/** Launch speed, px/s. */
|
|
2733
|
+
speed?: [number, number];
|
|
2734
|
+
/** Degrees, 0 = right, -90 = up. */
|
|
2735
|
+
direction?: number;
|
|
2736
|
+
spread?: number;
|
|
2737
|
+
/** px/s², down. */
|
|
2738
|
+
gravity?: number;
|
|
2739
|
+
drag?: number;
|
|
2740
|
+
noise?: {
|
|
2741
|
+
strength: number;
|
|
2742
|
+
scale: number;
|
|
2743
|
+
speed: number;
|
|
2744
|
+
};
|
|
2745
|
+
/** A floor line (layer px) particles bounce on and settle. */
|
|
2746
|
+
floor?: number;
|
|
2747
|
+
bounce?: number;
|
|
2748
|
+
/** px at birth → death. */
|
|
2749
|
+
size?: [number, number];
|
|
2750
|
+
sizeJitter?: number;
|
|
2751
|
+
fade?: [number, number];
|
|
2752
|
+
shape?: "circle" | "soft" | "square" | "spark";
|
|
2753
|
+
stretch?: number;
|
|
2754
|
+
blend?: "normal" | "add" | "screen";
|
|
2755
|
+
color?: string | string[];
|
|
2756
|
+
opacity?: number;
|
|
2757
|
+
}
|
|
2758
|
+
interface CutoutOptions extends MediaOptions {
|
|
2759
|
+
mode?: "person" | "subject";
|
|
2760
|
+
}
|
|
2761
|
+
//#endregion
|
|
2762
|
+
//#region src/core/layout.d.ts
|
|
2763
|
+
/** The composition size a full-frame component covers. */
|
|
2764
|
+
interface CanvasSize {
|
|
2765
|
+
width: number;
|
|
2766
|
+
height: number;
|
|
2767
|
+
}
|
|
2768
|
+
/** Margins as shares of the frame: left / right `x`, `top`, `bottom`. */
|
|
2769
|
+
interface SafeInsets {
|
|
2770
|
+
x: number;
|
|
2771
|
+
top: number;
|
|
2772
|
+
bottom: number;
|
|
2773
|
+
}
|
|
2774
|
+
/**
|
|
2775
|
+
* Safe-area margins by use. Portrait leaves room for the captions, buttons
|
|
2776
|
+
* and handles that short-form platforms draw over the bottom and right.
|
|
2777
|
+
*/
|
|
2778
|
+
declare const SAFE_INSETS: {
|
|
2779
|
+
/** Titles, plates, lower thirds. */
|
|
2780
|
+
readonly titles: {
|
|
2781
|
+
readonly landscape: {
|
|
2782
|
+
readonly x: 0.06;
|
|
2783
|
+
readonly top: 0.08;
|
|
2784
|
+
readonly bottom: 0.1;
|
|
2472
2785
|
};
|
|
2473
|
-
readonly
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2786
|
+
readonly portrait: {
|
|
2787
|
+
readonly x: 0.08;
|
|
2788
|
+
readonly top: 0.1;
|
|
2789
|
+
readonly bottom: 0.24;
|
|
2477
2790
|
};
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
readonly
|
|
2483
|
-
readonly
|
|
2484
|
-
readonly
|
|
2485
|
-
readonly accent: "#c6ff00";
|
|
2486
|
-
readonly accent2: "#ff2e88";
|
|
2487
|
-
readonly positive: "#00e676";
|
|
2488
|
-
readonly negative: "#ff1744";
|
|
2489
|
-
readonly highlight: "#c6ff00";
|
|
2791
|
+
};
|
|
2792
|
+
/** Subtitles: narrower lines, the same bottom clearance. */
|
|
2793
|
+
readonly captions: {
|
|
2794
|
+
readonly landscape: {
|
|
2795
|
+
readonly x: 0.1;
|
|
2796
|
+
readonly top: 0.08;
|
|
2797
|
+
readonly bottom: 0.1;
|
|
2490
2798
|
};
|
|
2491
|
-
readonly
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
hand?: string;
|
|
2799
|
+
readonly portrait: {
|
|
2800
|
+
readonly x: 0.08;
|
|
2801
|
+
readonly top: 0.12;
|
|
2802
|
+
readonly bottom: 0.22;
|
|
2496
2803
|
};
|
|
2497
2804
|
};
|
|
2498
2805
|
};
|
|
2499
|
-
type ThemeName = keyof typeof themes;
|
|
2500
2806
|
/**
|
|
2501
|
-
*
|
|
2502
|
-
*
|
|
2807
|
+
* The rect inside `canvas` that content keeps to. `area` forces an
|
|
2808
|
+
* orientation or gives the rect itself; by default a frame taller than it is
|
|
2809
|
+
* wide counts as portrait.
|
|
2503
2810
|
*/
|
|
2504
|
-
declare function
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
declare function contrastRatio(a: string, b: string): number | null;
|
|
2811
|
+
declare function safeArea(canvas: CanvasSize, area?: "portrait" | "landscape" | Rect, insets?: {
|
|
2812
|
+
landscape: SafeInsets;
|
|
2813
|
+
portrait: SafeInsets;
|
|
2814
|
+
}): Rect;
|
|
2509
2815
|
//#endregion
|
|
2510
2816
|
//#region src/core/motion.d.ts
|
|
2511
2817
|
type MotionPresetName = "none" | "fade" | "rise" | "drop" | "scale" | "pop" | "slide-left" | "slide-right" | "slide-up" | "slide-down" | "tilt" | "mask-up" | "mask-down" | "mask-left" | "mask-right";
|
|
@@ -2518,6 +2824,11 @@ interface MotionOptions {
|
|
|
2518
2824
|
distance?: number;
|
|
2519
2825
|
/** Frames to wait after the window starts (enter) or before it ends (exit). */
|
|
2520
2826
|
delay?: number;
|
|
2827
|
+
/**
|
|
2828
|
+
* Motion blur while the stage moves: `true` (90° shutter), a shutter
|
|
2829
|
+
* angle in degrees, or `false`. Default on for `slide-*`, off otherwise.
|
|
2830
|
+
*/
|
|
2831
|
+
blur?: boolean | number;
|
|
2521
2832
|
}
|
|
2522
2833
|
type MotionPreset = MotionPresetName | ({
|
|
2523
2834
|
preset: MotionPresetName;
|
|
@@ -2528,6 +2839,8 @@ interface ResolvedMotion {
|
|
|
2528
2839
|
ease: string;
|
|
2529
2840
|
distance: number;
|
|
2530
2841
|
delay: number;
|
|
2842
|
+
/** Shutter angle in degrees; 0 = no motion blur. */
|
|
2843
|
+
blur: number;
|
|
2531
2844
|
}
|
|
2532
2845
|
/** Normalise a preset (or `false`) against a theme and fps. */
|
|
2533
2846
|
declare function resolveMotion(input: MotionPreset | false | undefined, kind: "enter" | "exit", theme: Theme, fps?: number): ResolvedMotion | null;
|
|
@@ -2622,6 +2935,7 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2622
2935
|
ease: z.ZodOptional<z.ZodString>;
|
|
2623
2936
|
distance: z.ZodOptional<z.ZodNumber>;
|
|
2624
2937
|
delay: z.ZodOptional<z.ZodNumber>;
|
|
2938
|
+
blur: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
|
|
2625
2939
|
}, z.core.$strip>]>, z.ZodLiteral<false>]>>;
|
|
2626
2940
|
exit: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodEnum<{
|
|
2627
2941
|
[x: string]: string;
|
|
@@ -2633,6 +2947,7 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2633
2947
|
ease: z.ZodOptional<z.ZodString>;
|
|
2634
2948
|
distance: z.ZodOptional<z.ZodNumber>;
|
|
2635
2949
|
delay: z.ZodOptional<z.ZodNumber>;
|
|
2950
|
+
blur: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
|
|
2636
2951
|
}, z.core.$strip>]>, z.ZodLiteral<false>]>>;
|
|
2637
2952
|
x: z.ZodOptional<z.ZodNumber>;
|
|
2638
2953
|
y: z.ZodOptional<z.ZodNumber>;
|
|
@@ -2643,6 +2958,7 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2643
2958
|
relative: "relative";
|
|
2644
2959
|
}>>;
|
|
2645
2960
|
theme: z.ZodOptional<z.ZodCustom<{
|
|
2961
|
+
mode?: "dark" | "light" | undefined;
|
|
2646
2962
|
color?: {
|
|
2647
2963
|
bg?: string | undefined;
|
|
2648
2964
|
surface?: string | undefined;
|
|
@@ -2655,6 +2971,7 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2655
2971
|
positive?: string | undefined;
|
|
2656
2972
|
negative?: string | undefined;
|
|
2657
2973
|
highlight?: string | undefined;
|
|
2974
|
+
shadow?: string | undefined;
|
|
2658
2975
|
} | undefined;
|
|
2659
2976
|
font?: {
|
|
2660
2977
|
display?: string | undefined;
|
|
@@ -2662,6 +2979,13 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2662
2979
|
mono?: string | undefined;
|
|
2663
2980
|
hand?: string | undefined;
|
|
2664
2981
|
} | undefined;
|
|
2982
|
+
weight?: {
|
|
2983
|
+
regular?: number | undefined;
|
|
2984
|
+
medium?: number | undefined;
|
|
2985
|
+
semibold?: number | undefined;
|
|
2986
|
+
bold?: number | undefined;
|
|
2987
|
+
heavy?: number | undefined;
|
|
2988
|
+
} | undefined;
|
|
2665
2989
|
radius?: {
|
|
2666
2990
|
sm?: number | undefined;
|
|
2667
2991
|
md?: number | undefined;
|
|
@@ -2673,6 +2997,26 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2673
2997
|
base?: number | undefined;
|
|
2674
2998
|
bold?: number | undefined;
|
|
2675
2999
|
} | undefined;
|
|
3000
|
+
elevation?: {
|
|
3001
|
+
low?: {
|
|
3002
|
+
opacity?: number | undefined;
|
|
3003
|
+
distance?: number | undefined;
|
|
3004
|
+
size?: number | undefined;
|
|
3005
|
+
edge?: number | undefined;
|
|
3006
|
+
} | undefined;
|
|
3007
|
+
mid?: {
|
|
3008
|
+
opacity?: number | undefined;
|
|
3009
|
+
distance?: number | undefined;
|
|
3010
|
+
size?: number | undefined;
|
|
3011
|
+
edge?: number | undefined;
|
|
3012
|
+
} | undefined;
|
|
3013
|
+
high?: {
|
|
3014
|
+
opacity?: number | undefined;
|
|
3015
|
+
distance?: number | undefined;
|
|
3016
|
+
size?: number | undefined;
|
|
3017
|
+
edge?: number | undefined;
|
|
3018
|
+
} | undefined;
|
|
3019
|
+
} | undefined;
|
|
2676
3020
|
motion?: {
|
|
2677
3021
|
ease?: {
|
|
2678
3022
|
enter?: string | undefined;
|
|
@@ -2685,9 +3029,25 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2685
3029
|
base?: number | undefined;
|
|
2686
3030
|
slow?: number | undefined;
|
|
2687
3031
|
} | undefined;
|
|
3032
|
+
spring?: {
|
|
3033
|
+
settle?: {
|
|
3034
|
+
stiffness?: number | undefined;
|
|
3035
|
+
damping?: number | undefined;
|
|
3036
|
+
} | undefined;
|
|
3037
|
+
base?: {
|
|
3038
|
+
stiffness?: number | undefined;
|
|
3039
|
+
damping?: number | undefined;
|
|
3040
|
+
} | undefined;
|
|
3041
|
+
pop?: {
|
|
3042
|
+
stiffness?: number | undefined;
|
|
3043
|
+
damping?: number | undefined;
|
|
3044
|
+
} | undefined;
|
|
3045
|
+
} | undefined;
|
|
2688
3046
|
} | undefined;
|
|
3047
|
+
syntax?: Partial<Record<SyntaxKind, string>> | undefined;
|
|
2689
3048
|
scale?: number | undefined;
|
|
2690
3049
|
}, {
|
|
3050
|
+
mode?: "dark" | "light" | undefined;
|
|
2691
3051
|
color?: {
|
|
2692
3052
|
bg?: string | undefined;
|
|
2693
3053
|
surface?: string | undefined;
|
|
@@ -2700,6 +3060,7 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2700
3060
|
positive?: string | undefined;
|
|
2701
3061
|
negative?: string | undefined;
|
|
2702
3062
|
highlight?: string | undefined;
|
|
3063
|
+
shadow?: string | undefined;
|
|
2703
3064
|
} | undefined;
|
|
2704
3065
|
font?: {
|
|
2705
3066
|
display?: string | undefined;
|
|
@@ -2707,6 +3068,13 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2707
3068
|
mono?: string | undefined;
|
|
2708
3069
|
hand?: string | undefined;
|
|
2709
3070
|
} | undefined;
|
|
3071
|
+
weight?: {
|
|
3072
|
+
regular?: number | undefined;
|
|
3073
|
+
medium?: number | undefined;
|
|
3074
|
+
semibold?: number | undefined;
|
|
3075
|
+
bold?: number | undefined;
|
|
3076
|
+
heavy?: number | undefined;
|
|
3077
|
+
} | undefined;
|
|
2710
3078
|
radius?: {
|
|
2711
3079
|
sm?: number | undefined;
|
|
2712
3080
|
md?: number | undefined;
|
|
@@ -2718,6 +3086,26 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2718
3086
|
base?: number | undefined;
|
|
2719
3087
|
bold?: number | undefined;
|
|
2720
3088
|
} | undefined;
|
|
3089
|
+
elevation?: {
|
|
3090
|
+
low?: {
|
|
3091
|
+
opacity?: number | undefined;
|
|
3092
|
+
distance?: number | undefined;
|
|
3093
|
+
size?: number | undefined;
|
|
3094
|
+
edge?: number | undefined;
|
|
3095
|
+
} | undefined;
|
|
3096
|
+
mid?: {
|
|
3097
|
+
opacity?: number | undefined;
|
|
3098
|
+
distance?: number | undefined;
|
|
3099
|
+
size?: number | undefined;
|
|
3100
|
+
edge?: number | undefined;
|
|
3101
|
+
} | undefined;
|
|
3102
|
+
high?: {
|
|
3103
|
+
opacity?: number | undefined;
|
|
3104
|
+
distance?: number | undefined;
|
|
3105
|
+
size?: number | undefined;
|
|
3106
|
+
edge?: number | undefined;
|
|
3107
|
+
} | undefined;
|
|
3108
|
+
} | undefined;
|
|
2721
3109
|
motion?: {
|
|
2722
3110
|
ease?: {
|
|
2723
3111
|
enter?: string | undefined;
|
|
@@ -2730,11 +3118,30 @@ declare function basePropsSchema(): z.ZodObject<{
|
|
|
2730
3118
|
base?: number | undefined;
|
|
2731
3119
|
slow?: number | undefined;
|
|
2732
3120
|
} | undefined;
|
|
3121
|
+
spring?: {
|
|
3122
|
+
settle?: {
|
|
3123
|
+
stiffness?: number | undefined;
|
|
3124
|
+
damping?: number | undefined;
|
|
3125
|
+
} | undefined;
|
|
3126
|
+
base?: {
|
|
3127
|
+
stiffness?: number | undefined;
|
|
3128
|
+
damping?: number | undefined;
|
|
3129
|
+
} | undefined;
|
|
3130
|
+
pop?: {
|
|
3131
|
+
stiffness?: number | undefined;
|
|
3132
|
+
damping?: number | undefined;
|
|
3133
|
+
} | undefined;
|
|
3134
|
+
} | undefined;
|
|
2733
3135
|
} | undefined;
|
|
3136
|
+
syntax?: Partial<Record<SyntaxKind, string>> | undefined;
|
|
2734
3137
|
scale?: number | undefined;
|
|
2735
3138
|
}>>;
|
|
2736
3139
|
seed: z.ZodOptional<z.ZodNumber>;
|
|
2737
3140
|
fps: z.ZodOptional<z.ZodNumber>;
|
|
3141
|
+
canvas: z.ZodOptional<z.ZodObject<{
|
|
3142
|
+
width: z.ZodNumber;
|
|
3143
|
+
height: z.ZodNumber;
|
|
3144
|
+
}, z.core.$strict>>;
|
|
2738
3145
|
customize: z.ZodOptional<z.ZodCustom<(parts: Record<string, Animatable<LayoutNode>>) => void, (parts: Record<string, Animatable<LayoutNode>>) => void>>;
|
|
2739
3146
|
}, z.core.$strip>;
|
|
2740
3147
|
interface BaseProps {
|
|
@@ -2761,6 +3168,11 @@ interface BaseProps {
|
|
|
2761
3168
|
seed?: number;
|
|
2762
3169
|
/** Composition frame rate: theme speeds and real-time inputs scale by it. Default 30. */
|
|
2763
3170
|
fps?: number;
|
|
3171
|
+
/**
|
|
3172
|
+
* Composition size, for components that cover the frame (captions,
|
|
3173
|
+
* backdrops, spotlights …). Default 1920 × 1080 × `theme.scale`.
|
|
3174
|
+
*/
|
|
3175
|
+
canvas?: CanvasSize;
|
|
2764
3176
|
/** Receives every built part before the component returns. */
|
|
2765
3177
|
customize?: (parts: Record<string, Animatable<LayoutNode>>) => void;
|
|
2766
3178
|
}
|
|
@@ -2784,6 +3196,8 @@ interface BuildContext {
|
|
|
2784
3196
|
};
|
|
2785
3197
|
/** Frames the finished state holds (base `hold`, or the component's default). */
|
|
2786
3198
|
hold: number;
|
|
3199
|
+
/** The composition size (base `canvas`, or 1920 × 1080 × theme scale). */
|
|
3200
|
+
canvas: CanvasSize;
|
|
2787
3201
|
}
|
|
2788
3202
|
/** Where the root ended up: what a component's `api` can rely on. */
|
|
2789
3203
|
interface Placement {
|
|
@@ -2864,8 +3278,34 @@ interface ComponentExtras<C extends Cues> {
|
|
|
2864
3278
|
};
|
|
2865
3279
|
/** A named part (`root`, `stage`, and the component's own). */
|
|
2866
3280
|
part(name: string): Animatable<LayoutNode> | undefined;
|
|
3281
|
+
/** Every name `part()` and `customize` answer to. */
|
|
3282
|
+
readonly partNames: readonly string[];
|
|
2867
3283
|
}
|
|
2868
3284
|
type ComponentNode$1<C extends Cues> = Animatable<BoxNode> & ComponentExtras<C>;
|
|
3285
|
+
/** Base props a project usually sets once: see {@link withDefaults}. */
|
|
3286
|
+
type ProjectDefaults = Pick<BaseProps, "fps" | "canvas" | "seed"> & {
|
|
3287
|
+
theme?: ThemeInput | Theme;
|
|
3288
|
+
};
|
|
3289
|
+
/**
|
|
3290
|
+
* Wrap component factories so every call starts from the project's frame
|
|
3291
|
+
* rate, canvas, theme and seed. Props given at the call win; a call's
|
|
3292
|
+
* partial `theme` merges over the default theme, not over `graphite`.
|
|
3293
|
+
*
|
|
3294
|
+
* ```ts
|
|
3295
|
+
* const ui = withDefaults({ fps: 60, canvas: { width: 1080, height: 1920 }, theme: themes.paper });
|
|
3296
|
+
* const Captions = ui(CaptionsBase);
|
|
3297
|
+
* ```
|
|
3298
|
+
*/
|
|
3299
|
+
declare function withDefaults(defaults: ProjectDefaults): <P extends BaseProps, R>(factory: (props: P) => R) => (props: P) => R;
|
|
3300
|
+
/**
|
|
3301
|
+
* The frame `gap` frames after `node` ends: `at: after(title, 6)`. Throws
|
|
3302
|
+
* for open-ended components, which have no end until given a `duration`.
|
|
3303
|
+
*/
|
|
3304
|
+
declare function after(node: {
|
|
3305
|
+
readonly span: {
|
|
3306
|
+
end: number;
|
|
3307
|
+
};
|
|
3308
|
+
}, gap?: number): number;
|
|
2869
3309
|
/**
|
|
2870
3310
|
* Bind a definition to a host, producing the user-facing factory. framefields
|
|
2871
3311
|
* calls this once per component behind a PURE annotation, so bundlers drop
|
|
@@ -2960,6 +3400,52 @@ declare function evaluateGlyphExpression(expression: string, scope: {
|
|
|
2960
3400
|
lineIndex?: number;
|
|
2961
3401
|
}): number;
|
|
2962
3402
|
//#endregion
|
|
3403
|
+
//#region src/core/keys.d.ts
|
|
3404
|
+
/** Round to `places` decimals (default 3): keeps baked keys short and stable. */
|
|
3405
|
+
declare const round: (v: number, places?: number) => number;
|
|
3406
|
+
/** The last element, or `undefined`. */
|
|
3407
|
+
declare const last: <T>(list: readonly T[]) => T | undefined;
|
|
3408
|
+
/**
|
|
3409
|
+
* Keys in ascending frame order; of several keys on one frame, the one given
|
|
3410
|
+
* last wins. Input order is otherwise free.
|
|
3411
|
+
*/
|
|
3412
|
+
declare function ascending(keys: readonly KeyframeTuple[]): KeyframeTuple[];
|
|
3413
|
+
/**
|
|
3414
|
+
* Keys written as a timeline where each key supersedes what came before at
|
|
3415
|
+
* or after its frame: a key earlier than the previous one drops the later
|
|
3416
|
+
* ones (a retarget cancels the planned rest of a move).
|
|
3417
|
+
*/
|
|
3418
|
+
declare function supersede(keys: readonly KeyframeTuple[]): KeyframeTuple[];
|
|
3419
|
+
/**
|
|
3420
|
+
* A numeric track's value at `frame`, the way the renderer evaluates it:
|
|
3421
|
+
* each segment eased by its end key's ease, `hold` stepping on the key.
|
|
3422
|
+
*/
|
|
3423
|
+
declare function valueAt(keys: readonly KeyframeTuple[], frame: number): number;
|
|
3424
|
+
/** A value track built from transitions: each eases from wherever the value is to `to`. */
|
|
3425
|
+
declare class Track {
|
|
3426
|
+
private readonly initial;
|
|
3427
|
+
private changes;
|
|
3428
|
+
constructor(initial: number);
|
|
3429
|
+
to(start: number, end: number, value: number, ease?: string): this;
|
|
3430
|
+
/** Jump to `value` on `frame` (a hold key). */
|
|
3431
|
+
set(frame: number, value: number): this;
|
|
3432
|
+
/** Ascending keyframes; a change that starts mid-transition starts from its target. */
|
|
3433
|
+
keys(): KeyframeTuple[];
|
|
3434
|
+
}
|
|
3435
|
+
/**
|
|
3436
|
+
* Keys collected per node and prop from anywhere in a build, merged into one
|
|
3437
|
+
* ascending track each and applied with one `animate()` per node.
|
|
3438
|
+
*/
|
|
3439
|
+
declare class KeyBook<N extends {
|
|
3440
|
+
animate(...anims: unknown[]): unknown;
|
|
3441
|
+
}> {
|
|
3442
|
+
private readonly book;
|
|
3443
|
+
/** Append keys for `node`'s `prop` (merged with any already given). */
|
|
3444
|
+
key(node: N, prop: AnimatableProp | (string & {}), keys: KeyframeTuple[]): this;
|
|
3445
|
+
/** Animate every node once with its merged tracks. */
|
|
3446
|
+
apply(): void;
|
|
3447
|
+
}
|
|
3448
|
+
//#endregion
|
|
2963
3449
|
//#region src/core/meta.d.ts
|
|
2964
3450
|
/**
|
|
2965
3451
|
* Component metadata: the discovery surface for docs and coding agents.
|
|
@@ -2980,99 +3466,34 @@ interface ComponentMeta {
|
|
|
2980
3466
|
example: string;
|
|
2981
3467
|
/** Spec milestone that introduced it. */
|
|
2982
3468
|
since: string;
|
|
3469
|
+
/**
|
|
3470
|
+
* Fonts it draws with beyond the theme's families. `framefields add`
|
|
3471
|
+
* installs each one into the project (pinned, hash-checked) and registers
|
|
3472
|
+
* it in the generated `fonts.ts`.
|
|
3473
|
+
*/
|
|
3474
|
+
fonts?: readonly FontNeed[];
|
|
2983
3475
|
}
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
/**
|
|
2989
|
-
|
|
2990
|
-
interface TargetNode {
|
|
2991
|
-
id?: string;
|
|
2992
|
-
kind?: string;
|
|
2993
|
-
x?: unknown;
|
|
2994
|
-
y?: unknown;
|
|
2995
|
-
width?: unknown;
|
|
2996
|
-
height?: unknown;
|
|
2997
|
-
text?: unknown;
|
|
2998
|
-
content?: unknown;
|
|
2999
|
-
[key: string]: unknown;
|
|
3000
|
-
}
|
|
3001
|
-
/** The frame context signals are read with. */
|
|
3002
|
-
interface FrameContextLike {
|
|
3003
|
-
frame: number;
|
|
3004
|
-
fps: number;
|
|
3005
|
-
time: number;
|
|
3006
|
-
duration: number;
|
|
3007
|
-
durationMs: number;
|
|
3008
|
-
progress: number;
|
|
3009
|
-
deltaTime: number;
|
|
3010
|
-
}
|
|
3011
|
-
/** A per-frame value: a signal (what tracked objects expose) or a function. */
|
|
3012
|
-
type FrameValue = {
|
|
3013
|
-
get(ctx?: FrameContextLike): number;
|
|
3014
|
-
} | ((frame: number) => number);
|
|
3015
|
-
interface TrackedObjectLike {
|
|
3016
|
-
x: FrameValue;
|
|
3017
|
-
y: FrameValue;
|
|
3018
|
-
width: FrameValue;
|
|
3019
|
-
height: FrameValue;
|
|
3020
|
-
}
|
|
3021
|
-
type Target = Vec2$1 | Rect | {
|
|
3022
|
-
node: TargetNode;
|
|
3023
|
-
anchor?: Anchor;
|
|
3024
|
-
} | {
|
|
3025
|
-
text: TargetNode;
|
|
3026
|
-
match?: string | RegExp;
|
|
3027
|
-
range?: [number, number];
|
|
3028
|
-
nth?: number;
|
|
3029
|
-
anchor?: Anchor;
|
|
3030
|
-
} | {
|
|
3031
|
-
track: TrackedObjectLike;
|
|
3032
|
-
anchor?: Anchor;
|
|
3033
|
-
} | ((frame: number) => Vec2$1 | Rect);
|
|
3034
|
-
interface TargetContext {
|
|
3035
|
-
measure?: MeasureFn;
|
|
3036
|
-
/** Frame rate signals are sampled at (tracked targets). Default 30. */
|
|
3037
|
-
fps?: number;
|
|
3038
|
-
/** Font defaults for text nodes that don't set them. */
|
|
3039
|
-
textDefaults?: Partial<MeasureOptions>;
|
|
3040
|
-
}
|
|
3041
|
-
type ResolvedTarget = {
|
|
3042
|
-
kind: "static";
|
|
3043
|
-
rects: Rect[];
|
|
3044
|
-
anchor: Anchor;
|
|
3045
|
-
} | {
|
|
3046
|
-
kind: "dynamic";
|
|
3047
|
-
at: (frame: number) => Rect;
|
|
3048
|
-
anchor: Anchor;
|
|
3049
|
-
};
|
|
3050
|
-
/** Resolve a target to rects (static) or a per-frame rect (dynamic). */
|
|
3051
|
-
declare function resolveTarget(target: Target, ctx?: TargetContext): ResolvedTarget;
|
|
3052
|
-
/** A text target's string, measured glyphs and range, and where the node sits. */
|
|
3053
|
-
interface TextLayout {
|
|
3054
|
-
content: string;
|
|
3055
|
-
metrics: ReturnType<MeasureFn>;
|
|
3056
|
-
options: MeasureOptions;
|
|
3057
|
-
range: [number, number];
|
|
3058
|
-
/** The node's x / y: add to measured glyph positions. */
|
|
3059
|
-
x: number;
|
|
3060
|
-
y: number;
|
|
3476
|
+
/** Fonts `framefields add` knows how to install, by role. */
|
|
3477
|
+
type FontRole = "emoji" | "sans" | "mono";
|
|
3478
|
+
interface FontNeed {
|
|
3479
|
+
font: FontRole;
|
|
3480
|
+
/** Why, shown when `add` installs it. */
|
|
3481
|
+
why: string;
|
|
3061
3482
|
}
|
|
3062
|
-
|
|
3063
|
-
declare function textLayout(target: Extract<Target, {
|
|
3064
|
-
text: TargetNode;
|
|
3065
|
-
}>, ctx: TargetContext): TextLayout;
|
|
3066
|
-
/** The union rect of `rects`. */
|
|
3067
|
-
declare function boundsOf(rects: readonly Rect[]): Rect;
|
|
3068
|
-
/** The point of `rect` named by `anchor`. `tip` on text = start of the first line, mid-height. */
|
|
3069
|
-
declare function anchorPoint(rect: Rect, anchor?: Anchor, isText?: boolean): Vec2$1;
|
|
3070
|
-
/** The point a resolved target names at `frame` (static targets ignore frame). */
|
|
3071
|
-
declare function targetPoint(resolved: ResolvedTarget, frame?: number, isText?: boolean): Vec2$1;
|
|
3483
|
+
declare function defineMeta(meta: ComponentMeta): ComponentMeta;
|
|
3072
3484
|
//#endregion
|
|
3073
|
-
//#region src/core/
|
|
3074
|
-
|
|
3075
|
-
|
|
3485
|
+
//#region src/core/surface.d.ts
|
|
3486
|
+
type ElevationLevel = keyof Theme["elevation"];
|
|
3487
|
+
/** Layer styles for `level`: a drop shadow and, when the theme asks, a top-edge highlight. */
|
|
3488
|
+
declare function elevationStyle(theme: Theme, level: ElevationLevel): LayerStyleConfig;
|
|
3489
|
+
/** Put `node` at `level` (or leave it flat for `false`); returns it. */
|
|
3490
|
+
declare function elevate<T extends Animatable<LayoutNode>>(host: Host, node: T, theme: Theme, level: ElevationLevel | false): T;
|
|
3491
|
+
/**
|
|
3492
|
+
* A background for a surface of `color`: a vertical sheen a few percent
|
|
3493
|
+
* lighter at the top on dark themes (light themes stay flat, where a
|
|
3494
|
+
* lighter top reads as a glare). Non-hex / non-rgb colors pass through.
|
|
3495
|
+
*/
|
|
3496
|
+
declare function surfaceFill(color: string, theme: Theme, sheen?: number): string;
|
|
3076
3497
|
//#endregion
|
|
3077
3498
|
//#region src/core/timing.d.ts
|
|
3078
3499
|
/** Seconds → whole frames. */
|
|
@@ -3117,6 +3538,13 @@ declare function chain(durations: readonly number[], start?: number, gap?: numbe
|
|
|
3117
3538
|
declare function typingFrames(text: string, cps: number, fps: number, r: Rng, start?: number): number[];
|
|
3118
3539
|
//#endregion
|
|
3119
3540
|
//#endregion
|
|
3541
|
+
//#region ../components/dist/toolkit.d.mts
|
|
3542
|
+
//#region src/core/schemas.d.ts
|
|
3543
|
+
|
|
3544
|
+
/** Any `Target`: [x, y], a rect, { node }, { text }, { track }, or (frame) => point. */
|
|
3545
|
+
declare function targetSchema(): z.ZodType<Target>;
|
|
3546
|
+
//#endregion
|
|
3547
|
+
//#endregion
|
|
3120
3548
|
//#region ../ai/dist/index.d.mts
|
|
3121
3549
|
//#region src/types.d.ts
|
|
3122
3550
|
/** Model input or output when its shape isn't declared. Pass a type argument to name it. */
|
|
@@ -5962,5 +6390,5 @@ type ComponentNode<C extends Cues = Cues> = AnimatableNode<BoxNode> & ComponentE
|
|
|
5962
6390
|
*/
|
|
5963
6391
|
declare function bindComponent<S$1 extends z.ZodRawShape, C extends Cues, E extends object = object>(definition: ComponentDefinition<S$1, C, E>): (props: z.input<z.ZodObject<S$1>> & BaseProps) => ComponentNode<C> & E;
|
|
5964
6392
|
//#endregion
|
|
5965
|
-
export { InterpolateOptions as $,
|
|
5966
|
-
//# sourceMappingURL=index-
|
|
6393
|
+
export { InterpolateOptions as $, CameraNodeSchema as $a, offsetCues as $i, ComponentMeta as $n, TextAnimator as $o, Track as $r, PoseKeypointName as $t, Physics as A, toSeconds as Aa, drawOnKeys as Ai, QueueStatus as An, MatteModeSchema as Ao, MotionSize as Ar, Plane3DOptions as At, FieldSample2D as B, wordRanges as Ba, frameSpan as Bi, ArcPath as Bn, SceneOptions as Bo, Rng as Br, BodyCommonOptions as Bt, TrackEditing as C, surfaceFill as Ca, constantExpression as Ci, span as Cn, LightNode as Co, MeasureFn as Cr, Cube3DOptions as Ct, section as D, themes as Da, defineMeta as Di, AiConfig as Dn, MaterialType as Do, MotionOptions as Dr, ExtrudedText3DOptions as Dt, editTrackedRegion as E, themeFrames as Ea, defineComponent as Ei, Ai as En, LightTypeSchema as Eo, Metrics$1 as Er, Cylinder3DOptions as Et, PhysicsRope3DOptions as F, windowExpression as Fa, enterAnimation as Fi, targetSchema as Fn, Model3DNode as Fo, PulseOptions as Fr, Sphere3DOptions as Ft, PhysicsSpringOptions as G, BloomConfig as Ga, inkOn as Gi, BakedKey as Gn, SequenceTimelineResult as Go, SyntaxKind as Gr, EmitterShape as Gt, PhysicsGroundOptions as H, AnimatablePropsFor as Ha, hashRng as Hi, ArrowGeometry as Hn, SceneTransitionTypeSchema as Ho, SafeInsets as Hr, PhysicsCollision as Ht, PhysicsSpring3DOptions as I, withAlpha as Ia, evaluateEase as Ii, AnalyzeOptions as In, Model3DNodeSchema as Io, Rect as Ir, Surface3DOptions as It, World2DOptions as J, BoxNodeSchema as Ja, lerp2 as Ji, BuildResult as Jn, ShapeNodeSchema as Jo, TargetNode as Jr, ParticleShape as Jt, PhysicsWallsOptions as K, BloomConfigSchema as Ka, isLight as Ki, BaseProps as Kn, ShapeAnimatableProp as Ko, Target as Kr, ParticleBlend as Kt, PhysicsWorld3D as L, withDefaults as La, evaluateGlyphExpression as Li, Anchor as Ln, Scene as Lo, ResolvedMotion as Lr, Text3DOptions as Lt, FieldSample3D as M, transparent as Ma, elevate as Mi, RunOptions as Mn, MediaNode as Mo, Placement as Mr, Prism3DOptions as Mt, PhysicsBody3D as N, typingFrames as Na, elevationStyle as Ni, ValidationError as Nn, MediaNodeSchema as No, ProjectDefaults as Nr, RoundedBox3DOptions as Nt, StyleName as O, toFrames as Oa, defineTheme as Oi, ApiError as On, MaterialTypeSchema as Oo, MotionPreset as Or, Grid3DOptions as Ot, PhysicsBox3D as P, valueAt as Pa, ellipsePath as Pi, ai as Pn, Model3DAnimatableProp as Po, PropsOf as Pr, Shape3DContainer as Pt, Easing as Q, CameraNode as Qa, mix as Qi, ComponentExtras as Qn, TextAnimatableProp as Qo, ThemeName as Qr, PersonTrack as Qt, World3DOptions as R, within as Ra, exitAnimation as Ri, Animatable as Rn, SceneDefinition as Ro, ResolvedTarget as Rr, Particles as Rt, SubjectSandwichOptions as S, supersede as Sa, chain as Si, size as Sn, LayoutNodeSchema as So, MOTION_PRESETS as Sr, Carousel3DOptions as St, blurRegion as T, textLayout as Ta, cover as Ti, sup as Tn, LightType as To, MediaOptions as Tr, CubeFaceInput as Tt, PhysicsRect as U, AnimationTrack as Ua, hashString as Ui, AudioLevels as Un, Sequence as Uo, Spring as Ur, PhysicsDriver as Ut, PhysicsBody2D as V, AnimatableProp as Va, glyphAnimator as Vi, ArrowCurve as Vn, SceneTransitionType as Vo, SAFE_INSETS as Vr, PhysicsBakeOptions as Vt, PhysicsRopeOptions as W, BlockNode as Wa, holdFirstKeys as Wi, BakeOptions as Wn, SequenceOptions as Wo, StaggerOrder as Wr, PhysicsWorldOptions as Wt, LightingRig as X, CameraDoF as Xa, lineShift as Xi, ComponentDefaults as Xn, SizeSpec as Xo, Theme as Xr, ClipVisionOptions as Xt, Lighting as Y, CameraAnimation as Ya, linePath as Yi, CanvasSize as Yn, SignalTrackOptions as Yo, TextLayout as Yr, ClipVision as Yt, LightingRigOptions as Z, CameraLens as Za, luminance as Zi, ComponentDefinition as Zn, SpringOptions as Zo, ThemeInput as Zr, PersonPlacement as Zt, RenderVideoResult as _, springTrack as _a, bind as _i, italic as _n, FromToOptions as _o, GrainOptions as _r, evaluateAnimationAtFrame as _s, SequenceEntry as _t, AnimatableNode as a, resampleBands as aa, after as ai, ChartPadding as an, ColorStop as ao, Elevation as ar, ToneMapping as as, computeStrokeRect as at, SmartFramingOptions as b, staggerRanks as ba, boxPath as bi, parseMarkup as bn, LayerAnimation as bo, KeyBook as br, lintComposition as bs, TransitionDirection as bt, CompositionOptions as c, rng as ca, arcPath as ci, ChartType as cn, CompositorProgramSchema as co, FontNeed as cr, WiggleOptions as cs, measureSpring as ct, EnvironmentOptions as d, scaleFrames as da, audioLevelsSchema as di, MarkOptions as dn, EnvironmentFog as do, FrameValue as dr, collectNodeOps as ds, preloadCompositionFonts as dt, parseColor as ea, TrackedObjectLike as ei, ChartAnimationOptions as en, CameraShake as eo, Cue as er, TextAnimatorSchema as es, SpringConfig as et, Layer as f, scheduleExpression as fa, bakeFunction as fi, TextSpanItem as fn, EnvironmentFogSchema as fo, FrameWindow as fr, compositorToProgram as fs, preloadFont as ft, RenderVideoOptions as g, springSettleFrames as ga, beats as gi, color as gn, FlexNodeSchema as go, GlyphUnit as gr, computeStaggerDelay as gs, SceneSequenceOptions as gt, NodeCapability as h, springKeys as ha, basePropsSchema as hi, code as hn, FlexNode as ho, GlyphProps as hr, computeLayoutSync as hs, springCalculation as ht, analyzeAudio as i, rendererChars as ia, WordRange as ii, ChartOptions as in, ColorSignalOptions as io, EaseFn as ir, TextSpanSchema as is, bezier as it, Body3DOptions as j, transformPathData as ja, ease$1 as ji, Result as jn, MediaAnimatableProp as jo, ParticleOptions as jr, Primitive3DNodeOptions as jt, Styles as k, toPathData as ka, dist as ki, FRAMEFIELDS_AI_PROXY_URL as kn, MatteMode as ko, MotionPresetName as kr, Layer3D as kt, EditableObjectTrack as l, round as la, arrowPaths as li, ChartX as ln, CompositorToProgramOptions as lo, FontRole as lr, applyStaggerToChildren as ls, measureText as lt, Media as m, springAt as ma, bandEdges as mi, bold as mn, EnvironmentPresetSchema as mo, GlyphBox as mr, computeLayout as ms, spring as mt, bindComponent as n, quantize as na, UnitSchedule as ni, ChartCandle as nn, CarrierHandoffConfigSchema as no, CuesOf as nr, TextNodeSchema as ns, TextMeasureResult as nt, CompatibleEffect as o, resolveMotion as oa, analyzeChannels as oi, ChartSeries as on, ColorStopSchema as oo, ElevationLevel as or, ToneMappingSchema as os, interpolate as ot, Light as p, smoothRelease as pa, bakeSamples as pi, accent as pn, EnvironmentPreset as po, GlyphAnimator as pr, computeCarrierContinuity as ps, requiresIsolation as pt, PhysicsWorld2D as q, BoxNode as qa, last as qi, BuildContext as qn, ShapeNode as qo, TargetContext as qr, ParticleBounds as qt, z$2 as r, rangeRects as ra, Vec2$1 as ri, ChartDatum as rn, CarrierState as ro, CutoutOptions as rr, TextSpanMarkSchema as rs, TextMeasureStyle as rt, Composition as s, resolveTarget as sa, anchorPoint as si, ChartSlice as sn, CompositorProgramConfig as so, ExtrudedTextOptions as sr, TrackSource as ss, mapBlendModeToSkia as st, ComponentNode as t, pulseKeys as ta, UNIT_INDEX as ti, ChartAxisOptions as tn, CarrierHandoffConfig as to, Cues as tr, TextNode as ts, StrokeRect as tt, Effect as u, safeArea as ua, ascending as ui, DEFAULT_CHART_COLORS as un, EaseRef as uo, FrameContextLike as ur, calculateSequenceTimeline as us, measureTextAsync as ut, SectionNode as v, squigglePath as va, boilKeys as vi, mark as vn, Keyframe as vo, HandOptions as vr, evaluateTrackAtFrame as vs, SequenceNode as vt, TrackedRegionOptions as w, targetPoint as wa, contrastRatio as wi, sub as wn, LightNodeSchema as wo, MeasureOptions as wr, CubeFaceConfig as wt, SubjectOutlineOptions as x, stepExpression as xa, catmullRom as xi, rich as xn, LayoutNode as xo, LayerStyleConfig as xr, mergeAnimationTracks as xs, TransitionSpec as xt, SectionOptions as y, staggerOffsets as ya, boundsOf as yi, normalizeTextSpans as yn, KeyframeTuple as yo, Host as yr, hoistMattes as ys, Transition as yt, Body2DOptions as z, wobblePoints as za, findRange as zi, AnimatableMethods as zn, SceneDefinitionSchema as zo, Rgba as zr, ParticlesOptions as zt };
|
|
6394
|
+
//# sourceMappingURL=index-CWG19cm-.d.mts.map
|