framefields 2.0.2

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 (408) hide show
  1. package/LICENCE +202 -0
  2. package/README.md +740 -0
  3. package/dist/audio/index.d.mts +5 -0
  4. package/dist/audio/index.mjs +14 -0
  5. package/dist/audio-Dvwwz8xU.d.mts +37 -0
  6. package/dist/audio-Dvwwz8xU.d.mts.map +1 -0
  7. package/dist/audio-TAvPwzLR.mjs +214 -0
  8. package/dist/audio-TAvPwzLR.mjs.map +1 -0
  9. package/dist/audio-x28ZgQBP.mjs +85 -0
  10. package/dist/audio-x28ZgQBP.mjs.map +1 -0
  11. package/dist/chunk-GMkBE123.mjs +47 -0
  12. package/dist/client-C74hb7fy.mjs +66 -0
  13. package/dist/client-C74hb7fy.mjs.map +1 -0
  14. package/dist/dist-1iUYuPct.mjs +1859 -0
  15. package/dist/dist-1iUYuPct.mjs.map +1 -0
  16. package/dist/dist-Bx6J0VcM.mjs +1859 -0
  17. package/dist/dist-Bx6J0VcM.mjs.map +1 -0
  18. package/dist/dist-C_hjvkdN.mjs +2220 -0
  19. package/dist/dist-C_hjvkdN.mjs.map +1 -0
  20. package/dist/dist-DKm2IyEJ.mjs +94 -0
  21. package/dist/dist-DKm2IyEJ.mjs.map +1 -0
  22. package/dist/dist-cjs-B5EVqDFp.mjs +85 -0
  23. package/dist/dist-cjs-B5EVqDFp.mjs.map +1 -0
  24. package/dist/dist-cjs-BGJkdexX.mjs +437 -0
  25. package/dist/dist-cjs-BGJkdexX.mjs.map +1 -0
  26. package/dist/dist-cjs-BKmGCgtm.mjs +9069 -0
  27. package/dist/dist-cjs-BKmGCgtm.mjs.map +1 -0
  28. package/dist/dist-cjs-BUc0_kg-.mjs +1091 -0
  29. package/dist/dist-cjs-BUc0_kg-.mjs.map +1 -0
  30. package/dist/dist-cjs-BUwe2XhR.mjs +153 -0
  31. package/dist/dist-cjs-BUwe2XhR.mjs.map +1 -0
  32. package/dist/dist-cjs-BWgoUCXJ.mjs +137 -0
  33. package/dist/dist-cjs-BWgoUCXJ.mjs.map +1 -0
  34. package/dist/dist-cjs-CmZEMtO6.mjs +6 -0
  35. package/dist/dist-cjs-D7kEM-Mj.mjs +181 -0
  36. package/dist/dist-cjs-D7kEM-Mj.mjs.map +1 -0
  37. package/dist/dist-cjs-DFUmy89O.mjs +48 -0
  38. package/dist/dist-cjs-DFUmy89O.mjs.map +1 -0
  39. package/dist/dist-cjs-Df7144zM.mjs +209 -0
  40. package/dist/dist-cjs-Df7144zM.mjs.map +1 -0
  41. package/dist/dist-cjs-DgxjcvBN.mjs +98 -0
  42. package/dist/dist-cjs-DgxjcvBN.mjs.map +1 -0
  43. package/dist/dist-cjs-DsMdld8l.mjs +5015 -0
  44. package/dist/dist-cjs-DsMdld8l.mjs.map +1 -0
  45. package/dist/dist-cjs-Dzs5P3K0.mjs +51 -0
  46. package/dist/dist-cjs-Dzs5P3K0.mjs.map +1 -0
  47. package/dist/dist-cjs-ECMuIF57.mjs +323 -0
  48. package/dist/dist-cjs-ECMuIF57.mjs.map +1 -0
  49. package/dist/dist-cjs-lYvO8aDo.mjs +64 -0
  50. package/dist/dist-cjs-lYvO8aDo.mjs.map +1 -0
  51. package/dist/dist-cjs-qEJrwjGk.mjs +66 -0
  52. package/dist/dist-cjs-qEJrwjGk.mjs.map +1 -0
  53. package/dist/dist-cjs-x5cwlqA5.mjs +43 -0
  54. package/dist/dist-cjs-x5cwlqA5.mjs.map +1 -0
  55. package/dist/dist-gjHmorxL.mjs +27479 -0
  56. package/dist/dist-gjHmorxL.mjs.map +1 -0
  57. package/dist/effects/index.d.mts +5 -0
  58. package/dist/effects/index.mjs +35 -0
  59. package/dist/effects-CHWORCYd.mjs +811 -0
  60. package/dist/effects-CHWORCYd.mjs.map +1 -0
  61. package/dist/event-streams-D-APZ7Ke.mjs +204 -0
  62. package/dist/event-streams-D-APZ7Ke.mjs.map +1 -0
  63. package/dist/fonts/index.d.mts +2 -0
  64. package/dist/fonts/index.mjs +3 -0
  65. package/dist/fonts-DrGTBJJk.mjs +188 -0
  66. package/dist/fonts-DrGTBJJk.mjs.map +1 -0
  67. package/dist/index-B0BNPEoH.d.mts +2117 -0
  68. package/dist/index-B0BNPEoH.d.mts.map +1 -0
  69. package/dist/index-BMVVmc4G.d.mts +72 -0
  70. package/dist/index-BMVVmc4G.d.mts.map +1 -0
  71. package/dist/index-D1ZsMpke.d.mts +264 -0
  72. package/dist/index-D1ZsMpke.d.mts.map +1 -0
  73. package/dist/index-D2jDC7O5.d.mts +3643 -0
  74. package/dist/index-D2jDC7O5.d.mts.map +1 -0
  75. package/dist/index-D2wJqSl5.d.mts +114 -0
  76. package/dist/index-D2wJqSl5.d.mts.map +1 -0
  77. package/dist/index-DKFGNyMB.d.mts +309 -0
  78. package/dist/index-DKFGNyMB.d.mts.map +1 -0
  79. package/dist/index-DiSKzDGR.d.mts +65 -0
  80. package/dist/index-DiSKzDGR.d.mts.map +1 -0
  81. package/dist/index.d.mts +4425 -0
  82. package/dist/index.d.mts.map +1 -0
  83. package/dist/index.mjs +2623 -0
  84. package/dist/index.mjs.map +1 -0
  85. package/dist/package-C58KmGKw.mjs +6 -0
  86. package/dist/package-C58KmGKw.mjs.map +1 -0
  87. package/dist/preview/index.d.mts +90 -0
  88. package/dist/preview/index.d.mts.map +1 -0
  89. package/dist/preview/index.mjs +15 -0
  90. package/dist/preview-engine/audio.mjs +1 -0
  91. package/dist/preview-engine/child_process-AIL2NBWS.mjs +1 -0
  92. package/dist/preview-engine/chunk-24P6DAB3.mjs +1 -0
  93. package/dist/preview-engine/chunk-37EFVZWT.mjs +1 -0
  94. package/dist/preview-engine/chunk-3O5OKR6D.mjs +223 -0
  95. package/dist/preview-engine/chunk-47VT677S.mjs +8 -0
  96. package/dist/preview-engine/chunk-4BEJJKEU.mjs +315 -0
  97. package/dist/preview-engine/chunk-4GEWSUX5.mjs +1 -0
  98. package/dist/preview-engine/chunk-55CCFPUX.mjs +237 -0
  99. package/dist/preview-engine/chunk-5JD65JSJ.mjs +110 -0
  100. package/dist/preview-engine/chunk-5UP7FSGT.mjs +294 -0
  101. package/dist/preview-engine/chunk-5XDHHOF2.mjs +367 -0
  102. package/dist/preview-engine/chunk-6YJP57MZ.mjs +729 -0
  103. package/dist/preview-engine/chunk-6ZOXGAYA.mjs +112 -0
  104. package/dist/preview-engine/chunk-AOLAHYVV.mjs +529 -0
  105. package/dist/preview-engine/chunk-B6PLCMBM.mjs +1 -0
  106. package/dist/preview-engine/chunk-BJKH76OM.mjs +264 -0
  107. package/dist/preview-engine/chunk-BUIQ5TUH.mjs +104 -0
  108. package/dist/preview-engine/chunk-BVF64D6H.mjs +1 -0
  109. package/dist/preview-engine/chunk-CA5N7JRZ.mjs +138 -0
  110. package/dist/preview-engine/chunk-CNSHAFEA.mjs +1 -0
  111. package/dist/preview-engine/chunk-CURR5X7D.mjs +1 -0
  112. package/dist/preview-engine/chunk-CVGM2U4J.mjs +47 -0
  113. package/dist/preview-engine/chunk-CYY366IE.mjs +1 -0
  114. package/dist/preview-engine/chunk-D5PHI6ET.mjs +109 -0
  115. package/dist/preview-engine/chunk-D7MZHP2Y.mjs +275 -0
  116. package/dist/preview-engine/chunk-DPPH3NK2.mjs +182 -0
  117. package/dist/preview-engine/chunk-DPST2XLC.mjs +418 -0
  118. package/dist/preview-engine/chunk-DRLEOHN5.mjs +1 -0
  119. package/dist/preview-engine/chunk-EDIZNO3P.mjs +1 -0
  120. package/dist/preview-engine/chunk-EHIIT4ZR.mjs +52 -0
  121. package/dist/preview-engine/chunk-FKZ4XXPE.mjs +1 -0
  122. package/dist/preview-engine/chunk-G3HW4VER.mjs +60 -0
  123. package/dist/preview-engine/chunk-G76HSKOS.mjs +184 -0
  124. package/dist/preview-engine/chunk-GYG2IIBR.mjs +1 -0
  125. package/dist/preview-engine/chunk-H2F5NVQ6.mjs +63 -0
  126. package/dist/preview-engine/chunk-H5BPCY7N.mjs +188 -0
  127. package/dist/preview-engine/chunk-HAXK42HG.mjs +997 -0
  128. package/dist/preview-engine/chunk-HXMDPMLB.mjs +1 -0
  129. package/dist/preview-engine/chunk-HYBAPT6I.mjs +1 -0
  130. package/dist/preview-engine/chunk-I4FH6HYU.mjs +73 -0
  131. package/dist/preview-engine/chunk-IYVN2QEL.mjs +1 -0
  132. package/dist/preview-engine/chunk-JPXQPP6J.mjs +1 -0
  133. package/dist/preview-engine/chunk-JWNHTRED.mjs +164 -0
  134. package/dist/preview-engine/chunk-KZOLCZIV.mjs +103 -0
  135. package/dist/preview-engine/chunk-L62MRHGZ.mjs +89 -0
  136. package/dist/preview-engine/chunk-LEEZXHQO.mjs +117 -0
  137. package/dist/preview-engine/chunk-LKYN3BM2.mjs +1 -0
  138. package/dist/preview-engine/chunk-LP3EP33S.mjs +610 -0
  139. package/dist/preview-engine/chunk-M2GRYRLM.mjs +111 -0
  140. package/dist/preview-engine/chunk-MC7TZZLD.mjs +134 -0
  141. package/dist/preview-engine/chunk-MT2DZQHO.mjs +1 -0
  142. package/dist/preview-engine/chunk-MTJHQATU.mjs +1 -0
  143. package/dist/preview-engine/chunk-N4LHIPHZ.mjs +340 -0
  144. package/dist/preview-engine/chunk-N4PWLBZ7.mjs +5 -0
  145. package/dist/preview-engine/chunk-NQZKBFC6.mjs +40 -0
  146. package/dist/preview-engine/chunk-NWRSVVTF.mjs +186 -0
  147. package/dist/preview-engine/chunk-P3HBP725.mjs +1 -0
  148. package/dist/preview-engine/chunk-PIAJWALT.mjs +1 -0
  149. package/dist/preview-engine/chunk-PJ3DVG45.mjs +1 -0
  150. package/dist/preview-engine/chunk-QP2NI4XD.mjs +82 -0
  151. package/dist/preview-engine/chunk-SA3JUR6D.mjs +52 -0
  152. package/dist/preview-engine/chunk-SRT2OCQW.mjs +1 -0
  153. package/dist/preview-engine/chunk-SWD76532.mjs +98 -0
  154. package/dist/preview-engine/chunk-SXX7HX34.mjs +191 -0
  155. package/dist/preview-engine/chunk-SZ7YRPKO.mjs +3 -0
  156. package/dist/preview-engine/chunk-TMRLZV5X.mjs +1 -0
  157. package/dist/preview-engine/chunk-U446SQP3.mjs +292 -0
  158. package/dist/preview-engine/chunk-UDNCEHUI.mjs +141 -0
  159. package/dist/preview-engine/chunk-V3H7WWOT.mjs +271 -0
  160. package/dist/preview-engine/chunk-V7ZVVUQU.mjs +108 -0
  161. package/dist/preview-engine/chunk-VJGK7MLJ.mjs +3 -0
  162. package/dist/preview-engine/chunk-VSSB73UU.mjs +58 -0
  163. package/dist/preview-engine/chunk-VXUJWPIK.mjs +1 -0
  164. package/dist/preview-engine/chunk-XD4GKD6H.mjs +5 -0
  165. package/dist/preview-engine/chunk-XKO4RYKN.mjs +3 -0
  166. package/dist/preview-engine/chunk-XOEEGC4Z.mjs +1 -0
  167. package/dist/preview-engine/chunk-YAQFFQPG.mjs +1 -0
  168. package/dist/preview-engine/chunk-YKMBRUAE.mjs +1 -0
  169. package/dist/preview-engine/chunk-YSTLMWCG.mjs +1 -0
  170. package/dist/preview-engine/chunk-Z4ERCLNF.mjs +1 -0
  171. package/dist/preview-engine/chunk-ZEYUXJIV.mjs +1 -0
  172. package/dist/preview-engine/chunk-ZX6APG6E.mjs +117 -0
  173. package/dist/preview-engine/effects.mjs +1 -0
  174. package/dist/preview-engine/esbuild-GWV7CM7D.mjs +1 -0
  175. package/dist/preview-engine/fonts.mjs +1 -0
  176. package/dist/preview-engine/framefields.mjs +1959 -0
  177. package/dist/preview-engine/onnxruntime-node-56GSZEH3.mjs +1 -0
  178. package/dist/preview-engine/player.mjs +155 -0
  179. package/dist/preview-engine/renderers-2AUSIYZN.mjs +1 -0
  180. package/dist/preview-engine/renderers-2QN6KZJP.mjs +1 -0
  181. package/dist/preview-engine/renderers-32SKW7ML.mjs +1 -0
  182. package/dist/preview-engine/renderers-5QYK6766.mjs +1 -0
  183. package/dist/preview-engine/renderers-6BJA6MSU.mjs +251 -0
  184. package/dist/preview-engine/renderers-6QAF3LQ2.mjs +1 -0
  185. package/dist/preview-engine/renderers-7AO5746S.mjs +296 -0
  186. package/dist/preview-engine/renderers-AFYKNM6N.mjs +1 -0
  187. package/dist/preview-engine/renderers-AGMH5CRH.mjs +1 -0
  188. package/dist/preview-engine/renderers-AHSGP6LY.mjs +126 -0
  189. package/dist/preview-engine/renderers-ASTBICLA.mjs +1 -0
  190. package/dist/preview-engine/renderers-BHVPLYNN.mjs +1 -0
  191. package/dist/preview-engine/renderers-D7PVQFVU.mjs +1 -0
  192. package/dist/preview-engine/renderers-DB4ABTNA.mjs +1 -0
  193. package/dist/preview-engine/renderers-F2NFJI5L.mjs +1 -0
  194. package/dist/preview-engine/renderers-FI7YHNLY.mjs +1 -0
  195. package/dist/preview-engine/renderers-GBHULMPH.mjs +1 -0
  196. package/dist/preview-engine/renderers-GUKQUMGG.mjs +55 -0
  197. package/dist/preview-engine/renderers-HGT7QDY3.mjs +1 -0
  198. package/dist/preview-engine/renderers-HOYLA7ZK.mjs +1 -0
  199. package/dist/preview-engine/renderers-KKI2D3MZ.mjs +1 -0
  200. package/dist/preview-engine/renderers-KRAJNV4E.mjs +1 -0
  201. package/dist/preview-engine/renderers-KUGZKSVE.mjs +1 -0
  202. package/dist/preview-engine/renderers-L2EQQIOC.mjs +1 -0
  203. package/dist/preview-engine/renderers-LK3NRMGR.mjs +1 -0
  204. package/dist/preview-engine/renderers-LX654SZ3.mjs +1 -0
  205. package/dist/preview-engine/renderers-MCFQFYEL.mjs +1 -0
  206. package/dist/preview-engine/renderers-O6HOYIPS.mjs +1 -0
  207. package/dist/preview-engine/renderers-OEVXCGE2.mjs +1 -0
  208. package/dist/preview-engine/renderers-QVD6C4CS.mjs +1 -0
  209. package/dist/preview-engine/renderers-R3XEYD5V.mjs +248 -0
  210. package/dist/preview-engine/renderers-RBFWJWVM.mjs +1 -0
  211. package/dist/preview-engine/renderers-RX3VLVLO.mjs +1 -0
  212. package/dist/preview-engine/renderers-SM6JP64K.mjs +1 -0
  213. package/dist/preview-engine/renderers-TKMAATVS.mjs +1 -0
  214. package/dist/preview-engine/renderers-UGZUPONY.mjs +1 -0
  215. package/dist/preview-engine/renderers-UTFXZE3G.mjs +1 -0
  216. package/dist/preview-engine/renderers-UWPH7HBH.mjs +1 -0
  217. package/dist/preview-engine/renderers-UZGECFVO.mjs +1 -0
  218. package/dist/preview-engine/renderers-VGU3LNLT.mjs +1 -0
  219. package/dist/preview-engine/renderers-W3VVM5HB.mjs +1 -0
  220. package/dist/preview-engine/renderers-WJUTT5BB.mjs +1 -0
  221. package/dist/preview-engine/renderers-XA2M4YXK.mjs +1 -0
  222. package/dist/preview-engine/renderers-XIHRFEFQ.mjs +1 -0
  223. package/dist/preview-engine/renderers-XJTA5MFG.mjs +1 -0
  224. package/dist/preview-engine/renderers-XLTY5APF.mjs +1 -0
  225. package/dist/preview-engine/renderers-XZ3VXFGZ.mjs +1 -0
  226. package/dist/preview-engine/renderers-YKUQUCTO.mjs +124 -0
  227. package/dist/preview-engine/renderers-YVN3EIOP.mjs +1 -0
  228. package/dist/preview-engine/renderers-YWRP23SZ.mjs +125 -0
  229. package/dist/preview-engine/renderers-ZPWOUWZJ.mjs +120 -0
  230. package/dist/preview-engine/resvg-js-VMU4A77S.mjs +1 -0
  231. package/dist/preview-engine/server-utils-2FAIV45N.mjs +1 -0
  232. package/dist/preview-engine/sharp-V6ZTBNDW.mjs +1 -0
  233. package/dist/preview-engine/shims/fs-promises.mjs +1 -0
  234. package/dist/preview-engine/shims/fs.mjs +1 -0
  235. package/dist/preview-engine/shims/module.mjs +1 -0
  236. package/dist/preview-engine/shims/os.mjs +1 -0
  237. package/dist/preview-engine/shims/path.mjs +1 -0
  238. package/dist/preview-engine/shims/url.mjs +1 -0
  239. package/dist/preview-engine/signals.mjs +1 -0
  240. package/dist/preview-engine/webgpu-NSSANM4F.mjs +1 -0
  241. package/dist/preview-uQM210iy.mjs +2149 -0
  242. package/dist/preview-uQM210iy.mjs.map +1 -0
  243. package/dist/program-Dl510wmI.mjs +5183 -0
  244. package/dist/program-Dl510wmI.mjs.map +1 -0
  245. package/dist/renderer/index.d.mts +3 -0
  246. package/dist/renderer/index.mjs +6 -0
  247. package/dist/renderer-3BNskNuJ.mjs +3 -0
  248. package/dist/renderer-7DOcIxFG.mjs +288 -0
  249. package/dist/renderer-7DOcIxFG.mjs.map +1 -0
  250. package/dist/renderer-9dHlMQGX.mjs +3 -0
  251. package/dist/renderer-B1CvhW4p.mjs +677 -0
  252. package/dist/renderer-B1CvhW4p.mjs.map +1 -0
  253. package/dist/renderer-B2XzjK0z.mjs +3 -0
  254. package/dist/renderer-B80s47yo.mjs +166 -0
  255. package/dist/renderer-B80s47yo.mjs.map +1 -0
  256. package/dist/renderer-B9-QSJcG.mjs +479 -0
  257. package/dist/renderer-B9-QSJcG.mjs.map +1 -0
  258. package/dist/renderer-BAQmR0Zo.mjs +3 -0
  259. package/dist/renderer-BDLnExoP.mjs +127 -0
  260. package/dist/renderer-BDLnExoP.mjs.map +1 -0
  261. package/dist/renderer-BGXU6vcW.mjs +270 -0
  262. package/dist/renderer-BGXU6vcW.mjs.map +1 -0
  263. package/dist/renderer-BGvORwkQ.mjs +3 -0
  264. package/dist/renderer-BLikd6BK.mjs +3 -0
  265. package/dist/renderer-BMovYRoR.mjs +3 -0
  266. package/dist/renderer-BQHbp-Sp.mjs +243 -0
  267. package/dist/renderer-BQHbp-Sp.mjs.map +1 -0
  268. package/dist/renderer-BREIjsUU.mjs +252 -0
  269. package/dist/renderer-BREIjsUU.mjs.map +1 -0
  270. package/dist/renderer-BSbTJBWc.mjs +3 -0
  271. package/dist/renderer-BTu2EVhF.mjs +3 -0
  272. package/dist/renderer-BU1rwNRT.mjs +3 -0
  273. package/dist/renderer-BXMmISWG.mjs +499 -0
  274. package/dist/renderer-BXMmISWG.mjs.map +1 -0
  275. package/dist/renderer-BZJm3m4f.mjs +3 -0
  276. package/dist/renderer-B_NuVaIP.mjs +744 -0
  277. package/dist/renderer-B_NuVaIP.mjs.map +1 -0
  278. package/dist/renderer-BfJSUjPN.mjs +3 -0
  279. package/dist/renderer-BqyAgNt3.mjs +3 -0
  280. package/dist/renderer-BryTM2g7.mjs +3 -0
  281. package/dist/renderer-BsgIcBKH.mjs +391 -0
  282. package/dist/renderer-BsgIcBKH.mjs.map +1 -0
  283. package/dist/renderer-ByDhfrPE.mjs +422 -0
  284. package/dist/renderer-ByDhfrPE.mjs.map +1 -0
  285. package/dist/renderer-C-H680_l.mjs +3 -0
  286. package/dist/renderer-C17wL9QX.mjs +181 -0
  287. package/dist/renderer-C17wL9QX.mjs.map +1 -0
  288. package/dist/renderer-C2n-EHxg.mjs +1 -0
  289. package/dist/renderer-CB5aWAaf.mjs +343 -0
  290. package/dist/renderer-CB5aWAaf.mjs.map +1 -0
  291. package/dist/renderer-CB7lH5K8.mjs +3 -0
  292. package/dist/renderer-CDLrNgfo.mjs +3 -0
  293. package/dist/renderer-CDOUAN7X.mjs +454 -0
  294. package/dist/renderer-CDOUAN7X.mjs.map +1 -0
  295. package/dist/renderer-CH8sdfYX.mjs +387 -0
  296. package/dist/renderer-CH8sdfYX.mjs.map +1 -0
  297. package/dist/renderer-CIvaRnP_.mjs +261 -0
  298. package/dist/renderer-CIvaRnP_.mjs.map +1 -0
  299. package/dist/renderer-CMzEjdzi.mjs +369 -0
  300. package/dist/renderer-CMzEjdzi.mjs.map +1 -0
  301. package/dist/renderer-COkcU3db.mjs +3302 -0
  302. package/dist/renderer-COkcU3db.mjs.map +1 -0
  303. package/dist/renderer-CQCoggIa.mjs +3 -0
  304. package/dist/renderer-CQdVj2JS.mjs +3 -0
  305. package/dist/renderer-CQiTodg9.mjs +337 -0
  306. package/dist/renderer-CQiTodg9.mjs.map +1 -0
  307. package/dist/renderer-CV2m6k1V.mjs +3 -0
  308. package/dist/renderer-CYY-poLe.mjs +3 -0
  309. package/dist/renderer-CZgB5st8.mjs +3 -0
  310. package/dist/renderer-C_Ki91kc.mjs +3 -0
  311. package/dist/renderer-CclIvsLO.mjs +3 -0
  312. package/dist/renderer-Cj-whdVr.mjs +655 -0
  313. package/dist/renderer-Cj-whdVr.mjs.map +1 -0
  314. package/dist/renderer-CkykdR_D.mjs +3 -0
  315. package/dist/renderer-Cl1oUXMi.mjs +1143 -0
  316. package/dist/renderer-Cl1oUXMi.mjs.map +1 -0
  317. package/dist/renderer-CmApuKjS.mjs +3 -0
  318. package/dist/renderer-CpkiHRhh.mjs +269 -0
  319. package/dist/renderer-CpkiHRhh.mjs.map +1 -0
  320. package/dist/renderer-CszOjcRW.mjs +3 -0
  321. package/dist/renderer-CtVkU_GA.mjs +44 -0
  322. package/dist/renderer-CtVkU_GA.mjs.map +1 -0
  323. package/dist/renderer-Cu074POw.mjs +3 -0
  324. package/dist/renderer-CwQhzcUn.mjs +644 -0
  325. package/dist/renderer-CwQhzcUn.mjs.map +1 -0
  326. package/dist/renderer-CzPWB0Ss.mjs +273 -0
  327. package/dist/renderer-CzPWB0Ss.mjs.map +1 -0
  328. package/dist/renderer-D4qLmox-.mjs +3 -0
  329. package/dist/renderer-D6bWQtr-.mjs +3 -0
  330. package/dist/renderer-D6cJ6MSq.mjs +3 -0
  331. package/dist/renderer-D7EX8IjU.mjs +240 -0
  332. package/dist/renderer-D7EX8IjU.mjs.map +1 -0
  333. package/dist/renderer-DDp7_TUi.d.mts +10 -0
  334. package/dist/renderer-DDp7_TUi.d.mts.map +1 -0
  335. package/dist/renderer-DFKsLrUs.mjs +256 -0
  336. package/dist/renderer-DFKsLrUs.mjs.map +1 -0
  337. package/dist/renderer-DPSsf8-t.mjs +3 -0
  338. package/dist/renderer-DQLGnEFc.mjs +3 -0
  339. package/dist/renderer-DY2SVYUW.mjs +3 -0
  340. package/dist/renderer-DZGtBUCx.mjs +792 -0
  341. package/dist/renderer-DZGtBUCx.mjs.map +1 -0
  342. package/dist/renderer-DabG62XS.mjs +406 -0
  343. package/dist/renderer-DabG62XS.mjs.map +1 -0
  344. package/dist/renderer-DbaQLI4z.mjs +771 -0
  345. package/dist/renderer-DbaQLI4z.mjs.map +1 -0
  346. package/dist/renderer-DjI45OYC.mjs +71 -0
  347. package/dist/renderer-DjI45OYC.mjs.map +1 -0
  348. package/dist/renderer-Dm08-hAU.mjs +323 -0
  349. package/dist/renderer-Dm08-hAU.mjs.map +1 -0
  350. package/dist/renderer-DoAY5JbB.mjs +4 -0
  351. package/dist/renderer-Dp_FfvF-.mjs +401 -0
  352. package/dist/renderer-Dp_FfvF-.mjs.map +1 -0
  353. package/dist/renderer-Dt6fzgX5.mjs +756 -0
  354. package/dist/renderer-Dt6fzgX5.mjs.map +1 -0
  355. package/dist/renderer-DuplLRbp.mjs +3 -0
  356. package/dist/renderer-DvfUbZ31.mjs +3 -0
  357. package/dist/renderer-DxjVQV6f.mjs +311 -0
  358. package/dist/renderer-DxjVQV6f.mjs.map +1 -0
  359. package/dist/renderer-Fco4EmAu.mjs +23868 -0
  360. package/dist/renderer-Fco4EmAu.mjs.map +1 -0
  361. package/dist/renderer-HFfcJlmR.mjs +981 -0
  362. package/dist/renderer-HFfcJlmR.mjs.map +1 -0
  363. package/dist/renderer-I-Sw3JBB.mjs +145 -0
  364. package/dist/renderer-I-Sw3JBB.mjs.map +1 -0
  365. package/dist/renderer-OWQmmg4Z.mjs +697 -0
  366. package/dist/renderer-OWQmmg4Z.mjs.map +1 -0
  367. package/dist/renderer-Q_uUQipO.mjs +3 -0
  368. package/dist/renderer-Ryo2CEFD.mjs +586 -0
  369. package/dist/renderer-Ryo2CEFD.mjs.map +1 -0
  370. package/dist/renderer-Tp6OXWNZ.mjs +257 -0
  371. package/dist/renderer-Tp6OXWNZ.mjs.map +1 -0
  372. package/dist/renderer-UQFCgeNx.mjs +3 -0
  373. package/dist/renderer-WkVrkCVA.mjs +83 -0
  374. package/dist/renderer-WkVrkCVA.mjs.map +1 -0
  375. package/dist/renderer-XcmYTd6P.mjs +3818 -0
  376. package/dist/renderer-XcmYTd6P.mjs.map +1 -0
  377. package/dist/renderer-_uvdg48N.mjs +333 -0
  378. package/dist/renderer-_uvdg48N.mjs.map +1 -0
  379. package/dist/renderer-bZU_ndxf.mjs +8 -0
  380. package/dist/renderer-bZU_ndxf.mjs.map +1 -0
  381. package/dist/renderer-eMsnzJg9.mjs +3 -0
  382. package/dist/renderer-ho_jXJ0H.mjs +254 -0
  383. package/dist/renderer-ho_jXJ0H.mjs.map +1 -0
  384. package/dist/renderer-k2JL79kM.mjs +306 -0
  385. package/dist/renderer-k2JL79kM.mjs.map +1 -0
  386. package/dist/renderer-pHiz78e0.mjs +3 -0
  387. package/dist/renderer-pxXf9dvk.mjs +394 -0
  388. package/dist/renderer-pxXf9dvk.mjs.map +1 -0
  389. package/dist/renderer-vCFTm0oe.mjs +226 -0
  390. package/dist/renderer-vCFTm0oe.mjs.map +1 -0
  391. package/dist/renderer-vvpdx1vk.mjs +379 -0
  392. package/dist/renderer-vvpdx1vk.mjs.map +1 -0
  393. package/dist/renderer-x2s9LmVL.mjs +1121 -0
  394. package/dist/renderer-x2s9LmVL.mjs.map +1 -0
  395. package/dist/renderers-BWg16W-V-BXG_cjhM.mjs +49 -0
  396. package/dist/renderers-BWg16W-V-BXG_cjhM.mjs.map +1 -0
  397. package/dist/signals/index.d.mts +7 -0
  398. package/dist/signals/index.mjs +10 -0
  399. package/dist/signals-BwbdO3AN.mjs +224 -0
  400. package/dist/signals-BwbdO3AN.mjs.map +1 -0
  401. package/dist/signin-CZj4Oc5s.mjs +865 -0
  402. package/dist/signin-CZj4Oc5s.mjs.map +1 -0
  403. package/dist/sso-oidc-C0_31ThY.mjs +1051 -0
  404. package/dist/sso-oidc-C0_31ThY.mjs.map +1 -0
  405. package/dist/sts-DD4ggEXC.mjs +6 -0
  406. package/dist/sts-nXw8RDJI.mjs +1395 -0
  407. package/dist/sts-nXw8RDJI.mjs.map +1 -0
  408. package/package.json +173 -0
