framefields 2.2.0-beta.3 → 2.2.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 (251) hide show
  1. package/dist/audio/index.d.mts +4 -4
  2. package/dist/audio/index.mjs +10 -10
  3. package/dist/{audio-1QquqDJs.d.mts → audio-BvYmTu5T.d.mts} +3 -3
  4. package/dist/{audio-1QquqDJs.d.mts.map → audio-BvYmTu5T.d.mts.map} +1 -1
  5. package/dist/{audio-BYqbtdH8.mjs → audio-DMUr01vS.mjs} +3 -3
  6. package/dist/{audio-BYqbtdH8.mjs.map → audio-DMUr01vS.mjs.map} +1 -1
  7. package/dist/{dist-BLbXEC6V.mjs → dist-CT___nEU.mjs} +3 -5
  8. package/dist/dist-CT___nEU.mjs.map +1 -0
  9. package/dist/{dist-DQlYw4eG.mjs → dist-cjxDXQdx.mjs} +49 -48
  10. package/dist/dist-cjxDXQdx.mjs.map +1 -0
  11. package/dist/effects/index.d.mts +4 -4
  12. package/dist/effects/index.mjs +34 -34
  13. package/dist/{effects-DgpPr38s.mjs → effects-C06-AOge.mjs} +2 -2
  14. package/dist/{effects-DgpPr38s.mjs.map → effects-C06-AOge.mjs.map} +1 -1
  15. package/dist/fonts/index.mjs +2 -2
  16. package/dist/{fonts-DakFEiDw.mjs → fonts-C0UuLQvr.mjs} +2 -2
  17. package/dist/{fonts-DakFEiDw.mjs.map → fonts-C0UuLQvr.mjs.map} +1 -1
  18. package/dist/{gpu-AbcLcr1f.mjs → gpu-Du7GpVFW.mjs} +2 -2
  19. package/dist/{gpu-AbcLcr1f.mjs.map → gpu-Du7GpVFW.mjs.map} +1 -1
  20. package/dist/{index--1jnkoBj.d.mts → index-B-oUlLoO.d.mts} +7 -1
  21. package/dist/index-B-oUlLoO.d.mts.map +1 -0
  22. package/dist/{index-CaZfxDXx.d.mts → index-CdyE1tst.d.mts} +3 -3
  23. package/dist/{index-CaZfxDXx.d.mts.map → index-CdyE1tst.d.mts.map} +1 -1
  24. package/dist/{index-YSmPWdZw.d.mts → index-CwbszPDG.d.mts} +4 -4
  25. package/dist/{index-YSmPWdZw.d.mts.map → index-CwbszPDG.d.mts.map} +1 -1
  26. package/dist/{index-BqzHDFkU.d.mts → index-D-Iek5sq.d.mts} +3 -3
  27. package/dist/{index-BqzHDFkU.d.mts.map → index-D-Iek5sq.d.mts.map} +1 -1
  28. package/dist/{index-D6_KcajH.d.mts → index-DXfp_T-3.d.mts} +2 -2
  29. package/dist/{index-D6_KcajH.d.mts.map → index-DXfp_T-3.d.mts.map} +1 -1
  30. package/dist/{index-DgJIBC_N.d.mts → index-XdQPNJnq.d.mts} +3 -3
  31. package/dist/index-XdQPNJnq.d.mts.map +1 -0
  32. package/dist/index.d.mts +8 -8
  33. package/dist/index.mjs +48 -48
  34. package/dist/preview/index.d.mts +2 -2
  35. package/dist/preview/index.mjs +10 -10
  36. package/dist/{preview-QjhWe5QE.mjs → preview-M0TsUzC6.mjs} +2 -2
  37. package/dist/{preview-QjhWe5QE.mjs.map → preview-M0TsUzC6.mjs.map} +1 -1
  38. package/dist/preview-engine/audio.mjs +1 -1
  39. package/dist/preview-engine/chunk-2SJ4BBMT.mjs +1 -0
  40. package/dist/preview-engine/{chunk-N4OG2BHX.mjs → chunk-3T4LB4ZH.mjs} +1 -1
  41. package/dist/preview-engine/{chunk-FJH5A2PV.mjs → chunk-7B5S5D4N.mjs} +1 -1
  42. package/dist/preview-engine/{chunk-2W4BMOAZ.mjs → chunk-G4K6TLNA.mjs} +1 -1
  43. package/dist/preview-engine/{chunk-XHDUZY7Y.mjs → chunk-HVCAOHNI.mjs} +1 -1
  44. package/dist/preview-engine/{chunk-5MSAA3DL.mjs → chunk-KBO6EX3M.mjs} +1 -1
  45. package/dist/preview-engine/{chunk-AKMCLVJ6.mjs → chunk-LQBDZSQD.mjs} +1 -1
  46. package/dist/preview-engine/chunk-NIRW77QA.mjs +58 -0
  47. package/dist/preview-engine/{chunk-MOW55DX2.mjs → chunk-QXCY2ATH.mjs} +1 -1
  48. package/dist/preview-engine/chunk-XN56POGE.mjs +1 -0
  49. package/dist/preview-engine/{chunk-3NXJVSZY.mjs → chunk-ZTHWCQ2A.mjs} +2 -2
  50. package/dist/preview-engine/effects.mjs +1 -1
  51. package/dist/preview-engine/fonts.mjs +1 -1
  52. package/dist/preview-engine/framefields.mjs +1 -1
  53. package/dist/preview-engine/player.mjs +5 -5
  54. package/dist/preview-engine/{renderers-UHYNEWQD.mjs → renderers-3SRG77SC.mjs} +1 -1
  55. package/dist/preview-engine/{renderers-OZYUGZG7.mjs → renderers-VUL4HBX3.mjs} +2 -2
  56. package/dist/preview-engine/signals.mjs +1 -1
  57. package/dist/{program-Cc_2_YXn.mjs → program-DzknMiY0.mjs} +2 -2
  58. package/dist/{program-Cc_2_YXn.mjs.map → program-DzknMiY0.mjs.map} +1 -1
  59. package/dist/renderer/index.d.mts +2 -2
  60. package/dist/renderer/index.mjs +2 -2
  61. package/dist/renderer--IDyGdqT.mjs +5 -0
  62. package/dist/{renderer-CZ9gHx-4.mjs → renderer-0gY4IQhM.mjs} +2 -2
  63. package/dist/{renderer-CZ9gHx-4.mjs.map → renderer-0gY4IQhM.mjs.map} +1 -1
  64. package/dist/renderer-17K4tjid.mjs +5 -0
  65. package/dist/{renderer-CivH0UuT.mjs → renderer-1vhaKMeg.mjs} +55 -54
  66. package/dist/{renderer-CivH0UuT.mjs.map → renderer-1vhaKMeg.mjs.map} +1 -1
  67. package/dist/{renderer-Bfrwo_It.mjs → renderer-57ATc_mQ.mjs} +2 -2
  68. package/dist/{renderer-Bfrwo_It.mjs.map → renderer-57ATc_mQ.mjs.map} +1 -1
  69. package/dist/{renderer-CSfLMXN8.mjs → renderer-AF884a7T.mjs} +3 -3
  70. package/dist/{renderer-CSfLMXN8.mjs.map → renderer-AF884a7T.mjs.map} +1 -1
  71. package/dist/renderer-Ab9Ttn_m.mjs +5 -0
  72. package/dist/renderer-B-roDBBo.mjs +5 -0
  73. package/dist/renderer-B03uwoUX.mjs +5 -0
  74. package/dist/renderer-B3BI_7YJ.mjs +5 -0
  75. package/dist/{renderer-B4cnT3ce.mjs → renderer-BC8XOVl5.mjs} +3 -3
  76. package/dist/{renderer-B4cnT3ce.mjs.map → renderer-BC8XOVl5.mjs.map} +1 -1
  77. package/dist/renderer-BGD4lQ74.mjs +5 -0
  78. package/dist/renderer-BHXhYfeC.mjs +5 -0
  79. package/dist/{renderer-ClWgdN2v.mjs → renderer-BHskWZNG.mjs} +2 -2
  80. package/dist/{renderer-C4UqxwcT.mjs → renderer-BNqwn0gZ.mjs} +2 -2
  81. package/dist/{renderer-C4UqxwcT.mjs.map → renderer-BNqwn0gZ.mjs.map} +1 -1
  82. package/dist/renderer-BRsTIMFa.mjs +5 -0
  83. package/dist/{renderer-BO-7bYa5.d.mts → renderer-BT-_EoXw.d.mts} +2 -2
  84. package/dist/{renderer-BO-7bYa5.d.mts.map → renderer-BT-_EoXw.d.mts.map} +1 -1
  85. package/dist/{renderer-CB87_0vL.mjs → renderer-BbdZ0YHR.mjs} +3 -3
  86. package/dist/{renderer-CB87_0vL.mjs.map → renderer-BbdZ0YHR.mjs.map} +1 -1
  87. package/dist/{renderer-sHDPBywo.mjs → renderer-BeIUgp1r.mjs} +2 -2
  88. package/dist/{renderer-sHDPBywo.mjs.map → renderer-BeIUgp1r.mjs.map} +1 -1
  89. package/dist/{renderer-FgcNOe1R.mjs → renderer-Beg7FLt2.mjs} +5 -5
  90. package/dist/{renderer-FgcNOe1R.mjs.map → renderer-Beg7FLt2.mjs.map} +1 -1
  91. package/dist/{renderer-Cv1wmjhA.mjs → renderer-BerD3T-X.mjs} +2 -2
  92. package/dist/{renderer-Cv1wmjhA.mjs.map → renderer-BerD3T-X.mjs.map} +1 -1
  93. package/dist/{renderer-CK0u3Psf.mjs → renderer-BiwIh_w4.mjs} +3 -3
  94. package/dist/{renderer-CK0u3Psf.mjs.map → renderer-BiwIh_w4.mjs.map} +1 -1
  95. package/dist/renderer-BjMTtYZw.mjs +5 -0
  96. package/dist/{renderer-dwTzrQ2G.mjs → renderer-BmGPTWwV.mjs} +3 -3
  97. package/dist/{renderer-dwTzrQ2G.mjs.map → renderer-BmGPTWwV.mjs.map} +1 -1
  98. package/dist/{renderer-DfSRmz7q.mjs → renderer-Bn2eQE-t.mjs} +3 -3
  99. package/dist/{renderer-DfSRmz7q.mjs.map → renderer-Bn2eQE-t.mjs.map} +1 -1
  100. package/dist/renderer-BoCh3Yts.mjs +5 -0
  101. package/dist/renderer-BqPbR8c4.mjs +5 -0
  102. package/dist/{renderer-BPMywsr4.mjs → renderer-Br6KyRO_.mjs} +3 -3
  103. package/dist/{renderer-BPMywsr4.mjs.map → renderer-Br6KyRO_.mjs.map} +1 -1
  104. package/dist/{renderer-DU3216cx.mjs → renderer-BteUC_7n.mjs} +3 -3
  105. package/dist/{renderer-DU3216cx.mjs.map → renderer-BteUC_7n.mjs.map} +1 -1
  106. package/dist/{renderer-DwCg5pXn.mjs → renderer-Bvx56GR6.mjs} +2 -2
  107. package/dist/{renderer-DwCg5pXn.mjs.map → renderer-Bvx56GR6.mjs.map} +1 -1
  108. package/dist/{renderer-4GYrnTfw.mjs → renderer-BzDjy1_x.mjs} +2 -2
  109. package/dist/{renderer-4GYrnTfw.mjs.map → renderer-BzDjy1_x.mjs.map} +1 -1
  110. package/dist/renderer-C4Da2I1-.mjs +5 -0
  111. package/dist/{renderer-CD38wGmN.mjs → renderer-C6md3msE.mjs} +2 -2
  112. package/dist/{renderer-CD38wGmN.mjs.map → renderer-C6md3msE.mjs.map} +1 -1
  113. package/dist/{renderer-CHkqgIOL.mjs → renderer-C8uKdelk.mjs} +2 -2
  114. package/dist/{renderer-CHkqgIOL.mjs.map → renderer-C8uKdelk.mjs.map} +1 -1
  115. package/dist/renderer-C93X6dgl.mjs +5 -0
  116. package/dist/{renderer-CciB_sav.mjs → renderer-CJB9nU1x.mjs} +3 -3
  117. package/dist/{renderer-CciB_sav.mjs.map → renderer-CJB9nU1x.mjs.map} +1 -1
  118. package/dist/renderer-CMAwFfGx.mjs +6 -0
  119. package/dist/{renderer-CPW9o3Lc.mjs → renderer-CMT4QcpV.mjs} +3 -3
  120. package/dist/{renderer-CPW9o3Lc.mjs.map → renderer-CMT4QcpV.mjs.map} +1 -1
  121. package/dist/renderer-CRXeSuX2.mjs +5 -0
  122. package/dist/renderer-CSp6WYBN.mjs +5 -0
  123. package/dist/renderer-CUXX7HTL.mjs +5 -0
  124. package/dist/renderer-CUgThpka.mjs +5 -0
  125. package/dist/{renderer-BKd2nRnO.mjs → renderer-CWBHVCvA.mjs} +2 -2
  126. package/dist/{renderer-BKd2nRnO.mjs.map → renderer-CWBHVCvA.mjs.map} +1 -1
  127. package/dist/{renderer-B5PFBOjv.mjs → renderer-Cce2fgpX.mjs} +3 -3
  128. package/dist/{renderer-B5PFBOjv.mjs.map → renderer-Cce2fgpX.mjs.map} +1 -1
  129. package/dist/renderer-CeVtufiT.mjs +5 -0
  130. package/dist/{renderer-egZPy7vq.mjs → renderer-CebB0v1y.mjs} +2 -2
  131. package/dist/{renderer-egZPy7vq.mjs.map → renderer-CebB0v1y.mjs.map} +1 -1
  132. package/dist/renderer-CespkZUk.mjs +5 -0
  133. package/dist/{renderer-Dyh8c41v.mjs → renderer-CeyAgJnw.mjs} +2 -2
  134. package/dist/{renderer-CGZqCmf2.mjs → renderer-CrABA3lB.mjs} +2 -2
  135. package/dist/{renderer-CGZqCmf2.mjs.map → renderer-CrABA3lB.mjs.map} +1 -1
  136. package/dist/{renderer-DU6i7shO.mjs → renderer-CuVPo-wP.mjs} +2 -2
  137. package/dist/{renderer-DU6i7shO.mjs.map → renderer-CuVPo-wP.mjs.map} +1 -1
  138. package/dist/{renderer-DEQ09sg7.mjs → renderer-CursFKUf.mjs} +2 -2
  139. package/dist/{renderer-DEQ09sg7.mjs.map → renderer-CursFKUf.mjs.map} +1 -1
  140. package/dist/{renderer-DT3QVVht.mjs → renderer-D-vRKssW.mjs} +2 -2
  141. package/dist/{renderer-DT3QVVht.mjs.map → renderer-D-vRKssW.mjs.map} +1 -1
  142. package/dist/{renderer-DqhZTIiC.mjs → renderer-D1Cm21eq.mjs} +2 -2
  143. package/dist/{renderer-DqhZTIiC.mjs.map → renderer-D1Cm21eq.mjs.map} +1 -1
  144. package/dist/renderer-D1l47xhL.mjs +5 -0
  145. package/dist/{renderer-PbJk25JW.mjs → renderer-D8thCpS7.mjs} +3 -3
  146. package/dist/{renderer-PbJk25JW.mjs.map → renderer-D8thCpS7.mjs.map} +1 -1
  147. package/dist/{renderer-BNcsS03m.mjs → renderer-DD8napek.mjs} +2 -2
  148. package/dist/{renderer-BNcsS03m.mjs.map → renderer-DD8napek.mjs.map} +1 -1
  149. package/dist/renderer-DDuG18J8.mjs +5 -0
  150. package/dist/{renderer-gwV6hyYm.mjs → renderer-DEuIwr-t.mjs} +2 -2
  151. package/dist/{renderer-gwV6hyYm.mjs.map → renderer-DEuIwr-t.mjs.map} +1 -1
  152. package/dist/renderer-DFhrFSMn.mjs +5 -0
  153. package/dist/{renderer-DlqDnh-8.mjs → renderer-DHGTzype.mjs} +2 -2
  154. package/dist/{renderer-DlqDnh-8.mjs.map → renderer-DHGTzype.mjs.map} +1 -1
  155. package/dist/{renderer-DkGODUgE.mjs → renderer-DJfFc-XW.mjs} +3 -3
  156. package/dist/{renderer-DkGODUgE.mjs.map → renderer-DJfFc-XW.mjs.map} +1 -1
  157. package/dist/renderer-DO48vQ7Y.mjs +5 -0
  158. package/dist/renderer-DTC39B_n.mjs +5 -0
  159. package/dist/{renderer-L7UTxwZT.mjs → renderer-DXqIslFk.mjs} +2 -2
  160. package/dist/{renderer-L7UTxwZT.mjs.map → renderer-DXqIslFk.mjs.map} +1 -1
  161. package/dist/{renderer-C2eBC0FB.mjs → renderer-DZXbgVMK.mjs} +3 -3
  162. package/dist/{renderer-C2eBC0FB.mjs.map → renderer-DZXbgVMK.mjs.map} +1 -1
  163. package/dist/{renderer-Cxh7j423.mjs → renderer-Db3JIF1K.mjs} +3 -3
  164. package/dist/{renderer-Cxh7j423.mjs.map → renderer-Db3JIF1K.mjs.map} +1 -1
  165. package/dist/renderer-DbyU3hNF.mjs +5 -0
  166. package/dist/renderer-DftVpmfu.mjs +5 -0
  167. package/dist/renderer-Dj5jm63K.mjs +5 -0
  168. package/dist/renderer-Dju57ZaF.mjs +5 -0
  169. package/dist/renderer-Dn8TQCw7.mjs +5 -0
  170. package/dist/{renderer-C6u-XrH-.mjs → renderer-DpW_LxLO.mjs} +3 -3
  171. package/dist/{renderer-C6u-XrH-.mjs.map → renderer-DpW_LxLO.mjs.map} +1 -1
  172. package/dist/{renderer-CSoyJ8GH.mjs → renderer-DqdhsSwS.mjs} +2 -2
  173. package/dist/{renderer-CSoyJ8GH.mjs.map → renderer-DqdhsSwS.mjs.map} +1 -1
  174. package/dist/{renderer-2DjggBBS.mjs → renderer-DtgMsjyL.mjs} +2 -2
  175. package/dist/{renderer-2DjggBBS.mjs.map → renderer-DtgMsjyL.mjs.map} +1 -1
  176. package/dist/{renderer-DppnY7RT.mjs → renderer-DupsdRIw.mjs} +3 -3
  177. package/dist/{renderer-DppnY7RT.mjs.map → renderer-DupsdRIw.mjs.map} +1 -1
  178. package/dist/{renderer-BN0CzoG_.mjs → renderer-DvFaC_-7.mjs} +2 -2
  179. package/dist/{renderer-BN0CzoG_.mjs.map → renderer-DvFaC_-7.mjs.map} +1 -1
  180. package/dist/renderer-ETF46K0D.mjs +5 -0
  181. package/dist/{renderer-dj3f8cMg.mjs → renderer-EemDpvv3.mjs} +3 -3
  182. package/dist/{renderer-dj3f8cMg.mjs.map → renderer-EemDpvv3.mjs.map} +1 -1
  183. package/dist/{renderer-n2kYIGtb.mjs → renderer-KnCcN_Nz.mjs} +2 -2
  184. package/dist/{renderer-n2kYIGtb.mjs.map → renderer-KnCcN_Nz.mjs.map} +1 -1
  185. package/dist/{renderer-scbJx-Dx.mjs → renderer-PKQNH21k.mjs} +2 -2
  186. package/dist/{renderer-CO4theVJ.mjs → renderer-YbaCzPcG.mjs} +2 -2
  187. package/dist/{renderer-BhxQzrHF.mjs → renderer-aArb4RwJ.mjs} +2 -2
  188. package/dist/{renderer-BhxQzrHF.mjs.map → renderer-aArb4RwJ.mjs.map} +1 -1
  189. package/dist/renderer-azYzWGC3.mjs +5 -0
  190. package/dist/renderer-dxNoRW59.mjs +5 -0
  191. package/dist/renderer-fdfelx_I.mjs +5 -0
  192. package/dist/{renderer-BEzUirF0.mjs → renderer-id8TbKBY.mjs} +2 -2
  193. package/dist/{renderer-BEzUirF0.mjs.map → renderer-id8TbKBY.mjs.map} +1 -1
  194. package/dist/{renderer-Dnm_SVy6.mjs → renderer-jYxN4mHn.mjs} +3 -3
  195. package/dist/{renderer-Dnm_SVy6.mjs.map → renderer-jYxN4mHn.mjs.map} +1 -1
  196. package/dist/{renderer-lXmtdrdI.mjs → renderer-jqByPgkD.mjs} +2 -2
  197. package/dist/{renderer-lXmtdrdI.mjs.map → renderer-jqByPgkD.mjs.map} +1 -1
  198. package/dist/{renderer-DRpIQFAK.mjs → renderer-p_C_T9Kn.mjs} +2 -2
  199. package/dist/{renderer-DRpIQFAK.mjs.map → renderer-p_C_T9Kn.mjs.map} +1 -1
  200. package/dist/renderer-snwEKwMw.mjs +5 -0
  201. package/dist/{renderer-D0enmulV.mjs → renderer-u8ynJtAC.mjs} +2 -2
  202. package/dist/{renderer-D0enmulV.mjs.map → renderer-u8ynJtAC.mjs.map} +1 -1
  203. package/dist/{renderers-CP8CFWDs-B8HIr3kj.mjs → renderers-CP8CFWDs-BA-4l6By.mjs} +2 -2
  204. package/dist/{renderers-CP8CFWDs-B8HIr3kj.mjs.map → renderers-CP8CFWDs-BA-4l6By.mjs.map} +1 -1
  205. package/dist/signals/index.d.mts +5 -5
  206. package/dist/signals/index.mjs +4 -4
  207. package/package.json +58 -58
  208. package/dist/dist-BLbXEC6V.mjs.map +0 -1
  209. package/dist/dist-DQlYw4eG.mjs.map +0 -1
  210. package/dist/index--1jnkoBj.d.mts.map +0 -1
  211. package/dist/index-DgJIBC_N.d.mts.map +0 -1
  212. package/dist/preview-engine/chunk-4VOHF3FF.mjs +0 -1
  213. package/dist/preview-engine/chunk-ATLWPS6N.mjs +0 -1
  214. package/dist/preview-engine/chunk-HYBAPT6I.mjs +0 -1
  215. package/dist/preview-engine/chunk-XETMNJVV.mjs +0 -58
  216. package/dist/renderer-9ETXaINw.mjs +0 -5
  217. package/dist/renderer-B3MVDN_e.mjs +0 -5
  218. package/dist/renderer-B6iUuWcx.mjs +0 -6
  219. package/dist/renderer-B8IdU-7S.mjs +0 -5
  220. package/dist/renderer-BEGJCxuL.mjs +0 -5
  221. package/dist/renderer-BLAkNFx7.mjs +0 -5
  222. package/dist/renderer-BVNhv2ft.mjs +0 -5
  223. package/dist/renderer-BaXTEIe0.mjs +0 -5
  224. package/dist/renderer-BjeA7s36.mjs +0 -5
  225. package/dist/renderer-BtGNxEay.mjs +0 -5
  226. package/dist/renderer-BvZg2RJG.mjs +0 -5
  227. package/dist/renderer-CLW6tUUn.mjs +0 -5
  228. package/dist/renderer-CS-ojgJk.mjs +0 -5
  229. package/dist/renderer-CUQtKECw.mjs +0 -5
  230. package/dist/renderer-CV-l8wMq.mjs +0 -5
  231. package/dist/renderer-CV7_ALA5.mjs +0 -5
  232. package/dist/renderer-CVR6T6Lp.mjs +0 -5
  233. package/dist/renderer-CtUF95UW.mjs +0 -5
  234. package/dist/renderer-D8ymQoTB.mjs +0 -5
  235. package/dist/renderer-D9x3UE1Y.mjs +0 -5
  236. package/dist/renderer-DAEXqa2Q.mjs +0 -5
  237. package/dist/renderer-DDhU9Goq.mjs +0 -5
  238. package/dist/renderer-DcCKath2.mjs +0 -5
  239. package/dist/renderer-DiBphLzn.mjs +0 -5
  240. package/dist/renderer-Diq9Z7gZ.mjs +0 -5
  241. package/dist/renderer-DjZiO7iA.mjs +0 -5
  242. package/dist/renderer-Dtj6o-74.mjs +0 -5
  243. package/dist/renderer-Duaam6bJ.mjs +0 -5
  244. package/dist/renderer-FHqZe3K1.mjs +0 -5
  245. package/dist/renderer-FTKfOejk.mjs +0 -5
  246. package/dist/renderer-LmbkN82X.mjs +0 -5
  247. package/dist/renderer-SDspl6p-.mjs +0 -5
  248. package/dist/renderer-SWVUDypd.mjs +0 -5
  249. package/dist/renderer-WhpTBwDM.mjs +0 -5
  250. package/dist/renderer-WrpQEVdv.mjs +0 -5
  251. package/dist/renderer-r4ney0FZ.mjs +0 -5
