framefields 2.0.11 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (564) 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-CfBpzxn9.d.mts} +3 -3
  5. package/dist/{audio-BHanw8Jb.d.mts.map → audio-CfBpzxn9.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-GGuQ_JI0.mjs} +4 -4
  9. package/dist/{audio-COOMNwL5.mjs.map → audio-GGuQ_JI0.mjs.map} +1 -1
  10. package/dist/{chunk-GMkBE123.mjs → chunk-GBe2k3y8.mjs} +1 -4
  11. package/dist/{dist-C_hjvkdN.mjs → dist-0QGroRYZ.mjs} +1 -1
  12. package/dist/{dist-C_hjvkdN.mjs.map → dist-0QGroRYZ.mjs.map} +1 -1
  13. package/dist/{dist-BYqNNwsl.mjs → dist-BY0bIWgr.mjs} +10 -2
  14. package/dist/dist-BY0bIWgr.mjs.map +1 -0
  15. package/dist/{dist-BAVZdFEJ.mjs → dist-Bb8BoMiw.mjs} +76 -626
  16. package/dist/dist-Bb8BoMiw.mjs.map +1 -0
  17. package/dist/{dist-Cxi68OuY.mjs → dist-DkuDAIrG.mjs} +26862 -25638
  18. package/dist/dist-DkuDAIrG.mjs.map +1 -0
  19. package/dist/{dist-CbG3QxDw.mjs → dist-fjKpBYkc.mjs} +12 -27
  20. package/dist/dist-fjKpBYkc.mjs.map +1 -0
  21. package/dist/effects/index.d.mts +4 -4
  22. package/dist/effects/index.mjs +36 -34
  23. package/dist/{effects-DzbjFhyA.mjs → effects-D6wFg2FR.mjs} +3 -3
  24. package/dist/{effects-DzbjFhyA.mjs.map → effects-D6wFg2FR.mjs.map} +1 -1
  25. package/dist/fonts/index.d.mts +1 -1
  26. package/dist/fonts/index.mjs +3 -1
  27. package/dist/{fonts-C0W6TgJk.mjs → fonts-CZMYtbP7.mjs} +24 -11
  28. package/dist/fonts-CZMYtbP7.mjs.map +1 -0
  29. package/dist/gpu-DG3gI88-.mjs +215 -0
  30. package/dist/gpu-DG3gI88-.mjs.map +1 -0
  31. package/dist/{index-DRZu3ezy.d.mts → index--0vVZDPM.d.mts} +3 -3
  32. package/dist/{index-DRZu3ezy.d.mts.map → index--0vVZDPM.d.mts.map} +1 -1
  33. package/dist/{index-DnWsbbuZ.d.mts → index-BcA8rep0.d.mts} +7 -2
  34. package/dist/index-BcA8rep0.d.mts.map +1 -0
  35. package/dist/{index-DGJp1d30.d.mts → index-BzQc812z.d.mts} +3 -3
  36. package/dist/{index-DGJp1d30.d.mts.map → index-BzQc812z.d.mts.map} +1 -1
  37. package/dist/{index-DDEPvMww.d.mts → index-Cpkzy5XR.d.mts} +3452 -1675
  38. package/dist/index-Cpkzy5XR.d.mts.map +1 -0
  39. package/dist/{index-CDoTrMs1.d.mts → index-D__HdInU.d.mts} +8 -8
  40. package/dist/{index-CDoTrMs1.d.mts.map → index-D__HdInU.d.mts.map} +1 -1
  41. package/dist/{index-CYGpSVsf.d.mts → index-DpWia6iH.d.mts} +4 -11
  42. package/dist/index-DpWia6iH.d.mts.map +1 -0
  43. package/dist/{index-9B8CJowc.d.mts → index-Fciq8bcC.d.mts} +10 -2
  44. package/dist/index-Fciq8bcC.d.mts.map +1 -0
  45. package/dist/index.d.mts +29 -1842
  46. package/dist/index.d.mts.map +1 -1
  47. package/dist/index.mjs +79 -66
  48. package/dist/index.mjs.map +1 -1
  49. package/dist/preview/index.d.mts +2 -2
  50. package/dist/preview/index.mjs +12 -13
  51. package/dist/{preview-BV2C4Fk6.mjs → preview--rOXbBxl.mjs} +3 -4
  52. package/dist/preview--rOXbBxl.mjs.map +1 -0
  53. package/dist/preview-engine/audio.mjs +1 -1
  54. package/dist/preview-engine/chunk-2MZXSWVT.mjs +118 -0
  55. package/dist/preview-engine/{chunk-Y6HWYPKX.mjs → chunk-3GNP7TJH.mjs} +3 -3
  56. package/dist/preview-engine/chunk-3UPI4EPV.mjs +69 -0
  57. package/dist/preview-engine/{chunk-6JW37VJA.mjs → chunk-5AUB4Y3L.mjs} +3 -23
  58. package/dist/preview-engine/chunk-5DOD2NVY.mjs +26 -0
  59. package/dist/preview-engine/chunk-5FC7GOWW.mjs +474 -0
  60. package/dist/preview-engine/chunk-5W4AFQP7.mjs +97 -0
  61. package/dist/preview-engine/chunk-63SFBHEH.mjs +1 -0
  62. package/dist/preview-engine/{chunk-25IW7NYO.mjs → chunk-7EPDVSCL.mjs} +1 -1
  63. package/dist/preview-engine/chunk-7EPIRODI.mjs +91 -0
  64. package/dist/preview-engine/chunk-7J2FWGVD.mjs +1 -0
  65. package/dist/preview-engine/chunk-AXHB4J37.mjs +147 -0
  66. package/dist/preview-engine/chunk-AXQZX3TC.mjs +450 -0
  67. package/dist/preview-engine/chunk-B43Z3J7J.mjs +5 -0
  68. package/dist/preview-engine/chunk-BWJS6G7R.mjs +314 -0
  69. package/dist/preview-engine/{chunk-ECPP3UG6.mjs → chunk-E3HC4GRQ.mjs} +3 -23
  70. package/dist/preview-engine/{chunk-AEK5BO3J.mjs → chunk-E4RAFHZM.mjs} +1 -1
  71. package/dist/preview-engine/chunk-ENKKLU7B.mjs +22 -0
  72. package/dist/preview-engine/{chunk-IYVN2QEL.mjs → chunk-FLPSWDX4.mjs} +1 -1
  73. package/dist/preview-engine/{chunk-24DXIKXL.mjs → chunk-FPRXK2WD.mjs} +2 -2
  74. package/dist/preview-engine/chunk-FU7AIAMM.mjs +88 -0
  75. package/dist/preview-engine/{chunk-CBM7B7EW.mjs → chunk-GMGGDADT.mjs} +1 -1
  76. package/dist/preview-engine/chunk-GSFN4WCH.mjs +62 -0
  77. package/dist/preview-engine/chunk-IQC2I5A5.mjs +1 -0
  78. package/dist/preview-engine/chunk-IUPDOATX.mjs +114 -0
  79. package/dist/preview-engine/{chunk-GHMCGTJ2.mjs → chunk-J2R5R7YY.mjs} +3 -23
  80. package/dist/preview-engine/chunk-JAJOZG5P.mjs +1 -0
  81. package/dist/preview-engine/{chunk-XLFYM7KH.mjs → chunk-K773AOF3.mjs} +2 -2
  82. package/dist/preview-engine/{chunk-RJUAM52F.mjs → chunk-L3CHEZMZ.mjs} +3 -23
  83. package/dist/preview-engine/chunk-LBRVQ4GE.mjs +84 -0
  84. package/dist/preview-engine/chunk-LGVEFPOG.mjs +3 -0
  85. package/dist/preview-engine/{chunk-AMBSW6OA.mjs → chunk-NEE3KQTX.mjs} +2 -2
  86. package/dist/preview-engine/chunk-NPD6W3RP.mjs +1 -0
  87. package/dist/preview-engine/{chunk-V6VU46ZG.mjs → chunk-O2RNIQXT.mjs} +1 -1
  88. package/dist/preview-engine/{server-utils-2FAIV45N.mjs → chunk-OCX5AD23.mjs} +1 -1
  89. package/dist/preview-engine/chunk-OJ2PKBXE.mjs +40 -0
  90. package/dist/preview-engine/chunk-OKH2VU2U.mjs +97 -0
  91. package/dist/preview-engine/chunk-PAQNDZQB.mjs +83 -0
  92. package/dist/preview-engine/chunk-PEWYB6WP.mjs +43 -0
  93. package/dist/preview-engine/{chunk-MDDF2GCF.mjs → chunk-PFA427ZC.mjs} +3 -23
  94. package/dist/preview-engine/chunk-PL4IH5V4.mjs +89 -0
  95. package/dist/preview-engine/chunk-PNB3ERR3.mjs +1 -0
  96. package/dist/preview-engine/{chunk-PQD5UPHG.mjs → chunk-PR2BUYCL.mjs} +1 -1
  97. package/dist/preview-engine/{chunk-QYRDQMNB.mjs → chunk-PXT52LEH.mjs} +3 -23
  98. package/dist/preview-engine/{chunk-ZSIJB76A.mjs → chunk-Q2DPNVIA.mjs} +2 -2
  99. package/dist/preview-engine/chunk-Q4Z54DQ7.mjs +1 -0
  100. package/dist/preview-engine/{chunk-6256GQFP.mjs → chunk-QY7MHWZW.mjs} +1 -1
  101. package/dist/preview-engine/chunk-RQLMW6MA.mjs +4 -0
  102. package/dist/preview-engine/chunk-RSMO7NPN.mjs +1 -0
  103. package/dist/preview-engine/chunk-RW2F3XLQ.mjs +90 -0
  104. package/dist/preview-engine/chunk-SGPRLTNF.mjs +52 -0
  105. package/dist/preview-engine/{chunk-Y6FEU4TV.mjs → chunk-SZW5J72T.mjs} +3 -23
  106. package/dist/preview-engine/{chunk-LIHUEYI5.mjs → chunk-VO2R3DWV.mjs} +2 -2
  107. package/dist/preview-engine/{chunk-BJKH76OM.mjs → chunk-VXS5SIEC.mjs} +3 -23
  108. package/dist/preview-engine/chunk-WFGJXCZT.mjs +53 -0
  109. package/dist/preview-engine/chunk-WH5Q2NFN.mjs +32 -0
  110. package/dist/preview-engine/chunk-WSIURGP2.mjs +121 -0
  111. package/dist/preview-engine/{chunk-AWTH2WZO.mjs → chunk-WUKH7BD7.mjs} +1 -1
  112. package/dist/preview-engine/chunk-XC5WZNOY.mjs +1448 -0
  113. package/dist/preview-engine/chunk-YQZOGEPZ.mjs +186 -0
  114. package/dist/preview-engine/{chunk-D3TETPLI.mjs → chunk-ZH5MZQTZ.mjs} +1 -1
  115. package/dist/preview-engine/chunk-ZIIFTWDH.mjs +58 -0
  116. package/dist/preview-engine/{chunk-EQ4QZRXB.mjs → chunk-ZNL4W4DK.mjs} +2 -2
  117. package/dist/preview-engine/effects.mjs +1 -1
  118. package/dist/preview-engine/fonts.mjs +1 -1
  119. package/dist/preview-engine/framefields.mjs +127 -130
  120. package/dist/preview-engine/player.mjs +6 -6
  121. package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -0
  122. package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -0
  123. package/dist/preview-engine/renderers-2SVWAB42.mjs +1 -0
  124. package/dist/preview-engine/renderers-3RC5FDWX.mjs +1 -0
  125. package/dist/preview-engine/renderers-3T7Q4SPP.mjs +1 -0
  126. package/dist/preview-engine/renderers-4DV4REGM.mjs +1 -0
  127. package/dist/preview-engine/renderers-57WDL6XN.mjs +1 -0
  128. package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -0
  129. package/dist/preview-engine/renderers-7JTNJE7M.mjs +1 -0
  130. package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -0
  131. package/dist/preview-engine/{renderers-WLH4HRUE.mjs → renderers-A7VH3ON5.mjs} +1 -1
  132. package/dist/preview-engine/renderers-CQXQHOW2.mjs +1 -0
  133. package/dist/preview-engine/{renderers-2US2NIUG.mjs → renderers-D2EJULOJ.mjs} +3 -23
  134. package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -0
  135. package/dist/preview-engine/{renderers-W5CVDJVH.mjs → renderers-F55XFVMP.mjs} +1 -1
  136. package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -0
  137. package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -0
  138. package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -0
  139. package/dist/preview-engine/renderers-IXGM55XK.mjs +1 -0
  140. package/dist/preview-engine/renderers-KVHUVWSN.mjs +1 -0
  141. package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -0
  142. package/dist/preview-engine/renderers-LVDUZZ75.mjs +1 -0
  143. package/dist/preview-engine/renderers-M7R2ZJUP.mjs +1 -0
  144. package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -0
  145. package/dist/preview-engine/{renderers-CAUWP4XH.mjs → renderers-O2DZPBOJ.mjs} +3 -23
  146. package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -0
  147. package/dist/preview-engine/renderers-P4S7GL64.mjs +104 -0
  148. package/dist/preview-engine/renderers-PMOO7DLX.mjs +1 -0
  149. package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -0
  150. package/dist/preview-engine/renderers-QCCPCH73.mjs +1 -0
  151. package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -0
  152. package/dist/preview-engine/renderers-RRXFJRGI.mjs +1 -0
  153. package/dist/preview-engine/renderers-SCJ6OKTB.mjs +1 -0
  154. package/dist/preview-engine/renderers-T4JMJXWL.mjs +1 -0
  155. package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -0
  156. package/dist/preview-engine/{renderers-JQHUBWLL.mjs → renderers-TFZST6WW.mjs} +3 -23
  157. package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -0
  158. package/dist/preview-engine/renderers-UPKB5OLS.mjs +100 -0
  159. package/dist/preview-engine/renderers-UPTJJE5F.mjs +1 -0
  160. package/dist/preview-engine/renderers-VLMQR3DW.mjs +1 -0
  161. package/dist/preview-engine/renderers-WVTTRCVI.mjs +1 -0
  162. package/dist/preview-engine/renderers-X5PUIPU5.mjs +1 -0
  163. package/dist/preview-engine/renderers-XCMVZ2XG.mjs +35 -0
  164. package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -0
  165. package/dist/preview-engine/renderers-YDCDY3BR.mjs +1 -0
  166. package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -0
  167. package/dist/preview-engine/renderers-YJNQ4B7B.mjs +1 -0
  168. package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -0
  169. package/dist/preview-engine/renderers-YZEVPHPQ.mjs +228 -0
  170. package/dist/preview-engine/renderers-Z7YQUFAY.mjs +1 -0
  171. package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -0
  172. package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -0
  173. package/dist/preview-engine/signals.mjs +1 -1
  174. package/dist/preview-engine/skia-canvas-QBXAOGPB.mjs +1 -0
  175. package/dist/{program-BmNKgzja.mjs → program-Cc5AsBHz.mjs} +93 -2335
  176. package/dist/program-Cc5AsBHz.mjs.map +1 -0
  177. package/dist/renderer/index.d.mts +2 -2
  178. package/dist/renderer/index.mjs +3 -4
  179. package/dist/renderer-1VSi7Vum.mjs +5 -0
  180. package/dist/renderer-4BlpUHQT.mjs +5 -0
  181. package/dist/{renderer-Bv21DbWy.mjs → renderer-9L0p8IT3.mjs} +3 -1
  182. package/dist/renderer-AzSX2-mZ.mjs +5 -0
  183. package/dist/renderer-B-cxK24t.mjs +5 -0
  184. package/dist/{renderer-DxTs4Iyi.mjs → renderer-B1Zn91xt.mjs} +40 -142
  185. package/dist/renderer-B1Zn91xt.mjs.map +1 -0
  186. package/dist/renderer-B5d5oM_D.mjs +5 -0
  187. package/dist/renderer-B8BdNjaN.mjs +5 -0
  188. package/dist/{renderer-Bhdf90Zq.mjs → renderer-BI5rvAyo.mjs} +51 -163
  189. package/dist/renderer-BI5rvAyo.mjs.map +1 -0
  190. package/dist/renderer-BKEfeg-4.mjs +5 -0
  191. package/dist/{renderer-CI7sG_cv.mjs → renderer-BKf1qDwL.mjs} +83 -266
  192. package/dist/renderer-BKf1qDwL.mjs.map +1 -0
  193. package/dist/renderer-BLLOkeFB.mjs +5 -0
  194. package/dist/renderer-BSitV56h.mjs +268 -0
  195. package/dist/renderer-BSitV56h.mjs.map +1 -0
  196. package/dist/renderer-BTvov1NH.mjs +5 -0
  197. package/dist/renderer-BVun05IK.mjs +5 -0
  198. package/dist/{renderer-B2ieylQ3.mjs → renderer-BWVsBB3t.mjs} +56 -167
  199. package/dist/renderer-BWVsBB3t.mjs.map +1 -0
  200. package/dist/{renderer-ChdLYS-G.mjs → renderer-BXQQxeNC.mjs} +20 -87
  201. package/dist/renderer-BXQQxeNC.mjs.map +1 -0
  202. package/dist/renderer-B_3h5nhy.mjs +5 -0
  203. package/dist/renderer-BaZjoFYK.mjs +5 -0
  204. package/dist/{renderer-CfC_aiew.mjs → renderer-BaaOR3Ao.mjs} +57 -192
  205. package/dist/renderer-BaaOR3Ao.mjs.map +1 -0
  206. package/dist/{renderer-bZU_ndxf.mjs → renderer-BajIOuZH.mjs} +2 -2
  207. package/dist/{renderer-bZU_ndxf.mjs.map → renderer-BajIOuZH.mjs.map} +1 -1
  208. package/dist/{renderer-CWTpc4ff.mjs → renderer-Bb8T5eRX.mjs} +76 -210
  209. package/dist/renderer-Bb8T5eRX.mjs.map +1 -0
  210. package/dist/{renderer-D2nCGcjv.mjs → renderer-Bc6J0iVG.mjs} +3 -3
  211. package/dist/{renderer-D2nCGcjv.mjs.map → renderer-Bc6J0iVG.mjs.map} +1 -1
  212. package/dist/renderer-BcApaCVe.mjs +5 -0
  213. package/dist/{renderer-D_1oDOCP.mjs → renderer-Bg7647VN.mjs} +14 -69
  214. package/dist/renderer-Bg7647VN.mjs.map +1 -0
  215. package/dist/{renderer-ho_jXJ0H.mjs → renderer-BhKIZDsm.mjs} +23 -117
  216. package/dist/renderer-BhKIZDsm.mjs.map +1 -0
  217. package/dist/{renderer-dncoIVdd.mjs → renderer-BhhSyHKF.mjs} +3 -1
  218. package/dist/{renderer-CXn5HAnK.mjs → renderer-Br9BOkQs.mjs} +10 -16
  219. package/dist/renderer-Br9BOkQs.mjs.map +1 -0
  220. package/dist/{renderer-BTdOMMEx.d.mts → renderer-Bs_f_App.d.mts} +2 -2
  221. package/dist/{renderer-BTdOMMEx.d.mts.map → renderer-Bs_f_App.d.mts.map} +1 -1
  222. package/dist/{renderer-DZGtBUCx.mjs → renderer-BygIYH8s.mjs} +35 -185
  223. package/dist/renderer-BygIYH8s.mjs.map +1 -0
  224. package/dist/{renderer-Bv6q84TU.mjs → renderer-C--Dqe-3.mjs} +61 -208
  225. package/dist/renderer-C--Dqe-3.mjs.map +1 -0
  226. package/dist/renderer-C14mKYCw.mjs +5 -0
  227. package/dist/{renderer-CnXW28b9.mjs → renderer-C27RfwXN.mjs} +85 -279
  228. package/dist/renderer-C27RfwXN.mjs.map +1 -0
  229. package/dist/{renderer-Dy0utCl7.mjs → renderer-C5caYAA3.mjs} +10 -17
  230. package/dist/renderer-C5caYAA3.mjs.map +1 -0
  231. package/dist/{renderer-Bfgd4N0O.mjs → renderer-C5zpaQed.mjs} +9 -16
  232. package/dist/renderer-C5zpaQed.mjs.map +1 -0
  233. package/dist/{renderer-cgxO2xN6.mjs → renderer-C7UZLOYk.mjs} +10 -17
  234. package/dist/renderer-C7UZLOYk.mjs.map +1 -0
  235. package/dist/{renderer-BJ1aTkZf.mjs → renderer-C92mwhZz.mjs} +99 -282
  236. package/dist/renderer-C92mwhZz.mjs.map +1 -0
  237. package/dist/{renderer-CepMDQ06.mjs → renderer-CAJe9eLS.mjs} +19 -106
  238. package/dist/renderer-CAJe9eLS.mjs.map +1 -0
  239. package/dist/renderer-CFqhAXkH.mjs +5 -0
  240. package/dist/renderer-CK-spD4j.mjs +5 -0
  241. package/dist/renderer-CLLzQTIk.mjs +5 -0
  242. package/dist/{renderer-CtyD_Xju.mjs → renderer-CMsjnZ0G.mjs} +59 -194
  243. package/dist/renderer-CMsjnZ0G.mjs.map +1 -0
  244. package/dist/renderer-COwa6xlF.mjs +5 -0
  245. package/dist/renderer-CQPuuoVf.mjs +6 -0
  246. package/dist/renderer-CRd-cDqZ.mjs +5 -0
  247. package/dist/renderer-CTVnQAUm.mjs +5 -0
  248. package/dist/renderer-CbiEBSGx.mjs +5 -0
  249. package/dist/renderer-Cl7PruQ1.mjs +5 -0
  250. package/dist/renderer-CmuGGUDR.mjs +5 -0
  251. package/dist/renderer-CoGP4Mvf.mjs +148 -0
  252. package/dist/renderer-CoGP4Mvf.mjs.map +1 -0
  253. package/dist/renderer-CoNRrfqx.mjs +5 -0
  254. package/dist/{renderer-BREIjsUU.mjs → renderer-CrAqu3Rg.mjs} +14 -40
  255. package/dist/renderer-CrAqu3Rg.mjs.map +1 -0
  256. package/dist/renderer-CvIGa0mE.mjs +5 -0
  257. package/dist/renderer-CwMDPv0p.mjs +5 -0
  258. package/dist/{renderer-BIIWCg_J.mjs → renderer-CydWqyf0.mjs} +11 -18
  259. package/dist/renderer-CydWqyf0.mjs.map +1 -0
  260. package/dist/{renderer-bsWnRNpJ.mjs → renderer-CzBQgGD2.mjs} +29 -98
  261. package/dist/renderer-CzBQgGD2.mjs.map +1 -0
  262. package/dist/{renderer-CdciwwMI.mjs → renderer-D0aZNkQE.mjs} +161 -457
  263. package/dist/renderer-D0aZNkQE.mjs.map +1 -0
  264. package/dist/{renderer-B8UaFNqb.mjs → renderer-D2BRlqof.mjs} +62 -209
  265. package/dist/renderer-D2BRlqof.mjs.map +1 -0
  266. package/dist/{renderer-B8-kzZdP.mjs → renderer-D2FFvxsq.mjs} +41 -140
  267. package/dist/renderer-D2FFvxsq.mjs.map +1 -0
  268. package/dist/{renderer-Ctk2zzfy.mjs → renderer-D8-zNjyz.mjs} +57 -197
  269. package/dist/renderer-D8-zNjyz.mjs.map +1 -0
  270. package/dist/{renderer-DML9qpmS.mjs → renderer-DDqwds9R.mjs} +52 -202
  271. package/dist/renderer-DDqwds9R.mjs.map +1 -0
  272. package/dist/{renderer-BSaYG8aw.mjs → renderer-DGtBOdst.mjs} +3 -1
  273. package/dist/{renderer-CzPWB0Ss.mjs → renderer-DKqG9Lek.mjs} +13 -45
  274. package/dist/renderer-DKqG9Lek.mjs.map +1 -0
  275. package/dist/renderer-DOHbhGPu.mjs +5 -0
  276. package/dist/renderer-DOmA6IKc.mjs +5 -0
  277. package/dist/{renderer-DirxsOjq.mjs → renderer-DUhXH5Tz.mjs} +80 -258
  278. package/dist/renderer-DUhXH5Tz.mjs.map +1 -0
  279. package/dist/{renderer-kwmlLQOO.mjs → renderer-DVnVnS3c.mjs} +4 -4
  280. package/dist/{renderer-kwmlLQOO.mjs.map → renderer-DVnVnS3c.mjs.map} +1 -1
  281. package/dist/{renderer-CaaOKMSd.mjs → renderer-DWEvQ-hQ.mjs} +63 -190
  282. package/dist/renderer-DWEvQ-hQ.mjs.map +1 -0
  283. package/dist/renderer-DX2qEJTL.mjs +2173 -0
  284. package/dist/renderer-DX2qEJTL.mjs.map +1 -0
  285. package/dist/{renderer-1VuQTY1Z.mjs → renderer-DX8aBDqR.mjs} +236 -96
  286. package/dist/renderer-DX8aBDqR.mjs.map +1 -0
  287. package/dist/{renderer-DEJwPRkR.mjs → renderer-DYIPWN_B.mjs} +15 -51
  288. package/dist/renderer-DYIPWN_B.mjs.map +1 -0
  289. package/dist/{renderer-Djlb4TLO.mjs → renderer-DZD2G76E.mjs} +8 -15
  290. package/dist/renderer-DZD2G76E.mjs.map +1 -0
  291. package/dist/{renderer-WSGuj_V6.mjs → renderer-Da06_9FZ.mjs} +4 -3
  292. package/dist/{renderer-WSGuj_V6.mjs.map → renderer-Da06_9FZ.mjs.map} +1 -1
  293. package/dist/{renderer-BM05sB8m.mjs → renderer-DkyXqrQ6.mjs} +11 -74
  294. package/dist/renderer-DkyXqrQ6.mjs.map +1 -0
  295. package/dist/renderer-DmCWc4JL.mjs +5 -0
  296. package/dist/{renderer-BDbTWSpP.mjs → renderer-Dno-fujw.mjs} +58 -234
  297. package/dist/renderer-Dno-fujw.mjs.map +1 -0
  298. package/dist/{renderer-D2XD4QYk.mjs → renderer-DoYdfDEA.mjs} +34 -147
  299. package/dist/renderer-DoYdfDEA.mjs.map +1 -0
  300. package/dist/{renderer-_uvdg48N.mjs → renderer-DqjITuT-.mjs} +24 -93
  301. package/dist/renderer-DqjITuT-.mjs.map +1 -0
  302. package/dist/renderer-DuuOlYIG.mjs +3 -0
  303. package/dist/{renderer-DIgsilTw.mjs → renderer-Dy-DBU0X.mjs} +5 -4
  304. package/dist/{renderer-DIgsilTw.mjs.map → renderer-Dy-DBU0X.mjs.map} +1 -1
  305. package/dist/{renderer-CpkiHRhh.mjs → renderer-DyzNM721.mjs} +17 -99
  306. package/dist/renderer-DyzNM721.mjs.map +1 -0
  307. package/dist/{renderer-C_TPMHiH.mjs → renderer-DzrM1KMN.mjs} +81 -221
  308. package/dist/renderer-DzrM1KMN.mjs.map +1 -0
  309. package/dist/{renderer-Bc04fivZ.mjs → renderer-FHyZn0em.mjs} +99 -287
  310. package/dist/renderer-FHyZn0em.mjs.map +1 -0
  311. package/dist/renderer-GSFP7v2z.mjs +3 -0
  312. package/dist/{renderer-DpGc-N3G.mjs → renderer-NXdm6HLb.mjs} +24 -104
  313. package/dist/renderer-NXdm6HLb.mjs.map +1 -0
  314. package/dist/renderer-OLaYikwi.mjs +5 -0
  315. package/dist/renderer-Q75RC5Uz.mjs +5 -0
  316. package/dist/renderer-T0LJ4Po3.mjs +5 -0
  317. package/dist/renderer-VuXt1hfq.mjs +5 -0
  318. package/dist/{renderer-BfAWZziM.mjs → renderer-_1xGBbxn.mjs} +58 -225
  319. package/dist/renderer-_1xGBbxn.mjs.map +1 -0
  320. package/dist/{renderer-B1YMwl2B.mjs → renderer-c4AorKyw.mjs} +3 -1
  321. package/dist/renderer-hY_2WLt3.mjs +5 -0
  322. package/dist/{renderer-BhZZEyFX.mjs → renderer-mp1NN5zk.mjs} +4 -4
  323. package/dist/{renderer-BhZZEyFX.mjs.map → renderer-mp1NN5zk.mjs.map} +1 -1
  324. package/dist/{renderer-D7zvPHKn.mjs → renderer-qsg-JMuN.mjs} +18 -28
  325. package/dist/renderer-qsg-JMuN.mjs.map +1 -0
  326. package/dist/{renderer-vqkKWqa5.mjs → renderer-timEC0Gl.mjs} +23 -107
  327. package/dist/renderer-timEC0Gl.mjs.map +1 -0
  328. package/dist/renderer-y4EqE06a.mjs +5 -0
  329. package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs → renderers-CP8CFWDs-CMYe4kvZ.mjs} +4 -4
  330. package/dist/{renderers-CP8CFWDs-DwQTx8S7.mjs.map → renderers-CP8CFWDs-CMYe4kvZ.mjs.map} +1 -1
  331. package/dist/signals/index.d.mts +6 -6
  332. package/dist/signals/index.mjs +8 -8
  333. package/dist/{signals-Bv1OweKd.mjs → signals-DGRs6ddH.mjs} +4 -4
  334. package/dist/{signals-Bv1OweKd.mjs.map → signals-DGRs6ddH.mjs.map} +1 -1
  335. package/package.json +55 -55
  336. package/dist/client-CwRhflHE.mjs +0 -66
  337. package/dist/client-CwRhflHE.mjs.map +0 -1
  338. package/dist/dist-BAVZdFEJ.mjs.map +0 -1
  339. package/dist/dist-BYqNNwsl.mjs.map +0 -1
  340. package/dist/dist-CbG3QxDw.mjs.map +0 -1
  341. package/dist/dist-Cxi68OuY.mjs.map +0 -1
  342. package/dist/dist-cjs--lfMLs3U.mjs +0 -66
  343. package/dist/dist-cjs--lfMLs3U.mjs.map +0 -1
  344. package/dist/dist-cjs--pxyGFw2.mjs +0 -43
  345. package/dist/dist-cjs--pxyGFw2.mjs.map +0 -1
  346. package/dist/dist-cjs-3pon9kTt.mjs +0 -6
  347. package/dist/dist-cjs-BDpO-TH_.mjs +0 -51
  348. package/dist/dist-cjs-BDpO-TH_.mjs.map +0 -1
  349. package/dist/dist-cjs-BiKQozdJ.mjs +0 -64
  350. package/dist/dist-cjs-BiKQozdJ.mjs.map +0 -1
  351. package/dist/dist-cjs-BmyyWYWv.mjs +0 -153
  352. package/dist/dist-cjs-BmyyWYWv.mjs.map +0 -1
  353. package/dist/dist-cjs-CND_ghfH.mjs +0 -98
  354. package/dist/dist-cjs-CND_ghfH.mjs.map +0 -1
  355. package/dist/dist-cjs-CQwmMllY.mjs +0 -137
  356. package/dist/dist-cjs-CQwmMllY.mjs.map +0 -1
  357. package/dist/dist-cjs-CgFzrgj8.mjs +0 -85
  358. package/dist/dist-cjs-CgFzrgj8.mjs.map +0 -1
  359. package/dist/dist-cjs-CsU2sZoX.mjs +0 -323
  360. package/dist/dist-cjs-CsU2sZoX.mjs.map +0 -1
  361. package/dist/dist-cjs-DJ8fcQEe.mjs +0 -9069
  362. package/dist/dist-cjs-DJ8fcQEe.mjs.map +0 -1
  363. package/dist/dist-cjs-DT2jJlcK.mjs +0 -181
  364. package/dist/dist-cjs-DT2jJlcK.mjs.map +0 -1
  365. package/dist/dist-cjs-DjzmP0-x.mjs +0 -1091
  366. package/dist/dist-cjs-DjzmP0-x.mjs.map +0 -1
  367. package/dist/dist-cjs-DzjrlfbE.mjs +0 -437
  368. package/dist/dist-cjs-DzjrlfbE.mjs.map +0 -1
  369. package/dist/dist-cjs-M-8QOgS_.mjs +0 -209
  370. package/dist/dist-cjs-M-8QOgS_.mjs.map +0 -1
  371. package/dist/dist-cjs-TsA8LFXC.mjs +0 -48
  372. package/dist/dist-cjs-TsA8LFXC.mjs.map +0 -1
  373. package/dist/dist-cjs-agQl9T8M.mjs +0 -5015
  374. package/dist/dist-cjs-agQl9T8M.mjs.map +0 -1
  375. package/dist/event-streams-BaNGaLxh.mjs +0 -204
  376. package/dist/event-streams-BaNGaLxh.mjs.map +0 -1
  377. package/dist/fonts-C0W6TgJk.mjs.map +0 -1
  378. package/dist/index-9B8CJowc.d.mts.map +0 -1
  379. package/dist/index-CYGpSVsf.d.mts.map +0 -1
  380. package/dist/index-DDEPvMww.d.mts.map +0 -1
  381. package/dist/index-DnWsbbuZ.d.mts.map +0 -1
  382. package/dist/package-XpCRbTOA.mjs +0 -6
  383. package/dist/package-XpCRbTOA.mjs.map +0 -1
  384. package/dist/preview-BV2C4Fk6.mjs.map +0 -1
  385. package/dist/preview-engine/chunk-36YGYLKD.mjs +0 -58
  386. package/dist/preview-engine/chunk-7O24H4YT.mjs +0 -117
  387. package/dist/preview-engine/chunk-AUFSM5KI.mjs +0 -141
  388. package/dist/preview-engine/chunk-BHFI3Y4T.mjs +0 -1
  389. package/dist/preview-engine/chunk-BQ65MU6H.mjs +0 -138
  390. package/dist/preview-engine/chunk-BWDARDO6.mjs +0 -117
  391. package/dist/preview-engine/chunk-DLXQDDIN.mjs +0 -46
  392. package/dist/preview-engine/chunk-EJGLUZMW.mjs +0 -1
  393. package/dist/preview-engine/chunk-FE6RSVKZ.mjs +0 -73
  394. package/dist/preview-engine/chunk-FGHOHCFG.mjs +0 -110
  395. package/dist/preview-engine/chunk-HPIULG7P.mjs +0 -111
  396. package/dist/preview-engine/chunk-HRIKNYPF.mjs +0 -60
  397. package/dist/preview-engine/chunk-IMV5SBQV.mjs +0 -1
  398. package/dist/preview-engine/chunk-JPXQPP6J.mjs +0 -1
  399. package/dist/preview-engine/chunk-K52S5DJX.mjs +0 -109
  400. package/dist/preview-engine/chunk-L3IEJZ5S.mjs +0 -474
  401. package/dist/preview-engine/chunk-M7NMFDJ3.mjs +0 -3
  402. package/dist/preview-engine/chunk-MJM3NFEC.mjs +0 -315
  403. package/dist/preview-engine/chunk-NFAGEP43.mjs +0 -1448
  404. package/dist/preview-engine/chunk-NRHSNPZV.mjs +0 -182
  405. package/dist/preview-engine/chunk-OWOSYNMF.mjs +0 -104
  406. package/dist/preview-engine/chunk-Q66QQI6N.mjs +0 -8
  407. package/dist/preview-engine/chunk-QGBSLNFI.mjs +0 -52
  408. package/dist/preview-engine/chunk-QM3XFEJN.mjs +0 -63
  409. package/dist/preview-engine/chunk-R3ZH7YF3.mjs +0 -89
  410. package/dist/preview-engine/chunk-R6YNSBKL.mjs +0 -108
  411. package/dist/preview-engine/chunk-S4CSX6K5.mjs +0 -610
  412. package/dist/preview-engine/chunk-SNYAHQ25.mjs +0 -186
  413. package/dist/preview-engine/chunk-SRT2OCQW.mjs +0 -1
  414. package/dist/preview-engine/chunk-SUUUYXXT.mjs +0 -1
  415. package/dist/preview-engine/chunk-T6COGNOW.mjs +0 -134
  416. package/dist/preview-engine/chunk-XFYXT76H.mjs +0 -52
  417. package/dist/preview-engine/chunk-XUM42I4R.mjs +0 -1
  418. package/dist/preview-engine/chunk-YITWSOG4.mjs +0 -103
  419. package/dist/preview-engine/chunk-ZDCA6NVT.mjs +0 -82
  420. package/dist/preview-engine/chunk-ZNGOAGAI.mjs +0 -1
  421. package/dist/preview-engine/renderers-27Q5X3U6.mjs +0 -1
  422. package/dist/preview-engine/renderers-4AHH6BHF.mjs +0 -1
  423. package/dist/preview-engine/renderers-5BV6JGTU.mjs +0 -248
  424. package/dist/preview-engine/renderers-6PRVCTYV.mjs +0 -1
  425. package/dist/preview-engine/renderers-76PQY2SO.mjs +0 -1
  426. package/dist/preview-engine/renderers-7X2W6QWX.mjs +0 -1
  427. package/dist/preview-engine/renderers-B52QT6MT.mjs +0 -55
  428. package/dist/preview-engine/renderers-BE6RVJSE.mjs +0 -1
  429. package/dist/preview-engine/renderers-BMM2BH56.mjs +0 -1
  430. package/dist/preview-engine/renderers-CHOGQHVQ.mjs +0 -1
  431. package/dist/preview-engine/renderers-CRKRWR2Y.mjs +0 -1
  432. package/dist/preview-engine/renderers-DEYDSGJX.mjs +0 -1
  433. package/dist/preview-engine/renderers-DZTNRCR7.mjs +0 -1
  434. package/dist/preview-engine/renderers-ELO3KWTK.mjs +0 -1
  435. package/dist/preview-engine/renderers-EOJMPPAQ.mjs +0 -1
  436. package/dist/preview-engine/renderers-F2KJNDWA.mjs +0 -124
  437. package/dist/preview-engine/renderers-FCV4COVB.mjs +0 -1
  438. package/dist/preview-engine/renderers-G5KQISVL.mjs +0 -1
  439. package/dist/preview-engine/renderers-GJSUN5HU.mjs +0 -1
  440. package/dist/preview-engine/renderers-GMX2ZQDG.mjs +0 -1
  441. package/dist/preview-engine/renderers-GXCRINGC.mjs +0 -1
  442. package/dist/preview-engine/renderers-IHKORHMT.mjs +0 -1
  443. package/dist/preview-engine/renderers-JA4SLMG3.mjs +0 -1
  444. package/dist/preview-engine/renderers-JLN77CFZ.mjs +0 -1
  445. package/dist/preview-engine/renderers-KBFW7B5F.mjs +0 -1
  446. package/dist/preview-engine/renderers-LJRJMFCR.mjs +0 -1
  447. package/dist/preview-engine/renderers-LPAPZ5QS.mjs +0 -1
  448. package/dist/preview-engine/renderers-NQUDQEHY.mjs +0 -1
  449. package/dist/preview-engine/renderers-NS3AIJVG.mjs +0 -1
  450. package/dist/preview-engine/renderers-NSY2SDIE.mjs +0 -1
  451. package/dist/preview-engine/renderers-PW4OJWHF.mjs +0 -120
  452. package/dist/preview-engine/renderers-PWLWOZY4.mjs +0 -1
  453. package/dist/preview-engine/renderers-Q3MD34JN.mjs +0 -1
  454. package/dist/preview-engine/renderers-RXGNA2Q7.mjs +0 -1
  455. package/dist/preview-engine/renderers-TVTQ2R74.mjs +0 -1
  456. package/dist/preview-engine/renderers-VTTGFO55.mjs +0 -1
  457. package/dist/preview-engine/renderers-W3VVM5HB.mjs +0 -1
  458. package/dist/preview-engine/renderers-WG7QBD4D.mjs +0 -1
  459. package/dist/preview-engine/renderers-WLLJFZTF.mjs +0 -1
  460. package/dist/preview-engine/renderers-WN4SYFCU.mjs +0 -1
  461. package/dist/preview-engine/renderers-WSMLLSWX.mjs +0 -1
  462. package/dist/preview-engine/renderers-XFBSGTHU.mjs +0 -1
  463. package/dist/preview-engine/renderers-XFC6ZPO5.mjs +0 -1
  464. package/dist/preview-engine/renderers-XUHRY3XH.mjs +0 -1
  465. package/dist/preview-engine/renderers-YAOB5XU6.mjs +0 -1
  466. package/dist/preview-engine/renderers-YTB4FOHT.mjs +0 -1
  467. package/dist/preview-engine/renderers-ZIMBODX6.mjs +0 -1
  468. package/dist/program-BmNKgzja.mjs.map +0 -1
  469. package/dist/renderer-1VuQTY1Z.mjs.map +0 -1
  470. package/dist/renderer-6oMSare3.mjs +0 -3
  471. package/dist/renderer-B1ComPb2.mjs +0 -3
  472. package/dist/renderer-B2XzjK0z.mjs +0 -3
  473. package/dist/renderer-B2ieylQ3.mjs.map +0 -1
  474. package/dist/renderer-B8-kzZdP.mjs.map +0 -1
  475. package/dist/renderer-B8UaFNqb.mjs.map +0 -1
  476. package/dist/renderer-BDbTWSpP.mjs.map +0 -1
  477. package/dist/renderer-BIIWCg_J.mjs.map +0 -1
  478. package/dist/renderer-BJ1aTkZf.mjs.map +0 -1
  479. package/dist/renderer-BM05sB8m.mjs.map +0 -1
  480. package/dist/renderer-BQ5Bz5D0.mjs +0 -3
  481. package/dist/renderer-BREIjsUU.mjs.map +0 -1
  482. package/dist/renderer-BTu2EVhF.mjs +0 -3
  483. package/dist/renderer-BZcn_iBl.mjs +0 -3
  484. package/dist/renderer-Bc04fivZ.mjs.map +0 -1
  485. package/dist/renderer-BfAWZziM.mjs.map +0 -1
  486. package/dist/renderer-BfJSUjPN.mjs +0 -3
  487. package/dist/renderer-Bfgd4N0O.mjs.map +0 -1
  488. package/dist/renderer-Bhdf90Zq.mjs.map +0 -1
  489. package/dist/renderer-Bp6sDMa6.mjs +0 -3
  490. package/dist/renderer-Bt7_sb_Y.mjs +0 -3
  491. package/dist/renderer-Bv6q84TU.mjs.map +0 -1
  492. package/dist/renderer-C-H680_l.mjs +0 -3
  493. package/dist/renderer-C606ZPUn.mjs +0 -3
  494. package/dist/renderer-C9jyKn1i.mjs +0 -3
  495. package/dist/renderer-CDLrNgfo.mjs +0 -3
  496. package/dist/renderer-CERfcxgv.mjs +0 -3
  497. package/dist/renderer-CG5PzNkv.mjs +0 -3
  498. package/dist/renderer-CI7sG_cv.mjs.map +0 -1
  499. package/dist/renderer-CPoIMVdk.mjs +0 -3
  500. package/dist/renderer-CQdVj2JS.mjs +0 -3
  501. package/dist/renderer-CQiTodg9.mjs +0 -337
  502. package/dist/renderer-CQiTodg9.mjs.map +0 -1
  503. package/dist/renderer-CWTpc4ff.mjs.map +0 -1
  504. package/dist/renderer-CXn5HAnK.mjs.map +0 -1
  505. package/dist/renderer-CZgB5st8.mjs +0 -3
  506. package/dist/renderer-C_TPMHiH.mjs.map +0 -1
  507. package/dist/renderer-Ca7L1EOp.mjs +0 -3
  508. package/dist/renderer-CaaOKMSd.mjs.map +0 -1
  509. package/dist/renderer-CdciwwMI.mjs.map +0 -1
  510. package/dist/renderer-CepMDQ06.mjs.map +0 -1
  511. package/dist/renderer-CfC_aiew.mjs.map +0 -1
  512. package/dist/renderer-ChdLYS-G.mjs.map +0 -1
  513. package/dist/renderer-CkykdR_D.mjs +0 -3
  514. package/dist/renderer-Cl6GkeHx.mjs +0 -3
  515. package/dist/renderer-ClcjrFyo.mjs +0 -3
  516. package/dist/renderer-CnXW28b9.mjs.map +0 -1
  517. package/dist/renderer-CpkiHRhh.mjs.map +0 -1
  518. package/dist/renderer-CtVkU_GA.mjs +0 -44
  519. package/dist/renderer-CtVkU_GA.mjs.map +0 -1
  520. package/dist/renderer-Ctk2zzfy.mjs.map +0 -1
  521. package/dist/renderer-CtyD_Xju.mjs.map +0 -1
  522. package/dist/renderer-CySUP_wk.mjs +0 -3
  523. package/dist/renderer-CzPWB0Ss.mjs.map +0 -1
  524. package/dist/renderer-D2XD4QYk.mjs.map +0 -1
  525. package/dist/renderer-D2l_Odyg.mjs +0 -3
  526. package/dist/renderer-D7zvPHKn.mjs.map +0 -1
  527. package/dist/renderer-D9NnIx7o.mjs +0 -3
  528. package/dist/renderer-DCPCYySt.mjs +0 -3
  529. package/dist/renderer-DEJwPRkR.mjs.map +0 -1
  530. package/dist/renderer-DIkpJEOZ.mjs +0 -3
  531. package/dist/renderer-DML9qpmS.mjs.map +0 -1
  532. package/dist/renderer-DNSXPkf_.mjs +0 -3
  533. package/dist/renderer-DP-CvZ_Z.mjs +0 -3
  534. package/dist/renderer-DZGtBUCx.mjs.map +0 -1
  535. package/dist/renderer-D_1oDOCP.mjs.map +0 -1
  536. package/dist/renderer-DeXb8R6h.mjs +0 -3
  537. package/dist/renderer-DezO-ZaP.mjs +0 -4
  538. package/dist/renderer-DhXe04fC.mjs +0 -3
  539. package/dist/renderer-DirxsOjq.mjs.map +0 -1
  540. package/dist/renderer-Djlb4TLO.mjs.map +0 -1
  541. package/dist/renderer-DnH3SI7w.mjs +0 -3
  542. package/dist/renderer-DpGc-N3G.mjs.map +0 -1
  543. package/dist/renderer-Dpw4oi33.mjs +0 -3
  544. package/dist/renderer-DxTs4Iyi.mjs.map +0 -1
  545. package/dist/renderer-Dy0utCl7.mjs.map +0 -1
  546. package/dist/renderer-Md-ytU0v.mjs +0 -3
  547. package/dist/renderer-RKsXlF_0.mjs +0 -23900
  548. package/dist/renderer-RKsXlF_0.mjs.map +0 -1
  549. package/dist/renderer-U-bhWO9Q.mjs +0 -3
  550. package/dist/renderer-_uvdg48N.mjs.map +0 -1
  551. package/dist/renderer-bsWnRNpJ.mjs.map +0 -1
  552. package/dist/renderer-cgxO2xN6.mjs.map +0 -1
  553. package/dist/renderer-d5-F_48R.mjs +0 -3
  554. package/dist/renderer-ho_jXJ0H.mjs.map +0 -1
  555. package/dist/renderer-vqkKWqa5.mjs.map +0 -1
  556. package/dist/renderer-zA5okHds.mjs +0 -3
  557. package/dist/signin-Db08vl-g.mjs +0 -865
  558. package/dist/signin-Db08vl-g.mjs.map +0 -1
  559. package/dist/sso-oidc-CpLz_lIu.mjs +0 -1051
  560. package/dist/sso-oidc-CpLz_lIu.mjs.map +0 -1
  561. package/dist/sts-BQefGuml.mjs +0 -6
  562. package/dist/sts-Dgl0kH-t.mjs +0 -1395
  563. package/dist/sts-Dgl0kH-t.mjs.map +0 -1
  564. /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 { Y as parseColor, rt as signalRegistry } from "./dist-Cxi68OuY.mjs";