@@ -0,0 +1,186 @@
1
+ import{a as K}from"./chunk-XOEEGC4Z.mjs";import{b as J,c as Q}from"./chunk-IYVN2QEL.mjs";import{a as s}from"./chunk-NQZKBFC6.mjs";import{a as j}from"./chunk-YSTLMWCG.mjs";import{d as q}from"./chunk-6YJP57MZ.mjs";import{e as b}from"./chunk-BVF64D6H.mjs";b();b();b();b();var R=500,I=100,c=4096,Pe=s.object({id:s.string().default(()=>Math.random().toString(36).substring(7)),centerX:s.number().min(0).max(1).default(.5),centerY:s.number().min(0).max(1).default(.5),offsetX:s.number().min(-c).max(c).default(50),offsetY:s.number().min(-c).max(c).default(0),radius:s.number().min(1).max(R).default(25),sourceRadius:s.number().min(1).max(R).default(25),feather:s.number().min(0).max(I).default(50),opacity:s.number().min(0).max(1).default(1),mode:s.enum(["Clone","SeamlessHeal","TextureTransfer"]).default("SeamlessHeal")}),Ge=K().field("patches",s.array(Pe).optional(),{label:"Patches",description:"List of patch healing operations applied sequentially."}).field("centerX",s.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center X Signal",description:"Horizontal normalized position of destination patch (0.0 to 1.0)."}).field("centerY",s.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center Y Signal",description:"Vertical normalized position of destination patch (0.0 to 1.0)."}).field("offsetX",s.number().min(-c).max(c).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Offset X Signal",description:"Horizontal pixel distance from destination to sample source patch."}).field("offsetY",s.number().min(-c).max(c).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Offset Y Signal",description:"Vertical pixel distance from destination to sample source patch."}).field("radius",s.number().min(1).max(R).default(25),{bindable:!0,dataTypes:["Number","Signal"],label:"Target Radius Signal",description:"Radius of the destination circular patch in pixels (used when no explicit Mask input is connected)."}).field("sourceRadius",s.number().min(1).max(R).default(25),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Radius Signal",description:"Radius of the source sample circular patch in pixels."}).field("feather",s.number().min(0).max(I).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Feather Signal",description:"Softness edge falloff percentage (0\u2013100%)."}).field("opacity",s.number().min(0).max(1).default(1),{bindable:!0,dataTypes:["Number","Signal"],label:"Opacity Signal",description:"Blending opacity of the healed patch (0.0\u20131.0)."}).field("mode",s.enum(["Clone","SeamlessHeal","TextureTransfer"]).default("SeamlessHeal"),{label:"Healing Mode",description:"Healing algorithm: Clone (direct stamp), SeamlessHeal (Poisson color/lighting blend), TextureTransfer (luminance structure matching)."}).build(),Ve=Ge.schema;function Z(a){if(a?.patches&&a.patches.length>0)return a.patches.map((r,P)=>({id:r.id||`patch-${P+1}`,centerX:r.centerX??.5,centerY:r.centerY??.5,offsetX:r.offsetX??50,offsetY:r.offsetY??0,radius:r.radius??25,sourceRadius:r.sourceRadius??r.radius??25,feather:r.feather??50,opacity:r.opacity??1,mode:r.mode??"SeamlessHeal"}));let e=a?.radius??25;return[{id:"patch-1",centerX:a?.centerX??.5,centerY:a?.centerY??.5,offsetX:a?.offsetX??50,offsetY:a?.offsetY??0,radius:e,sourceRadius:a?.sourceRadius??e,feather:a?.feather??50,opacity:a?.opacity??1,mode:a?.mode??"SeamlessHeal"}]}var _e=s.union([J,Q]);var Ce=`
2
+ struct VertexOutput {
3
+ @builtin(position) position : vec4<f32>,
4
+ @location(0) uv : vec2<f32>,
5
+ };
6
+
7
+ @vertex
8
+ fn vs_main(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {
9
+ var pos = array<vec2<f32>, 4>(
10
+ vec2<f32>(-1.0, 1.0),
11
+ vec2<f32>( 1.0, 1.0),
12
+ vec2<f32>(-1.0, -1.0),
13
+ vec2<f32>( 1.0, -1.0)
14
+ );
15
+ var uvs = array<vec2<f32>, 4>(
16
+ vec2<f32>(0.0, 0.0),
17
+ vec2<f32>(1.0, 0.0),
18
+ vec2<f32>(0.0, 1.0),
19
+ vec2<f32>(1.0, 1.0)
20
+ );
21
+ var output : VertexOutput;
22
+ output.position = vec4<f32>(pos[vertexIndex], 0.0, 1.0);
23
+ output.uv = uvs[vertexIndex];
24
+ return output;
25
+ }
26
+ `,Me=`
27
+ struct PatchHealUniforms {
28
+ offsetX : f32,
29
+ offsetY : f32,
30
+ centerX : f32,
31
+ centerY : f32,
32
+
33
+ radius : f32,
34
+ sourceRadius : f32,
35
+ feather : f32,
36
+ opacity : f32,
37
+
38
+ mode : f32,
39
+ hasMask : f32,
40
+ hasOffsetXSig : f32,
41
+ hasOffsetYSig : f32,
42
+
43
+ hasCenterXSig : f32,
44
+ hasCenterYSig : f32,
45
+ hasRadiusSig : f32,
46
+ hasSourceRadSig : f32,
47
+
48
+ hasFeatherSig : f32,
49
+ hasOpacitySig : f32,
50
+ pad0 : f32,
51
+ pad1 : f32,
52
+ };
53
+ `,Xe=`
54
+ ${Me}
55
+
56
+ @group(0) @binding(0) var<uniform> u : PatchHealUniforms;
57
+
58
+ @group(1) @binding(0) var srcTex : texture_2d<f32>;
59
+ @group(1) @binding(1) var maskTex : texture_2d<f32>;
60
+ @group(1) @binding(2) var samp : sampler;
61
+
62
+ @group(2) @binding(0) var offsetXSigTex : texture_2d<f32>;
63
+ @group(2) @binding(1) var offsetYSigTex : texture_2d<f32>;
64
+ @group(2) @binding(2) var centerXSigTex : texture_2d<f32>;
65
+ @group(2) @binding(3) var centerYSigTex : texture_2d<f32>;
66
+ @group(2) @binding(4) var radiusSigTex : texture_2d<f32>;
67
+ @group(2) @binding(5) var sourceRadSigTex : texture_2d<f32>;
68
+ @group(2) @binding(6) var featherSigTex : texture_2d<f32>;
69
+ @group(2) @binding(7) var opacitySigTex : texture_2d<f32>;
70
+ @group(2) @binding(8) var signalSamp : sampler;
71
+
72
+ fn getLuminance(c : vec3<f32>) -> f32 {
73
+ return dot(c, vec3<f32>(0.2126, 0.7152, 0.0722));
74
+ }
75
+
76
+ fn sampleBoxBlur(tex : texture_2d<f32>, smp : sampler, centerUv : vec2<f32>, blurPx : f32, dims : vec2<f32>) -> vec4<f32> {
77
+ let texel = 1.0 / dims;
78
+ let stepSize = max(1.0, blurPx / 3.0);
79
+ var accum = vec4<f32>(0.0);
80
+ var count = 0.0;
81
+
82
+ for (var y = -2; y <= 2; y++) {
83
+ for (var x = -2; x <= 2; x++) {
84
+ let offset = vec2<f32>(f32(x) * stepSize, f32(y) * stepSize) * texel;
85
+ let sampleUv = clamp(centerUv + offset, vec2<f32>(0.0), vec2<f32>(1.0));
86
+ accum += textureSampleLevel(tex, smp, sampleUv, 0.0);
87
+ count += 1.0;
88
+ }
89
+ }
90
+ return accum / count;
91
+ }
92
+
93
+ @fragment
94
+ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
95
+ let dimensions = vec2<f32>(textureDimensions(srcTex));
96
+
97
+ var offsetX = u.offsetX;
98
+ if (u.hasOffsetXSig > 0.5) {
99
+ offsetX = textureSampleLevel(offsetXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
100
+ }
101
+ var offsetY = u.offsetY;
102
+ if (u.hasOffsetYSig > 0.5) {
103
+ offsetY = textureSampleLevel(offsetYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
104
+ }
105
+ var centerX = u.centerX;
106
+ if (u.hasCenterXSig > 0.5) {
107
+ centerX = textureSampleLevel(centerXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
108
+ }
109
+ var centerY = u.centerY;
110
+ if (u.hasCenterYSig > 0.5) {
111
+ centerY = textureSampleLevel(centerYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
112
+ }
113
+ var radius = u.radius;
114
+ if (u.hasRadiusSig > 0.5) {
115
+ radius = textureSampleLevel(radiusSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
116
+ }
117
+ var sourceRadius = u.sourceRadius;
118
+ if (u.hasSourceRadSig > 0.5) {
119
+ sourceRadius = textureSampleLevel(sourceRadSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
120
+ }
121
+ var feather = u.feather;
122
+ if (u.hasFeatherSig > 0.5) {
123
+ feather = textureSampleLevel(featherSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
124
+ }
125
+ var opacity = u.opacity;
126
+ if (u.hasOpacitySig > 0.5) {
127
+ opacity = textureSampleLevel(opacitySigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
128
+ }
129
+
130
+ let dstCol = textureSampleLevel(srcTex, samp, in.uv, 0.0);
131
+
132
+ // Calculate mask weight (either from explicit mask or procedural circular patch)
133
+ var maskWeight = 0.0;
134
+ let targetCenterUV = vec2<f32>(centerX, centerY);
135
+
136
+ if (u.hasMask > 0.5) {
137
+ let maskCol = textureSampleLevel(maskTex, samp, in.uv, 0.0);
138
+ maskWeight = max(maskCol.a, max(maskCol.r, max(maskCol.g, maskCol.b)));
139
+ } else {
140
+ let distPx = length((in.uv - targetCenterUV) * dimensions);
141
+ let innerRadius = radius * max(0.0, 1.0 - feather / 100.0);
142
+ maskWeight = 1.0 - smoothstep(innerRadius, max(innerRadius + 0.001, radius), distPx);
143
+ }
144
+
145
+ let blendWeight = clamp(maskWeight * opacity, 0.0, 1.0);
146
+ if (blendWeight < 1e-4) {
147
+ return dstCol;
148
+ }
149
+
150
+ // Compute source sample coordinate (scaling from sourceRadius to target radius if different)
151
+ let sourceCenterUV = targetCenterUV + vec2<f32>(offsetX, offsetY) / dimensions;
152
+ let srcScale = max(1.0, sourceRadius) / max(1.0, radius);
153
+ let uvFromTargetCenter = in.uv - targetCenterUV;
154
+ let srcUV = clamp(sourceCenterUV + uvFromTargetCenter * srcScale, vec2<f32>(0.0), vec2<f32>(1.0));
155
+ let srcCol = textureSampleLevel(srcTex, samp, srcUV, 0.0);
156
+
157
+ var healedCol = srcCol;
158
+
159
+ if (u.mode > 0.5 && u.mode < 1.5) {
160
+ // Mode 1: Seamless Heal (Poisson gradient / local illumination matching)
161
+ let blurRadius = max(4.0, radius * 0.4);
162
+ let srcBlur = sampleBoxBlur(srcTex, samp, srcUV, blurRadius, dimensions);
163
+ let dstBlur = sampleBoxBlur(srcTex, samp, in.uv, blurRadius, dimensions);
164
+
165
+ let srcDetail = srcCol.rgb - srcBlur.rgb;
166
+ let healedRgb = dstBlur.rgb + srcDetail;
167
+ let clampedRgb = clamp(healedRgb, vec3<f32>(0.0), vec3<f32>(srcCol.a));
168
+ healedCol = vec4<f32>(clampedRgb, srcCol.a);
169
+ } else if (u.mode >= 1.5) {
170
+ // Mode 2: Texture Transfer (Luminance structure matching)
171
+ let blurRadius = max(4.0, radius * 0.4);
172
+ let srcBlur = sampleBoxBlur(srcTex, samp, srcUV, blurRadius, dimensions);
173
+
174
+ let lumaSrc = getLuminance(srcCol.rgb);
175
+ let lumaSrcBlur = getLuminance(srcBlur.rgb);
176
+ let lumaDelta = lumaSrc - lumaSrcBlur;
177
+
178
+ let healedRgb = dstCol.rgb + vec3<f32>(lumaDelta);
179
+ let clampedRgb = clamp(healedRgb, vec3<f32>(0.0), vec3<f32>(dstCol.a));
180
+ healedCol = vec4<f32>(clampedRgb, dstCol.a);
181
+ }
182
+
183
+ return mix(dstCol, healedCol, blendWeight);
184
+ }
185
+ `,ee=new WeakMap;function He(a,e){let r=ee.get(a);if(r)return r;let P=a.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),U=a.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),v=a.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:5,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:6,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:7,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:8,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),L=a.createShaderModule({code:`${Ce}
186
+ ${Xe}`}),F=a.createPipelineLayout({bindGroupLayouts:[P,U,v]}),i=a.createRenderPipeline({layout:F,vertex:{module:L,entryPoint:"vs_main"},fragment:{module:L,entryPoint:"fs_main",targets:[{format:e,blend:{color:{srcFactor:"one",dstFactor:"zero",operation:"add"},alpha:{srcFactor:"one",dstFactor:"zero",operation:"add"}}}]},primitive:{topology:"triangle-strip"}});return r={uniformLayout:P,textureLayout:U,signalTextureLayout:v,pipeline:i},ee.set(a,r),r}var te=async a=>{let{ctx:e,encoder:r,pass:P,targetView:U,targetTexture:v,targetWidth:L,targetHeight:F,props:i,drawChild:E}=a,m=i.virtualMedia?.operation;if(m?.op!=="PatchHeal"||!m)return;let N=i.virtualMedia?.children?.[0];if(!N)return;P.end();let l=L,u=F,D=i.frame??0,O=i.fps||30,ae=m.inputs?Object.keys(m.inputs)[0]:"patch_heal_node",Y=q,h=e.renderer.getTemporaryTexture(l,u,[...i.excludeTextures||[],v]),V=h.createView();e.renderer.beginFrame(r,V,{r:0,g:0,b:0,a:0},l,u,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:l,height:u}),e.renderer.pushIdentity(),await E(N,{...i,virtualMedia:N,renderId:`${i.renderId}-src`,excludeTextures:[...i.excludeTextures||[],h]},V,h,l,u),e.renderer.popTransform(),e.renderer.popScissor();let f=null;if(m.maskMedia){f=e.renderer.getTemporaryTexture(l,u,[...i.excludeTextures||[],v,h]);let p=f.createView();e.renderer.beginFrame(r,p,{r:0,g:0,b:0,a:0},l,u,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:l,height:u}),e.renderer.pushIdentity(),await E(m.maskMedia,{...i,virtualMedia:m.maskMedia,renderId:`${i.renderId}-mask`,excludeTextures:[...i.excludeTextures||[],h,f]},p,f,l,u),e.renderer.popTransform(),e.renderer.popScissor()}let{pipeline:re,uniformLayout:ie,textureLayout:se,signalTextureLayout:ne}=He(e.device,e.renderer.format),W=e.renderer.samplerCache.getSampler(e.device),oe=i.elapsedMs!==void 0?i.elapsedMs/1e3:D/O,le=i.virtualMedia?.metadata?.durationMs?i.virtualMedia.metadata.durationMs/1e3:i.durationMs!==void 0?i.durationMs/1e3:0,B=Z(m),S=(p,t,d,y)=>{let H=`${p}HandleId`,G=m[H],o=G?m.inputs?.[G]:null,C=!!(o?.connectionValid&&(o.outputItem?.type==="Signal"||o.outputItem?.type==="Numeric")),T=C&&o?.outputItem?.data?o.outputItem.data:null,x=t,M=!1;if(C)T&&(x=Math.max(d,Math.min(y,Number(T.offset??0))),M=!0);else if(o?.connectionValid&&o.outputItem?.type==="Number"){let g=typeof o.outputItem.data=="number"?o.outputItem.data:o.outputItem.data?.value??t;x=Math.max(d,Math.min(y,Number(g)))}else x=Math.max(d,Math.min(y,t));return{val:x,hasStaticSig:M,sd:T}},ue=f?f.createView():V,w=h,A=e.renderer.getTemporaryTexture(l,u,[h,...f?[f]:[],v,...i.excludeTextures||[]]),ce=B.length>1?e.renderer.getTemporaryTexture(l,u,[h,A,...f?[f]:[],v,...i.excludeTextures||[]]):A;for(let p=0;p<B.length;p++){let t=B[p],d=p===0,y=d?S("centerX",t.centerX,0,1):{val:t.centerX,hasStaticSig:!1,sd:null},H=d?S("centerY",t.centerY,0,1):{val:t.centerY,hasStaticSig:!1,sd:null},G=d?S("offsetX",t.offsetX,-c,c):{val:t.offsetX,hasStaticSig:!1,sd:null},o=d?S("offsetY",t.offsetY,-c,c):{val:t.offsetY,hasStaticSig:!1,sd:null},C=d?S("radius",t.radius,1,R):{val:t.radius,hasStaticSig:!1,sd:null},T=d?S("sourceRadius",t.sourceRadius??t.radius,1,R):{val:t.sourceRadius??t.radius,hasStaticSig:!1,sd:null},x=d?S("feather",t.feather,0,I):{val:t.feather,hasStaticSig:!1,sd:null},M=d?S("opacity",t.opacity,0,1):{val:t.opacity,hasStaticSig:!1,sd:null},g=(_,Re)=>_.hasStaticSig&&_.sd&&Y?Y.getOrCreate2DTextureView(e.device,r,_.sd.nodeId??`${ae}_${Re}`,oe,le,_.sd,l,u,i.renderId,D,O):Y?Y.getDummy1x1TextureView(e.device):V,de=g(G,"offsetX_sig"),fe=g(o,"offsetY_sig"),me=g(y,"centerX_sig"),pe=g(H,"centerY_sig"),ge=g(C,"radius_sig"),he=g(T,"sourceRadius_sig"),Se=g(x,"feather_sig"),xe=g(M,"opacity_sig"),be=t.mode==="Clone"?0:t.mode==="TextureTransfer"?2:1,n=new Float32Array(20);n[0]=G.val,n[1]=o.val,n[2]=y.val,n[3]=H.val,n[4]=C.val,n[5]=T.val,n[6]=x.val,n[7]=M.val,n[8]=be,n[9]=f?1:0,n[10]=G.hasStaticSig?1:0,n[11]=o.hasStaticSig?1:0,n[12]=y.hasStaticSig?1:0,n[13]=H.hasStaticSig?1:0,n[14]=C.hasStaticSig?1:0,n[15]=T.hasStaticSig?1:0,n[16]=x.hasStaticSig?1:0,n[17]=M.hasStaticSig?1:0,n[18]=0,n[19]=0;let ve=e.renderer.getTemporaryBuffer(n),$=p%2===0?A:ce,ye=e.device.createBindGroup({layout:se,entries:[{binding:0,resource:w.createView()},{binding:1,resource:ue},{binding:2,resource:W}]}),Te=e.device.createBindGroup({layout:ne,entries:[{binding:0,resource:de},{binding:1,resource:fe},{binding:2,resource:me},{binding:3,resource:pe},{binding:4,resource:ge},{binding:5,resource:he},{binding:6,resource:Se},{binding:7,resource:xe},{binding:8,resource:W}]}),X=r.beginRenderPass({colorAttachments:[{view:$.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});X.setPipeline(re),X.setBindGroup(0,e.device.createBindGroup({layout:ie,entries:[{binding:0,resource:{buffer:ve}}]})),X.setBindGroup(1,ye),X.setBindGroup(2,Te),X.draw(4),X.end(),w=$}let z=e.renderer.beginFrame(r,U,{r:0,g:0,b:0,a:0},l,u,"load");e.renderer.drawTexture(z,w,{x:0,y:0,width:l,height:u},{opacity:1}),a.pass=z};var ze=j({WebGPURenderer:te});export{te as a,ze as b};
@@ -0,0 +1 @@
1
+ import{e as p}from"./chunk-BVF64D6H.mjs";p();p();var h=null;function x(a){h!==null&&(a.add(h),h.deps.add(a))}function w(a){return a!==null&&typeof a=="object"&&"get"in a&&typeof a.get=="function"&&"value"in a}var S=class{_value;_subscribers=new Set;constructor(e){this._value=e}get value(){return this.get()}set value(e){this.set(e)}get(){return h!==null&&(this._subscribers.add(h),h.deps.add(this._subscribers)),this._value}peek(){return this._value}set(e){Object.is(this._value,e)||(this._value=e,this.notifySubscribers())}update(e){this.set(e(this._value))}notifySubscribers(){if(this._subscribers.size===0)return;let e=Array.from(this._subscribers);for(let t of e)t.markDirty()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}},y=class{_fn;_value;_dirty=!0;_evaluating=!1;deps=new Set;_subscribers=new Set;constructor(e){this._fn=e}get value(){return this.get()}get(){return h!==null&&h!==this&&(this._subscribers.add(h),h.deps.add(this._subscribers)),this._dirty&&this.compute(),this._value}peek(){return this._dirty&&this.compute(),this._value}markDirty(){if(this._dirty)return;this._dirty=!0;let e=Array.from(this._subscribers);for(let t of e)t.markDirty()}compute(){if(this._evaluating)throw new Error("Cyclic dependency detected in computed signal");for(let t of this.deps)t.delete(this);this.deps.clear();let e=h;h=this,this._evaluating=!0;try{this._value=this._fn(),this._dirty=!1}finally{this._evaluating=!1,h=e}}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}},F=class{gpuBinding;fps;_samples;_cachedFrame=-1;_cachedValue=0;_seekedFrame=-1;_subscribers=new Set;constructor(e,t=24,r){this._samples=e,this.fps=t,this.gpuBinding=r,e.length>0&&(this._cachedValue=e[0])}get value(){return this.get()}get(e){h!==null&&(this._subscribers.add(h),h.deps.add(this._subscribers)),d.get();let t=e?.frame??(this._seekedFrame>=0?this._seekedFrame:d.value);if(this._cachedFrame===t)return this._cachedValue;if(this._cachedFrame=t,!this._samples||this._samples.length===0)return this._cachedValue=0,0;let r=e?.fps??this.fps,n=r!==this.fps&&r>0?t/r*this.fps:t,i=Math.max(0,Math.min(this._samples.length-1,Math.round(n)));return this._cachedValue=Number(this._samples[i])||0,this._cachedValue}peek(){return this._cachedValue}seekFrame(e){if(this._seekedFrame=e,this._cachedFrame=e,!this._samples||this._samples.length===0)this._cachedValue=0;else{let t=Math.max(0,Math.min(this._samples.length-1,Math.round(e)));this._cachedValue=Number(this._samples[t])||0}for(let t of this._subscribers)t.markDirty()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}};function _(a){return new S(a)}function V(a){return new y(a)}function I(a,e=24,t){return new F(a,e,t)}var d=_(0),C=_(0),T=_(0);function q(a,e=24,t){d.set(a);let r=e>0?a/e:0;if(C.set(r),t&&t>0){let n=t/1e3;T.set(Math.max(0,Math.min(1,r/n)))}else T.set(0)}var M=class{gpuBinding;_config;constructor(e){this._config={type:"sine",frequency:1,amplitude:1,offset:0,phase:0,...e},this.gpuBinding=e.gpuBinding}get value(){return this.get()}get(e){d.get();let t=e?.frame??d.value,r=e?.fps??24,n=e?.time??(r>0?t/r:0);if(this._config.fn)return this._config.fn(e??{frame:t,fps:r,time:n,duration:0,durationMs:0,progress:0,deltaTime:r>0?1/r:0});let i=this._config.frequency??1,u=this._config.amplitude??1,s=this._config.offset??0,m=this._config.phase??0;switch(this._config.type??"sine"){case"sine":return s+u*Math.sin(2*Math.PI*i*n+m);case"triangle":return s+u*(2*Math.abs(2*(n*i+m/(2*Math.PI)-Math.floor(n*i+m/(2*Math.PI)+.5)))-1);case"sawtooth":return s+u*(2*(n*i+m/(2*Math.PI)-Math.floor(n*i+m/(2*Math.PI)+.5)));case"square":return s+(Math.sin(2*Math.PI*i*n+m)>=0?u:-u);case"bounce":{let g=n*i%1,c=Math.abs(Math.sin(Math.PI*g));return s+u*c}default:return s+u*Math.sin(2*Math.PI*i*n+m)}}peek(){return this.get()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}};function k(a){return new M(a)}function O(a={}){let e=a.min,t=a.max,r=a.amplitude??1,n=a.offset??0;e!==void 0&&t!==void 0?(n=(e+t)/2,r=(t-e)/2):e!==void 0?n=e+r:t!==void 0&&(n=t-r);let i=a.period,u=a.frequency,s=a.phase??0;return k({type:"custom",fn:m=>{let o;if(i!==void 0&&i>0)o=2*Math.PI*m.frame/i+s;else{let g=u??1;o=2*Math.PI*g*m.time+s}return n+r*Math.sin(o)}})}function A(a={}){let e=a.min,t=a.max,r=a.amplitude??1,n=a.offset??0;e!==void 0&&t!==void 0?(n=(e+t)/2,r=(t-e)/2):e!==void 0?n=e+r:t!==void 0&&(n=t-r);let i=a.period,u=a.frequency,s=a.phase??0;return k({type:"custom",fn:m=>{let o;if(i!==void 0&&i>0)o=2*Math.PI*m.frame/i+s;else{let g=u??1;o=2*Math.PI*g*m.time+s}return n+r*Math.cos(o)}})}var N={state:_,computed:V,builder:k,fromArray:I,programmatic:P,frame:d,time:C,progress:T,sine:O,cosine:A};var b=class a{gpuBinding;label;_evaluator;_samples;_fps;_durationFrames;_cachedFrame=-1;_cachedValue=0;_seekedFrame=-1;_subscribers=new Set;_children=new Set;get fps(){return this._fps}constructor(e,t={}){if(this._fps=t.fps??24,this._durationFrames=t.durationFrames,this.gpuBinding=t.gpuBinding,this.label=t.label,typeof e=="number"){let r=e;this._evaluator=()=>r,this._cachedValue=r}else if(typeof e=="function")this._evaluator=e;else if(w(e))this._evaluator=r=>Number(e.get(r))||0;else{let r=e;this._samples=r instanceof Float32Array?r:new Float32Array(Array.from(r)),this._durationFrames=this._samples.length,this._cachedValue=this._samples.length>0?this._samples[0]:0,this._evaluator=n=>{if(!this._samples||this._samples.length===0)return 0;let i=n.fps??this._fps,u=i!==this._fps&&i>0?n.frame/i*this._fps:n.frame,s=Math.max(0,Math.min(this._samples.length-1,Math.round(u)));return this._samples[s]}}}get value(){return this.get()}get(e){x(this._subscribers),d.get();let t=e?.frame??(this._seekedFrame>=0?this._seekedFrame:d.value);if(this._cachedFrame===t)return this._cachedValue;let r=e?.fps??this._fps,n=e?.time??(r>0?t/r:0),i=e?.duration??this._durationFrames??100,u=e?.durationMs??i/r*1e3,s=i>0?t/i:0,m=e?.deltaTime??(r>0?1/r:.0416),o={frame:t,fps:r,time:n,duration:i,durationMs:u,progress:s,deltaTime:m};return this._cachedFrame=t,this._cachedValue=this._evaluator(o),this._cachedValue}peek(){return this._cachedValue}registerChild(e){this._children.add(e)}_derive(e,t,r){let n=new a(e,{fps:this._fps,durationFrames:this._durationFrames,...t});return this._children.add(n),r instanceof a&&r.registerChild(n),n}seekFrame(e){this._seekedFrame=e,this._cachedFrame=-1;for(let t of this._subscribers)t.markDirty();for(let t of this._children)t.seekFrame(e)}invalidate(){this._cachedFrame=-1;for(let e of this._subscribers)e.markDirty();for(let e of this._children)e.invalidate()}valueOf(){return this.get()}[Symbol.toPrimitive](e){return e==="number"?Number(this.get()):e==="string"?String(this.get()):this.get()}smooth(e){let t=Math.max(1,Math.round(e));return t<=1?this:this._derive(r=>{let n=0,i=0,u=Math.max(0,r.frame-t+1);for(let s=u;s<=r.frame;s++)n+=this.get({...r,frame:s,time:s/r.fps}),i++;return i>0?n/i:0},{label:`${this.label??"sig"}_smoothed(${t})`})}remap(e,t,r,n,i=!1){let u=t-e,s=n-r;return this._derive(m=>{let o=this.get(m),g=u!==0?(o-e)/u:0,c=r+g*s;if(i){let l=Math.min(r,n),f=Math.max(r,n);return Math.max(l,Math.min(f,c))}return c},{label:`${this.label??"sig"}_remap`})}clamp(e,t){let r=Math.min(e,t),n=Math.max(e,t);return this._derive(i=>Math.max(r,Math.min(n,this.get(i))),{label:`${this.label??"sig"}_clamped`})}gate(e,t={}){let r=t.mode??"gate",n=Math.max(1,t.debounceFrames??2),i=Math.max(1,t.holdFrames??4),u=!!t.invert;return this._derive(s=>{let m=s.frame,o=0;if(r==="gate")o=this.get(s)>=e?1:0;else if(r==="trigger"){let g=-1/0,c=Math.max(0,m-120);for(let l=c;l<=m;l++){let f=this.get({...s,frame:l,time:l/s.fps}),v=l>0?this.get({...s,frame:l-1,time:(l-1)/s.fps}):0;f>=e&&v<e&&l-g>=n&&(g=l)}o=m>=g&&m<g+i?1:0}else if(r==="toggle"){let g=0,c=-1/0;for(let l=0;l<=m;l++){let f=this.get({...s,frame:l,time:l/s.fps}),v=l>0?this.get({...s,frame:l-1,time:(l-1)/s.fps}):0;f>=e&&v<e&&l-c>=n&&(g++,c=l)}o=g%2===1?1:0}return u?1-o:o},{label:`${this.label??"sig"}_gate(${e})`})}velocity(e=1){let t=Math.max(1,Math.round(e));return this._derive(r=>{let n=this.get(r),i=Math.max(0,r.frame-t),u=this.get({...r,frame:i,time:i/r.fps}),s=t/r.fps;return s>0?(n-u)/s:n-u},{label:`${this.label??"sig"}_velocity`})}delay(e){let t=Math.max(0,Math.round(e));return this._derive(r=>{let n=Math.max(0,r.frame-t);return this.get({...r,frame:n,time:n/r.fps})},{label:`${this.label??"sig"}_delay(${t})`})}spring(e=150,t=12){return this._derive(r=>{let n=r.frame;if(n<=0)return this.get(r);let i=this.get({...r,frame:0,time:0}),u=0,s=1/Math.max(1,r.fps);for(let m=1;m<=n;m++){let o=this.get({...r,frame:m,time:m/r.fps}),g=i-o,c=-e*g-t*u;u+=c*s,i+=u*s}return i},{label:`${this.label??"sig"}_spring`})}add(e){return typeof e=="number"?this._derive(t=>this.get(t)+e):this._derive(t=>this.get(t)+(Number(e.get(t))||0),void 0,e)}subtract(e){return typeof e=="number"?this._derive(t=>this.get(t)-e):this._derive(t=>this.get(t)-(Number(e.get(t))||0),void 0,e)}multiply(e){return typeof e=="number"?this._derive(t=>this.get(t)*e):this._derive(t=>this.get(t)*(Number(e.get(t))||0),void 0,e)}invert(){return this._derive(e=>1-this.get(e),{label:`${this.label??"sig"}_inverted`})}pow(e){return this._derive(t=>this.get(t)**e)}map(e){return this._derive(t=>e(this.get(t),t))}toFrameArray(e,t){let r=Math.max(1,e),n=t??this._fps,i=new Float32Array(r);for(let u=0;u<r;u++)i[u]=this.get({frame:u,fps:n,time:u/n,duration:r,durationMs:r/n*1e3,progress:u/r,deltaTime:1/n});return i}};function P(a,e){return new b(a,e)}export{b as a,P as b,x as c,w as d,_ as e,V as f,I as g,d as h,C as i,T as j,q as k,k as l,O as m,A as n,N as o};
@@ -0,0 +1 @@
1
+ import{a as r,e}from"./chunk-BVF64D6H.mjs";var s=r((i,n)=>{e();var t=()=>new Proxy(function(){},{get:(u,o)=>o==="__esModule"?!0:o===Symbol.toPrimitive?()=>"":t(),apply:()=>t(),construct:()=>t()});n.exports=t()});export{s as a};
@@ -0,0 +1 @@
1
+ import{e as r}from"./chunk-BVF64D6H.mjs";r();function t(){return e=>{throw new Error(`Cannot require "${e}" in the browser preview.`)}}function i(){return!1}export{t as a,i as b};
@@ -0,0 +1,82 @@
1
+ import{a as N}from"./chunk-YSTLMWCG.mjs";import{d as M}from"./chunk-6YJP57MZ.mjs";import{e as T}from"./chunk-BVF64D6H.mjs";T();T();var ee=`
2
+ struct TileOffsetUniforms {
3
+ offsetX : f32,
4
+ offsetY : f32,
5
+ hasOffsetXSig : f32,
6
+ hasOffsetYSig : f32,
7
+
8
+ layerWidth : f32,
9
+ layerHeight : f32,
10
+ edgeMode : f32,
11
+ pad : f32,
12
+ };
13
+
14
+ @group(0) @binding(0) var<uniform> u : TileOffsetUniforms;
15
+ @group(1) @binding(0) var tex : texture_2d<f32>;
16
+ @group(1) @binding(1) var samp : sampler;
17
+
18
+ @group(2) @binding(0) var offsetXSigTex : texture_2d<f32>;
19
+ @group(2) @binding(1) var offsetYSigTex : texture_2d<f32>;
20
+ @group(2) @binding(2) var signalSamp : sampler;
21
+
22
+ struct VSOut {
23
+ @builtin(position) pos : vec4<f32>,
24
+ @location(0) uv : vec2<f32>,
25
+ };
26
+
27
+ @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
28
+ var pos = array<vec2<f32>, 4>(
29
+ vec2<f32>(-1.0, 1.0),
30
+ vec2<f32>(1.0, 1.0),
31
+ vec2<f32>(-1.0, -1.0),
32
+ vec2<f32>(1.0, -1.0)
33
+ );
34
+ var uv = array<vec2<f32>, 4>(
35
+ vec2<f32>(0.0, 0.0),
36
+ vec2<f32>(1.0, 0.0),
37
+ vec2<f32>(0.0, 1.0),
38
+ vec2<f32>(1.0, 1.0)
39
+ );
40
+ return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
41
+ }
42
+
43
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
44
+ var offX = u.offsetX;
45
+ if (u.hasOffsetXSig > 0.5) {
46
+ let sigX = textureSampleLevel(offsetXSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
47
+ offX = offX + sigX;
48
+ }
49
+
50
+ var offY = u.offsetY;
51
+ if (u.hasOffsetYSig > 0.5) {
52
+ let sigY = textureSampleLevel(offsetYSigTex, signalSamp, vec2<f32>(0.5, 0.5), 0.0).r;
53
+ offY = offY + sigY;
54
+ }
55
+
56
+ let normOffset = vec2<f32>(
57
+ offX / max(1.0, u.layerWidth),
58
+ offY / max(1.0, u.layerHeight)
59
+ );
60
+ var uv = in.uv - normOffset;
61
+
62
+ // Edge Modes:
63
+ // 0.0 = wrap (seamless modulo)
64
+ // 1.0 = clamp (edge smear)
65
+ // 2.0 = transparent (clear bounds)
66
+ // 3.0 = mirror (ping-pong reflection)
67
+ if (u.edgeMode < 0.5) {
68
+ uv = fract(uv);
69
+ } else if (u.edgeMode < 1.5) {
70
+ uv = clamp(uv, vec2<f32>(0.0), vec2<f32>(1.0));
71
+ } else if (u.edgeMode < 2.5) {
72
+ if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) {
73
+ return vec4<f32>(0.0);
74
+ }
75
+ } else {
76
+ uv = 1.0 - abs(fract(uv * 0.5) * 2.0 - 1.0);
77
+ }
78
+
79
+ let color = textureSampleLevel(tex, samp, uv, 0.0);
80
+ return color;
81
+ }
82
+ `,F=new WeakMap,a=new Float32Array(8);function te(r){let e=F.get(r);if(e)return e;let t=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),d=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),o=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]});return e={uniformLayout:t,singleTextureLayout:d,signalTextureLayout:o,pipelineCache:new Map},F.set(r,e),e}function re(r,e){let t=te(r),d=`tile_offset_${e}`,o=t.pipelineCache.get(d);if(!o){let p=r.createShaderModule({label:`tile_offset_${e}.wgsl`,code:ee});o=r.createRenderPipeline({label:`TileOffsetPipeline_${e}`,layout:r.createPipelineLayout({bindGroupLayouts:[t.uniformLayout,t.singleTextureLayout,t.signalTextureLayout]}),vertex:{module:p,entryPoint:"vs"},fragment:{module:p,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),t.pipelineCache.set(d,o)}return{pipeline:o,uniformLayout:t.uniformLayout,singleTextureLayout:t.singleTextureLayout,signalTextureLayout:t.signalTextureLayout}}var ie=async r=>{let{ctx:e,encoder:t,pass:d,targetView:o,targetTexture:p,targetWidth:b,targetHeight:x,props:i,drawChild:A}=r,P=i.frame??0,w=i.fps||30,n=i.virtualMedia?.operation;if(n?.op!=="TileOffset"||!n)return;let S=i.virtualMedia?.children?.[0];if(!S)return;d.end();let f=b,u=x,C=n.inputs?Object.keys(n.inputs)[0]:"tile_offset_node",R=(l,g)=>{let Q=`${l}HandleId`,_=n[Q],s=_?n.inputs?.[_]:null,B=!!(s?.connectionValid&&(s.outputItem?.type==="Signal"||s.outputItem?.type==="Numeric")),O=B&&s?.outputItem?.data?s.outputItem.data:null,y=g,V=!1;return B?O&&(y=Number(O.offset??0),V=!0):s?.connectionValid&&s.outputItem?.type==="Number"?y=Number(s.outputItem.data??g):y=Number(n[l]??g),{val:y,hasStaticSig:V,sd:O}},h=R("offsetX",0),G=R("offsetY",0),m=0,L=n.edgeMode??(n.wrap!==!1?"wrap":"transparent");L==="clamp"?m=1:L==="transparent"||n.wrap===!1?m=2:L==="mirror"&&(m=3);let v=e.renderer.getTemporaryTexture(f,u,[...i.excludeTextures||[],p]),U=v.createView();e.renderer.beginFrame(t,U,{r:0,g:0,b:0,a:0},f,u,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:f,height:u}),e.renderer.pushIdentity(),await A(S,{...i,virtualMedia:S},U,v,f,u),e.renderer.popTransform(),e.renderer.popScissor(),r.pass.end();let{pipeline:W,uniformLayout:H,singleTextureLayout:$,signalTextureLayout:k}=re(e.device,e.renderer.format),I=e.renderer.samplerCache.getSampler(e.device),j=i.elapsedMs!==void 0?i.elapsedMs/1e3:P/w,K=i.virtualMedia?.metadata?.durationMs?i.virtualMedia.metadata.durationMs/1e3:i.durationMs!==void 0?i.durationMs/1e3:0,X=(l,g)=>l.hasStaticSig&&l.sd?M.getOrCreate2DTextureView(e.device,t,l.sd.nodeId??`${C}_${g}`,j,K,l.sd,f,u,i.renderId,P,w):M.getDummy1x1TextureView(e.device),q=X(h,"offsetX_sig"),z=X(G,"offsetY_sig");a[0]=h.val,a[1]=G.val,a[2]=h.hasStaticSig?1:0,a[3]=G.hasStaticSig?1:0,a[4]=f,a[5]=u,a[6]=m,a[7]=0;let J=e.renderer.getTemporaryBuffer(a),Y=e.renderer.getTemporaryTexture(f,u,[v,p,...i.excludeTextures||[]]),c=t.beginRenderPass({colorAttachments:[{view:Y.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});c.setPipeline(W),c.setBindGroup(0,e.device.createBindGroup({layout:H,entries:[{binding:0,resource:{buffer:J}}]})),c.setBindGroup(1,e.renderer.bindGroupCache.getBindGroup(e.device,$,v,I)),c.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:q},{binding:1,resource:z},{binding:2,resource:I}]})),c.draw(4),c.end();let D=e.renderer.beginFrame(t,o,{r:0,g:0,b:0,a:0},b,x,"load");e.renderer.drawTexture(D,Y,{x:0,y:0,width:b,height:x},{opacity:n.opacity??1}),r.pass=D},E=ie;var le=N({WebGPURenderer:E});export{le as a};
@@ -0,0 +1,52 @@
1
+ import{b as T,c as C}from"./chunk-IYVN2QEL.mjs";import{a}from"./chunk-NQZKBFC6.mjs";import{a as k}from"./chunk-YSTLMWCG.mjs";import{e as l}from"./chunk-BVF64D6H.mjs";l();l();l();var U=`
2
+ struct ColorMatrixUniforms {
3
+ row0 : vec4<f32>,
4
+ row1 : vec4<f32>,
5
+ row2 : vec4<f32>,
6
+ row3 : vec4<f32>,
7
+ trans : vec4<f32>,
8
+ };
9
+
10
+ @group(0) @binding(0) var<uniform> u : ColorMatrixUniforms;
11
+ @group(1) @binding(0) var tex : texture_2d<f32>;
12
+ @group(1) @binding(1) var samp : sampler;
13
+
14
+ struct VSOut {
15
+ @builtin(position) pos : vec4<f32>,
16
+ @location(0) uv : vec2<f32>,
17
+ };
18
+
19
+ @vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {
20
+ var pos = array<vec2<f32>, 4>(
21
+ vec2<f32>(-1.0, 1.0),
22
+ vec2<f32>(1.0, 1.0),
23
+ vec2<f32>(-1.0, -1.0),
24
+ vec2<f32>(1.0, -1.0)
25
+ );
26
+ var uv = array<vec2<f32>, 4>(
27
+ vec2<f32>(0.0, 0.0),
28
+ vec2<f32>(1.0, 0.0),
29
+ vec2<f32>(0.0, 1.0),
30
+ vec2<f32>(1.0, 1.0)
31
+ );
32
+ return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);
33
+ }
34
+
35
+ @fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {
36
+ let c = textureSample(tex, samp, in.uv);
37
+ var rgba = vec4<f32>(c.rgb, c.a);
38
+ if (c.a > 0.0) {
39
+ rgba = vec4<f32>(c.rgb / c.a, c.a);
40
+ }
41
+
42
+ let r = dot(u.row0, rgba) + u.trans.x;
43
+ let g = dot(u.row1, rgba) + u.trans.y;
44
+ let b = dot(u.row2, rgba) + u.trans.z;
45
+ let a = dot(u.row3, rgba) + u.trans.w;
46
+
47
+ let outAlpha = clamp(a, 0.0, 1.0);
48
+ let outRgb = clamp(vec3<f32>(r, g, b), vec3<f32>(0.0), vec3<f32>(1.0)) * outAlpha;
49
+
50
+ return vec4<f32>(outRgb, outAlpha);
51
+ }
52
+ `;l();var b=a.object({inBlack:a.number().min(0).max(1).default(0),inWhite:a.number().min(0).max(1).default(1),outBlack:a.number().min(0).max(1).default(0),outWhite:a.number().min(0).max(1).default(1)}).strict().superRefine((t,e)=>{t.inBlack>=t.inWhite&&e.addIssue({code:a.ZodIssueCode.custom,path:["inWhite"],message:"inWhite must be greater than inBlack"}),t.outBlack>=t.outWhite&&e.addIssue({code:a.ZodIssueCode.custom,path:["outWhite"],message:"outWhite must be greater than outBlack"})}),q=a.object({master:b.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1}),red:b.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1}),green:b.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1}),blue:b.default({inBlack:0,inWhite:1,outBlack:0,outWhite:1})}).strict(),te=a.union([T,C]),re=q.extend({op:a.literal("Levels"),metadata:a.unknown().optional()}),s={inBlack:0,inWhite:1,outBlack:0,outWhite:1},oe={master:{...s},red:{...s},green:{...s},blue:{...s}};var V=new WeakMap,r=new Float32Array(20);function J(t,e){let n=V.get(t);if(!n){let c=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),d=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),p=t.createShaderModule({label:"color-matrix.wgsl",code:U});n={colorMatrixPipeline:t.createRenderPipeline({label:"ColorMatrixPipeline",layout:t.createPipelineLayout({bindGroupLayouts:[c,d]}),vertex:{module:p,entryPoint:"vs"},fragment:{module:p,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),colorMatrixUniformLayout:c,singleTextureLayout:d},V.set(t,n)}return n}function y(t){let e=Math.max(t.inWhite-t.inBlack,1e-5),c=(t.outWhite-t.outBlack)/e,d=t.outBlack-t.inBlack*c;return{scale:c,bias:d}}var I=async t=>{let{ctx:e,encoder:n,pass:c,targetView:d,targetTexture:p,targetWidth:h,targetHeight:L,props:u,drawChild:O}=t,f=u.virtualMedia?.operation;if(f?.op!=="Levels"||!u.virtualMedia?.children?.[0])return;c.end();let B=u.virtualMedia.children[0],i=y(f.master??s),G=y(f.red??s),S=y(f.green??s),W=y(f.blue??s),F=G.scale*i.scale,A=G.bias*i.scale+i.bias,N=S.scale*i.scale,z=S.bias*i.scale+i.bias,E=W.scale*i.scale,D=W.bias*i.scale+i.bias,o=[F,0,0,0,A,0,N,0,0,z,0,0,E,0,D,0,0,0,1,0],m=h,g=L,x=e.renderer.getTemporaryTexture(m,g,[...u.excludeTextures||[],p]),M=x.createView();e.renderer.beginFrame(n,M,{r:0,g:0,b:0,a:0},m,g,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:m,height:g}),e.renderer.pushIdentity(),await O(B,{...u,virtualMedia:B},M,x,m,g),e.renderer.popTransform(),e.renderer.popScissor();let{colorMatrixPipeline:_,colorMatrixUniformLayout:j,singleTextureLayout:Z}=J(e.device,e.renderer.format),H=e.renderer.samplerCache.getSampler(e.device);r[0]=o[0],r[1]=o[1],r[2]=o[2],r[3]=o[3],r[4]=o[5],r[5]=o[6],r[6]=o[7],r[7]=o[8],r[8]=o[10],r[9]=o[11],r[10]=o[12],r[11]=o[13],r[12]=o[15],r[13]=o[16],r[14]=o[17],r[15]=o[18],r[16]=o[4],r[17]=o[9],r[18]=o[14],r[19]=o[19];let Y=e.renderer.getTemporaryBuffer(r),R=e.renderer.getTemporaryTexture(m,g,[x,p,...u.excludeTextures||[]]),v=n.beginRenderPass({colorAttachments:[{view:R.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});v.setPipeline(_),v.setBindGroup(0,e.device.createBindGroup({layout:j,entries:[{binding:0,resource:{buffer:Y}}]})),v.setBindGroup(1,e.renderer.bindGroupCache.getBindGroup(e.device,Z,x,H)),v.draw(4),v.end();let w=e.renderer.beginFrame(n,d,{r:0,g:0,b:0,a:0},h,L,"load");e.renderer.drawTexture(w,R,{x:0,y:0,width:h,height:L},{opacity:u.opacity??1}),t.pass=w};var pe=k({WebGPURenderer:I});export{pe as a};
@@ -0,0 +1 @@
1
+ import{a as m}from"./chunk-LKYN3BM2.mjs";import{e as x}from"./chunk-BVF64D6H.mjs";x();var w=class{cache=new Map;async load(r,i,l,c){let o=Math.max(1,Math.ceil(i)),t=Math.max(1,Math.ceil(l)),e=`${r}-${o}-${t}-${c}`,h=this.cache.get(e);return h||(h=(async()=>{let d;if(r.startsWith("http://")||r.startsWith("https://")||r.startsWith("data:")||!c){let a=await fetch(r);if(!a.ok)throw new Error(`Failed to fetch SVG: ${r}`);d=await a.text()}else{let a=r;if(a.startsWith("file://"))try{a=new URL(a).pathname}catch{a=a.replace(/^file:\/\//,"")}try{d=await(await import("./shims/fs-promises.mjs")).readFile(a,"utf-8")}catch{let n=await fetch(r);if(!n.ok)throw new Error(`Failed to fetch SVG: ${r}`);d=await n.text()}}if(c){let{renderAsync:a}=await import("./resvg-js-VMU4A77S.mjs"),n=await a(d,{fitTo:{mode:"width",value:o}});return{width:n.width,height:n.height,buffer:new Uint8Array(n.pixels)}}let v=new Blob([d],{type:"image/svg+xml"}),u=URL.createObjectURL(v),f=new Image;await new Promise((a,n)=>{f.onload=()=>a(),f.onerror=()=>n(new Error(`Failed to load SVG image: ${r}`)),f.src=u});let g=new OffscreenCanvas(o,t);g.getContext("2d").drawImage(f,0,0,o,t),URL.revokeObjectURL(u);let b=await createImageBitmap(g);return{width:o,height:t,bitmap:b}})(),this.cache.set(e,h),h.catch(()=>this.cache.delete(e))),h}},y=new w;async function P(s,r,i){let l=Math.max(1,Math.ceil(i.dstRect.width)),c=Math.max(1,Math.ceil(i.dstRect.height)),o=`${i.src}-${l}-${c}`,t=m.acquire(o);if(!t)try{let e=await y.load(i.src,l,c,i.isHeadless??!1);t=m.acquire(o),t||(t=s.device.createTexture({size:[e.width,e.height],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),e.bitmap?s.device.queue.copyExternalImageToTexture({source:e.bitmap},{texture:t},[e.width,e.height]):e.buffer&&s.device.queue.writeTexture({texture:t},e.buffer,{bytesPerRow:e.width*4},[e.width,e.height]),m.set(o,t,s.device))}catch(e){console.error("Failed to load SVG texture:",e);return}s.renderer.drawTexture(r,t,i.dstRect,{opacity:i.opacity??1,transform:i.matrix}),m.release(o)}export{P as a};