framefields 2.0.11 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -5
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +13 -12
- package/dist/{audio-BHanw8Jb.d.mts → audio-C2fLC3Tx.d.mts} +3 -3
- package/dist/{audio-BHanw8Jb.d.mts.map → audio-C2fLC3Tx.d.mts.map} +1 -1
- package/dist/{audio-TAvPwzLR.mjs → audio-DJeVoE8b.mjs} +1 -1
- package/dist/{audio-TAvPwzLR.mjs.map → audio-DJeVoE8b.mjs.map} +1 -1
- package/dist/{audio-COOMNwL5.mjs → audio-D_4SeMRK.mjs} +4 -4
- package/dist/{audio-COOMNwL5.mjs.map → audio-D_4SeMRK.mjs.map} +1 -1
- package/dist/{client-CwRhflHE.mjs → client-dVxUnmHz.mjs} +1 -1
- package/dist/{client-CwRhflHE.mjs.map → client-dVxUnmHz.mjs.map} +1 -1
- package/dist/{dist-C_hjvkdN.mjs → dist-0QGroRYZ.mjs} +1 -1
- package/dist/{dist-C_hjvkdN.mjs.map → dist-0QGroRYZ.mjs.map} +1 -1
- package/dist/{dist-BYqNNwsl.mjs → dist-BY0bIWgr.mjs} +10 -2
- package/dist/dist-BY0bIWgr.mjs.map +1 -0
- package/dist/{dist-Cxi68OuY.mjs → dist-Bun_TUvZ.mjs} +26862 -25638
- package/dist/dist-Bun_TUvZ.mjs.map +1 -0
- package/dist/{dist-BAVZdFEJ.mjs → dist-DlzqyRar.mjs} +75 -618
- package/dist/dist-DlzqyRar.mjs.map +1 -0
- package/dist/{dist-cjs-TsA8LFXC.mjs → dist-cjs-91nR6B7Z.mjs} +3 -3
- package/dist/{dist-cjs-TsA8LFXC.mjs.map → dist-cjs-91nR6B7Z.mjs.map} +1 -1
- package/dist/{dist-cjs-DJ8fcQEe.mjs → dist-cjs-BAIenEMC.mjs} +11 -11
- package/dist/{dist-cjs-DJ8fcQEe.mjs.map → dist-cjs-BAIenEMC.mjs.map} +1 -1
- package/dist/{dist-cjs-BmyyWYWv.mjs → dist-cjs-BEQhh76X.mjs} +2 -2
- package/dist/{dist-cjs-BmyyWYWv.mjs.map → dist-cjs-BEQhh76X.mjs.map} +1 -1
- package/dist/{dist-cjs--pxyGFw2.mjs → dist-cjs-BYPq7pfw.mjs} +1 -1
- package/dist/{dist-cjs--pxyGFw2.mjs.map → dist-cjs-BYPq7pfw.mjs.map} +1 -1
- package/dist/{dist-cjs--lfMLs3U.mjs → dist-cjs-BocDqSCX.mjs} +4 -4
- package/dist/{dist-cjs--lfMLs3U.mjs.map → dist-cjs-BocDqSCX.mjs.map} +1 -1
- package/dist/{dist-cjs-CsU2sZoX.mjs → dist-cjs-CWiNggTl.mjs} +4 -4
- package/dist/{dist-cjs-CsU2sZoX.mjs.map → dist-cjs-CWiNggTl.mjs.map} +1 -1
- package/dist/{dist-cjs-DjzmP0-x.mjs → dist-cjs-CwabutT6.mjs} +13 -13
- package/dist/{dist-cjs-DjzmP0-x.mjs.map → dist-cjs-CwabutT6.mjs.map} +1 -1
- package/dist/{dist-cjs-BDpO-TH_.mjs → dist-cjs-D-EE4Ahy.mjs} +1 -1
- package/dist/{dist-cjs-BDpO-TH_.mjs.map → dist-cjs-D-EE4Ahy.mjs.map} +1 -1
- package/dist/{dist-cjs-CQwmMllY.mjs → dist-cjs-DNtDUWfk.mjs} +6 -6
- package/dist/{dist-cjs-CQwmMllY.mjs.map → dist-cjs-DNtDUWfk.mjs.map} +1 -1
- package/dist/{dist-cjs-CND_ghfH.mjs → dist-cjs-DbZhsgS0.mjs} +1 -1
- package/dist/{dist-cjs-CND_ghfH.mjs.map → dist-cjs-DbZhsgS0.mjs.map} +1 -1
- package/dist/{dist-cjs-CgFzrgj8.mjs → dist-cjs-Dh7REKcN.mjs} +1 -1
- package/dist/{dist-cjs-CgFzrgj8.mjs.map → dist-cjs-Dh7REKcN.mjs.map} +1 -1
- package/dist/{dist-cjs-DT2jJlcK.mjs → dist-cjs-Dobx0Nz-.mjs} +5 -5
- package/dist/{dist-cjs-DT2jJlcK.mjs.map → dist-cjs-Dobx0Nz-.mjs.map} +1 -1
- package/dist/{dist-cjs-DzjrlfbE.mjs → dist-cjs-Du0UpNof.mjs} +14 -14
- package/dist/{dist-cjs-DzjrlfbE.mjs.map → dist-cjs-Du0UpNof.mjs.map} +1 -1
- package/dist/dist-cjs-DyHiUfsr.mjs +6 -0
- package/dist/{dist-cjs-M-8QOgS_.mjs → dist-cjs-HHMfMF5a.mjs} +2 -2
- package/dist/{dist-cjs-M-8QOgS_.mjs.map → dist-cjs-HHMfMF5a.mjs.map} +1 -1
- package/dist/{dist-cjs-BiKQozdJ.mjs → dist-cjs-UJYQzLNT.mjs} +3 -3
- package/dist/{dist-cjs-BiKQozdJ.mjs.map → dist-cjs-UJYQzLNT.mjs.map} +1 -1
- package/dist/{dist-cjs-agQl9T8M.mjs → dist-cjs-UKxm5cFR.mjs} +6 -6
- package/dist/{dist-cjs-agQl9T8M.mjs.map → dist-cjs-UKxm5cFR.mjs.map} +1 -1
- package/dist/{dist-CbG3QxDw.mjs → dist-fjKpBYkc.mjs} +12 -27
- package/dist/dist-fjKpBYkc.mjs.map +1 -0
- package/dist/effects/index.d.mts +4 -4
- package/dist/effects/index.mjs +36 -34
- package/dist/{effects-DzbjFhyA.mjs → effects-FTlu0dri.mjs} +3 -3
- package/dist/{effects-DzbjFhyA.mjs.map → effects-FTlu0dri.mjs.map} +1 -1
- package/dist/{event-streams-BaNGaLxh.mjs → event-streams-DnRe8uwT.mjs} +2 -2
- package/dist/{event-streams-BaNGaLxh.mjs.map → event-streams-DnRe8uwT.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +3 -1
- package/dist/{fonts-C0W6TgJk.mjs → fonts-UM5xaBOx.mjs} +24 -11
- package/dist/fonts-UM5xaBOx.mjs.map +1 -0
- package/dist/gpu-RkpiFGOA.mjs +215 -0
- package/dist/gpu-RkpiFGOA.mjs.map +1 -0
- package/dist/{index-CYGpSVsf.d.mts → index-CHQ39_Oe.d.mts} +2 -2
- package/dist/{index-CYGpSVsf.d.mts.map → index-CHQ39_Oe.d.mts.map} +1 -1
- package/dist/{index-CDoTrMs1.d.mts → index-CzQseCtg.d.mts} +8 -8
- package/dist/{index-CDoTrMs1.d.mts.map → index-CzQseCtg.d.mts.map} +1 -1
- package/dist/{index-DDEPvMww.d.mts → index-D67p-rHX.d.mts} +3452 -1675
- package/dist/index-D67p-rHX.d.mts.map +1 -0
- package/dist/{index-9B8CJowc.d.mts → index-DPicEt8H.d.mts} +10 -2
- package/dist/index-DPicEt8H.d.mts.map +1 -0
- package/dist/{index-DGJp1d30.d.mts → index-Db8Z3AtX.d.mts} +3 -3
- package/dist/{index-DGJp1d30.d.mts.map → index-Db8Z3AtX.d.mts.map} +1 -1
- package/dist/{index-DRZu3ezy.d.mts → index-DsOqONsj.d.mts} +3 -3
- package/dist/{index-DRZu3ezy.d.mts.map → index-DsOqONsj.d.mts.map} +1 -1
- package/dist/{index-DnWsbbuZ.d.mts → index-l03NV8JS.d.mts} +7 -2
- package/dist/index-l03NV8JS.d.mts.map +1 -0
- package/dist/index.d.mts +28 -1841
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +79 -65
- package/dist/index.mjs.map +1 -1
- package/dist/{package-XpCRbTOA.mjs → package-CudzAF-n.mjs} +1 -1
- package/dist/{package-XpCRbTOA.mjs.map → package-CudzAF-n.mjs.map} +1 -1
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +13 -12
- package/dist/{preview-BV2C4Fk6.mjs → preview-DwClLMlU.mjs} +3 -3
- package/dist/{preview-BV2C4Fk6.mjs.map → preview-DwClLMlU.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-Y6HWYPKX.mjs → chunk-3GNP7TJH.mjs} +3 -3
- package/dist/preview-engine/{chunk-LIHUEYI5.mjs → chunk-44CQSOYE.mjs} +2 -2
- package/dist/preview-engine/{chunk-6JW37VJA.mjs → chunk-5AUB4Y3L.mjs} +3 -23
- package/dist/preview-engine/chunk-5DOD2NVY.mjs +26 -0
- package/dist/preview-engine/chunk-5FC7GOWW.mjs +474 -0
- package/dist/preview-engine/chunk-5W4AFQP7.mjs +97 -0
- package/dist/preview-engine/chunk-63SFBHEH.mjs +1 -0
- package/dist/preview-engine/chunk-7EPIRODI.mjs +91 -0
- package/dist/preview-engine/{chunk-PQD5UPHG.mjs → chunk-7G3XIOP7.mjs} +1 -1
- package/dist/preview-engine/chunk-7J2FWGVD.mjs +1 -0
- package/dist/preview-engine/chunk-AXHB4J37.mjs +147 -0
- package/dist/preview-engine/chunk-AY7UX37L.mjs +450 -0
- package/dist/preview-engine/chunk-B43Z3J7J.mjs +5 -0
- package/dist/preview-engine/chunk-BWJS6G7R.mjs +314 -0
- package/dist/preview-engine/{chunk-24DXIKXL.mjs → chunk-DIGIQ5MJ.mjs} +2 -2
- package/dist/preview-engine/{chunk-AEK5BO3J.mjs → chunk-E4RAFHZM.mjs} +1 -1
- package/dist/preview-engine/chunk-ENKKLU7B.mjs +22 -0
- package/dist/preview-engine/{chunk-XLFYM7KH.mjs → chunk-EVXWDOCL.mjs} +2 -2
- package/dist/preview-engine/{chunk-EQ4QZRXB.mjs → chunk-EYWPOCZW.mjs} +2 -2
- package/dist/preview-engine/{chunk-IYVN2QEL.mjs → chunk-FLPSWDX4.mjs} +1 -1
- package/dist/preview-engine/chunk-FU7AIAMM.mjs +88 -0
- package/dist/preview-engine/{chunk-CBM7B7EW.mjs → chunk-GMGGDADT.mjs} +1 -1
- package/dist/preview-engine/chunk-GSFN4WCH.mjs +62 -0
- package/dist/preview-engine/chunk-HE4R7EZM.mjs +121 -0
- package/dist/preview-engine/chunk-IQC2I5A5.mjs +1 -0
- package/dist/preview-engine/{chunk-RJUAM52F.mjs → chunk-IR5DNNWR.mjs} +3 -23
- package/dist/preview-engine/chunk-IUPDOATX.mjs +114 -0
- package/dist/preview-engine/{chunk-GHMCGTJ2.mjs → chunk-J2R5R7YY.mjs} +3 -23
- package/dist/preview-engine/chunk-JAJOZG5P.mjs +1 -0
- package/dist/preview-engine/chunk-JXNG2ACR.mjs +118 -0
- package/dist/preview-engine/{chunk-V6VU46ZG.mjs → chunk-L6BH5J4P.mjs} +1 -1
- package/dist/preview-engine/chunk-LGVEFPOG.mjs +3 -0
- package/dist/preview-engine/{chunk-MDDF2GCF.mjs → chunk-MLY5M7Y5.mjs} +3 -23
- package/dist/preview-engine/chunk-NPD6W3RP.mjs +1 -0
- package/dist/preview-engine/chunk-OCX5AD23.mjs +1 -0
- package/dist/preview-engine/{chunk-D3TETPLI.mjs → chunk-OG62XGCT.mjs} +1 -1
- package/dist/preview-engine/chunk-OJ2PKBXE.mjs +40 -0
- package/dist/preview-engine/chunk-OKH2VU2U.mjs +97 -0
- package/dist/preview-engine/chunk-PAQNDZQB.mjs +83 -0
- package/dist/preview-engine/chunk-PEWYB6WP.mjs +43 -0
- package/dist/preview-engine/chunk-PL4IH5V4.mjs +89 -0
- package/dist/preview-engine/chunk-PSRQA3QW.mjs +84 -0
- package/dist/preview-engine/{chunk-QYRDQMNB.mjs → chunk-PXT52LEH.mjs} +3 -23
- package/dist/preview-engine/chunk-Q22PJXFJ.mjs +69 -0
- package/dist/preview-engine/chunk-Q4Z54DQ7.mjs +1 -0
- package/dist/preview-engine/{chunk-BHFI3Y4T.mjs → chunk-QBEUICZD.mjs} +1 -1
- package/dist/preview-engine/chunk-RQLMW6MA.mjs +4 -0
- package/dist/preview-engine/chunk-RSMO7NPN.mjs +1 -0
- package/dist/preview-engine/chunk-RW2F3XLQ.mjs +90 -0
- package/dist/preview-engine/{chunk-25IW7NYO.mjs → chunk-S2CTIJSI.mjs} +1 -1
- package/dist/preview-engine/chunk-SGPRLTNF.mjs +52 -0
- package/dist/preview-engine/{chunk-Y6FEU4TV.mjs → chunk-SZW5J72T.mjs} +3 -23
- package/dist/preview-engine/{chunk-ECPP3UG6.mjs → chunk-T2FE5VOW.mjs} +3 -23
- package/dist/preview-engine/{chunk-ZSIJB76A.mjs → chunk-TS3JI3BH.mjs} +2 -2
- package/dist/preview-engine/{chunk-AMBSW6OA.mjs → chunk-U4JIFQRR.mjs} +2 -2
- package/dist/preview-engine/{chunk-BJKH76OM.mjs → chunk-VXS5SIEC.mjs} +3 -23
- package/dist/preview-engine/chunk-WFGJXCZT.mjs +53 -0
- package/dist/preview-engine/chunk-WH5Q2NFN.mjs +32 -0
- package/dist/preview-engine/{chunk-AWTH2WZO.mjs → chunk-WUKH7BD7.mjs} +1 -1
- package/dist/preview-engine/chunk-XC5WZNOY.mjs +1448 -0
- package/dist/preview-engine/chunk-YQZOGEPZ.mjs +186 -0
- package/dist/preview-engine/{chunk-6256GQFP.mjs → chunk-ZDQF3OTC.mjs} +1 -1
- package/dist/preview-engine/chunk-ZIIFTWDH.mjs +58 -0
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +127 -130
- package/dist/preview-engine/player.mjs +6 -6
- package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -0
- package/dist/preview-engine/renderers-2ILG23ED.mjs +1 -0
- package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -0
- package/dist/preview-engine/renderers-2SVWAB42.mjs +1 -0
- package/dist/preview-engine/renderers-2VN3AH45.mjs +104 -0
- package/dist/preview-engine/renderers-3RC5FDWX.mjs +1 -0
- package/dist/preview-engine/renderers-57WDL6XN.mjs +1 -0
- package/dist/preview-engine/{renderers-CAUWP4XH.mjs → renderers-6OGFUSH6.mjs} +3 -23
- package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -0
- package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -0
- package/dist/preview-engine/renderers-A6HM64UZ.mjs +1 -0
- package/dist/preview-engine/{renderers-WLH4HRUE.mjs → renderers-A7VH3ON5.mjs} +1 -1
- package/dist/preview-engine/renderers-B7DSGUMI.mjs +1 -0
- package/dist/preview-engine/renderers-BFNJ7VCI.mjs +1 -0
- package/dist/preview-engine/renderers-BSKZXITT.mjs +35 -0
- package/dist/preview-engine/renderers-CGYIDAVV.mjs +1 -0
- package/dist/preview-engine/renderers-CRRLV7IO.mjs +1 -0
- package/dist/preview-engine/{renderers-JQHUBWLL.mjs → renderers-D6T6IPER.mjs} +3 -23
- package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -0
- package/dist/preview-engine/renderers-ECA3P4ON.mjs +1 -0
- package/dist/preview-engine/{renderers-W5CVDJVH.mjs → renderers-F55XFVMP.mjs} +1 -1
- package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -0
- package/dist/preview-engine/renderers-H46TS3IG.mjs +228 -0
- package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -0
- package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -0
- package/dist/preview-engine/renderers-JHFT27YU.mjs +1 -0
- package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -0
- package/dist/preview-engine/renderers-MON4QFRF.mjs +1 -0
- package/dist/preview-engine/renderers-NQXMYNSY.mjs +1 -0
- package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -0
- package/dist/preview-engine/renderers-ORAIXUL3.mjs +1 -0
- package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -0
- package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -0
- package/dist/preview-engine/renderers-QVZVEYP5.mjs +1 -0
- package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -0
- package/dist/preview-engine/renderers-RKDPX5JU.mjs +1 -0
- package/dist/preview-engine/{renderers-2US2NIUG.mjs → renderers-RLHTNLRE.mjs} +3 -23
- package/dist/preview-engine/renderers-SBFF7JP5.mjs +1 -0
- package/dist/preview-engine/renderers-SCJ6OKTB.mjs +1 -0
- package/dist/preview-engine/renderers-T4JMJXWL.mjs +1 -0
- package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -0
- package/dist/preview-engine/renderers-U6KY34TP.mjs +100 -0
- package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -0
- package/dist/preview-engine/renderers-UNK6I4JJ.mjs +1 -0
- package/dist/preview-engine/renderers-UPTJJE5F.mjs +1 -0
- package/dist/preview-engine/renderers-W773SBPV.mjs +1 -0
- package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -0
- package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -0
- package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -0
- package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -0
- package/dist/preview-engine/renderers-ZHTX73PR.mjs +1 -0
- package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -0
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +1 -0
- package/dist/{program-BmNKgzja.mjs → program-BqFVw5Mu.mjs} +93 -2335
- package/dist/program-BqFVw5Mu.mjs.map +1 -0
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +3 -3
- package/dist/{renderer-CnXW28b9.mjs → renderer-2Nf9ypST.mjs} +85 -279
- package/dist/renderer-2Nf9ypST.mjs.map +1 -0
- package/dist/{renderer-BREIjsUU.mjs → renderer-2uN2cd0y.mjs} +14 -40
- package/dist/renderer-2uN2cd0y.mjs.map +1 -0
- package/dist/renderer-31jAuNzF.mjs +5 -0
- package/dist/renderer-36EI7Rsz.mjs +5 -0
- package/dist/renderer-3io-cjTt.mjs +5 -0
- package/dist/renderer-9_zWTHbg.mjs +5 -0
- package/dist/{renderer-WSGuj_V6.mjs → renderer-B12_76qk.mjs} +4 -3
- package/dist/{renderer-WSGuj_V6.mjs.map → renderer-B12_76qk.mjs.map} +1 -1
- package/dist/{renderer-bsWnRNpJ.mjs → renderer-B4oS8ZFO.mjs} +29 -98
- package/dist/renderer-B4oS8ZFO.mjs.map +1 -0
- package/dist/renderer-B6KnbfdA.mjs +5 -0
- package/dist/renderer-B7Y2bmRc.mjs +5 -0
- package/dist/renderer-BA6miaaI.mjs +5 -0
- package/dist/{renderer-Bv6q84TU.mjs → renderer-BGr_cBKV.mjs} +61 -208
- package/dist/renderer-BGr_cBKV.mjs.map +1 -0
- package/dist/renderer-BHi-Q6Z_.mjs +5 -0
- package/dist/{renderer-Bv21DbWy.mjs → renderer-BLcu9RDt.mjs} +3 -1
- package/dist/{renderer-D2XD4QYk.mjs → renderer-BO2lYmtE.mjs} +34 -147
- package/dist/renderer-BO2lYmtE.mjs.map +1 -0
- package/dist/renderer-BOlN9HeG.mjs +5 -0
- package/dist/renderer-BSitV56h.mjs +268 -0
- package/dist/renderer-BSitV56h.mjs.map +1 -0
- package/dist/renderer-BTOW-ceB.mjs +5 -0
- package/dist/{renderer-Bhdf90Zq.mjs → renderer-BYqfkwLf.mjs} +51 -163
- package/dist/renderer-BYqfkwLf.mjs.map +1 -0
- package/dist/{renderer-bZU_ndxf.mjs → renderer-BajIOuZH.mjs} +2 -2
- package/dist/{renderer-bZU_ndxf.mjs.map → renderer-BajIOuZH.mjs.map} +1 -1
- package/dist/{renderer-DirxsOjq.mjs → renderer-BgnJUx24.mjs} +80 -258
- package/dist/renderer-BgnJUx24.mjs.map +1 -0
- package/dist/renderer-BiQ0PYOp.mjs +5 -0
- package/dist/{renderer-DIgsilTw.mjs → renderer-BjTq3a0L.mjs} +5 -4
- package/dist/{renderer-DIgsilTw.mjs.map → renderer-BjTq3a0L.mjs.map} +1 -1
- package/dist/{renderer-DEJwPRkR.mjs → renderer-BkN20ZKO.mjs} +15 -51
- package/dist/renderer-BkN20ZKO.mjs.map +1 -0
- package/dist/renderer-Bla7GDyV.mjs +5 -0
- package/dist/renderer-BoYyLVKy.mjs +5 -0
- package/dist/{renderer-D7zvPHKn.mjs → renderer-BpZaHFRc.mjs} +18 -28
- package/dist/renderer-BpZaHFRc.mjs.map +1 -0
- package/dist/renderer-BqOgb7bM.mjs +5 -0
- package/dist/{renderer-cgxO2xN6.mjs → renderer-Bq_dO0LG.mjs} +10 -17
- package/dist/renderer-Bq_dO0LG.mjs.map +1 -0
- package/dist/renderer-BqeM8yTJ.mjs +5 -0
- package/dist/{renderer-dncoIVdd.mjs → renderer-BqsV75Ml.mjs} +3 -1
- package/dist/{renderer-ChdLYS-G.mjs → renderer-Bs4tz_pw.mjs} +20 -87
- package/dist/renderer-Bs4tz_pw.mjs.map +1 -0
- package/dist/{renderer-DpGc-N3G.mjs → renderer-Bsaokil3.mjs} +24 -104
- package/dist/renderer-Bsaokil3.mjs.map +1 -0
- package/dist/{renderer-CXn5HAnK.mjs → renderer-BvG1GF1c.mjs} +10 -16
- package/dist/renderer-BvG1GF1c.mjs.map +1 -0
- package/dist/{renderer-CI7sG_cv.mjs → renderer-BvpSIFkw.mjs} +83 -266
- package/dist/renderer-BvpSIFkw.mjs.map +1 -0
- package/dist/{renderer-B8UaFNqb.mjs → renderer-BwAqwTQq.mjs} +62 -209
- package/dist/renderer-BwAqwTQq.mjs.map +1 -0
- package/dist/{renderer-CzPWB0Ss.mjs → renderer-BwVfhrEx.mjs} +13 -45
- package/dist/renderer-BwVfhrEx.mjs.map +1 -0
- package/dist/renderer-BzpRe50i.mjs +5 -0
- package/dist/renderer-C0eAPwpr.mjs +5 -0
- package/dist/{renderer-CtyD_Xju.mjs → renderer-C3RfT8Gv.mjs} +59 -194
- package/dist/renderer-C3RfT8Gv.mjs.map +1 -0
- package/dist/{renderer-B1YMwl2B.mjs → renderer-C3cYDT3m.mjs} +3 -1
- package/dist/{renderer-1VuQTY1Z.mjs → renderer-CEGbqT2m.mjs} +236 -96
- package/dist/renderer-CEGbqT2m.mjs.map +1 -0
- package/dist/{renderer-DxTs4Iyi.mjs → renderer-CGldH-Zx.mjs} +40 -142
- package/dist/renderer-CGldH-Zx.mjs.map +1 -0
- package/dist/renderer-CGn8V63v.mjs +5 -0
- package/dist/{renderer-kwmlLQOO.mjs → renderer-CH9Qtpy7.mjs} +4 -4
- package/dist/{renderer-kwmlLQOO.mjs.map → renderer-CH9Qtpy7.mjs.map} +1 -1
- package/dist/{renderer-ho_jXJ0H.mjs → renderer-CLyuu_19.mjs} +23 -117
- package/dist/renderer-CLyuu_19.mjs.map +1 -0
- package/dist/renderer-CM5Syo9r.mjs +5 -0
- package/dist/{renderer-D2nCGcjv.mjs → renderer-CRIM_XRK.mjs} +3 -3
- package/dist/{renderer-D2nCGcjv.mjs.map → renderer-CRIM_XRK.mjs.map} +1 -1
- package/dist/{renderer-BTdOMMEx.d.mts → renderer-CTGe8SqQ.d.mts} +2 -2
- package/dist/{renderer-BTdOMMEx.d.mts.map → renderer-CTGe8SqQ.d.mts.map} +1 -1
- package/dist/renderer-CWCEW6Wv.mjs +5 -0
- package/dist/{renderer-Dy0utCl7.mjs → renderer-CgyOylPO.mjs} +10 -17
- package/dist/renderer-CgyOylPO.mjs.map +1 -0
- package/dist/{renderer-C_TPMHiH.mjs → renderer-CjT5Zy-J.mjs} +81 -221
- package/dist/renderer-CjT5Zy-J.mjs.map +1 -0
- package/dist/{renderer-_uvdg48N.mjs → renderer-Cjq1s3br.mjs} +24 -93
- package/dist/renderer-Cjq1s3br.mjs.map +1 -0
- package/dist/renderer-Cl70zxkP.mjs +5 -0
- package/dist/renderer-ClJjoVpB.mjs +6 -0
- package/dist/{renderer-BSaYG8aw.mjs → renderer-CpKNqciR.mjs} +3 -1
- package/dist/{renderer-Bfgd4N0O.mjs → renderer-Cwhux4VX.mjs} +9 -16
- package/dist/renderer-Cwhux4VX.mjs.map +1 -0
- package/dist/{renderer-BJ1aTkZf.mjs → renderer-D0nWLogn.mjs} +99 -282
- package/dist/renderer-D0nWLogn.mjs.map +1 -0
- package/dist/{renderer-vqkKWqa5.mjs → renderer-D1lynYuy.mjs} +23 -107
- package/dist/renderer-D1lynYuy.mjs.map +1 -0
- package/dist/{renderer-B8-kzZdP.mjs → renderer-D4sYVV-I.mjs} +41 -140
- package/dist/renderer-D4sYVV-I.mjs.map +1 -0
- package/dist/{renderer-Bc04fivZ.mjs → renderer-D5z3WDkm.mjs} +99 -287
- package/dist/renderer-D5z3WDkm.mjs.map +1 -0
- package/dist/renderer-D8C-pamu.mjs +148 -0
- package/dist/renderer-D8C-pamu.mjs.map +1 -0
- package/dist/{renderer-D_1oDOCP.mjs → renderer-DAtBnNGC.mjs} +14 -69
- package/dist/renderer-DAtBnNGC.mjs.map +1 -0
- package/dist/{renderer-DZGtBUCx.mjs → renderer-DG1NFsSV.mjs} +35 -185
- package/dist/renderer-DG1NFsSV.mjs.map +1 -0
- package/dist/{renderer-BM05sB8m.mjs → renderer-DHAErBtJ.mjs} +11 -74
- package/dist/renderer-DHAErBtJ.mjs.map +1 -0
- package/dist/{renderer-RKsXlF_0.mjs → renderer-DIDSmoFA.mjs} +73 -73
- package/dist/{renderer-RKsXlF_0.mjs.map → renderer-DIDSmoFA.mjs.map} +1 -1
- package/dist/{renderer-BDbTWSpP.mjs → renderer-DKtP7-fr.mjs} +58 -234
- package/dist/renderer-DKtP7-fr.mjs.map +1 -0
- package/dist/renderer-DLnF-V_h.mjs +5 -0
- package/dist/renderer-DN1rjmcL.mjs +5 -0
- package/dist/{renderer-CfC_aiew.mjs → renderer-DOEsFT7Q.mjs} +57 -192
- package/dist/renderer-DOEsFT7Q.mjs.map +1 -0
- package/dist/{renderer-Ctk2zzfy.mjs → renderer-DPYB6ZcB.mjs} +57 -197
- package/dist/renderer-DPYB6ZcB.mjs.map +1 -0
- package/dist/{renderer-CWTpc4ff.mjs → renderer-DRsPCkxr.mjs} +76 -210
- package/dist/renderer-DRsPCkxr.mjs.map +1 -0
- package/dist/renderer-DXTw9Oqb.mjs +5 -0
- package/dist/{renderer-CaaOKMSd.mjs → renderer-DZLJnnU2.mjs} +63 -190
- package/dist/renderer-DZLJnnU2.mjs.map +1 -0
- package/dist/{renderer-B2ieylQ3.mjs → renderer-DZrQffIP.mjs} +56 -167
- package/dist/renderer-DZrQffIP.mjs.map +1 -0
- package/dist/renderer-DbAVSBNI.mjs +5 -0
- package/dist/renderer-Dg8rD--8.mjs +5 -0
- package/dist/{renderer-DML9qpmS.mjs → renderer-DhEyjn6Q.mjs} +52 -202
- package/dist/renderer-DhEyjn6Q.mjs.map +1 -0
- package/dist/{renderer-CdciwwMI.mjs → renderer-Dmv_Aj6x.mjs} +161 -457
- package/dist/renderer-Dmv_Aj6x.mjs.map +1 -0
- package/dist/renderer-DnFxegGu.mjs +5 -0
- package/dist/renderer-DnfmelHn.mjs +5 -0
- package/dist/{renderer-BIIWCg_J.mjs → renderer-Dpj68gTn.mjs} +11 -18
- package/dist/renderer-Dpj68gTn.mjs.map +1 -0
- package/dist/renderer-DuOjzggd.mjs +5 -0
- package/dist/renderer-DuuOlYIG.mjs +3 -0
- package/dist/renderer-DvYql0Cl.mjs +5 -0
- package/dist/{renderer-BfAWZziM.mjs → renderer-DzhRNdBS.mjs} +58 -225
- package/dist/renderer-DzhRNdBS.mjs.map +1 -0
- package/dist/renderer-GSFP7v2z.mjs +3 -0
- package/dist/renderer-LfUdjgjF.mjs +5 -0
- package/dist/{renderer-Djlb4TLO.mjs → renderer-Q63y7HP_.mjs} +8 -15
- package/dist/renderer-Q63y7HP_.mjs.map +1 -0
- package/dist/renderer-SecCv3U8.mjs +5 -0
- package/dist/{renderer-BhZZEyFX.mjs → renderer-mp1NN5zk.mjs} +4 -4
- package/dist/{renderer-BhZZEyFX.mjs.map → renderer-mp1NN5zk.mjs.map} +1 -1
- package/dist/renderer-oZyoB4CT.mjs +5 -0
- package/dist/renderer-rzci_kTy.mjs +5 -0
- package/dist/{renderer-CpkiHRhh.mjs → renderer-to9DwqXK.mjs} +17 -99
- package/dist/renderer-to9DwqXK.mjs.map +1 -0
- package/dist/{renderer-CepMDQ06.mjs → renderer-v0vuUUUI.mjs} +19 -106
- package/dist/renderer-v0vuUUUI.mjs.map +1 -0
- package/dist/renderer-vLaZuZbX.mjs +5 -0
- package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs → renderers-CP8CFWDs-DlFq8jmz.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs.map → renderers-CP8CFWDs-DlFq8jmz.mjs.map} +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +7 -7
- package/dist/{signals-Bv1OweKd.mjs → signals-BDkO0xcZ.mjs} +3 -3
- package/dist/{signals-Bv1OweKd.mjs.map → signals-BDkO0xcZ.mjs.map} +1 -1
- package/dist/{signin-Db08vl-g.mjs → signin-SVSXQw9i.mjs} +9 -9
- package/dist/{signin-Db08vl-g.mjs.map → signin-SVSXQw9i.mjs.map} +1 -1
- package/dist/{sso-oidc-CpLz_lIu.mjs → sso-oidc-B3Sagl43.mjs} +9 -9
- package/dist/{sso-oidc-CpLz_lIu.mjs.map → sso-oidc-B3Sagl43.mjs.map} +1 -1
- package/dist/{sts-BQefGuml.mjs → sts-CYeWec9i.mjs} +2 -2
- package/dist/{sts-Dgl0kH-t.mjs → sts-ClVtt-bV.mjs} +9 -9
- package/dist/{sts-Dgl0kH-t.mjs.map → sts-ClVtt-bV.mjs.map} +1 -1
- package/package.json +55 -55
- package/dist/dist-BAVZdFEJ.mjs.map +0 -1
- package/dist/dist-BYqNNwsl.mjs.map +0 -1
- package/dist/dist-CbG3QxDw.mjs.map +0 -1
- package/dist/dist-Cxi68OuY.mjs.map +0 -1
- package/dist/dist-cjs-3pon9kTt.mjs +0 -6
- package/dist/fonts-C0W6TgJk.mjs.map +0 -1
- package/dist/index-9B8CJowc.d.mts.map +0 -1
- package/dist/index-DDEPvMww.d.mts.map +0 -1
- package/dist/index-DnWsbbuZ.d.mts.map +0 -1
- package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
- package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
- package/dist/preview-engine/chunk-AUFSM5KI.mjs +0 -141
- package/dist/preview-engine/chunk-BQ65MU6H.mjs +0 -138
- package/dist/preview-engine/chunk-BWDARDO6.mjs +0 -117
- package/dist/preview-engine/chunk-DLXQDDIN.mjs +0 -46
- package/dist/preview-engine/chunk-EJGLUZMW.mjs +0 -1
- package/dist/preview-engine/chunk-FE6RSVKZ.mjs +0 -73
- package/dist/preview-engine/chunk-FGHOHCFG.mjs +0 -110
- package/dist/preview-engine/chunk-HPIULG7P.mjs +0 -111
- package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
- package/dist/preview-engine/chunk-IMV5SBQV.mjs +0 -1
- package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
- package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
- package/dist/preview-engine/chunk-L3IEJZ5S.mjs +0 -474
- package/dist/preview-engine/chunk-M7NMFDJ3.mjs +0 -3
- package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
- package/dist/preview-engine/chunk-NFAGEP43.mjs +0 -1448
- package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
- package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
- package/dist/preview-engine/chunk-Q66QQI6N.mjs +0 -8
- package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
- package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
- package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
- package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
- package/dist/preview-engine/chunk-S4CSX6K5.mjs +0 -610
- package/dist/preview-engine/chunk-SNYAHQ25.mjs +0 -186
- package/dist/preview-engine/chunk-SRT2OCQW.mjs +0 -1
- package/dist/preview-engine/chunk-SUUUYXXT.mjs +0 -1
- package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
- package/dist/preview-engine/chunk-XFYXT76H.mjs +0 -52
- package/dist/preview-engine/chunk-XUM42I4R.mjs +0 -1
- package/dist/preview-engine/chunk-YITWSOG4.mjs +0 -103
- package/dist/preview-engine/chunk-ZDCA6NVT.mjs +0 -82
- package/dist/preview-engine/chunk-ZNGOAGAI.mjs +0 -1
- package/dist/preview-engine/renderers-27Q5X3U6.mjs +0 -1
- package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
- package/dist/preview-engine/renderers-5BV6JGTU.mjs +0 -248
- package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
- package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
- package/dist/preview-engine/renderers-7X2W6QWX.mjs +0 -1
- package/dist/preview-engine/renderers-B52QT6MT.mjs +0 -55
- package/dist/preview-engine/renderers-BE6RVJSE.mjs +0 -1
- package/dist/preview-engine/renderers-BMM2BH56.mjs +0 -1
- package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
- package/dist/preview-engine/renderers-CRKRWR2Y.mjs +0 -1
- package/dist/preview-engine/renderers-DEYDSGJX.mjs +0 -1
- package/dist/preview-engine/renderers-DZTNRCR7.mjs +0 -1
- package/dist/preview-engine/renderers-ELO3KWTK.mjs +0 -1
- package/dist/preview-engine/renderers-EOJMPPAQ.mjs +0 -1
- package/dist/preview-engine/renderers-F2KJNDWA.mjs +0 -124
- package/dist/preview-engine/renderers-FCV4COVB.mjs +0 -1
- package/dist/preview-engine/renderers-G5KQISVL.mjs +0 -1
- package/dist/preview-engine/renderers-GJSUN5HU.mjs +0 -1
- package/dist/preview-engine/renderers-GMX2ZQDG.mjs +0 -1
- package/dist/preview-engine/renderers-GXCRINGC.mjs +0 -1
- package/dist/preview-engine/renderers-IHKORHMT.mjs +0 -1
- package/dist/preview-engine/renderers-JA4SLMG3.mjs +0 -1
- package/dist/preview-engine/renderers-JLN77CFZ.mjs +0 -1
- package/dist/preview-engine/renderers-KBFW7B5F.mjs +0 -1
- package/dist/preview-engine/renderers-LJRJMFCR.mjs +0 -1
- package/dist/preview-engine/renderers-LPAPZ5QS.mjs +0 -1
- package/dist/preview-engine/renderers-NQUDQEHY.mjs +0 -1
- package/dist/preview-engine/renderers-NS3AIJVG.mjs +0 -1
- package/dist/preview-engine/renderers-NSY2SDIE.mjs +0 -1
- package/dist/preview-engine/renderers-PW4OJWHF.mjs +0 -120
- package/dist/preview-engine/renderers-PWLWOZY4.mjs +0 -1
- package/dist/preview-engine/renderers-Q3MD34JN.mjs +0 -1
- package/dist/preview-engine/renderers-RXGNA2Q7.mjs +0 -1
- package/dist/preview-engine/renderers-TVTQ2R74.mjs +0 -1
- package/dist/preview-engine/renderers-VTTGFO55.mjs +0 -1
- package/dist/preview-engine/renderers-W3VVM5HB.mjs +0 -1
- package/dist/preview-engine/renderers-WG7QBD4D.mjs +0 -1
- package/dist/preview-engine/renderers-WLLJFZTF.mjs +0 -1
- package/dist/preview-engine/renderers-WN4SYFCU.mjs +0 -1
- package/dist/preview-engine/renderers-WSMLLSWX.mjs +0 -1
- package/dist/preview-engine/renderers-XFBSGTHU.mjs +0 -1
- package/dist/preview-engine/renderers-XFC6ZPO5.mjs +0 -1
- package/dist/preview-engine/renderers-XUHRY3XH.mjs +0 -1
- package/dist/preview-engine/renderers-YAOB5XU6.mjs +0 -1
- package/dist/preview-engine/renderers-YTB4FOHT.mjs +0 -1
- package/dist/preview-engine/renderers-ZIMBODX6.mjs +0 -1
- package/dist/program-BmNKgzja.mjs.map +0 -1
- package/dist/renderer-1VuQTY1Z.mjs.map +0 -1
- package/dist/renderer-6oMSare3.mjs +0 -3
- package/dist/renderer-B1ComPb2.mjs +0 -3
- package/dist/renderer-B2XzjK0z.mjs +0 -3
- package/dist/renderer-B2ieylQ3.mjs.map +0 -1
- package/dist/renderer-B8-kzZdP.mjs.map +0 -1
- package/dist/renderer-B8UaFNqb.mjs.map +0 -1
- package/dist/renderer-BDbTWSpP.mjs.map +0 -1
- package/dist/renderer-BIIWCg_J.mjs.map +0 -1
- package/dist/renderer-BJ1aTkZf.mjs.map +0 -1
- package/dist/renderer-BM05sB8m.mjs.map +0 -1
- package/dist/renderer-BQ5Bz5D0.mjs +0 -3
- package/dist/renderer-BREIjsUU.mjs.map +0 -1
- package/dist/renderer-BTu2EVhF.mjs +0 -3
- package/dist/renderer-BZcn_iBl.mjs +0 -3
- package/dist/renderer-Bc04fivZ.mjs.map +0 -1
- package/dist/renderer-BfAWZziM.mjs.map +0 -1
- package/dist/renderer-BfJSUjPN.mjs +0 -3
- package/dist/renderer-Bfgd4N0O.mjs.map +0 -1
- package/dist/renderer-Bhdf90Zq.mjs.map +0 -1
- package/dist/renderer-Bp6sDMa6.mjs +0 -3
- package/dist/renderer-Bt7_sb_Y.mjs +0 -3
- package/dist/renderer-Bv6q84TU.mjs.map +0 -1
- package/dist/renderer-C-H680_l.mjs +0 -3
- package/dist/renderer-C606ZPUn.mjs +0 -3
- package/dist/renderer-C9jyKn1i.mjs +0 -3
- package/dist/renderer-CDLrNgfo.mjs +0 -3
- package/dist/renderer-CERfcxgv.mjs +0 -3
- package/dist/renderer-CG5PzNkv.mjs +0 -3
- package/dist/renderer-CI7sG_cv.mjs.map +0 -1
- package/dist/renderer-CPoIMVdk.mjs +0 -3
- package/dist/renderer-CQdVj2JS.mjs +0 -3
- package/dist/renderer-CQiTodg9.mjs +0 -337
- package/dist/renderer-CQiTodg9.mjs.map +0 -1
- package/dist/renderer-CWTpc4ff.mjs.map +0 -1
- package/dist/renderer-CXn5HAnK.mjs.map +0 -1
- package/dist/renderer-CZgB5st8.mjs +0 -3
- package/dist/renderer-C_TPMHiH.mjs.map +0 -1
- package/dist/renderer-Ca7L1EOp.mjs +0 -3
- package/dist/renderer-CaaOKMSd.mjs.map +0 -1
- package/dist/renderer-CdciwwMI.mjs.map +0 -1
- package/dist/renderer-CepMDQ06.mjs.map +0 -1
- package/dist/renderer-CfC_aiew.mjs.map +0 -1
- package/dist/renderer-ChdLYS-G.mjs.map +0 -1
- package/dist/renderer-CkykdR_D.mjs +0 -3
- package/dist/renderer-Cl6GkeHx.mjs +0 -3
- package/dist/renderer-ClcjrFyo.mjs +0 -3
- package/dist/renderer-CnXW28b9.mjs.map +0 -1
- package/dist/renderer-CpkiHRhh.mjs.map +0 -1
- package/dist/renderer-CtVkU_GA.mjs +0 -44
- package/dist/renderer-CtVkU_GA.mjs.map +0 -1
- package/dist/renderer-Ctk2zzfy.mjs.map +0 -1
- package/dist/renderer-CtyD_Xju.mjs.map +0 -1
- package/dist/renderer-CySUP_wk.mjs +0 -3
- package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
- package/dist/renderer-D2XD4QYk.mjs.map +0 -1
- package/dist/renderer-D2l_Odyg.mjs +0 -3
- package/dist/renderer-D7zvPHKn.mjs.map +0 -1
- package/dist/renderer-D9NnIx7o.mjs +0 -3
- package/dist/renderer-DCPCYySt.mjs +0 -3
- package/dist/renderer-DEJwPRkR.mjs.map +0 -1
- package/dist/renderer-DIkpJEOZ.mjs +0 -3
- package/dist/renderer-DML9qpmS.mjs.map +0 -1
- package/dist/renderer-DNSXPkf_.mjs +0 -3
- package/dist/renderer-DP-CvZ_Z.mjs +0 -3
- package/dist/renderer-DZGtBUCx.mjs.map +0 -1
- package/dist/renderer-D_1oDOCP.mjs.map +0 -1
- package/dist/renderer-DeXb8R6h.mjs +0 -3
- package/dist/renderer-DezO-ZaP.mjs +0 -4
- package/dist/renderer-DhXe04fC.mjs +0 -3
- package/dist/renderer-DirxsOjq.mjs.map +0 -1
- package/dist/renderer-Djlb4TLO.mjs.map +0 -1
- package/dist/renderer-DnH3SI7w.mjs +0 -3
- package/dist/renderer-DpGc-N3G.mjs.map +0 -1
- package/dist/renderer-Dpw4oi33.mjs +0 -3
- package/dist/renderer-DxTs4Iyi.mjs.map +0 -1
- package/dist/renderer-Dy0utCl7.mjs.map +0 -1
- package/dist/renderer-Md-ytU0v.mjs +0 -3
- package/dist/renderer-U-bhWO9Q.mjs +0 -3
- package/dist/renderer-_uvdg48N.mjs.map +0 -1
- package/dist/renderer-bsWnRNpJ.mjs.map +0 -1
- package/dist/renderer-cgxO2xN6.mjs.map +0 -1
- package/dist/renderer-d5-F_48R.mjs +0 -3
- package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
- package/dist/renderer-vqkKWqa5.mjs.map +0 -1
- package/dist/renderer-zA5okHds.mjs +0 -3
- /package/dist/{renderer-C2n-EHxg.mjs → renderer-B-BcgA6d.mjs} +0 -0
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
import{a as ge}from"./chunk-XOEEGC4Z.mjs";import{b as pe,c as ve}from"./chunk-FLPSWDX4.mjs";import{a as s}from"./chunk-NQZKBFC6.mjs";import{a as d,d as K,e as se,f as ue,g as oe,h as ce,j as de,k as me,l as fe,m as U}from"./chunk-ENKKLU7B.mjs";import{v as ae,z as ne}from"./chunk-63SFBHEH.mjs";import{d as le}from"./chunk-6YJP57MZ.mjs";import{e as h}from"./chunk-BVF64D6H.mjs";h();h();h();var Q=100,Xe=ge().field("blurType",s.enum(["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]).default("Gaussian"),{bindable:!1,label:"Blur Type"}).field("strength",s.number().min(0).max(Q).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Strength Signal",description:"The intensity of the blur. 0 = no blur. Can be modulated by a static number or a dynamic signal."}).field("angle",s.number().int().min(0).max(360).default(0),{bindable:!1,signal:!0,label:"Angle",description:"Direction of a Motion blur, in degrees."}).field("sigmaColor",s.number().min(.01).max(1).default(.1),{bindable:!0,dataTypes:["Number","Signal"],label:"Color Sigma Signal",description:"Sigma value for color space in Bilateral / Edge-preserving blurs. Can be modulated by a static number or a dynamic signal."}).field("centerX",s.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center X Signal",description:"The X coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("centerY",s.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center Y Signal",description:"The Y coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("partialBlur",s.boolean().default(!1),{bindable:!1,signal:!0,label:"Partial Blur",description:"Blurs only a specific circular area around center point."}).field("radius",s.number().min(.01).max(1).default(.3),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Signal",description:"Radius of the partial blur region (0.01 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("radiusY",s.number().min(0).max(1).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Y Signal",description:"Vertical radius of the partial blur region (0 to 1.0). 0 reuses the horizontal radius."}).field("shape",s.enum(["ellipse","circle","rect"]).default("circle"),{bindable:!1,label:"Partial Shape",description:"Shape of the partial blur region."}).build(),Oe=Xe.schema,je=s.union([pe,ve]);var g=`
|
|
2
|
+
struct BlurUniforms {
|
|
3
|
+
dirX : f32,
|
|
4
|
+
dirY : f32,
|
|
5
|
+
strength : f32,
|
|
6
|
+
angle : f32,
|
|
7
|
+
|
|
8
|
+
sigmaColor : f32,
|
|
9
|
+
centerX : f32,
|
|
10
|
+
centerY : f32,
|
|
11
|
+
radius : f32,
|
|
12
|
+
|
|
13
|
+
partialBlur : f32,
|
|
14
|
+
hasStrengthSig : f32,
|
|
15
|
+
hasSigmaColorSig: f32,
|
|
16
|
+
hasCenterXSig : f32,
|
|
17
|
+
|
|
18
|
+
hasCenterYSig : f32,
|
|
19
|
+
hasRadiusSig : f32,
|
|
20
|
+
radiusY : f32,
|
|
21
|
+
shape : f32,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
@group(0) @binding(0) var<uniform> u : BlurUniforms;
|
|
25
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
26
|
+
@group(1) @binding(1) var samp : sampler;
|
|
27
|
+
@group(1) @binding(2) var origTex : texture_2d<f32>;
|
|
28
|
+
|
|
29
|
+
@group(2) @binding(0) var strengthSigTex : texture_2d<f32>;
|
|
30
|
+
@group(2) @binding(1) var sigmaColorSigTex : texture_2d<f32>;
|
|
31
|
+
@group(2) @binding(2) var centerXSigTex : texture_2d<f32>;
|
|
32
|
+
@group(2) @binding(3) var centerYSigTex : texture_2d<f32>;
|
|
33
|
+
@group(2) @binding(4) var radiusSigTex : texture_2d<f32>;
|
|
34
|
+
@group(2) @binding(5) var signalSamp : sampler;
|
|
35
|
+
|
|
36
|
+
fn applyPartialBlur(blurred: vec4<f32>, uv: vec2<f32>, dimensions: vec2<f32>) -> vec4<f32> {
|
|
37
|
+
if (u.partialBlur <= 0.5) {
|
|
38
|
+
return blurred;
|
|
39
|
+
}
|
|
40
|
+
let orig = textureSampleLevel(origTex, samp, uv, 0.0);
|
|
41
|
+
var centerX = u.centerX;
|
|
42
|
+
if (u.hasCenterXSig > 0.5) {
|
|
43
|
+
centerX = textureSampleLevel(centerXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
44
|
+
}
|
|
45
|
+
var centerY = u.centerY;
|
|
46
|
+
if (u.hasCenterYSig > 0.5) {
|
|
47
|
+
centerY = textureSampleLevel(centerYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
48
|
+
}
|
|
49
|
+
var radiusX = u.radius;
|
|
50
|
+
if (u.hasRadiusSig > 0.5) {
|
|
51
|
+
radiusX = textureSampleLevel(radiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
52
|
+
}
|
|
53
|
+
var radiusY = u.radiusY;
|
|
54
|
+
|
|
55
|
+
var mask = 0.0;
|
|
56
|
+
if (radiusY <= 0.0) {
|
|
57
|
+
let aspect = dimensions.x / dimensions.y;
|
|
58
|
+
let diff = (uv - vec2<f32>(centerX, centerY)) * vec2<f32>(aspect, 1.0);
|
|
59
|
+
let dist = length(diff);
|
|
60
|
+
let feather = 0.05;
|
|
61
|
+
mask = 1.0 - smoothstep(radiusX - feather, radiusX + feather, dist);
|
|
62
|
+
} else {
|
|
63
|
+
let diff = abs(uv - vec2<f32>(centerX, centerY));
|
|
64
|
+
if (u.shape > 0.5) {
|
|
65
|
+
let feather = 0.02;
|
|
66
|
+
let edgeX = 1.0 - smoothstep(radiusX - feather, radiusX + feather, diff.x);
|
|
67
|
+
let edgeY = 1.0 - smoothstep(radiusY - feather, radiusY + feather, diff.y);
|
|
68
|
+
mask = edgeX * edgeY;
|
|
69
|
+
} else {
|
|
70
|
+
let normDist = length(vec2<f32>(diff.x / max(1e-4, radiusX), diff.y / max(1e-4, radiusY)));
|
|
71
|
+
let feather = 0.08;
|
|
72
|
+
mask = 1.0 - smoothstep(1.0 - feather, 1.0 + feather, normDist);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return mix(orig, blurred, mask);
|
|
76
|
+
}
|
|
77
|
+
`,we=`
|
|
78
|
+
${g}
|
|
79
|
+
${d}
|
|
80
|
+
|
|
81
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
82
|
+
let c = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
83
|
+
var spatial_sigma = u.strength;
|
|
84
|
+
if (u.hasStrengthSig > 0.5) {
|
|
85
|
+
spatial_sigma = textureSampleLevel(strengthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
89
|
+
if (spatial_sigma <= 0.0) {
|
|
90
|
+
return applyPartialBlur(c, in.uv, dimensions);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
let texelSize = 1.0 / dimensions;
|
|
94
|
+
let stepScale = max(1.0, spatial_sigma / 20.0);
|
|
95
|
+
let effectiveSigma = spatial_sigma / stepScale;
|
|
96
|
+
let radius = min(i32(ceil(3.0 * effectiveSigma)), 64);
|
|
97
|
+
|
|
98
|
+
let direction = vec2<f32>(u.dirX, u.dirY);
|
|
99
|
+
|
|
100
|
+
var color = vec4<f32>(0.0);
|
|
101
|
+
var totalWeight = 0.0;
|
|
102
|
+
|
|
103
|
+
for (var i = -radius; i <= radius; i++) {
|
|
104
|
+
let offset = vec2<f32>(f32(i) * stepScale) * direction * texelSize;
|
|
105
|
+
let x = f32(i) * stepScale;
|
|
106
|
+
let weight = exp(-0.5 * (x / spatial_sigma) * (x / spatial_sigma));
|
|
107
|
+
color += textureSampleLevel(tex, samp, in.uv + offset, 0.0) * weight;
|
|
108
|
+
totalWeight += weight;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
let blurred = color / totalWeight;
|
|
112
|
+
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
113
|
+
}
|
|
114
|
+
`,Ie=`
|
|
115
|
+
${g}
|
|
116
|
+
${d}
|
|
117
|
+
|
|
118
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
119
|
+
let c = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
120
|
+
var strength = u.strength;
|
|
121
|
+
if (u.hasStrengthSig > 0.5) {
|
|
122
|
+
strength = textureSampleLevel(strengthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
126
|
+
let radius = i32(round(strength));
|
|
127
|
+
if (radius <= 0) {
|
|
128
|
+
return applyPartialBlur(c, in.uv, dimensions);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
let texelSize = 1.0 / dimensions;
|
|
132
|
+
let direction = vec2<f32>(u.dirX, u.dirY);
|
|
133
|
+
|
|
134
|
+
var color = vec4<f32>(0.0);
|
|
135
|
+
var count = 0.0;
|
|
136
|
+
|
|
137
|
+
for (var i = -radius; i <= radius; i++) {
|
|
138
|
+
let offset = vec2<f32>(f32(i)) * direction * texelSize;
|
|
139
|
+
color += textureSampleLevel(tex, samp, in.uv + offset, 0.0);
|
|
140
|
+
count += 1.0;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
let blurred = color / count;
|
|
144
|
+
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
145
|
+
}
|
|
146
|
+
`,Ve=`
|
|
147
|
+
${g}
|
|
148
|
+
struct Val {
|
|
149
|
+
luma : f32,
|
|
150
|
+
color : vec4<f32>,
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
${d}
|
|
154
|
+
|
|
155
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
156
|
+
let centerCol = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
157
|
+
var strength = u.strength;
|
|
158
|
+
if (u.hasStrengthSig > 0.5) {
|
|
159
|
+
strength = textureSampleLevel(strengthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
163
|
+
let radius = min(i32(round(strength)), 16);
|
|
164
|
+
if (radius <= 0) {
|
|
165
|
+
return applyPartialBlur(centerCol, in.uv, dimensions);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
let count = radius * 2 + 1;
|
|
169
|
+
let texelSize = 1.0 / dimensions;
|
|
170
|
+
let direction = vec2<f32>(u.dirX, u.dirY);
|
|
171
|
+
|
|
172
|
+
var values : array<Val, 33>;
|
|
173
|
+
|
|
174
|
+
for (var i = 0; i < 33; i++) {
|
|
175
|
+
if (i >= count) { break; }
|
|
176
|
+
let offset = vec2<f32>(f32(i - radius)) * direction * texelSize;
|
|
177
|
+
let col = textureSampleLevel(tex, samp, in.uv + offset, 0.0);
|
|
178
|
+
values[i] = Val(dot(col.rgb, vec3<f32>(0.299, 0.587, 0.114)), col);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Selection sort
|
|
182
|
+
for (var i = 0; i < 33; i++) {
|
|
183
|
+
if (i >= count - 1) { break; }
|
|
184
|
+
var minIdx = i;
|
|
185
|
+
for (var j = 0; j < 33; j++) {
|
|
186
|
+
if (j <= i) { continue; }
|
|
187
|
+
if (j >= count) { break; }
|
|
188
|
+
if (values[j].luma < values[minIdx].luma) {
|
|
189
|
+
minIdx = j;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (minIdx != i) {
|
|
193
|
+
let temp = values[i];
|
|
194
|
+
values[i] = values[minIdx];
|
|
195
|
+
values[minIdx] = temp;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
let medianIdx = count / 2;
|
|
200
|
+
return applyPartialBlur(values[medianIdx].color, in.uv, dimensions);
|
|
201
|
+
}
|
|
202
|
+
`,Ue=`
|
|
203
|
+
${g}
|
|
204
|
+
${d}
|
|
205
|
+
|
|
206
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
207
|
+
let c = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
208
|
+
var strength = u.strength;
|
|
209
|
+
if (u.hasStrengthSig > 0.5) {
|
|
210
|
+
strength = textureSampleLevel(strengthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
214
|
+
if (strength <= 0.0) {
|
|
215
|
+
return applyPartialBlur(c, in.uv, dimensions);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
let PI = 3.14159265359;
|
|
219
|
+
let angleRad = u.angle * PI / 180.0;
|
|
220
|
+
let dir = vec2<f32>(cos(angleRad), sin(angleRad));
|
|
221
|
+
|
|
222
|
+
let texelSize = 1.0 / dimensions;
|
|
223
|
+
let step = dir * texelSize;
|
|
224
|
+
|
|
225
|
+
let numSamples = i32(clamp(strength, 1.0, 64.0));
|
|
226
|
+
var color = vec4<f32>(0.0);
|
|
227
|
+
|
|
228
|
+
for (var i = 0; i < 64; i++) {
|
|
229
|
+
if (i >= numSamples) { break; }
|
|
230
|
+
let offset = f32(i - numSamples / 2) * step;
|
|
231
|
+
color += textureSampleLevel(tex, samp, in.uv + offset, 0.0);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
let blurred = color / f32(numSamples);
|
|
235
|
+
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
236
|
+
}
|
|
237
|
+
`,Ge=`
|
|
238
|
+
${g}
|
|
239
|
+
${d}
|
|
240
|
+
|
|
241
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
242
|
+
let centerCol = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
243
|
+
var spatial_sigma = u.strength;
|
|
244
|
+
if (u.hasStrengthSig > 0.5) {
|
|
245
|
+
spatial_sigma = textureSampleLevel(strengthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
246
|
+
}
|
|
247
|
+
var sigmaColor = u.sigmaColor;
|
|
248
|
+
if (u.hasSigmaColorSig > 0.5) {
|
|
249
|
+
sigmaColor = textureSampleLevel(sigmaColorSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
253
|
+
if (spatial_sigma <= 0.0) {
|
|
254
|
+
return applyPartialBlur(centerCol, in.uv, dimensions);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
let texelSize = 1.0 / dimensions;
|
|
258
|
+
let radius = min(i32(ceil(3.0 * spatial_sigma)), 32);
|
|
259
|
+
let direction = vec2<f32>(u.dirX, u.dirY);
|
|
260
|
+
|
|
261
|
+
var color = vec4<f32>(0.0);
|
|
262
|
+
var totalWeight = 0.0;
|
|
263
|
+
|
|
264
|
+
for (var i = -32; i <= 32; i++) {
|
|
265
|
+
if (i < -radius || i > radius) { continue; }
|
|
266
|
+
let offset = vec2<f32>(f32(i)) * direction * texelSize;
|
|
267
|
+
let sampleCol = textureSampleLevel(tex, samp, in.uv + offset, 0.0);
|
|
268
|
+
|
|
269
|
+
let spatialDistSq = f32(i * i);
|
|
270
|
+
let spatialWeight = exp(-0.5 * spatialDistSq / (spatial_sigma * spatial_sigma));
|
|
271
|
+
|
|
272
|
+
let diff = sampleCol - centerCol;
|
|
273
|
+
let colorDistSq = dot(diff, diff);
|
|
274
|
+
let rangeWeight = exp(-0.5 * colorDistSq / (sigmaColor * sigmaColor));
|
|
275
|
+
|
|
276
|
+
let weight = spatialWeight * rangeWeight;
|
|
277
|
+
color += sampleCol * weight;
|
|
278
|
+
totalWeight += weight;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
var blurred = centerCol;
|
|
282
|
+
if (totalWeight > 0.0) {
|
|
283
|
+
blurred = color / totalWeight;
|
|
284
|
+
}
|
|
285
|
+
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
286
|
+
}
|
|
287
|
+
`,De=`
|
|
288
|
+
${g}
|
|
289
|
+
${d}
|
|
290
|
+
|
|
291
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
292
|
+
let centerCol = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
293
|
+
var strength = u.strength;
|
|
294
|
+
if (u.hasStrengthSig > 0.5) {
|
|
295
|
+
strength = textureSampleLevel(strengthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// Map strength (1-10) to radius (1-6)
|
|
299
|
+
let radius = i32(clamp(round(strength * 5.0 / 10.0) + 1.0, 1.0, 6.0));
|
|
300
|
+
|
|
301
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
302
|
+
let texelSize = 1.0 / dimensions;
|
|
303
|
+
|
|
304
|
+
var m0 = vec3<f32>(0.0); var m1 = vec3<f32>(0.0); var m2 = vec3<f32>(0.0); var m3 = vec3<f32>(0.0);
|
|
305
|
+
var s0 = vec3<f32>(0.0); var s1 = vec3<f32>(0.0); var s2 = vec3<f32>(0.0); var s3 = vec3<f32>(0.0);
|
|
306
|
+
|
|
307
|
+
let n = f32((radius + 1) * (radius + 1));
|
|
308
|
+
|
|
309
|
+
for (var j = -6; j <= 6; j++) {
|
|
310
|
+
if (j < -radius || j > radius) { continue; }
|
|
311
|
+
for (var i = -6; i <= 6; i++) {
|
|
312
|
+
if (i < -radius || i > radius) { continue; }
|
|
313
|
+
|
|
314
|
+
let c = textureSampleLevel(tex, samp, in.uv + vec2<f32>(f32(i), f32(j)) * texelSize, 0.0).rgb;
|
|
315
|
+
|
|
316
|
+
if (i <= 0 && j <= 0) {
|
|
317
|
+
m0 += c;
|
|
318
|
+
s0 += c * c;
|
|
319
|
+
}
|
|
320
|
+
if (i >= 0 && j <= 0) {
|
|
321
|
+
m1 += c;
|
|
322
|
+
s1 += c * c;
|
|
323
|
+
}
|
|
324
|
+
if (i <= 0 && j >= 0) {
|
|
325
|
+
m2 += c;
|
|
326
|
+
s2 += c * c;
|
|
327
|
+
}
|
|
328
|
+
if (i >= 0 && j >= 0) {
|
|
329
|
+
m3 += c;
|
|
330
|
+
s3 += c * c;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
m0 = m0 / n; s0 = abs(s0 / n - m0 * m0);
|
|
336
|
+
m1 = m1 / n; s1 = abs(s1 / n - m1 * m1);
|
|
337
|
+
m2 = m2 / n; s2 = abs(s2 / n - m2 * m2);
|
|
338
|
+
m3 = m3 / n; s3 = abs(s3 / n - m3 * m3);
|
|
339
|
+
|
|
340
|
+
let v0 = s0.r + s0.g + s0.b;
|
|
341
|
+
let v1 = s1.r + s1.g + s1.b;
|
|
342
|
+
let v2 = s2.r + s2.g + s2.b;
|
|
343
|
+
let v3 = s3.r + s3.g + s3.b;
|
|
344
|
+
|
|
345
|
+
var minVar = v0;
|
|
346
|
+
var finalCol = m0;
|
|
347
|
+
|
|
348
|
+
if (v1 < minVar) {
|
|
349
|
+
minVar = v1;
|
|
350
|
+
finalCol = m1;
|
|
351
|
+
}
|
|
352
|
+
if (v2 < minVar) {
|
|
353
|
+
minVar = v2;
|
|
354
|
+
finalCol = m2;
|
|
355
|
+
}
|
|
356
|
+
if (v3 < minVar) {
|
|
357
|
+
minVar = v3;
|
|
358
|
+
finalCol = m3;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
let blurred = vec4<f32>(finalCol, centerCol.a);
|
|
362
|
+
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
363
|
+
}
|
|
364
|
+
`,Me=`
|
|
365
|
+
${g}
|
|
366
|
+
${d}
|
|
367
|
+
|
|
368
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
369
|
+
let centerCol = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
370
|
+
var strength = u.strength;
|
|
371
|
+
if (u.hasStrengthSig > 0.5) {
|
|
372
|
+
strength = textureSampleLevel(strengthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
373
|
+
}
|
|
374
|
+
var centerX = u.centerX;
|
|
375
|
+
if (u.hasCenterXSig > 0.5) {
|
|
376
|
+
centerX = textureSampleLevel(centerXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
377
|
+
}
|
|
378
|
+
var centerY = u.centerY;
|
|
379
|
+
if (u.hasCenterYSig > 0.5) {
|
|
380
|
+
centerY = textureSampleLevel(centerYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
384
|
+
if (strength <= 0.0) {
|
|
385
|
+
return applyPartialBlur(centerCol, in.uv, dimensions);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
let center = vec2<f32>(centerX, centerY);
|
|
389
|
+
let toPixel = in.uv - center;
|
|
390
|
+
let dist = length(toPixel);
|
|
391
|
+
if (dist <= 0.0) {
|
|
392
|
+
return applyPartialBlur(centerCol, in.uv, dimensions);
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
let dir = vec2<f32>(-toPixel.y, toPixel.x);
|
|
396
|
+
let blurAmount = (strength / 100.0) * 0.1 * dist;
|
|
397
|
+
|
|
398
|
+
let numSamples = 24;
|
|
399
|
+
var color = vec4<f32>(0.0);
|
|
400
|
+
let step = dir * (blurAmount / f32(numSamples));
|
|
401
|
+
|
|
402
|
+
for (var i = 0; i < 24; i++) {
|
|
403
|
+
let offset = step * f32(i - 12);
|
|
404
|
+
color += textureSampleLevel(tex, samp, in.uv + offset, 0.0);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
let blurred = color / 24.0;
|
|
408
|
+
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
409
|
+
}
|
|
410
|
+
`,Ae=`
|
|
411
|
+
${g}
|
|
412
|
+
${d}
|
|
413
|
+
|
|
414
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
415
|
+
let centerCol = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
416
|
+
var strength = u.strength;
|
|
417
|
+
if (u.hasStrengthSig > 0.5) {
|
|
418
|
+
strength = textureSampleLevel(strengthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
419
|
+
}
|
|
420
|
+
var centerX = u.centerX;
|
|
421
|
+
if (u.hasCenterXSig > 0.5) {
|
|
422
|
+
centerX = textureSampleLevel(centerXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
423
|
+
}
|
|
424
|
+
var centerY = u.centerY;
|
|
425
|
+
if (u.hasCenterYSig > 0.5) {
|
|
426
|
+
centerY = textureSampleLevel(centerYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
430
|
+
if (strength <= 0.0) {
|
|
431
|
+
return applyPartialBlur(centerCol, in.uv, dimensions);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
let center = vec2<f32>(centerX, centerY);
|
|
435
|
+
let toPixel = in.uv - center;
|
|
436
|
+
let blurAmount = (strength / 100.0) * 0.15;
|
|
437
|
+
|
|
438
|
+
let numSamples = 24;
|
|
439
|
+
var color = vec4<f32>(0.0);
|
|
440
|
+
let step = toPixel * (blurAmount / f32(numSamples));
|
|
441
|
+
|
|
442
|
+
for (var i = 0; i < 24; i++) {
|
|
443
|
+
let offset = step * f32(i - 12);
|
|
444
|
+
color += textureSampleLevel(tex, samp, in.uv + offset, 0.0);
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
let blurred = color / 24.0;
|
|
448
|
+
return applyPartialBlur(blurred, in.uv, dimensions);
|
|
449
|
+
}
|
|
450
|
+
`,Ne=ue(l=>({blurUniformLayout:K(l,["uniform"]),singleTextureLayout:K(l,["texture","sampler","texture"]),signalTextureLayout:se(l,5),pipelineCache:new Map}));function $e(l,t,i){let u=Ne(l),S=`blur_${i}_${t}`,x=u.pipelineCache.get(S);if(!x){let o=we;i==="Box"?o=Ie:i==="Median"?o=Ve:i==="Motion"?o=Ue:i==="Bilateral"?o=Ge:i==="Edge-preserving"?o=De:i==="Radial"?o=Me:i==="Zoom"&&(o=Ae);let n=l.createShaderModule({label:`blur_${i}_${t}.wgsl`,code:o});x=oe(l,{label:`BlurPipeline_${i}_${t}`,module:n,layouts:[u.blurUniformLayout,u.singleTextureLayout,u.signalTextureLayout],format:t}),u.pipelineCache.set(S,x)}return{blurPipeline:x,blurUniformLayout:u.blurUniformLayout,singleTextureLayout:u.singleTextureLayout,signalTextureLayout:u.signalTextureLayout}}var xe=async l=>{let{ctx:t,encoder:i,pass:u,targetTexture:S,targetWidth:x,targetHeight:o,props:n}=l,G=n.frame??0,be=n.compositionFrame??G,R=n.fps||30,a=n.virtualMedia?.operation;if(a?.op!=="Blur"||!a)return;let J=n.virtualMedia.children?.[0];if(!J)return;u.end();let e=new Float32Array(16),y=x,_=o,he=n.containerWidth??t.surface.width/(typeof window<"u"?window.devicePixelRatio:1),D=y/he,ye=a.inputs?Object.keys(a.inputs)[0]:"blur_node",b=(r,c,C,k,F=!1)=>{let Pe=`${r}HandleId`,ee=a[Pe],f=ee?a.inputs?.[ee]:null,te=!!(f?.connectionValid&&(f.outputItem?.type==="Signal"||f.outputItem?.type==="Numeric")),q=te&&f?.outputItem?.data?f.outputItem.data:null,p=c,Z=!1,re;if(te){if(q){let v=Number(q.offset??0);p=Math.max(C,Math.min(k,v)),F&&(p*=D),Z=!0}}else if(f?.connectionValid&&f.outputItem?.type==="Number"){let v=Number(f.outputItem.data??c);p=Math.max(C,Math.min(k,v)),F&&(p*=D)}else{let v=ae(a[r],be,R);v.gpuTextureView&&(re=v.gpuTextureView,Z=!0);let Ye=v.value,ie=Number(Ye??c);p=Math.max(C,Math.min(k,isNaN(ie)?c:ie)),F&&(p*=D)}return{val:p,hasStaticSig:Z,sd:q,gpuTextureView:re}},P=b("strength",5,0,Q,!0),Y=b("sigmaColor",.1,.01,1,!1),X=b("centerX",.5,0,1,!1),w=b("centerY",.5,0,1,!1),I=b("radius",.3,.001,1,!1),Be=b("radiusY",0,0,1,!1),{texture:m}=await ce(l,J),B=a.blurType??"Gaussian",Te=B==="Gaussian"||B==="Box"||B==="Median"||B==="Bilateral",{blurPipeline:M,blurUniformLayout:A,singleTextureLayout:Le,signalTextureLayout:N}=$e(t.device,t.renderer.format,B),V=t.renderer.samplerCache.getSampler(t.device),{elapsedSeconds:Ce,durationSeconds:Re}=me(n,G,R);for(let r of[P,Y,X,w,I])r.hasStaticSig&&r.sd&&await le.ensureAudioSourcesExtracted(t.device,r.sd,R,n.renderId);let _e={args:l,width:y,height:_,frame:G,fps:R,elapsedSeconds:Ce,durationSeconds:Re},T=(r,c)=>fe(_e,r,`${ye}_${c}`),$=T(P,"strength_sig"),E=T(Y,"sigmacolor_sig"),W=T(X,"centerx_sig"),O=T(w,"centery_sig"),j=T(I,"radius_sig"),z=(r,c)=>t.device.createBindGroup({layout:Le,entries:[{binding:0,resource:r.createView()},{binding:1,resource:V},{binding:2,resource:c.createView()}]}),H=!!(a.partialBlur&&a.partialBlur!=="false"&&a.partialBlur!==0);e[2]=P.val,e[3]=Number(a.angle??0),e[4]=Y.val,e[5]=X.val,e[6]=w.val,e[7]=I.val,e[8]=H?1:0,e[9]=P.hasStaticSig?1:0,e[10]=Y.hasStaticSig?1:0,e[11]=X.hasStaticSig?1:0,e[12]=w.hasStaticSig?1:0,e[13]=I.hasStaticSig?1:0,e[14]=Be.val,e[15]=a.shape==="rect"?1:0;let L;if(Te){let r=t.renderer.getTemporaryTexture(y,_,[m,S,...n.excludeTextures||[]]);L=t.renderer.getTemporaryTexture(y,_,[m,r,S,...n.excludeTextures||[]]),e[0]=1,e[1]=0,e[8]=0;let c=t.renderer.getTemporaryBuffer(e);U(i,r.createView(),M,[t.device.createBindGroup({layout:A,entries:[{binding:0,resource:{buffer:c}}]}),z(m,m),t.device.createBindGroup({layout:N,entries:[{binding:0,resource:$},{binding:1,resource:E},{binding:2,resource:W},{binding:3,resource:O},{binding:4,resource:j},{binding:5,resource:V}]})]),e[0]=0,e[1]=1,e[8]=H?1:0;let C=t.renderer.getTemporaryBuffer(e);U(i,L.createView(),M,[t.device.createBindGroup({layout:A,entries:[{binding:0,resource:{buffer:C}}]}),z(r,m),t.device.createBindGroup({layout:N,entries:[{binding:0,resource:$},{binding:1,resource:E},{binding:2,resource:W},{binding:3,resource:O},{binding:4,resource:j},{binding:5,resource:V}]})])}else{L=t.renderer.getTemporaryTexture(y,_,[m,S,...n.excludeTextures||[]]),e[0]=0,e[1]=0,e[8]=H?1:0;let r=t.renderer.getTemporaryBuffer(e);U(i,L.createView(),M,[t.device.createBindGroup({layout:A,entries:[{binding:0,resource:{buffer:r}}]}),z(m,m),t.device.createBindGroup({layout:N,entries:[{binding:0,resource:$},{binding:1,resource:E},{binding:2,resource:W},{binding:3,resource:O},{binding:4,resource:j},{binding:5,resource:V}]})])}de(l,L,a.opacity??1)};var tt=ne({WebGPURenderer:xe});export{tt as a};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{a as $t,b as le,c as ue,d as de,e as fe,f as he,g as me,h as ge,i as xe,j as ye,k as be,l as we,n as Se}from"./chunk-RQLMW6MA.mjs";import{d as ae}from"./chunk-6YJP57MZ.mjs";import{c as se,d as ce,e as B,r as bt}from"./chunk-BWJS6G7R.mjs";import{a as dt}from"./chunk-IQC2I5A5.mjs";import{d as Gt}from"./chunk-HYBAPT6I.mjs";import{d as Rt,e as wt}from"./chunk-BVF64D6H.mjs";wt();function Ee(e){return typeof e=="object"&&e!==null&&typeof e.get=="function"}function Wt(e,n){return Ee(e)?e.get(n):e}function Ce(e,n){return e.map(t=>{let i={...t,text:String(Wt(t.text,n)??"")};return t.fontSize!==void 0&&(i.fontSize=Number(Wt(t.fontSize,n))),t.fill!==void 0&&(i.fill=String(Wt(t.fill,n))),t.opacity!==void 0&&(i.opacity=Number(Wt(t.opacity,n))),t.mark&&(i.mark={...t.mark,background:String(Wt(t.mark.background,n))}),i})}function ze(e){let n="";for(let t of e)n+=typeof t.text=="string"?t.text:"";return n}function Me(e,n){let t=[],i=0;for(let[r,c]of e.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===e.length-1?n.length:i+d;u>i&&t.push({...c,text:n.slice(i,u)}),i=u}return t}wt();function Xe(e,n,t,i,r=0,c=0){let d=ae.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=t/m,h=r!==0?c*r/(2*Math.PI):0,p=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(p*m)));return Number(d[a])||0}if(!e)return 0;let u=e[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(t,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?t/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:t,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(t)));return Number(C[h])||0}}return 0}function Ie(e){return e<.5?2*e*e:1-(-2*e+2)**2/2}function Ye(e){let n=0;for(let t=0;t<e.length;t++)n=e.charCodeAt(t)+((n<<5)-n);return()=>{let t=Math.sin(n++)*1e4;return t-Math.floor(t)}}function Ge(e,n){let t=Ye(n),i=Array.from({length:e},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(t()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function je(e,n,t){let i=`${n}-${t}`,r=B.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(t*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=e.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),B.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${t*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=e.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),e.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),B.emojiTextureCache.set(i,r),r}function jt(e,n,t,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(t>0){let C=t*.5,h=c>1?t*.5/(c-1):0,p=r*h,a=p+C;e<p?u=0:e>a?u=1:u=(e-p)/(a-p)}let m=1;if(i>0){let C=n-i;if(e>C){let h=i*.5,p=c>1?i*.5/(c-1):0,a=C+r*p,A=a+h;e<a?m=1:e>A?m=0:m=1-(e-a)/(A-a)}}return{p_in:u,p_out:m}}function _t(e,n,t,i,r,c,d,u,m,C,h,p,a){let A=t?Ie(e):e,w=t?Ie(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=p;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,tt=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let ot=a?1:Math.PI/180;c==="stack"?(tt=.8+.2*v,H=(1-v)*15*ot):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*ot):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*ot);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:tt,blurAmount:x,visible:!0}}var _e={linear:e=>e,none:e=>e,smoothstep:e=>e,"power1.out":e=>1-(1-e)**2,"quad.out":e=>1-(1-e)**2,"power1.in":e=>e**2,"quad.in":e=>e**2,"power1.inout":e=>e<.5?2*e*e:1-(-2*e+2)**2/2,"quad.inout":e=>e<.5?2*e*e:1-(-2*e+2)**2/2,"power2.out":e=>1-(1-e)**3,"cubic.out":e=>1-(1-e)**3,"power2.in":e=>e**3,"cubic.in":e=>e**3,"power2.inout":e=>e<.5?4*e**3:1-(-2*e+2)**3/2,"cubic.inout":e=>e<.5?4*e**3:1-(-2*e+2)**3/2,"power3.out":e=>1-(1-e)**4,"quart.out":e=>1-(1-e)**4,"power3.in":e=>e**4,"quart.in":e=>e**4,"power3.inout":e=>e<.5?8*e**4:1-(-2*e+2)**4/2,"quart.inout":e=>e<.5?8*e**4:1-(-2*e+2)**4/2,"power4.out":e=>1-(1-e)**5,"quint.out":e=>1-(1-e)**5,"power4.in":e=>e**5,"quint.in":e=>e**5,"sine.out":e=>Math.sin(e*Math.PI/2),"sine.in":e=>1-Math.cos(e*Math.PI/2),"sine.inout":e=>-(Math.cos(Math.PI*e)-1)/2,"expo.out":e=>e===1?1:1-2**(-10*e),"back.out":e=>1+2.70158*(e-1)**3+1.70158*(e-1)**2};function Oe(e,n){let t=Math.max(0,Math.min(1,n));if(!e)return t;let i=_e[e.toLowerCase().trim()];return i?i(t):t}function He(e,n,t){if(t<=0)return 0;let i=t>1?n/(t-1):.5,r=e.offset??0,c=(e.rangeStart??0)+r,d=(e.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Oe(e.easing??"power2.out",m)}function ke(e,n,t,i,r,c){let d=Math.max(1,t.charsCount??1),u=Math.max(1,t.wordsCount??1),m=Math.max(1,t.linesCount??1),C=e.selectors??[];if(C.length===0)return 1;let h=0;for(let p=0;p<C.length;p++){let a=C[p],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=be(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??e.rangeStart??0,P=a.end??e.rangeEnd??(a.units==="index"?w:1),H=a.offset??e.offset??0;A=xe(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=ye(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,tt=a.maxAmount??1;A=H+(P*.5+.5)*(tt-H)}else if(a.type==="signal")A=Xe(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=fe(w.expression,X)*(w.amount??1)}p===0?h=A:h=we(h,A,a.mode??"add")}return h}function Ae(e,n,t,i,r=!1,c=0,d=24,u){if(!e||e.length===0)return i;let{transX:m,transY:C,rot:h,scale:p,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,tt=i.vfxParam??0,ot=i.skewM01??0,x=i.skewM10??0,ft=i.anchorConfig,lt=i.fillOpacity??1,rt=i.strokeWidth,U=i.strokeColor,ut=i.longShadow,ht=i.lineSpacing,Z=i.lineAnchor,mt=r?1:Math.PI/180,z=Math.max(1,t.charsCount??1),K=Math.max(1,t.wordsCount??1),at=Math.max(1,t.linesCount??1);for(let nt of e)if("selectors"in nt&&Array.isArray(nt.selectors)){let it=nt,l=it.props??{},et=ke(it,n,{charsCount:z,wordsCount:K,linesCount:at},u,c,d),f=et,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$t(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=et*Y}if(f!==0||et!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(p*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*mt*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*mt*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=le(l.skew*f,l.skewAxis??0);ot+=b,x+=D}if(l.formation!==void 0){let b=he(n.charIndex??0,z,l.formation),D=t.layoutCenter?.x??0,Q=t.layoutCenter?.y??0,xt=n.x??0,Ft=n.y??0,Et=D+b.x,Xt=Q+b.y;if(m+=(Et-xt)*f,C+=(Xt-Ft)*f,X+=b.z*f,b.rotX){let yt=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(yt)))}if(b.rotY){let yt=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(yt)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(ft=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xt=Math.abs(Q-Math.floor(Q));xt<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xt*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ut=l.longShadow),l.audioSpectrum!==void 0){let b=ge(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:p*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(lt*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(rt=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(ht=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=dt(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=et;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let it=nt,l=n.charIndex??n.unitIndex??0,et=Math.max(1,t.charsCount??1);it.unit==="word"?(l=n.wordIndex??0,et=Math.max(1,t.wordsCount??1)):it.unit==="line"&&(l=n.lineIndex??0,et=Math.max(1,t.linesCount??1));let f=He(it,l,et),Y=it.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*mt*f),Y.scale!==void 0&&(p*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=dt(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:p,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:tt,skewM01:ot,skewM10:x,anchorConfig:ft,fillOpacity:Math.max(0,Math.min(1,lt)),strokeWidth:rt,strokeColor:U,longShadow:ut,lineSpacing:ht,lineAnchor:Z}}function pe(e,n,t){let i=t.fontFamily??"Inter";if(B.isFailed(i)&&(i="Inter"),B.isFailed(i))return;let r=t.fontSize??48,c=B.getFont(i,t.fontWeight,e.device,void 0,r,t.variableAxes),d=t.stroke&&t.strokeWidth&&t.strokeWidth>0,u=null;if(c&&d&&e.device){let o=t.strokeAlign==="outside"?2:1,y=(t.strokeWidth??0)*o*(c.unitsPerEm/r);u=B.getFont(i,t.fontWeight,e.device,y,r,t.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Gt(i);B.preloadSlugFont(e.device,i,o,void 0,t.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=t.letterSpacing??0,C=t.lineHeight!==void 0&&t.lineHeight<10?t.lineHeight*r:t.lineHeight??r*1.2,h=t.align??"start",p=t.direction??"auto",a=t.isCaption?0:t.textBackgroundColor?t.padding??0:0,A=t.text,w;if(t.typewriter){let o=t.fps??24,s=t.durationMs!==void 0?Math.round(t.durationMs/1e3*o):60;w=Se(t.text,t.frame??0,0,s,t.typewriter.cadence,t.typewriter.scramble,t.typewriter.cursor?.blinkFrequency??2,t.typewriter.granularity??"character",t.textProgress),A=w.currentDisplayString}let v=w&&t.spans?.length?Me(Ce(t.spans),A):t.spans,X=t.pathOptions?{...t.pathOptions,firstMargin:t.firstMargin!==void 0?t.firstMargin:t.pathOptions.firstMargin,lastMargin:t.lastMargin!==void 0?t.lastMargin:t.pathOptions.lastMargin,baselineShift:t.baselineShift!==void 0?t.baselineShift:t.pathOptions.baselineShift}:void 0,j,P;t.width!=null?(j=Math.max(0,t.width-a*2),P=bt.measure(A,c,r,m,C,j,v,p)):(P=bt.measure(A,c,r,m,C,void 0,v,p),j=P.width);let H=t.isCaption?t.dstRect.width:j,tt=t.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&tt==="word"&&!!P?.layout&&P.layout?P.layout:bt.layout(A,c,r,m,C,j,h,tt,H,X,v,p),ft=t.verticalAlign??"top",lt=t.height!=null&&!X&&!t.isCaption?t.height-(P.height+a*2):0,rt={...t.dstRect,y:t.dstRect.y+(ft==="middle"?lt/2:ft==="bottom"?lt:0)},U=t.animation,ut=t.fontWeight==="bold"||typeof t.fontWeight=="number"&&t.fontWeight>=600||typeof t.fontWeight=="string"&&parseInt(t.fontWeight,10)>=600,ht="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ut&&!ht&&e.device){let o=ce(t.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=B.getFont(i,400,e.device,y,r,t.variableAxes);S?.curvesTex&&(Z=S)}}let mt=x.glyphs.length,z=t.elapsedMs!==void 0?t.elapsedMs:t.frame!==void 0&&t.fps!==void 0?t.frame/t.fps*1e3:0,K=t.durationMs!==void 0?t.durationMs:3e3,at=t.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,nt=t.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,it=U?.in||"none",l=U?.out||"none",et=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=et==="shuffle"||it==="shuffle"?Ge(q,t.text):Array.from({length:q},(o,s)=>s);if(t.textBackgroundColor){let o=t.strokeRadius??t.borderRadius??8,s=0,y=t.opacity??1;if(t.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=jt(z,K,at,nt,T,q,!0),_=_t(M,g,f,it,l,et,z,K,at,nt,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=t.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=jt(z,K,at,nt,T,q,!0),_=_t(M,g,f,it,l,et,z,K,at,nt,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=t.width!=null?t.width:P.width+a*2,I=t.height!=null?t.height:P.height+a*2;e.renderer.drawRRect(n,{rect:{x:t.dstRect.x,y:t.dstRect.y,width:S,height:I},rx:o,ry:o},t.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;e.renderer.drawRRect(n,{rect:{x:t.dstRect.x+a+o.x,y:rt.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:t.opacity??1})}let D=dt(t.color??"white"),Q=dt(t.highlightColor??"yellow"),xt=new Float32Array(x.glyphs.length),Ft=0,Et=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(Ft=(o[0].x+o[o.length-1].x)/2,Et=(o[0].y+o[o.length-1].y)/2)}let Xt={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:Ft,y:Et}};if(t.animators&&t.animators.length>0){for(let o of t.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let W of I){let O=x.glyphs[W].charIndex,$=T.get(O);$?$.push(W):T.set(O,[W])}let M=Array.from(T.values()),g=W=>{let O=x.glyphs[W[0]];return O.clusterX??O.x};M.sort((W,O)=>g(W)-g(O));let _=[];for(let W of M){let O=x.glyphs[W[0]],$=ke(s,O,Xt,t.signals,t.frame??0,t.fps??24);_.push($)}let G=0;for(let W=0;W<M.length-1;W++)G+=y*_[W];let k=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?k?"right":"left":h==="end"?k?"left":"right":h,N=0;for(let W=0;W<M.length;W++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[W])xt[$]+=O;W<M.length-1&&(N+=y*_[W])}}}}}let yt=new Float32Array(Math.max(1024,mt*24)),Kt=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qt=new Set,ve=o=>{if(Qt.has(o))return;Qt.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Kt(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&se.ensureGlyphs(o,s)},Pe=(o,s)=>{if((s.font??c)===o)return s.cp;if(Kt(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},St=(o,s,y=0,S=0,I,T)=>{let M=mt*24;yt.length<M&&(yt=new Float32Array(M));let g=yt,_=0;ve(o);for(let G=0;G<x.glyphs.length;G++){let k=x.glyphs[G];if(k.isSpace||T&&!T(k))continue;let R=Pe(o,k);if(!R||R.width===0||R.height===0)continue;let N=k.unitIndex,W=b[N]??N,O=t.opacity??1,$=0,J=0,st=0,V=1,Ct=I!==void 0?I:0;if(t.isVideoMode!==!1){let{p_in:F,p_out:E}=jt(z,K,at,nt,W,q,!0),L=_t(F,E,f,it,l,et,z,K,at,nt,W,t.opacity??1,!1);if(!L.visible)continue;O=L.opacity,$=L.transX,J=L.transY,st=L.rot,V=L.scale,I===void 0&&(Ct=L.blurAmount)}let Mt=1,Ut=1,ee,Dt=0,ne=0,ie=0,oe=0,Nt=0,Lt=0,Bt,re=1;if(t.animators&&t.animators.length>0){let F=Ae(t.animators,k,Xt,{transX:$,transY:J,rot:st,scale:V,scaleX:Mt,scaleY:Ut,opacity:O,blurAmount:Ct,color:D},!1,t.frame??0,t.fps??24,t.signals);$=F.transX,J=F.transY,st=F.rot,V=F.scale,Mt=F.scaleX,Ut=F.scaleY,O=F.opacity,I===void 0&&(Ct=F.blurAmount),F.color&&(ee=F.color),F.lineSpacing!==void 0&&(J+=de(k.lineIndex,x.linesCount,F.lineSpacing,F.lineAnchor??0)),Dt=F.transZ??0,ne=F.chromaticShift??0,ie=F.dissolveProgress??0,oe=F.vfxParam??0,Nt=F.skewM01??0,Lt=F.skewM10??0,Bt=F.anchorConfig,re=F.fillOpacity??1}$+=xt[G];let zt=k.x;if(t.marquee){let F=(t.frame??0)/(t.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:t.dstRect.width;zt=me(k.x,t.dstRect.width,E,t.marquee,F)}let Re=t.highlightWordIndex!==void 0&&k.wordIndex===t.highlightWordIndex,We=k.fill?dt(k.fill):void 0,Yt=ee??s??(Re?Q:We??D);(F=>{let E=_*24,L=k.fontScale??r/o.unitsPerEm,It=R.width*L/2*Mt,At=R.height*L/2*Ut;if(Dt!==0){let ct=Math.max(100,1200-Dt),gt=ct>1?1200/ct:1;It*=gt,At*=gt}let kt=st+(k.pathTangentAngleRad??0),pt,Tt;if(k.pathTangentAngleRad!==void 0){let vt=R.bearingX*L+It,ct=-R.bearingY*L+At,gt=Math.cos(kt),Pt=Math.sin(kt),Vt=vt*gt-ct*Pt,qt=vt*Pt+ct*gt;pt=zt+Vt+t.dstRect.x+a+y+F,Tt=k.y+qt+rt.y+a+S}else pt=zt+R.bearingX*L+It+t.dstRect.x+a+y+F,Tt=k.y-R.bearingY*L+At+rt.y+a+S;if(Bt){let vt={width:R.width*L,height:R.height*L,ascender:(o.ascender??800)*L,descender:(o.descender??-200)*L},ct=ue(vt,Bt),gt=Math.cos(kt),Pt=Math.sin(kt),Vt=ct.px*(1-gt*V)+ct.py*(Pt*V),qt=-ct.px*(Pt*V)+ct.py*(1-gt*V);pt+=Vt,Tt+=qt}(Nt!==0||Lt!==0)&&(pt+=At*Nt,Tt+=It*Lt),g[E+0]=It,g[E+1]=At,g[E+2]=pt,g[E+3]=Tt,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=kt,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Yt.r,g[E+17]=Yt.g,g[E+18]=Yt.b;let Fe=k.opacity??1;g[E+19]=Yt.a*O*re*Fe,g[E+20]=Ct,g[E+21]=ne,g[E+22]=ie,g[E+23]=oe,_++})(0)}return{data:g,visibleCount:_}};if(t.shadows&&t.shadows.length>0)for(let o of t.shadows){let s=dt(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=St(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=t.fontStyle==="italic"?.21:0;e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),Z,g,M,o.color,e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:G})}}let Ot=t.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Ot&&"props"in Ot){let o=Ot,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(t.frame??0)/(t.fps??30),k=$t(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*k),I=s.angle+(1-Math.min(1,k))*25}else{let k=1-(1-Math.min(1,(t.frame??0)/36))**3;S=s.length*k}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=dt(s.color??"#000000");for(let G=1;G<=M;G++){let k=G*g,R=k*Math.cos(T),N=k*Math.sin(T),W=G/M,O=(s.startOpacity??.8)*(1-W)+(s.endOpacity??0)*W,$={..._,a:_.a*O},{data:J,visibleCount:st}=St(c,$,R,N,0);if(st>0){let V=J.subarray(0,st*24),Mt=t.fontStyle==="italic"?.21:0;e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),Z,V,st,s.color??"black",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:(t.opacity??1)*O,transform:t.matrix,customParam:Mt})}}}}if(d&&u){let o=dt(t.stroke),{data:s,visibleCount:y}=St(u,o);if(y>0){let S=s.subarray(0,y*24),T=t.fontStyle==="italic"?.21:0;e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),u,S,y,t.stroke??"#000000",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:T})}}let Ht=new Set,Jt=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(Ht.add(o.font),Jt=!0);let te=t.fontStyle==="italic"?.21:0;if(Jt){Ht.add(Z);for(let o of Ht){if(e.device&&!o.curvesTex&&B.ensureTextures(e.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=St(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),o,S,y,t.color??"white",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:te})}}}else{let{data:o,visibleCount:s}=St(Z);if(s>0){let y=o.subarray(0,s*24);e.renderer.slugPipeline.draw(n,e.renderer.getTransformStack(),Z,y,s,t.color??"white",e.renderer.getSurfaceWidth(),e.renderer.getSurfaceHeight(),{opacity:t.opacity??1,transform:t.matrix,customParam:te})}}for(let o of x.emojis){let s=t.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=t.opacity??1,I=0,T=0,M=0,g=1;if(t.isVideoMode!==!1){let{p_in:J,p_out:st}=jt(z,K,at,nt,y,q,!0),V=_t(J,st,f,it,l,et,z,K,at,nt,y,t.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(t.animators&&t.animators.length>0){let J=Ae(t.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=je(e.device,o.char,o.size),G=o.size*1.5,k=(G-o.size)/2,R={x:t.dstRect.x+o.x+a-k,y:rt.y+o.y+a-k,width:G,height:G},N=new DOMMatrix,W=R.x+G/2,O=R.y+G/2;N=N.translate(W,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-W,-O);let $=t.matrix?t.matrix.multiply(N):N;e.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(t.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!t.typewriter.cursor.hideOnComplete||w.visibleChars<t.text.length)){let o=t.typewriter.cursor,s=o.color??t.color??"white",y=o.width??2.5,S=o.spacing??3,I=t.dstRect.x+a,T=rt.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,k=o.style==="underscore"||o.style==="block"?r*.5:y;I=t.dstRect.x+a+(M.rtl?G-S-k:G+_+S),T=M.y+rt.y+a}o.style==="underscore"?e.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:t.opacity??1}):o.style==="block"?e.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:t.opacity??1}):e.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:t.opacity??1})}}wt();function Te(e){let t=e.trim().replace(",",".").split(":");if(t.length<2||t.length>3)throw new Error(`Invalid timestamp: ${e}`);if(t.length===2){let[d,u]=t;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=t;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ue(e){let n=e.replace(/\r\n/g,`
|
|
2
|
+
`).split(`
|
|
3
|
+
`),t=[];for(let i=0;i<n.length;i++){let r=n[i],c=n[i+1];if(r?.match(/([0-9]+)/)&&c?.includes(" --> ")){let d=c.split(" --> "),u=Te(d[0]),m=Te(d[1]);t.push({text:"",startMs:u*1e3,endMs:m*1e3,confidence:1,timestampMs:(u+m)/2*1e3})}else r?.includes(" --> ")||(r?.trim()===""?t.length>0&&(t[t.length-1].text=t[t.length-1].text.trim()):t.length>0&&(t[t.length-1].text+=r+`
|
|
4
|
+
`))}return{captions:t.map(i=>({...i,text:i.text.trimEnd()}))}}function De(e,n,t=!0){if(!e||e.length===0)return null;let i=e.find(r=>n>=r.startMs&&n<r.endMs);return i||(!t&&e.length>0?e[0]:null)}function un(e,n,t){if(!e||e.length===0)return 160;let i=n.fontSize??48,r=n.letterSpacing??0,c=n.lineHeight!==void 0&&n.lineHeight<10?n.lineHeight*i:n.lineHeight??i*1.2,d=n.padding??(n.background?12:0),u=t?Math.max(10,t-d*2):void 0,m=n.fontFamily??"Inter";B.isFailed(m)&&(m="Inter");let C=B.getFont(m,n.fontWeight,null),h=0;for(let p of e){if(!p.text)continue;let a=0;if(C&&C.codePoints){let w=bt.measure(p.text,C,i,r,c,u);a=Math.ceil(w.height)}else{let w=p.text.split(`
|
|
5
|
+
`),v=0;for(let X of w)if(u){let j=X.length*i*.55+r*X.length,P=Math.max(1,Math.ceil(j/u));v+=P}else v+=1;a=Math.ceil(v*c)}let A=a+d*2;A>h&&(h=A)}return Math.max(20,h||160)}var Zt=class{cache=new Map;resolvedCache=new Map;getCached(n){return this.resolvedCache.get(n)}setCached(n,t){this.resolvedCache.set(n,t)}clear(){this.cache.clear(),this.resolvedCache.clear()}async load(n){if(!n)return[];let t=this.resolvedCache.get(n);if(t)return t;let i=this.cache.get(n);return i||(i=(async()=>{let r="";if(n.startsWith("data:")){let d=n.indexOf(",");if(d!==-1){let u=n.substring(0,d),m=n.substring(d+1);r=u.includes(";base64")?typeof Buffer<"u"?Buffer.from(m,"base64").toString("utf-8"):new TextDecoder().decode(Uint8Array.from(atob(m),h=>h.charCodeAt(0))):decodeURIComponent(m)}}else if(n.includes("-->"))r=n;else if(n.startsWith("http://")||n.startsWith("https://")){let d=await fetch(n);if(!d.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await d.text()}else{let d=n;if(d.startsWith("file://"))try{d=new URL(d).pathname}catch{d=d.replace(/^file:\/\//,"")}if(typeof Rt<"u"&&Rt.versions?.node)try{r=await(await import("./shims/fs-promises.mjs")).readFile(d,"utf-8")}catch{let u=await fetch(n);if(!u.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await u.text()}else{let u=await fetch(n);if(!u.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await u.text()}}let c=Ue(r).captions;return this.resolvedCache.set(n,c),c})(),this.cache.set(n,i),i.catch(()=>{this.cache.delete(n),this.resolvedCache.delete(n)})),i}},Ne=new Zt;async function dn(e,n,t){if(!t.src)return;let i=await Ne.load(t.src);if(!i||i.length===0)return;let r=t.frame/t.fps*1e3,c=De(i,r,t.isVideoMode!==!1);if(!c)return;let d=c.text,u=t.dstRect.width,m=t.padding??(t.textBackgroundColor?12:0),C=Math.max(10,u-m*2),h=t.maxWidth!==void 0?Math.min(t.maxWidth,C):C,p=t.fontSize??48,a=t.fontFamily??"Inter";if(B.isFailed(a)&&(a="Inter"),B.isFailed(a))return;let A=t.letterSpacing??0,w=B.getFont(a,t.fontWeight,e.device);if(!w||!w.curvesTex){let z=Gt(a);B.preloadSlugFont(e.device,a,z,void 0,t.renderId).catch(K=>{console.warn(`[drawCaptionNode] Failed to load Slug font for ${a}:`,K)});return}let v=t.lineHeight!==void 0&&t.lineHeight<10?t.lineHeight*p:t.lineHeight??p*1.2,X=bt.measure(d,w,p,A,v,h,void 0,t.direction),j=X.width,P=X.height,H=j+m*2,tt=P+m*2,ot=t.align??"center",x=X.layout?.glyphs[0]?.baseRtl??t.direction==="rtl",ft=ot==="start"?x?"right":"left":ot==="end"?x?"left":"right":ot,lt=0;ft==="center"?lt=Math.max(0,(u-H)/2):ft==="right"&&(lt=Math.max(0,u-H));let rt=t.dstRect.height,U=t.verticalAlign??t.textAlignVertical??"bottom",ut=0;U==="top"?ut=0:U==="middle"?ut=(rt-tt)/2:ut=rt-tt;let ht={x:t.dstRect.x+lt,y:t.dstRect.y+ut,width:H,height:tt},Z=t.opacity??1;if(t.textBackgroundColor){let z=t.strokeRadius??t.borderRadius??8;e.renderer.drawRRect(n,{rect:ht,rx:z,ry:z},t.textBackgroundColor,{opacity:Z})}let mt={x:ht.x+m,y:ht.y+m,width:j,height:P};pe(e,n,{...t,text:d,dstRect:mt,width:h,height:P,align:ot,opacity:Z,isCaption:!0,animation:void 0,textBackgroundColor:void 0})}export{Ce as a,ze as b,Me as c,pe as d,un as e,Ne as f,dn as g};
|