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.
Files changed (559) hide show
  1. package/README.md +22 -5
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +13 -12
  4. package/dist/{audio-BHanw8Jb.d.mts → audio-C2fLC3Tx.d.mts} +3 -3
  5. package/dist/{audio-BHanw8Jb.d.mts.map → audio-C2fLC3Tx.d.mts.map} +1 -1
  6. package/dist/{audio-TAvPwzLR.mjs → audio-DJeVoE8b.mjs} +1 -1
  7. package/dist/{audio-TAvPwzLR.mjs.map → audio-DJeVoE8b.mjs.map} +1 -1
  8. package/dist/{audio-COOMNwL5.mjs → audio-D_4SeMRK.mjs} +4 -4
  9. package/dist/{audio-COOMNwL5.mjs.map → audio-D_4SeMRK.mjs.map} +1 -1
  10. package/dist/{client-CwRhflHE.mjs → client-dVxUnmHz.mjs} +1 -1
  11. package/dist/{client-CwRhflHE.mjs.map → client-dVxUnmHz.mjs.map} +1 -1
  12. package/dist/{dist-C_hjvkdN.mjs → dist-0QGroRYZ.mjs} +1 -1
  13. package/dist/{dist-C_hjvkdN.mjs.map → dist-0QGroRYZ.mjs.map} +1 -1
  14. package/dist/{dist-BYqNNwsl.mjs → dist-BY0bIWgr.mjs} +10 -2
  15. package/dist/dist-BY0bIWgr.mjs.map +1 -0
  16. package/dist/{dist-Cxi68OuY.mjs → dist-Bun_TUvZ.mjs} +26862 -25638
  17. package/dist/dist-Bun_TUvZ.mjs.map +1 -0
  18. package/dist/{dist-BAVZdFEJ.mjs → dist-DlzqyRar.mjs} +75 -618
  19. package/dist/dist-DlzqyRar.mjs.map +1 -0
  20. package/dist/{dist-cjs-TsA8LFXC.mjs → dist-cjs-91nR6B7Z.mjs} +3 -3
  21. package/dist/{dist-cjs-TsA8LFXC.mjs.map → dist-cjs-91nR6B7Z.mjs.map} +1 -1
  22. package/dist/{dist-cjs-DJ8fcQEe.mjs → dist-cjs-BAIenEMC.mjs} +11 -11
  23. package/dist/{dist-cjs-DJ8fcQEe.mjs.map → dist-cjs-BAIenEMC.mjs.map} +1 -1
  24. package/dist/{dist-cjs-BmyyWYWv.mjs → dist-cjs-BEQhh76X.mjs} +2 -2
  25. package/dist/{dist-cjs-BmyyWYWv.mjs.map → dist-cjs-BEQhh76X.mjs.map} +1 -1
  26. package/dist/{dist-cjs--pxyGFw2.mjs → dist-cjs-BYPq7pfw.mjs} +1 -1
  27. package/dist/{dist-cjs--pxyGFw2.mjs.map → dist-cjs-BYPq7pfw.mjs.map} +1 -1
  28. package/dist/{dist-cjs--lfMLs3U.mjs → dist-cjs-BocDqSCX.mjs} +4 -4
  29. package/dist/{dist-cjs--lfMLs3U.mjs.map → dist-cjs-BocDqSCX.mjs.map} +1 -1
  30. package/dist/{dist-cjs-CsU2sZoX.mjs → dist-cjs-CWiNggTl.mjs} +4 -4
  31. package/dist/{dist-cjs-CsU2sZoX.mjs.map → dist-cjs-CWiNggTl.mjs.map} +1 -1
  32. package/dist/{dist-cjs-DjzmP0-x.mjs → dist-cjs-CwabutT6.mjs} +13 -13
  33. package/dist/{dist-cjs-DjzmP0-x.mjs.map → dist-cjs-CwabutT6.mjs.map} +1 -1
  34. package/dist/{dist-cjs-BDpO-TH_.mjs → dist-cjs-D-EE4Ahy.mjs} +1 -1
  35. package/dist/{dist-cjs-BDpO-TH_.mjs.map → dist-cjs-D-EE4Ahy.mjs.map} +1 -1
  36. package/dist/{dist-cjs-CQwmMllY.mjs → dist-cjs-DNtDUWfk.mjs} +6 -6
  37. package/dist/{dist-cjs-CQwmMllY.mjs.map → dist-cjs-DNtDUWfk.mjs.map} +1 -1
  38. package/dist/{dist-cjs-CND_ghfH.mjs → dist-cjs-DbZhsgS0.mjs} +1 -1
  39. package/dist/{dist-cjs-CND_ghfH.mjs.map → dist-cjs-DbZhsgS0.mjs.map} +1 -1
  40. package/dist/{dist-cjs-CgFzrgj8.mjs → dist-cjs-Dh7REKcN.mjs} +1 -1
  41. package/dist/{dist-cjs-CgFzrgj8.mjs.map → dist-cjs-Dh7REKcN.mjs.map} +1 -1
  42. package/dist/{dist-cjs-DT2jJlcK.mjs → dist-cjs-Dobx0Nz-.mjs} +5 -5
  43. package/dist/{dist-cjs-DT2jJlcK.mjs.map → dist-cjs-Dobx0Nz-.mjs.map} +1 -1
  44. package/dist/{dist-cjs-DzjrlfbE.mjs → dist-cjs-Du0UpNof.mjs} +14 -14
  45. package/dist/{dist-cjs-DzjrlfbE.mjs.map → dist-cjs-Du0UpNof.mjs.map} +1 -1
  46. package/dist/dist-cjs-DyHiUfsr.mjs +6 -0
  47. package/dist/{dist-cjs-M-8QOgS_.mjs → dist-cjs-HHMfMF5a.mjs} +2 -2
  48. package/dist/{dist-cjs-M-8QOgS_.mjs.map → dist-cjs-HHMfMF5a.mjs.map} +1 -1
  49. package/dist/{dist-cjs-BiKQozdJ.mjs → dist-cjs-UJYQzLNT.mjs} +3 -3
  50. package/dist/{dist-cjs-BiKQozdJ.mjs.map → dist-cjs-UJYQzLNT.mjs.map} +1 -1
  51. package/dist/{dist-cjs-agQl9T8M.mjs → dist-cjs-UKxm5cFR.mjs} +6 -6
  52. package/dist/{dist-cjs-agQl9T8M.mjs.map → dist-cjs-UKxm5cFR.mjs.map} +1 -1
  53. package/dist/{dist-CbG3QxDw.mjs → dist-fjKpBYkc.mjs} +12 -27
  54. package/dist/dist-fjKpBYkc.mjs.map +1 -0
  55. package/dist/effects/index.d.mts +4 -4
  56. package/dist/effects/index.mjs +36 -34
  57. package/dist/{effects-DzbjFhyA.mjs → effects-FTlu0dri.mjs} +3 -3
  58. package/dist/{effects-DzbjFhyA.mjs.map → effects-FTlu0dri.mjs.map} +1 -1
  59. package/dist/{event-streams-BaNGaLxh.mjs → event-streams-DnRe8uwT.mjs} +2 -2
  60. package/dist/{event-streams-BaNGaLxh.mjs.map → event-streams-DnRe8uwT.mjs.map} +1 -1
  61. package/dist/fonts/index.d.mts +1 -1
  62. package/dist/fonts/index.mjs +3 -1
  63. package/dist/{fonts-C0W6TgJk.mjs → fonts-UM5xaBOx.mjs} +24 -11
  64. package/dist/fonts-UM5xaBOx.mjs.map +1 -0
  65. package/dist/gpu-RkpiFGOA.mjs +215 -0
  66. package/dist/gpu-RkpiFGOA.mjs.map +1 -0
  67. package/dist/{index-CYGpSVsf.d.mts → index-CHQ39_Oe.d.mts} +2 -2
  68. package/dist/{index-CYGpSVsf.d.mts.map → index-CHQ39_Oe.d.mts.map} +1 -1
  69. package/dist/{index-CDoTrMs1.d.mts → index-CzQseCtg.d.mts} +8 -8
  70. package/dist/{index-CDoTrMs1.d.mts.map → index-CzQseCtg.d.mts.map} +1 -1
  71. package/dist/{index-DDEPvMww.d.mts → index-D67p-rHX.d.mts} +3452 -1675
  72. package/dist/index-D67p-rHX.d.mts.map +1 -0
  73. package/dist/{index-9B8CJowc.d.mts → index-DPicEt8H.d.mts} +10 -2
  74. package/dist/index-DPicEt8H.d.mts.map +1 -0
  75. package/dist/{index-DGJp1d30.d.mts → index-Db8Z3AtX.d.mts} +3 -3
  76. package/dist/{index-DGJp1d30.d.mts.map → index-Db8Z3AtX.d.mts.map} +1 -1
  77. package/dist/{index-DRZu3ezy.d.mts → index-DsOqONsj.d.mts} +3 -3
  78. package/dist/{index-DRZu3ezy.d.mts.map → index-DsOqONsj.d.mts.map} +1 -1
  79. package/dist/{index-DnWsbbuZ.d.mts → index-l03NV8JS.d.mts} +7 -2
  80. package/dist/index-l03NV8JS.d.mts.map +1 -0
  81. package/dist/index.d.mts +28 -1841
  82. package/dist/index.d.mts.map +1 -1
  83. package/dist/index.mjs +79 -65
  84. package/dist/index.mjs.map +1 -1
  85. package/dist/{package-XpCRbTOA.mjs → package-CudzAF-n.mjs} +1 -1
  86. package/dist/{package-XpCRbTOA.mjs.map → package-CudzAF-n.mjs.map} +1 -1
  87. package/dist/preview/index.d.mts +2 -2
  88. package/dist/preview/index.mjs +13 -12
  89. package/dist/{preview-BV2C4Fk6.mjs → preview-DwClLMlU.mjs} +3 -3
  90. package/dist/{preview-BV2C4Fk6.mjs.map → preview-DwClLMlU.mjs.map} +1 -1
  91. package/dist/preview-engine/audio.mjs +1 -1
  92. package/dist/preview-engine/{chunk-Y6HWYPKX.mjs → chunk-3GNP7TJH.mjs} +3 -3
  93. package/dist/preview-engine/{chunk-LIHUEYI5.mjs → chunk-44CQSOYE.mjs} +2 -2
  94. package/dist/preview-engine/{chunk-6JW37VJA.mjs → chunk-5AUB4Y3L.mjs} +3 -23
  95. package/dist/preview-engine/chunk-5DOD2NVY.mjs +26 -0
  96. package/dist/preview-engine/chunk-5FC7GOWW.mjs +474 -0
  97. package/dist/preview-engine/chunk-5W4AFQP7.mjs +97 -0
  98. package/dist/preview-engine/chunk-63SFBHEH.mjs +1 -0
  99. package/dist/preview-engine/chunk-7EPIRODI.mjs +91 -0
  100. package/dist/preview-engine/{chunk-PQD5UPHG.mjs → chunk-7G3XIOP7.mjs} +1 -1
  101. package/dist/preview-engine/chunk-7J2FWGVD.mjs +1 -0
  102. package/dist/preview-engine/chunk-AXHB4J37.mjs +147 -0
  103. package/dist/preview-engine/chunk-AY7UX37L.mjs +450 -0
  104. package/dist/preview-engine/chunk-B43Z3J7J.mjs +5 -0
  105. package/dist/preview-engine/chunk-BWJS6G7R.mjs +314 -0
  106. package/dist/preview-engine/{chunk-24DXIKXL.mjs → chunk-DIGIQ5MJ.mjs} +2 -2
  107. package/dist/preview-engine/{chunk-AEK5BO3J.mjs → chunk-E4RAFHZM.mjs} +1 -1
  108. package/dist/preview-engine/chunk-ENKKLU7B.mjs +22 -0
  109. package/dist/preview-engine/{chunk-XLFYM7KH.mjs → chunk-EVXWDOCL.mjs} +2 -2
  110. package/dist/preview-engine/{chunk-EQ4QZRXB.mjs → chunk-EYWPOCZW.mjs} +2 -2
  111. package/dist/preview-engine/{chunk-IYVN2QEL.mjs → chunk-FLPSWDX4.mjs} +1 -1
  112. package/dist/preview-engine/chunk-FU7AIAMM.mjs +88 -0
  113. package/dist/preview-engine/{chunk-CBM7B7EW.mjs → chunk-GMGGDADT.mjs} +1 -1
  114. package/dist/preview-engine/chunk-GSFN4WCH.mjs +62 -0
  115. package/dist/preview-engine/chunk-HE4R7EZM.mjs +121 -0
  116. package/dist/preview-engine/chunk-IQC2I5A5.mjs +1 -0
  117. package/dist/preview-engine/{chunk-RJUAM52F.mjs → chunk-IR5DNNWR.mjs} +3 -23
  118. package/dist/preview-engine/chunk-IUPDOATX.mjs +114 -0
  119. package/dist/preview-engine/{chunk-GHMCGTJ2.mjs → chunk-J2R5R7YY.mjs} +3 -23
  120. package/dist/preview-engine/chunk-JAJOZG5P.mjs +1 -0
  121. package/dist/preview-engine/chunk-JXNG2ACR.mjs +118 -0
  122. package/dist/preview-engine/{chunk-V6VU46ZG.mjs → chunk-L6BH5J4P.mjs} +1 -1
  123. package/dist/preview-engine/chunk-LGVEFPOG.mjs +3 -0
  124. package/dist/preview-engine/{chunk-MDDF2GCF.mjs → chunk-MLY5M7Y5.mjs} +3 -23
  125. package/dist/preview-engine/chunk-NPD6W3RP.mjs +1 -0
  126. package/dist/preview-engine/chunk-OCX5AD23.mjs +1 -0
  127. package/dist/preview-engine/{chunk-D3TETPLI.mjs → chunk-OG62XGCT.mjs} +1 -1
  128. package/dist/preview-engine/chunk-OJ2PKBXE.mjs +40 -0
  129. package/dist/preview-engine/chunk-OKH2VU2U.mjs +97 -0
  130. package/dist/preview-engine/chunk-PAQNDZQB.mjs +83 -0
  131. package/dist/preview-engine/chunk-PEWYB6WP.mjs +43 -0
  132. package/dist/preview-engine/chunk-PL4IH5V4.mjs +89 -0
  133. package/dist/preview-engine/chunk-PSRQA3QW.mjs +84 -0
  134. package/dist/preview-engine/{chunk-QYRDQMNB.mjs → chunk-PXT52LEH.mjs} +3 -23
  135. package/dist/preview-engine/chunk-Q22PJXFJ.mjs +69 -0
  136. package/dist/preview-engine/chunk-Q4Z54DQ7.mjs +1 -0
  137. package/dist/preview-engine/{chunk-BHFI3Y4T.mjs → chunk-QBEUICZD.mjs} +1 -1
  138. package/dist/preview-engine/chunk-RQLMW6MA.mjs +4 -0
  139. package/dist/preview-engine/chunk-RSMO7NPN.mjs +1 -0
  140. package/dist/preview-engine/chunk-RW2F3XLQ.mjs +90 -0
  141. package/dist/preview-engine/{chunk-25IW7NYO.mjs → chunk-S2CTIJSI.mjs} +1 -1
  142. package/dist/preview-engine/chunk-SGPRLTNF.mjs +52 -0
  143. package/dist/preview-engine/{chunk-Y6FEU4TV.mjs → chunk-SZW5J72T.mjs} +3 -23
  144. package/dist/preview-engine/{chunk-ECPP3UG6.mjs → chunk-T2FE5VOW.mjs} +3 -23
  145. package/dist/preview-engine/{chunk-ZSIJB76A.mjs → chunk-TS3JI3BH.mjs} +2 -2
  146. package/dist/preview-engine/{chunk-AMBSW6OA.mjs → chunk-U4JIFQRR.mjs} +2 -2
  147. package/dist/preview-engine/{chunk-BJKH76OM.mjs → chunk-VXS5SIEC.mjs} +3 -23
  148. package/dist/preview-engine/chunk-WFGJXCZT.mjs +53 -0
  149. package/dist/preview-engine/chunk-WH5Q2NFN.mjs +32 -0
  150. package/dist/preview-engine/{chunk-AWTH2WZO.mjs → chunk-WUKH7BD7.mjs} +1 -1
  151. package/dist/preview-engine/chunk-XC5WZNOY.mjs +1448 -0
  152. package/dist/preview-engine/chunk-YQZOGEPZ.mjs +186 -0
  153. package/dist/preview-engine/{chunk-6256GQFP.mjs → chunk-ZDQF3OTC.mjs} +1 -1
  154. package/dist/preview-engine/chunk-ZIIFTWDH.mjs +58 -0
  155. package/dist/preview-engine/effects.mjs +1 -1
  156. package/dist/preview-engine/fonts.mjs +1 -1
  157. package/dist/preview-engine/framefields.mjs +127 -130
  158. package/dist/preview-engine/player.mjs +6 -6
  159. package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -0
  160. package/dist/preview-engine/renderers-2ILG23ED.mjs +1 -0
  161. package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -0
  162. package/dist/preview-engine/renderers-2SVWAB42.mjs +1 -0
  163. package/dist/preview-engine/renderers-2VN3AH45.mjs +104 -0
  164. package/dist/preview-engine/renderers-3RC5FDWX.mjs +1 -0
  165. package/dist/preview-engine/renderers-57WDL6XN.mjs +1 -0
  166. package/dist/preview-engine/{renderers-CAUWP4XH.mjs → renderers-6OGFUSH6.mjs} +3 -23
  167. package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -0
  168. package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -0
  169. package/dist/preview-engine/renderers-A6HM64UZ.mjs +1 -0
  170. package/dist/preview-engine/{renderers-WLH4HRUE.mjs → renderers-A7VH3ON5.mjs} +1 -1
  171. package/dist/preview-engine/renderers-B7DSGUMI.mjs +1 -0
  172. package/dist/preview-engine/renderers-BFNJ7VCI.mjs +1 -0
  173. package/dist/preview-engine/renderers-BSKZXITT.mjs +35 -0
  174. package/dist/preview-engine/renderers-CGYIDAVV.mjs +1 -0
  175. package/dist/preview-engine/renderers-CRRLV7IO.mjs +1 -0
  176. package/dist/preview-engine/{renderers-JQHUBWLL.mjs → renderers-D6T6IPER.mjs} +3 -23
  177. package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -0
  178. package/dist/preview-engine/renderers-ECA3P4ON.mjs +1 -0
  179. package/dist/preview-engine/{renderers-W5CVDJVH.mjs → renderers-F55XFVMP.mjs} +1 -1
  180. package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -0
  181. package/dist/preview-engine/renderers-H46TS3IG.mjs +228 -0
  182. package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -0
  183. package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -0
  184. package/dist/preview-engine/renderers-JHFT27YU.mjs +1 -0
  185. package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -0
  186. package/dist/preview-engine/renderers-MON4QFRF.mjs +1 -0
  187. package/dist/preview-engine/renderers-NQXMYNSY.mjs +1 -0
  188. package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -0
  189. package/dist/preview-engine/renderers-ORAIXUL3.mjs +1 -0
  190. package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -0
  191. package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -0
  192. package/dist/preview-engine/renderers-QVZVEYP5.mjs +1 -0
  193. package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -0
  194. package/dist/preview-engine/renderers-RKDPX5JU.mjs +1 -0
  195. package/dist/preview-engine/{renderers-2US2NIUG.mjs → renderers-RLHTNLRE.mjs} +3 -23
  196. package/dist/preview-engine/renderers-SBFF7JP5.mjs +1 -0
  197. package/dist/preview-engine/renderers-SCJ6OKTB.mjs +1 -0
  198. package/dist/preview-engine/renderers-T4JMJXWL.mjs +1 -0
  199. package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -0
  200. package/dist/preview-engine/renderers-U6KY34TP.mjs +100 -0
  201. package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -0
  202. package/dist/preview-engine/renderers-UNK6I4JJ.mjs +1 -0
  203. package/dist/preview-engine/renderers-UPTJJE5F.mjs +1 -0
  204. package/dist/preview-engine/renderers-W773SBPV.mjs +1 -0
  205. package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -0
  206. package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -0
  207. package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -0
  208. package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -0
  209. package/dist/preview-engine/renderers-ZHTX73PR.mjs +1 -0
  210. package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -0
  211. package/dist/preview-engine/signals.mjs +1 -1
  212. package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +1 -0
  213. package/dist/{program-BmNKgzja.mjs → program-BqFVw5Mu.mjs} +93 -2335
  214. package/dist/program-BqFVw5Mu.mjs.map +1 -0
  215. package/dist/renderer/index.d.mts +2 -2
  216. package/dist/renderer/index.mjs +3 -3
  217. package/dist/{renderer-CnXW28b9.mjs → renderer-2Nf9ypST.mjs} +85 -279
  218. package/dist/renderer-2Nf9ypST.mjs.map +1 -0
  219. package/dist/{renderer-BREIjsUU.mjs → renderer-2uN2cd0y.mjs} +14 -40
  220. package/dist/renderer-2uN2cd0y.mjs.map +1 -0
  221. package/dist/renderer-31jAuNzF.mjs +5 -0
  222. package/dist/renderer-36EI7Rsz.mjs +5 -0
  223. package/dist/renderer-3io-cjTt.mjs +5 -0
  224. package/dist/renderer-9_zWTHbg.mjs +5 -0
  225. package/dist/{renderer-WSGuj_V6.mjs → renderer-B12_76qk.mjs} +4 -3
  226. package/dist/{renderer-WSGuj_V6.mjs.map → renderer-B12_76qk.mjs.map} +1 -1
  227. package/dist/{renderer-bsWnRNpJ.mjs → renderer-B4oS8ZFO.mjs} +29 -98
  228. package/dist/renderer-B4oS8ZFO.mjs.map +1 -0
  229. package/dist/renderer-B6KnbfdA.mjs +5 -0
  230. package/dist/renderer-B7Y2bmRc.mjs +5 -0
  231. package/dist/renderer-BA6miaaI.mjs +5 -0
  232. package/dist/{renderer-Bv6q84TU.mjs → renderer-BGr_cBKV.mjs} +61 -208
  233. package/dist/renderer-BGr_cBKV.mjs.map +1 -0
  234. package/dist/renderer-BHi-Q6Z_.mjs +5 -0
  235. package/dist/{renderer-Bv21DbWy.mjs → renderer-BLcu9RDt.mjs} +3 -1
  236. package/dist/{renderer-D2XD4QYk.mjs → renderer-BO2lYmtE.mjs} +34 -147
  237. package/dist/renderer-BO2lYmtE.mjs.map +1 -0
  238. package/dist/renderer-BOlN9HeG.mjs +5 -0
  239. package/dist/renderer-BSitV56h.mjs +268 -0
  240. package/dist/renderer-BSitV56h.mjs.map +1 -0
  241. package/dist/renderer-BTOW-ceB.mjs +5 -0
  242. package/dist/{renderer-Bhdf90Zq.mjs → renderer-BYqfkwLf.mjs} +51 -163
  243. package/dist/renderer-BYqfkwLf.mjs.map +1 -0
  244. package/dist/{renderer-bZU_ndxf.mjs → renderer-BajIOuZH.mjs} +2 -2
  245. package/dist/{renderer-bZU_ndxf.mjs.map → renderer-BajIOuZH.mjs.map} +1 -1
  246. package/dist/{renderer-DirxsOjq.mjs → renderer-BgnJUx24.mjs} +80 -258
  247. package/dist/renderer-BgnJUx24.mjs.map +1 -0
  248. package/dist/renderer-BiQ0PYOp.mjs +5 -0
  249. package/dist/{renderer-DIgsilTw.mjs → renderer-BjTq3a0L.mjs} +5 -4
  250. package/dist/{renderer-DIgsilTw.mjs.map → renderer-BjTq3a0L.mjs.map} +1 -1
  251. package/dist/{renderer-DEJwPRkR.mjs → renderer-BkN20ZKO.mjs} +15 -51
  252. package/dist/renderer-BkN20ZKO.mjs.map +1 -0
  253. package/dist/renderer-Bla7GDyV.mjs +5 -0
  254. package/dist/renderer-BoYyLVKy.mjs +5 -0
  255. package/dist/{renderer-D7zvPHKn.mjs → renderer-BpZaHFRc.mjs} +18 -28
  256. package/dist/renderer-BpZaHFRc.mjs.map +1 -0
  257. package/dist/renderer-BqOgb7bM.mjs +5 -0
  258. package/dist/{renderer-cgxO2xN6.mjs → renderer-Bq_dO0LG.mjs} +10 -17
  259. package/dist/renderer-Bq_dO0LG.mjs.map +1 -0
  260. package/dist/renderer-BqeM8yTJ.mjs +5 -0
  261. package/dist/{renderer-dncoIVdd.mjs → renderer-BqsV75Ml.mjs} +3 -1
  262. package/dist/{renderer-ChdLYS-G.mjs → renderer-Bs4tz_pw.mjs} +20 -87
  263. package/dist/renderer-Bs4tz_pw.mjs.map +1 -0
  264. package/dist/{renderer-DpGc-N3G.mjs → renderer-Bsaokil3.mjs} +24 -104
  265. package/dist/renderer-Bsaokil3.mjs.map +1 -0
  266. package/dist/{renderer-CXn5HAnK.mjs → renderer-BvG1GF1c.mjs} +10 -16
  267. package/dist/renderer-BvG1GF1c.mjs.map +1 -0
  268. package/dist/{renderer-CI7sG_cv.mjs → renderer-BvpSIFkw.mjs} +83 -266
  269. package/dist/renderer-BvpSIFkw.mjs.map +1 -0
  270. package/dist/{renderer-B8UaFNqb.mjs → renderer-BwAqwTQq.mjs} +62 -209
  271. package/dist/renderer-BwAqwTQq.mjs.map +1 -0
  272. package/dist/{renderer-CzPWB0Ss.mjs → renderer-BwVfhrEx.mjs} +13 -45
  273. package/dist/renderer-BwVfhrEx.mjs.map +1 -0
  274. package/dist/renderer-BzpRe50i.mjs +5 -0
  275. package/dist/renderer-C0eAPwpr.mjs +5 -0
  276. package/dist/{renderer-CtyD_Xju.mjs → renderer-C3RfT8Gv.mjs} +59 -194
  277. package/dist/renderer-C3RfT8Gv.mjs.map +1 -0
  278. package/dist/{renderer-B1YMwl2B.mjs → renderer-C3cYDT3m.mjs} +3 -1
  279. package/dist/{renderer-1VuQTY1Z.mjs → renderer-CEGbqT2m.mjs} +236 -96
  280. package/dist/renderer-CEGbqT2m.mjs.map +1 -0
  281. package/dist/{renderer-DxTs4Iyi.mjs → renderer-CGldH-Zx.mjs} +40 -142
  282. package/dist/renderer-CGldH-Zx.mjs.map +1 -0
  283. package/dist/renderer-CGn8V63v.mjs +5 -0
  284. package/dist/{renderer-kwmlLQOO.mjs → renderer-CH9Qtpy7.mjs} +4 -4
  285. package/dist/{renderer-kwmlLQOO.mjs.map → renderer-CH9Qtpy7.mjs.map} +1 -1
  286. package/dist/{renderer-ho_jXJ0H.mjs → renderer-CLyuu_19.mjs} +23 -117
  287. package/dist/renderer-CLyuu_19.mjs.map +1 -0
  288. package/dist/renderer-CM5Syo9r.mjs +5 -0
  289. package/dist/{renderer-D2nCGcjv.mjs → renderer-CRIM_XRK.mjs} +3 -3
  290. package/dist/{renderer-D2nCGcjv.mjs.map → renderer-CRIM_XRK.mjs.map} +1 -1
  291. package/dist/{renderer-BTdOMMEx.d.mts → renderer-CTGe8SqQ.d.mts} +2 -2
  292. package/dist/{renderer-BTdOMMEx.d.mts.map → renderer-CTGe8SqQ.d.mts.map} +1 -1
  293. package/dist/renderer-CWCEW6Wv.mjs +5 -0
  294. package/dist/{renderer-Dy0utCl7.mjs → renderer-CgyOylPO.mjs} +10 -17
  295. package/dist/renderer-CgyOylPO.mjs.map +1 -0
  296. package/dist/{renderer-C_TPMHiH.mjs → renderer-CjT5Zy-J.mjs} +81 -221
  297. package/dist/renderer-CjT5Zy-J.mjs.map +1 -0
  298. package/dist/{renderer-_uvdg48N.mjs → renderer-Cjq1s3br.mjs} +24 -93
  299. package/dist/renderer-Cjq1s3br.mjs.map +1 -0
  300. package/dist/renderer-Cl70zxkP.mjs +5 -0
  301. package/dist/renderer-ClJjoVpB.mjs +6 -0
  302. package/dist/{renderer-BSaYG8aw.mjs → renderer-CpKNqciR.mjs} +3 -1
  303. package/dist/{renderer-Bfgd4N0O.mjs → renderer-Cwhux4VX.mjs} +9 -16
  304. package/dist/renderer-Cwhux4VX.mjs.map +1 -0
  305. package/dist/{renderer-BJ1aTkZf.mjs → renderer-D0nWLogn.mjs} +99 -282
  306. package/dist/renderer-D0nWLogn.mjs.map +1 -0
  307. package/dist/{renderer-vqkKWqa5.mjs → renderer-D1lynYuy.mjs} +23 -107
  308. package/dist/renderer-D1lynYuy.mjs.map +1 -0
  309. package/dist/{renderer-B8-kzZdP.mjs → renderer-D4sYVV-I.mjs} +41 -140
  310. package/dist/renderer-D4sYVV-I.mjs.map +1 -0
  311. package/dist/{renderer-Bc04fivZ.mjs → renderer-D5z3WDkm.mjs} +99 -287
  312. package/dist/renderer-D5z3WDkm.mjs.map +1 -0
  313. package/dist/renderer-D8C-pamu.mjs +148 -0
  314. package/dist/renderer-D8C-pamu.mjs.map +1 -0
  315. package/dist/{renderer-D_1oDOCP.mjs → renderer-DAtBnNGC.mjs} +14 -69
  316. package/dist/renderer-DAtBnNGC.mjs.map +1 -0
  317. package/dist/{renderer-DZGtBUCx.mjs → renderer-DG1NFsSV.mjs} +35 -185
  318. package/dist/renderer-DG1NFsSV.mjs.map +1 -0
  319. package/dist/{renderer-BM05sB8m.mjs → renderer-DHAErBtJ.mjs} +11 -74
  320. package/dist/renderer-DHAErBtJ.mjs.map +1 -0
  321. package/dist/{renderer-RKsXlF_0.mjs → renderer-DIDSmoFA.mjs} +73 -73
  322. package/dist/{renderer-RKsXlF_0.mjs.map → renderer-DIDSmoFA.mjs.map} +1 -1
  323. package/dist/{renderer-BDbTWSpP.mjs → renderer-DKtP7-fr.mjs} +58 -234
  324. package/dist/renderer-DKtP7-fr.mjs.map +1 -0
  325. package/dist/renderer-DLnF-V_h.mjs +5 -0
  326. package/dist/renderer-DN1rjmcL.mjs +5 -0
  327. package/dist/{renderer-CfC_aiew.mjs → renderer-DOEsFT7Q.mjs} +57 -192
  328. package/dist/renderer-DOEsFT7Q.mjs.map +1 -0
  329. package/dist/{renderer-Ctk2zzfy.mjs → renderer-DPYB6ZcB.mjs} +57 -197
  330. package/dist/renderer-DPYB6ZcB.mjs.map +1 -0
  331. package/dist/{renderer-CWTpc4ff.mjs → renderer-DRsPCkxr.mjs} +76 -210
  332. package/dist/renderer-DRsPCkxr.mjs.map +1 -0
  333. package/dist/renderer-DXTw9Oqb.mjs +5 -0
  334. package/dist/{renderer-CaaOKMSd.mjs → renderer-DZLJnnU2.mjs} +63 -190
  335. package/dist/renderer-DZLJnnU2.mjs.map +1 -0
  336. package/dist/{renderer-B2ieylQ3.mjs → renderer-DZrQffIP.mjs} +56 -167
  337. package/dist/renderer-DZrQffIP.mjs.map +1 -0
  338. package/dist/renderer-DbAVSBNI.mjs +5 -0
  339. package/dist/renderer-Dg8rD--8.mjs +5 -0
  340. package/dist/{renderer-DML9qpmS.mjs → renderer-DhEyjn6Q.mjs} +52 -202
  341. package/dist/renderer-DhEyjn6Q.mjs.map +1 -0
  342. package/dist/{renderer-CdciwwMI.mjs → renderer-Dmv_Aj6x.mjs} +161 -457
  343. package/dist/renderer-Dmv_Aj6x.mjs.map +1 -0
  344. package/dist/renderer-DnFxegGu.mjs +5 -0
  345. package/dist/renderer-DnfmelHn.mjs +5 -0
  346. package/dist/{renderer-BIIWCg_J.mjs → renderer-Dpj68gTn.mjs} +11 -18
  347. package/dist/renderer-Dpj68gTn.mjs.map +1 -0
  348. package/dist/renderer-DuOjzggd.mjs +5 -0
  349. package/dist/renderer-DuuOlYIG.mjs +3 -0
  350. package/dist/renderer-DvYql0Cl.mjs +5 -0
  351. package/dist/{renderer-BfAWZziM.mjs → renderer-DzhRNdBS.mjs} +58 -225
  352. package/dist/renderer-DzhRNdBS.mjs.map +1 -0
  353. package/dist/renderer-GSFP7v2z.mjs +3 -0
  354. package/dist/renderer-LfUdjgjF.mjs +5 -0
  355. package/dist/{renderer-Djlb4TLO.mjs → renderer-Q63y7HP_.mjs} +8 -15
  356. package/dist/renderer-Q63y7HP_.mjs.map +1 -0
  357. package/dist/renderer-SecCv3U8.mjs +5 -0
  358. package/dist/{renderer-BhZZEyFX.mjs → renderer-mp1NN5zk.mjs} +4 -4
  359. package/dist/{renderer-BhZZEyFX.mjs.map → renderer-mp1NN5zk.mjs.map} +1 -1
  360. package/dist/renderer-oZyoB4CT.mjs +5 -0
  361. package/dist/renderer-rzci_kTy.mjs +5 -0
  362. package/dist/{renderer-CpkiHRhh.mjs → renderer-to9DwqXK.mjs} +17 -99
  363. package/dist/renderer-to9DwqXK.mjs.map +1 -0
  364. package/dist/{renderer-CepMDQ06.mjs → renderer-v0vuUUUI.mjs} +19 -106
  365. package/dist/renderer-v0vuUUUI.mjs.map +1 -0
  366. package/dist/renderer-vLaZuZbX.mjs +5 -0
  367. package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs → renderers-CP8CFWDs-DlFq8jmz.mjs} +4 -4
  368. package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs.map → renderers-CP8CFWDs-DlFq8jmz.mjs.map} +1 -1
  369. package/dist/signals/index.d.mts +5 -5
  370. package/dist/signals/index.mjs +7 -7
  371. package/dist/{signals-Bv1OweKd.mjs → signals-BDkO0xcZ.mjs} +3 -3
  372. package/dist/{signals-Bv1OweKd.mjs.map → signals-BDkO0xcZ.mjs.map} +1 -1
  373. package/dist/{signin-Db08vl-g.mjs → signin-SVSXQw9i.mjs} +9 -9
  374. package/dist/{signin-Db08vl-g.mjs.map → signin-SVSXQw9i.mjs.map} +1 -1
  375. package/dist/{sso-oidc-CpLz_lIu.mjs → sso-oidc-B3Sagl43.mjs} +9 -9
  376. package/dist/{sso-oidc-CpLz_lIu.mjs.map → sso-oidc-B3Sagl43.mjs.map} +1 -1
  377. package/dist/{sts-BQefGuml.mjs → sts-CYeWec9i.mjs} +2 -2
  378. package/dist/{sts-Dgl0kH-t.mjs → sts-ClVtt-bV.mjs} +9 -9
  379. package/dist/{sts-Dgl0kH-t.mjs.map → sts-ClVtt-bV.mjs.map} +1 -1
  380. package/package.json +55 -55
  381. package/dist/dist-BAVZdFEJ.mjs.map +0 -1
  382. package/dist/dist-BYqNNwsl.mjs.map +0 -1
  383. package/dist/dist-CbG3QxDw.mjs.map +0 -1
  384. package/dist/dist-Cxi68OuY.mjs.map +0 -1
  385. package/dist/dist-cjs-3pon9kTt.mjs +0 -6
  386. package/dist/fonts-C0W6TgJk.mjs.map +0 -1
  387. package/dist/index-9B8CJowc.d.mts.map +0 -1
  388. package/dist/index-DDEPvMww.d.mts.map +0 -1
  389. package/dist/index-DnWsbbuZ.d.mts.map +0 -1
  390. package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
  391. package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
  392. package/dist/preview-engine/chunk-AUFSM5KI.mjs +0 -141
  393. package/dist/preview-engine/chunk-BQ65MU6H.mjs +0 -138
  394. package/dist/preview-engine/chunk-BWDARDO6.mjs +0 -117
  395. package/dist/preview-engine/chunk-DLXQDDIN.mjs +0 -46
  396. package/dist/preview-engine/chunk-EJGLUZMW.mjs +0 -1
  397. package/dist/preview-engine/chunk-FE6RSVKZ.mjs +0 -73
  398. package/dist/preview-engine/chunk-FGHOHCFG.mjs +0 -110
  399. package/dist/preview-engine/chunk-HPIULG7P.mjs +0 -111
  400. package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
  401. package/dist/preview-engine/chunk-IMV5SBQV.mjs +0 -1
  402. package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
  403. package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
  404. package/dist/preview-engine/chunk-L3IEJZ5S.mjs +0 -474
  405. package/dist/preview-engine/chunk-M7NMFDJ3.mjs +0 -3
  406. package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
  407. package/dist/preview-engine/chunk-NFAGEP43.mjs +0 -1448
  408. package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
  409. package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
  410. package/dist/preview-engine/chunk-Q66QQI6N.mjs +0 -8
  411. package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
  412. package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
  413. package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
  414. package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
  415. package/dist/preview-engine/chunk-S4CSX6K5.mjs +0 -610
  416. package/dist/preview-engine/chunk-SNYAHQ25.mjs +0 -186
  417. package/dist/preview-engine/chunk-SRT2OCQW.mjs +0 -1
  418. package/dist/preview-engine/chunk-SUUUYXXT.mjs +0 -1
  419. package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
  420. package/dist/preview-engine/chunk-XFYXT76H.mjs +0 -52
  421. package/dist/preview-engine/chunk-XUM42I4R.mjs +0 -1
  422. package/dist/preview-engine/chunk-YITWSOG4.mjs +0 -103
  423. package/dist/preview-engine/chunk-ZDCA6NVT.mjs +0 -82
  424. package/dist/preview-engine/chunk-ZNGOAGAI.mjs +0 -1
  425. package/dist/preview-engine/renderers-27Q5X3U6.mjs +0 -1
  426. package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
  427. package/dist/preview-engine/renderers-5BV6JGTU.mjs +0 -248
  428. package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
  429. package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
  430. package/dist/preview-engine/renderers-7X2W6QWX.mjs +0 -1
  431. package/dist/preview-engine/renderers-B52QT6MT.mjs +0 -55
  432. package/dist/preview-engine/renderers-BE6RVJSE.mjs +0 -1
  433. package/dist/preview-engine/renderers-BMM2BH56.mjs +0 -1
  434. package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
  435. package/dist/preview-engine/renderers-CRKRWR2Y.mjs +0 -1
  436. package/dist/preview-engine/renderers-DEYDSGJX.mjs +0 -1
  437. package/dist/preview-engine/renderers-DZTNRCR7.mjs +0 -1
  438. package/dist/preview-engine/renderers-ELO3KWTK.mjs +0 -1
  439. package/dist/preview-engine/renderers-EOJMPPAQ.mjs +0 -1
  440. package/dist/preview-engine/renderers-F2KJNDWA.mjs +0 -124
  441. package/dist/preview-engine/renderers-FCV4COVB.mjs +0 -1
  442. package/dist/preview-engine/renderers-G5KQISVL.mjs +0 -1
  443. package/dist/preview-engine/renderers-GJSUN5HU.mjs +0 -1
  444. package/dist/preview-engine/renderers-GMX2ZQDG.mjs +0 -1
  445. package/dist/preview-engine/renderers-GXCRINGC.mjs +0 -1
  446. package/dist/preview-engine/renderers-IHKORHMT.mjs +0 -1
  447. package/dist/preview-engine/renderers-JA4SLMG3.mjs +0 -1
  448. package/dist/preview-engine/renderers-JLN77CFZ.mjs +0 -1
  449. package/dist/preview-engine/renderers-KBFW7B5F.mjs +0 -1
  450. package/dist/preview-engine/renderers-LJRJMFCR.mjs +0 -1
  451. package/dist/preview-engine/renderers-LPAPZ5QS.mjs +0 -1
  452. package/dist/preview-engine/renderers-NQUDQEHY.mjs +0 -1
  453. package/dist/preview-engine/renderers-NS3AIJVG.mjs +0 -1
  454. package/dist/preview-engine/renderers-NSY2SDIE.mjs +0 -1
  455. package/dist/preview-engine/renderers-PW4OJWHF.mjs +0 -120
  456. package/dist/preview-engine/renderers-PWLWOZY4.mjs +0 -1
  457. package/dist/preview-engine/renderers-Q3MD34JN.mjs +0 -1
  458. package/dist/preview-engine/renderers-RXGNA2Q7.mjs +0 -1
  459. package/dist/preview-engine/renderers-TVTQ2R74.mjs +0 -1
  460. package/dist/preview-engine/renderers-VTTGFO55.mjs +0 -1
  461. package/dist/preview-engine/renderers-W3VVM5HB.mjs +0 -1
  462. package/dist/preview-engine/renderers-WG7QBD4D.mjs +0 -1
  463. package/dist/preview-engine/renderers-WLLJFZTF.mjs +0 -1
  464. package/dist/preview-engine/renderers-WN4SYFCU.mjs +0 -1
  465. package/dist/preview-engine/renderers-WSMLLSWX.mjs +0 -1
  466. package/dist/preview-engine/renderers-XFBSGTHU.mjs +0 -1
  467. package/dist/preview-engine/renderers-XFC6ZPO5.mjs +0 -1
  468. package/dist/preview-engine/renderers-XUHRY3XH.mjs +0 -1
  469. package/dist/preview-engine/renderers-YAOB5XU6.mjs +0 -1
  470. package/dist/preview-engine/renderers-YTB4FOHT.mjs +0 -1
  471. package/dist/preview-engine/renderers-ZIMBODX6.mjs +0 -1
  472. package/dist/program-BmNKgzja.mjs.map +0 -1
  473. package/dist/renderer-1VuQTY1Z.mjs.map +0 -1
  474. package/dist/renderer-6oMSare3.mjs +0 -3
  475. package/dist/renderer-B1ComPb2.mjs +0 -3
  476. package/dist/renderer-B2XzjK0z.mjs +0 -3
  477. package/dist/renderer-B2ieylQ3.mjs.map +0 -1
  478. package/dist/renderer-B8-kzZdP.mjs.map +0 -1
  479. package/dist/renderer-B8UaFNqb.mjs.map +0 -1
  480. package/dist/renderer-BDbTWSpP.mjs.map +0 -1
  481. package/dist/renderer-BIIWCg_J.mjs.map +0 -1
  482. package/dist/renderer-BJ1aTkZf.mjs.map +0 -1
  483. package/dist/renderer-BM05sB8m.mjs.map +0 -1
  484. package/dist/renderer-BQ5Bz5D0.mjs +0 -3
  485. package/dist/renderer-BREIjsUU.mjs.map +0 -1
  486. package/dist/renderer-BTu2EVhF.mjs +0 -3
  487. package/dist/renderer-BZcn_iBl.mjs +0 -3
  488. package/dist/renderer-Bc04fivZ.mjs.map +0 -1
  489. package/dist/renderer-BfAWZziM.mjs.map +0 -1
  490. package/dist/renderer-BfJSUjPN.mjs +0 -3
  491. package/dist/renderer-Bfgd4N0O.mjs.map +0 -1
  492. package/dist/renderer-Bhdf90Zq.mjs.map +0 -1
  493. package/dist/renderer-Bp6sDMa6.mjs +0 -3
  494. package/dist/renderer-Bt7_sb_Y.mjs +0 -3
  495. package/dist/renderer-Bv6q84TU.mjs.map +0 -1
  496. package/dist/renderer-C-H680_l.mjs +0 -3
  497. package/dist/renderer-C606ZPUn.mjs +0 -3
  498. package/dist/renderer-C9jyKn1i.mjs +0 -3
  499. package/dist/renderer-CDLrNgfo.mjs +0 -3
  500. package/dist/renderer-CERfcxgv.mjs +0 -3
  501. package/dist/renderer-CG5PzNkv.mjs +0 -3
  502. package/dist/renderer-CI7sG_cv.mjs.map +0 -1
  503. package/dist/renderer-CPoIMVdk.mjs +0 -3
  504. package/dist/renderer-CQdVj2JS.mjs +0 -3
  505. package/dist/renderer-CQiTodg9.mjs +0 -337
  506. package/dist/renderer-CQiTodg9.mjs.map +0 -1
  507. package/dist/renderer-CWTpc4ff.mjs.map +0 -1
  508. package/dist/renderer-CXn5HAnK.mjs.map +0 -1
  509. package/dist/renderer-CZgB5st8.mjs +0 -3
  510. package/dist/renderer-C_TPMHiH.mjs.map +0 -1
  511. package/dist/renderer-Ca7L1EOp.mjs +0 -3
  512. package/dist/renderer-CaaOKMSd.mjs.map +0 -1
  513. package/dist/renderer-CdciwwMI.mjs.map +0 -1
  514. package/dist/renderer-CepMDQ06.mjs.map +0 -1
  515. package/dist/renderer-CfC_aiew.mjs.map +0 -1
  516. package/dist/renderer-ChdLYS-G.mjs.map +0 -1
  517. package/dist/renderer-CkykdR_D.mjs +0 -3
  518. package/dist/renderer-Cl6GkeHx.mjs +0 -3
  519. package/dist/renderer-ClcjrFyo.mjs +0 -3
  520. package/dist/renderer-CnXW28b9.mjs.map +0 -1
  521. package/dist/renderer-CpkiHRhh.mjs.map +0 -1
  522. package/dist/renderer-CtVkU_GA.mjs +0 -44
  523. package/dist/renderer-CtVkU_GA.mjs.map +0 -1
  524. package/dist/renderer-Ctk2zzfy.mjs.map +0 -1
  525. package/dist/renderer-CtyD_Xju.mjs.map +0 -1
  526. package/dist/renderer-CySUP_wk.mjs +0 -3
  527. package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
  528. package/dist/renderer-D2XD4QYk.mjs.map +0 -1
  529. package/dist/renderer-D2l_Odyg.mjs +0 -3
  530. package/dist/renderer-D7zvPHKn.mjs.map +0 -1
  531. package/dist/renderer-D9NnIx7o.mjs +0 -3
  532. package/dist/renderer-DCPCYySt.mjs +0 -3
  533. package/dist/renderer-DEJwPRkR.mjs.map +0 -1
  534. package/dist/renderer-DIkpJEOZ.mjs +0 -3
  535. package/dist/renderer-DML9qpmS.mjs.map +0 -1
  536. package/dist/renderer-DNSXPkf_.mjs +0 -3
  537. package/dist/renderer-DP-CvZ_Z.mjs +0 -3
  538. package/dist/renderer-DZGtBUCx.mjs.map +0 -1
  539. package/dist/renderer-D_1oDOCP.mjs.map +0 -1
  540. package/dist/renderer-DeXb8R6h.mjs +0 -3
  541. package/dist/renderer-DezO-ZaP.mjs +0 -4
  542. package/dist/renderer-DhXe04fC.mjs +0 -3
  543. package/dist/renderer-DirxsOjq.mjs.map +0 -1
  544. package/dist/renderer-Djlb4TLO.mjs.map +0 -1
  545. package/dist/renderer-DnH3SI7w.mjs +0 -3
  546. package/dist/renderer-DpGc-N3G.mjs.map +0 -1
  547. package/dist/renderer-Dpw4oi33.mjs +0 -3
  548. package/dist/renderer-DxTs4Iyi.mjs.map +0 -1
  549. package/dist/renderer-Dy0utCl7.mjs.map +0 -1
  550. package/dist/renderer-Md-ytU0v.mjs +0 -3
  551. package/dist/renderer-U-bhWO9Q.mjs +0 -3
  552. package/dist/renderer-_uvdg48N.mjs.map +0 -1
  553. package/dist/renderer-bsWnRNpJ.mjs.map +0 -1
  554. package/dist/renderer-cgxO2xN6.mjs.map +0 -1
  555. package/dist/renderer-d5-F_48R.mjs +0 -3
  556. package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
  557. package/dist/renderer-vqkKWqa5.mjs.map +0 -1
  558. package/dist/renderer-zA5okHds.mjs +0 -3
  559. /package/dist/{renderer-C2n-EHxg.mjs → renderer-B-BcgA6d.mjs} +0 -0
