framefields 2.0.10 → 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 +39 -11
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +13 -12
- package/dist/{audio-BxA0sL9z.d.mts → audio-C2fLC3Tx.d.mts} +3 -3
- package/dist/{audio-BxA0sL9z.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-B7Al-W_0.mjs → audio-D_4SeMRK.mjs} +4 -4
- package/dist/{audio-B7Al-W_0.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-DzUJmIHt.mjs → dist-BY0bIWgr.mjs} +10 -2
- package/dist/dist-BY0bIWgr.mjs.map +1 -0
- package/dist/{dist-B9PkqWnN.mjs → dist-Bun_TUvZ.mjs} +24046 -20774
- package/dist/dist-Bun_TUvZ.mjs.map +1 -0
- package/dist/{dist-BFjSQP7i.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-B9Afsv83.mjs → dist-fjKpBYkc.mjs} +662 -28
- 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-CREopCyP.mjs → effects-FTlu0dri.mjs} +3 -3
- package/dist/{effects-CREopCyP.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 +2 -2
- package/dist/fonts/index.mjs +3 -1
- package/dist/{fonts-DhEQ5h6E.mjs → fonts-UM5xaBOx.mjs} +66 -6
- 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-BXNNJVs8.d.mts → index-CHQ39_Oe.d.mts} +2 -2
- package/dist/{index-BXNNJVs8.d.mts.map → index-CHQ39_Oe.d.mts.map} +1 -1
- package/dist/{index-CvDVpaKn.d.mts → index-CzQseCtg.d.mts} +8 -8
- package/dist/{index-CvDVpaKn.d.mts.map → index-CzQseCtg.d.mts.map} +1 -1
- package/dist/{index-D1zaOwEU.d.mts → index-D67p-rHX.d.mts} +3506 -1280
- package/dist/index-D67p-rHX.d.mts.map +1 -0
- package/dist/{index-J9CIK_nu.d.mts → index-DPicEt8H.d.mts} +10 -2
- package/dist/index-DPicEt8H.d.mts.map +1 -0
- package/dist/{index-oodg5k9K.d.mts → index-Db8Z3AtX.d.mts} +3 -3
- package/dist/{index-oodg5k9K.d.mts.map → index-Db8Z3AtX.d.mts.map} +1 -1
- package/dist/{index-fo4E7A6C.d.mts → index-DsOqONsj.d.mts} +3 -3
- package/dist/{index-fo4E7A6C.d.mts.map → index-DsOqONsj.d.mts.map} +1 -1
- package/dist/{index-CQcdKyxF.d.mts → index-l03NV8JS.d.mts} +59 -2
- package/dist/index-l03NV8JS.d.mts.map +1 -0
- package/dist/index.d.mts +416 -1849
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +669 -79
- 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-9ifxywUM.mjs → preview-DwClLMlU.mjs} +3 -3
- package/dist/{preview-9ifxywUM.mjs.map → preview-DwClLMlU.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-AW7HNZKR.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-IQKIHFNZ.mjs +1 -0
- package/dist/preview-engine/{chunk-XCYFPA34.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-JAOXXYXG.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-7DIAFPQP.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-VRGREB3V.mjs +1 -0
- 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-YG35X5R5.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-VVLM6LZ3.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-xRfFoPxe.mjs → program-BqFVw5Mu.mjs} +295 -2279
- 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-BgdkEFmv.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-5h0llpx7.mjs → renderer-B12_76qk.mjs} +4 -3
- package/dist/{renderer-5h0llpx7.mjs.map → renderer-B12_76qk.mjs.map} +1 -1
- package/dist/{renderer-_bygZSKk.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-CoZKST2Y.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-BiSALMQy.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-wVldKtFU.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-jkZ_IQnW.mjs → renderer-BgnJUx24.mjs} +80 -258
- package/dist/renderer-BgnJUx24.mjs.map +1 -0
- package/dist/renderer-BiQ0PYOp.mjs +5 -0
- package/dist/{renderer-BnvqEqvE.mjs → renderer-BjTq3a0L.mjs} +5 -4
- package/dist/{renderer-BnvqEqvE.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-DNNqpK7t.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-DryPrxYc.mjs → renderer-BqsV75Ml.mjs} +3 -1
- package/dist/{renderer-8qpGxSSO.mjs → renderer-Bs4tz_pw.mjs} +20 -87
- package/dist/renderer-Bs4tz_pw.mjs.map +1 -0
- package/dist/{renderer-DdVBt8Rz.mjs → renderer-Bsaokil3.mjs} +24 -104
- package/dist/renderer-Bsaokil3.mjs.map +1 -0
- package/dist/{renderer-D7ztfQHX.mjs → renderer-BvG1GF1c.mjs} +10 -16
- package/dist/renderer-BvG1GF1c.mjs.map +1 -0
- package/dist/{renderer-BGXbGqY4.mjs → renderer-BvpSIFkw.mjs} +83 -266
- package/dist/renderer-BvpSIFkw.mjs.map +1 -0
- package/dist/{renderer-Dju9CaeL.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-But0u-xi.mjs → renderer-C3RfT8Gv.mjs} +59 -194
- package/dist/renderer-C3RfT8Gv.mjs.map +1 -0
- package/dist/{renderer-CgmFh6MY.mjs → renderer-C3cYDT3m.mjs} +3 -1
- package/dist/{renderer-D-4Yh-RK.mjs → renderer-CEGbqT2m.mjs} +236 -96
- package/dist/renderer-CEGbqT2m.mjs.map +1 -0
- package/dist/{renderer-CcU7dVn9.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-DffynBHa.mjs → renderer-CH9Qtpy7.mjs} +4 -4
- package/dist/{renderer-DffynBHa.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-BJ6Y-7ke.mjs → renderer-CRIM_XRK.mjs} +3 -3
- package/dist/{renderer-BJ6Y-7ke.mjs.map → renderer-CRIM_XRK.mjs.map} +1 -1
- package/dist/{renderer-2NQWaZd7.d.mts → renderer-CTGe8SqQ.d.mts} +2 -2
- package/dist/{renderer-2NQWaZd7.d.mts.map → renderer-CTGe8SqQ.d.mts.map} +1 -1
- package/dist/renderer-CWCEW6Wv.mjs +5 -0
- package/dist/{renderer-CNF10fCq.mjs → renderer-CgyOylPO.mjs} +10 -17
- package/dist/renderer-CgyOylPO.mjs.map +1 -0
- package/dist/{renderer-DjTiNeAp.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-DBlPbsgi.mjs → renderer-CpKNqciR.mjs} +3 -1
- package/dist/{renderer-DTvfYkI9.mjs → renderer-Cwhux4VX.mjs} +9 -16
- package/dist/renderer-Cwhux4VX.mjs.map +1 -0
- package/dist/{renderer-CJNyhr_S.mjs → renderer-D0nWLogn.mjs} +99 -282
- package/dist/renderer-D0nWLogn.mjs.map +1 -0
- package/dist/{renderer-9wp5R7PL.mjs → renderer-D1lynYuy.mjs} +23 -107
- package/dist/renderer-D1lynYuy.mjs.map +1 -0
- package/dist/{renderer-DYm4duFr.mjs → renderer-D4sYVV-I.mjs} +41 -140
- package/dist/renderer-D4sYVV-I.mjs.map +1 -0
- package/dist/{renderer-CroHPOsX.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-CStktK20.mjs → renderer-DIDSmoFA.mjs} +73 -73
- package/dist/{renderer-CStktK20.mjs.map → renderer-DIDSmoFA.mjs.map} +1 -1
- package/dist/{renderer-BA8YwBRQ.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-BZmfKIom.mjs → renderer-DOEsFT7Q.mjs} +57 -192
- package/dist/renderer-DOEsFT7Q.mjs.map +1 -0
- package/dist/{renderer-6GeDT4Mx.mjs → renderer-DPYB6ZcB.mjs} +57 -197
- package/dist/renderer-DPYB6ZcB.mjs.map +1 -0
- package/dist/{renderer-DCkSR2Ne.mjs → renderer-DRsPCkxr.mjs} +76 -210
- package/dist/renderer-DRsPCkxr.mjs.map +1 -0
- package/dist/renderer-DXTw9Oqb.mjs +5 -0
- package/dist/{renderer-DAMJZNtX.mjs → renderer-DZLJnnU2.mjs} +63 -190
- package/dist/renderer-DZLJnnU2.mjs.map +1 -0
- package/dist/{renderer-BtRfKx5N.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-BpCxKWQm.mjs → renderer-DhEyjn6Q.mjs} +52 -202
- package/dist/renderer-DhEyjn6Q.mjs.map +1 -0
- package/dist/{renderer-CIYcdZuZ.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-DxtHmyAa.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-xKOVmd2O.mjs → renderer-DzhRNdBS.mjs} +245 -231
- 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-CfeoxM_3.mjs → renderer-Q63y7HP_.mjs} +8 -15
- package/dist/renderer-Q63y7HP_.mjs.map +1 -0
- package/dist/renderer-SecCv3U8.mjs +5 -0
- package/dist/{renderer-b6sZN90h.mjs → renderer-mp1NN5zk.mjs} +4 -4
- package/dist/{renderer-b6sZN90h.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-BLgwUYX2.mjs → renderers-CP8CFWDs-DlFq8jmz.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-BLgwUYX2.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-CsxqD2AA.mjs → signals-BDkO0xcZ.mjs} +3 -3
- package/dist/{signals-CsxqD2AA.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-B9Afsv83.mjs.map +0 -1
- package/dist/dist-B9PkqWnN.mjs.map +0 -1
- package/dist/dist-BFjSQP7i.mjs.map +0 -1
- package/dist/dist-DzUJmIHt.mjs.map +0 -1
- package/dist/dist-cjs-3pon9kTt.mjs +0 -6
- package/dist/fonts-DhEQ5h6E.mjs.map +0 -1
- package/dist/index-CQcdKyxF.d.mts.map +0 -1
- package/dist/index-D1zaOwEU.d.mts.map +0 -1
- package/dist/index-J9CIK_nu.d.mts.map +0 -1
- package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
- package/dist/preview-engine/chunk-5JD65JSJ.mjs +0 -110
- package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
- package/dist/preview-engine/chunk-AG5JNZYQ.mjs +0 -8
- 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-CNSHAFEA.mjs +0 -1
- 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-HPIULG7P.mjs +0 -111
- package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
- package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
- package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
- package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
- package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
- package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
- package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
- package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
- package/dist/preview-engine/chunk-QTKJXDIW.mjs +0 -997
- package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
- package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
- package/dist/preview-engine/chunk-RNOO4UR5.mjs +0 -3
- 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-T6CC2KCZ.mjs +0 -418
- package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
- package/dist/preview-engine/chunk-UC7CSW2A.mjs +0 -1
- 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-32PIFHPS.mjs +0 -1
- package/dist/preview-engine/renderers-3Y3EMRDJ.mjs +0 -1
- package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
- package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
- package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
- package/dist/preview-engine/renderers-7HNVXNAI.mjs +0 -248
- 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-CHJWUJVI.mjs +0 -1
- package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
- package/dist/preview-engine/renderers-CI2GXWLP.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-EE2GFG7J.mjs +0 -1
- package/dist/preview-engine/renderers-ELO3KWTK.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-GJSUN5HU.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-UGZUPONY.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/program-xRfFoPxe.mjs.map +0 -1
- package/dist/renderer-6GeDT4Mx.mjs.map +0 -1
- package/dist/renderer-8qpGxSSO.mjs.map +0 -1
- package/dist/renderer-9wp5R7PL.mjs.map +0 -1
- package/dist/renderer-B2XzjK0z.mjs +0 -3
- package/dist/renderer-B4F6wL68.mjs +0 -3
- package/dist/renderer-B4i1jmiT.mjs +0 -3
- package/dist/renderer-B5ylY3uM.mjs +0 -3
- package/dist/renderer-BA8YwBRQ.mjs.map +0 -1
- package/dist/renderer-BGXbGqY4.mjs.map +0 -1
- package/dist/renderer-BM05sB8m.mjs.map +0 -1
- package/dist/renderer-BPw23wiR.mjs +0 -3
- package/dist/renderer-BREIjsUU.mjs.map +0 -1
- package/dist/renderer-BTu2EVhF.mjs +0 -3
- package/dist/renderer-BZmfKIom.mjs.map +0 -1
- package/dist/renderer-BfJSUjPN.mjs +0 -3
- package/dist/renderer-BgdkEFmv.mjs.map +0 -1
- package/dist/renderer-BghW-bSZ.mjs +0 -3
- package/dist/renderer-BpCxKWQm.mjs.map +0 -1
- package/dist/renderer-BtRfKx5N.mjs.map +0 -1
- package/dist/renderer-But0u-xi.mjs.map +0 -1
- package/dist/renderer-Bw3oZ9YT.mjs +0 -3
- package/dist/renderer-C-H680_l.mjs +0 -3
- package/dist/renderer-C2009W-_.mjs +0 -3
- package/dist/renderer-C36yoGXG.mjs +0 -3
- package/dist/renderer-CDLrNgfo.mjs +0 -3
- package/dist/renderer-CIYcdZuZ.mjs.map +0 -1
- package/dist/renderer-CJNyhr_S.mjs.map +0 -1
- package/dist/renderer-CL3evUmF.mjs +0 -3
- package/dist/renderer-CM1_2ZWA.mjs +0 -3
- package/dist/renderer-CNF10fCq.mjs.map +0 -1
- 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-CWlzudP8.mjs +0 -3
- package/dist/renderer-CZgB5st8.mjs +0 -3
- package/dist/renderer-CcU7dVn9.mjs.map +0 -1
- package/dist/renderer-Cd5vzrGs.mjs +0 -3
- package/dist/renderer-CeJ_vDXI.mjs +0 -3
- package/dist/renderer-CepMDQ06.mjs.map +0 -1
- package/dist/renderer-CfeoxM_3.mjs.map +0 -1
- package/dist/renderer-CjY77sB_.mjs +0 -3
- package/dist/renderer-CkykdR_D.mjs +0 -3
- package/dist/renderer-CoZKST2Y.mjs.map +0 -1
- package/dist/renderer-CpkiHRhh.mjs.map +0 -1
- package/dist/renderer-CroHPOsX.mjs.map +0 -1
- package/dist/renderer-CtVkU_GA.mjs +0 -44
- package/dist/renderer-CtVkU_GA.mjs.map +0 -1
- package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
- package/dist/renderer-D-4Yh-RK.mjs.map +0 -1
- package/dist/renderer-D2XD4QYk.mjs.map +0 -1
- package/dist/renderer-D5Z6mda5.mjs +0 -3
- package/dist/renderer-D7ztfQHX.mjs.map +0 -1
- package/dist/renderer-D7zvPHKn.mjs.map +0 -1
- package/dist/renderer-D9NnIx7o.mjs +0 -3
- package/dist/renderer-DAMJZNtX.mjs.map +0 -1
- package/dist/renderer-DCJa7OGk.mjs +0 -3
- package/dist/renderer-DCkSR2Ne.mjs.map +0 -1
- package/dist/renderer-DEJwPRkR.mjs.map +0 -1
- package/dist/renderer-DGwSl7g1.mjs +0 -3
- package/dist/renderer-DNNqpK7t.mjs.map +0 -1
- package/dist/renderer-DNoRNfMm.mjs +0 -3
- package/dist/renderer-DOZ8bpyY.mjs +0 -3
- package/dist/renderer-DRHyRNU8.mjs +0 -3
- package/dist/renderer-DTvfYkI9.mjs.map +0 -1
- package/dist/renderer-DYm4duFr.mjs.map +0 -1
- package/dist/renderer-DZGtBUCx.mjs.map +0 -1
- package/dist/renderer-D_1oDOCP.mjs.map +0 -1
- package/dist/renderer-DdVBt8Rz.mjs.map +0 -1
- package/dist/renderer-DjTiNeAp.mjs.map +0 -1
- package/dist/renderer-Dju9CaeL.mjs.map +0 -1
- package/dist/renderer-DlD85Xoi.mjs +0 -3
- package/dist/renderer-Dr0bgOrW.mjs +0 -3
- package/dist/renderer-DurtG-Hc.mjs +0 -3
- package/dist/renderer-DxtHmyAa.mjs.map +0 -1
- package/dist/renderer-_bygZSKk.mjs.map +0 -1
- package/dist/renderer-_uvdg48N.mjs.map +0 -1
- package/dist/renderer-d5-F_48R.mjs +0 -3
- package/dist/renderer-eFv9HBmL.mjs +0 -3
- package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
- package/dist/renderer-iuV6wQoL.mjs +0 -4
- package/dist/renderer-jkZ_IQnW.mjs.map +0 -1
- package/dist/renderer-n-uuWPF4.mjs +0 -3
- package/dist/renderer-rzccTFuY.mjs +0 -3
- package/dist/renderer-wVldKtFU.mjs.map +0 -1
- package/dist/renderer-xKOVmd2O.mjs.map +0 -1
- package/dist/renderer-y9eGFPFL.mjs +0 -3
- /package/dist/{renderer-C2n-EHxg.mjs → renderer-B-BcgA6d.mjs} +0 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import{a as V,d as p,g as D,h as I,j as k,k as W,l as F,m as O}from"./chunk-ENKKLU7B.mjs";import{w as U}from"./chunk-63SFBHEH.mjs";import{e as f}from"./chunk-BVF64D6H.mjs";f();f();var j=new WeakMap,me=`
|
|
2
|
+
struct ColorBalanceUniforms {
|
|
3
|
+
shadows : vec4<f32>,
|
|
4
|
+
midtones : vec4<f32>,
|
|
5
|
+
highlights : vec4<f32>,
|
|
6
|
+
preserveLuminosity : f32,
|
|
7
|
+
hasShadowsCyanRedSig : f32,
|
|
8
|
+
hasShadowsMagentaGreenSig : f32,
|
|
9
|
+
hasShadowsYellowBlueSig : f32,
|
|
10
|
+
|
|
11
|
+
hasMidtonesCyanRedSig : f32,
|
|
12
|
+
hasMidtonesMagentaGreenSig : f32,
|
|
13
|
+
hasMidtonesYellowBlueSig : f32,
|
|
14
|
+
hasHighlightsCyanRedSig : f32,
|
|
15
|
+
|
|
16
|
+
hasHighlightsMagentaGreenSig : f32,
|
|
17
|
+
hasHighlightsYellowBlueSig : f32,
|
|
18
|
+
_pad0 : f32,
|
|
19
|
+
_pad1 : f32,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
@group(0) @binding(0) var<uniform> u : ColorBalanceUniforms;
|
|
23
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
24
|
+
@group(1) @binding(1) var samp : sampler;
|
|
25
|
+
|
|
26
|
+
@group(2) @binding(0) var shadowsCyanRedSigTex : texture_2d<f32>;
|
|
27
|
+
@group(2) @binding(1) var shadowsMagentaGreenSigTex : texture_2d<f32>;
|
|
28
|
+
@group(2) @binding(2) var shadowsYellowBlueSigTex : texture_2d<f32>;
|
|
29
|
+
@group(2) @binding(3) var midtonesCyanRedSigTex : texture_2d<f32>;
|
|
30
|
+
@group(2) @binding(4) var midtonesMagentaGreenSigTex: texture_2d<f32>;
|
|
31
|
+
@group(2) @binding(5) var midtonesYellowBlueSigTex : texture_2d<f32>;
|
|
32
|
+
@group(2) @binding(6) var highlightsCyanRedSigTex : texture_2d<f32>;
|
|
33
|
+
@group(2) @binding(7) var highlightsMagentaGreenSigTex: texture_2d<f32>;
|
|
34
|
+
@group(2) @binding(8) var highlightsYellowBlueSigTex: texture_2d<f32>;
|
|
35
|
+
@group(2) @binding(9) var signalSamp : sampler;
|
|
36
|
+
${V}
|
|
37
|
+
|
|
38
|
+
fn get_luminance(c: vec3<f32>) -> f32 {
|
|
39
|
+
return dot(c, vec3<f32>(0.2126, 0.7152, 0.0722));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
fn set_luminance(c: vec3<f32>, l: f32) -> vec3<f32> {
|
|
43
|
+
let d = l - get_luminance(c);
|
|
44
|
+
var res = c + vec3<f32>(d);
|
|
45
|
+
let min_c = min(res.r, min(res.g, res.b));
|
|
46
|
+
let max_c = max(res.r, max(res.g, res.b));
|
|
47
|
+
if (min_c < 0.0) {
|
|
48
|
+
res = l + ((res - vec3<f32>(l)) * l) / max(l - min_c, 1e-5);
|
|
49
|
+
}
|
|
50
|
+
if (max_c > 1.0) {
|
|
51
|
+
res = l + ((res - vec3<f32>(l)) * (1.0 - l)) / max(max_c - l, 1e-5);
|
|
52
|
+
}
|
|
53
|
+
return clamp(res, vec3<f32>(0.0), vec3<f32>(1.0));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
57
|
+
let color = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
58
|
+
if (color.a <= 0.00001) {
|
|
59
|
+
return color;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
let alpha = color.a;
|
|
63
|
+
let rgb = color.rgb / max(alpha, 0.0001);
|
|
64
|
+
|
|
65
|
+
var sShift = u.shadows.rgb;
|
|
66
|
+
if (u.hasShadowsCyanRedSig > 0.5) {
|
|
67
|
+
sShift.r = clamp(textureSampleLevel(shadowsCyanRedSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
68
|
+
}
|
|
69
|
+
if (u.hasShadowsMagentaGreenSig > 0.5) {
|
|
70
|
+
sShift.g = clamp(textureSampleLevel(shadowsMagentaGreenSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
71
|
+
}
|
|
72
|
+
if (u.hasShadowsYellowBlueSig > 0.5) {
|
|
73
|
+
sShift.b = clamp(textureSampleLevel(shadowsYellowBlueSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
var mShift = u.midtones.rgb;
|
|
77
|
+
if (u.hasMidtonesCyanRedSig > 0.5) {
|
|
78
|
+
mShift.r = clamp(textureSampleLevel(midtonesCyanRedSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
79
|
+
}
|
|
80
|
+
if (u.hasMidtonesMagentaGreenSig > 0.5) {
|
|
81
|
+
mShift.g = clamp(textureSampleLevel(midtonesMagentaGreenSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
82
|
+
}
|
|
83
|
+
if (u.hasMidtonesYellowBlueSig > 0.5) {
|
|
84
|
+
mShift.b = clamp(textureSampleLevel(midtonesYellowBlueSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
var hShift = u.highlights.rgb;
|
|
88
|
+
if (u.hasHighlightsCyanRedSig > 0.5) {
|
|
89
|
+
hShift.r = clamp(textureSampleLevel(highlightsCyanRedSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
90
|
+
}
|
|
91
|
+
if (u.hasHighlightsMagentaGreenSig > 0.5) {
|
|
92
|
+
hShift.g = clamp(textureSampleLevel(highlightsMagentaGreenSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
93
|
+
}
|
|
94
|
+
if (u.hasHighlightsYellowBlueSig > 0.5) {
|
|
95
|
+
hShift.b = clamp(textureSampleLevel(highlightsYellowBlueSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r, -100.0, 100.0) / 100.0;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
let origLum = get_luminance(rgb);
|
|
99
|
+
|
|
100
|
+
// Tonal range weighting curves
|
|
101
|
+
let wShadows = clamp((1.0 - origLum) * (1.0 - origLum * 1.5), 0.0, 1.0);
|
|
102
|
+
let wMidtones = clamp(1.0 - 4.0 * (origLum - 0.5) * (origLum - 0.5), 0.0, 1.0);
|
|
103
|
+
let wHighlights = clamp(origLum * (origLum * 1.5 - 0.5), 0.0, 1.0);
|
|
104
|
+
|
|
105
|
+
let delta = wShadows * sShift + wMidtones * mShift + wHighlights * hShift;
|
|
106
|
+
var adjustedRgb = clamp(rgb + delta, vec3<f32>(0.0), vec3<f32>(1.0));
|
|
107
|
+
|
|
108
|
+
if (u.preserveLuminosity > 0.5) {
|
|
109
|
+
adjustedRgb = set_luminance(adjustedRgb, origLum);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return vec4<f32>(adjustedRgb * alpha, alpha);
|
|
113
|
+
}
|
|
114
|
+
`;function fe(t,i){let g=j.get(t);if(g)return g;let d=p(t,["uniform"],"ColorBalanceUniformLayout"),c=p(t,["texture","sampler"],"ColorBalanceTextureLayout"),h=p(t,["texture","texture","texture","texture","texture","texture","texture","texture","texture","sampler"],"ColorBalanceSignalTextureLayout"),S=t.createShaderModule({label:"ColorBalanceShaderModule",code:me});return g={pipeline:D(t,{label:"ColorBalancePipeline",module:S,layouts:[d,c,h],format:i}),uniformLayout:d,textureLayout:c,signalTextureLayout:h},j.set(t,g),g}var e=new Float32Array(24),N=async t=>{let{ctx:i,encoder:g,pass:d,targetTexture:c,targetWidth:h,targetHeight:S,props:r}=t,n=r.virtualMedia?.operation;if(n?.op!=="ColorBalance"||!r.virtualMedia?.children?.[0])return;d.end();let x=r.frame??0,L=r.compositionFrame??x,m=r.fps||30,A=r.virtualMedia.children[0],T=h,M=S,E=r.virtualMedia?.metadata?.id||(n.inputs?Object.keys(n.inputs)[0]:null)||r.renderId||"colorbalance_node",o=(a,u,de=-100,ce=100)=>U(n.inputs,a,u,de,ce),s=a=>{a!=null&&(typeof a=="object"&&a!==null?"get"in a&&typeof a.get=="function"?a=a.get({frame:L,fps:m}):"value"in a&&(a=a.value):typeof a=="function"&&(a=a(L,m)));let u=Number(a??0);return isNaN(u)?0:u},w=o(n.shadows_cyanRedHandleId,s(n.shadows?.cyanRed)),v=o(n.shadows_magentaGreenHandleId,s(n.shadows?.magentaGreen)),y=o(n.shadows_yellowBlueHandleId,s(n.shadows?.yellowBlue)),b=o(n.midtones_cyanRedHandleId,s(n.midtones?.cyanRed)),B=o(n.midtones_magentaGreenHandleId,s(n.midtones?.magentaGreen)),_=o(n.midtones_yellowBlueHandleId,s(n.midtones?.yellowBlue)),G=o(n.highlights_cyanRedHandleId,s(n.highlights?.cyanRed)),R=o(n.highlights_magentaGreenHandleId,s(n.highlights?.magentaGreen)),C=o(n.highlights_yellowBlueHandleId,s(n.highlights?.yellowBlue)),{texture:H}=await I(t,A),{pipeline:$,uniformLayout:Q,textureLayout:q,signalTextureLayout:z}=fe(i.device,i.renderer.format),Y=i.renderer.samplerCache.getSampler(i.device),{elapsedSeconds:J,durationSeconds:K}=W(r,x,m),X={args:t,width:T,height:M,frame:x,fps:m,elapsedSeconds:J,durationSeconds:K},l=(a,u)=>F(X,a,`${E}_${u}`),Z=l(w,"shadows_cyanRed_sig"),ee=l(v,"shadows_magentaGreen_sig"),ne=l(y,"shadows_yellowBlue_sig"),ae=l(b,"midtones_cyanRed_sig"),te=l(B,"midtones_magentaGreen_sig"),ie=l(_,"midtones_yellowBlue_sig"),re=l(G,"highlights_cyanRed_sig"),oe=l(R,"highlights_magentaGreen_sig"),se=l(C,"highlights_yellowBlue_sig"),le=n.preserveLuminosity===!1?0:1;e[0]=w.val/100,e[1]=v.val/100,e[2]=y.val/100,e[3]=0,e[4]=b.val/100,e[5]=B.val/100,e[6]=_.val/100,e[7]=0,e[8]=G.val/100,e[9]=R.val/100,e[10]=C.val/100,e[11]=0,e[12]=le,e[13]=w.hasStaticSig?1:0,e[14]=v.hasStaticSig?1:0,e[15]=y.hasStaticSig?1:0,e[16]=b.hasStaticSig?1:0,e[17]=B.hasStaticSig?1:0,e[18]=_.hasStaticSig?1:0,e[19]=G.hasStaticSig?1:0,e[20]=R.hasStaticSig?1:0,e[21]=C.hasStaticSig?1:0,e[22]=0,e[23]=0;let ge=i.renderer.getTemporaryBuffer(e),P=i.renderer.getTemporaryTexture(T,M,[H,c,...r.excludeTextures||[]]),ue=i.device.createBindGroup({layout:z,entries:[{binding:0,resource:Z},{binding:1,resource:ee},{binding:2,resource:ne},{binding:3,resource:ae},{binding:4,resource:te},{binding:5,resource:ie},{binding:6,resource:re},{binding:7,resource:oe},{binding:8,resource:se},{binding:9,resource:Y}]});O(g,P.createView(),$,[i.device.createBindGroup({layout:Q,entries:[{binding:0,resource:{buffer:ge}}]}),i.renderer.bindGroupCache.getBindGroup(i.device,q,H,Y),ue]),k(t,P,r.opacity??1)};var ye={WebGPURenderer:N};export{N as a,ye as b};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as le}from"./chunk-XOEEGC4Z.mjs";import{b as se,c as ue}from"./chunk-FLPSWDX4.mjs";import{a as r}from"./chunk-NQZKBFC6.mjs";import{a as te,d as ae,e as G,g as ie,h as _,j as ne,k as re,l as oe,m as L}from"./chunk-ENKKLU7B.mjs";import{w as Z,z as ee}from"./chunk-63SFBHEH.mjs";import{e as n}from"./chunk-BVF64D6H.mjs";n();n();n();n();var N=0,U=1,V=.5,O=50,P=0,F=100,B=0,W=50,H=-100,z=100,ye=r.enum(["Alpha","Luminance","Red","Green","Blue"]),De=r.enum(["Composite","MatteOnly","DecontaminatedRGB"]),we=le().field("decontaminateAmount",r.number().multipleOf(.01).min(N).max(U).default(.7),{bindable:!0,dataTypes:["Number","Signal"],label:"Decontaminate Colors",description:"Amount of edge color spill decontamination/defringing (0.0\u20131.0)."}).field("radius",r.number().multipleOf(.1).min(V).max(O).default(2),{bindable:!0,dataTypes:["Number","Signal"],label:"Edge Detection Radius (px)",description:"Radius in pixels around alpha transitions to refine and decontaminate."}).field("smooth",r.number().min(P).max(F).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Smoothness",description:"Matte edge smoothing curve intensity (0\u2013100)."}).field("feather",r.number().multipleOf(.1).min(B).max(W).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Feather (px)",description:"Sub-pixel gaussian softness along the matte boundary."}).field("shiftEdge",r.number().min(H).max(z).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Shift Edge (%)",description:"Contract (<0) or expand (>0) the edge boundary (-100% to +100%)."}).field("matteChannel",ye.default("Alpha"),{label:"Matte Channel",description:"Channel to extract matte from (Alpha, Luminance, Red, Green, Blue)."}).field("outputMode",De.default("Composite"),{label:"Output Mode",description:"Composite (decontaminated RGB + refined alpha), MatteOnly (grayscale mask), DecontaminatedRGB (clean RGB with full alpha)."}).build(),Oe=we.schema,Pe=r.union([se,ue]);n();var Ge={Alpha:0,Luminance:1,Red:2,Green:3,Blue:4},_e={Composite:0,MatteOnly:1,DecontaminatedRGB:2},Le=`
|
|
2
2
|
struct RefineEdgeUniforms {
|
|
3
3
|
dirX : f32,
|
|
4
4
|
dirY : f32,
|
|
@@ -39,27 +39,7 @@ struct RefineEdgeUniforms {
|
|
|
39
39
|
@group(2) @binding(3) var featherSigTex : texture_2d<f32>;
|
|
40
40
|
@group(2) @binding(4) var shiftEdgeSigTex : texture_2d<f32>;
|
|
41
41
|
@group(2) @binding(5) var signalSamp : sampler;
|
|
42
|
-
|
|
43
|
-
struct VSOut {
|
|
44
|
-
@builtin(position) pos : vec4<f32>,
|
|
45
|
-
@location(0) uv : vec2<f32>,
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
49
|
-
var pos = array<vec2<f32>, 4>(
|
|
50
|
-
vec2<f32>(-1.0, 1.0),
|
|
51
|
-
vec2<f32>(1.0, 1.0),
|
|
52
|
-
vec2<f32>(-1.0, -1.0),
|
|
53
|
-
vec2<f32>(1.0, -1.0)
|
|
54
|
-
);
|
|
55
|
-
var uv = array<vec2<f32>, 4>(
|
|
56
|
-
vec2<f32>(0.0, 0.0),
|
|
57
|
-
vec2<f32>(1.0, 0.0),
|
|
58
|
-
vec2<f32>(0.0, 1.0),
|
|
59
|
-
vec2<f32>(1.0, 1.0)
|
|
60
|
-
);
|
|
61
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
62
|
-
}
|
|
42
|
+
${te}
|
|
63
43
|
|
|
64
44
|
fn extractChannel(color : vec4<f32>, chCode : f32) -> f32 {
|
|
65
45
|
if (chCode < 0.5) {
|
|
@@ -289,4 +269,4 @@ fn extractChannel(color : vec4<f32>, chCode : f32) -> f32 {
|
|
|
289
269
|
return vec4<f32>(decontaminatedColor, 1.0);
|
|
290
270
|
}
|
|
291
271
|
}
|
|
292
|
-
`,de=new WeakMap;function
|
|
272
|
+
`,de=new WeakMap;function Ne(i,a){let s=de.get(i);if(s)return s;let f=ae(i,["uniform"]),u=G(i,3),g=G(i,5),b=i.createShaderModule({code:Le}),t=i.createPipelineLayout({bindGroupLayouts:[f,u,g]}),e=ie(i,{module:b,layouts:t,format:a}),l={uniformLayout:f,textureLayout:u,signalTextureLayout:g,pipeline:e};return de.set(i,l),l}var me=async i=>{let{ctx:a,encoder:s,pass:f,targetTexture:u,targetWidth:g,targetHeight:b,props:t}=i,e=t.virtualMedia?.operation;if(e?.op!=="RefineEdge"||!e)return;let l=t.virtualMedia?.children?.[0];if(!l)return;f.end();let X=t.frame??0,k=t.fps||30,M=g,E=b,d=(x,w,Ie=0,Te=1e3)=>Z(e.inputs,x,w,Ie,Te),R=d(e.decontaminateAmountHandleId,Number(e.decontaminateAmount??.7),N,U),A=d(e.radiusHandleId,Number(e.radius??2),V,O),C=d(e.smoothHandleId,Number(e.smooth??5),P,F),I=d(e.featherHandleId,Number(e.feather??.5),B,W),T=d(e.shiftEdgeHandleId,Number(e.shiftEdge??0),H,z),{texture:h,view:S}=await _(i,l,{props:{...t,virtualMedia:l,renderId:`${t.renderId}-input`}}),o=null;e.matteMedia&&({texture:o}=await _(i,e.matteMedia,{props:{...t,virtualMedia:e.matteMedia,renderId:`${t.renderId}-matte`,excludeTextures:[...t.excludeTextures||[],h]},exclude:[h]}));let{pipeline:$,uniformLayout:Y,textureLayout:j,signalTextureLayout:pe}=Ne(a.device,a.renderer.format),y=a.renderer.samplerCache.getSampler(a.device),{elapsedSeconds:ce,durationSeconds:fe}=re(t,X,k),ge={args:i,width:M,height:E,frame:X,fps:k,elapsedSeconds:ce,durationSeconds:fe},m=(x,w)=>oe(ge,x,x.handleId??`${t.renderId??"refineedge"}_${w}`),he=m(R,"decontam_sig"),Se=m(A,"radius_sig"),xe=m(C,"smooth_sig"),ve=m(I,"feather_sig"),be=m(T,"shiftEdge_sig"),q=a.device.createBindGroup({layout:pe,entries:[{binding:0,resource:he},{binding:1,resource:Se},{binding:2,resource:xe},{binding:3,resource:ve},{binding:4,resource:be},{binding:5,resource:y}]}),Me=Ge[e.matteChannel??"Alpha"]??0,Ee=_e[e.outputMode??"Composite"]??0,Q=o?o.createView():S,p=new Float32Array(20),c=new Float32Array(20),J=[0,0,R.val,A.val,C.val,I.val,T.val,Me,Ee,o?1:0,R.hasStaticSig?1:0,A.hasStaticSig?1:0,C.hasStaticSig?1:0,I.hasStaticSig?1:0,T.hasStaticSig?1:0,0,0,0,0,0];p.set(J),p[0]=1,p[1]=0,p[15]=0,c.set(J),c[0]=0,c[1]=1,c[15]=1;let D=a.renderer.getTemporaryTexture(M,E,[h,...o?[o]:[],u,...t.excludeTextures||[]]),K=a.renderer.getTemporaryTexture(M,E,[h,...o?[o]:[],D,u,...t.excludeTextures||[]]),Re=a.renderer.getTemporaryBuffer(p);L(s,D.createView(),$,[a.device.createBindGroup({layout:Y,entries:[{binding:0,resource:{buffer:Re}}]}),a.device.createBindGroup({layout:j,entries:[{binding:0,resource:S},{binding:1,resource:Q},{binding:2,resource:S},{binding:3,resource:y}]}),q]);let Ae=a.renderer.getTemporaryBuffer(c);L(s,K.createView(),$,[a.device.createBindGroup({layout:Y,entries:[{binding:0,resource:{buffer:Ae}}]}),a.device.createBindGroup({layout:j,entries:[{binding:0,resource:D.createView()},{binding:1,resource:Q},{binding:2,resource:S},{binding:3,resource:y}]}),q]);let Ce=t.opacity??e.opacity??1;ne(i,K,Ce)};var Ze=ee({WebGPURenderer:me});export{me as a,Ze as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as L}from"./chunk-Q4Z54DQ7.mjs";import{e as G}from"./chunk-BVF64D6H.mjs";G();var T=class{deviceCaches=new WeakMap;devicePromises=new WeakMap;rawDataCache=new Map;rawDataPromises=new Map;listeners=new Set;onChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}emit(e){for(let t of this.listeners)try{t(e)}catch{}}getAnyMatching(e,t){let a=this.getCache(t),r=Array.from(a.keys());for(let o=r.length-1;o>=0;o--){let u=r[o];if(u.startsWith(e))return a.get(u)}}getOrCreateRawDataPromise(e){let t=this.rawDataPromises.get(e);if(!t){let a,r;t={promise:new Promise((u,f)=>{a=u,r=f}),resolve:a,reject:r},this.rawDataPromises.set(e,t)}return t}rejectRawDataPromise(e,t){let a=this.rawDataPromises.get(e);a&&(a.reject(t),this.rawDataPromises.delete(e)),this.emit(e)}getCache(e){let t=this.deviceCaches.get(e);return t||(t=new Map,this.deviceCaches.set(e,t)),t}getPromises(e){let t=this.devicePromises.get(e);return t||(t=new Map,this.devicePromises.set(e,t)),t}get(e,t){return this.getCache(t).get(e)}set(e,t,a){let r=this.getCache(t),o=r.get(e);if(o&&o!==a){if(o.texture!==a.texture){let u=o.texture;t.queue.onSubmittedWorkDone().then(()=>{try{u.destroy()}catch{}}).catch(()=>{})}if(o.vertexBuffer!==a.vertexBuffer){let u=o.vertexBuffer;t.queue.onSubmittedWorkDone().then(()=>{try{u.destroy()}catch{}}).catch(()=>{})}}r.set(e,a)}getRawData(e){return this.rawDataCache.get(e)}getAnyRawData(){let e=Array.from(this.rawDataCache.values());return e[e.length-1]}createOrUpdate(e,t,a,r,o){let u={points:a,size:r,type:o};this.rawDataCache.set(e,u);let f=this.rawDataPromises.get(e);f&&(f.resolve(u),this.rawDataPromises.delete(e));let D=[];if(o==="3D"){let s=0;for(let i=0;i<r;i++)for(let n=0;n<r;n++)for(let d=0;d<r;d++){let c=d/(r-1||1),h=n/(r-1||1),g=i/(r-1||1),x=a[s]||[c,h,g];s++,D.push(c-.5,h-.5,g-.5),D.push(x[0],x[1],x[2])}}else for(let s=0;s<a.length;s++){let i=s/(a.length-1||1),n=a[s];D.push(i-.5,0,0),D.push(n[0],n[1],n[2])}let y=new Float32Array(D),l=this.get(e,t),m=l?.texture;if(!m||l?.size!==r||l?.type!==o){if(l){let s=l.texture;t.queue.onSubmittedWorkDone().then(()=>{try{s.destroy()}catch{}}).catch(()=>{})}o==="3D"?m=t.createTexture({size:[r,r,r],dimension:"3d",format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST}):m=t.createTexture({size:[r,1,1],dimension:"1d",format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST})}if(o==="3D"){let i=Math.ceil(r*4/256)*256,n=new Uint8Array(i*r*r),d=0;for(let c=0;c<r;c++)for(let h=0;h<r;h++)for(let g=0;g<r;g++){let x=g/(r-1||1),w=h/(r-1||1),C=c/(r-1||1),U=a[d]||[x,w,C];d++;let b=g*4+h*i+c*i*r;n[b]=Math.max(0,Math.min(255,Math.round(U[0]*255))),n[b+1]=Math.max(0,Math.min(255,Math.round(U[1]*255))),n[b+2]=Math.max(0,Math.min(255,Math.round(U[2]*255))),n[b+3]=255}t.queue.writeTexture({texture:m},n,{bytesPerRow:i,rowsPerImage:r},[r,r,r])}else{let i=new Uint8Array(r*4);for(let n=0;n<r;n++){let d=a[n]||[n/(r-1||1),0,0],c=n*4;i[c]=Math.max(0,Math.min(255,Math.round(d[0]*255))),i[c+1]=Math.max(0,Math.min(255,Math.round(d[1]*255))),i[c+2]=Math.max(0,Math.min(255,Math.round(d[2]*255))),i[c+3]=255}t.queue.writeTexture({texture:m},i,{},[r,1,1])}let P=l?.vertexBuffer;if(!P||P.size<y.byteLength){if(l){let s=l.vertexBuffer;t.queue.onSubmittedWorkDone().then(()=>{try{s.destroy()}catch{}}).catch(()=>{})}P=t.createBuffer({size:y.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST})}t.queue.writeBuffer(P,0,y);let p={texture:m,type:o,size:r,vertexBuffer:P,vertexCount:a.length};return this.set(e,t,p),this.emit(e),p}async getOrLoad(e,t,a){if(a?.aborted)throw new DOMException("The operation was aborted.","AbortError");let r=this.get(e,t);if(r)return r;let o=this.rawDataCache.get(e);if(o)return this.createOrUpdate(e,t,o.points,o.size,o.type);let u=this.getPromises(t),f=u.get(e);return f||(f=(async()=>{if(e.startsWith("runtime://")){let p=this.getOrCreateRawDataPromise(e),s,i=new Promise((c,h)=>{let g=()=>{s=setTimeout(()=>{(()=>{if(typeof window<"u"){let w=window.renderer_delayRenderHandles;if(Array.isArray(w)&&w.length>0)return!0}if(typeof globalThis<"u"){let w=globalThis.__GATEWAI_DELAYS__;if(w instanceof Set&&w.size>0)return!0}return!1})()?g():h(new Error(`Timeout waiting for runtime LUT "${e}" after 5000ms.`))},5e3)};g()}),n,d;a&&(d=new Promise((c,h)=>{n=()=>{h(new DOMException("The operation was aborted.","AbortError"))},a.addEventListener("abort",n)}));try{let c=[p.promise,i];d&&c.push(d);let h=await Promise.race(c);return this.createOrUpdate(e,t,h.points,h.size,h.type)}finally{clearTimeout(s),n&&a&&a.removeEventListener("abort",n)}}let y=(await A(e,a)).split(/\r?\n/),l=33,m="3D",P=[];for(let p of y){let s=p.trim();if(!s||s.startsWith("#"))continue;if(s.startsWith("LUT_3D_SIZE")){let n=s.split(/\s+/);l=parseInt(n[1],10),m="3D";continue}if(s.startsWith("LUT_1D_SIZE")){let n=s.split(/\s+/);l=parseInt(n[1],10),m="1D";continue}if(s.match(/^[a-zA-Z]/))continue;let i=s.split(/\s+/).map(Number);i.length===3&&i.every(n=>!isNaN(n))&&P.push([i[0],i[1],i[2]])}if(P.length===0)throw new Error("No valid color mappings found in LUT file.");return this.createOrUpdate(e,t,P,l,m)})(),u.set(e,f),f.catch(()=>{u.delete(e)})),f}evict(e,t){let a=this.getCache(t),r=a.get(e);if(r){let o=r.texture,u=r.vertexBuffer;t.queue.onSubmittedWorkDone().then(()=>{try{o.destroy()}catch{}try{u.destroy()}catch{}}).catch(()=>{}),a.delete(e)}this.getPromises(t).delete(e)}hasPending(e){let t=this.devicePromises.get(e);return t!==void 0&&t.size>0||this.rawDataPromises.size>0}async awaitAllPending(e){let t=Array.from(this.getPromises(e).values());await Promise.all(t)}destroy(){this.deviceCaches=new WeakMap,this.devicePromises=new WeakMap,this.rawDataCache.clear(),this.rawDataPromises.clear()}},M="__GATEWAI_LUT_STORE__",E=(globalThis[M]||(globalThis[M]=new T),globalThis[M]);async function A(v,e){let t=await L(v);if(t!==null){let{readFile:r}=await import("./shims/fs-promises.mjs");return r(t,{encoding:"utf8",signal:e})}let a=await fetch(v,{signal:e});if(!a.ok)throw new Error(`Failed to load LUT file: ${a.statusText}`);return a.text()}export{E as a};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import{a as W,d as V,e as $,f as j,g as E,h as F,j as A,k as Y,m as q}from"./chunk-ENKKLU7B.mjs";import{z as O}from"./chunk-63SFBHEH.mjs";import{d as p}from"./chunk-6YJP57MZ.mjs";import{e as C}from"./chunk-BVF64D6H.mjs";C();C();var ne=`
|
|
2
|
+
struct ColorKeyUniforms {
|
|
3
|
+
similarity : f32,
|
|
4
|
+
smoothness : f32,
|
|
5
|
+
spillSuppression : f32,
|
|
6
|
+
colorSpace : f32, // 0 for YUV, 1 for RGB
|
|
7
|
+
spillSuppressionType : f32, // 0 for Desaturate, 1 for Neutralize, 2 for None
|
|
8
|
+
keyR : f32,
|
|
9
|
+
keyG : f32,
|
|
10
|
+
keyB : f32,
|
|
11
|
+
hasSimilaritySig : f32,
|
|
12
|
+
hasSmoothnessSig : f32,
|
|
13
|
+
hasSpillSig : f32,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
@group(0) @binding(0) var<uniform> u : ColorKeyUniforms;
|
|
17
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
18
|
+
@group(1) @binding(1) var samp : sampler;
|
|
19
|
+
|
|
20
|
+
@group(2) @binding(0) var similaritySigTex : texture_2d<f32>;
|
|
21
|
+
@group(2) @binding(1) var smoothnessSigTex : texture_2d<f32>;
|
|
22
|
+
@group(2) @binding(2) var spillSigTex : texture_2d<f32>;
|
|
23
|
+
@group(2) @binding(3) var signalSamp : sampler;
|
|
24
|
+
${W}
|
|
25
|
+
|
|
26
|
+
fn rgb2yuv(rgb: vec3<f32>) -> vec3<f32> {
|
|
27
|
+
let y = 0.299 * rgb.r + 0.587 * rgb.g + 0.114 * rgb.b;
|
|
28
|
+
let u = -0.169 * rgb.r - 0.331 * rgb.g + 0.500 * rgb.b;
|
|
29
|
+
let v = 0.500 * rgb.r - 0.419 * rgb.g - 0.081 * rgb.b;
|
|
30
|
+
return vec3<f32>(y, u, v);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
fn yuv2rgb(yuv: vec3<f32>) -> vec3<f32> {
|
|
34
|
+
let r = yuv.x + 1.402 * yuv.z;
|
|
35
|
+
let g = yuv.x - 0.344 * yuv.y - 0.714 * yuv.z;
|
|
36
|
+
let b = yuv.x + 1.772 * yuv.y;
|
|
37
|
+
return vec3<f32>(r, g, b);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
41
|
+
let src_color = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
42
|
+
if (src_color.a < 1e-5) {
|
|
43
|
+
return src_color;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Unpremultiply alpha for keying and grading
|
|
47
|
+
let unpremult_rgb = src_color.rgb / src_color.a;
|
|
48
|
+
|
|
49
|
+
// Resolve dynamic signals if connected, otherwise use static uniform values
|
|
50
|
+
var similarity = u.similarity;
|
|
51
|
+
if (u.hasSimilaritySig > 0.5) {
|
|
52
|
+
similarity = textureSampleLevel(similaritySigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
var smoothness = u.smoothness;
|
|
56
|
+
if (u.hasSmoothnessSig > 0.5) {
|
|
57
|
+
smoothness = textureSampleLevel(smoothnessSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
var spillSuppression = u.spillSuppression;
|
|
61
|
+
if (u.hasSpillSig > 0.5) {
|
|
62
|
+
spillSuppression = textureSampleLevel(spillSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
let keyColor = vec3<f32>(u.keyR, u.keyG, u.keyB);
|
|
66
|
+
|
|
67
|
+
// 1. Calculate similarity distance
|
|
68
|
+
var dist = 0.0;
|
|
69
|
+
if (u.colorSpace < 0.5) {
|
|
70
|
+
// YUV (Chroma Distance)
|
|
71
|
+
let C_yuv = rgb2yuv(unpremult_rgb);
|
|
72
|
+
let K_yuv = rgb2yuv(keyColor);
|
|
73
|
+
dist = distance(C_yuv.yz, K_yuv.yz);
|
|
74
|
+
} else {
|
|
75
|
+
// RGB (Exact Distance)
|
|
76
|
+
dist = distance(unpremult_rgb, keyColor);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// 2. Calculate transparency mask
|
|
80
|
+
var mask = 0.0;
|
|
81
|
+
if (smoothness < 0.0001) {
|
|
82
|
+
mask = select(0.0, 1.0, dist >= similarity);
|
|
83
|
+
} else {
|
|
84
|
+
mask = smoothstep(similarity, similarity + smoothness, dist);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// 3. Apply spill suppression
|
|
88
|
+
var final_rgb = unpremult_rgb;
|
|
89
|
+
if (u.spillSuppressionType < 2.5) { // 0 for Desaturate, 1 for Neutralize, 2 for None
|
|
90
|
+
let C_yuv = rgb2yuv(unpremult_rgb);
|
|
91
|
+
let K_yuv = rgb2yuv(keyColor);
|
|
92
|
+
let K_chroma = K_yuv.yz;
|
|
93
|
+
let K_len_sq = dot(K_chroma, K_chroma);
|
|
94
|
+
|
|
95
|
+
if (K_len_sq > 1e-6) {
|
|
96
|
+
let C_chroma = C_yuv.yz;
|
|
97
|
+
let proj = dot(C_chroma, K_chroma) / K_len_sq;
|
|
98
|
+
if (proj > 0.0) {
|
|
99
|
+
let C_para = proj * K_chroma;
|
|
100
|
+
var C_chroma_suppressed = C_chroma;
|
|
101
|
+
|
|
102
|
+
if (u.spillSuppressionType < 0.5) {
|
|
103
|
+
// Desaturate
|
|
104
|
+
C_chroma_suppressed = C_chroma - spillSuppression * C_para;
|
|
105
|
+
} else {
|
|
106
|
+
// Neutralize (completely shift to neutral gray chroma)
|
|
107
|
+
C_chroma_suppressed = C_chroma - C_para;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
final_rgb = yuv2rgb(vec3<f32>(C_yuv.x, C_chroma_suppressed.x, C_chroma_suppressed.y));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
let final_alpha = src_color.a * mask;
|
|
116
|
+
return vec4<f32>(clamp(final_rgb, vec3<f32>(0.0), vec3<f32>(1.0)) * final_alpha, final_alpha);
|
|
117
|
+
}
|
|
118
|
+
`,o=new Float32Array(12),le=j(i=>({uniformLayout:V(i,["uniform"]),singleTextureLayout:V(i,["texture","sampler"]),signalTextureLayout:$(i,3),pipelineCache:new Map}));function ue(i,e){let r=le(i),m=`colorkey_${e}`,a=r.pipelineCache.get(m);if(!a){let c=i.createShaderModule({label:`colorkey_${e}.wgsl`,code:ne});a=E(i,{label:`ColorKeyPipeline_${e}`,module:c,layouts:[r.uniformLayout,r.singleTextureLayout,r.signalTextureLayout],format:e}),r.pipelineCache.set(m,a)}return{colorKeyPipeline:a,uniformLayout:r.uniformLayout,singleTextureLayout:r.singleTextureLayout,signalTextureLayout:r.signalTextureLayout}}function pe(i){let e=i.replace("#","");e.length===3&&(e=e.split("").map(c=>c+c).join(""));let r=parseInt(e.substring(0,2),16)/255,m=parseInt(e.substring(2,4),16)/255,a=parseInt(e.substring(4,6),16)/255;return[r,m,a]}var Q=async i=>{let{ctx:e,encoder:r,pass:m,targetTexture:a,targetWidth:c,targetHeight:J,props:s}=i,f=s.frame??0,h=s.fps||30,t=s.virtualMedia?.operation;if(t?.op!=="ColorKey"||!t)return;let w=s.virtualMedia.children?.[0];if(!w)return;m.end();let S=c,b=J,T=t.inputs?Object.keys(t.inputs)[0]:"colorkey_node",n=t.similarityHandleId?t.inputs?.[t.similarityHandleId]:null,R=!!(n?.connectionValid&&(n.outputItem?.type==="Signal"||n.outputItem?.type==="Numeric")),y=R&&n?.outputItem?.data?n.outputItem.data:null,v=.4,I=!1;R?y&&(v=Math.max(0,Math.min(1,Number(y.offset??0))),I=!0):n?.connectionValid&&n.outputItem?.type==="Number"?v=Math.max(0,Math.min(1,Number(n.outputItem.data??.4))):v=Math.max(0,Math.min(1,Number(t.similarity??.4)));let l=t.smoothnessHandleId?t.inputs?.[t.smoothnessHandleId]:null,U=!!(l?.connectionValid&&(l.outputItem?.type==="Signal"||l.outputItem?.type==="Numeric")),d=U&&l?.outputItem?.data?l.outputItem.data:null,_=.1,K=!1;U?d&&(_=Math.max(0,Math.min(1,Number(d.offset??0))),K=!0):l?.connectionValid&&l.outputItem?.type==="Number"?_=Math.max(0,Math.min(1,Number(l.outputItem.data??.1))):_=Math.max(0,Math.min(1,Number(t.smoothness??.1)));let u=t.spillSuppressionHandleId?t.inputs?.[t.spillSuppressionHandleId]:null,P=!!(u?.connectionValid&&(u.outputItem?.type==="Signal"||u.outputItem?.type==="Numeric")),g=P&&u?.outputItem?.data?u.outputItem.data:null,x=.2,L=!1;P?g&&(x=Math.max(0,Math.min(1,Number(g.offset??0))),L=!0):u?.connectionValid&&u.outputItem?.type==="Number"?x=Math.max(0,Math.min(1,Number(u.outputItem.data??.2))):x=Math.max(0,Math.min(1,Number(t.spillSuppression??.2)));let{texture:B}=await F(i,w),{colorKeyPipeline:X,uniformLayout:Z,singleTextureLayout:ee,signalTextureLayout:te}=ue(e.device,e.renderer.format),z=e.renderer.samplerCache.getSampler(e.device),{elapsedSeconds:k,durationSeconds:N}=Y(s,f,h),D;I&&y?D=p.getOrCreate2DTextureView(e.device,r,y.nodeId??`${T}_similarity_sig`,k,N,y,S,b,s.renderId,f,h):D=p.getDummy1x1TextureView(e.device);let G;K&&d?G=p.getOrCreate2DTextureView(e.device,r,d.nodeId??`${T}_smoothness_sig`,k,N,d,S,b,s.renderId,f,h):G=p.getDummy1x1TextureView(e.device);let M;L&&g?M=p.getOrCreate2DTextureView(e.device,r,g.nodeId??`${T}_spill_sig`,k,N,g,S,b,s.renderId,f,h):M=p.getDummy1x1TextureView(e.device);let[re,ie,oe]=pe(t.keyColor??"#00ff00");o[0]=v,o[1]=_,o[2]=x,o[3]=t.colorSpace==="RGB"?1:0,o[4]=t.spillSuppressionType==="None"?2:t.spillSuppressionType==="Neutralize"?1:0,o[5]=re,o[6]=ie,o[7]=oe,o[8]=I?1:0,o[9]=K?1:0,o[10]=L?1:0,o[11]=0;let H=e.renderer.getTemporaryTexture(S,b,[B,a,...s.excludeTextures||[]]),se=e.renderer.getTemporaryBuffer(o);q(r,H.createView(),X,[e.device.createBindGroup({layout:Z,entries:[{binding:0,resource:{buffer:se}}]}),e.renderer.bindGroupCache.getBindGroup(e.device,ee,B,z),e.device.createBindGroup({layout:te,entries:[{binding:0,resource:D},{binding:1,resource:G},{binding:2,resource:M},{binding:3,resource:z}]})]),A(i,H,t.opacity??1)};var he=O({WebGPURenderer:Q});export{he as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as g}from"./chunk-
|
|
1
|
+
import{a as g}from"./chunk-OG62XGCT.mjs";import{c as m,h as u,z as l}from"./chunk-63SFBHEH.mjs";import{e as t}from"./chunk-BVF64D6H.mjs";t();t();var x=["pan"],w=()=>`
|
|
2
2
|
struct Uniforms {
|
|
3
3
|
sampleRate : f32,
|
|
4
4
|
pan : f32,
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as E}from"./chunk-E4RAFHZM.mjs";import{b as R,e as x,r as A}from"./chunk-BWJS6G7R.mjs";import{m as P}from"./chunk-4GEWSUX5.mjs";import{o as g}from"./chunk-YAQFFQPG.mjs";import{d as m,e as F}from"./chunk-BVF64D6H.mjs";F();F();var I=65536,S=1953658213,$=1954115633,N=1330926671,k=1953784678;function U(r,t){if(r.length<12)throw new Error(`Invalid font binary for "${t}": File size (${r.length} bytes) is too small to be a valid TrueType or OpenType font.`);let e=(r[0]??0)<<24|(r[1]??0)<<16|(r[2]??0)<<8|(r[3]??0);if(e===I||e===S||e===$||e===k)return"truetype";if(e===N)return"opentype";let i=(e>>>0).toString(16).padStart(8,"0");throw new Error(`Invalid font format for "${t}": Expected a valid TrueType (.ttf) or OpenType (.otf) font binary. Found header tag: 0x${i}.`)}async function M(r){if(r instanceof Uint8Array)return{buffer:r};if(typeof r!="string")throw new TypeError(`Font source must be a file path string or Uint8Array, received: ${typeof r}`);let t=r;if(t.startsWith("http://")||t.startsWith("https://")){let s=await fetch(t);if(!s.ok)throw new Error(`Failed to download font from "${t}": HTTP ${s.status} ${s.statusText}`);let c=await s.arrayBuffer();return{buffer:new Uint8Array(c),filePath:t}}if(t.startsWith("file://"))try{t=new URL(t).pathname}catch{t=t.replace(/^file:\/\//,"")}let e=[t,g.resolve(m.cwd(),t),g.resolve(m.cwd(),"assets/fonts",t),g.resolve(m.cwd(),"assets/fonts",g.basename(t))],i=m.cwd();for(let s=0;s<5;s++){e.push(g.resolve(i,t)),e.push(g.resolve(i,"assets/fonts",g.basename(t)));let c=g.dirname(i);if(c===i)break;i=c}let a=null,f=null;for(let s of e)try{if((await P.stat(s)).isFile()){a=s,f=await P.readFile(s);break}}catch{}if(!a||!f)throw new Error(`Font file not found: "${r}". Checked candidate locations:
|
|
2
|
+
- ${e.join(`
|
|
3
|
+
- `)}`);return{buffer:new Uint8Array(f.buffer,f.byteOffset,f.byteLength),filePath:a}}var v=class r{static instance=null;fonts=new Map;constructor(){}static getInstance(){return r.instance||(r.instance=new r),r.instance}static async register(t,e){return r.getInstance().register(t,e)}static async registerEmojiFont(t){let{buffer:e,filePath:i}=await M(t);U(e,i??(typeof t=="string"?t:"Uint8Array")),x.setEmojiFont(e,i)}static measure(t,e){let i=e.fontSize??48,a=x.getFont(e.fontFamily,e.fontWeight,null);if(!a)throw new Error(`FontManager.measure: font "${e.fontFamily}" is not registered. Call \`await FontManager.register(...)\` first.`);let f=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*i:e.lineHeight??i*1.2,s=e.letterSpacing??0,{width:c,height:p,layout:y}=A.measure(t,a,i,s,f,e.width,void 0,e.direction),T=i/a.unitsPerEm,o=[],w=new Set,d=0;for(let n of y.glyphs){let l=n.textIndex;if(l===void 0){let u=t.indexOf(n.char,d);l=u>=0?u:d}if(w.has(l))continue;w.add(l),d=l+n.char.length;let h=n.clusterAdvance??n.cp.advanceWidth*(n.fontScale??T);o.push({char:n.char,index:l,x:n.clusterX??n.x,y:n.y,width:h+s,line:n.lineIndex,...n.rtl&&{rtl:!0}})}let b=n=>{if(n<=0||o.length===0){let u=o[0];return u?u.rtl?u.x+u.width-s:u.x:0}let l=o.filter(u=>u.index<n),h=l[l.length-1];return h?h.rtl?h.x:h.x+h.width-s:0};return{width:c,height:p,lines:y.linesCount,lineHeight:f,glyphs:o,caretX:b,widthOf:n=>b(n)-(o[0]?.x??0)}}static get(t){return r.getInstance().get(t)}static has(t){return r.getInstance().has(t)}static getAll(){return r.getInstance().getAll()}static getRegisteredFontPaths(){return r.getInstance().getRegisteredFontPaths()}static clear(){r.getInstance().clear()}async register(t,e){let i,a,f,s;if(typeof t=="object"&&t!==null)i=t.family,a=t.source,f=t.weight,s=t.style;else if(typeof t=="string"&&e!==void 0)i=t,a=e;else if(typeof t=="string")i=void 0,a=t;else throw new TypeError("Invalid arguments passed to FontManager.register");let{buffer:c,filePath:p}=await M(a),y=p??(typeof a=="string"?a:"Uint8Array"),T=U(c,y),o;try{let n=R(c);n&&"fonts"in n&&Array.isArray(n.fonts)&&n.fonts.length>0?o=n.fonts[0]:o=n}catch(n){let l=n instanceof Error?n.message:String(n);throw new Error(`Failed to parse TrueType/OpenType font binary for "${y}": ${l}`)}let w=o.familyName||o.postscriptName||g.parse(y).name,d=i?.trim()||w,b={family:d,source:a,filePath:p,format:T,postscriptName:o.postscriptName,unitsPerEm:o.unitsPerEm,weight:f,style:s};return this.fonts.set(d,b),p&&await E(d,p),x.setParsed(d,o),b}get(t){return this.fonts.get(t)}has(t){return this.fonts.has(t)}getAll(){return Array.from(this.fonts.values())}getRegisteredFontPaths(){let t=[];for(let e of this.fonts.values())e.filePath?t.push(e.filePath):typeof e.source=="string"&&t.push(e.source);return t}clear(){this.fonts.clear()}};export{v as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as P,d as y,e as F,f as N,g as k,h as C,j as H,k as D,m as O}from"./chunk-ENKKLU7B.mjs";import{z as G}from"./chunk-63SFBHEH.mjs";import{d as x}from"./chunk-6YJP57MZ.mjs";import{e as h}from"./chunk-BVF64D6H.mjs";h();h();function Y(e,t,r,u){if(e==null)return t;if(typeof e=="object"&&e!==null){if("get"in e&&typeof e.get=="function")try{let o=e.get({frame:r,fps:u,time:u>0?r/u:0,duration:0,durationMs:0,progress:0,deltaTime:u>0?1/u:0}),p=Number(o);if(Number.isFinite(p))return p}catch{}if("value"in e){let o=Number(e.value);if(Number.isFinite(o))return o}}else if(typeof e=="function")try{let o=e(r,u),p=Number(o);if(Number.isFinite(p))return p}catch{}let s=Number(e);return Number.isFinite(s)?s:t}function b(e,t,r,u,s,o=0,p=30){let i=`${t}HandleId`,d=e[i],a=d?e.inputs?.[d]:null,l=!!(a?.connectionValid&&a.outputItem?.type==="Signal"),n=l?a?.outputItem?.data:null,c=r;if(l)n&&typeof n=="object"&&"offset"in n&&(c=Number(n.offset??r));else if(a?.connectionValid&&a.outputItem?.type==="Number")c=Number(a.outputItem.data??r);else{let v=e[t]??e.signals?.[t];c=Y(v,r,o,p)}return c=Math.max(u,Math.min(s,c)),{hasSignal:l,sd:n,value:c}}var Z=`
|
|
2
2
|
struct ModulateUniforms {
|
|
3
3
|
hue : f32,
|
|
4
4
|
brightness : f32,
|
|
@@ -26,27 +26,7 @@ struct ModulateUniforms {
|
|
|
26
26
|
@group(2) @binding(4) var saturationTex : texture_2d<f32>;
|
|
27
27
|
@group(2) @binding(5) var sepiaTex : texture_2d<f32>;
|
|
28
28
|
@group(2) @binding(6) var sigSamp : sampler;
|
|
29
|
-
|
|
30
|
-
struct VSOut {
|
|
31
|
-
@builtin(position) pos : vec4<f32>,
|
|
32
|
-
@location(0) uv : vec2<f32>,
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
|
|
36
|
-
var pos = array<vec2<f32>, 4>(
|
|
37
|
-
vec2<f32>(-1.0, 1.0),
|
|
38
|
-
vec2<f32>(1.0, 1.0),
|
|
39
|
-
vec2<f32>(-1.0, -1.0),
|
|
40
|
-
vec2<f32>(1.0, -1.0)
|
|
41
|
-
);
|
|
42
|
-
var uv = array<vec2<f32>, 4>(
|
|
43
|
-
vec2<f32>(0.0, 0.0),
|
|
44
|
-
vec2<f32>(1.0, 0.0),
|
|
45
|
-
vec2<f32>(0.0, 1.0),
|
|
46
|
-
vec2<f32>(1.0, 1.0)
|
|
47
|
-
);
|
|
48
|
-
return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
|
|
49
|
-
}
|
|
29
|
+
${P}
|
|
50
30
|
|
|
51
31
|
fn apply_exposure(c: vec4<f32>, exposure: f32) -> vec4<f32> {
|
|
52
32
|
let scale = pow(2.0, exposure);
|
|
@@ -181,4 +161,4 @@ fn apply_sepia(c: vec4<f32>, s: f32) -> vec4<f32> {
|
|
|
181
161
|
|
|
182
162
|
return color;
|
|
183
163
|
}
|
|
184
|
-
`,
|
|
164
|
+
`,f=new Float32Array(12),ee=N(e=>({modulateUniformLayout:y(e,["uniform"]),singleTextureLayout:y(e,["texture","sampler"]),modulateSignalsLayout:F(e,6),pipelineCache:new Map}));function te(e,t){let r=ee(e),u=`modulate_${t}`,s=r.pipelineCache.get(u);if(!s){let o=e.createShaderModule({label:`modulate_static_${t}.wgsl`,code:Z});s=k(e,{label:`ModulatePipeline_static_${t}`,module:o,layouts:[r.modulateUniformLayout,r.singleTextureLayout,r.modulateSignalsLayout],format:t}),r.pipelineCache.set(u,s)}return{modulatePipeline:s,modulateUniformLayout:r.modulateUniformLayout,singleTextureLayout:r.singleTextureLayout,modulateSignalsLayout:r.modulateSignalsLayout}}var W=async e=>{let{ctx:t,encoder:r,pass:u,targetTexture:s,targetWidth:o,targetHeight:p,props:i}=e,d=i.frame??0,a=i.compositionFrame??d,l=i.fps||30,n=i.virtualMedia?.operation;if(n?.op!=="Modulate"||!n)return;let c=i.virtualMedia.children?.[0];if(!c)return;u.end();let v=b(n,"hue",0,0,360,a,l),S=b(n,"brightness",1,0,2,a,l),w=b(n,"contrast",1,0,2,a,l),_=b(n,"exposure",0,-2,2,a,l),T=b(n,"saturation",1,0,2,a,l),L=b(n,"sepia",0,0,1,a,l),R=o,V=p,{texture:I}=await C(e,c),{modulatePipeline:B,modulateUniformLayout:$,singleTextureLayout:E,modulateSignalsLayout:j}=te(t.device,t.renderer.format),A=t.renderer.samplerCache.getSampler(t.device),M=t.renderer.getTemporaryTexture(R,V,[I,s,...i.excludeTextures||[]]);f[0]=v.value,f[1]=S.value,f[2]=w.value,f[3]=_.value,f[4]=T.value,f[5]=L.value;let K=[{name:"hue",info:v,idx:6},{name:"brightness",info:S,idx:7},{name:"contrast",info:w,idx:8},{name:"exposure",info:_,idx:9},{name:"saturation",info:T,idx:10},{name:"sepia",info:L,idx:11}],m=[],{elapsedSeconds:Q,durationSeconds:q}=D(i,d,l);for(let g of K){let U=!!(g.info.hasSignal&&g.info.sd);if(f[g.idx]=U?1:0,U){let J=x.getOrCreate2DTextureView(t.device,r,g.info.sd.nodeId??`modulate_${g.name}_sig`,Q,q,g.info.sd,R,V,i.renderId,d,l);m.push(J)}else m.push(x.getDummy1x1TextureView(t.device))}let z=t.renderer.getTemporaryBuffer(f);O(r,M.createView(),B,[t.device.createBindGroup({layout:$,entries:[{binding:0,resource:{buffer:z}}]}),t.renderer.bindGroupCache.getBindGroup(t.device,E,I,A),t.device.createBindGroup({layout:j,entries:[{binding:0,resource:m[0]},{binding:1,resource:m[1]},{binding:2,resource:m[2]},{binding:3,resource:m[3]},{binding:4,resource:m[4]},{binding:5,resource:m[5]},{binding:6,resource:A}]})]),H(e,M,n.opacity??1)};var se=G({WebGPURenderer:W});export{se as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as u}from"./chunk-LKYN3BM2.mjs";import{e as f}from"./chunk-BVF64D6H.mjs";f();f();function b(n,e){let t=n.createTexture({size:[e.width,e.height],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return e.bitmap?n.queue.copyExternalImageToTexture({source:e.bitmap},{texture:t,premultipliedAlpha:!0},[e.width,e.height]):e.buffer&&n.queue.writeTexture({texture:t},e.buffer,{bytesPerRow:e.width*4},[e.width,e.height]),t}var w=class{cache=new Map;async load(e,t,l,s){let i=Math.max(1,Math.ceil(t)),a=Math.max(1,Math.ceil(l)),c=`${e}-${i}-${a}-${s}`,h=this.cache.get(c);return h||(h=(async()=>{let m;if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("data:")||!s){let r=await fetch(e);if(!r.ok)throw new Error(`Failed to fetch SVG: ${e}`);m=await r.text()}else{let r=e;if(r.startsWith("file://"))try{r=new URL(r).pathname}catch{r=r.replace(/^file:\/\//,"")}try{m=await(await import("./shims/fs-promises.mjs")).readFile(r,"utf-8")}catch{let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch SVG: ${e}`);m=await o.text()}}if(s){let{renderAsync:r}=await import("./resvg-js-VMU4A77S.mjs"),o=await r(m,{fitTo:{mode:"width",value:i}});return{width:o.width,height:o.height,buffer:new Uint8Array(o.pixels)}}let p=new Blob([m],{type:"image/svg+xml"}),g=URL.createObjectURL(p),d=new Image;await new Promise((r,o)=>{d.onload=()=>r(),d.onerror=()=>o(new Error(`Failed to load SVG image: ${e}`)),d.src=g});let x=new OffscreenCanvas(i,a);x.getContext("2d").drawImage(d,0,0,i,a),URL.revokeObjectURL(g);let y=await createImageBitmap(x);return{width:i,height:a,bitmap:y}})(),this.cache.set(c,h),h.catch(()=>this.cache.delete(c))),h}},T=new w;async function E(n,e,t){let l=Math.max(1,Math.ceil(t.dstRect.width)),s=Math.max(1,Math.ceil(t.dstRect.height)),i=`${t.src}-${l}-${s}`,a=u.acquire(i);if(!a)try{let c=await T.load(t.src,l,s,t.isHeadless??!1);a=u.acquire(i),a||(a=b(n.device,c),u.set(i,a,n.device))}catch(c){console.error("Failed to load SVG texture:",c);return}n.renderer.drawTexture(e,a,t.dstRect,{opacity:t.opacity??1,transform:t.matrix}),u.release(i)}export{b as a,E as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as r,e}from"./chunk-BVF64D6H.mjs";var s=r((i,n)=>{e();var t=()=>new Proxy(function(){},{get:(u,o)=>o==="__esModule"?!0:o===Symbol.toPrimitive?()=>"":t(),apply:()=>t(),construct:()=>t()});n.exports=t()});export{s as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as re}from"./chunk-37EFVZWT.mjs";import{h as ie}from"./chunk-
|
|
1
|
+
import{a as re}from"./chunk-37EFVZWT.mjs";import{h as ie}from"./chunk-63SFBHEH.mjs";import{d as M}from"./chunk-6YJP57MZ.mjs";import{e as ae}from"./chunk-BVF64D6H.mjs";ae();var le=()=>{if(typeof window>"u")return Promise.resolve();let B=globalThis.scheduler;return typeof B?.yield=="function"?B.yield():new Promise(n=>setTimeout(n,0))},se=class B{static devicePipelineCache=new WeakMap;static getDeviceCache(n){let r=B.devicePipelineCache.get(n);return r||(r=new Map,B.devicePipelineCache.set(n,r)),r}static getCache(n,r,p,g="",$=1){let d=`${r??"global"}_${p}_${g}_${$}`;return B.devicePipelineCache.get(n)?.get(d)}static clearCache(n,r){if(!r)return;let p=B.devicePipelineCache.get(r);if(!p)return;let g=`${n}_`;for(let[$,d]of p.entries())$.startsWith(g)&&(d.stateBuffer.destroy(),d.inputBuffer?.destroy(),d.outputBuffer?.destroy(),d.uniformBuffer?.destroy(),p.delete($))}static async process(n,r,p,g,$,d,b,ue,oe,q,I=1,D,k=!1,W,L,Y,E,P){let m=p.length;if(m===0)return;let h=p[0].length;if(h===0)return;let z=W!==void 0?W/1e3:d/b,F=L!==void 0?L/1e3:0,N=[],K="",j="",G=[],x=new Map,w=$.operation;if(w?.inputs){for(let e of Object.values(w.inputs))if(e?.connectionValid&&e.outputItem&&e.outputItem.type==="Signal"){let a=e.outputItem.data;a&&await M.ensureAudioSourcesExtracted(n,a,b,D)}for(let[e,a]of Object.entries(w))if(e.endsWith("HandleId")&&a){let c=a,s=w.inputs[c];if(s?.connectionValid&&s.outputItem&&s.outputItem.type==="Signal"){let u=s.outputItem.data;if(u){let f=e.replace("HandleId","");if(k){N.push({parameterName:f,signalNodeId:u.nodeId??"sig",signalFnName:u.signalFnName??u.name??"sig_fn"});let o=n.createCommandEncoder(),l=M.getOrCreate1DBuffer(n,o,u.nodeId??"sig",z,F,u,h,g,D,d,b);n.queue.submit([o.finish()]),x.set(f,l),P||G.push(l)}else{let o=u.nodeId;if(o){let l=re.get(o,D);if(l){N.push({parameterName:f,signalNodeId:o,signalFnName:l.name}),j+=`
|
|
2
2
|
${l.wgsl}`;let A=[];for(let U of l.fnParams){let S=U.defaultValue;A.push(S%1===0?`${S.toFixed(1)}f`:`${S}f`)}let T=`(${z.toFixed(6)}f + f32(index) / u.sampleRate)`,v=`${F.toFixed(6)}f`,y=["t","0.0","0.0","0.0","index","numSamples","frame","vec4<f32>(0.0)",T,v,...A];f==="makeupGain"&&(K+=`
|
|
3
3
|
let sigVal_${o} = ${l.name}(${y.join(", ")});
|
|
4
4
|
dynamicMakeupGain = dynamicMakeupGain + sigVal_${o};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import{a as C,d as G,g as O,h as V,m as A}from"./chunk-ENKKLU7B.mjs";import{z as I}from"./chunk-63SFBHEH.mjs";import{e as M}from"./chunk-BVF64D6H.mjs";M();M();var se=e=>e*e,ae=e=>e*(2-e),ue=e=>e<.5?2*e*e:-1+(4-2*e)*e,ce=e=>{let t=2*Math.PI/3;return e===0?0:e===1?1:2**(-10*e)*Math.sin((e*10-.75)*t)+1},le=(e,t)=>{switch(t){case"ease-in":return se(e);case"ease-out":return ae(e);case"ease-in-out":return ue(e);case"spring":return ce(e);default:return e}},T=(e,t,o,s,i)=>{let n=i*i,r=n*i;return .5*(2*t+(-e+o)*i+(2*e-5*t+4*o-s)*n+(-e+3*t-3*o+s)*r)};function E(e,t,o="spline"){if(e.length===0)return{x:50,y:50,scale:1};if(e.length===1){let n=e[0];return{x:n.x??50,y:n.y??50,scale:n.scale??1}}let s=0;for(let n=0;n<e.length;n++){let r=e[n],h=r.holdMs??0,m=r.durationMs??0;if(t<=s+h)return{x:r.x??50,y:r.y??50,scale:r.scale??1};if(s+=h,n<e.length-1&&m>0){if(t<=s+m){let f=(t-s)/m,a=le(Math.max(0,Math.min(1,f)),r.easing),u=e[n+1];if(o==="spline"){let b=e[n-1]??r,x=e[n+2]??u;return{x:T(b.x??50,r.x??50,u.x??50,x.x??50,a),y:T(b.y??50,r.y??50,u.y??50,x.y??50,a),scale:T(b.scale??1,r.scale??1,u.scale??1,x.scale??1,a)}}return{x:(r.x??50)+((u.x??50)-(r.x??50))*a,y:(r.y??50)+((u.y??50)-(r.y??50))*a,scale:(r.scale??1)+((u.scale??1)-(r.scale??1))*a}}s+=m}}let i=e[e.length-1];return{x:i.x??50,y:i.y??50,scale:i.scale??1}}function X(e,t,o,s){let i=100,n=100;if(s!=="input"){let p=s.split(":"),g=Number(p[0]),c=Number(p[1]);if(!Number.isNaN(g)&&!Number.isNaN(c)&&g>0&&c>0){let l=g/c,y=t/o;y>l?(n=100,i=l/y*100):(i=100,n=y/l*100)}}let r=i/100*t,h=n/100*o,m=Math.max(e.scale,1),f=r/m,a=h/m,u=e.x/100*t,b=e.y/100*o,x=f/2,B=a/2,P=Math.max(x,Math.min(t-x,u)),R=Math.max(B,Math.min(o-B,b));return{x:P-x,y:R-B,width:f,height:a}}var me=`
|
|
2
|
+
struct MotionBlurUniforms {
|
|
3
|
+
prev_origin : vec2<f32>,
|
|
4
|
+
prev_size : vec2<f32>,
|
|
5
|
+
curr_origin : vec2<f32>,
|
|
6
|
+
curr_size : vec2<f32>,
|
|
7
|
+
samples : f32,
|
|
8
|
+
blurSize : f32,
|
|
9
|
+
padding : vec2<f32>,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
@group(0) @binding(0) var<uniform> u : MotionBlurUniforms;
|
|
13
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
14
|
+
@group(1) @binding(1) var samp : sampler;
|
|
15
|
+
${C}
|
|
16
|
+
|
|
17
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
18
|
+
let uv = in.uv;
|
|
19
|
+
let n = i32(u.samples);
|
|
20
|
+
|
|
21
|
+
if (n <= 1) {
|
|
22
|
+
let p_curr = u.curr_origin + uv * u.curr_size;
|
|
23
|
+
return textureSampleLevel(tex, samp, p_curr, 0.0);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var color = vec4<f32>(0.0);
|
|
27
|
+
for (var i = 0; i < n; i = i + 1) {
|
|
28
|
+
// Use blurSize to control the shutter interval width.
|
|
29
|
+
// t=1.0 is current frame, t=0.0 is previous frame.
|
|
30
|
+
let t = 1.0 + (f32(i) / f32(n - 1) - 0.5) * u.blurSize;
|
|
31
|
+
|
|
32
|
+
let origin = mix(u.prev_origin, u.curr_origin, t);
|
|
33
|
+
let size = mix(u.prev_size, u.curr_size, t);
|
|
34
|
+
let p_sample = origin + uv * size;
|
|
35
|
+
|
|
36
|
+
color += textureSampleLevel(tex, samp, p_sample, 0.0);
|
|
37
|
+
}
|
|
38
|
+
return color / f32(n);
|
|
39
|
+
}
|
|
40
|
+
`,Y=new WeakMap,d=new Float32Array(12);function de(e,t){let o=Y.get(e);if(!o){let s=G(e,["uniform"]),i=G(e,["texture","sampler"]),n=e.createShaderModule({label:"kenburns_motionblur.wgsl",code:me});o={motionBlurPipeline:O(e,{label:"MotionBlurPipeline",module:n,layouts:[s,i],format:t}),motionBlurUniformLayout:s,singleTextureLayout:i},Y.set(e,o)}return o}var j=async e=>{let{ctx:t,encoder:o,pass:s,targetView:i,targetTexture:n,targetWidth:r,targetHeight:h,props:m}=e,{virtualMedia:f,containerWidth:a,containerHeight:u,frame:b,fps:x,trimStartOverride:B,opacity:P=1,inheritedSeekOffset:R=0}=m,p=f.operation;if(p?.op!=="KenBurns")return;let g=f.children?.[0];if(!g)return;let c=p.originalWidth??g.metadata?.width??f.metadata?.width??a??r,l=p.originalHeight??g.metadata?.height??f.metadata?.height??u??h,y=p.keyframes??[],L=p.movementStyle??"spline",W=p.aspectRatio||"input",Q=((B??0)+R)*1e3,z=Math.max(1,x??30),$=1e3/z,N=Q+(b??0)/z*1e3,q=N-$,J=E(y,N,L),Z=E(y,q,L),v=X(J,c,l,W),w=X(Z,c,l,W),K=a??r,F=u??h,H={x:0,y:0,width:K,height:F};s.end();let{texture:U}=await V(e,g,{width:c,height:l,props:{...m,containerWidth:c,containerHeight:l}}),D=p.motionBlurSize??1.5,S=null;if(D>0){let{motionBlurPipeline:k,motionBlurUniformLayout:ee,singleTextureLayout:te}=de(t.device,t.renderer.format),re=t.renderer.samplerCache.getSampler(t.device);d[0]=w.x/c,d[1]=w.y/l,d[2]=w.width/c,d[3]=w.height/l,d[4]=v.x/c,d[5]=v.y/l,d[6]=v.width/c,d[7]=v.height/l,d[8]=12,d[9]=D;let ne=t.renderer.getTemporaryBuffer(d);S=t.renderer.getTemporaryTexture(K,F,[n,U,...m.excludeTextures||[]]);let oe=S.createView();A(o,oe,k,[t.device.createBindGroup({layout:ee,entries:[{binding:0,resource:{buffer:ne}}]}),t.renderer.bindGroupCache.getBindGroup(t.device,te,U,re)])}let _=t.renderer.beginFrame(o,i,{r:0,g:0,b:0,a:0},r,h,"load");S?t.renderer.drawTexture(_,S,H,{opacity:P}):t.renderer.drawTextureRegion(_,U,v,H,{opacity:P}),e.pass=_};var be=I({WebGPURenderer:j});export{be as a};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import{a as W,d as G,e as $,f as E,g as k,h as A,j,k as K,l as Q,m as q}from"./chunk-ENKKLU7B.mjs";import{v as H,z as B}from"./chunk-63SFBHEH.mjs";import{e as f}from"./chunk-BVF64D6H.mjs";f();f();var xe=`
|
|
2
|
+
struct VignetteUniforms {
|
|
3
|
+
strength : f32,
|
|
4
|
+
radius : f32,
|
|
5
|
+
softness : f32,
|
|
6
|
+
roundness : f32,
|
|
7
|
+
|
|
8
|
+
centerX : f32,
|
|
9
|
+
centerY : f32,
|
|
10
|
+
hasStrengthSig : f32,
|
|
11
|
+
hasRadiusSig : f32,
|
|
12
|
+
|
|
13
|
+
hasSoftnessSig : f32,
|
|
14
|
+
hasRoundnessSig: f32,
|
|
15
|
+
hasCenterXSig : f32,
|
|
16
|
+
hasCenterYSig : f32,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
@group(0) @binding(0) var<uniform> u : VignetteUniforms;
|
|
20
|
+
@group(1) @binding(0) var tex : texture_2d<f32>;
|
|
21
|
+
@group(1) @binding(1) var samp : sampler;
|
|
22
|
+
|
|
23
|
+
@group(2) @binding(0) var strengthSigTex : texture_2d<f32>;
|
|
24
|
+
@group(2) @binding(1) var radiusSigTex : texture_2d<f32>;
|
|
25
|
+
@group(2) @binding(2) var softnessSigTex : texture_2d<f32>;
|
|
26
|
+
@group(2) @binding(3) var roundnessSigTex : texture_2d<f32>;
|
|
27
|
+
@group(2) @binding(4) var centerXSigTex : texture_2d<f32>;
|
|
28
|
+
@group(2) @binding(5) var centerYSigTex : texture_2d<f32>;
|
|
29
|
+
@group(2) @binding(6) var signalSamp : sampler;
|
|
30
|
+
${W}
|
|
31
|
+
|
|
32
|
+
@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
|
|
33
|
+
let color = textureSampleLevel(tex, samp, in.uv, 0.0);
|
|
34
|
+
|
|
35
|
+
if (color.a < 1e-5) {
|
|
36
|
+
return color;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Resolve parameter overrides or dynamic signals
|
|
40
|
+
var strength = u.strength;
|
|
41
|
+
if (u.hasStrengthSig > 0.5) {
|
|
42
|
+
strength = textureSampleLevel(strengthSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
var radius = u.radius;
|
|
46
|
+
if (u.hasRadiusSig > 0.5) {
|
|
47
|
+
radius = textureSampleLevel(radiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var softness = u.softness;
|
|
51
|
+
if (u.hasSoftnessSig > 0.5) {
|
|
52
|
+
softness = textureSampleLevel(softnessSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
var roundness = u.roundness;
|
|
56
|
+
if (u.hasRoundnessSig > 0.5) {
|
|
57
|
+
roundness = textureSampleLevel(roundnessSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
var centerX = u.centerX;
|
|
61
|
+
if (u.hasCenterXSig > 0.5) {
|
|
62
|
+
centerX = textureSampleLevel(centerXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
var centerY = u.centerY;
|
|
66
|
+
if (u.hasCenterYSig > 0.5) {
|
|
67
|
+
centerY = textureSampleLevel(centerYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
let center = vec2<f32>(centerX, centerY);
|
|
71
|
+
let dimensions = vec2<f32>(textureDimensions(tex));
|
|
72
|
+
let aspect = dimensions.x / dimensions.y;
|
|
73
|
+
let uvOffset = in.uv - center;
|
|
74
|
+
|
|
75
|
+
// Calculate aspect ratio corrected coordinate for circle
|
|
76
|
+
let correctedOffset = vec2<f32>(
|
|
77
|
+
uvOffset.x * mix(1.0, aspect, roundness),
|
|
78
|
+
uvOffset.y
|
|
79
|
+
);
|
|
80
|
+
let dist = length(correctedOffset);
|
|
81
|
+
|
|
82
|
+
// Calculate vignette edge falloff
|
|
83
|
+
let edge0 = radius;
|
|
84
|
+
let edge1 = max(0.0, radius - softness);
|
|
85
|
+
let vignetteFactor = smoothstep(edge0, edge1, dist);
|
|
86
|
+
|
|
87
|
+
// Blend based on strength
|
|
88
|
+
let intensity = strength / 100.0;
|
|
89
|
+
let finalVignette = mix(1.0, vignetteFactor, intensity);
|
|
90
|
+
|
|
91
|
+
// Unpremultiply, apply vignette, and repremultiply
|
|
92
|
+
let unpremult_rgb = color.rgb / color.a;
|
|
93
|
+
let final_rgb = unpremult_rgb * finalVignette;
|
|
94
|
+
|
|
95
|
+
return vec4<f32>(clamp(final_rgb, vec3<f32>(0.0), vec3<f32>(1.0)) * color.a, color.a);
|
|
96
|
+
}
|
|
97
|
+
`,n=new Float32Array(12),he=E(t=>({uniformLayout:G(t,["uniform"]),singleTextureLayout:G(t,["texture","sampler"]),signalTextureLayout:$(t,6),pipelineCache:new Map}));function be(t,e){let r=he(t),c=`vignette_${e}`,o=r.pipelineCache.get(c);if(!o){let m=t.createShaderModule({label:`vignette_${e}.wgsl`,code:xe});o=k(t,{label:`VignettePipeline_${e}`,module:m,layouts:[r.uniformLayout,r.singleTextureLayout,r.signalTextureLayout],format:e}),r.pipelineCache.set(c,o)}return{vignettePipeline:o,uniformLayout:r.uniformLayout,singleTextureLayout:r.singleTextureLayout,signalTextureLayout:r.signalTextureLayout}}var z=async t=>{let{ctx:e,encoder:r,pass:c,targetTexture:o,targetWidth:m,targetHeight:J,props:a}=t,S=a.frame??0,Z=a.compositionFrame??S,v=a.fps||30,i=a.virtualMedia?.operation;if(i?.op!=="Vignette"||!i)return;let P=a.virtualMedia.children?.[0];if(!P)return;c.end();let U=m,X=J,ee=i.inputs?Object.keys(i.inputs)[0]:"vignette_node",u=(d,l,V,w)=>{let me=`${d}HandleId`,M=i[me],s=M?i.inputs?.[M]:null,N=!!(s?.connectionValid&&(s.outputItem?.type==="Signal"||s.outputItem?.type==="Numeric")),_=N&&s?.outputItem?.data?s.outputItem.data:null,p=l,R=!1,F;if(N)_&&(p=Math.max(V,Math.min(w,Number(_.offset??0))),R=!0);else if(s?.connectionValid&&s.outputItem?.type==="Number")p=Math.max(V,Math.min(w,Number(s.outputItem.data??l)));else{let I=H(i[d],Z,v);I.gpuTextureView&&(F=I.gpuTextureView,R=!0);let Se=I.value,O=Number(Se??l);p=Math.max(V,Math.min(w,isNaN(O)?l:O))}return{val:p,hasStaticSig:R,sd:_,gpuTextureView:F}},x=u("strength",50,0,100),h=u("radius",1,.1,2),b=u("softness",.5,0,1),y=u("roundness",.5,0,1),T=u("centerX",.5,0,1),L=u("centerY",.5,0,1),{texture:Y}=await A(t,P);t.pass.end();let{vignettePipeline:te,uniformLayout:ne,singleTextureLayout:re,signalTextureLayout:ie}=be(e.device,e.renderer.format),C=e.renderer.samplerCache.getSampler(e.device),{elapsedSeconds:se,durationSeconds:ae}=K(a,S,v),oe={args:t,width:U,height:X,frame:S,fps:v,elapsedSeconds:se,durationSeconds:ae},g=(d,l)=>Q(oe,d,`${ee}_${l}`),ue=g(x,"strength_sig"),ge=g(h,"radius_sig"),le=g(b,"softness_sig"),ce=g(y,"roundness_sig"),de=g(T,"centerX_sig"),pe=g(L,"centerY_sig");n[0]=x.val,n[1]=h.val,n[2]=b.val,n[3]=y.val,n[4]=T.val,n[5]=L.val,n[6]=x.hasStaticSig?1:0,n[7]=h.hasStaticSig?1:0,n[8]=b.hasStaticSig?1:0,n[9]=y.hasStaticSig?1:0,n[10]=T.hasStaticSig?1:0,n[11]=L.hasStaticSig?1:0;let fe=e.renderer.getTemporaryBuffer(n),D=e.renderer.getTemporaryTexture(U,X,[Y,o,...a.excludeTextures||[]]);q(r,D.createView(),te,[e.device.createBindGroup({layout:ne,entries:[{binding:0,resource:{buffer:fe}}]}),e.renderer.bindGroupCache.getBindGroup(e.device,re,Y,C),e.device.createBindGroup({layout:ie,entries:[{binding:0,resource:ue},{binding:1,resource:ge},{binding:2,resource:le},{binding:3,resource:ce},{binding:4,resource:de},{binding:5,resource:pe},{binding:6,resource:C}]})]),j(t,D,i.opacity??1)};var Re=B({WebGPURenderer:z});export{Re as a};
|