1
+ import { n as defineRenderer, s as resolveSignalField } from "./renderer-BSitV56h.mjs";
2
+ import { An as signalRegistry, H as parseColor } from "./dist-DkuDAIrG.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 } from "./gpu-DG3gI88-.mjs";
3
4
 
4
- //#region ../../nodes/node-refraction-caustics/dist/renderers-qLDoFraM.mjs
5
+ //#region ../../nodes/node-refraction-caustics/dist/renderers-BuTkLbVU.mjs
5
6
  const REFRACTION_CAUSTICS_SHADER = `
6
7
  struct RefractionCausticsUniforms {
7
8
  // vec4 0
@@ -73,27 +74,7 @@ struct RefractionCausticsUniforms {
73
74
  @group(3) @binding(6) var lightPosXSigTex : texture_2d<f32>;
74
75
  @group(3) @binding(7) var lightPosYSigTex : texture_2d<f32>;
75
76
  @group(3) @binding(8) var sigSamp : sampler;
76
-
77
- struct VSOut {
78
- @builtin(position) pos : vec4<f32>,
79
- @location(0) uv : vec2<f32>,
80
- };
81
-
82
- @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
83
- var pos = array<vec2<f32>, 4>(
84
- vec2<f32>(-1.0, 1.0),
85
- vec2<f32>(1.0, 1.0),
86
- vec2<f32>(-1.0, -1.0),
87
- vec2<f32>(1.0, -1.0)
88
- );
89
- var uv = array<vec2<f32>, 4>(
90
- vec2<f32>(0.0, 0.0),
91
- vec2<f32>(1.0, 0.0),
92
- vec2<f32>(0.0, 1.0),
93
- vec2<f32>(1.0, 1.0)
94
- );
95
- return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
96
- }
77
+ ${FULLSCREEN_QUAD_WGSL}
97
78
 
98
79
  fn sampleDepth(uv: vec2<f32>) -> f32 {
99
80
  let clampedUV = clamp(uv, vec2<f32>(0.0), vec2<f32>(1.0));
@@ -374,76 +355,10 @@ function getDeviceLayouts(device) {
374
355
  let res = deviceResourceCache.get(device);
375
356
  if (res) return res;
376
357
  res = {
377
- uniformLayout: device.createBindGroupLayout({ entries: [{
378
- binding: 0,
379
- visibility: GPUShaderStage.FRAGMENT,
380
- buffer: { type: "uniform" }
381
- }] }),
382
- srcTextureLayout: device.createBindGroupLayout({ entries: [{
383
- binding: 0,
384
- visibility: GPUShaderStage.FRAGMENT,
385
- texture: { sampleType: "float" }
386
- }, {
387
- binding: 1,
388
- visibility: GPUShaderStage.FRAGMENT,
389
- sampler: { type: "filtering" }
390
- }] }),
391
- depthTextureLayout: device.createBindGroupLayout({ entries: [{
392
- binding: 0,
393
- visibility: GPUShaderStage.FRAGMENT,
394
- texture: { sampleType: "float" }
395
- }, {
396
- binding: 1,
397
- visibility: GPUShaderStage.FRAGMENT,
398
- sampler: { type: "filtering" }
399
- }] }),
400
- signalTextureLayout: device.createBindGroupLayout({ entries: [
401
- {
402
- binding: 0,
403
- visibility: GPUShaderStage.FRAGMENT,
404
- texture: { sampleType: "float" }
405
- },
406
- {
407
- binding: 1,
408
- visibility: GPUShaderStage.FRAGMENT,
409
- texture: { sampleType: "float" }
410
- },
411
- {
412
- binding: 2,
413
- visibility: GPUShaderStage.FRAGMENT,
414
- texture: { sampleType: "float" }
415
- },
416
- {
417
- binding: 3,
418
- visibility: GPUShaderStage.FRAGMENT,
419
- texture: { sampleType: "float" }
420
- },
421
- {
422
- binding: 4,
423
- visibility: GPUShaderStage.FRAGMENT,
424
- texture: { sampleType: "float" }
425
- },
426
- {
427
- binding: 5,
428
- visibility: GPUShaderStage.FRAGMENT,
429
- texture: { sampleType: "float" }
430
- },
431
- {
432
- binding: 6,
433
- visibility: GPUShaderStage.FRAGMENT,
434
- texture: { sampleType: "float" }
435
- },
436
- {
437
- binding: 7,
438
- visibility: GPUShaderStage.FRAGMENT,
439
- texture: { sampleType: "float" }
440
- },
441
- {
442
- binding: 8,
443
- visibility: GPUShaderStage.FRAGMENT,
444
- sampler: { type: "filtering" }
445
- }
446
- ] }),
358
+ uniformLayout: fragmentBindGroupLayout(device, ["uniform"]),
359
+ srcTextureLayout: fragmentBindGroupLayout(device, ["texture", "sampler"]),
360
+ depthTextureLayout: fragmentBindGroupLayout(device, ["texture", "sampler"]),
361
+ signalTextureLayout: texturesLayout(device, 8),
447
362
  pipelineCache: /* @__PURE__ */ new Map()
448
363
  };
449
364
  deviceResourceCache.set(device, res);
@@ -458,24 +373,16 @@ function getRefractionCausticsResources(device, format) {
458
373
  label: `refraction_caustics_${format}.wgsl`,
459
374
  code: REFRACTION_CAUSTICS_SHADER
460
375
  });
461
- pipeline = device.createRenderPipeline({
376
+ pipeline = createFullscreenPipeline(device, {
462
377
  label: `RefractionCausticsPipeline_${format}`,
463
- layout: device.createPipelineLayout({ bindGroupLayouts: [
378
+ module,
379
+ layouts: [
464
380
  layouts.uniformLayout,
465
381
  layouts.srcTextureLayout,
466
382
  layouts.depthTextureLayout,
467
383
  layouts.signalTextureLayout
468
- ] }),
469
- vertex: {
470
- module,
471
- entryPoint: "vs"
472
- },
473
- fragment: {
474
- module,
475
- entryPoint: "fs",
476
- targets: [{ format }]
477
- },
478
- primitive: { topology: "triangle-strip" }
384
+ ],
385
+ format
479
386
  });
480
387
  layouts.pipelineCache.set(cacheKey, pipeline);
481
388
  }
@@ -487,31 +394,8 @@ function getRefractionCausticsResources(device, format) {
487
394
  signalTextureLayout: layouts.signalTextureLayout
488
395
  };
489
396
  }
490
- function resolveSignalField(op, fieldName, defaultValue, minVal, maxVal) {
491
- const handleId = op[`${fieldName}HandleId`];
492
- const signalInput = handleId ? op.inputs?.[handleId] : null;
493
- const hasSignal = !!(signalInput?.connectionValid && (signalInput.outputItem?.type === "Signal" || signalInput.outputItem?.type === "Numeric"));
494
- const sd = hasSignal && signalInput?.outputItem?.data ? signalInput.outputItem.data : null;
495
- let value = defaultValue;
496
- if (!hasSignal) if (signalInput?.connectionValid && signalInput.outputItem?.type === "Number") {
497
- const raw = Number(signalInput.outputItem.data ?? defaultValue);
498
- value = Math.max(minVal, Math.min(maxVal, raw));
499
- } else {
500
- const raw = Number(op[fieldName] ?? defaultValue);
501
- value = Math.max(minVal, Math.min(maxVal, raw));
502
- }
503
- else if (sd) {
504
- const raw = Number(sd.offset ?? defaultValue);
505
- value = Math.max(minVal, Math.min(maxVal, raw));
506
- }
507
- return {
508
- hasSignal,
509
- sd,
510
- value
511
- };
512
- }
513
397
  const RefractionCaustics3DWebGPURenderer = async (args) => {
514
- const { ctx, encoder, pass, targetView, targetTexture, targetWidth, targetHeight, props, drawChild } = args;
398
+ const { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;
515
399
  const frame = props.frame ?? 0;
516
400
  const fps = props.fps || 60;
517
401
  const op = props.virtualMedia?.operation;
@@ -521,73 +405,35 @@ const RefractionCaustics3DWebGPURenderer = async (args) => {
521
405
  pass.end();
522
406
  const width = targetWidth;
523
407
  const height = targetHeight;
524
- const srcTex = ctx.renderer.getTemporaryTexture(width, height, [...props.excludeTextures || [], targetTexture]);
525
- const srcView = srcTex.createView();
526
- ctx.renderer.beginFrame(encoder, srcView, {
527
- r: 0,
528
- g: 0,
529
- b: 0,
530
- a: 0
531
- }, width, height, "clear").end();
532
- ctx.renderer.pushScissor({
533
- x: 0,
534
- y: 0,
535
- width,
536
- height
537
- });
538
- ctx.renderer.pushIdentity();
539
- await drawChild(sourceMedia, {
408
+ const { texture: srcTex } = await drawChildToTexture(args, sourceMedia, { props: {
540
409
  ...props,
541
410
  virtualMedia: sourceMedia,
542
411
  containerWidth: width,
543
412
  containerHeight: height
544
- }, srcView, srcTex, width, height);
545
- ctx.renderer.popTransform();
546
- ctx.renderer.popScissor();
413
+ } });
547
414
  args.pass.end();
548
415
  const depthMedia = op.depthMedia;
549
416
  let depthTex;
550
- let depthView;
551
417
  let hasDepthMap = false;
552
418
  if (depthMedia) {
553
- depthTex = ctx.renderer.getTemporaryTexture(width, height, [
554
- ...props.excludeTextures || [],
555
- targetTexture,
556
- srcTex
557
- ]);
558
- depthView = depthTex.createView();
559
- ctx.renderer.beginFrame(encoder, depthView, {
560
- r: 0,
561
- g: 0,
562
- b: 0,
563
- a: 0
564
- }, width, height, "clear").end();
565
- ctx.renderer.pushScissor({
566
- x: 0,
567
- y: 0,
568
- width,
569
- height
570
- });
571
- ctx.renderer.pushIdentity();
572
- await drawChild(depthMedia, {
573
- ...props,
574
- virtualMedia: depthMedia,
575
- containerWidth: width,
576
- containerHeight: height
577
- }, depthView, depthTex, width, height);
578
- ctx.renderer.popTransform();
579
- ctx.renderer.popScissor();
419
+ ({texture: depthTex} = await drawChildToTexture(args, depthMedia, {
420
+ props: {
421
+ ...props,
422
+ virtualMedia: depthMedia,
423
+ containerWidth: width,
424
+ containerHeight: height
425
+ },
426
+ exclude: [srcTex]
427
+ }));
580
428
  args.pass.end();
581
429
  hasDepthMap = true;
582
430
  } else {
583
431
  depthTex = srcTex;
584
- depthView = srcView;
585
432
  hasDepthMap = false;
586
433
  }
587
434
  const { pipeline, uniformLayout: uLayout, srcTextureLayout: srcLayout, depthTextureLayout: depthLayout, signalTextureLayout: sigLayout } = getRefractionCausticsResources(ctx.device, ctx.renderer.format);
588
435
  const sampler = ctx.renderer.samplerCache.getSampler(ctx.device);
589
- const elapsedSeconds = props.elapsedMs !== void 0 ? props.elapsedMs / 1e3 : frame / fps;
590
- const durationSeconds = props.virtualMedia?.metadata?.durationMs ? props.virtualMedia.metadata.durationMs / 1e3 : props.durationMs !== void 0 ? props.durationMs / 1e3 : 4;
436
+ const { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps, 4);
591
437
  const timeProgress = durationSeconds > 0 ? elapsedSeconds % durationSeconds / durationSeconds : 0;
592
438
  const iorInfo = resolveSignalField(op, "ior", 1.52, 1, 2.5);
593
439
  const dispersionInfo = resolveSignalField(op, "dispersion", .04, 0, .2);
@@ -659,86 +505,62 @@ const RefractionCaustics3DWebGPURenderer = async (args) => {
659
505
  targetTexture,
660
506
  ...props.excludeTextures || []
661
507
  ]);
662
- const renderPass = encoder.beginRenderPass({ colorAttachments: [{
663
- view: outTex.createView(),
664
- loadOp: "clear",
665
- storeOp: "store",
666
- clearValue: {
667
- r: 0,
668
- g: 0,
669
- b: 0,
670
- a: 0
671
- }
672
- }] });
673
- renderPass.setPipeline(pipeline);
674
- renderPass.setBindGroup(0, ctx.device.createBindGroup({
675
- layout: uLayout,
676
- entries: [{
677
- binding: 0,
678
- resource: { buffer: uniformBuffer }
679
- }]
680
- }));
681
- renderPass.setBindGroup(1, ctx.renderer.bindGroupCache.getBindGroup(ctx.device, srcLayout, srcTex, sampler));
682
- renderPass.setBindGroup(2, ctx.renderer.bindGroupCache.getBindGroup(ctx.device, depthLayout, depthTex, sampler));
683
- renderPass.setBindGroup(3, ctx.device.createBindGroup({
684
- layout: sigLayout,
685
- entries: [
686
- {
508
+ drawFullscreenPass(encoder, outTex.createView(), pipeline, [
509
+ ctx.device.createBindGroup({
510
+ layout: uLayout,
511
+ entries: [{
687
512
  binding: 0,
688
- resource: sigIORView
689
- },
690
- {
691
- binding: 1,
692
- resource: sigDispersionView
693
- },
694
- {
695
- binding: 2,
696
- resource: sigRefractScaleView
697
- },
698
- {
699
- binding: 3,
700
- resource: sigCausticView
701
- },
702
- {
703
- binding: 4,
704
- resource: sigRipplesView
705
- },
706
- {
707
- binding: 5,
708
- resource: sigRoughnessView
709
- },
710
- {
711
- binding: 6,
712
- resource: sigLightPosXView
713
- },
714
- {
715
- binding: 7,
716
- resource: sigLightPosYView
717
- },
718
- {
719
- binding: 8,
720
- resource: sampler
721
- }
722
- ]
723
- }));
724
- renderPass.draw(4);
725
- renderPass.end();
726
- const finalPass = ctx.renderer.beginFrame(encoder, targetView, {
727
- r: 0,
728
- g: 0,
729
- b: 0,
730
- a: 0
731
- }, targetWidth, targetHeight, "load");
732
- ctx.renderer.drawTexture(finalPass, outTex, {
733
- x: 0,
734
- y: 0,
735
- width: targetWidth,
736
- height: targetHeight
737
- }, { opacity: op.opacity ?? 1 });
738
- args.pass = finalPass;
513
+ resource: { buffer: uniformBuffer }
514
+ }]
515
+ }),
516
+ ctx.renderer.bindGroupCache.getBindGroup(ctx.device, srcLayout, srcTex, sampler),
517
+ ctx.renderer.bindGroupCache.getBindGroup(ctx.device, depthLayout, depthTex, sampler),
518
+ ctx.device.createBindGroup({
519
+ layout: sigLayout,
520
+ entries: [
521
+ {
522
+ binding: 0,
523
+ resource: sigIORView
524
+ },
525
+ {
526
+ binding: 1,
527
+ resource: sigDispersionView
528
+ },
529
+ {
530
+ binding: 2,
531
+ resource: sigRefractScaleView
532
+ },
533
+ {
534
+ binding: 3,
535
+ resource: sigCausticView
536
+ },
537
+ {
538
+ binding: 4,
539
+ resource: sigRipplesView
540
+ },
541
+ {
542
+ binding: 5,
543
+ resource: sigRoughnessView
544
+ },
545
+ {
546
+ binding: 6,
547
+ resource: sigLightPosXView
548
+ },
549
+ {
550
+ binding: 7,
551
+ resource: sigLightPosYView
552
+ },
553
+ {
554
+ binding: 8,
555
+ resource: sampler
556
+ }
557
+ ]
558
+ })
559
+ ]);
560
+ drawTextureToTarget(args, outTex, op.opacity ?? 1);
739
561
  };
740
562
  var renderers_default = defineRenderer({ WebGPURenderer: RefractionCaustics3DWebGPURenderer });
741
563
 
742
564
  //#endregion
743
565
  export { renderers_default as n, RefractionCaustics3DWebGPURenderer as t };
744
- //# sourceMappingURL=renderer-DirxsOjq.mjs.map
566
+ //# sourceMappingURL=renderer-DUhXH5Tz.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-DUhXH5Tz.mjs","names":[],"sources":["../../../nodes/node-refraction-caustics/dist/renderers-BuTkLbVU.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { resolveSignalField } from \"@framefields/node-sdk\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout, signalTiming, texturesLayout } from \"@framefields/node-sdk/gpu\";\nimport { parseColor, signalRegistry } from \"@framefields/webgpu-renderers\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst REFRACTION_CAUSTICS_SHADER = `\nstruct RefractionCausticsUniforms {\n // vec4 0\n _pad0 : f32,\n ior : f32,\n dispersion : f32,\n refractionScale : f32,\n\n // vec4 1\n causticBrightness : f32,\n causticScale : f32,\n fluidRipples : f32,\n rippleSpeed : f32,\n\n // vec4 2\n roughness : f32,\n specularIntensity : f32,\n lightPosX : f32,\n lightPosY : f32,\n\n // vec4 3\n tintStrength : f32,\n depthInvert : f32,\n depthScale : f32,\n hasDepthMap : f32,\n\n // vec4 4\n timeProgress : f32,\n aspect : f32,\n _pad1 : f32,\n _pad2 : f32,\n\n // vec4 5: signal flags\n hasSigIOR : f32,\n hasSigDispersion : f32,\n hasSigRefractScale : f32,\n hasSigCaustic : f32,\n\n // vec4 6: signal flags\n hasSigRipples : f32,\n hasSigRoughness : f32,\n hasSigLightPosX : f32,\n hasSigLightPosY : f32,\n\n // vec4 7: reserved\n _pad3 : f32,\n _pad4 : f32,\n _pad5 : f32,\n _pad6 : f32,\n\n // vec4 8: color\n tintColor : vec4<f32>,\n};\n\n@group(0) @binding(0) var<uniform> u : RefractionCausticsUniforms;\n\n@group(1) @binding(0) var srcTex : texture_2d<f32>;\n@group(1) @binding(1) var srcSamp : sampler;\n\n@group(2) @binding(0) var depthTex : texture_2d<f32>;\n@group(2) @binding(1) var depthSamp : sampler;\n\n@group(3) @binding(0) var iorSigTex : texture_2d<f32>;\n@group(3) @binding(1) var dispersionSigTex : texture_2d<f32>;\n@group(3) @binding(2) var refractScaleSigTex : texture_2d<f32>;\n@group(3) @binding(3) var causticSigTex : texture_2d<f32>;\n@group(3) @binding(4) var ripplesSigTex : texture_2d<f32>;\n@group(3) @binding(5) var roughnessSigTex : texture_2d<f32>;\n@group(3) @binding(6) var lightPosXSigTex : texture_2d<f32>;\n@group(3) @binding(7) var lightPosYSigTex : texture_2d<f32>;\n@group(3) @binding(8) var sigSamp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\nfn sampleDepth(uv: vec2<f32>) -> f32 {\n let clampedUV = clamp(uv, vec2<f32>(0.0), vec2<f32>(1.0));\n var raw: f32 = 0.0;\n if (u.hasDepthMap > 0.5) {\n let dSample = textureSampleLevel(depthTex, depthSamp, clampedUV, 0.0);\n raw = dot(dSample.rgb, vec3<f32>(0.299, 0.587, 0.114));\n } else {\n let c = textureSampleLevel(srcTex, srcSamp, clampedUV, 0.0);\n raw = dot(c.rgb, vec3<f32>(0.299, 0.587, 0.114));\n }\n if (u.depthInvert > 0.5) {\n raw = 1.0 - raw;\n }\n return clamp(raw, 0.0, 1.0);\n}\n\nfn sampleSmoothDepth(uv: vec2<f32>, texelSize: vec2<f32>) -> f32 {\n let d0 = sampleDepth(uv);\n let d1 = sampleDepth(uv + vec2<f32>(texelSize.x, 0.0));\n let d2 = sampleDepth(uv - vec2<f32>(texelSize.x, 0.0));\n let d3 = sampleDepth(uv + vec2<f32>(0.0, texelSize.y));\n let d4 = sampleDepth(uv - vec2<f32>(0.0, texelSize.y));\n return (d0 * 4.0 + d1 + d2 + d3 + d4) * 0.125;\n}\n\n// Analytical fluid ripple wave height and normal gradient\nfn getFluidWave(uv: vec2<f32>, time: f32, freqScale: f32) -> vec3<f32> {\n let p = uv * freqScale * 18.0;\n let t = time * 3.0;\n\n let a1 = sin(p.x * 1.4 + p.y * 1.0 + t * 1.2);\n let a2 = sin(p.x * -1.8 + p.y * 1.6 + t * 0.9);\n let a3 = cos((p.x + p.y) * 2.2 - t * 1.4);\n\n let height = (a1 + a2 + a3) * 0.333;\n\n let dx = (1.4 * cos(p.x * 1.4 + p.y * 1.0 + t * 1.2)\n - 1.8 * cos(p.x * -1.8 + p.y * 1.6 + t * 0.9)\n - 2.2 * sin((p.x + p.y) * 2.2 - t * 1.4)) * freqScale * 18.0 * 0.333;\n\n let dy = (1.0 * cos(p.x * 1.4 + p.y * 1.0 + t * 1.2)\n + 1.6 * cos(p.x * -1.8 + p.y * 1.6 + t * 0.9)\n - 2.2 * sin((p.x + p.y) * 2.2 - t * 1.4)) * freqScale * 18.0 * 0.333;\n\n return vec3<f32>(dx, dy, height);\n}\n\n// Photometric cellular water caustic web (swimming pool / sunlight underwater filaments)\nfn getWaterCaustics(uv: vec2<f32>, time: f32, scale: f32) -> f32 {\n let p = uv * scale * 32.0;\n let t1 = time * 0.8;\n let t2 = time * 1.1;\n\n var p1 = p;\n p1.x = p1.x + sin(p.y * 0.45 + t1) * 1.6;\n p1.y = p1.y + cos(p.x * 0.45 + t1 * 0.8) * 1.6;\n\n var p2 = p * 1.2 + vec2<f32>(4.7, 2.1);\n p2.x = p2.x + cos(p2.y * 0.5 - t2 * 0.9) * 1.4;\n p2.y = p2.y + sin(p2.x * 0.5 + t2) * 1.4;\n\n let k1 = 1.0 - abs(sin(p1.x) * sin(p1.y));\n let k2 = 1.0 - abs(cos(p2.x) * cos(p2.y));\n\n // Sharp interconnected caustic web filaments\n let web = pow(k1 * k2, 3.5);\n return web;\n}\n\nfn computeSurfaceNormal(uv: vec2<f32>, texelSize: vec2<f32>, fluidRippleAmount: f32, rippleTime: f32, depthScaleVal: f32, causticScaleVal: f32) -> vec3<f32> {\n let step = texelSize * 2.0;\n let dL = sampleSmoothDepth(uv - vec2<f32>(step.x, 0.0), texelSize);\n let dR = sampleSmoothDepth(uv + vec2<f32>(step.x, 0.0), texelSize);\n let dD = sampleSmoothDepth(uv - vec2<f32>(0.0, step.y), texelSize);\n let dU = sampleSmoothDepth(uv + vec2<f32>(0.0, step.y), texelSize);\n\n var dx = (dR - dL) * depthScaleVal * 2.0;\n var dy = (dU - dD) * depthScaleVal * 2.0;\n\n if (fluidRippleAmount > 0.001) {\n let wave = getFluidWave(uv, rippleTime, causticScaleVal);\n dx = dx + wave.x * fluidRippleAmount * 0.08;\n dy = dy + wave.y * fluidRippleAmount * 0.08;\n }\n\n return normalize(vec3<f32>(-dx, -dy, 1.0));\n}\n\n// Snell's Law ray refraction with Total Internal Reflection (TIR) fallback\nfn calcRefractOffset(I: vec3<f32>, N: vec3<f32>, eta: f32, thickness: f32) -> vec2<f32> {\n let cosi = dot(-I, N);\n let cost2 = 1.0 - eta * eta * (1.0 - cosi * cosi);\n if (cost2 < 0.0) {\n // Total internal reflection -> reflect\n let R = reflect(I, N);\n return R.xy * thickness * 0.5;\n }\n let R = eta * I + (eta * cosi - sqrt(cost2)) * N;\n return R.xy * (thickness / max(0.2, abs(R.z)));\n}\n\nfn sampleAlbedoSafe(uv: vec2<f32>) -> vec4<f32> {\n if (uv.x >= 0.0 && uv.x <= 1.0 && uv.y >= 0.0 && uv.y <= 1.0) {\n return textureSampleLevel(srcTex, srcSamp, uv, 0.0);\n }\n // Mirror with subtle clamp for border inpainting / anti-tearing\n let mirroredUV = abs(fract(uv * 0.5 + 0.5) * 2.0 - 1.0);\n let clampedUV = clamp(mirroredUV, vec2<f32>(0.001), vec2<f32>(0.999));\n return textureSampleLevel(srcTex, srcSamp, clampedUV, 0.0);\n}\n\nfn spectralWavelength(t: f32) -> vec3<f32> {\n let x = clamp(t, 0.0, 1.0) * 6.0;\n var r: f32 = 0.0;\n var g: f32 = 0.0;\n var b: f32 = 0.0;\n\n if (x < 1.0) {\n r = 1.0;\n g = x;\n b = 0.0;\n } else if (x < 2.0) {\n r = 2.0 - x;\n g = 1.0;\n b = 0.0;\n } else if (x < 3.0) {\n r = 0.0;\n g = 1.0;\n b = x - 2.0;\n } else if (x < 4.0) {\n r = 0.0;\n g = 4.0 - x;\n b = 1.0;\n } else if (x < 5.0) {\n r = x - 4.0;\n g = 0.0;\n b = 1.0;\n } else {\n r = 1.0;\n g = 0.0;\n b = max(0.4, 6.0 - x);\n }\n return vec3<f32>(r, g, b);\n}\n\n@fragment fn fs(in: VSOut) -> @location(0) vec4<f32> {\n let dims = vec2<f32>(textureDimensions(srcTex));\n let texelSize = vec2<f32>(1.0 / dims.x, 1.0 / dims.y);\n let aspect = select(u.aspect, dims.x / max(1.0, dims.y), u.aspect <= 0.0);\n\n // Resolve signals\n var ior = u.ior;\n if (u.hasSigIOR > 0.5) {\n ior = clamp(textureSampleLevel(iorSigTex, sigSamp, in.uv, 0.0).r, 1.0, 2.5);\n }\n\n var dispersion = u.dispersion;\n if (u.hasSigDispersion > 0.5) {\n dispersion = clamp(textureSampleLevel(dispersionSigTex, sigSamp, in.uv, 0.0).r, 0.0, 0.2);\n }\n\n var refractionScale = u.refractionScale;\n if (u.hasSigRefractScale > 0.5) {\n refractionScale = clamp(textureSampleLevel(refractScaleSigTex, sigSamp, in.uv, 0.0).r, 0.0, 2.0);\n }\n\n var causticBrightness = u.causticBrightness;\n if (u.hasSigCaustic > 0.5) {\n causticBrightness = clamp(textureSampleLevel(causticSigTex, sigSamp, in.uv, 0.0).r, 0.0, 2.0);\n }\n\n var fluidRipples = u.fluidRipples;\n if (u.hasSigRipples > 0.5) {\n fluidRipples = clamp(textureSampleLevel(ripplesSigTex, sigSamp, in.uv, 0.0).r, 0.0, 1.0);\n }\n\n var roughness = u.roughness;\n if (u.hasSigRoughness > 0.5) {\n roughness = clamp(textureSampleLevel(roughnessSigTex, sigSamp, in.uv, 0.0).r, 0.0, 1.0);\n }\n\n var lightPosX = u.lightPosX;\n if (u.hasSigLightPosX > 0.5) {\n lightPosX = clamp(textureSampleLevel(lightPosXSigTex, sigSamp, in.uv, 0.0).r, 0.0, 1.0);\n }\n\n var lightPosY = u.lightPosY;\n if (u.hasSigLightPosY > 0.5) {\n lightPosY = clamp(textureSampleLevel(lightPosYSigTex, sigSamp, in.uv, 0.0).r, 0.0, 1.0);\n }\n\n let depthScaleVal = u.depthScale;\n let causticScaleVal = max(0.1, u.causticScale);\n let rippleSpeedVal = u.rippleSpeed;\n let rippleTime = u.timeProgress * rippleSpeedVal * 6.2831853;\n\n // Surface Normal & Incident Vectors\n let N = computeSurfaceNormal(in.uv, texelSize, fluidRipples, rippleTime, depthScaleVal, causticScaleVal);\n let I = vec3<f32>(0.0, 0.0, -1.0); // View vector towards surface\n let V = vec3<f32>(0.0, 0.0, 1.0); // View vector towards camera\n\n // Base Snell's Law Refraction\n let eta = 1.0 / max(1.001, ior);\n let refractVec = calcRefractOffset(I, N, eta, refractionScale * 0.16);\n let baseUV = in.uv + vec2<f32>(refractVec.x / aspect, refractVec.y);\n\n // Multi-Spectral Chromatic Rainbow Dispersion\n var accumColor = vec3<f32>(0.0);\n var accumWeight = vec3<f32>(0.0);\n var accumAlpha: f32 = 0.0;\n\n let dispersionStrength = dispersion * refractionScale * 0.6;\n let dispDirection = vec2<f32>(N.x / aspect, N.y);\n\n // 7-tap spectral rainbow integration across wavelength spectrum (Red -> Yellow -> Green -> Cyan -> Blue -> Violet)\n for (var s = 0; s < 7; s = s + 1) {\n let t = f32(s) / 6.0; // 0.0 (Red) to 1.0 (Violet)\n let specColor = spectralWavelength(t);\n let lambdaOffset = dispDirection * ((t - 0.5) * dispersionStrength);\n let sampleUV = baseUV + lambdaOffset;\n\n var sampledTex = sampleAlbedoSafe(sampleUV);\n\n // Microfacet frosted blur if roughness is enabled\n if (roughness > 0.005) {\n let blurRad = roughness * 0.018;\n let j1 = sampleAlbedoSafe(sampleUV + vec2<f32>(blurRad / aspect, blurRad * 0.5));\n let j2 = sampleAlbedoSafe(sampleUV - vec2<f32>(blurRad / aspect, blurRad * 0.5));\n sampledTex = (sampledTex * 2.0 + j1 + j2) * 0.25;\n }\n\n accumColor = accumColor + sampledTex.rgb * specColor;\n accumWeight = accumWeight + specColor;\n accumAlpha = accumAlpha + sampledTex.a;\n }\n\n let finalRefractedRGB = accumColor / max(accumWeight, vec3<f32>(0.001));\n let finalAlpha = accumAlpha / 7.0;\n\n // Incident light vector\n let lightPos3D = vec3<f32>((lightPosX - 0.5) * aspect, lightPosY - 0.5, 0.85);\n let surfPos3D = vec3<f32>((in.uv.x - 0.5) * aspect, in.uv.y - 0.5, 0.0);\n let L = normalize(lightPos3D - surfPos3D);\n\n // 1. Dynamic Fluid Caustics (active when fluidRipples > 0.001)\n var fluidCaustic = 0.0;\n if (fluidRipples > 0.001) {\n let web = getWaterCaustics(in.uv, rippleTime, causticScaleVal);\n let pLight = vec2<f32>(lightPosX, lightPosY);\n let distLight = length((in.uv - pLight) * vec2<f32>(aspect, 1.0));\n let lightAtt = 1.0 / (1.0 + distLight * distLight * 1.2);\n fluidCaustic = web * lightAtt * fluidRipples * causticBrightness * 0.45;\n }\n\n // 2. Specular Highlights & Fresnel Reflectance (Schlick's approximation)\n let f0 = pow((ior - 1.0) / (ior + 1.0), 2.0);\n let NdotV = max(dot(N, V), 0.0);\n let fresnel = f0 + (1.0 - f0) * pow(1.0 - NdotV, 5.0);\n\n let H = normalize(L + V);\n let NdotH = max(dot(N, H), 0.0);\n let specShininess = mix(256.0, 32.0, roughness);\n let specular = pow(NdotH, specShininess) * u.specularIntensity * fresnel * 1.5;\n\n // Glass Absorption & Tinting\n let tintStrengthVal = u.tintStrength;\n let tintedBase = mix(finalRefractedRGB, finalRefractedRGB * u.tintColor.rgb, tintStrengthVal);\n\n // Final Composite (Refracted Rainbow Spectrum + Fluid Caustics + Crisp Specular)\n let finalRGB = tintedBase + vec3<f32>(fluidCaustic) * u.tintColor.rgb + vec3<f32>(specular);\n\n return vec4<f32>(clamp(finalRGB, vec3<f32>(0.0), vec3<f32>(1.0)), finalAlpha);\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nfunction getDeviceLayouts(device) {\n\tlet res = deviceResourceCache.get(device);\n\tif (res) return res;\n\tres = {\n\t\tuniformLayout: fragmentBindGroupLayout(device, [\"uniform\"]),\n\t\tsrcTextureLayout: fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]),\n\t\tdepthTextureLayout: fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]),\n\t\tsignalTextureLayout: texturesLayout(device, 8),\n\t\tpipelineCache: /* @__PURE__ */ new Map()\n\t};\n\tdeviceResourceCache.set(device, res);\n\treturn res;\n}\nfunction getRefractionCausticsResources(device, format) {\n\tconst layouts = getDeviceLayouts(device);\n\tconst cacheKey = `refraction_caustics_${format}`;\n\tlet pipeline = layouts.pipelineCache.get(cacheKey);\n\tif (!pipeline) {\n\t\tconst module = device.createShaderModule({\n\t\t\tlabel: `refraction_caustics_${format}.wgsl`,\n\t\t\tcode: REFRACTION_CAUSTICS_SHADER\n\t\t});\n\t\tpipeline = createFullscreenPipeline(device, {\n\t\t\tlabel: `RefractionCausticsPipeline_${format}`,\n\t\t\tmodule,\n\t\t\tlayouts: [\n\t\t\t\tlayouts.uniformLayout,\n\t\t\t\tlayouts.srcTextureLayout,\n\t\t\t\tlayouts.depthTextureLayout,\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\tsrcTextureLayout: layouts.srcTextureLayout,\n\t\tdepthTextureLayout: layouts.depthTextureLayout,\n\t\tsignalTextureLayout: layouts.signalTextureLayout\n\t};\n}\nconst RefractionCaustics3DWebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;\n\tconst frame = props.frame ?? 0;\n\tconst fps = props.fps || 60;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"RefractionCaustics3D\" || !op) return;\n\tconst sourceMedia = props.virtualMedia.children?.[0];\n\tif (!sourceMedia) return;\n\tpass.end();\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst { texture: srcTex } = await drawChildToTexture(args, sourceMedia, { props: {\n\t\t...props,\n\t\tvirtualMedia: sourceMedia,\n\t\tcontainerWidth: width,\n\t\tcontainerHeight: height\n\t} });\n\targs.pass.end();\n\tconst depthMedia = op.depthMedia;\n\tlet depthTex;\n\tlet hasDepthMap = false;\n\tif (depthMedia) {\n\t\t({texture: depthTex} = await drawChildToTexture(args, depthMedia, {\n\t\t\tprops: {\n\t\t\t\t...props,\n\t\t\t\tvirtualMedia: depthMedia,\n\t\t\t\tcontainerWidth: width,\n\t\t\t\tcontainerHeight: height\n\t\t\t},\n\t\t\texclude: [srcTex]\n\t\t}));\n\t\targs.pass.end();\n\t\thasDepthMap = true;\n\t} else {\n\t\tdepthTex = srcTex;\n\t\thasDepthMap = false;\n\t}\n\tconst { pipeline, uniformLayout: uLayout, srcTextureLayout: srcLayout, depthTextureLayout: depthLayout, signalTextureLayout: sigLayout } = getRefractionCausticsResources(ctx.device, ctx.renderer.format);\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst { elapsedSeconds, durationSeconds } = signalTiming(props, frame, fps, 4);\n\tconst timeProgress = durationSeconds > 0 ? elapsedSeconds % durationSeconds / durationSeconds : 0;\n\tconst iorInfo = resolveSignalField(op, \"ior\", 1.52, 1, 2.5);\n\tconst dispersionInfo = resolveSignalField(op, \"dispersion\", .04, 0, .2);\n\tconst refractScaleInfo = resolveSignalField(op, \"refractionScale\", .5, 0, 2);\n\tconst causticInfo = resolveSignalField(op, \"causticBrightness\", .6, 0, 2);\n\tconst causticScaleInfo = resolveSignalField(op, \"causticScale\", 1, .1, 5);\n\tconst ripplesInfo = resolveSignalField(op, \"fluidRipples\", 0, 0, 1);\n\tconst roughnessInfo = resolveSignalField(op, \"roughness\", 0, 0, 1);\n\tconst lightPosXInfo = resolveSignalField(op, \"lightPosX\", .5, 0, 1);\n\tconst lightPosYInfo = resolveSignalField(op, \"lightPosY\", .2, 0, 1);\n\tconst specularInfo = resolveSignalField(op, \"specularIntensity\", .8, 0, 2);\n\tconst depthScaleInfo = resolveSignalField(op, \"depthScale\", 1, .1, 5);\n\tconst tintStrengthInfo = resolveSignalField(op, \"tintStrength\", 0, 0, 1);\n\tconst rippleSpeedInfo = resolveSignalField(op, \"rippleSpeed\", 1, 0, 5);\n\tconst getSigTextureView = (info, fallbackId) => {\n\t\tif (info.hasSignal && info.sd) return signalRegistry.getOrCreate2DTextureView(ctx.device, encoder, info.sd.nodeId ?? fallbackId, elapsedSeconds, durationSeconds, info.sd, width, height, props.renderId, frame, fps);\n\t\treturn signalRegistry.getDummy1x1TextureView(ctx.device);\n\t};\n\tconst sigIORView = getSigTextureView(iorInfo, \"refr_ior_sig\");\n\tconst sigDispersionView = getSigTextureView(dispersionInfo, \"refr_disp_sig\");\n\tconst sigRefractScaleView = getSigTextureView(refractScaleInfo, \"refr_scale_sig\");\n\tconst sigCausticView = getSigTextureView(causticInfo, \"refr_caust_sig\");\n\tconst sigRipplesView = getSigTextureView(ripplesInfo, \"refr_rip_sig\");\n\tconst sigRoughnessView = getSigTextureView(roughnessInfo, \"refr_rough_sig\");\n\tconst sigLightPosXView = getSigTextureView(lightPosXInfo, \"refr_lightx_sig\");\n\tconst sigLightPosYView = getSigTextureView(lightPosYInfo, \"refr_lighty_sig\");\n\tconst uniformData = new Float32Array(36);\n\tuniformData[0] = 0;\n\tuniformData[1] = iorInfo.value;\n\tuniformData[2] = dispersionInfo.value;\n\tuniformData[3] = refractScaleInfo.value;\n\tuniformData[4] = causticInfo.value;\n\tuniformData[5] = causticScaleInfo.value;\n\tuniformData[6] = ripplesInfo.value;\n\tuniformData[7] = rippleSpeedInfo.value;\n\tuniformData[8] = roughnessInfo.value;\n\tuniformData[9] = specularInfo.value;\n\tuniformData[10] = lightPosXInfo.value;\n\tuniformData[11] = lightPosYInfo.value;\n\tuniformData[12] = tintStrengthInfo.value;\n\tuniformData[13] = op.depthInvert ? 1 : 0;\n\tuniformData[14] = depthScaleInfo.value;\n\tuniformData[15] = hasDepthMap ? 1 : 0;\n\tuniformData[16] = timeProgress;\n\tuniformData[17] = width / Math.max(1, height);\n\tuniformData[18] = 0;\n\tuniformData[19] = 0;\n\tuniformData[20] = iorInfo.hasSignal ? 1 : 0;\n\tuniformData[21] = dispersionInfo.hasSignal ? 1 : 0;\n\tuniformData[22] = refractScaleInfo.hasSignal ? 1 : 0;\n\tuniformData[23] = causticInfo.hasSignal ? 1 : 0;\n\tuniformData[24] = ripplesInfo.hasSignal ? 1 : 0;\n\tuniformData[25] = roughnessInfo.hasSignal ? 1 : 0;\n\tuniformData[26] = lightPosXInfo.hasSignal ? 1 : 0;\n\tuniformData[27] = lightPosYInfo.hasSignal ? 1 : 0;\n\tuniformData[28] = 0;\n\tuniformData[29] = 0;\n\tuniformData[30] = 0;\n\tuniformData[31] = 0;\n\tconst tintParsed = parseColor(op.tintColor ?? \"#ffffff\");\n\tuniformData[32] = tintParsed.r;\n\tuniformData[33] = tintParsed.g;\n\tuniformData[34] = tintParsed.b;\n\tuniformData[35] = tintParsed.a;\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(uniformData);\n\tconst outTex = ctx.renderer.getTemporaryTexture(width, height, [\n\t\tsrcTex,\n\t\tdepthTex,\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, srcLayout, srcTex, sampler),\n\t\tctx.renderer.bindGroupCache.getBindGroup(ctx.device, depthLayout, depthTex, 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: sigIORView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 1,\n\t\t\t\t\tresource: sigDispersionView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 2,\n\t\t\t\t\tresource: sigRefractScaleView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 3,\n\t\t\t\t\tresource: sigCausticView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 4,\n\t\t\t\t\tresource: sigRipplesView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 5,\n\t\t\t\t\tresource: sigRoughnessView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 6,\n\t\t\t\t\tresource: sigLightPosXView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 7,\n\t\t\t\t\tresource: sigLightPosYView\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 8,\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: RefractionCaustics3DWebGPURenderer });\n\n//#endregion\nexport { RefractionCaustics3DWebGPURenderer as n, renderers_default as t };\n//# sourceMappingURL=renderers-BuTkLbVU.mjs.map"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { Jt as resolveNumber, Pt as isSignal } from "./dist-CbG3QxDw.mjs";
2
- import { n as defineRenderer } from "./renderer-CtVkU_GA.mjs";
3
- import { C as WebGPUAudioProcessor } from "./dist-Cxi68OuY.mjs";
1
+ import { Jt as resolveNumber, Pt as isSignal } from "./dist-fjKpBYkc.mjs";
2
+ import { n as defineRenderer } from "./renderer-BSitV56h.mjs";
3
+ import { g as WebGPUAudioProcessor } from "./dist-DkuDAIrG.mjs";
4
4
 
5
5
  //#region ../../nodes/node-stereo-panning/dist/renderers-Dc15sLt-.mjs
6
6
  const PARAM_ORDER = ["pan"];
@@ -96,4 +96,4 @@ var renderers_default = defineRenderer({ audioProcessor: stereoPanningAudioProce
96
96
 
97
97
  //#endregion
98
98
  export { renderers_default as t };
99
- //# sourceMappingURL=renderer-kwmlLQOO.mjs.map
99
+ //# sourceMappingURL=renderer-DVnVnS3c.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-kwmlLQOO.mjs","names":[],"sources":["../../../nodes/node-stereo-panning/dist/renderers-Dc15sLt-.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { isSignal, resolveNumber } from \"@framefields/node-sdk\";\nimport { WebGPUAudioProcessor } from \"@framefields/webgpu-renderers\";\n\n//#region src/renderers/audio-processor.ts\nconst PARAM_ORDER = [\"pan\"];\nconst PANNING_SHADER_TEMPLATE = () => `\nstruct Uniforms {\n sampleRate : f32,\n pan : f32,\n hasPanSig : f32,\n baseTime : f32,\n frame : f32,\n numSamples : f32,\n numChannels : f32,\n pad1 : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : Uniforms;\n@group(0) @binding(1) var<storage, read> inputChannels : array<f32>;\n@group(0) @binding(2) var<storage, read_write> outputChannels : array<f32>;\n@group(0) @binding(3) var<storage, read_write> state : array<f32>;\n@group(0) @binding(4) var<storage, read> panSignal : array<f32>;\n\n@compute @workgroup_size(1)\nfn main(@builtin(global_invocation_id) gid : vec3<u32>) {\n if (gid.x != 0u) { return; }\n\n let numSamples = u32(u.numSamples);\n let numChannels = u32(u.numChannels);\n\n for (var index = 0u; index < numSamples; index = index + 1u) {\n var currentPan = u.pan;\n if (u.hasPanSig > 0.5f) {\n currentPan = panSignal[index];\n }\n let clampedPan = max(-1.0f, min(1.0f, currentPan));\n var leftGain = 1.0f;\n var rightGain = 1.0f;\n\n if (clampedPan < 0.0f) {\n rightGain = 1.0f + clampedPan;\n } else if (clampedPan > 0.0f) {\n leftGain = 1.0f - clampedPan;\n }\n\n if (numChannels > 1u) {\n outputChannels[index] = inputChannels[index] * leftGain;\n outputChannels[numSamples + index] = inputChannels[numSamples + index] * rightGain;\n } else {\n outputChannels[index] = inputChannels[index] * leftGain;\n }\n }\n\n // Dummy reference to prevent state binding from being optimized out\n state[0] = state[0];\n}\n`;\nconst stereoPanningAudioProcessor = async (channels, sampleRate, node, ctx) => {\n\tif (!ctx?.device) throw new Error(\"GPUDevice is required for WebGPU Stereo Panning.\");\n\tconst op = node.operation || {};\n\tconst inputs = op.inputs || {};\n\tconst pan = resolveNumber(op.pan, 0);\n\tconst clampedPan = Math.max(-1, Math.min(1, pan));\n\tconst isHandleConnected = (handleIdKey) => {\n\t\tconst handleId = op[handleIdKey];\n\t\tif (typeof handleId !== \"string\" || !handleId) return false;\n\t\tconst input = inputs[handleId];\n\t\treturn Boolean(input?.connectionValid && input.outputItem && (input.outputItem.type === \"Signal\" || input.outputItem.type === \"Number\"));\n\t};\n\tconst hasPanSig = isSignal(op.pan) || isSignal(op.signals?.pan) || isHandleConnected(\"panHandleId\") ? 1 : 0;\n\tif (channels.length === 0) return;\n\tconst numSamples = channels[0].length;\n\tif (numSamples === 0) return;\n\tif (channels.length === 1) {\n\t\tconst rightChannel = new Float32Array(numSamples);\n\t\trightChannel.set(channels[0]);\n\t\tchannels.push(rightChannel);\n\t}\n\tconst numChannels = channels.length;\n\tconst nodeId = op.id || \"stereo-panning\";\n\tconst frame = ctx.frame ?? 0;\n\tconst fps = ctx.fps ?? 24;\n\tawait WebGPUAudioProcessor.process(ctx.device, nodeId, channels, sampleRate, node, frame, fps, PANNING_SHADER_TEMPLATE, () => [\n\t\tsampleRate,\n\t\tclampedPan,\n\t\thasPanSig,\n\t\t0,\n\t\tframe,\n\t\tnumSamples,\n\t\tnumChannels,\n\t\t0\n\t], 8, 1, ctx?.renderId, true, ctx?.elapsedMs, ctx?.durationMs, void 0, void 0, PARAM_ORDER);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ audioProcessor: stereoPanningAudioProcessor });\n\n//#endregion\nexport { renderers_default as t };\n//# sourceMappingURL=renderers-Dc15sLt-.mjs.map"],"mappings":";;;;;AAKA,MAAM,cAAc,CAAC,MAAM;AAC3B,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDtC,MAAM,8BAA8B,OAAO,UAAU,YAAY,MAAM,QAAQ;AAC9E,KAAI,CAAC,KAAK,OAAQ,OAAM,IAAI,MAAM,mDAAmD;CACrF,MAAM,KAAK,KAAK,aAAa,EAAE;CAC/B,MAAM,SAAS,GAAG,UAAU,EAAE;CAC9B,MAAM,MAAM,cAAc,GAAG,KAAK,EAAE;CACpC,MAAM,aAAa,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;CACjD,MAAM,qBAAqB,gBAAgB;EAC1C,MAAM,WAAW,GAAG;AACpB,MAAI,OAAO,aAAa,YAAY,CAAC,SAAU,QAAO;EACtD,MAAM,QAAQ,OAAO;AACrB,SAAO,QAAQ,OAAO,mBAAmB,MAAM,eAAe,MAAM,WAAW,SAAS,YAAY,MAAM,WAAW,SAAS,UAAU;;CAEzI,MAAM,YAAY,SAAS,GAAG,IAAI,IAAI,SAAS,GAAG,SAAS,IAAI,IAAI,kBAAkB,cAAc,GAAG,IAAI;AAC1G,KAAI,SAAS,WAAW,EAAG;CAC3B,MAAM,aAAa,SAAS,GAAG;AAC/B,KAAI,eAAe,EAAG;AACtB,KAAI,SAAS,WAAW,GAAG;EAC1B,MAAM,eAAe,IAAI,aAAa,WAAW;AACjD,eAAa,IAAI,SAAS,GAAG;AAC7B,WAAS,KAAK,aAAa;;CAE5B,MAAM,cAAc,SAAS;CAC7B,MAAM,SAAS,GAAG,MAAM;CACxB,MAAM,QAAQ,IAAI,SAAS;CAC3B,MAAM,MAAM,IAAI,OAAO;AACvB,OAAM,qBAAqB,QAAQ,IAAI,QAAQ,QAAQ,UAAU,YAAY,MAAM,OAAO,KAAK,+BAA+B;EAC7H;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,GAAG,GAAG,KAAK,UAAU,MAAM,KAAK,WAAW,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG,YAAY;;AAK5F,IAAI,oBAAoB,eAAe,EAAE,gBAAgB,6BAA6B,CAAC"}
1
+ {"version":3,"file":"renderer-DVnVnS3c.mjs","names":[],"sources":["../../../nodes/node-stereo-panning/dist/renderers-Dc15sLt-.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { isSignal, resolveNumber } from \"@framefields/node-sdk\";\nimport { WebGPUAudioProcessor } from \"@framefields/webgpu-renderers\";\n\n//#region src/renderers/audio-processor.ts\nconst PARAM_ORDER = [\"pan\"];\nconst PANNING_SHADER_TEMPLATE = () => `\nstruct Uniforms {\n sampleRate : f32,\n pan : f32,\n hasPanSig : f32,\n baseTime : f32,\n frame : f32,\n numSamples : f32,\n numChannels : f32,\n pad1 : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : Uniforms;\n@group(0) @binding(1) var<storage, read> inputChannels : array<f32>;\n@group(0) @binding(2) var<storage, read_write> outputChannels : array<f32>;\n@group(0) @binding(3) var<storage, read_write> state : array<f32>;\n@group(0) @binding(4) var<storage, read> panSignal : array<f32>;\n\n@compute @workgroup_size(1)\nfn main(@builtin(global_invocation_id) gid : vec3<u32>) {\n if (gid.x != 0u) { return; }\n\n let numSamples = u32(u.numSamples);\n let numChannels = u32(u.numChannels);\n\n for (var index = 0u; index < numSamples; index = index + 1u) {\n var currentPan = u.pan;\n if (u.hasPanSig > 0.5f) {\n currentPan = panSignal[index];\n }\n let clampedPan = max(-1.0f, min(1.0f, currentPan));\n var leftGain = 1.0f;\n var rightGain = 1.0f;\n\n if (clampedPan < 0.0f) {\n rightGain = 1.0f + clampedPan;\n } else if (clampedPan > 0.0f) {\n leftGain = 1.0f - clampedPan;\n }\n\n if (numChannels > 1u) {\n outputChannels[index] = inputChannels[index] * leftGain;\n outputChannels[numSamples + index] = inputChannels[numSamples + index] * rightGain;\n } else {\n outputChannels[index] = inputChannels[index] * leftGain;\n }\n }\n\n // Dummy reference to prevent state binding from being optimized out\n state[0] = state[0];\n}\n`;\nconst stereoPanningAudioProcessor = async (channels, sampleRate, node, ctx) => {\n\tif (!ctx?.device) throw new Error(\"GPUDevice is required for WebGPU Stereo Panning.\");\n\tconst op = node.operation || {};\n\tconst inputs = op.inputs || {};\n\tconst pan = resolveNumber(op.pan, 0);\n\tconst clampedPan = Math.max(-1, Math.min(1, pan));\n\tconst isHandleConnected = (handleIdKey) => {\n\t\tconst handleId = op[handleIdKey];\n\t\tif (typeof handleId !== \"string\" || !handleId) return false;\n\t\tconst input = inputs[handleId];\n\t\treturn Boolean(input?.connectionValid && input.outputItem && (input.outputItem.type === \"Signal\" || input.outputItem.type === \"Number\"));\n\t};\n\tconst hasPanSig = isSignal(op.pan) || isSignal(op.signals?.pan) || isHandleConnected(\"panHandleId\") ? 1 : 0;\n\tif (channels.length === 0) return;\n\tconst numSamples = channels[0].length;\n\tif (numSamples === 0) return;\n\tif (channels.length === 1) {\n\t\tconst rightChannel = new Float32Array(numSamples);\n\t\trightChannel.set(channels[0]);\n\t\tchannels.push(rightChannel);\n\t}\n\tconst numChannels = channels.length;\n\tconst nodeId = op.id || \"stereo-panning\";\n\tconst frame = ctx.frame ?? 0;\n\tconst fps = ctx.fps ?? 24;\n\tawait WebGPUAudioProcessor.process(ctx.device, nodeId, channels, sampleRate, node, frame, fps, PANNING_SHADER_TEMPLATE, () => [\n\t\tsampleRate,\n\t\tclampedPan,\n\t\thasPanSig,\n\t\t0,\n\t\tframe,\n\t\tnumSamples,\n\t\tnumChannels,\n\t\t0\n\t], 8, 1, ctx?.renderId, true, ctx?.elapsedMs, ctx?.durationMs, void 0, void 0, PARAM_ORDER);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ audioProcessor: stereoPanningAudioProcessor });\n\n//#endregion\nexport { renderers_default as t };\n//# sourceMappingURL=renderers-Dc15sLt-.mjs.map"],"mappings":";;;;;AAKA,MAAM,cAAc,CAAC,MAAM;AAC3B,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDtC,MAAM,8BAA8B,OAAO,UAAU,YAAY,MAAM,QAAQ;AAC9E,KAAI,CAAC,KAAK,OAAQ,OAAM,IAAI,MAAM,mDAAmD;CACrF,MAAM,KAAK,KAAK,aAAa,EAAE;CAC/B,MAAM,SAAS,GAAG,UAAU,EAAE;CAC9B,MAAM,MAAM,cAAc,GAAG,KAAK,EAAE;CACpC,MAAM,aAAa,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;CACjD,MAAM,qBAAqB,gBAAgB;EAC1C,MAAM,WAAW,GAAG;AACpB,MAAI,OAAO,aAAa,YAAY,CAAC,SAAU,QAAO;EACtD,MAAM,QAAQ,OAAO;AACrB,SAAO,QAAQ,OAAO,mBAAmB,MAAM,eAAe,MAAM,WAAW,SAAS,YAAY,MAAM,WAAW,SAAS,UAAU;;CAEzI,MAAM,YAAY,SAAS,GAAG,IAAI,IAAI,SAAS,GAAG,SAAS,IAAI,IAAI,kBAAkB,cAAc,GAAG,IAAI;AAC1G,KAAI,SAAS,WAAW,EAAG;CAC3B,MAAM,aAAa,SAAS,GAAG;AAC/B,KAAI,eAAe,EAAG;AACtB,KAAI,SAAS,WAAW,GAAG;EAC1B,MAAM,eAAe,IAAI,aAAa,WAAW;AACjD,eAAa,IAAI,SAAS,GAAG;AAC7B,WAAS,KAAK,aAAa;;CAE5B,MAAM,cAAc,SAAS;CAC7B,MAAM,SAAS,GAAG,MAAM;CACxB,MAAM,QAAQ,IAAI,SAAS;CAC3B,MAAM,MAAM,IAAI,OAAO;AACvB,OAAM,qBAAqB,QAAQ,IAAI,QAAQ,QAAQ,UAAU,YAAY,MAAM,OAAO,KAAK,+BAA+B;EAC7H;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,GAAG,GAAG,KAAK,UAAU,MAAM,KAAK,WAAW,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG,YAAY;;AAK5F,IAAI,oBAAoB,eAAe,EAAE,gBAAgB,6BAA6B,CAAC"}