@@ -1,7 +1,8 @@
1
- import { n as defineRenderer } from "./renderer-CtVkU_GA.mjs";
2
- import { rt as signalRegistry } from "./dist-Cxi68OuY.mjs";
1
+ import { n as defineRenderer } from "./renderer-BSitV56h.mjs";
2
+ import { An as signalRegistry } from "./dist-Bun_TUvZ.mjs";
3
+ import { a as createFullscreenPipeline, c as drawTextureToTarget, f as signalTiming, l as fragmentBindGroupLayout, o as drawChildToTexture, p as texturesLayout, s as drawFullscreenPass, t as FULLSCREEN_QUAD_WGSL, u as perDevice } from "./gpu-RkpiFGOA.mjs";
3
4
 
4
- //#region ../../nodes/node-modulate/dist/renderers-Cr4S_R26.mjs
5
+ //#region ../../nodes/node-modulate/dist/renderers-B9q42xr2.mjs
5
6
  function resolveVal(val, fallback, frame, fps) {
6
7
  if (val === void 0 || val === null) return fallback;
7
8
  if (typeof val === "object" && val !== null) {
@@ -74,27 +75,7 @@ struct ModulateUniforms {
74
75
  @group(2) @binding(4) var saturationTex : texture_2d<f32>;
75
76
  @group(2) @binding(5) var sepiaTex : texture_2d<f32>;
76
77
  @group(2) @binding(6) var sigSamp : sampler;
77
-
78
- struct VSOut {
79
- @builtin(position) pos : vec4<f32>,
80
- @location(0) uv : vec2<f32>,
81
- };
82
-
83
- @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
84
- var pos = array<vec2<f32>, 4>(
85
- vec2<f32>(-1.0, 1.0),
86
- vec2<f32>(1.0, 1.0),
87
- vec2<f32>(-1.0, -1.0),
88
- vec2<f32>(1.0, -1.0)
89
- );
90
- var uv = array<vec2<f32>, 4>(
91
- vec2<f32>(0.0, 0.0),
92
- vec2<f32>(1.0, 0.0),
93
- vec2<f32>(0.0, 1.0),
94
- vec2<f32>(1.0, 1.0)
95
- );
96
- return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
97
- }
78
+ ${FULLSCREEN_QUAD_WGSL}
98
79
 
99
80
  fn apply_exposure(c: vec4<f32>, exposure: f32) -> vec4<f32> {
100
81
  let scale = pow(2.0, exposure);
@@ -230,68 +211,13 @@ fn apply_sepia(c: vec4<f32>, s: f32) -> vec4<f32> {
230
211
  return color;
231
212
  }
232
213
  `;
233
- const deviceResourceCache = /* @__PURE__ */ new WeakMap();
234
214
  const modulateData = new Float32Array(12);
235
- function getDeviceLayouts(device) {
236
- let res = deviceResourceCache.get(device);
237
- if (res) return res;
238
- res = {
239
- modulateUniformLayout: device.createBindGroupLayout({ entries: [{
240
- binding: 0,
241
- visibility: GPUShaderStage.FRAGMENT,
242
- buffer: { type: "uniform" }
243
- }] }),
244
- singleTextureLayout: device.createBindGroupLayout({ entries: [{
245
- binding: 0,
246
- visibility: GPUShaderStage.FRAGMENT,
247
- texture: { sampleType: "float" }
248
- }, {
249
- binding: 1,
250
- visibility: GPUShaderStage.FRAGMENT,
251
- sampler: { type: "filtering" }
252
- }] }),
253
- modulateSignalsLayout: device.createBindGroupLayout({ entries: [
254
- {
255
- binding: 0,
256
- visibility: GPUShaderStage.FRAGMENT,
257
- texture: { sampleType: "float" }
258
- },
259
- {
260
- binding: 1,
261
- visibility: GPUShaderStage.FRAGMENT,
262
- texture: { sampleType: "float" }
263
- },
264
- {
265
- binding: 2,
266
- visibility: GPUShaderStage.FRAGMENT,
267
- texture: { sampleType: "float" }
268
- },
269
- {
270
- binding: 3,
271
- visibility: GPUShaderStage.FRAGMENT,
272
- texture: { sampleType: "float" }
273
- },
274
- {
275
- binding: 4,
276
- visibility: GPUShaderStage.FRAGMENT,
277
- texture: { sampleType: "float" }
278
- },
279
- {
280
- binding: 5,
281
- visibility: GPUShaderStage.FRAGMENT,
282
- texture: { sampleType: "float" }
283
- },
284
- {
285
- binding: 6,
286
- visibility: GPUShaderStage.FRAGMENT,
287
- sampler: { type: "filtering" }
288
- }
289
- ] }),
290
- pipelineCache: /* @__PURE__ */ new Map()
291
- };
292
- deviceResourceCache.set(device, res);
293
- return res;
294
- }
215
+ const getDeviceLayouts = perDevice((device) => ({
216
+ modulateUniformLayout: fragmentBindGroupLayout(device, ["uniform"]),
217
+ singleTextureLayout: fragmentBindGroupLayout(device, ["texture", "sampler"]),
218
+ modulateSignalsLayout: texturesLayout(device, 6),
219
+ pipelineCache: /* @__PURE__ */ new Map()
220
+ }));
295
221
  function getModulateResources(device, format) {
296
222
  const layouts = getDeviceLayouts(device);
297
223
  const cacheKey = `modulate_${format}`;
@@ -301,23 +227,15 @@ function getModulateResources(device, format) {
301
227
  label: `modulate_static_${format}.wgsl`,
302
228
  code: STATIC_MODULATE_SHADER
303
229
  });
304
- pipeline = device.createRenderPipeline({
230
+ pipeline = createFullscreenPipeline(device, {
305
231
  label: `ModulatePipeline_static_${format}`,
306
- layout: device.createPipelineLayout({ bindGroupLayouts: [
232
+ module: modulateModule,
233
+ layouts: [
307
234
  layouts.modulateUniformLayout,
308
235
  layouts.singleTextureLayout,
309
236
  layouts.modulateSignalsLayout
310
- ] }),
311
- vertex: {
312
- module: modulateModule,
313
- entryPoint: "vs"
314
- },
315
- fragment: {
316
- module: modulateModule,
317
- entryPoint: "fs",
318
- targets: [{ format }]
319
- },
320
- primitive: { topology: "triangle-strip" }
237
+ ],
238
+ format
321
239
  });
322
240
  layouts.pipelineCache.set(cacheKey, pipeline);
323
241
  }
@@ -329,7 +247,7 @@ function getModulateResources(device, format) {
329
247
  };
330
248
  }
331
249
  const ModulateWebGPURenderer = async (args) => {
332
- const { ctx, encoder, pass, targetView, targetTexture, targetWidth, targetHeight, props, drawChild } = args;
250
+ const { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;
333
251
  const frame = props.frame ?? 0;
334
252
  const compositionFrame = props.compositionFrame ?? frame;
335
253
  const fps = props.fps || 30;
@@ -346,27 +264,7 @@ const ModulateWebGPURenderer = async (args) => {
346
264
  const sepiaInfo = resolveModulateField(op, "sepia", 0, 0, 1, compositionFrame, fps);
347
265
  const width = targetWidth;
348
266
  const height = targetHeight;
349
- const tmpTex = ctx.renderer.getTemporaryTexture(width, height, [...props.excludeTextures || [], targetTexture]);
350
- const tmpView = tmpTex.createView();
351
- ctx.renderer.beginFrame(encoder, tmpView, {
352
- r: 0,
353
- g: 0,
354
- b: 0,
355
- a: 0
356
- }, width, height, "clear").end();
357
- ctx.renderer.pushScissor({
358
- x: 0,
359
- y: 0,
360
- width,
361
- height
362
- });
363
- ctx.renderer.pushIdentity();
364
- await drawChild(childMedia, {
365
- ...props,
366
- virtualMedia: childMedia
367
- }, tmpView, tmpTex, width, height);
368
- ctx.renderer.popTransform();
369
- ctx.renderer.popScissor();
267
+ const { texture: tmpTex } = await drawChildToTexture(args, childMedia);
370
268
  const { modulatePipeline: pipeline, modulateUniformLayout: uLayout, singleTextureLayout: tLayout, modulateSignalsLayout: sigLayout } = getModulateResources(ctx.device, ctx.renderer.format);
371
269
  const sampler = ctx.renderer.samplerCache.getSampler(ctx.device);
372
270
  const outTex = ctx.renderer.getTemporaryTexture(width, height, [
@@ -413,8 +311,7 @@ const ModulateWebGPURenderer = async (args) => {
413
311
  }
414
312
  ];
415
313
  const signalViews = [];
416
- const elapsedSeconds = props.elapsedMs !== void 0 ? props.elapsedMs / 1e3 : frame / fps;
417
- const durationSeconds = props.virtualMedia?.metadata?.durationMs ? props.virtualMedia.metadata.durationMs / 1e3 : props.durationMs !== void 0 ? props.durationMs / 1e3 : 0;
314
+ const { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps);
418
315
  for (const f of fields) {
419
316
  const isGenerator = !!(f.info.hasSignal && f.info.sd);
420
317
  modulateData[f.idx] = isGenerator ? 1 : 0;
@@ -424,77 +321,53 @@ const ModulateWebGPURenderer = async (args) => {
424
321
  } else signalViews.push(signalRegistry.getDummy1x1TextureView(ctx.device));
425
322
  }
426
323
  const buffer = ctx.renderer.getTemporaryBuffer(modulateData);
427
- const renderPass = encoder.beginRenderPass({ colorAttachments: [{
428
- view: outTex.createView(),
429
- loadOp: "clear",
430
- storeOp: "store",
431
- clearValue: {
432
- r: 0,
433
- g: 0,
434
- b: 0,
435
- a: 0
436
- }
437
- }] });
438
- renderPass.setPipeline(pipeline);
439
- renderPass.setBindGroup(0, ctx.device.createBindGroup({
440
- layout: uLayout,
441
- entries: [{
442
- binding: 0,
443
- resource: { buffer }
444
- }]
445
- }));
446
- renderPass.setBindGroup(1, ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler));
447
- renderPass.setBindGroup(2, ctx.device.createBindGroup({
448
- layout: sigLayout,
449
- entries: [
450
- {
324
+ drawFullscreenPass(encoder, outTex.createView(), pipeline, [
325
+ ctx.device.createBindGroup({
326
+ layout: uLayout,
327
+ entries: [{
451
328
  binding: 0,
452
- resource: signalViews[0]
453
- },
454
- {
455
- binding: 1,
456
- resource: signalViews[1]
457
- },
458
- {
459
- binding: 2,
460
- resource: signalViews[2]
461
- },
462
- {
463
- binding: 3,
464
- resource: signalViews[3]
465
- },
466
- {
467
- binding: 4,
468
- resource: signalViews[4]
469
- },
470
- {
471
- binding: 5,
472
- resource: signalViews[5]
473
- },
474
- {
475
- binding: 6,
476
- resource: sampler
477
- }
478
- ]
479
- }));
480
- renderPass.draw(4);
481
- renderPass.end();
482
- const finalPass = ctx.renderer.beginFrame(encoder, targetView, {
483
- r: 0,
484
- g: 0,
485
- b: 0,
486
- a: 0
487
- }, targetWidth, targetHeight, "load");
488
- ctx.renderer.drawTexture(finalPass, outTex, {
489
- x: 0,
490
- y: 0,
491
- width: targetWidth,
492
- height: targetHeight
493
- }, { opacity: op.opacity ?? 1 });
494
- args.pass = finalPass;
329
+ resource: { buffer }
330
+ }]
331
+ }),
332
+ ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler),
333
+ ctx.device.createBindGroup({
334
+ layout: sigLayout,
335
+ entries: [
336
+ {
337
+ binding: 0,
338
+ resource: signalViews[0]
339
+ },
340
+ {
341
+ binding: 1,
342
+ resource: signalViews[1]
343
+ },
344
+ {
345
+ binding: 2,
346
+ resource: signalViews[2]
347
+ },
348
+ {
349
+ binding: 3,
350
+ resource: signalViews[3]
351
+ },
352
+ {
353
+ binding: 4,
354
+ resource: signalViews[4]
355
+ },
356
+ {
357
+ binding: 5,
358
+ resource: signalViews[5]
359
+ },
360
+ {
361
+ binding: 6,
362
+ resource: sampler
363
+ }
364
+ ]
365
+ })
366
+ ]);
367
+ drawTextureToTarget(args, outTex, op.opacity ?? 1);
495
368
  };
496
369
  var renderers_default = defineRenderer({ WebGPURenderer: ModulateWebGPURenderer });
497
370
 
498
371
  //#endregion
499
372
  export { renderers_default as t };
500
- //# sourceMappingURL=renderer-CaaOKMSd.mjs.map
373
+ //# sourceMappingURL=renderer-DZLJnnU2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-DZLJnnU2.mjs","names":[],"sources":["../../../nodes/node-modulate/dist/renderers-B9q42xr2.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout, perDevice, signalTiming, texturesLayout } from \"@framefields/node-sdk/gpu\";\nimport { signalRegistry } from \"@framefields/webgpu-renderers\";\n\n//#region src/renderers/webgpu-renderer.ts\nfunction resolveVal(val, fallback, frame, fps) {\n\tif (val === void 0 || val === null) return fallback;\n\tif (typeof val === \"object\" && val !== null) {\n\t\tif (\"get\" in val && typeof val.get === \"function\") try {\n\t\t\tconst res = val.get({\n\t\t\t\tframe,\n\t\t\t\tfps,\n\t\t\t\ttime: fps > 0 ? frame / fps : 0,\n\t\t\t\tduration: 0,\n\t\t\t\tdurationMs: 0,\n\t\t\t\tprogress: 0,\n\t\t\t\tdeltaTime: fps > 0 ? 1 / fps : 0\n\t\t\t});\n\t\t\tconst n$1 = Number(res);\n\t\t\tif (Number.isFinite(n$1)) return n$1;\n\t\t} catch {}\n\t\tif (\"value\" in val) {\n\t\t\tconst n$1 = Number(val.value);\n\t\t\tif (Number.isFinite(n$1)) return n$1;\n\t\t}\n\t} else if (typeof val === \"function\") try {\n\t\tconst res = val(frame, fps);\n\t\tconst n$1 = Number(res);\n\t\tif (Number.isFinite(n$1)) return n$1;\n\t} catch {}\n\tconst n = Number(val);\n\treturn Number.isFinite(n) ? n : fallback;\n}\nfunction resolveModulateField(op, fieldName, defaultValue, minVal, maxVal, frame = 0, fps = 30) {\n\tconst handleId = op[`${fieldName}HandleId`];\n\tconst signalInput = handleId ? op.inputs?.[handleId] : null;\n\tconst hasSignal = !!(signalInput?.connectionValid && signalInput.outputItem?.type === \"Signal\");\n\tconst sd = hasSignal ? signalInput?.outputItem?.data : null;\n\tlet value = defaultValue;\n\tif (!hasSignal) if (signalInput?.connectionValid && signalInput.outputItem?.type === \"Number\") value = Number(signalInput.outputItem.data ?? defaultValue);\n\telse value = resolveVal(op[fieldName] ?? op.signals?.[fieldName], defaultValue, frame, fps);\n\telse if (sd && typeof sd === \"object\" && \"offset\" in sd) value = Number(sd.offset ?? defaultValue);\n\tvalue = Math.max(minVal, Math.min(maxVal, value));\n\treturn {\n\t\thasSignal,\n\t\tsd,\n\t\tvalue\n\t};\n}\nconst STATIC_MODULATE_SHADER = `\nstruct ModulateUniforms {\n\thue : f32,\n\tbrightness : f32,\n\tcontrast : f32,\n\texposure : f32,\n\tsaturation : f32,\n\tsepia : f32,\n\n\thasSignal_hue : f32,\n\thasSignal_brightness : f32,\n\thasSignal_contrast : f32,\n\thasSignal_exposure : f32,\n\thasSignal_saturation : f32,\n\thasSignal_sepia : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : ModulateUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n\n@group(2) @binding(0) var hueTex : texture_2d<f32>;\n@group(2) @binding(1) var brightnessTex : texture_2d<f32>;\n@group(2) @binding(2) var contrastTex : texture_2d<f32>;\n@group(2) @binding(3) var exposureTex : texture_2d<f32>;\n@group(2) @binding(4) var saturationTex : texture_2d<f32>;\n@group(2) @binding(5) var sepiaTex : texture_2d<f32>;\n@group(2) @binding(6) var sigSamp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\nfn apply_exposure(c: vec4<f32>, exposure: f32) -> vec4<f32> {\n\tlet scale = pow(2.0, exposure);\n\tvar unpremult = c;\n\tif (unpremult.a > 0.0) { unpremult = vec4<f32>(unpremult.rgb / unpremult.a, unpremult.a); }\n\tlet r = scale * unpremult.r;\n\tlet g = scale * unpremult.g;\n\tlet b = scale * unpremult.b;\n\tlet outAlpha = clamp(unpremult.a, 0.0, 1.0);\n\tlet outRgb = clamp(vec3<f32>(r, g, b), vec3<f32>(0.0), vec3<f32>(1.0)) * outAlpha;\n\treturn vec4<f32>(outRgb, outAlpha);\n}\n\nfn apply_hue(c: vec4<f32>, degrees: f32) -> vec4<f32> {\n\tlet rad = (degrees * 3.1415926535) / 180.0;\n\tlet cosVal = cos(rad);\n\tlet sinVal = sin(rad);\n\n\tlet row0 = vec4<f32>(0.213 + cosVal * 0.787 - sinVal * 0.213, 0.715 - cosVal * 0.715 - sinVal * 0.715, 0.072 - cosVal * 0.072 + sinVal * 0.928, 0.0);\n\tlet row1 = vec4<f32>(0.213 - cosVal * 0.213 + sinVal * 0.143, 0.715 + cosVal * 0.285 + sinVal * 0.14, 0.072 - cosVal * 0.072 - sinVal * 0.283, 0.0);\n\tlet row2 = vec4<f32>(0.213 - cosVal * 0.213 - sinVal * 0.787, 0.715 - cosVal * 0.715 + sinVal * 0.715, 0.072 + cosVal * 0.928 + sinVal * 0.072, 0.0);\n\t\n\tvar unpremult = c;\n\tif (unpremult.a > 0.0) { unpremult = vec4<f32>(unpremult.rgb / unpremult.a, unpremult.a); }\n\tlet r = dot(row0, unpremult);\n\tlet g = dot(row1, unpremult);\n\tlet b = dot(row2, unpremult);\n\tlet outAlpha = clamp(unpremult.a, 0.0, 1.0);\n\tlet outRgb = clamp(vec3<f32>(r, g, b), vec3<f32>(0.0), vec3<f32>(1.0)) * outAlpha;\n\treturn vec4<f32>(outRgb, outAlpha);\n}\n\nfn apply_saturation(c: vec4<f32>, sat: f32) -> vec4<f32> {\n\tlet row0 = vec4<f32>(0.213 + sat * 0.787, 0.715 * (1.0 - sat), 0.072 * (1.0 - sat), 0.0);\n\tlet row1 = vec4<f32>(0.213 * (1.0 - sat), 0.715 + sat * 0.285, 0.072 * (1.0 - sat), 0.0);\n\tlet row2 = vec4<f32>(0.213 * (1.0 - sat), 0.715 * (1.0 - sat), 0.072 + sat * 0.928, 0.0);\n\n\tvar unpremult = c;\n\tif (unpremult.a > 0.0) { unpremult = vec4<f32>(unpremult.rgb / unpremult.a, unpremult.a); }\n\tlet r = dot(row0, unpremult);\n\tlet g = dot(row1, unpremult);\n\tlet b = dot(row2, unpremult);\n\tlet outAlpha = clamp(unpremult.a, 0.0, 1.0);\n\tlet outRgb = clamp(vec3<f32>(r, g, b), vec3<f32>(0.0), vec3<f32>(1.0)) * outAlpha;\n\treturn vec4<f32>(outRgb, outAlpha);\n}\n\nfn apply_contrast(c: vec4<f32>, contrast: f32) -> vec4<f32> {\n\tlet offset = 0.5 * (1.0 - contrast);\n\t\n\tvar unpremult = c;\n\tif (unpremult.a > 0.0) { unpremult = vec4<f32>(unpremult.rgb / unpremult.a, unpremult.a); }\n\tlet r = contrast * unpremult.r + offset;\n\tlet g = contrast * unpremult.g + offset;\n\tlet b = contrast * unpremult.b + offset;\n\tlet outAlpha = clamp(unpremult.a, 0.0, 1.0);\n\tlet outRgb = clamp(vec3<f32>(r, g, b), vec3<f32>(0.0), vec3<f32>(1.0)) * outAlpha;\n\treturn vec4<f32>(outRgb, outAlpha);\n}\n\nfn apply_brightness(c: vec4<f32>, bright: f32) -> vec4<f32> {\n\tvar unpremult = c;\n\tif (unpremult.a > 0.0) { unpremult = vec4<f32>(unpremult.rgb / unpremult.a, unpremult.a); }\n\tlet r = bright * unpremult.r;\n\tlet g = bright * unpremult.g;\n\tlet b = bright * unpremult.b;\n\tlet outAlpha = clamp(unpremult.a, 0.0, 1.0);\n\tlet outRgb = clamp(vec3<f32>(r, g, b), vec3<f32>(0.0), vec3<f32>(1.0)) * outAlpha;\n\treturn vec4<f32>(outRgb, outAlpha);\n}\n\nfn apply_sepia(c: vec4<f32>, s: f32) -> vec4<f32> {\n\tlet row0 = vec4<f32>(1.0 - 0.607 * s, 0.769 * s, 0.189 * s, 0.0);\n\tlet row1 = vec4<f32>(0.349 * s, 1.0 - 0.314 * s, 0.168 * s, 0.0);\n\tlet row2 = vec4<f32>(0.272 * s, 0.534 * s, 1.0 - 0.869 * s, 0.0);\n\n\tvar unpremult = c;\n\tif (unpremult.a > 0.0) { unpremult = vec4<f32>(unpremult.rgb / unpremult.a, unpremult.a); }\n\tlet r = dot(row0, unpremult);\n\tlet g = dot(row1, unpremult);\n\tlet b = dot(row2, unpremult);\n\tlet outAlpha = clamp(unpremult.a, 0.0, 1.0);\n\tlet outRgb = clamp(vec3<f32>(r, g, b), vec3<f32>(0.0), vec3<f32>(1.0)) * outAlpha;\n\treturn vec4<f32>(outRgb, outAlpha);\n}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tlet original = textureSample(tex, samp, in.uv);\n\tvar color = original;\n\n\t// 1. Exposure\n\tvar exposure = u.exposure;\n\tif (u.hasSignal_exposure > 0.5) {\n\t\texposure = textureSampleLevel(exposureTex, sigSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tcolor = apply_exposure(color, exposure);\n\n\t// 2. Hue\n\tvar hue = u.hue;\n\tif (u.hasSignal_hue > 0.5) {\n\t\thue = textureSampleLevel(hueTex, sigSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tcolor = apply_hue(color, hue);\n\n\t// 3. Saturation\n\tvar saturation = u.saturation;\n\tif (u.hasSignal_saturation > 0.5) {\n\t\tsaturation = textureSampleLevel(saturationTex, sigSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tcolor = apply_saturation(color, saturation);\n\n\t// 4. Contrast\n\tvar contrast = u.contrast;\n\tif (u.hasSignal_contrast > 0.5) {\n\t\tcontrast = textureSampleLevel(contrastTex, sigSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tcolor = apply_contrast(color, contrast);\n\n\t// 5. Brightness\n\tvar brightness = u.brightness;\n\tif (u.hasSignal_brightness > 0.5) {\n\t\tbrightness = textureSampleLevel(brightnessTex, sigSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tcolor = apply_brightness(color, brightness);\n\n\t// 6. Sepia\n\tvar sepia = u.sepia;\n\tif (u.hasSignal_sepia > 0.5) {\n\t\tsepia = textureSampleLevel(sepiaTex, sigSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tcolor = apply_sepia(color, sepia);\n\n\treturn color;\n}\n`;\nconst modulateData = new Float32Array(12);\nconst getDeviceLayouts = perDevice((device) => ({\n\tmodulateUniformLayout: fragmentBindGroupLayout(device, [\"uniform\"]),\n\tsingleTextureLayout: fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]),\n\tmodulateSignalsLayout: texturesLayout(device, 6),\n\tpipelineCache: /* @__PURE__ */ new Map()\n}));\nfunction getModulateResources(device, format) {\n\tconst layouts = getDeviceLayouts(device);\n\tconst cacheKey = `modulate_${format}`;\n\tlet pipeline = layouts.pipelineCache.get(cacheKey);\n\tif (!pipeline) {\n\t\tconst modulateModule = device.createShaderModule({\n\t\t\tlabel: `modulate_static_${format}.wgsl`,\n\t\t\tcode: STATIC_MODULATE_SHADER\n\t\t});\n\t\tpipeline = createFullscreenPipeline(device, {\n\t\t\tlabel: `ModulatePipeline_static_${format}`,\n\t\t\tmodule: modulateModule,\n\t\t\tlayouts: [\n\t\t\t\tlayouts.modulateUniformLayout,\n\t\t\t\tlayouts.singleTextureLayout,\n\t\t\t\tlayouts.modulateSignalsLayout\n\t\t\t],\n\t\t\tformat\n\t\t});\n\t\tlayouts.pipelineCache.set(cacheKey, pipeline);\n\t}\n\treturn {\n\t\tmodulatePipeline: pipeline,\n\t\tmodulateUniformLayout: layouts.modulateUniformLayout,\n\t\tsingleTextureLayout: layouts.singleTextureLayout,\n\t\tmodulateSignalsLayout: layouts.modulateSignalsLayout\n\t};\n}\nconst ModulateWebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;\n\tconst frame = props.frame ?? 0;\n\tconst compositionFrame = props.compositionFrame ?? frame;\n\tconst fps = props.fps || 30;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"Modulate\" || !op) return;\n\tconst childMedia = props.virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tpass.end();\n\tconst hueInfo = resolveModulateField(op, \"hue\", 0, 0, 360, compositionFrame, fps);\n\tconst brightnessInfo = resolveModulateField(op, \"brightness\", 1, 0, 2, compositionFrame, fps);\n\tconst contrastInfo = resolveModulateField(op, \"contrast\", 1, 0, 2, compositionFrame, fps);\n\tconst exposureInfo = resolveModulateField(op, \"exposure\", 0, -2, 2, compositionFrame, fps);\n\tconst saturationInfo = resolveModulateField(op, \"saturation\", 1, 0, 2, compositionFrame, fps);\n\tconst sepiaInfo = resolveModulateField(op, \"sepia\", 0, 0, 1, compositionFrame, fps);\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst { texture: tmpTex } = await drawChildToTexture(args, childMedia);\n\tconst { modulatePipeline: pipeline, modulateUniformLayout: uLayout, singleTextureLayout: tLayout, modulateSignalsLayout: sigLayout } = getModulateResources(ctx.device, ctx.renderer.format);\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst outTex = ctx.renderer.getTemporaryTexture(width, height, [\n\t\ttmpTex,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tmodulateData[0] = hueInfo.value;\n\tmodulateData[1] = brightnessInfo.value;\n\tmodulateData[2] = contrastInfo.value;\n\tmodulateData[3] = exposureInfo.value;\n\tmodulateData[4] = saturationInfo.value;\n\tmodulateData[5] = sepiaInfo.value;\n\tconst fields = [\n\t\t{\n\t\t\tname: \"hue\",\n\t\t\tinfo: hueInfo,\n\t\t\tidx: 6\n\t\t},\n\t\t{\n\t\t\tname: \"brightness\",\n\t\t\tinfo: brightnessInfo,\n\t\t\tidx: 7\n\t\t},\n\t\t{\n\t\t\tname: \"contrast\",\n\t\t\tinfo: contrastInfo,\n\t\t\tidx: 8\n\t\t},\n\t\t{\n\t\t\tname: \"exposure\",\n\t\t\tinfo: exposureInfo,\n\t\t\tidx: 9\n\t\t},\n\t\t{\n\t\t\tname: \"saturation\",\n\t\t\tinfo: saturationInfo,\n\t\t\tidx: 10\n\t\t},\n\t\t{\n\t\t\tname: \"sepia\",\n\t\t\tinfo: sepiaInfo,\n\t\t\tidx: 11\n\t\t}\n\t];\n\tconst signalViews = [];\n\tconst { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps);\n\tfor (const f of fields) {\n\t\tconst isGenerator = !!(f.info.hasSignal && f.info.sd);\n\t\tmodulateData[f.idx] = isGenerator ? 1 : 0;\n\t\tif (isGenerator) {\n\t\t\tconst view = signalRegistry.getOrCreate2DTextureView(ctx.device, encoder, f.info.sd.nodeId ?? `modulate_${f.name}_sig`, elapsedSeconds, durationSeconds, f.info.sd, width, height, props.renderId, frame, fps);\n\t\t\tsignalViews.push(view);\n\t\t} else signalViews.push(signalRegistry.getDummy1x1TextureView(ctx.device));\n\t}\n\tconst buffer = ctx.renderer.getTemporaryBuffer(modulateData);\n\tdrawFullscreenPass(encoder, outTex.createView(), pipeline, [\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: uLayout,\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: { buffer }\n\t\t\t}]\n\t\t}),\n\t\tctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler),\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: sigLayout,\n\t\t\tentries: [\n\t\t\t\t{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: signalViews[0]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 1,\n\t\t\t\t\tresource: signalViews[1]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 2,\n\t\t\t\t\tresource: signalViews[2]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 3,\n\t\t\t\t\tresource: signalViews[3]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 4,\n\t\t\t\t\tresource: signalViews[4]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 5,\n\t\t\t\t\tresource: signalViews[5]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 6,\n\t\t\t\t\tresource: sampler\n\t\t\t\t}\n\t\t\t]\n\t\t})\n\t]);\n\tdrawTextureToTarget(args, outTex, op.opacity ?? 1);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: ModulateWebGPURenderer });\n\n//#endregion\nexport { renderers_default as t };\n//# sourceMappingURL=renderers-B9q42xr2.mjs.map"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { n as defineRenderer } from "./renderer-CtVkU_GA.mjs";
2
- import { rt as signalRegistry } from "./dist-Cxi68OuY.mjs";
1
+ import { l as unwrapFrameParam, n as defineRenderer } from "./renderer-BSitV56h.mjs";
2
+ import { a as createFullscreenPipeline, c as drawTextureToTarget, d as signalTextureView, f as signalTiming, l as fragmentBindGroupLayout, o as drawChildToTexture, p as texturesLayout, s as drawFullscreenPass, t as FULLSCREEN_QUAD_WGSL, u as perDevice } from "./gpu-RkpiFGOA.mjs";
3
3
 
4
- //#region ../../nodes/node-tile-offset/dist/renderers-DRh2BxDz.mjs
4
+ //#region ../../nodes/node-tile-offset/dist/renderers-DQJJPfSd.mjs
5
5
  const TILE_OFFSET_SHADER = `
6
6
  struct TileOffsetUniforms {
7
7
  offsetX : f32,
@@ -22,27 +22,7 @@ struct TileOffsetUniforms {
22
22
  @group(2) @binding(0) var offsetXSigTex : texture_2d<f32>;
23
23
  @group(2) @binding(1) var offsetYSigTex : texture_2d<f32>;
24
24
  @group(2) @binding(2) var signalSamp : sampler;
25
-
26
- struct VSOut {
27
- @builtin(position) pos : vec4<f32>,
28
- @location(0) uv : vec2<f32>,
29
- };
30
-
31
- @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
32
- var pos = array<vec2<f32>, 4>(
33
- vec2<f32>(-1.0, 1.0),
34
- vec2<f32>(1.0, 1.0),
35
- vec2<f32>(-1.0, -1.0),
36
- vec2<f32>(1.0, -1.0)
37
- );
38
- var uv = array<vec2<f32>, 4>(
39
- vec2<f32>(0.0, 0.0),
40
- vec2<f32>(1.0, 0.0),
41
- vec2<f32>(0.0, 1.0),
42
- vec2<f32>(1.0, 1.0)
43
- );
44
- return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
45
- }
25
+ ${FULLSCREEN_QUAD_WGSL}
46
26
 
47
27
  @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
48
28
  var offX = u.offsetX;
@@ -84,48 +64,13 @@ struct VSOut {
84
64
  return color;
85
65
  }
86
66
  `;
87
- const deviceResourceCache = /* @__PURE__ */ new WeakMap();
88
67
  const uniformData = new Float32Array(8);
89
- function getDeviceLayouts(device) {
90
- let res = deviceResourceCache.get(device);
91
- if (res) return res;
92
- res = {
93
- uniformLayout: device.createBindGroupLayout({ entries: [{
94
- binding: 0,
95
- visibility: GPUShaderStage.FRAGMENT,
96
- buffer: { type: "uniform" }
97
- }] }),
98
- singleTextureLayout: device.createBindGroupLayout({ entries: [{
99
- binding: 0,
100
- visibility: GPUShaderStage.FRAGMENT,
101
- texture: { sampleType: "float" }
102
- }, {
103
- binding: 1,
104
- visibility: GPUShaderStage.FRAGMENT,
105
- sampler: { type: "filtering" }
106
- }] }),
107
- signalTextureLayout: device.createBindGroupLayout({ entries: [
108
- {
109
- binding: 0,
110
- visibility: GPUShaderStage.FRAGMENT,
111
- texture: { sampleType: "float" }
112
- },
113
- {
114
- binding: 1,
115
- visibility: GPUShaderStage.FRAGMENT,
116
- texture: { sampleType: "float" }
117
- },
118
- {
119
- binding: 2,
120
- visibility: GPUShaderStage.FRAGMENT,
121
- sampler: { type: "filtering" }
122
- }
123
- ] }),
124
- pipelineCache: /* @__PURE__ */ new Map()
125
- };
126
- deviceResourceCache.set(device, res);
127
- return res;
128
- }
68
+ const getDeviceLayouts = perDevice((device) => ({
69
+ uniformLayout: fragmentBindGroupLayout(device, ["uniform"]),
70
+ singleTextureLayout: fragmentBindGroupLayout(device, ["texture", "sampler"]),
71
+ signalTextureLayout: texturesLayout(device, 2),
72
+ pipelineCache: /* @__PURE__ */ new Map()
73
+ }));
129
74
  function getTileOffsetResources(device, format) {
130
75
  const layouts = getDeviceLayouts(device);
131
76
  const cacheKey = `tile_offset_${format}`;
@@ -135,23 +80,15 @@ function getTileOffsetResources(device, format) {
135
80
  label: `tile_offset_${format}.wgsl`,
136
81
  code: TILE_OFFSET_SHADER
137
82
  });
138
- pipeline = device.createRenderPipeline({
83
+ pipeline = createFullscreenPipeline(device, {
139
84
  label: `TileOffsetPipeline_${format}`,
140
- layout: device.createPipelineLayout({ bindGroupLayouts: [
85
+ module,
86
+ layouts: [
141
87
  layouts.uniformLayout,
142
88
  layouts.singleTextureLayout,
143
89
  layouts.signalTextureLayout
144
- ] }),
145
- vertex: {
146
- module,
147
- entryPoint: "vs"
148
- },
149
- fragment: {
150
- module,
151
- entryPoint: "fs",
152
- targets: [{ format }]
153
- },
154
- primitive: { topology: "triangle-strip" }
90
+ ],
91
+ format
155
92
  });
156
93
  layouts.pipelineCache.set(cacheKey, pipeline);
157
94
  }
@@ -163,7 +100,7 @@ function getTileOffsetResources(device, format) {
163
100
  };
164
101
  }
165
102
  const TileOffsetWebGPURenderer = async (args) => {
166
- const { ctx, encoder, pass, targetView, targetTexture, targetWidth, targetHeight, props, drawChild } = args;
103
+ const { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;
167
104
  const frame = props.frame ?? 0;
168
105
  const compositionFrame = props.compositionFrame ?? frame;
169
106
  const fps = props.fps || 30;
@@ -184,16 +121,7 @@ const TileOffsetWebGPURenderer = async (args) => {
184
121
  let hasStaticSig = false;
185
122
  if (!hasSignal) if (input?.connectionValid && input.outputItem?.type === "Number") val = Number(input.outputItem.data ?? defaultValue);
186
123
  else {
187
- let rawVal = op[configKey];
188
- if (rawVal !== void 0 && rawVal !== null) {
189
- if (typeof rawVal === "object") {
190
- if ("get" in rawVal && typeof rawVal.get === "function") rawVal = rawVal.get({
191
- frame: compositionFrame,
192
- fps
193
- });
194
- else if ("value" in rawVal) rawVal = rawVal.value;
195
- } else if (typeof rawVal === "function") rawVal = rawVal(compositionFrame, fps);
196
- }
124
+ const rawVal = unwrapFrameParam(op[configKey], compositionFrame, fps).value;
197
125
  const numVal = Number(rawVal ?? defaultValue);
198
126
  val = isNaN(numVal) ? defaultValue : numVal;
199
127
  }
@@ -214,36 +142,21 @@ const TileOffsetWebGPURenderer = async (args) => {
214
142
  if (edgeMode === "clamp") edgeModeIndex = 1;
215
143
  else if (edgeMode === "transparent" || op.wrap === false) edgeModeIndex = 2;
216
144
  else if (edgeMode === "mirror") edgeModeIndex = 3;
217
- const tmpTex = ctx.renderer.getTemporaryTexture(width, height, [...props.excludeTextures || [], targetTexture]);
218
- const tmpView = tmpTex.createView();
219
- ctx.renderer.beginFrame(encoder, tmpView, {
220
- r: 0,
221
- g: 0,
222
- b: 0,
223
- a: 0
224
- }, width, height, "clear").end();
225
- ctx.renderer.pushScissor({
226
- x: 0,
227
- y: 0,
228
- width,
229
- height
230
- });
231
- ctx.renderer.pushIdentity();
232
- await drawChild(childMedia, {
233
- ...props,
234
- virtualMedia: childMedia
235
- }, tmpView, tmpTex, width, height);
236
- ctx.renderer.popTransform();
237
- ctx.renderer.popScissor();
145
+ const { texture: tmpTex } = await drawChildToTexture(args, childMedia);
238
146
  args.pass.end();
239
147
  const { pipeline, uniformLayout: uLayout, singleTextureLayout: tLayout, signalTextureLayout: sigLayout } = getTileOffsetResources(ctx.device, ctx.renderer.format);
240
148
  const sampler = ctx.renderer.samplerCache.getSampler(ctx.device);
241
- const elapsedSeconds = props.elapsedMs !== void 0 ? props.elapsedMs / 1e3 : frame / fps;
242
- const durationSeconds = props.virtualMedia?.metadata?.durationMs ? props.virtualMedia.metadata.durationMs / 1e3 : props.durationMs !== void 0 ? props.durationMs / 1e3 : 0;
243
- const getSignalView = (res, suffix) => {
244
- if (res.hasStaticSig && res.sd) return signalRegistry.getOrCreate2DTextureView(ctx.device, encoder, res.sd.nodeId ?? `${nodeId}_${suffix}`, elapsedSeconds, durationSeconds, res.sd, width, height, props.renderId, frame, fps);
245
- return signalRegistry.getDummy1x1TextureView(ctx.device);
149
+ const { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps);
150
+ const signalContext = {
151
+ args,
152
+ width,
153
+ height,
154
+ frame,
155
+ fps,
156
+ elapsedSeconds,
157
+ durationSeconds
246
158
  };
159
+ const getSignalView = (res, suffix) => signalTextureView(signalContext, res, `${nodeId}_${suffix}`);
247
160
  const offsetXView = getSignalView(offsetXRes, "offsetX_sig");
248
161
  const offsetYView = getSignalView(offsetYRes, "offsetY_sig");
249
162
  uniformData[0] = offsetXRes.val;
@@ -260,61 +173,37 @@ const TileOffsetWebGPURenderer = async (args) => {
260
173
  targetTexture,
261
174
  ...props.excludeTextures || []
262
175
  ]);
263
- const tilePass = encoder.beginRenderPass({ colorAttachments: [{
264
- view: outTex.createView(),
265
- loadOp: "clear",
266
- storeOp: "store",
267
- clearValue: {
268
- r: 0,
269
- g: 0,
270
- b: 0,
271
- a: 0
272
- }
273
- }] });
274
- tilePass.setPipeline(pipeline);
275
- tilePass.setBindGroup(0, ctx.device.createBindGroup({
276
- layout: uLayout,
277
- entries: [{
278
- binding: 0,
279
- resource: { buffer: uniformBuffer }
280
- }]
281
- }));
282
- tilePass.setBindGroup(1, ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler));
283
- tilePass.setBindGroup(2, ctx.device.createBindGroup({
284
- layout: sigLayout,
285
- entries: [
286
- {
176
+ drawFullscreenPass(encoder, outTex.createView(), pipeline, [
177
+ ctx.device.createBindGroup({
178
+ layout: uLayout,
179
+ entries: [{
287
180
  binding: 0,
288
- resource: offsetXView
289
- },
290
- {
291
- binding: 1,
292
- resource: offsetYView
293
- },
294
- {
295
- binding: 2,
296
- resource: sampler
297
- }
298
- ]
299
- }));
300
- tilePass.draw(4);
301
- tilePass.end();
302
- const finalPass = ctx.renderer.beginFrame(encoder, targetView, {
303
- r: 0,
304
- g: 0,
305
- b: 0,
306
- a: 0
307
- }, targetWidth, targetHeight, "load");
308
- ctx.renderer.drawTexture(finalPass, outTex, {
309
- x: 0,
310
- y: 0,
311
- width: targetWidth,
312
- height: targetHeight
313
- }, { opacity: op.opacity ?? 1 });
314
- args.pass = finalPass;
181
+ resource: { buffer: uniformBuffer }
182
+ }]
183
+ }),
184
+ ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler),
185
+ ctx.device.createBindGroup({
186
+ layout: sigLayout,
187
+ entries: [
188
+ {
189
+ binding: 0,
190
+ resource: offsetXView
191
+ },
192
+ {
193
+ binding: 1,
194
+ resource: offsetYView
195
+ },
196
+ {
197
+ binding: 2,
198
+ resource: sampler
199
+ }
200
+ ]
201
+ })
202
+ ]);
203
+ drawTextureToTarget(args, outTex, op.opacity ?? 1);
315
204
  };
316
205
  var renderers_default = defineRenderer({ WebGPURenderer: TileOffsetWebGPURenderer });
317
206
 
318
207
  //#endregion
319
208
  export { renderers_default as t };
320
- //# sourceMappingURL=renderer-B2ieylQ3.mjs.map
209
+ //# sourceMappingURL=renderer-DZrQffIP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-DZrQffIP.mjs","names":[],"sources":["../../../nodes/node-tile-offset/dist/renderers-DQJJPfSd.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { unwrapFrameParam } from \"@framefields/node-sdk\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout, perDevice, signalTextureView, signalTiming, texturesLayout } from \"@framefields/node-sdk/gpu\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst TILE_OFFSET_SHADER = `\nstruct TileOffsetUniforms {\n offsetX : f32,\n offsetY : f32,\n hasOffsetXSig : f32,\n hasOffsetYSig : f32,\n\n layerWidth : f32,\n layerHeight : f32,\n edgeMode : f32,\n pad : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : TileOffsetUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n\n@group(2) @binding(0) var offsetXSigTex : texture_2d<f32>;\n@group(2) @binding(1) var offsetYSigTex : texture_2d<f32>;\n@group(2) @binding(2) var signalSamp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n var offX = u.offsetX;\n if (u.hasOffsetXSig > 0.5) {\n let sigX = textureSampleLevel(offsetXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n offX = offX + sigX;\n }\n\n var offY = u.offsetY;\n if (u.hasOffsetYSig > 0.5) {\n let sigY = textureSampleLevel(offsetYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n offY = offY + sigY;\n }\n\n let normOffset = vec2<f32>(\n offX / max(1.0, u.layerWidth),\n offY / max(1.0, u.layerHeight)\n );\n var uv = in.uv - normOffset;\n\n // Edge Modes:\n // 0.0 = wrap (seamless modulo)\n // 1.0 = clamp (edge smear)\n // 2.0 = transparent (clear bounds)\n // 3.0 = mirror (ping-pong reflection)\n if (u.edgeMode < 0.5) {\n uv = fract(uv);\n } else if (u.edgeMode < 1.5) {\n uv = clamp(uv, vec2<f32>(0.0), vec2<f32>(1.0));\n } else if (u.edgeMode < 2.5) {\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) {\n return vec4<f32>(0.0);\n }\n } else {\n uv = 1.0 - abs(fract(uv * 0.5) * 2.0 - 1.0);\n }\n\n let color = textureSampleLevel(tex, samp, uv, 0.0);\n return color;\n}\n`;\nconst uniformData = new Float32Array(8);\nconst getDeviceLayouts = perDevice((device) => ({\n\tuniformLayout: fragmentBindGroupLayout(device, [\"uniform\"]),\n\tsingleTextureLayout: fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]),\n\tsignalTextureLayout: texturesLayout(device, 2),\n\tpipelineCache: /* @__PURE__ */ new Map()\n}));\nfunction getTileOffsetResources(device, format) {\n\tconst layouts = getDeviceLayouts(device);\n\tconst cacheKey = `tile_offset_${format}`;\n\tlet pipeline = layouts.pipelineCache.get(cacheKey);\n\tif (!pipeline) {\n\t\tconst module = device.createShaderModule({\n\t\t\tlabel: `tile_offset_${format}.wgsl`,\n\t\t\tcode: TILE_OFFSET_SHADER\n\t\t});\n\t\tpipeline = createFullscreenPipeline(device, {\n\t\t\tlabel: `TileOffsetPipeline_${format}`,\n\t\t\tmodule,\n\t\t\tlayouts: [\n\t\t\t\tlayouts.uniformLayout,\n\t\t\t\tlayouts.singleTextureLayout,\n\t\t\t\tlayouts.signalTextureLayout\n\t\t\t],\n\t\t\tformat\n\t\t});\n\t\tlayouts.pipelineCache.set(cacheKey, pipeline);\n\t}\n\treturn {\n\t\tpipeline,\n\t\tuniformLayout: layouts.uniformLayout,\n\t\tsingleTextureLayout: layouts.singleTextureLayout,\n\t\tsignalTextureLayout: layouts.signalTextureLayout\n\t};\n}\nconst TileOffsetWebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;\n\tconst frame = props.frame ?? 0;\n\tconst compositionFrame = props.compositionFrame ?? frame;\n\tconst fps = props.fps || 30;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"TileOffset\" || !op) return;\n\tconst childMedia = props.virtualMedia?.children?.[0];\n\tif (!childMedia) return;\n\tpass.end();\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst nodeId = op.inputs ? Object.keys(op.inputs)[0] : \"tile_offset_node\";\n\tconst resolveBindable = (configKey, defaultValue) => {\n\t\tconst handleId = op[`${configKey}HandleId`];\n\t\tconst input = handleId ? op.inputs?.[handleId] : null;\n\t\tconst hasSignal = !!(input?.connectionValid && (input.outputItem?.type === \"Signal\" || input.outputItem?.type === \"Numeric\"));\n\t\tconst sd = hasSignal && input?.outputItem?.data ? input.outputItem.data : null;\n\t\tlet val = defaultValue;\n\t\tlet hasStaticSig = false;\n\t\tif (!hasSignal) if (input?.connectionValid && input.outputItem?.type === \"Number\") val = Number(input.outputItem.data ?? defaultValue);\n\t\telse {\n\t\t\tconst rawVal = unwrapFrameParam(op[configKey], compositionFrame, fps).value;\n\t\t\tconst numVal = Number(rawVal ?? defaultValue);\n\t\t\tval = isNaN(numVal) ? defaultValue : numVal;\n\t\t}\n\t\telse if (sd) {\n\t\t\tval = Number(sd.offset ?? 0);\n\t\t\thasStaticSig = true;\n\t\t}\n\t\treturn {\n\t\t\tval,\n\t\t\thasStaticSig,\n\t\t\tsd\n\t\t};\n\t};\n\tconst offsetXRes = resolveBindable(\"offsetX\", 0);\n\tconst offsetYRes = resolveBindable(\"offsetY\", 0);\n\tlet edgeModeIndex = 0;\n\tconst edgeMode = op.edgeMode ?? (op.wrap !== false ? \"wrap\" : \"transparent\");\n\tif (edgeMode === \"clamp\") edgeModeIndex = 1;\n\telse if (edgeMode === \"transparent\" || op.wrap === false) edgeModeIndex = 2;\n\telse if (edgeMode === \"mirror\") edgeModeIndex = 3;\n\tconst { texture: tmpTex } = await drawChildToTexture(args, childMedia);\n\targs.pass.end();\n\tconst { pipeline, uniformLayout: uLayout, singleTextureLayout: tLayout, signalTextureLayout: sigLayout } = getTileOffsetResources(ctx.device, ctx.renderer.format);\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps);\n\tconst signalContext = {\n\t\targs,\n\t\twidth,\n\t\theight,\n\t\tframe,\n\t\tfps,\n\t\telapsedSeconds,\n\t\tdurationSeconds\n\t};\n\tconst getSignalView = (res, suffix) => signalTextureView(signalContext, res, `${nodeId}_${suffix}`);\n\tconst offsetXView = getSignalView(offsetXRes, \"offsetX_sig\");\n\tconst offsetYView = getSignalView(offsetYRes, \"offsetY_sig\");\n\tuniformData[0] = offsetXRes.val;\n\tuniformData[1] = offsetYRes.val;\n\tuniformData[2] = offsetXRes.hasStaticSig ? 1 : 0;\n\tuniformData[3] = offsetYRes.hasStaticSig ? 1 : 0;\n\tuniformData[4] = width;\n\tuniformData[5] = height;\n\tuniformData[6] = edgeModeIndex;\n\tuniformData[7] = 0;\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(uniformData);\n\tconst outTex = ctx.renderer.getTemporaryTexture(width, height, [\n\t\ttmpTex,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tdrawFullscreenPass(encoder, outTex.createView(), pipeline, [\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: uLayout,\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: { buffer: uniformBuffer }\n\t\t\t}]\n\t\t}),\n\t\tctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, tmpTex, sampler),\n\t\tctx.device.createBindGroup({\n\t\t\tlayout: sigLayout,\n\t\t\tentries: [\n\t\t\t\t{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: offsetXView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 1,\n\t\t\t\t\tresource: offsetYView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 2,\n\t\t\t\t\tresource: sampler\n\t\t\t\t}\n\t\t\t]\n\t\t})\n\t]);\n\tdrawTextureToTarget(args, outTex, op.opacity ?? 1);\n};\nconst WebGPURenderer = TileOffsetWebGPURenderer;\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer });\n\n//#endregion\nexport { renderers_default as t };\n//# sourceMappingURL=renderers-DQJJPfSd.mjs.map"],"mappings":"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"}