@@ -1,5 +1,5 @@
1
1
  import { n as defineRenderer } from "./renderer-BSitV56h.mjs";
2
- import { U as parseColor } from "./dist-DQlYw4eG.mjs";
2
+ import { W as parseColor } from "./dist-cjxDXQdx.mjs";
3
3
 
4
4
  //#region ../../nodes/node-paint/dist/renderers-Cp52luA9.mjs
5
5
  const PaintWebGPURenderer = async (args) => {
@@ -142,4 +142,4 @@ var renderers_default = defineRenderer({ WebGPURenderer: PaintWebGPURenderer });
142
142
 
143
143
  //#endregion
144
144
  export { renderers_default as t };
145
- //# sourceMappingURL=renderer-BhxQzrHF.mjs.map
145
+ //# sourceMappingURL=renderer-aArb4RwJ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-BhxQzrHF.mjs","names":[],"sources":["../../../nodes/node-paint/dist/renderers-Cp52luA9.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { parseColor } from \"@framefields/webgpu-renderers\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst PaintWebGPURenderer = async (args) => {\n\tconst { ctx, pass, targetView, targetTexture, targetWidth, targetHeight, encoder, props, drawChild } = args;\n\tconst { virtualMedia } = props;\n\tif (virtualMedia.operation?.op !== \"Paint\") return;\n\tconst childMedia = virtualMedia?.children?.[0];\n\tconst containerW = props.containerWidth ?? childMedia?.metadata?.width ?? targetWidth;\n\tconst containerH = props.containerHeight ?? childMedia?.metadata?.height ?? targetHeight;\n\tconst config = virtualMedia.operation;\n\tconst isMaskMode = config.mode === \"mask\";\n\tconst strokes = config.strokes ?? [];\n\tpass.end();\n\tctx.renderer.pushIdentity();\n\tconst baseTex = ctx.renderer.getTemporaryTexture(containerW, containerH, [...props.excludeTextures || [], targetTexture]);\n\tconst baseView = baseTex.createView();\n\tif (isMaskMode) ctx.renderer.beginFrame(encoder, baseView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 1\n\t}, containerW, containerH, \"clear\").end();\n\telse if (childMedia) await drawChild(childMedia, props, baseView, baseTex, containerW, containerH);\n\telse {\n\t\tconst basePass = ctx.renderer.beginFrame(encoder, baseView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, containerW, containerH, \"clear\");\n\t\tif (config.backgroundColor) ctx.renderer.drawRect(basePass, {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: containerW,\n\t\t\theight: containerH\n\t\t}, config.backgroundColor);\n\t\tbasePass.end();\n\t}\n\tlet finalTex = baseTex;\n\tif (strokes.length > 0) {\n\t\tconst origW = childMedia?.metadata?.width ?? containerW;\n\t\tconst origH = childMedia?.metadata?.height ?? containerH;\n\t\tconst scaleX = origW > 0 ? containerW / origW : 1;\n\t\tconst scaleY = origH > 0 ? containerH / origH : 1;\n\t\tlet scalePushed = false;\n\t\tif (scaleX !== 1 || scaleY !== 1) {\n\t\t\tctx.renderer.pushTransform(new DOMMatrix().scale(scaleX, scaleY));\n\t\t\tscalePushed = true;\n\t\t}\n\t\tconst paintTex = ctx.renderer.getTemporaryTexture(containerW, containerH, [\n\t\t\tbaseTex,\n\t\t\ttargetTexture,\n\t\t\t...props.excludeTextures || []\n\t\t]);\n\t\tconst paintView = paintTex.createView();\n\t\tctx.renderer.beginFrame(encoder, paintView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, containerW, containerH, \"clear\").end();\n\t\tconst allStrokes = strokes;\n\t\tlet currentLayer = paintTex;\n\t\tlet currentPass = null;\n\t\tfor (const stroke of allStrokes) if (stroke.tool === \"brush\") {\n\t\t\tif (!currentPass) currentPass = ctx.renderer.beginFrame(encoder, currentLayer.createView(), {\n\t\t\t\tr: 0,\n\t\t\t\tg: 0,\n\t\t\t\tb: 0,\n\t\t\t\ta: 0\n\t\t\t}, containerW, containerH, \"load\");\n\t\t\tconst parsedColor = parseColor(stroke.color);\n\t\t\tconst drawColor = isMaskMode ? {\n\t\t\t\tr: parsedColor.a,\n\t\t\t\tg: parsedColor.a,\n\t\t\t\tb: parsedColor.a,\n\t\t\t\ta: parsedColor.a\n\t\t\t} : {\n\t\t\t\tr: parsedColor.r * parsedColor.a,\n\t\t\t\tg: parsedColor.g * parsedColor.a,\n\t\t\t\tb: parsedColor.b * parsedColor.a,\n\t\t\t\ta: parsedColor.a\n\t\t\t};\n\t\t\tctx.renderer.drawPath(currentPass, stroke.path, drawColor, stroke.size, {\n\t\t\t\topacity: stroke.opacity ?? 1,\n\t\t\t\tblendMode: \"max\"\n\t\t\t});\n\t\t} else if (stroke.tool === \"eraser\") {\n\t\t\tif (currentPass) {\n\t\t\t\tcurrentPass.end();\n\t\t\t\tcurrentPass = null;\n\t\t\t}\n\t\t\tconst maskTex = ctx.renderer.getTemporaryTexture(containerW, containerH, [\n\t\t\t\tbaseTex,\n\t\t\t\tpaintTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...props.excludeTextures || []\n\t\t\t]);\n\t\t\tconst maskView = maskTex.createView();\n\t\t\tconst maskPass = ctx.renderer.beginFrame(encoder, maskView, {\n\t\t\t\tr: 0,\n\t\t\t\tg: 0,\n\t\t\t\tb: 0,\n\t\t\t\ta: 0\n\t\t\t}, containerW, containerH, \"clear\");\n\t\t\tctx.renderer.drawPath(maskPass, stroke.path, \"#ffffff\", stroke.size, { blendMode: \"max\" });\n\t\t\tmaskPass.end();\n\t\t\tcurrentLayer = ctx.renderer.composite(encoder, currentLayer, maskTex, \"mask-out\", [\n\t\t\t\tbaseTex,\n\t\t\t\tpaintTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...props.excludeTextures || []\n\t\t\t]);\n\t\t}\n\t\tif (currentPass) currentPass.end();\n\t\tfinalTex = ctx.renderer.composite(encoder, baseTex, currentLayer, \"normal\", [\n\t\t\tbaseTex,\n\t\t\tcurrentLayer,\n\t\t\ttargetTexture,\n\t\t\t...props.excludeTextures || []\n\t\t]);\n\t\tif (scalePushed) ctx.renderer.popTransform();\n\t}\n\tctx.renderer.popTransform();\n\tconst finalPass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, targetWidth, targetHeight, \"load\");\n\tctx.renderer.drawTexture(finalPass, finalTex, {\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth: containerW,\n\t\theight: containerH\n\t});\n\targs.pass = finalPass;\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: PaintWebGPURenderer });\n\n//#endregion\nexport { renderers_default as t };\n//# sourceMappingURL=renderers-Cp52luA9.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"renderer-aArb4RwJ.mjs","names":[],"sources":["../../../nodes/node-paint/dist/renderers-Cp52luA9.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { parseColor } from \"@framefields/webgpu-renderers\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst PaintWebGPURenderer = async (args) => {\n\tconst { ctx, pass, targetView, targetTexture, targetWidth, targetHeight, encoder, props, drawChild } = args;\n\tconst { virtualMedia } = props;\n\tif (virtualMedia.operation?.op !== \"Paint\") return;\n\tconst childMedia = virtualMedia?.children?.[0];\n\tconst containerW = props.containerWidth ?? childMedia?.metadata?.width ?? targetWidth;\n\tconst containerH = props.containerHeight ?? childMedia?.metadata?.height ?? targetHeight;\n\tconst config = virtualMedia.operation;\n\tconst isMaskMode = config.mode === \"mask\";\n\tconst strokes = config.strokes ?? [];\n\tpass.end();\n\tctx.renderer.pushIdentity();\n\tconst baseTex = ctx.renderer.getTemporaryTexture(containerW, containerH, [...props.excludeTextures || [], targetTexture]);\n\tconst baseView = baseTex.createView();\n\tif (isMaskMode) ctx.renderer.beginFrame(encoder, baseView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 1\n\t}, containerW, containerH, \"clear\").end();\n\telse if (childMedia) await drawChild(childMedia, props, baseView, baseTex, containerW, containerH);\n\telse {\n\t\tconst basePass = ctx.renderer.beginFrame(encoder, baseView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, containerW, containerH, \"clear\");\n\t\tif (config.backgroundColor) ctx.renderer.drawRect(basePass, {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: containerW,\n\t\t\theight: containerH\n\t\t}, config.backgroundColor);\n\t\tbasePass.end();\n\t}\n\tlet finalTex = baseTex;\n\tif (strokes.length > 0) {\n\t\tconst origW = childMedia?.metadata?.width ?? containerW;\n\t\tconst origH = childMedia?.metadata?.height ?? containerH;\n\t\tconst scaleX = origW > 0 ? containerW / origW : 1;\n\t\tconst scaleY = origH > 0 ? containerH / origH : 1;\n\t\tlet scalePushed = false;\n\t\tif (scaleX !== 1 || scaleY !== 1) {\n\t\t\tctx.renderer.pushTransform(new DOMMatrix().scale(scaleX, scaleY));\n\t\t\tscalePushed = true;\n\t\t}\n\t\tconst paintTex = ctx.renderer.getTemporaryTexture(containerW, containerH, [\n\t\t\tbaseTex,\n\t\t\ttargetTexture,\n\t\t\t...props.excludeTextures || []\n\t\t]);\n\t\tconst paintView = paintTex.createView();\n\t\tctx.renderer.beginFrame(encoder, paintView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, containerW, containerH, \"clear\").end();\n\t\tconst allStrokes = strokes;\n\t\tlet currentLayer = paintTex;\n\t\tlet currentPass = null;\n\t\tfor (const stroke of allStrokes) if (stroke.tool === \"brush\") {\n\t\t\tif (!currentPass) currentPass = ctx.renderer.beginFrame(encoder, currentLayer.createView(), {\n\t\t\t\tr: 0,\n\t\t\t\tg: 0,\n\t\t\t\tb: 0,\n\t\t\t\ta: 0\n\t\t\t}, containerW, containerH, \"load\");\n\t\t\tconst parsedColor = parseColor(stroke.color);\n\t\t\tconst drawColor = isMaskMode ? {\n\t\t\t\tr: parsedColor.a,\n\t\t\t\tg: parsedColor.a,\n\t\t\t\tb: parsedColor.a,\n\t\t\t\ta: parsedColor.a\n\t\t\t} : {\n\t\t\t\tr: parsedColor.r * parsedColor.a,\n\t\t\t\tg: parsedColor.g * parsedColor.a,\n\t\t\t\tb: parsedColor.b * parsedColor.a,\n\t\t\t\ta: parsedColor.a\n\t\t\t};\n\t\t\tctx.renderer.drawPath(currentPass, stroke.path, drawColor, stroke.size, {\n\t\t\t\topacity: stroke.opacity ?? 1,\n\t\t\t\tblendMode: \"max\"\n\t\t\t});\n\t\t} else if (stroke.tool === \"eraser\") {\n\t\t\tif (currentPass) {\n\t\t\t\tcurrentPass.end();\n\t\t\t\tcurrentPass = null;\n\t\t\t}\n\t\t\tconst maskTex = ctx.renderer.getTemporaryTexture(containerW, containerH, [\n\t\t\t\tbaseTex,\n\t\t\t\tpaintTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...props.excludeTextures || []\n\t\t\t]);\n\t\t\tconst maskView = maskTex.createView();\n\t\t\tconst maskPass = ctx.renderer.beginFrame(encoder, maskView, {\n\t\t\t\tr: 0,\n\t\t\t\tg: 0,\n\t\t\t\tb: 0,\n\t\t\t\ta: 0\n\t\t\t}, containerW, containerH, \"clear\");\n\t\t\tctx.renderer.drawPath(maskPass, stroke.path, \"#ffffff\", stroke.size, { blendMode: \"max\" });\n\t\t\tmaskPass.end();\n\t\t\tcurrentLayer = ctx.renderer.composite(encoder, currentLayer, maskTex, \"mask-out\", [\n\t\t\t\tbaseTex,\n\t\t\t\tpaintTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...props.excludeTextures || []\n\t\t\t]);\n\t\t}\n\t\tif (currentPass) currentPass.end();\n\t\tfinalTex = ctx.renderer.composite(encoder, baseTex, currentLayer, \"normal\", [\n\t\t\tbaseTex,\n\t\t\tcurrentLayer,\n\t\t\ttargetTexture,\n\t\t\t...props.excludeTextures || []\n\t\t]);\n\t\tif (scalePushed) ctx.renderer.popTransform();\n\t}\n\tctx.renderer.popTransform();\n\tconst finalPass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, targetWidth, targetHeight, \"load\");\n\tctx.renderer.drawTexture(finalPass, finalTex, {\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth: containerW,\n\t\theight: containerH\n\t});\n\targs.pass = finalPass;\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: PaintWebGPURenderer });\n\n//#endregion\nexport { renderers_default as t };\n//# sourceMappingURL=renderers-Cp52luA9.mjs.map"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import "./chunk-GBe2k3y8.mjs";
2
+ import "./dist-cjxDXQdx.mjs";
3
+ import { t as renderers_default } from "./renderer-u8ynJtAC.mjs";
4
+
5
+ export { renderers_default as default };
@@ -0,0 +1,5 @@
1
+ import "./chunk-GBe2k3y8.mjs";
2
+ import "./dist-cjxDXQdx.mjs";
3
+ import { t as renderers_default } from "./renderer-C6md3msE.mjs";
4
+
5
+ export { renderers_default as default };
@@ -0,0 +1,5 @@
1
+ import "./chunk-GBe2k3y8.mjs";
2
+ import "./dist-cjxDXQdx.mjs";
3
+ import { n as renderers_default, t as LiquifyWebGPURenderer } from "./renderer-BzDjy1_x.mjs";
4
+
5
+ export { LiquifyWebGPURenderer, renderers_default as default };
@@ -1,5 +1,5 @@
1
1
  import { c as solveHomography, n as defineRenderer } from "./renderer-BSitV56h.mjs";
2
- import { a as createFullscreenPipeline, c as drawTextureToTarget, l as fragmentBindGroupLayout, o as drawChildToTexture, r as STRAIGHT_ALPHA_BLEND, s as drawFullscreenPass, t as FULLSCREEN_QUAD_WGSL } from "./gpu-AbcLcr1f.mjs";
2
+ import { a as createFullscreenPipeline, c as drawTextureToTarget, l as fragmentBindGroupLayout, o as drawChildToTexture, r as STRAIGHT_ALPHA_BLEND, s as drawFullscreenPass, t as FULLSCREEN_QUAD_WGSL } from "./gpu-Du7GpVFW.mjs";
3
3
 
4
4
  //#region ../../nodes/node-corner-pin/dist/renderers-pM5Tx32P.mjs
5
5
  function getDefaultPoints() {
@@ -145,4 +145,4 @@ var renderers_default = defineRenderer({ WebGPURenderer: CornerPinWebGPURenderer
145
145
 
146
146
  //#endregion
147
147
  export { renderers_default as t };
148
- //# sourceMappingURL=renderer-BEzUirF0.mjs.map
148
+ //# sourceMappingURL=renderer-id8TbKBY.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-BEzUirF0.mjs","names":[],"sources":["../../../nodes/node-corner-pin/dist/renderers-pM5Tx32P.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, STRAIGHT_ALPHA_BLEND, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout } from \"@framefields/node-sdk/gpu\";\nimport { solveHomography } from \"@framefields/node-sdk\";\n\n//#region src/shared/utils.ts\nfunction getDefaultPoints() {\n\treturn [\n\t\t{\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t},\n\t\t{\n\t\t\tx: 100,\n\t\t\ty: 0\n\t\t},\n\t\t{\n\t\t\tx: 0,\n\t\t\ty: 100\n\t\t},\n\t\t{\n\t\t\tx: 100,\n\t\t\ty: 100\n\t\t}\n\t];\n}\n/**\n* Homography mapping the corner-pin quad (percent coordinates, TL, TR, BL, BR)\n* to the unit square it samples from. Falls back to the identity quad.\n*/\nfunction solveCornerPinHomography(targetPoints) {\n\treturn solveHomography((targetPoints && targetPoints.length === 4 ? targetPoints : getDefaultPoints()).map((p) => ({\n\t\tx: p.x / 100,\n\t\ty: p.y / 100\n\t})));\n}\n\n//#endregion\n//#region src/renderers/webgpu-renderer.ts\nconst cornerPinWgsl = `\nstruct CornerPinUniforms {\n\tmatrix_row0 : vec4<f32>,\n\tmatrix_row1 : vec4<f32>,\n\tmatrix_row2 : vec4<f32>,\n};\n\n@group(0) @binding(0) var<uniform> u : CornerPinUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tlet x = in.uv.x;\n\tlet y = in.uv.y;\n\n\tlet d = u.matrix_row2.x * x + u.matrix_row2.y * y + u.matrix_row2.z;\n\tif (abs(d) < 1e-6) {\n\t\treturn vec4<f32>(0.0);\n\t}\n\n\tlet src_u = (u.matrix_row0.x * x + u.matrix_row0.y * y + u.matrix_row0.z) / d;\n\tlet src_v = (u.matrix_row1.x * x + u.matrix_row1.y * y + u.matrix_row1.z) / d;\n\n\tif (src_u < 0.0 || src_u > 1.0 || src_v < 0.0 || src_v > 1.0) {\n\t\treturn vec4<f32>(0.0);\n\t}\n\n\tlet color = textureSampleLevel(tex, samp, vec2<f32>(src_u, src_v), 0.0);\n\treturn color;\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nfunction getCornerPinResources(device, format) {\n\tlet res = deviceResourceCache.get(device);\n\tif (!res) {\n\t\tconst pinUniformLayout = fragmentBindGroupLayout(device, [\"uniform\"]);\n\t\tconst pinTextureLayout = fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]);\n\t\tres = {\n\t\t\tpinPipeline: createFullscreenPipeline(device, {\n\t\t\t\tlabel: \"CornerPinPipeline\",\n\t\t\t\tmodule: device.createShaderModule({\n\t\t\t\t\tlabel: \"corner_pin.wgsl\",\n\t\t\t\t\tcode: cornerPinWgsl\n\t\t\t\t}),\n\t\t\t\tlayouts: [pinUniformLayout, pinTextureLayout],\n\t\t\t\tformat,\n\t\t\t\tblend: STRAIGHT_ALPHA_BLEND\n\t\t\t}),\n\t\t\tpinUniformLayout,\n\t\t\tpinTextureLayout\n\t\t};\n\t\tdeviceResourceCache.set(device, res);\n\t}\n\treturn res;\n}\nconst CornerPinWebGPURenderer = async (args) => {\n\tconst { ctx, props, targetTexture, targetWidth, targetHeight, encoder } = args;\n\tconst { virtualMedia } = props;\n\tconst op = virtualMedia?.operation;\n\tif (!op || op.op !== \"CornerPin\") return;\n\tconst childMedia = virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tconst sourceWidth = op.originalWidth ?? childMedia.metadata?.width ?? props.containerWidth ?? targetWidth;\n\tconst sourceHeight = op.originalHeight ?? childMedia.metadata?.height ?? props.containerHeight ?? targetHeight;\n\targs.pass.end();\n\tconst { texture: childTex } = await drawChildToTexture(args, childMedia, {\n\t\twidth: sourceWidth,\n\t\theight: sourceHeight,\n\t\tprops: {\n\t\t\t...props,\n\t\t\tcontainerWidth: sourceWidth,\n\t\t\tcontainerHeight: sourceHeight,\n\t\t\tvirtualMedia: childMedia\n\t\t}\n\t});\n\tconst h = solveCornerPinHomography(op.points || []);\n\tconst uniformData = new Float32Array(12);\n\tuniformData[0] = h[0];\n\tuniformData[1] = h[1];\n\tuniformData[2] = h[2];\n\tuniformData[3] = 0;\n\tuniformData[4] = h[3];\n\tuniformData[5] = h[4];\n\tuniformData[6] = h[5];\n\tuniformData[7] = 0;\n\tuniformData[8] = h[6];\n\tuniformData[9] = h[7];\n\tuniformData[10] = h[8];\n\tuniformData[11] = 0;\n\tconst { pinPipeline: pipeline, pinUniformLayout: uLayout, pinTextureLayout: tLayout } = getCornerPinResources(ctx.device, ctx.renderer.format);\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(uniformData);\n\tconst uniformBindGroup = ctx.device.createBindGroup({\n\t\tlayout: uLayout,\n\t\tentries: [{\n\t\t\tbinding: 0,\n\t\t\tresource: { buffer: uniformBuffer }\n\t\t}]\n\t});\n\tconst textureBindGroup = ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, childTex, sampler);\n\tconst outTex = ctx.renderer.getTemporaryTexture(targetWidth, targetHeight, [\n\t\tchildTex,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tdrawFullscreenPass(encoder, outTex.createView(), pipeline, [uniformBindGroup, textureBindGroup]);\n\tdrawTextureToTarget(args, outTex, op.opacity ?? 1);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: CornerPinWebGPURenderer });\n\n//#endregion\nexport { getDefaultPoints as n, solveCornerPinHomography as r, renderers_default as t };\n//# sourceMappingURL=renderers-pM5Tx32P.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"renderer-id8TbKBY.mjs","names":[],"sources":["../../../nodes/node-corner-pin/dist/renderers-pM5Tx32P.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, STRAIGHT_ALPHA_BLEND, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout } from \"@framefields/node-sdk/gpu\";\nimport { solveHomography } from \"@framefields/node-sdk\";\n\n//#region src/shared/utils.ts\nfunction getDefaultPoints() {\n\treturn [\n\t\t{\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t},\n\t\t{\n\t\t\tx: 100,\n\t\t\ty: 0\n\t\t},\n\t\t{\n\t\t\tx: 0,\n\t\t\ty: 100\n\t\t},\n\t\t{\n\t\t\tx: 100,\n\t\t\ty: 100\n\t\t}\n\t];\n}\n/**\n* Homography mapping the corner-pin quad (percent coordinates, TL, TR, BL, BR)\n* to the unit square it samples from. Falls back to the identity quad.\n*/\nfunction solveCornerPinHomography(targetPoints) {\n\treturn solveHomography((targetPoints && targetPoints.length === 4 ? targetPoints : getDefaultPoints()).map((p) => ({\n\t\tx: p.x / 100,\n\t\ty: p.y / 100\n\t})));\n}\n\n//#endregion\n//#region src/renderers/webgpu-renderer.ts\nconst cornerPinWgsl = `\nstruct CornerPinUniforms {\n\tmatrix_row0 : vec4<f32>,\n\tmatrix_row1 : vec4<f32>,\n\tmatrix_row2 : vec4<f32>,\n};\n\n@group(0) @binding(0) var<uniform> u : CornerPinUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tlet x = in.uv.x;\n\tlet y = in.uv.y;\n\n\tlet d = u.matrix_row2.x * x + u.matrix_row2.y * y + u.matrix_row2.z;\n\tif (abs(d) < 1e-6) {\n\t\treturn vec4<f32>(0.0);\n\t}\n\n\tlet src_u = (u.matrix_row0.x * x + u.matrix_row0.y * y + u.matrix_row0.z) / d;\n\tlet src_v = (u.matrix_row1.x * x + u.matrix_row1.y * y + u.matrix_row1.z) / d;\n\n\tif (src_u < 0.0 || src_u > 1.0 || src_v < 0.0 || src_v > 1.0) {\n\t\treturn vec4<f32>(0.0);\n\t}\n\n\tlet color = textureSampleLevel(tex, samp, vec2<f32>(src_u, src_v), 0.0);\n\treturn color;\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nfunction getCornerPinResources(device, format) {\n\tlet res = deviceResourceCache.get(device);\n\tif (!res) {\n\t\tconst pinUniformLayout = fragmentBindGroupLayout(device, [\"uniform\"]);\n\t\tconst pinTextureLayout = fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]);\n\t\tres = {\n\t\t\tpinPipeline: createFullscreenPipeline(device, {\n\t\t\t\tlabel: \"CornerPinPipeline\",\n\t\t\t\tmodule: device.createShaderModule({\n\t\t\t\t\tlabel: \"corner_pin.wgsl\",\n\t\t\t\t\tcode: cornerPinWgsl\n\t\t\t\t}),\n\t\t\t\tlayouts: [pinUniformLayout, pinTextureLayout],\n\t\t\t\tformat,\n\t\t\t\tblend: STRAIGHT_ALPHA_BLEND\n\t\t\t}),\n\t\t\tpinUniformLayout,\n\t\t\tpinTextureLayout\n\t\t};\n\t\tdeviceResourceCache.set(device, res);\n\t}\n\treturn res;\n}\nconst CornerPinWebGPURenderer = async (args) => {\n\tconst { ctx, props, targetTexture, targetWidth, targetHeight, encoder } = args;\n\tconst { virtualMedia } = props;\n\tconst op = virtualMedia?.operation;\n\tif (!op || op.op !== \"CornerPin\") return;\n\tconst childMedia = virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tconst sourceWidth = op.originalWidth ?? childMedia.metadata?.width ?? props.containerWidth ?? targetWidth;\n\tconst sourceHeight = op.originalHeight ?? childMedia.metadata?.height ?? props.containerHeight ?? targetHeight;\n\targs.pass.end();\n\tconst { texture: childTex } = await drawChildToTexture(args, childMedia, {\n\t\twidth: sourceWidth,\n\t\theight: sourceHeight,\n\t\tprops: {\n\t\t\t...props,\n\t\t\tcontainerWidth: sourceWidth,\n\t\t\tcontainerHeight: sourceHeight,\n\t\t\tvirtualMedia: childMedia\n\t\t}\n\t});\n\tconst h = solveCornerPinHomography(op.points || []);\n\tconst uniformData = new Float32Array(12);\n\tuniformData[0] = h[0];\n\tuniformData[1] = h[1];\n\tuniformData[2] = h[2];\n\tuniformData[3] = 0;\n\tuniformData[4] = h[3];\n\tuniformData[5] = h[4];\n\tuniformData[6] = h[5];\n\tuniformData[7] = 0;\n\tuniformData[8] = h[6];\n\tuniformData[9] = h[7];\n\tuniformData[10] = h[8];\n\tuniformData[11] = 0;\n\tconst { pinPipeline: pipeline, pinUniformLayout: uLayout, pinTextureLayout: tLayout } = getCornerPinResources(ctx.device, ctx.renderer.format);\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(uniformData);\n\tconst uniformBindGroup = ctx.device.createBindGroup({\n\t\tlayout: uLayout,\n\t\tentries: [{\n\t\t\tbinding: 0,\n\t\t\tresource: { buffer: uniformBuffer }\n\t\t}]\n\t});\n\tconst textureBindGroup = ctx.renderer.bindGroupCache.getBindGroup(ctx.device, tLayout, childTex, sampler);\n\tconst outTex = ctx.renderer.getTemporaryTexture(targetWidth, targetHeight, [\n\t\tchildTex,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tdrawFullscreenPass(encoder, outTex.createView(), pipeline, [uniformBindGroup, textureBindGroup]);\n\tdrawTextureToTarget(args, outTex, op.opacity ?? 1);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: CornerPinWebGPURenderer });\n\n//#endregion\nexport { getDefaultPoints as n, solveCornerPinHomography as r, renderers_default as t };\n//# sourceMappingURL=renderers-pM5Tx32P.mjs.map"],"mappings":";;;;AAKA,SAAS,mBAAmB;AAC3B,QAAO;EACN;GACC,GAAG;GACH,GAAG;GACH;EACD;GACC,GAAG;GACH,GAAG;GACH;EACD;GACC,GAAG;GACH,GAAG;GACH;EACD;GACC,GAAG;GACH,GAAG;GACH;EACD;;;;;;AAMF,SAAS,yBAAyB,cAAc;AAC/C,QAAO,iBAAiB,gBAAgB,aAAa,WAAW,IAAI,eAAe,kBAAkB,EAAE,KAAK,OAAO;EAClH,GAAG,EAAE,IAAI;EACT,GAAG,EAAE,IAAI;EACT,EAAE,CAAC;;AAKL,MAAM,gBAAgB;;;;;;;;;;EAUpB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;AAsBvB,MAAM,sCAAsC,IAAI,SAAS;AACzD,SAAS,sBAAsB,QAAQ,QAAQ;CAC9C,IAAI,MAAM,oBAAoB,IAAI,OAAO;AACzC,KAAI,CAAC,KAAK;EACT,MAAM,mBAAmB,wBAAwB,QAAQ,CAAC,UAAU,CAAC;EACrE,MAAM,mBAAmB,wBAAwB,QAAQ,CAAC,WAAW,UAAU,CAAC;AAChF,QAAM;GACL,aAAa,yBAAyB,QAAQ;IAC7C,OAAO;IACP,QAAQ,OAAO,mBAAmB;KACjC,OAAO;KACP,MAAM;KACN,CAAC;IACF,SAAS,CAAC,kBAAkB,iBAAiB;IAC7C;IACA,OAAO;IACP,CAAC;GACF;GACA;GACA;AACD,sBAAoB,IAAI,QAAQ,IAAI;;AAErC,QAAO;;AAER,MAAM,0BAA0B,OAAO,SAAS;CAC/C,MAAM,EAAE,KAAK,OAAO,eAAe,aAAa,cAAc,YAAY;CAC1E,MAAM,EAAE,iBAAiB;CACzB,MAAM,KAAK,cAAc;AACzB,KAAI,CAAC,MAAM,GAAG,OAAO,YAAa;CAClC,MAAM,aAAa,aAAa,WAAW;AAC3C,KAAI,CAAC,WAAY;CACjB,MAAM,cAAc,GAAG,iBAAiB,WAAW,UAAU,SAAS,MAAM,kBAAkB;CAC9F,MAAM,eAAe,GAAG,kBAAkB,WAAW,UAAU,UAAU,MAAM,mBAAmB;AAClG,MAAK,KAAK,KAAK;CACf,MAAM,EAAE,SAAS,aAAa,MAAM,mBAAmB,MAAM,YAAY;EACxE,OAAO;EACP,QAAQ;EACR,OAAO;GACN,GAAG;GACH,gBAAgB;GAChB,iBAAiB;GACjB,cAAc;GACd;EACD,CAAC;CACF,MAAM,IAAI,yBAAyB,GAAG,UAAU,EAAE,CAAC;CACnD,MAAM,cAAc,IAAI,aAAa,GAAG;AACxC,aAAY,KAAK,EAAE;AACnB,aAAY,KAAK,EAAE;AACnB,aAAY,KAAK,EAAE;AACnB,aAAY,KAAK;AACjB,aAAY,KAAK,EAAE;AACnB,aAAY,KAAK,EAAE;AACnB,aAAY,KAAK,EAAE;AACnB,aAAY,KAAK;AACjB,aAAY,KAAK,EAAE;AACnB,aAAY,KAAK,EAAE;AACnB,aAAY,MAAM,EAAE;AACpB,aAAY,MAAM;CAClB,MAAM,EAAE,aAAa,UAAU,kBAAkB,SAAS,kBAAkB,YAAY,sBAAsB,IAAI,QAAQ,IAAI,SAAS,OAAO;CAC9I,MAAM,UAAU,IAAI,SAAS,aAAa,WAAW,IAAI,OAAO;CAChE,MAAM,gBAAgB,IAAI,SAAS,mBAAmB,YAAY;CAClE,MAAM,mBAAmB,IAAI,OAAO,gBAAgB;EACnD,QAAQ;EACR,SAAS,CAAC;GACT,SAAS;GACT,UAAU,EAAE,QAAQ,eAAe;GACnC,CAAC;EACF,CAAC;CACF,MAAM,mBAAmB,IAAI,SAAS,eAAe,aAAa,IAAI,QAAQ,SAAS,UAAU,QAAQ;CACzG,MAAM,SAAS,IAAI,SAAS,oBAAoB,aAAa,cAAc;EAC1E;EACA;EACA,GAAG,MAAM,mBAAmB,EAAE;EAC9B,CAAC;AACF,oBAAmB,SAAS,OAAO,YAAY,EAAE,UAAU,CAAC,kBAAkB,iBAAiB,CAAC;AAChG,qBAAoB,MAAM,QAAQ,GAAG,WAAW,EAAE;;AAKnD,IAAI,oBAAoB,eAAe,EAAE,gBAAgB,yBAAyB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import "./chunk-GBe2k3y8.mjs";
2
2
  import { n as defineRenderer } from "./renderer-BSitV56h.mjs";
3
- import "./dist-DQlYw4eG.mjs";
4
- import { a as createFullscreenPipeline, l as fragmentBindGroupLayout, t as FULLSCREEN_QUAD_WGSL, u as perDevice } from "./gpu-AbcLcr1f.mjs";
3
+ import "./dist-cjxDXQdx.mjs";
4
+ import { a as createFullscreenPipeline, l as fragmentBindGroupLayout, t as FULLSCREEN_QUAD_WGSL, u as perDevice } from "./gpu-Du7GpVFW.mjs";
5
5
 
6
6
  //#region ../../nodes/node-canvas-generator/dist/renderers-BNR_p9ve.mjs
7
7
  const CANVAS_SHADER = `
@@ -127,4 +127,4 @@ var renderers_default = defineRenderer({ WebGPURenderer: CanvasGeneratorWebGPURe
127
127
 
128
128
  //#endregion
129
129
  export { CanvasGeneratorWebGPURenderer, renderers_default as default };
130
- //# sourceMappingURL=renderer-Dnm_SVy6.mjs.map
130
+ //# sourceMappingURL=renderer-jYxN4mHn.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-Dnm_SVy6.mjs","names":[],"sources":["../../../nodes/node-canvas-generator/dist/renderers-BNR_p9ve.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, fragmentBindGroupLayout, perDevice } from \"@framefields/node-sdk/gpu\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst CANVAS_SHADER = `\nstruct CanvasUniforms {\n fillType : f32, // 0 = Solid, 1 = Linear, 2 = Radial\n angleRad : f32,\n radius : f32,\n _padding1 : f32,\n solid : vec4<f32>,\n startColor : vec4<f32>,\n endColor : vec4<f32>,\n center : vec2<f32>,\n _padding2 : vec2<f32>,\n};\n\n@group(0) @binding(0) var<uniform> u : CanvasUniforms;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n if (u.fillType < 0.5) {\n // Solid Color\n return u.solid;\n } else if (u.fillType < 1.5) {\n // Linear Gradient\n let dir = vec2<f32>(cos(u.angleRad), sin(u.angleRad));\n // Project uv relative to center (0.5, 0.5) onto the direction\n let t = dot(in.uv - vec2<f32>(0.5, 0.5), dir) + 0.5;\n let clampedT = clamp(t, 0.0, 1.0);\n return mix(u.startColor, u.endColor, clampedT);\n } else {\n // Radial Gradient\n let dist = distance(in.uv, u.center);\n let t = clamp(dist / max(u.radius, 1e-4), 0.0, 1.0);\n return mix(u.startColor, u.endColor, t);\n }\n}\n`;\nconst canvasUniformData = new Float32Array(20);\nconst getDeviceLayouts = perDevice((device) => ({\n\tuniformLayout: fragmentBindGroupLayout(device, [\"uniform\"]),\n\tpipelineCache: /* @__PURE__ */ new Map()\n}));\nfunction getCanvasResources(device, format) {\n\tconst layouts = getDeviceLayouts(device);\n\tconst cacheKey = `canvas_${format}`;\n\tlet pipeline = layouts.pipelineCache.get(cacheKey);\n\tif (!pipeline) {\n\t\tconst canvasModule = device.createShaderModule({\n\t\t\tlabel: `canvas_${format}.wgsl`,\n\t\t\tcode: CANVAS_SHADER\n\t\t});\n\t\tpipeline = createFullscreenPipeline(device, {\n\t\t\tlabel: `CanvasGeneratorPipeline_${format}`,\n\t\t\tmodule: canvasModule,\n\t\t\tlayouts: [layouts.uniformLayout],\n\t\t\tformat\n\t\t});\n\t\tlayouts.pipelineCache.set(cacheKey, pipeline);\n\t}\n\treturn {\n\t\tcanvasPipeline: pipeline,\n\t\tuniformLayout: layouts.uniformLayout\n\t};\n}\nfunction hexToRgba(hex) {\n\tlet h = hex.replace(\"#\", \"\");\n\tif (h.length === 3 || h.length === 4) h = h.split(\"\").map((c) => c + c).join(\"\");\n\tconst r = parseInt(h.substring(0, 2), 16) / 255;\n\tconst g = parseInt(h.substring(2, 4), 16) / 255;\n\tconst b = parseInt(h.substring(4, 6), 16) / 255;\n\tlet a = 1;\n\tif (h.length === 8) a = parseInt(h.substring(6, 8), 16) / 255;\n\treturn [\n\t\tr,\n\t\tg,\n\t\tb,\n\t\ta\n\t];\n}\nconst CanvasGeneratorWebGPURenderer = async (args) => {\n\tconst { ctx, pass, props } = args;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"CanvasGenerator\" || !op) return;\n\tconst { canvasPipeline: pipeline, uniformLayout: uLayout } = getCanvasResources(ctx.device, ctx.renderer.format);\n\tconst fillTypeVal = op.fillType === \"radial\" ? 2 : op.fillType === \"linear\" ? 1 : 0;\n\tconst angleRadVal = (op.gradientAngle ?? 180) * Math.PI / 180;\n\tconst radialRadiusVal = op.radialRadius ?? .5;\n\tconst solidCol = hexToRgba(op.solidColor ?? \"#3b82f6\");\n\tconst startCol = hexToRgba(op.gradientStart ?? \"#3b82f6\");\n\tconst endCol = hexToRgba(op.gradientEnd ?? \"#1d4ed8\");\n\tcanvasUniformData[0] = fillTypeVal;\n\tcanvasUniformData[1] = angleRadVal;\n\tcanvasUniformData[2] = radialRadiusVal;\n\tcanvasUniformData[3] = 0;\n\tcanvasUniformData[4] = solidCol[0];\n\tcanvasUniformData[5] = solidCol[1];\n\tcanvasUniformData[6] = solidCol[2];\n\tcanvasUniformData[7] = solidCol[3];\n\tcanvasUniformData[8] = startCol[0];\n\tcanvasUniformData[9] = startCol[1];\n\tcanvasUniformData[10] = startCol[2];\n\tcanvasUniformData[11] = startCol[3];\n\tcanvasUniformData[12] = endCol[0];\n\tcanvasUniformData[13] = endCol[1];\n\tcanvasUniformData[14] = endCol[2];\n\tcanvasUniformData[15] = endCol[3];\n\tcanvasUniformData[16] = op.radialCenterX ?? .5;\n\tcanvasUniformData[17] = op.radialCenterY ?? .5;\n\tcanvasUniformData[18] = 0;\n\tcanvasUniformData[19] = 0;\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(canvasUniformData);\n\tpass.setPipeline(pipeline);\n\tpass.setBindGroup(0, ctx.device.createBindGroup({\n\t\tlayout: uLayout,\n\t\tentries: [{\n\t\t\tbinding: 0,\n\t\t\tresource: { buffer: uniformBuffer }\n\t\t}]\n\t}));\n\tpass.draw(4);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: CanvasGeneratorWebGPURenderer });\n\n//#endregion\nexport { CanvasGeneratorWebGPURenderer as n, renderers_default as t };\n//# sourceMappingURL=renderers-BNR_p9ve.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"renderer-jYxN4mHn.mjs","names":[],"sources":["../../../nodes/node-canvas-generator/dist/renderers-BNR_p9ve.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, fragmentBindGroupLayout, perDevice } from \"@framefields/node-sdk/gpu\";\n\n//#region src/renderers/webgpu-renderer.ts\nconst CANVAS_SHADER = `\nstruct CanvasUniforms {\n fillType : f32, // 0 = Solid, 1 = Linear, 2 = Radial\n angleRad : f32,\n radius : f32,\n _padding1 : f32,\n solid : vec4<f32>,\n startColor : vec4<f32>,\n endColor : vec4<f32>,\n center : vec2<f32>,\n _padding2 : vec2<f32>,\n};\n\n@group(0) @binding(0) var<uniform> u : CanvasUniforms;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n if (u.fillType < 0.5) {\n // Solid Color\n return u.solid;\n } else if (u.fillType < 1.5) {\n // Linear Gradient\n let dir = vec2<f32>(cos(u.angleRad), sin(u.angleRad));\n // Project uv relative to center (0.5, 0.5) onto the direction\n let t = dot(in.uv - vec2<f32>(0.5, 0.5), dir) + 0.5;\n let clampedT = clamp(t, 0.0, 1.0);\n return mix(u.startColor, u.endColor, clampedT);\n } else {\n // Radial Gradient\n let dist = distance(in.uv, u.center);\n let t = clamp(dist / max(u.radius, 1e-4), 0.0, 1.0);\n return mix(u.startColor, u.endColor, t);\n }\n}\n`;\nconst canvasUniformData = new Float32Array(20);\nconst getDeviceLayouts = perDevice((device) => ({\n\tuniformLayout: fragmentBindGroupLayout(device, [\"uniform\"]),\n\tpipelineCache: /* @__PURE__ */ new Map()\n}));\nfunction getCanvasResources(device, format) {\n\tconst layouts = getDeviceLayouts(device);\n\tconst cacheKey = `canvas_${format}`;\n\tlet pipeline = layouts.pipelineCache.get(cacheKey);\n\tif (!pipeline) {\n\t\tconst canvasModule = device.createShaderModule({\n\t\t\tlabel: `canvas_${format}.wgsl`,\n\t\t\tcode: CANVAS_SHADER\n\t\t});\n\t\tpipeline = createFullscreenPipeline(device, {\n\t\t\tlabel: `CanvasGeneratorPipeline_${format}`,\n\t\t\tmodule: canvasModule,\n\t\t\tlayouts: [layouts.uniformLayout],\n\t\t\tformat\n\t\t});\n\t\tlayouts.pipelineCache.set(cacheKey, pipeline);\n\t}\n\treturn {\n\t\tcanvasPipeline: pipeline,\n\t\tuniformLayout: layouts.uniformLayout\n\t};\n}\nfunction hexToRgba(hex) {\n\tlet h = hex.replace(\"#\", \"\");\n\tif (h.length === 3 || h.length === 4) h = h.split(\"\").map((c) => c + c).join(\"\");\n\tconst r = parseInt(h.substring(0, 2), 16) / 255;\n\tconst g = parseInt(h.substring(2, 4), 16) / 255;\n\tconst b = parseInt(h.substring(4, 6), 16) / 255;\n\tlet a = 1;\n\tif (h.length === 8) a = parseInt(h.substring(6, 8), 16) / 255;\n\treturn [\n\t\tr,\n\t\tg,\n\t\tb,\n\t\ta\n\t];\n}\nconst CanvasGeneratorWebGPURenderer = async (args) => {\n\tconst { ctx, pass, props } = args;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"CanvasGenerator\" || !op) return;\n\tconst { canvasPipeline: pipeline, uniformLayout: uLayout } = getCanvasResources(ctx.device, ctx.renderer.format);\n\tconst fillTypeVal = op.fillType === \"radial\" ? 2 : op.fillType === \"linear\" ? 1 : 0;\n\tconst angleRadVal = (op.gradientAngle ?? 180) * Math.PI / 180;\n\tconst radialRadiusVal = op.radialRadius ?? .5;\n\tconst solidCol = hexToRgba(op.solidColor ?? \"#3b82f6\");\n\tconst startCol = hexToRgba(op.gradientStart ?? \"#3b82f6\");\n\tconst endCol = hexToRgba(op.gradientEnd ?? \"#1d4ed8\");\n\tcanvasUniformData[0] = fillTypeVal;\n\tcanvasUniformData[1] = angleRadVal;\n\tcanvasUniformData[2] = radialRadiusVal;\n\tcanvasUniformData[3] = 0;\n\tcanvasUniformData[4] = solidCol[0];\n\tcanvasUniformData[5] = solidCol[1];\n\tcanvasUniformData[6] = solidCol[2];\n\tcanvasUniformData[7] = solidCol[3];\n\tcanvasUniformData[8] = startCol[0];\n\tcanvasUniformData[9] = startCol[1];\n\tcanvasUniformData[10] = startCol[2];\n\tcanvasUniformData[11] = startCol[3];\n\tcanvasUniformData[12] = endCol[0];\n\tcanvasUniformData[13] = endCol[1];\n\tcanvasUniformData[14] = endCol[2];\n\tcanvasUniformData[15] = endCol[3];\n\tcanvasUniformData[16] = op.radialCenterX ?? .5;\n\tcanvasUniformData[17] = op.radialCenterY ?? .5;\n\tcanvasUniformData[18] = 0;\n\tcanvasUniformData[19] = 0;\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(canvasUniformData);\n\tpass.setPipeline(pipeline);\n\tpass.setBindGroup(0, ctx.device.createBindGroup({\n\t\tlayout: uLayout,\n\t\tentries: [{\n\t\t\tbinding: 0,\n\t\t\tresource: { buffer: uniformBuffer }\n\t\t}]\n\t}));\n\tpass.draw(4);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: CanvasGeneratorWebGPURenderer });\n\n//#endregion\nexport { CanvasGeneratorWebGPURenderer as n, renderers_default as t };\n//# sourceMappingURL=renderers-BNR_p9ve.mjs.map"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { n as defineRenderer, o as resolveHandleParam } from "./renderer-BSitV56h.mjs";
2
2
  import { a as configBuilder, i as VideoResultSchema, n as ImageResultSchema } from "./dist-BY0bIWgr.mjs";
3
- 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 } from "./gpu-AbcLcr1f.mjs";
3
+ 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 } from "./gpu-Du7GpVFW.mjs";
4
4
  import { z } from "zod";
5
5
 
6
6
  //#region ../../nodes/node-high-pass/dist/renderers-DUL8Peaw.mjs
@@ -253,4 +253,4 @@ var renderers_default = defineRenderer({ WebGPURenderer });
253
253
 
254
254
  //#endregion
255
255
  export { renderers_default as t };
256
- //# sourceMappingURL=renderer-lXmtdrdI.mjs.map
256
+ //# sourceMappingURL=renderer-jqByPgkD.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-lXmtdrdI.mjs","names":[],"sources":["../../../nodes/node-high-pass/dist/renderers-DUL8Peaw.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { ImageResultSchema, VideoResultSchema, configBuilder, resolveHandleParam } from \"@framefields/node-sdk\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout, signalTextureView, signalTiming, texturesLayout } from \"@framefields/node-sdk/gpu\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst MAX_RADIUS = 250;\nconst highPassConfig = configBuilder().field(\"radius\", z.number().min(.1).max(MAX_RADIUS).default(3), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Radius Signal\",\n\tdescription: \"The cutoff radius in pixels. Frequencies smaller than this radius are preserved.\"\n}).field(\"contrastBoost\", z.number().multipleOf(.01).min(1).max(10).default(1), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Contrast Boost Signal\",\n\tdescription: \"Multiplier applied to the extracted high-frequency detail delta.\"\n}).field(\"monochrome\", z.boolean().default(true), { description: \"When enabled, high-pass delta is converted to luminance before centering on 50% neutral gray.\" }).build();\nconst HighPassNodeConfigSchema = highPassConfig.schema;\nconst HighPassResultSchema = z.union([ImageResultSchema, VideoResultSchema]);\nconst HIGH_PASS_OUTPUT_TYPE_MAP = {\n\tVideo: \"Video\",\n\tLottie: \"Video\",\n\tGIF: \"GIF\",\n\tImage: \"Image\",\n\tSVG: \"Image\"\n};\n\n//#endregion\n//#region src/renderers/webgpu-renderer.ts\nconst WGSL_HIGHPASS_UNIFORMS = `\nstruct HighPassUniforms {\n\tdirX : f32,\n\tdirY : f32,\n\tradius : f32,\n\tcontrastBoost : f32,\n\n\tmonochrome : f32,\n\thasRadiusSig : f32,\n\thasContrastSig : f32,\n\tisSecondPass : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : HighPassUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n@group(1) @binding(2) var origTex : texture_2d<f32>;\n\n@group(2) @binding(0) var radiusSigTex : texture_2d<f32>;\n@group(2) @binding(1) var contrastSigTex : 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\tlet dimensions = vec2<f32>(textureDimensions(tex));\n\tvar radius = u.radius;\n\tif (u.hasRadiusSig > 0.5) {\n\t\tradius = textureSampleLevel(radiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tvar contrastBoost = u.contrastBoost;\n\tif (u.hasContrastSig > 0.5) {\n\t\tcontrastBoost = textureSampleLevel(contrastSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\n\tlet origCol = textureSampleLevel(origTex, samp, in.uv, 0.0);\n\tif (radius <= 0.0) {\n\t\tif (u.isSecondPass > 0.5) {\n\t\t\treturn vec4<f32>(vec3<f32>(0.5) * origCol.a, origCol.a);\n\t\t}\n\t\treturn origCol;\n\t}\n\n\tlet texelSize = 1.0 / dimensions;\n\tlet spatial_sigma = radius;\n\tlet stepScale = max(1.0, spatial_sigma / 20.0);\n\tlet effectiveSigma = spatial_sigma / stepScale;\n\tlet sampleRadius = min(i32(ceil(3.0 * effectiveSigma)), 64);\n\tlet direction = vec2<f32>(u.dirX, u.dirY);\n\n\tvar blurred = vec4<f32>(0.0);\n\tvar totalWeight = 0.0;\n\n\tfor (var i = -sampleRadius; i <= sampleRadius; i++) {\n\t\tlet offset = vec2<f32>(f32(i) * stepScale) * direction * texelSize;\n\t\tlet x = f32(i) * stepScale;\n\t\tlet weight = exp(-0.5 * (x / spatial_sigma) * (x / spatial_sigma));\n\t\tblurred += textureSampleLevel(tex, samp, in.uv + offset, 0.0) * weight;\n\t\ttotalWeight += weight;\n\t}\n\n\tlet blurResult = blurred / max(totalWeight, 1e-5);\n\n\tif (u.isSecondPass <= 0.5) {\n\t\t// Pass 1: Intermediate horizontal blur\n\t\treturn blurResult;\n\t}\n\n\t// Pass 2: Vertical blur complete -> Calculate High Pass difference against original\n\tif (origCol.a < 1e-5) {\n\t\treturn vec4<f32>(0.0, 0.0, 0.0, 0.0);\n\t}\n\n\tlet origUnpremult = origCol.rgb / origCol.a;\n\tlet blurUnpremult = blurResult.rgb / max(blurResult.a, 1e-5);\n\tlet diff = origUnpremult - blurUnpremult;\n\n\tvar highPassRgb : vec3<f32>;\n\tif (u.monochrome > 0.5) {\n\t\tlet lumaDiff = dot(diff, vec3<f32>(0.2126, 0.7152, 0.0722));\n\t\thighPassRgb = vec3<f32>(0.5) + vec3<f32>(lumaDiff * contrastBoost);\n\t} else {\n\t\thighPassRgb = vec3<f32>(0.5) + diff * contrastBoost;\n\t}\n\n\tlet clampedRgb = clamp(highPassRgb, vec3<f32>(0.0), vec3<f32>(1.0));\n\treturn vec4<f32>(clampedRgb * origCol.a, origCol.a);\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nconst highPassUniformData = new Float32Array(8);\nfunction getHighPassResources(device, targetFormat) {\n\tconst cached = deviceResourceCache.get(device);\n\tif (cached) return cached;\n\tconst highPassUniformLayout = fragmentBindGroupLayout(device, [\"uniform\"]);\n\tconst singleTextureLayout = fragmentBindGroupLayout(device, [\n\t\t\"texture\",\n\t\t\"sampler\",\n\t\t\"texture\"\n\t]);\n\tconst signalTextureLayout = texturesLayout(device, 2);\n\tconst res = {\n\t\thighPassUniformLayout,\n\t\tsingleTextureLayout,\n\t\tsignalTextureLayout,\n\t\thighPassPipeline: createFullscreenPipeline(device, {\n\t\t\tmodule: device.createShaderModule({ code: WGSL_HIGHPASS_UNIFORMS }),\n\t\t\tlayouts: device.createPipelineLayout({ bindGroupLayouts: [\n\t\t\t\thighPassUniformLayout,\n\t\t\t\tsingleTextureLayout,\n\t\t\t\tsignalTextureLayout\n\t\t\t] }),\n\t\t\tformat: targetFormat\n\t\t})\n\t};\n\tdeviceResourceCache.set(device, res);\n\treturn res;\n}\nconst WebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"HighPass\" || !op) return;\n\tconst childMedia = props.virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tpass.end();\n\tconst frame = props.frame ?? 0;\n\tconst fps = props.fps || 30;\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst nodeId = op.inputs ? Object.keys(op.inputs)[0] : \"highpass_node\";\n\tconst resolveField = (handleId, fallbackVal, clampMin = 0, clampMax = 1e3) => resolveHandleParam(op.inputs, handleId, fallbackVal, clampMin, clampMax);\n\tconst radiusRes = resolveField(op.radiusHandleId, Number(op.radius ?? 3), .1, MAX_RADIUS);\n\tconst contrastRes = resolveField(op.contrastBoostHandleId, Number(op.contrastBoost ?? 1), 1, 10);\n\tconst { texture: tmpTex } = await drawChildToTexture(args, childMedia);\n\tconst { highPassPipeline: pipeline, highPassUniformLayout: uLayout, singleTextureLayout: tLayout, signalTextureLayout: sigLayout } = getHighPassResources(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 radiusView = getSignalView(radiusRes, \"radius_sig\");\n\tconst contrastView = getSignalView(contrastRes, \"contrast_sig\");\n\tconst createHighPassBindGroup1 = (inputTex, origTexture) => ctx.device.createBindGroup({\n\t\tlayout: tLayout,\n\t\tentries: [\n\t\t\t{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: inputTex.createView()\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: sampler\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 2,\n\t\t\t\tresource: origTexture.createView()\n\t\t\t}\n\t\t]\n\t});\n\thighPassUniformData[2] = radiusRes.val;\n\thighPassUniformData[3] = contrastRes.val;\n\thighPassUniformData[4] = op.monochrome ?? true ? 1 : 0;\n\thighPassUniformData[5] = radiusRes.hasStaticSig ? 1 : 0;\n\thighPassUniformData[6] = contrastRes.hasStaticSig ? 1 : 0;\n\thighPassUniformData[7] = 0;\n\tconst outTex1 = ctx.renderer.getTemporaryTexture(width, height, [\n\t\ttmpTex,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tconst outTex2 = ctx.renderer.getTemporaryTexture(width, height, [\n\t\ttmpTex,\n\t\toutTex1,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tconst sigBindGroup = ctx.device.createBindGroup({\n\t\tlayout: sigLayout,\n\t\tentries: [\n\t\t\t{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: radiusView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: contrastView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 2,\n\t\t\t\tresource: sampler\n\t\t\t}\n\t\t]\n\t});\n\thighPassUniformData[0] = 1;\n\thighPassUniformData[1] = 0;\n\thighPassUniformData[7] = 0;\n\tconst hBuffer = ctx.renderer.getTemporaryBuffer(highPassUniformData);\n\tdrawFullscreenPass(encoder, outTex1.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: hBuffer }\n\t\t\t}]\n\t\t}),\n\t\tcreateHighPassBindGroup1(tmpTex, tmpTex),\n\t\tsigBindGroup\n\t]);\n\thighPassUniformData[0] = 0;\n\thighPassUniformData[1] = 1;\n\thighPassUniformData[7] = 1;\n\tconst vBuffer = ctx.renderer.getTemporaryBuffer(highPassUniformData);\n\tdrawFullscreenPass(encoder, outTex2.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: vBuffer }\n\t\t\t}]\n\t\t}),\n\t\tcreateHighPassBindGroup1(outTex1, tmpTex),\n\t\tsigBindGroup\n\t]);\n\tdrawTextureToTarget(args, outTex2, op.opacity ?? 1);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer });\n\n//#endregion\nexport { MAX_RADIUS as a, HighPassResultSchema as i, HIGH_PASS_OUTPUT_TYPE_MAP as n, highPassConfig as o, HighPassNodeConfigSchema as r, renderers_default as t };\n//# sourceMappingURL=renderers-DUL8Peaw.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"renderer-jqByPgkD.mjs","names":[],"sources":["../../../nodes/node-high-pass/dist/renderers-DUL8Peaw.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { ImageResultSchema, VideoResultSchema, configBuilder, resolveHandleParam } from \"@framefields/node-sdk\";\nimport { FULLSCREEN_QUAD_WGSL, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout, signalTextureView, signalTiming, texturesLayout } from \"@framefields/node-sdk/gpu\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst MAX_RADIUS = 250;\nconst highPassConfig = configBuilder().field(\"radius\", z.number().min(.1).max(MAX_RADIUS).default(3), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Radius Signal\",\n\tdescription: \"The cutoff radius in pixels. Frequencies smaller than this radius are preserved.\"\n}).field(\"contrastBoost\", z.number().multipleOf(.01).min(1).max(10).default(1), {\n\tbindable: true,\n\tdataTypes: [\"Number\", \"Signal\"],\n\tlabel: \"Contrast Boost Signal\",\n\tdescription: \"Multiplier applied to the extracted high-frequency detail delta.\"\n}).field(\"monochrome\", z.boolean().default(true), { description: \"When enabled, high-pass delta is converted to luminance before centering on 50% neutral gray.\" }).build();\nconst HighPassNodeConfigSchema = highPassConfig.schema;\nconst HighPassResultSchema = z.union([ImageResultSchema, VideoResultSchema]);\nconst HIGH_PASS_OUTPUT_TYPE_MAP = {\n\tVideo: \"Video\",\n\tLottie: \"Video\",\n\tGIF: \"GIF\",\n\tImage: \"Image\",\n\tSVG: \"Image\"\n};\n\n//#endregion\n//#region src/renderers/webgpu-renderer.ts\nconst WGSL_HIGHPASS_UNIFORMS = `\nstruct HighPassUniforms {\n\tdirX : f32,\n\tdirY : f32,\n\tradius : f32,\n\tcontrastBoost : f32,\n\n\tmonochrome : f32,\n\thasRadiusSig : f32,\n\thasContrastSig : f32,\n\tisSecondPass : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : HighPassUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n@group(1) @binding(2) var origTex : texture_2d<f32>;\n\n@group(2) @binding(0) var radiusSigTex : texture_2d<f32>;\n@group(2) @binding(1) var contrastSigTex : 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\tlet dimensions = vec2<f32>(textureDimensions(tex));\n\tvar radius = u.radius;\n\tif (u.hasRadiusSig > 0.5) {\n\t\tradius = textureSampleLevel(radiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\tvar contrastBoost = u.contrastBoost;\n\tif (u.hasContrastSig > 0.5) {\n\t\tcontrastBoost = textureSampleLevel(contrastSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;\n\t}\n\n\tlet origCol = textureSampleLevel(origTex, samp, in.uv, 0.0);\n\tif (radius <= 0.0) {\n\t\tif (u.isSecondPass > 0.5) {\n\t\t\treturn vec4<f32>(vec3<f32>(0.5) * origCol.a, origCol.a);\n\t\t}\n\t\treturn origCol;\n\t}\n\n\tlet texelSize = 1.0 / dimensions;\n\tlet spatial_sigma = radius;\n\tlet stepScale = max(1.0, spatial_sigma / 20.0);\n\tlet effectiveSigma = spatial_sigma / stepScale;\n\tlet sampleRadius = min(i32(ceil(3.0 * effectiveSigma)), 64);\n\tlet direction = vec2<f32>(u.dirX, u.dirY);\n\n\tvar blurred = vec4<f32>(0.0);\n\tvar totalWeight = 0.0;\n\n\tfor (var i = -sampleRadius; i <= sampleRadius; i++) {\n\t\tlet offset = vec2<f32>(f32(i) * stepScale) * direction * texelSize;\n\t\tlet x = f32(i) * stepScale;\n\t\tlet weight = exp(-0.5 * (x / spatial_sigma) * (x / spatial_sigma));\n\t\tblurred += textureSampleLevel(tex, samp, in.uv + offset, 0.0) * weight;\n\t\ttotalWeight += weight;\n\t}\n\n\tlet blurResult = blurred / max(totalWeight, 1e-5);\n\n\tif (u.isSecondPass <= 0.5) {\n\t\t// Pass 1: Intermediate horizontal blur\n\t\treturn blurResult;\n\t}\n\n\t// Pass 2: Vertical blur complete -> Calculate High Pass difference against original\n\tif (origCol.a < 1e-5) {\n\t\treturn vec4<f32>(0.0, 0.0, 0.0, 0.0);\n\t}\n\n\tlet origUnpremult = origCol.rgb / origCol.a;\n\tlet blurUnpremult = blurResult.rgb / max(blurResult.a, 1e-5);\n\tlet diff = origUnpremult - blurUnpremult;\n\n\tvar highPassRgb : vec3<f32>;\n\tif (u.monochrome > 0.5) {\n\t\tlet lumaDiff = dot(diff, vec3<f32>(0.2126, 0.7152, 0.0722));\n\t\thighPassRgb = vec3<f32>(0.5) + vec3<f32>(lumaDiff * contrastBoost);\n\t} else {\n\t\thighPassRgb = vec3<f32>(0.5) + diff * contrastBoost;\n\t}\n\n\tlet clampedRgb = clamp(highPassRgb, vec3<f32>(0.0), vec3<f32>(1.0));\n\treturn vec4<f32>(clampedRgb * origCol.a, origCol.a);\n}\n`;\nconst deviceResourceCache = /* @__PURE__ */ new WeakMap();\nconst highPassUniformData = new Float32Array(8);\nfunction getHighPassResources(device, targetFormat) {\n\tconst cached = deviceResourceCache.get(device);\n\tif (cached) return cached;\n\tconst highPassUniformLayout = fragmentBindGroupLayout(device, [\"uniform\"]);\n\tconst singleTextureLayout = fragmentBindGroupLayout(device, [\n\t\t\"texture\",\n\t\t\"sampler\",\n\t\t\"texture\"\n\t]);\n\tconst signalTextureLayout = texturesLayout(device, 2);\n\tconst res = {\n\t\thighPassUniformLayout,\n\t\tsingleTextureLayout,\n\t\tsignalTextureLayout,\n\t\thighPassPipeline: createFullscreenPipeline(device, {\n\t\t\tmodule: device.createShaderModule({ code: WGSL_HIGHPASS_UNIFORMS }),\n\t\t\tlayouts: device.createPipelineLayout({ bindGroupLayouts: [\n\t\t\t\thighPassUniformLayout,\n\t\t\t\tsingleTextureLayout,\n\t\t\t\tsignalTextureLayout\n\t\t\t] }),\n\t\t\tformat: targetFormat\n\t\t})\n\t};\n\tdeviceResourceCache.set(device, res);\n\treturn res;\n}\nconst WebGPURenderer = async (args) => {\n\tconst { ctx, encoder, pass, targetTexture, targetWidth, targetHeight, props } = args;\n\tconst op = props.virtualMedia?.operation;\n\tif (op?.op !== \"HighPass\" || !op) return;\n\tconst childMedia = props.virtualMedia.children?.[0];\n\tif (!childMedia) return;\n\tpass.end();\n\tconst frame = props.frame ?? 0;\n\tconst fps = props.fps || 30;\n\tconst width = targetWidth;\n\tconst height = targetHeight;\n\tconst nodeId = op.inputs ? Object.keys(op.inputs)[0] : \"highpass_node\";\n\tconst resolveField = (handleId, fallbackVal, clampMin = 0, clampMax = 1e3) => resolveHandleParam(op.inputs, handleId, fallbackVal, clampMin, clampMax);\n\tconst radiusRes = resolveField(op.radiusHandleId, Number(op.radius ?? 3), .1, MAX_RADIUS);\n\tconst contrastRes = resolveField(op.contrastBoostHandleId, Number(op.contrastBoost ?? 1), 1, 10);\n\tconst { texture: tmpTex } = await drawChildToTexture(args, childMedia);\n\tconst { highPassPipeline: pipeline, highPassUniformLayout: uLayout, singleTextureLayout: tLayout, signalTextureLayout: sigLayout } = getHighPassResources(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 radiusView = getSignalView(radiusRes, \"radius_sig\");\n\tconst contrastView = getSignalView(contrastRes, \"contrast_sig\");\n\tconst createHighPassBindGroup1 = (inputTex, origTexture) => ctx.device.createBindGroup({\n\t\tlayout: tLayout,\n\t\tentries: [\n\t\t\t{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: inputTex.createView()\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: sampler\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 2,\n\t\t\t\tresource: origTexture.createView()\n\t\t\t}\n\t\t]\n\t});\n\thighPassUniformData[2] = radiusRes.val;\n\thighPassUniformData[3] = contrastRes.val;\n\thighPassUniformData[4] = op.monochrome ?? true ? 1 : 0;\n\thighPassUniformData[5] = radiusRes.hasStaticSig ? 1 : 0;\n\thighPassUniformData[6] = contrastRes.hasStaticSig ? 1 : 0;\n\thighPassUniformData[7] = 0;\n\tconst outTex1 = ctx.renderer.getTemporaryTexture(width, height, [\n\t\ttmpTex,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tconst outTex2 = ctx.renderer.getTemporaryTexture(width, height, [\n\t\ttmpTex,\n\t\toutTex1,\n\t\ttargetTexture,\n\t\t...props.excludeTextures || []\n\t]);\n\tconst sigBindGroup = ctx.device.createBindGroup({\n\t\tlayout: sigLayout,\n\t\tentries: [\n\t\t\t{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: radiusView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: contrastView\n\t\t\t},\n\t\t\t{\n\t\t\t\tbinding: 2,\n\t\t\t\tresource: sampler\n\t\t\t}\n\t\t]\n\t});\n\thighPassUniformData[0] = 1;\n\thighPassUniformData[1] = 0;\n\thighPassUniformData[7] = 0;\n\tconst hBuffer = ctx.renderer.getTemporaryBuffer(highPassUniformData);\n\tdrawFullscreenPass(encoder, outTex1.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: hBuffer }\n\t\t\t}]\n\t\t}),\n\t\tcreateHighPassBindGroup1(tmpTex, tmpTex),\n\t\tsigBindGroup\n\t]);\n\thighPassUniformData[0] = 0;\n\thighPassUniformData[1] = 1;\n\thighPassUniformData[7] = 1;\n\tconst vBuffer = ctx.renderer.getTemporaryBuffer(highPassUniformData);\n\tdrawFullscreenPass(encoder, outTex2.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: vBuffer }\n\t\t\t}]\n\t\t}),\n\t\tcreateHighPassBindGroup1(outTex1, tmpTex),\n\t\tsigBindGroup\n\t]);\n\tdrawTextureToTarget(args, outTex2, op.opacity ?? 1);\n};\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer });\n\n//#endregion\nexport { MAX_RADIUS as a, HighPassResultSchema as i, HIGH_PASS_OUTPUT_TYPE_MAP as n, highPassConfig as o, HighPassNodeConfigSchema as r, renderers_default as t };\n//# sourceMappingURL=renderers-DUL8Peaw.mjs.map"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { n as defineRenderer } from "./renderer-BSitV56h.mjs";
2
2
  import { i as VideoResultSchema, n as ImageResultSchema, t as ColorSchema } from "./dist-BY0bIWgr.mjs";
3
- import { a as createFullscreenPipeline, c as drawTextureToTarget, l as fragmentBindGroupLayout, n as PREMULTIPLIED_BLEND, s as drawFullscreenPass, t as FULLSCREEN_QUAD_WGSL } from "./gpu-AbcLcr1f.mjs";
3
+ import { a as createFullscreenPipeline, c as drawTextureToTarget, l as fragmentBindGroupLayout, n as PREMULTIPLIED_BLEND, s as drawFullscreenPass, t as FULLSCREEN_QUAD_WGSL } from "./gpu-Du7GpVFW.mjs";
4
4
  import { z } from "zod";
5
5
 
6
6
  //#region ../../nodes/node-layer-style/dist/renderers-Ch81UvXn.mjs
@@ -1258,4 +1258,4 @@ var renderers_default = defineRenderer({ WebGPURenderer });
1258
1258
 
1259
1259
  //#endregion
1260
1260
  export { renderers_default as t };
1261
- //# sourceMappingURL=renderer-DRpIQFAK.mjs.map
1261
+ //# sourceMappingURL=renderer-p_C_T9Kn.mjs.map