framefields 2.0.8 → 2.0.9

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 (310) hide show
  1. package/dist/audio/index.d.mts +4 -4
  2. package/dist/audio/index.mjs +10 -10
  3. package/dist/{audio-a6pY05g2.d.mts → audio-BxA0sL9z.d.mts} +3 -3
  4. package/dist/{audio-a6pY05g2.d.mts.map → audio-BxA0sL9z.d.mts.map} +1 -1
  5. package/dist/{audio--hi7MiZt.mjs → audio-Dev4NGPa.mjs} +3 -3
  6. package/dist/{audio--hi7MiZt.mjs.map → audio-Dev4NGPa.mjs.map} +1 -1
  7. package/dist/{client-C74hb7fy.mjs → client-CwRhflHE.mjs} +1 -1
  8. package/dist/{client-C74hb7fy.mjs.map → client-CwRhflHE.mjs.map} +1 -1
  9. package/dist/{dist-ZVlYkuR4.mjs → dist-CoSg-CWr.mjs} +17 -8
  10. package/dist/dist-CoSg-CWr.mjs.map +1 -0
  11. package/dist/{dist-BQFap0wr.mjs → dist-DgfykO99.mjs} +53 -5
  12. package/dist/dist-DgfykO99.mjs.map +1 -0
  13. package/dist/{dist-cjs-qEJrwjGk.mjs → dist-cjs--lfMLs3U.mjs} +4 -4
  14. package/dist/{dist-cjs-qEJrwjGk.mjs.map → dist-cjs--lfMLs3U.mjs.map} +1 -1
  15. package/dist/{dist-cjs-x5cwlqA5.mjs → dist-cjs--pxyGFw2.mjs} +1 -1
  16. package/dist/{dist-cjs-x5cwlqA5.mjs.map → dist-cjs--pxyGFw2.mjs.map} +1 -1
  17. package/dist/dist-cjs-3pon9kTt.mjs +6 -0
  18. package/dist/{dist-cjs-Dzs5P3K0.mjs → dist-cjs-BDpO-TH_.mjs} +1 -1
  19. package/dist/{dist-cjs-Dzs5P3K0.mjs.map → dist-cjs-BDpO-TH_.mjs.map} +1 -1
  20. package/dist/{dist-cjs-lYvO8aDo.mjs → dist-cjs-BiKQozdJ.mjs} +3 -3
  21. package/dist/{dist-cjs-lYvO8aDo.mjs.map → dist-cjs-BiKQozdJ.mjs.map} +1 -1
  22. package/dist/{dist-cjs-BUwe2XhR.mjs → dist-cjs-BmyyWYWv.mjs} +2 -2
  23. package/dist/{dist-cjs-BUwe2XhR.mjs.map → dist-cjs-BmyyWYWv.mjs.map} +1 -1
  24. package/dist/{dist-cjs-DgxjcvBN.mjs → dist-cjs-CND_ghfH.mjs} +1 -1
  25. package/dist/{dist-cjs-DgxjcvBN.mjs.map → dist-cjs-CND_ghfH.mjs.map} +1 -1
  26. package/dist/{dist-cjs-BWgoUCXJ.mjs → dist-cjs-CQwmMllY.mjs} +6 -6
  27. package/dist/{dist-cjs-BWgoUCXJ.mjs.map → dist-cjs-CQwmMllY.mjs.map} +1 -1
  28. package/dist/{dist-cjs-B5EVqDFp.mjs → dist-cjs-CgFzrgj8.mjs} +1 -1
  29. package/dist/{dist-cjs-B5EVqDFp.mjs.map → dist-cjs-CgFzrgj8.mjs.map} +1 -1
  30. package/dist/{dist-cjs-ECMuIF57.mjs → dist-cjs-CsU2sZoX.mjs} +4 -4
  31. package/dist/{dist-cjs-ECMuIF57.mjs.map → dist-cjs-CsU2sZoX.mjs.map} +1 -1
  32. package/dist/{dist-cjs-BKmGCgtm.mjs → dist-cjs-DJ8fcQEe.mjs} +11 -11
  33. package/dist/{dist-cjs-BKmGCgtm.mjs.map → dist-cjs-DJ8fcQEe.mjs.map} +1 -1
  34. package/dist/{dist-cjs-D7kEM-Mj.mjs → dist-cjs-DT2jJlcK.mjs} +5 -5
  35. package/dist/{dist-cjs-D7kEM-Mj.mjs.map → dist-cjs-DT2jJlcK.mjs.map} +1 -1
  36. package/dist/{dist-cjs-BUc0_kg-.mjs → dist-cjs-DjzmP0-x.mjs} +13 -13
  37. package/dist/{dist-cjs-BUc0_kg-.mjs.map → dist-cjs-DjzmP0-x.mjs.map} +1 -1
  38. package/dist/{dist-cjs-BGJkdexX.mjs → dist-cjs-DzjrlfbE.mjs} +14 -14
  39. package/dist/{dist-cjs-BGJkdexX.mjs.map → dist-cjs-DzjrlfbE.mjs.map} +1 -1
  40. package/dist/{dist-cjs-Df7144zM.mjs → dist-cjs-M-8QOgS_.mjs} +2 -2
  41. package/dist/{dist-cjs-Df7144zM.mjs.map → dist-cjs-M-8QOgS_.mjs.map} +1 -1
  42. package/dist/{dist-cjs-DFUmy89O.mjs → dist-cjs-TsA8LFXC.mjs} +3 -3
  43. package/dist/{dist-cjs-DFUmy89O.mjs.map → dist-cjs-TsA8LFXC.mjs.map} +1 -1
  44. package/dist/{dist-cjs-DsMdld8l.mjs → dist-cjs-agQl9T8M.mjs} +6 -6
  45. package/dist/{dist-cjs-DsMdld8l.mjs.map → dist-cjs-agQl9T8M.mjs.map} +1 -1
  46. package/dist/effects/index.d.mts +5 -5
  47. package/dist/effects/index.mjs +27 -26
  48. package/dist/{effects-axfL_C3a.mjs → effects-hxRwxjyC.mjs} +27 -3
  49. package/dist/effects-hxRwxjyC.mjs.map +1 -0
  50. package/dist/{event-streams-D-APZ7Ke.mjs → event-streams-BaNGaLxh.mjs} +2 -2
  51. package/dist/{event-streams-D-APZ7Ke.mjs.map → event-streams-BaNGaLxh.mjs.map} +1 -1
  52. package/dist/fonts/index.d.mts +1 -1
  53. package/dist/fonts/index.mjs +1 -1
  54. package/dist/{fonts-Cy26mbrO.mjs → fonts-BznIea-I.mjs} +2 -2
  55. package/dist/{fonts-Cy26mbrO.mjs.map → fonts-BznIea-I.mjs.map} +1 -1
  56. package/dist/{index-BJUS4Nx6.d.mts → index-BXNNJVs8.d.mts} +2 -2
  57. package/dist/{index-BJUS4Nx6.d.mts.map → index-BXNNJVs8.d.mts.map} +1 -1
  58. package/dist/{index-CbzEM_o6.d.mts → index-CQcdKyxF.d.mts} +1 -1
  59. package/dist/{index-CbzEM_o6.d.mts.map → index-CQcdKyxF.d.mts.map} +1 -1
  60. package/dist/{index-BJx_Qxc_.d.mts → index-CvDVpaKn.d.mts} +69 -27
  61. package/dist/index-CvDVpaKn.d.mts.map +1 -0
  62. package/dist/{index-WIPHLy5m.d.mts → index-D1zaOwEU.d.mts} +1 -1
  63. package/dist/index-D1zaOwEU.d.mts.map +1 -0
  64. package/dist/{index-CZChQhXZ.d.mts → index-J9CIK_nu.d.mts} +4 -2
  65. package/dist/index-J9CIK_nu.d.mts.map +1 -0
  66. package/dist/{index-Bi2nRZ_g.d.mts → index-fo4E7A6C.d.mts} +3 -3
  67. package/dist/{index-Bi2nRZ_g.d.mts.map → index-fo4E7A6C.d.mts.map} +1 -1
  68. package/dist/{index-BLbUQolI.d.mts → index-oodg5k9K.d.mts} +3 -3
  69. package/dist/{index-BLbUQolI.d.mts.map → index-oodg5k9K.d.mts.map} +1 -1
  70. package/dist/index.d.mts +11 -10
  71. package/dist/index.d.mts.map +1 -1
  72. package/dist/index.mjs +43 -42
  73. package/dist/index.mjs.map +1 -1
  74. package/dist/{package-C58KmGKw.mjs → package-XpCRbTOA.mjs} +1 -1
  75. package/dist/{package-C58KmGKw.mjs.map → package-XpCRbTOA.mjs.map} +1 -1
  76. package/dist/preview/index.d.mts +2 -2
  77. package/dist/preview/index.mjs +11 -11
  78. package/dist/{preview-BUPB38Kk.mjs → preview-DZTbEON9.mjs} +2 -2
  79. package/dist/{preview-BUPB38Kk.mjs.map → preview-DZTbEON9.mjs.map} +1 -1
  80. package/dist/preview-engine/audio.mjs +1 -1
  81. package/dist/preview-engine/{chunk-3ROJ7JVY.mjs → chunk-25IW7NYO.mjs} +1 -1
  82. package/dist/preview-engine/chunk-36YGYLKD.mjs +58 -0
  83. package/dist/preview-engine/chunk-4VOHF3FF.mjs +1 -0
  84. package/dist/preview-engine/{chunk-TNZENER3.mjs → chunk-7DIAFPQP.mjs} +2 -2
  85. package/dist/preview-engine/{chunk-CXFEQ5PM.mjs → chunk-7O24H4YT.mjs} +2 -2
  86. package/dist/preview-engine/{chunk-BE3CEVJB.mjs → chunk-AUFSM5KI.mjs} +2 -2
  87. package/dist/preview-engine/chunk-AW7HNZKR.mjs +98 -0
  88. package/dist/preview-engine/chunk-BHFI3Y4T.mjs +1 -0
  89. package/dist/preview-engine/chunk-DLXQDDIN.mjs +46 -0
  90. package/dist/preview-engine/chunk-EJGLUZMW.mjs +1 -0
  91. package/dist/preview-engine/{chunk-XSMK5E2V.mjs → chunk-JAOXXYXG.mjs} +2 -2
  92. package/dist/preview-engine/{chunk-PO4VAAQC.mjs → chunk-K52S5DJX.mjs} +1 -1
  93. package/dist/preview-engine/{chunk-IGFT3XLN.mjs → chunk-MDDF2GCF.mjs} +2 -2
  94. package/dist/preview-engine/{chunk-JNEVSC4I.mjs → chunk-OF75EHTX.mjs} +1 -1
  95. package/dist/preview-engine/{chunk-POPVFC5P.mjs → chunk-S4CSX6K5.mjs} +10 -10
  96. package/dist/preview-engine/chunk-SNYAHQ25.mjs +186 -0
  97. package/dist/preview-engine/{chunk-MC7TZZLD.mjs → chunk-T6COGNOW.mjs} +2 -2
  98. package/dist/preview-engine/chunk-VVLM6LZ3.mjs +1 -0
  99. package/dist/preview-engine/chunk-XUM42I4R.mjs +1 -0
  100. package/dist/preview-engine/chunk-ZDCA6NVT.mjs +82 -0
  101. package/dist/preview-engine/effects.mjs +1 -1
  102. package/dist/preview-engine/framefields.mjs +13 -13
  103. package/dist/preview-engine/player.mjs +5 -5
  104. package/dist/preview-engine/{renderers-Q2ZDD5K2.mjs → renderers-2US2NIUG.mjs} +2 -2
  105. package/dist/preview-engine/{renderers-54AQK6RF.mjs → renderers-32PIFHPS.mjs} +1 -1
  106. package/dist/preview-engine/{renderers-O6HOYIPS.mjs → renderers-76PQY2SO.mjs} +1 -1
  107. package/dist/preview-engine/{renderers-PXGLEFZO.mjs → renderers-CI2GXWLP.mjs} +1 -1
  108. package/dist/preview-engine/{renderers-GC7EGB5Z.mjs → renderers-CRKRWR2Y.mjs} +1 -1
  109. package/dist/preview-engine/{renderers-47UITXLZ.mjs → renderers-EE2GFG7J.mjs} +1 -1
  110. package/dist/preview-engine/{renderers-E3JYRLSD.mjs → renderers-GJSUN5HU.mjs} +1 -1
  111. package/dist/preview-engine/{renderers-KCP4TFHG.mjs → renderers-IHKORHMT.mjs} +1 -1
  112. package/dist/preview-engine/renderers-LTNTQLWE.mjs +248 -0
  113. package/dist/preview-engine/{renderers-OBMTU3QY.mjs → renderers-NQUDQEHY.mjs} +1 -1
  114. package/dist/preview-engine/{renderers-QECJP22T.mjs → renderers-NSY2SDIE.mjs} +1 -1
  115. package/dist/preview-engine/{renderers-KS4HPV6Q.mjs → renderers-PWLWOZY4.mjs} +1 -1
  116. package/dist/preview-engine/{renderers-TUYQLKHJ.mjs → renderers-W5CVDJVH.mjs} +1 -1
  117. package/dist/preview-engine/{renderers-N5UPJY73.mjs → renderers-WLLJFZTF.mjs} +1 -1
  118. package/dist/preview-engine/renderers-WN4SYFCU.mjs +1 -0
  119. package/dist/preview-engine/{renderers-TG62LZTF.mjs → renderers-XFBSGTHU.mjs} +1 -1
  120. package/dist/preview-engine/signals.mjs +1 -1
  121. package/dist/{program-Jt07Tx1J.mjs → program-C797QMRL.mjs} +2 -2
  122. package/dist/{program-Jt07Tx1J.mjs.map → program-C797QMRL.mjs.map} +1 -1
  123. package/dist/renderer/index.d.mts +2 -2
  124. package/dist/renderer/index.mjs +3 -3
  125. package/dist/{renderer-BkOXe6o6.mjs → renderer--vY6O19V.mjs} +2 -2
  126. package/dist/{renderer-BkOXe6o6.mjs.map → renderer--vY6O19V.mjs.map} +1 -1
  127. package/dist/{renderer-Bal8734U.d.mts → renderer-2NQWaZd7.d.mts} +2 -2
  128. package/dist/{renderer-Bal8734U.d.mts.map → renderer-2NQWaZd7.d.mts.map} +1 -1
  129. package/dist/renderer-3uTfN95I.mjs +3 -0
  130. package/dist/{renderer-D49-PYDo.mjs → renderer-5jfDUKd4.mjs} +2 -2
  131. package/dist/{renderer-D49-PYDo.mjs.map → renderer-5jfDUKd4.mjs.map} +1 -1
  132. package/dist/{renderer-C5RhNQdr.mjs → renderer-6PqlYQjC.mjs} +10 -9
  133. package/dist/{renderer-C5RhNQdr.mjs.map → renderer-6PqlYQjC.mjs.map} +1 -1
  134. package/dist/{renderer-CceiI6P7.mjs → renderer-9QCHY8Kh.mjs} +18 -4
  135. package/dist/renderer-9QCHY8Kh.mjs.map +1 -0
  136. package/dist/{renderer-o4wOvjEC.mjs → renderer-B1UeU7lX.mjs} +21 -18
  137. package/dist/renderer-B1UeU7lX.mjs.map +1 -0
  138. package/dist/{renderer-DDd3cjaz.mjs → renderer-B4ecTNR7.mjs} +18 -11
  139. package/dist/renderer-B4ecTNR7.mjs.map +1 -0
  140. package/dist/renderer-B5GslTP-.mjs +3 -0
  141. package/dist/{renderer-DXyaswab.mjs → renderer-B8gTyU3w.mjs} +18 -17
  142. package/dist/renderer-B8gTyU3w.mjs.map +1 -0
  143. package/dist/{renderer-CIQYTiT9.mjs → renderer-BE4Ns0nw.mjs} +2 -2
  144. package/dist/{renderer-CIQYTiT9.mjs.map → renderer-BE4Ns0nw.mjs.map} +1 -1
  145. package/dist/{renderer-BDLnExoP.mjs → renderer-BM05sB8m.mjs} +8 -7
  146. package/dist/renderer-BM05sB8m.mjs.map +1 -0
  147. package/dist/{renderer-DxBUppHf.mjs → renderer-BTYncYDf.mjs} +74 -63
  148. package/dist/{renderer-DxBUppHf.mjs.map → renderer-BTYncYDf.mjs.map} +1 -1
  149. package/dist/renderer-BUIWeIKQ.mjs +3 -0
  150. package/dist/{renderer-0uccAKQe.mjs → renderer-BXaK02qA.mjs} +2 -2
  151. package/dist/{renderer-0uccAKQe.mjs.map → renderer-BXaK02qA.mjs.map} +1 -1
  152. package/dist/renderer-B_LfC88A.mjs +3 -0
  153. package/dist/renderer-B_zmicsE.mjs +3 -0
  154. package/dist/{renderer-DrgNyCSx.mjs → renderer-BcPpcKDI.mjs} +2 -2
  155. package/dist/{renderer-DrgNyCSx.mjs.map → renderer-BcPpcKDI.mjs.map} +1 -1
  156. package/dist/{renderer-C-Bv9nVB.mjs → renderer-BgqjWI7K.mjs} +2 -2
  157. package/dist/{renderer-C-Bv9nVB.mjs.map → renderer-BgqjWI7K.mjs.map} +1 -1
  158. package/dist/{renderer-BPbNLPcz.mjs → renderer-BpJgfBQ8.mjs} +2 -2
  159. package/dist/{renderer-BPbNLPcz.mjs.map → renderer-BpJgfBQ8.mjs.map} +1 -1
  160. package/dist/renderer-BtNxtXkR.mjs +3 -0
  161. package/dist/{renderer-D5xelwpw.mjs → renderer-BwmZUkvd.mjs} +2 -2
  162. package/dist/{renderer-D5xelwpw.mjs.map → renderer-BwmZUkvd.mjs.map} +1 -1
  163. package/dist/{renderer-DIfk6m2O.mjs → renderer-C-PfbkPu.mjs} +2 -2
  164. package/dist/{renderer-DIfk6m2O.mjs.map → renderer-C-PfbkPu.mjs.map} +1 -1
  165. package/dist/renderer-C-sZSHtf.mjs +3 -0
  166. package/dist/renderer-C1zifktw.mjs +3 -0
  167. package/dist/{renderer-U0LJuM9D.mjs → renderer-C2gnWTQZ.mjs} +2 -2
  168. package/dist/{renderer-U0LJuM9D.mjs.map → renderer-C2gnWTQZ.mjs.map} +1 -1
  169. package/dist/{renderer-BdSHGzHj.mjs → renderer-CB8hMQgm.mjs} +1 -1
  170. package/dist/renderer-CCt2XTSM.mjs +3 -0
  171. package/dist/{renderer-BjROyv5F.mjs → renderer-CKJb_Lky.mjs} +2 -2
  172. package/dist/{renderer-BjROyv5F.mjs.map → renderer-CKJb_Lky.mjs.map} +1 -1
  173. package/dist/renderer-CMXcaArD.mjs +3 -0
  174. package/dist/{renderer-CIMjMFGm.mjs → renderer-CV8diddR.mjs} +2 -2
  175. package/dist/{renderer-CIMjMFGm.mjs.map → renderer-CV8diddR.mjs.map} +1 -1
  176. package/dist/renderer-CW9D5zCP.mjs +3 -0
  177. package/dist/{renderer-Dgg6pQGI.mjs → renderer-CckJJHbM.mjs} +2 -2
  178. package/dist/{renderer-Dgg6pQGI.mjs.map → renderer-CckJJHbM.mjs.map} +1 -1
  179. package/dist/{renderer-DFKsLrUs.mjs → renderer-CepMDQ06.mjs} +1 -1
  180. package/dist/{renderer-DFKsLrUs.mjs.map → renderer-CepMDQ06.mjs.map} +1 -1
  181. package/dist/renderer-CjY77sB_.mjs +3 -0
  182. package/dist/{renderer-DVQp5fLG.mjs → renderer-CpUbDJAV.mjs} +5 -4
  183. package/dist/{renderer-DVQp5fLG.mjs.map → renderer-CpUbDJAV.mjs.map} +1 -1
  184. package/dist/{renderer-zwxwjWqa.mjs → renderer-CrVAvP92.mjs} +2 -2
  185. package/dist/{renderer-zwxwjWqa.mjs.map → renderer-CrVAvP92.mjs.map} +1 -1
  186. package/dist/{renderer-CboM4tba.mjs → renderer-CuqhAB4i.mjs} +11 -5
  187. package/dist/renderer-CuqhAB4i.mjs.map +1 -0
  188. package/dist/{renderer-CmIySXSN.mjs → renderer-CxQ5v4fJ.mjs} +11 -5
  189. package/dist/renderer-CxQ5v4fJ.mjs.map +1 -0
  190. package/dist/renderer-D1R7vBUl.mjs +3 -0
  191. package/dist/{renderer-DabG62XS.mjs → renderer-D2XD4QYk.mjs} +1 -1
  192. package/dist/{renderer-DabG62XS.mjs.map → renderer-D2XD4QYk.mjs.map} +1 -1
  193. package/dist/{renderer-Bv-ljXHc.mjs → renderer-D3uNI10l.mjs} +2 -2
  194. package/dist/{renderer-Bv-ljXHc.mjs.map → renderer-D3uNI10l.mjs.map} +1 -1
  195. package/dist/renderer-D5yawxtJ.mjs +3 -0
  196. package/dist/{renderer-Bq3Geqe3.mjs → renderer-D6Gi_h4K.mjs} +1 -1
  197. package/dist/{renderer-DjI45OYC.mjs → renderer-D7zvPHKn.mjs} +1 -1
  198. package/dist/{renderer-DjI45OYC.mjs.map → renderer-D7zvPHKn.mjs.map} +1 -1
  199. package/dist/renderer-D9NnIx7o.mjs +3 -0
  200. package/dist/{renderer-D5GsF1LT.mjs → renderer-DAFyJ4dv.mjs} +2 -2
  201. package/dist/{renderer-D5GsF1LT.mjs.map → renderer-DAFyJ4dv.mjs.map} +1 -1
  202. package/dist/renderer-DC8jr1Ay.mjs +3 -0
  203. package/dist/{renderer-CXJxK7HP.mjs → renderer-DCK73tcD.mjs} +17 -4
  204. package/dist/renderer-DCK73tcD.mjs.map +1 -0
  205. package/dist/renderer-DCv-Abvn.mjs +4 -0
  206. package/dist/{renderer-B80s47yo.mjs → renderer-DEJwPRkR.mjs} +1 -1
  207. package/dist/{renderer-B80s47yo.mjs.map → renderer-DEJwPRkR.mjs.map} +1 -1
  208. package/dist/renderer-DPLFhzaV.mjs +3 -0
  209. package/dist/{renderer-B6Q5e9CU.mjs → renderer-DPpgBTlK.mjs} +2 -2
  210. package/dist/{renderer-B6Q5e9CU.mjs.map → renderer-DPpgBTlK.mjs.map} +1 -1
  211. package/dist/{renderer-DP-xNaYX.mjs → renderer-DRpE3ZW4.mjs} +2 -2
  212. package/dist/{renderer-DP-xNaYX.mjs.map → renderer-DRpE3ZW4.mjs.map} +1 -1
  213. package/dist/renderer-DVsF2FDr.mjs +3 -0
  214. package/dist/{renderer-VPK8JnSw.mjs → renderer-DX38J6mK.mjs} +7 -6
  215. package/dist/{renderer-VPK8JnSw.mjs.map → renderer-DX38J6mK.mjs.map} +1 -1
  216. package/dist/{renderer-CIvaRnP_.mjs → renderer-D_1oDOCP.mjs} +1 -1
  217. package/dist/{renderer-CIvaRnP_.mjs.map → renderer-D_1oDOCP.mjs.map} +1 -1
  218. package/dist/renderer-DetDm3ep.mjs +3 -0
  219. package/dist/{renderer-BENX0vRC.mjs → renderer-DgSO5OO0.mjs} +1 -1
  220. package/dist/renderer-DhMhJh_G.mjs +3 -0
  221. package/dist/renderer-DhQld4Qt.mjs +3 -0
  222. package/dist/renderer-Dn3rc3ah.mjs +3 -0
  223. package/dist/{renderer-DP948J9X.mjs → renderer-Dn8v2o9L.mjs} +18 -4
  224. package/dist/renderer-Dn8v2o9L.mjs.map +1 -0
  225. package/dist/{renderer-BQZniXw0.mjs → renderer-DnF3aXPX.mjs} +2 -2
  226. package/dist/{renderer-BQZniXw0.mjs.map → renderer-DnF3aXPX.mjs.map} +1 -1
  227. package/dist/renderer-Dw9LxE2f.mjs +3 -0
  228. package/dist/{renderer-CXZe0lfI.mjs → renderer-EmG34sT2.mjs} +2 -2
  229. package/dist/{renderer-CXZe0lfI.mjs.map → renderer-EmG34sT2.mjs.map} +1 -1
  230. package/dist/renderer-HvrQZw5E.mjs +3 -0
  231. package/dist/renderer-QdJE56ts.mjs +3 -0
  232. package/dist/{renderer-h-HOoLwD.mjs → renderer-_bygZSKk.mjs} +1 -1
  233. package/dist/{renderer-h-HOoLwD.mjs.map → renderer-_bygZSKk.mjs.map} +1 -1
  234. package/dist/{renderer-BD6Jkc8j.mjs → renderer-b6sZN90h.mjs} +4 -3
  235. package/dist/{renderer-BD6Jkc8j.mjs.map → renderer-b6sZN90h.mjs.map} +1 -1
  236. package/dist/renderer-d5-F_48R.mjs +3 -0
  237. package/dist/renderer-euGyUN2O.mjs +3 -0
  238. package/dist/{renderer-Bu0xOP_v.mjs → renderer-gT0ADXMW.mjs} +2 -2
  239. package/dist/{renderer-Bu0xOP_v.mjs.map → renderer-gT0ADXMW.mjs.map} +1 -1
  240. package/dist/{renderer-DbaSgadp.mjs → renderer-lq4n1hSS.mjs} +2 -2
  241. package/dist/{renderer-DbaSgadp.mjs.map → renderer-lq4n1hSS.mjs.map} +1 -1
  242. package/dist/renderer-p3SmBFP9.mjs +3 -0
  243. package/dist/renderer-xp_J0ln7.mjs +263 -0
  244. package/dist/renderer-xp_J0ln7.mjs.map +1 -0
  245. package/dist/{renderer-BTFPC3UJ.mjs → renderer-zvtpCnqy.mjs} +1 -1
  246. package/dist/{renderers-CP8CFWDs-BQBjaV9O.mjs → renderers-CP8CFWDs-Ciap7y_j.mjs} +2 -2
  247. package/dist/{renderers-CP8CFWDs-BQBjaV9O.mjs.map → renderers-CP8CFWDs-Ciap7y_j.mjs.map} +1 -1
  248. package/dist/signals/index.d.mts +5 -5
  249. package/dist/signals/index.mjs +4 -4
  250. package/dist/{signin-CZj4Oc5s.mjs → signin-Db08vl-g.mjs} +9 -9
  251. package/dist/{signin-CZj4Oc5s.mjs.map → signin-Db08vl-g.mjs.map} +1 -1
  252. package/dist/{sso-oidc-C0_31ThY.mjs → sso-oidc-CpLz_lIu.mjs} +9 -9
  253. package/dist/{sso-oidc-C0_31ThY.mjs.map → sso-oidc-CpLz_lIu.mjs.map} +1 -1
  254. package/dist/{sts-DD4ggEXC.mjs → sts-BQefGuml.mjs} +2 -2
  255. package/dist/{sts-nXw8RDJI.mjs → sts-Dgl0kH-t.mjs} +9 -9
  256. package/dist/{sts-nXw8RDJI.mjs.map → sts-Dgl0kH-t.mjs.map} +1 -1
  257. package/package.json +55 -54
  258. package/dist/dist-BQFap0wr.mjs.map +0 -1
  259. package/dist/dist-ZVlYkuR4.mjs.map +0 -1
  260. package/dist/dist-cjs-CmZEMtO6.mjs +0 -6
  261. package/dist/effects-axfL_C3a.mjs.map +0 -1
  262. package/dist/index-BJx_Qxc_.d.mts.map +0 -1
  263. package/dist/index-CZChQhXZ.d.mts.map +0 -1
  264. package/dist/index-WIPHLy5m.d.mts.map +0 -1
  265. package/dist/preview-engine/chunk-2XXICKQV.mjs +0 -82
  266. package/dist/preview-engine/chunk-66NVL4BN.mjs +0 -58
  267. package/dist/preview-engine/chunk-7MJVROKR.mjs +0 -98
  268. package/dist/preview-engine/chunk-7NVDTELW.mjs +0 -1
  269. package/dist/preview-engine/chunk-DMWSTYFF.mjs +0 -1
  270. package/dist/preview-engine/chunk-FKZ4XXPE.mjs +0 -1
  271. package/dist/preview-engine/chunk-JQ4WY6BZ.mjs +0 -186
  272. package/dist/preview-engine/chunk-S3P3MJYU.mjs +0 -1
  273. package/dist/preview-engine/renderers-MZBR3MSR.mjs +0 -248
  274. package/dist/renderer-1mNREW16.mjs +0 -3
  275. package/dist/renderer-4tKI3p9c.mjs +0 -3
  276. package/dist/renderer-B3XeKN-e.mjs +0 -3
  277. package/dist/renderer-B7_6SHd8.mjs +0 -3
  278. package/dist/renderer-BDLnExoP.mjs.map +0 -1
  279. package/dist/renderer-BENF6Wts.mjs +0 -3
  280. package/dist/renderer-BMovYRoR.mjs +0 -3
  281. package/dist/renderer-BPiLdwI1.mjs +0 -3
  282. package/dist/renderer-BdyMrzUX.mjs +0 -3
  283. package/dist/renderer-BfpdekRn.mjs +0 -3
  284. package/dist/renderer-BfvBHHNr.mjs +0 -3
  285. package/dist/renderer-BtdnLjKZ.mjs +0 -3
  286. package/dist/renderer-C0q5UUY7.mjs +0 -3
  287. package/dist/renderer-CXJxK7HP.mjs.map +0 -1
  288. package/dist/renderer-CboM4tba.mjs.map +0 -1
  289. package/dist/renderer-CceiI6P7.mjs.map +0 -1
  290. package/dist/renderer-Cg-rJgwM.mjs +0 -3
  291. package/dist/renderer-CkgQArsi.mjs +0 -3
  292. package/dist/renderer-CmIySXSN.mjs.map +0 -1
  293. package/dist/renderer-CnO9KcmP.mjs +0 -3
  294. package/dist/renderer-Cnp5JCwi.mjs +0 -3
  295. package/dist/renderer-CwiCQzjW.mjs +0 -4
  296. package/dist/renderer-D2LCMZ0l.mjs +0 -3
  297. package/dist/renderer-D6bWQtr-.mjs +0 -3
  298. package/dist/renderer-DBGy4qIh.mjs +0 -3
  299. package/dist/renderer-DBRnvHBV.mjs +0 -3
  300. package/dist/renderer-DDd3cjaz.mjs.map +0 -1
  301. package/dist/renderer-DJgrcu3v.mjs +0 -3
  302. package/dist/renderer-DP948J9X.mjs.map +0 -1
  303. package/dist/renderer-DTpBOlDA.mjs +0 -3
  304. package/dist/renderer-DWwIX4Mr.mjs +0 -3
  305. package/dist/renderer-DXyaswab.mjs.map +0 -1
  306. package/dist/renderer-DfnacE0H.mjs +0 -3
  307. package/dist/renderer-RA8pee2T.mjs +0 -3
  308. package/dist/renderer-eH4u4-2c.mjs +0 -3
  309. package/dist/renderer-eWOqFUz9.mjs +0 -3
  310. package/dist/renderer-o4wOvjEC.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import{t as N}from"./chunk-ZNGOAGAI.mjs";import{d as w}from"./chunk-6YJP57MZ.mjs";import{e as T}from"./chunk-BVF64D6H.mjs";T();T();function z(t,e,r,u){if(t==null)return e;if(typeof t=="object"&&t!==null){if("get"in t&&typeof t.get=="function")try{let o=t.get({frame:r,fps:u,time:u>0?r/u:0,duration:0,durationMs:0,progress:0,deltaTime:u>0?1/u:0}),p=Number(o);if(Number.isFinite(p))return p}catch{}if("value"in t){let o=Number(t.value);if(Number.isFinite(o))return o}}else if(typeof t=="function")try{let o=t(r,u),p=Number(o);if(Number.isFinite(p))return p}catch{}let s=Number(t);return Number.isFinite(s)?s:e}function h(t,e,r,u,s,o=0,p=30){let y=`${e}HandleId`,n=t[y],c=n?t.inputs?.[n]:null,l=!!(c?.connectionValid&&c.outputItem?.type==="Signal"),i=l?c?.outputItem?.data:null,a=r;if(l)i&&typeof i=="object"&&"offset"in i&&(a=Number(i.offset??r));else if(c?.connectionValid&&c.outputItem?.type==="Number")a=Number(c.outputItem.data??r);else{let x=t[e]??t.signals?.[e];a=z(x,r,o,p)}return a=Math.max(u,Math.min(s,a)),{hasSignal:l,sd:i,value:a}}var J=`
1
+ import{t as B}from"./chunk-ZNGOAGAI.mjs";import{d as G}from"./chunk-6YJP57MZ.mjs";import{e as T}from"./chunk-BVF64D6H.mjs";T();T();function J(t,e,r,a){if(t==null)return e;if(typeof t=="object"&&t!==null){if("get"in t&&typeof t.get=="function")try{let o=t.get({frame:r,fps:a,time:a>0?r/a:0,duration:0,durationMs:0,progress:0,deltaTime:a>0?1/a:0}),l=Number(o);if(Number.isFinite(l))return l}catch{}if("value"in t){let o=Number(t.value);if(Number.isFinite(o))return o}}else if(typeof t=="function")try{let o=t(r,a),l=Number(o);if(Number.isFinite(l))return l}catch{}let i=Number(t);return Number.isFinite(i)?i:e}function y(t,e,r,a,i,o=0,l=30){let x=`${e}HandleId`,n=t[x],c=n?t.inputs?.[n]:null,m=!!(c?.connectionValid&&c.outputItem?.type==="Signal"),s=m?c?.outputItem?.data:null,u=r;if(m)s&&typeof s=="object"&&"offset"in s&&(u=Number(s.offset??r));else if(c?.connectionValid&&c.outputItem?.type==="Number")u=Number(c.outputItem.data??r);else{let p=t[e]??t.signals?.[e];u=J(p,r,o,l)}return u=Math.max(a,Math.min(i,u)),{hasSignal:m,sd:s,value:u}}var Q=`
2
2
  struct ModulateUniforms {
3
3
  hue : f32,
4
4
  brightness : f32,
@@ -181,4 +181,4 @@ fn apply_sepia(c: vec4<f32>, s: f32) -> vec4<f32> {
181
181
 
182
182
  return color;
183
183
  }
184
- `,B=new WeakMap,f=new Float32Array(12);function Q(t){let e=B.get(t);if(e)return e;let r=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),u=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),s=t.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,sampler:{type:"filtering"}}]});return e={modulateUniformLayout:r,singleTextureLayout:u,modulateSignalsLayout:s,pipelineCache:new Map},B.set(t,e),e}function X(t,e){let r=Q(t),u=`modulate_${e}`,s=r.pipelineCache.get(u);if(!s){let o=t.createShaderModule({label:`modulate_static_${e}.wgsl`,code:J});s=t.createRenderPipeline({label:`ModulatePipeline_static_${e}`,layout:t.createPipelineLayout({bindGroupLayouts:[r.modulateUniformLayout,r.singleTextureLayout,r.modulateSignalsLayout]}),vertex:{module:o,entryPoint:"vs"},fragment:{module:o,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),r.pipelineCache.set(u,s)}return{modulatePipeline:s,modulateUniformLayout:r.modulateUniformLayout,singleTextureLayout:r.singleTextureLayout,modulateSignalsLayout:r.modulateSignalsLayout}}var E=async t=>{let{ctx:e,encoder:r,pass:u,targetView:s,targetTexture:o,targetWidth:p,targetHeight:y,props:n,drawChild:c}=t,l=n.frame??0,i=n.fps||30,a=n.virtualMedia?.operation;if(a?.op!=="Modulate"||!a)return;let x=n.virtualMedia.children?.[0];if(!x)return;u.end();let G=h(a,"hue",0,0,360,l,i),M=h(a,"brightness",1,0,2,l,i),R=h(a,"contrast",1,0,2,l,i),_=h(a,"exposure",0,-2,2,l,i),P=h(a,"saturation",1,0,2,l,i),L=h(a,"sepia",0,0,1,l,i),g=p,m=y,S=e.renderer.getTemporaryTexture(g,m,[...n.excludeTextures||[],o]),V=S.createView();e.renderer.beginFrame(r,V,{r:0,g:0,b:0,a:0},g,m,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:g,height:m}),e.renderer.pushIdentity(),await c(x,{...n,virtualMedia:x},V,S,g,m),e.renderer.popTransform(),e.renderer.popScissor();let{modulatePipeline:k,modulateUniformLayout:D,singleTextureLayout:O,modulateSignalsLayout:C}=X(e.device,e.renderer.format),A=e.renderer.samplerCache.getSampler(e.device),U=e.renderer.getTemporaryTexture(g,m,[S,o,...n.excludeTextures||[]]);f[0]=G.value,f[1]=M.value,f[2]=R.value,f[3]=_.value,f[4]=P.value,f[5]=L.value;let H=[{name:"hue",info:G,idx:6},{name:"brightness",info:M,idx:7},{name:"contrast",info:R,idx:8},{name:"exposure",info:_,idx:9},{name:"saturation",info:P,idx:10},{name:"sepia",info:L,idx:11}],d=[],W=n.elapsedMs!==void 0?n.elapsedMs/1e3:l/i,$=n.virtualMedia?.metadata?.durationMs?n.virtualMedia.metadata.durationMs/1e3:n.durationMs!==void 0?n.durationMs/1e3:0;for(let v of H){let F=!!(v.info.hasSignal&&v.info.sd);if(f[v.idx]=F?1:0,F){let K=w.getOrCreate2DTextureView(e.device,r,v.info.sd.nodeId??`modulate_${v.name}_sig`,W,$,v.info.sd,g,m,n.renderId,l,i);d.push(K)}else d.push(w.getDummy1x1TextureView(e.device))}let j=e.renderer.getTemporaryBuffer(f),b=r.beginRenderPass({colorAttachments:[{view:U.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});b.setPipeline(k),b.setBindGroup(0,e.device.createBindGroup({layout:D,entries:[{binding:0,resource:{buffer:j}}]})),b.setBindGroup(1,e.renderer.bindGroupCache.getBindGroup(e.device,O,S,A)),b.setBindGroup(2,e.device.createBindGroup({layout:C,entries:[{binding:0,resource:d[0]},{binding:1,resource:d[1]},{binding:2,resource:d[2]},{binding:3,resource:d[3]},{binding:4,resource:d[4]},{binding:5,resource:d[5]},{binding:6,resource:A}]})),b.draw(4),b.end();let I=e.renderer.beginFrame(r,s,{r:0,g:0,b:0,a:0},p,y,"load");e.renderer.drawTexture(I,U,{x:0,y:0,width:p,height:y},{opacity:a.opacity??1}),t.pass=I};var ae=N({WebGPURenderer:E});export{ae as a};
184
+ `,E=new WeakMap,f=new Float32Array(12);function X(t){let e=E.get(t);if(e)return e;let r=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),a=t.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),i=t.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,sampler:{type:"filtering"}}]});return e={modulateUniformLayout:r,singleTextureLayout:a,modulateSignalsLayout:i,pipelineCache:new Map},E.set(t,e),e}function Y(t,e){let r=X(t),a=`modulate_${e}`,i=r.pipelineCache.get(a);if(!i){let o=t.createShaderModule({label:`modulate_static_${e}.wgsl`,code:Q});i=t.createRenderPipeline({label:`ModulatePipeline_static_${e}`,layout:t.createPipelineLayout({bindGroupLayouts:[r.modulateUniformLayout,r.singleTextureLayout,r.modulateSignalsLayout]}),vertex:{module:o,entryPoint:"vs"},fragment:{module:o,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),r.pipelineCache.set(a,i)}return{modulatePipeline:i,modulateUniformLayout:r.modulateUniformLayout,singleTextureLayout:r.singleTextureLayout,modulateSignalsLayout:r.modulateSignalsLayout}}var k=async t=>{let{ctx:e,encoder:r,pass:a,targetView:i,targetTexture:o,targetWidth:l,targetHeight:x,props:n,drawChild:c}=t,m=n.frame??0,s=n.compositionFrame??m,u=n.fps||30,p=n.virtualMedia?.operation;if(p?.op!=="Modulate"||!p)return;let w=n.virtualMedia.children?.[0];if(!w)return;a.end();let M=y(p,"hue",0,0,360,s,u),R=y(p,"brightness",1,0,2,s,u),_=y(p,"contrast",1,0,2,s,u),P=y(p,"exposure",0,-2,2,s,u),L=y(p,"saturation",1,0,2,s,u),V=y(p,"sepia",0,0,1,s,u),g=l,b=x,S=e.renderer.getTemporaryTexture(g,b,[...n.excludeTextures||[],o]),A=S.createView();e.renderer.beginFrame(r,A,{r:0,g:0,b:0,a:0},g,b,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:g,height:b}),e.renderer.pushIdentity(),await c(w,{...n,virtualMedia:w},A,S,g,b),e.renderer.popTransform(),e.renderer.popScissor();let{modulatePipeline:D,modulateUniformLayout:O,singleTextureLayout:C,modulateSignalsLayout:H}=Y(e.device,e.renderer.format),U=e.renderer.samplerCache.getSampler(e.device),I=e.renderer.getTemporaryTexture(g,b,[S,o,...n.excludeTextures||[]]);f[0]=M.value,f[1]=R.value,f[2]=_.value,f[3]=P.value,f[4]=L.value,f[5]=V.value;let W=[{name:"hue",info:M,idx:6},{name:"brightness",info:R,idx:7},{name:"contrast",info:_,idx:8},{name:"exposure",info:P,idx:9},{name:"saturation",info:L,idx:10},{name:"sepia",info:V,idx:11}],d=[],$=n.elapsedMs!==void 0?n.elapsedMs/1e3:m/u,j=n.virtualMedia?.metadata?.durationMs?n.virtualMedia.metadata.durationMs/1e3:n.durationMs!==void 0?n.durationMs/1e3:0;for(let h of W){let N=!!(h.info.hasSignal&&h.info.sd);if(f[h.idx]=N?1:0,N){let q=G.getOrCreate2DTextureView(e.device,r,h.info.sd.nodeId??`modulate_${h.name}_sig`,$,j,h.info.sd,g,b,n.renderId,m,u);d.push(q)}else d.push(G.getDummy1x1TextureView(e.device))}let K=e.renderer.getTemporaryBuffer(f),v=r.beginRenderPass({colorAttachments:[{view:I.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});v.setPipeline(D),v.setBindGroup(0,e.device.createBindGroup({layout:O,entries:[{binding:0,resource:{buffer:K}}]})),v.setBindGroup(1,e.renderer.bindGroupCache.getBindGroup(e.device,C,S,U)),v.setBindGroup(2,e.device.createBindGroup({layout:H,entries:[{binding:0,resource:d[0]},{binding:1,resource:d[1]},{binding:2,resource:d[2]},{binding:3,resource:d[3]},{binding:4,resource:d[4]},{binding:5,resource:d[5]},{binding:6,resource:U}]})),v.draw(4),v.end();let F=e.renderer.beginFrame(r,i,{r:0,g:0,b:0,a:0},l,x,"load");e.renderer.drawTexture(F,I,{x:0,y:0,width:l,height:x},{opacity:p.opacity??1}),t.pass=F};var ue=B({WebGPURenderer:k});export{ue as a};
@@ -1,4 +1,4 @@
1
- import{a as Z}from"./chunk-LKYN3BM2.mjs";import{a as mt}from"./chunk-JPXQPP6J.mjs";import{a as B}from"./chunk-CNSHAFEA.mjs";import{a as pt,b as K,d as dt,e as L}from"./chunk-66NVL4BN.mjs";import{a as ct,b as ht}from"./chunk-VWLR2AZR.mjs";import{d as R,f as G,g as M,i as ft}from"./chunk-ZJFAGIOM.mjs";import{d as lt}from"./chunk-HYBAPT6I.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();var $=class{constructor(t,e){this.url=t;this.isHeadless=e}url;isHeadless;input=null;initPromise=null;iterator=null;iteratorStartTimestamp=-1;currentFetchId=0;fetchLock=Promise.resolve();destroyed=!1;async init(){if(!this.input)return this.initPromise?this.initPromise:(this.destroyed=!1,this.initPromise=(async()=>{try{let t=await L.acquire(this.url);this.destroyed?L.release(this.url):this.input=t}catch(t){throw this.initPromise=null,t}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(L.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},J=class extends ${canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];isDecoding=!1;decodeBuffer=null;nextRequest=null;pushHeadlessQueue(t){let e=this.headlessQueue.findIndex(r=>r.timestamp>t.timestamp);e===-1?this.headlessQueue.push(t):this.headlessQueue.splice(e,0,t)}async fillHeadlessQueue(t){if(this.iterator)for(;this.headlessQueue.length<2;){let e=await this.iterator.next();if(this.currentFetchId!==t){e.value?.close?.();return}if(e.done||!e.value)break;this.pushHeadlessQueue(e.value)}}async closeIterator(t){if(t)try{await t.return()}catch{}}resetSinks(){let t=this.iterator;if(this.iterator=null,t)try{t.return()}catch{}this.canvasSink=null,this.videoSampleSink=null,this.currentFrame=null,this.nextFrame=null,this.currentSample?.close(),this.currentSample=null,this.nextSample?.close(),this.nextSample=null;for(let e of this.headlessQueue)try{e.close()}catch{}this.headlessQueue=[],this.decodeBuffer=null,this.iteratorStartTimestamp=-1}onDestroy(){this.resetSinks()}async startIterator(t,e){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let n=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed)return;this.currentFrame=n.value??null;let s=await this.iterator.next();this.currentFetchId!==e||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(t,e){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let n=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(n),await this.fillHeadlessQueue(e),!(this.currentFetchId!==e||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(t){if(await this.init(),this.destroyed||!this.input)return null;let e=Math.max(0,Number.isFinite(t)?t:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:e,resolve:r,reject:i}})):this.executeDecode(e)}async executeDecode(t){this.isDecoding=!0;try{return await this.performDecode(t)}finally{if(this.isDecoding=!1,this.nextRequest){let e=this.nextRequest;this.nextRequest=null,this.executeDecode(e.timestampSec).then(e.resolve).catch(e.reject)}}}async performDecodeHeadless(t,e){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let h=await this.input.getPrimaryVideoTrack();if(!h)return null;this.videoSampleSink=new pt(h)}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&t<this.headlessQueue[0].timestamp-.01||this.headlessQueue.length>0&&t-this.headlessQueue[0].timestamp>1)&&(await this.startIteratorHeadless(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(e),this.currentFetchId!==e||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=t+r){this.headlessQueue.shift()?.close();continue}break}let s=this.headlessQueue[0];if(!s)return null;let a=s.displayWidth,o=s.displayHeight,l=a*o*4,c=this.decodeBuffer;return(!c||c.length!==l)&&(c=new Uint8Array(l),this.decodeBuffer=c),await s.copyTo(c,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:{width:a,height:o,buffer:c}}async performDecodeInternal(t){this.currentFetchId++;let e=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(t,e);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let a=await this.input.getPrimaryVideoTrack();if(!a)return null;this.canvasSink=new K(a,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.currentFrame&&t<this.currentFrame.timestamp-.01||this.currentFrame&&t-this.currentFrame.timestamp>1)&&(await this.startIterator(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=t+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let a=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed||!this.input)return null;this.nextFrame=a.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(t){let e=Math.max(0,Number.isFinite(t)?t:0);try{return await this.performDecodeInternal(e)}catch(r){let i=r;if(i?.name==="InputDisposedError"||i?.message?.includes("disposed")||this.destroyed||!this.input)return null;this.resetSinks();try{if(!this.isHeadless&&this.input&&!this.destroyed){let n=await this.input.getPrimaryVideoTrack();if(n&&!this.destroyed)return this.canvasSink=new K(n,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(e)}}catch{}throw r}}},tt=class extends ${audioSink=null;onDestroy(){this.audioSink=null}async startIterator(t,e){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(t),this.iteratorStartTimestamp=t)}async*getBuffers(t){try{if(await this.init(),this.destroyed||!this.input)return;if(!this.audioSink){let i=await this.input.getPrimaryAudioTrack();if(!i)return;this.audioSink=new dt(i)}(!this.iterator||Math.abs(t-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(t,this.currentFetchId));let r=this.currentFetchId;if(!this.iterator)return;for await(let i of this.iterator){if(this.currentFetchId!==r||this.destroyed||!this.input)break;this.iteratorStartTimestamp=i.timestamp+i.duration,yield i}}catch(e){let r=e;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw e}finally{let e=this.currentFetchId;this.currentFetchId===e&&(this.iterator=null)}}},et=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;touchKey(t){this.lastAccessed.set(t,Date.now())}destroy(){for(let t of this.videoDecoders.values())try{t.destroy()}catch{}this.videoDecoders.clear();for(let t of this.audioDecoders.values())try{t.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear()}prune(t=3e5){let e=Date.now();for(let[r,i]of this.lastAccessed.entries())if(e-i>t){let n=this.videoDecoders.get(r);n&&(n.destroy(),this.videoDecoders.delete(r));let s=this.audioDecoders.get(r);s&&(s.destroy(),this.audioDecoders.delete(r)),this.lastAccessed.delete(r)}}getVideo(t,e,r){let i=`${t}-${e}-${r??"default"}`,n=this.videoDecoders.get(i);return n||(n=new J(t,e),this.videoDecoders.set(i,n)),this.touchKey(i),this.prune(),n}getAudio(t,e){let r=`${t}-${e??"default"}`,i=this.audioDecoders.get(r);return i||(i=new tt(t,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(t){for(let[e,r]of this.videoDecoders)e.includes(t)&&(r.destroy(),this.videoDecoders.delete(e),this.lastAccessed.delete(e));for(let[e,r]of this.audioDecoders)e.includes(t)&&(r.destroy(),this.audioDecoders.delete(e),this.lastAccessed.delete(e))}},Vt=new et;g();g();var yt=`
1
+ import{a as Z}from"./chunk-LKYN3BM2.mjs";import{a as mt}from"./chunk-JPXQPP6J.mjs";import{a as B}from"./chunk-CNSHAFEA.mjs";import{a as pt,b as K,d as dt,e as L}from"./chunk-36YGYLKD.mjs";import{a as ct,b as ht}from"./chunk-VWLR2AZR.mjs";import{d as R,f as G,g as M,i as ft}from"./chunk-ZJFAGIOM.mjs";import{d as lt}from"./chunk-HYBAPT6I.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();var $=class{constructor(t,e){this.url=t;this.isHeadless=e}url;isHeadless;input=null;initPromise=null;iterator=null;iteratorStartTimestamp=-1;currentFetchId=0;fetchLock=Promise.resolve();destroyed=!1;async init(){if(!this.input)return this.initPromise?this.initPromise:(this.destroyed=!1,this.initPromise=(async()=>{try{let t=await L.acquire(this.url);this.destroyed?L.release(this.url):this.input=t}catch(t){throw this.initPromise=null,t}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(L.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},J=class extends ${canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];isDecoding=!1;decodeBuffer=null;nextRequest=null;pushHeadlessQueue(t){let e=this.headlessQueue.findIndex(r=>r.timestamp>t.timestamp);e===-1?this.headlessQueue.push(t):this.headlessQueue.splice(e,0,t)}async fillHeadlessQueue(t){if(this.iterator)for(;this.headlessQueue.length<2;){let e=await this.iterator.next();if(this.currentFetchId!==t){e.value?.close?.();return}if(e.done||!e.value)break;this.pushHeadlessQueue(e.value)}}async closeIterator(t){if(t)try{await t.return()}catch{}}resetSinks(){let t=this.iterator;if(this.iterator=null,t)try{t.return()}catch{}this.canvasSink=null,this.videoSampleSink=null,this.currentFrame=null,this.nextFrame=null,this.currentSample?.close(),this.currentSample=null,this.nextSample?.close(),this.nextSample=null;for(let e of this.headlessQueue)try{e.close()}catch{}this.headlessQueue=[],this.decodeBuffer=null,this.iteratorStartTimestamp=-1}onDestroy(){this.resetSinks()}async startIterator(t,e){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let n=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed)return;this.currentFrame=n.value??null;let s=await this.iterator.next();this.currentFetchId!==e||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(t,e){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let n=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(n),await this.fillHeadlessQueue(e),!(this.currentFetchId!==e||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(t){if(await this.init(),this.destroyed||!this.input)return null;let e=Math.max(0,Number.isFinite(t)?t:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:e,resolve:r,reject:i}})):this.executeDecode(e)}async executeDecode(t){this.isDecoding=!0;try{return await this.performDecode(t)}finally{if(this.isDecoding=!1,this.nextRequest){let e=this.nextRequest;this.nextRequest=null,this.executeDecode(e.timestampSec).then(e.resolve).catch(e.reject)}}}async performDecodeHeadless(t,e){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let h=await this.input.getPrimaryVideoTrack();if(!h)return null;this.videoSampleSink=new pt(h)}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&t<this.headlessQueue[0].timestamp-.01||this.headlessQueue.length>0&&t-this.headlessQueue[0].timestamp>1)&&(await this.startIteratorHeadless(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(e),this.currentFetchId!==e||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=t+r){this.headlessQueue.shift()?.close();continue}break}let s=this.headlessQueue[0];if(!s)return null;let a=s.displayWidth,o=s.displayHeight,l=a*o*4,c=this.decodeBuffer;return(!c||c.length!==l)&&(c=new Uint8Array(l),this.decodeBuffer=c),await s.copyTo(c,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:{width:a,height:o,buffer:c}}async performDecodeInternal(t){this.currentFetchId++;let e=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(t,e);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let a=await this.input.getPrimaryVideoTrack();if(!a)return null;this.canvasSink=new K(a,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.currentFrame&&t<this.currentFrame.timestamp-.01||this.currentFrame&&t-this.currentFrame.timestamp>1)&&(await this.startIterator(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=t+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let a=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed||!this.input)return null;this.nextFrame=a.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(t){let e=Math.max(0,Number.isFinite(t)?t:0);try{return await this.performDecodeInternal(e)}catch(r){let i=r;if(i?.name==="InputDisposedError"||i?.message?.includes("disposed")||this.destroyed||!this.input)return null;this.resetSinks();try{if(!this.isHeadless&&this.input&&!this.destroyed){let n=await this.input.getPrimaryVideoTrack();if(n&&!this.destroyed)return this.canvasSink=new K(n,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(e)}}catch{}throw r}}},tt=class extends ${audioSink=null;onDestroy(){this.audioSink=null}async startIterator(t,e){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(t),this.iteratorStartTimestamp=t)}async*getBuffers(t){try{if(await this.init(),this.destroyed||!this.input)return;if(!this.audioSink){let i=await this.input.getPrimaryAudioTrack();if(!i)return;this.audioSink=new dt(i)}(!this.iterator||Math.abs(t-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(t,this.currentFetchId));let r=this.currentFetchId;if(!this.iterator)return;for await(let i of this.iterator){if(this.currentFetchId!==r||this.destroyed||!this.input)break;this.iteratorStartTimestamp=i.timestamp+i.duration,yield i}}catch(e){let r=e;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw e}finally{let e=this.currentFetchId;this.currentFetchId===e&&(this.iterator=null)}}},et=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;touchKey(t){this.lastAccessed.set(t,Date.now())}destroy(){for(let t of this.videoDecoders.values())try{t.destroy()}catch{}this.videoDecoders.clear();for(let t of this.audioDecoders.values())try{t.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear()}prune(t=3e5){let e=Date.now();for(let[r,i]of this.lastAccessed.entries())if(e-i>t){let n=this.videoDecoders.get(r);n&&(n.destroy(),this.videoDecoders.delete(r));let s=this.audioDecoders.get(r);s&&(s.destroy(),this.audioDecoders.delete(r)),this.lastAccessed.delete(r)}}getVideo(t,e,r){let i=`${t}-${e}-${r??"default"}`,n=this.videoDecoders.get(i);return n||(n=new J(t,e),this.videoDecoders.set(i,n)),this.touchKey(i),this.prune(),n}getAudio(t,e){let r=`${t}-${e??"default"}`,i=this.audioDecoders.get(r);return i||(i=new tt(t,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(t){for(let[e,r]of this.videoDecoders)e.includes(t)&&(r.destroy(),this.videoDecoders.delete(e),this.lastAccessed.delete(e));for(let[e,r]of this.audioDecoders)e.includes(t)&&(r.destroy(),this.audioDecoders.delete(e),this.lastAccessed.delete(e))}},Vt=new et;g();g();var yt=`
2
2
  struct CompositeUniforms {
3
3
  blendMode : u32,
4
4
  padding1 : u32,
@@ -1,4 +1,4 @@
1
- import{a as le}from"./chunk-XOEEGC4Z.mjs";import{b as ue,c as oe}from"./chunk-IYVN2QEL.mjs";import{a as f}from"./chunk-NQZKBFC6.mjs";import{t as se}from"./chunk-ZNGOAGAI.mjs";import{d as I}from"./chunk-6YJP57MZ.mjs";import{e as P}from"./chunk-BVF64D6H.mjs";P();P();P();var Q=100,Be=le().field("blurType",f.enum(["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]).default("Gaussian"),{bindable:!1,label:"Blur Type"}).field("strength",f.number().min(0).max(Q).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Strength Signal",description:"The intensity of the blur. 0 = no blur. Can be modulated by a static number or a dynamic signal."}).field("angle",f.number().int().min(0).max(360).default(0),{bindable:!1,signal:!0,label:"Angle",description:"Direction of a Motion blur, in degrees."}).field("sigmaColor",f.number().min(.01).max(1).default(.1),{bindable:!0,dataTypes:["Number","Signal"],label:"Color Sigma Signal",description:"Sigma value for color space in Bilateral / Edge-preserving blurs. Can be modulated by a static number or a dynamic signal."}).field("centerX",f.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center X Signal",description:"The X coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("centerY",f.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center Y Signal",description:"The Y coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("partialBlur",f.boolean().default(!1),{bindable:!1,signal:!0,label:"Partial Blur",description:"Blurs only a specific circular area around center point."}).field("radius",f.number().min(.01).max(1).default(.3),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Signal",description:"Radius of the partial blur region (0.01 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("radiusY",f.number().min(0).max(1).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Y Signal",description:"Vertical radius of the partial blur region (0 to 1.0). 0 reuses the horizontal radius."}).field("shape",f.enum(["ellipse","circle","rect"]).default("circle"),{bindable:!1,label:"Partial Shape",description:"Shape of the partial blur region."}).build(),Xe=Be.schema,Ie=f.union([ue,oe]);var b=`
1
+ import{a as ue}from"./chunk-XOEEGC4Z.mjs";import{b as oe,c as ce}from"./chunk-IYVN2QEL.mjs";import{a as f}from"./chunk-NQZKBFC6.mjs";import{t as le}from"./chunk-ZNGOAGAI.mjs";import{d as X}from"./chunk-6YJP57MZ.mjs";import{e as P}from"./chunk-BVF64D6H.mjs";P();P();P();var Q=100,Te=ue().field("blurType",f.enum(["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]).default("Gaussian"),{bindable:!1,label:"Blur Type"}).field("strength",f.number().min(0).max(Q).default(5),{bindable:!0,dataTypes:["Number","Signal"],label:"Strength Signal",description:"The intensity of the blur. 0 = no blur. Can be modulated by a static number or a dynamic signal."}).field("angle",f.number().int().min(0).max(360).default(0),{bindable:!1,signal:!0,label:"Angle",description:"Direction of a Motion blur, in degrees."}).field("sigmaColor",f.number().min(.01).max(1).default(.1),{bindable:!0,dataTypes:["Number","Signal"],label:"Color Sigma Signal",description:"Sigma value for color space in Bilateral / Edge-preserving blurs. Can be modulated by a static number or a dynamic signal."}).field("centerX",f.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center X Signal",description:"The X coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("centerY",f.number().min(0).max(1).default(.5),{bindable:!0,dataTypes:["Number","Signal"],label:"Center Y Signal",description:"The Y coordinate of the blur center (0.0 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("partialBlur",f.boolean().default(!1),{bindable:!1,signal:!0,label:"Partial Blur",description:"Blurs only a specific circular area around center point."}).field("radius",f.number().min(.01).max(1).default(.3),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Signal",description:"Radius of the partial blur region (0.01 to 1.0). Can be modulated by a static number or a dynamic signal."}).field("radiusY",f.number().min(0).max(1).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Partial Radius Y Signal",description:"Vertical radius of the partial blur region (0 to 1.0). 0 reuses the horizontal radius."}).field("shape",f.enum(["ellipse","circle","rect"]).default("circle"),{bindable:!1,label:"Partial Shape",description:"Shape of the partial blur region."}).build(),Ie=Te.schema,De=f.union([oe,ce]);var b=`
2
2
  struct BlurUniforms {
3
3
  dirX : f32,
4
4
  dirY : f32,
@@ -74,7 +74,7 @@ fn applyPartialBlur(blurred: vec4<f32>, uv: vec2<f32>, dimensions: vec2<f32>) ->
74
74
  }
75
75
  return mix(orig, blurred, mask);
76
76
  }
77
- `,Te=`
77
+ `,Pe=`
78
78
  ${b}
79
79
 
80
80
  struct VSOut {
@@ -131,7 +131,7 @@ struct VSOut {
131
131
  let blurred = color / totalWeight;
132
132
  return applyPartialBlur(blurred, in.uv, dimensions);
133
133
  }
134
- `,Pe=`
134
+ `,Re=`
135
135
  ${b}
136
136
 
137
137
  struct VSOut {
@@ -183,7 +183,7 @@ struct VSOut {
183
183
  let blurred = color / count;
184
184
  return applyPartialBlur(blurred, in.uv, dimensions);
185
185
  }
186
- `,Re=`
186
+ `,Le=`
187
187
  ${b}
188
188
 
189
189
  struct VSOut {
@@ -259,7 +259,7 @@ struct Val {
259
259
  let medianIdx = count / 2;
260
260
  return applyPartialBlur(values[medianIdx].color, in.uv, dimensions);
261
261
  }
262
- `,Le=`
262
+ `,Ve=`
263
263
  ${b}
264
264
 
265
265
  struct VSOut {
@@ -314,7 +314,7 @@ struct VSOut {
314
314
  let blurred = color / f32(numSamples);
315
315
  return applyPartialBlur(blurred, in.uv, dimensions);
316
316
  }
317
- `,Ve=`
317
+ `,Ge=`
318
318
  ${b}
319
319
 
320
320
  struct VSOut {
@@ -384,7 +384,7 @@ struct VSOut {
384
384
  }
385
385
  return applyPartialBlur(blurred, in.uv, dimensions);
386
386
  }
387
- `,Ge=`
387
+ `,we=`
388
388
  ${b}
389
389
 
390
390
  struct VSOut {
@@ -481,7 +481,7 @@ struct VSOut {
481
481
  let blurred = vec4<f32>(finalCol, centerCol.a);
482
482
  return applyPartialBlur(blurred, in.uv, dimensions);
483
483
  }
484
- `,we=`
484
+ `,Ce=`
485
485
  ${b}
486
486
 
487
487
  struct VSOut {
@@ -547,7 +547,7 @@ struct VSOut {
547
547
  let blurred = color / 24.0;
548
548
  return applyPartialBlur(blurred, in.uv, dimensions);
549
549
  }
550
- `,Ce=`
550
+ `,_e=`
551
551
  ${b}
552
552
 
553
553
  struct VSOut {
@@ -607,4 +607,4 @@ struct VSOut {
607
607
  let blurred = color / 24.0;
608
608
  return applyPartialBlur(blurred, in.uv, dimensions);
609
609
  }
610
- `,fe=new WeakMap;function _e(u){let e=fe.get(u);if(e)return e;let i=u.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),o=u.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]}),y=u.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,sampler:{type:"filtering"}}]});return e={blurUniformLayout:i,singleTextureLayout:o,signalTextureLayout:y,pipelineCache:new Map},fe.set(u,e),e}function Ye(u,e,i){let o=_e(u),y=`blur_${i}_${e}`,p=o.pipelineCache.get(y);if(!p){let c=Te;i==="Box"?c=Pe:i==="Median"?c=Re:i==="Motion"?c=Le:i==="Bilateral"?c=Ve:i==="Edge-preserving"?c=Ge:i==="Radial"?c=we:i==="Zoom"&&(c=Ce);let B=u.createShaderModule({label:`blur_${i}_${e}.wgsl`,code:c});p=u.createRenderPipeline({label:`BlurPipeline_${i}_${e}`,layout:u.createPipelineLayout({bindGroupLayouts:[o.blurUniformLayout,o.singleTextureLayout,o.signalTextureLayout]}),vertex:{module:B,entryPoint:"vs"},fragment:{module:B,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),o.pipelineCache.set(y,p)}return{blurPipeline:p,blurUniformLayout:o.blurUniformLayout,singleTextureLayout:o.singleTextureLayout,signalTextureLayout:o.signalTextureLayout}}var de=async u=>{let{ctx:e,encoder:i,pass:o,targetView:y,targetTexture:p,targetWidth:c,targetHeight:B,props:n,drawChild:ve}=u,C=n.frame??0,R=n.fps||30,l=n.virtualMedia?.operation;if(l?.op!=="Blur"||!l)return;let D=n.virtualMedia.children?.[0];if(!D)return;o.end();let t=new Float32Array(16),m=c,S=B,ge=n.containerWidth??e.surface.width/(typeof window<"u"?window.devicePixelRatio:1),A=m/ge,pe=l.inputs?Object.keys(l.inputs)[0]:"blur_node",T=(r,s,v,w,g=!1)=>{let ye=`${r}HandleId`,re=l[ye],x=re?l.inputs?.[re]:null,ie=!!(x?.connectionValid&&(x.outputItem?.type==="Signal"||x.outputItem?.type==="Numeric")),Z=ie&&x?.outputItem?.data?x.outputItem.data:null,h=s,K=!1,ne;if(ie){if(Z){let a=Number(Z.offset??0);h=Math.max(v,Math.min(w,a)),g&&(h*=A),K=!0}}else if(x?.connectionValid&&x.outputItem?.type==="Number"){let a=Number(x.outputItem.data??s);h=Math.max(v,Math.min(w,a)),g&&(h*=A)}else{let a=l[r];if(a!=null)if(typeof a=="object"){if("get"in a&&typeof a.get=="function")a=a.get({frame:C,fps:R});else if("value"in a){let J=a;J.gpuBinding?.textureView&&(ne=J.gpuBinding.textureView,K=!0),a=J.value}}else typeof a=="function"&&(a=a(C,R));let ae=Number(a??s);h=Math.max(v,Math.min(w,isNaN(ae)?s:ae)),g&&(h*=A)}return{val:h,hasStaticSig:K,sd:Z,gpuTextureView:ne}},_=T("strength",5,0,Q,!0),Y=T("sigmaColor",.1,.01,1,!1),U=T("centerX",.5,0,1,!1),O=T("centerY",.5,0,1,!1),M=T("radius",.3,.001,1,!1),me=T("radiusY",0,0,1,!1),d=e.renderer.getTemporaryTexture(m,S,[...n.excludeTextures||[],p]),ee=d.createView();e.renderer.beginFrame(i,ee,{r:0,g:0,b:0,a:0},m,S,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:m,height:S}),e.renderer.pushIdentity(),await ve(D,{...n,virtualMedia:D},ee,d,m,S),e.renderer.popTransform(),e.renderer.popScissor();let L=l.blurType??"Gaussian",Se=L==="Gaussian"||L==="Box"||L==="Median"||L==="Bilateral",{blurPipeline:N,blurUniformLayout:E,singleTextureLayout:xe,signalTextureLayout:k}=Ye(e.device,e.renderer.format,L),X=e.renderer.samplerCache.getSampler(e.device),be=n.elapsedMs!==void 0?n.elapsedMs/1e3:C/R,he=n.virtualMedia?.metadata?.durationMs?n.virtualMedia.metadata.durationMs/1e3:n.durationMs!==void 0?n.durationMs/1e3:0;for(let r of[_,Y,U,O,M])r.hasStaticSig&&r.sd&&await I.ensureAudioSourcesExtracted(e.device,r.sd,R,n.renderId);let V=(r,s)=>r.gpuTextureView?r.gpuTextureView:r.hasStaticSig&&r.sd?I.getOrCreate2DTextureView(e.device,i,r.sd.nodeId??`${pe}_${s}`,be,he,r.sd,m,S,n.renderId,C,R):I.getDummy1x1TextureView(e.device),W=V(_,"strength_sig"),j=V(Y,"sigmacolor_sig"),F=V(U,"centerx_sig"),$=V(O,"centery_sig"),z=V(M,"radius_sig"),H=(r,s)=>e.device.createBindGroup({layout:xe,entries:[{binding:0,resource:r.createView()},{binding:1,resource:X},{binding:2,resource:s.createView()}]}),q=!!(l.partialBlur&&l.partialBlur!=="false"&&l.partialBlur!==0);t[2]=_.val,t[3]=Number(l.angle??0),t[4]=Y.val,t[5]=U.val,t[6]=O.val,t[7]=M.val,t[8]=q?1:0,t[9]=_.hasStaticSig?1:0,t[10]=Y.hasStaticSig?1:0,t[11]=U.hasStaticSig?1:0,t[12]=O.hasStaticSig?1:0,t[13]=M.hasStaticSig?1:0,t[14]=me.val,t[15]=l.shape==="rect"?1:0;let G;if(Se){let r=e.renderer.getTemporaryTexture(m,S,[d,p,...n.excludeTextures||[]]);G=e.renderer.getTemporaryTexture(m,S,[d,r,p,...n.excludeTextures||[]]),t[0]=1,t[1]=0,t[8]=0;let s=e.renderer.getTemporaryBuffer(t),v=i.beginRenderPass({colorAttachments:[{view:r.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});v.setPipeline(N),v.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:s}}]})),v.setBindGroup(1,H(d,d)),v.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:W},{binding:1,resource:j},{binding:2,resource:F},{binding:3,resource:$},{binding:4,resource:z},{binding:5,resource:X}]})),v.draw(4),v.end(),t[0]=0,t[1]=1,t[8]=q?1:0;let w=e.renderer.getTemporaryBuffer(t),g=i.beginRenderPass({colorAttachments:[{view:G.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});g.setPipeline(N),g.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:w}}]})),g.setBindGroup(1,H(r,d)),g.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:W},{binding:1,resource:j},{binding:2,resource:F},{binding:3,resource:$},{binding:4,resource:z},{binding:5,resource:X}]})),g.draw(4),g.end()}else{G=e.renderer.getTemporaryTexture(m,S,[d,p,...n.excludeTextures||[]]),t[0]=0,t[1]=0,t[8]=q?1:0;let r=e.renderer.getTemporaryBuffer(t),s=i.beginRenderPass({colorAttachments:[{view:G.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});s.setPipeline(N),s.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:r}}]})),s.setBindGroup(1,H(d,d)),s.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:W},{binding:1,resource:j},{binding:2,resource:F},{binding:3,resource:$},{binding:4,resource:z},{binding:5,resource:X}]})),s.draw(4),s.end()}let te=e.renderer.beginFrame(i,y,{r:0,g:0,b:0,a:0},c,B,"load");e.renderer.drawTexture(te,G,{x:0,y:0,width:c,height:B},{opacity:l.opacity??1}),u.pass=te};var $e=se({WebGPURenderer:de});export{$e as a};
610
+ `,de=new WeakMap;function Ye(u){let e=de.get(u);if(e)return e;let i=u.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),o=u.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]}),y=u.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,sampler:{type:"filtering"}}]});return e={blurUniformLayout:i,singleTextureLayout:o,signalTextureLayout:y,pipelineCache:new Map},de.set(u,e),e}function Ue(u,e,i){let o=Ye(u),y=`blur_${i}_${e}`,p=o.pipelineCache.get(y);if(!p){let c=Pe;i==="Box"?c=Re:i==="Median"?c=Le:i==="Motion"?c=Ve:i==="Bilateral"?c=Ge:i==="Edge-preserving"?c=we:i==="Radial"?c=Ce:i==="Zoom"&&(c=_e);let B=u.createShaderModule({label:`blur_${i}_${e}.wgsl`,code:c});p=u.createRenderPipeline({label:`BlurPipeline_${i}_${e}`,layout:u.createPipelineLayout({bindGroupLayouts:[o.blurUniformLayout,o.singleTextureLayout,o.signalTextureLayout]}),vertex:{module:B,entryPoint:"vs"},fragment:{module:B,entryPoint:"fs",targets:[{format:e}]},primitive:{topology:"triangle-strip"}}),o.pipelineCache.set(y,p)}return{blurPipeline:p,blurUniformLayout:o.blurUniformLayout,singleTextureLayout:o.singleTextureLayout,signalTextureLayout:o.signalTextureLayout}}var ve=async u=>{let{ctx:e,encoder:i,pass:o,targetView:y,targetTexture:p,targetWidth:c,targetHeight:B,props:n,drawChild:ge}=u,I=n.frame??0,ee=n.compositionFrame??I,R=n.fps||30,l=n.virtualMedia?.operation;if(l?.op!=="Blur"||!l)return;let D=n.virtualMedia.children?.[0];if(!D)return;o.end();let t=new Float32Array(16),m=c,S=B,pe=n.containerWidth??e.surface.width/(typeof window<"u"?window.devicePixelRatio:1),A=m/pe,me=l.inputs?Object.keys(l.inputs)[0]:"blur_node",T=(r,s,v,w,g=!1)=>{let Be=`${r}HandleId`,ie=l[Be],x=ie?l.inputs?.[ie]:null,ne=!!(x?.connectionValid&&(x.outputItem?.type==="Signal"||x.outputItem?.type==="Numeric")),Z=ne&&x?.outputItem?.data?x.outputItem.data:null,h=s,K=!1,ae;if(ne){if(Z){let a=Number(Z.offset??0);h=Math.max(v,Math.min(w,a)),g&&(h*=A),K=!0}}else if(x?.connectionValid&&x.outputItem?.type==="Number"){let a=Number(x.outputItem.data??s);h=Math.max(v,Math.min(w,a)),g&&(h*=A)}else{let a=l[r];if(a!=null)if(typeof a=="object"){if("get"in a&&typeof a.get=="function")a=a.get({frame:ee,fps:R});else if("value"in a){let J=a;J.gpuBinding?.textureView&&(ae=J.gpuBinding.textureView,K=!0),a=J.value}}else typeof a=="function"&&(a=a(ee,R));let se=Number(a??s);h=Math.max(v,Math.min(w,isNaN(se)?s:se)),g&&(h*=A)}return{val:h,hasStaticSig:K,sd:Z,gpuTextureView:ae}},C=T("strength",5,0,Q,!0),_=T("sigmaColor",.1,.01,1,!1),Y=T("centerX",.5,0,1,!1),U=T("centerY",.5,0,1,!1),O=T("radius",.3,.001,1,!1),Se=T("radiusY",0,0,1,!1),d=e.renderer.getTemporaryTexture(m,S,[...n.excludeTextures||[],p]),te=d.createView();e.renderer.beginFrame(i,te,{r:0,g:0,b:0,a:0},m,S,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:m,height:S}),e.renderer.pushIdentity(),await ge(D,{...n,virtualMedia:D},te,d,m,S),e.renderer.popTransform(),e.renderer.popScissor();let L=l.blurType??"Gaussian",xe=L==="Gaussian"||L==="Box"||L==="Median"||L==="Bilateral",{blurPipeline:N,blurUniformLayout:E,singleTextureLayout:be,signalTextureLayout:k}=Ue(e.device,e.renderer.format,L),M=e.renderer.samplerCache.getSampler(e.device),he=n.elapsedMs!==void 0?n.elapsedMs/1e3:I/R,ye=n.virtualMedia?.metadata?.durationMs?n.virtualMedia.metadata.durationMs/1e3:n.durationMs!==void 0?n.durationMs/1e3:0;for(let r of[C,_,Y,U,O])r.hasStaticSig&&r.sd&&await X.ensureAudioSourcesExtracted(e.device,r.sd,R,n.renderId);let V=(r,s)=>r.gpuTextureView?r.gpuTextureView:r.hasStaticSig&&r.sd?X.getOrCreate2DTextureView(e.device,i,r.sd.nodeId??`${me}_${s}`,he,ye,r.sd,m,S,n.renderId,I,R):X.getDummy1x1TextureView(e.device),W=V(C,"strength_sig"),F=V(_,"sigmacolor_sig"),j=V(Y,"centerx_sig"),$=V(U,"centery_sig"),z=V(O,"radius_sig"),H=(r,s)=>e.device.createBindGroup({layout:be,entries:[{binding:0,resource:r.createView()},{binding:1,resource:M},{binding:2,resource:s.createView()}]}),q=!!(l.partialBlur&&l.partialBlur!=="false"&&l.partialBlur!==0);t[2]=C.val,t[3]=Number(l.angle??0),t[4]=_.val,t[5]=Y.val,t[6]=U.val,t[7]=O.val,t[8]=q?1:0,t[9]=C.hasStaticSig?1:0,t[10]=_.hasStaticSig?1:0,t[11]=Y.hasStaticSig?1:0,t[12]=U.hasStaticSig?1:0,t[13]=O.hasStaticSig?1:0,t[14]=Se.val,t[15]=l.shape==="rect"?1:0;let G;if(xe){let r=e.renderer.getTemporaryTexture(m,S,[d,p,...n.excludeTextures||[]]);G=e.renderer.getTemporaryTexture(m,S,[d,r,p,...n.excludeTextures||[]]),t[0]=1,t[1]=0,t[8]=0;let s=e.renderer.getTemporaryBuffer(t),v=i.beginRenderPass({colorAttachments:[{view:r.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});v.setPipeline(N),v.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:s}}]})),v.setBindGroup(1,H(d,d)),v.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:W},{binding:1,resource:F},{binding:2,resource:j},{binding:3,resource:$},{binding:4,resource:z},{binding:5,resource:M}]})),v.draw(4),v.end(),t[0]=0,t[1]=1,t[8]=q?1:0;let w=e.renderer.getTemporaryBuffer(t),g=i.beginRenderPass({colorAttachments:[{view:G.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});g.setPipeline(N),g.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:w}}]})),g.setBindGroup(1,H(r,d)),g.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:W},{binding:1,resource:F},{binding:2,resource:j},{binding:3,resource:$},{binding:4,resource:z},{binding:5,resource:M}]})),g.draw(4),g.end()}else{G=e.renderer.getTemporaryTexture(m,S,[d,p,...n.excludeTextures||[]]),t[0]=0,t[1]=0,t[8]=q?1:0;let r=e.renderer.getTemporaryBuffer(t),s=i.beginRenderPass({colorAttachments:[{view:G.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});s.setPipeline(N),s.setBindGroup(0,e.device.createBindGroup({layout:E,entries:[{binding:0,resource:{buffer:r}}]})),s.setBindGroup(1,H(d,d)),s.setBindGroup(2,e.device.createBindGroup({layout:k,entries:[{binding:0,resource:W},{binding:1,resource:F},{binding:2,resource:j},{binding:3,resource:$},{binding:4,resource:z},{binding:5,resource:M}]})),s.draw(4),s.end()}let re=e.renderer.beginFrame(i,y,{r:0,g:0,b:0,a:0},c,B,"load");e.renderer.drawTexture(re,G,{x:0,y:0,width:c,height:B},{opacity:l.opacity??1}),u.pass=re};var ze=le({WebGPURenderer:ve});export{ze as a};
@@ -0,0 +1,186 @@
1
+ import{a as Q}from"./chunk-XOEEGC4Z.mjs";import{b as Z,c as ee}from"./chunk-IYVN2QEL.mjs";import{a as n}from"./chunk-NQZKBFC6.mjs";import{t as K}from"./chunk-ZNGOAGAI.mjs";import{d as J}from"./chunk-6YJP57MZ.mjs";import{e as b}from"./chunk-BVF64D6H.mjs";b();b();b();b();var R=500,I=100,d=4096,Ge=n.object({id:n.string().default("patch"),centerX:n.number().min(0).max(1).default(.5),centerY:n.number().min(0).max(1).default(.5),offsetX:n.number().min(-d).max(d).default(50),offsetY:n.number().min(-d).max(d).default(0),radius:n.number().min(1).max(R).default(25),sourceRadius:n.number().min(1).max(R).default(25),feather:n.number().min(0).max(I).default(50),opacity:n.number().min(0).max(1).default(1),mode:n.enum(["Clone","SeamlessHeal","TextureTransfer"]).default("SeamlessHeal")}),Ce=Q().field("patches",n.array(Ge).optional(),{label:"Patches",description:"List of patch healing operations applied sequentially."}).field("centerX",n.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",n.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",n.number().min(-d).max(d).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Offset X Signal",description:"Horizontal pixel distance from destination to sample source patch."}).field("offsetY",n.number().min(-d).max(d).default(0),{bindable:!0,dataTypes:["Number","Signal"],label:"Source Offset Y Signal",description:"Vertical pixel distance from destination to sample source patch."}).field("radius",n.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",n.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",n.number().min(0).max(I).default(50),{bindable:!0,dataTypes:["Number","Signal"],label:"Feather Signal",description:"Softness edge falloff percentage (0\u2013100%)."}).field("opacity",n.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",n.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(),_e=Ce.schema;function te(r){if(r?.patches&&r.patches.length>0)return r.patches.map((s,P)=>({id:s.id||`patch-${P+1}`,centerX:s.centerX??.5,centerY:s.centerY??.5,offsetX:s.offsetX??50,offsetY:s.offsetY??0,radius:s.radius??25,sourceRadius:s.sourceRadius??s.radius??25,feather:s.feather??50,opacity:s.opacity??1,mode:s.mode??"SeamlessHeal"}));let e=r?.radius??25;return[{id:"patch-1",centerX:r?.centerX??.5,centerY:r?.centerY??.5,offsetX:r?.offsetX??50,offsetY:r?.offsetY??0,radius:e,sourceRadius:r?.sourceRadius??e,feather:r?.feather??50,opacity:r?.opacity??1,mode:r?.mode??"SeamlessHeal"}]}var Fe=n.union([Z,ee]);var Me=`
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
+ `,Xe=`
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
+ `,He=`
54
+ ${Xe}
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
+ `,ae=new WeakMap;function Ue(r,e){let s=ae.get(r);if(s)return s;let P=r.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),U=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"}}]}),v=r.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=r.createShaderModule({code:`${Me}
186
+ ${He}`}),N=r.createPipelineLayout({bindGroupLayouts:[P,U,v]}),i=r.createRenderPipeline({layout:N,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 s={uniformLayout:P,textureLayout:U,signalTextureLayout:v,pipeline:i},ae.set(r,s),s}var re=async r=>{let{ctx:e,encoder:s,pass:P,targetView:U,targetTexture:v,targetWidth:L,targetHeight:N,props:i,drawChild:W}=r,p=i.virtualMedia?.operation;if(p?.op!=="PatchHeal"||!p)return;let k=i.virtualMedia?.children?.[0];if(!k)return;P.end();let l=L,c=N,B=i.frame??0,z=i.compositionFrame??B,Y=i.fps||30,ie=p.inputs?Object.keys(p.inputs)[0]:"patch_heal_node",V=J,h=e.renderer.getTemporaryTexture(l,c,[...i.excludeTextures||[],v]),_=h.createView();e.renderer.beginFrame(s,_,{r:0,g:0,b:0,a:0},l,c,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:l,height:c}),e.renderer.pushIdentity(),await W(k,{...i,virtualMedia:k,renderId:`${i.renderId}-src`,excludeTextures:[...i.excludeTextures||[],h]},_,h,l,c),e.renderer.popTransform(),e.renderer.popScissor();let m=null;if(p.maskMedia){m=e.renderer.getTemporaryTexture(l,c,[...i.excludeTextures||[],v,h]);let g=m.createView();e.renderer.beginFrame(s,g,{r:0,g:0,b:0,a:0},l,c,"clear").end(),e.renderer.pushScissor({x:0,y:0,width:l,height:c}),e.renderer.pushIdentity(),await W(p.maskMedia,{...i,virtualMedia:p.maskMedia,renderId:`${i.renderId}-mask`,excludeTextures:[...i.excludeTextures||[],h,m]},g,m,l,c),e.renderer.popTransform(),e.renderer.popScissor()}let{pipeline:se,uniformLayout:ne,textureLayout:oe,signalTextureLayout:ue}=Ue(e.device,e.renderer.format),$=e.renderer.samplerCache.getSampler(e.device),le=i.elapsedMs!==void 0?i.elapsedMs/1e3:B/Y,ce=i.virtualMedia?.metadata?.durationMs?i.virtualMedia.metadata.durationMs/1e3:i.durationMs!==void 0?i.durationMs/1e3:0,A=te(p),S=(g,t,f,y)=>{let H=`${g}HandleId`,G=p[H],u=G?p.inputs?.[G]:null,C=!!(u?.connectionValid&&(u.outputItem?.type==="Signal"||u.outputItem?.type==="Numeric")),T=C&&u?.outputItem?.data?u.outputItem.data:null,x=t,M=!1;if(C)T&&(x=Math.max(f,Math.min(y,Number(T.offset??0))),M=!0);else if(u?.connectionValid&&u.outputItem?.type==="Number"){let a=typeof u.outputItem.data=="number"?u.outputItem.data:u.outputItem.data?.value??t;x=Math.max(f,Math.min(y,Number(a)))}else{let a=t;a!=null&&(typeof a=="object"?"get"in a&&typeof a.get=="function"?a=a.get({frame:z,fps:Y}):"value"in a&&(a=a.value):typeof a=="function"&&(a=a(z,Y)));let F=Number(a??t);x=Math.max(f,Math.min(y,isNaN(F)?t:F))}return{val:x,hasStaticSig:M,sd:T}},de=m?m.createView():_,E=h,D=e.renderer.getTemporaryTexture(l,c,[h,...m?[m]:[],v,...i.excludeTextures||[]]),fe=A.length>1?e.renderer.getTemporaryTexture(l,c,[h,D,...m?[m]:[],v,...i.excludeTextures||[]]):D;for(let g=0;g<A.length;g++){let t=A[g],f=g===0,y=f?S("centerX",t.centerX,0,1):{val:t.centerX,hasStaticSig:!1,sd:null},H=f?S("centerY",t.centerY,0,1):{val:t.centerY,hasStaticSig:!1,sd:null},G=f?S("offsetX",t.offsetX,-d,d):{val:t.offsetX,hasStaticSig:!1,sd:null},u=f?S("offsetY",t.offsetY,-d,d):{val:t.offsetY,hasStaticSig:!1,sd:null},C=f?S("radius",t.radius,1,R):{val:t.radius,hasStaticSig:!1,sd:null},T=f?S("sourceRadius",t.sourceRadius??t.radius,1,R):{val:t.sourceRadius??t.radius,hasStaticSig:!1,sd:null},x=f?S("feather",t.feather,0,I):{val:t.feather,hasStaticSig:!1,sd:null},M=f?S("opacity",t.opacity,0,1):{val:t.opacity,hasStaticSig:!1,sd:null},a=(w,Pe)=>w.hasStaticSig&&w.sd&&V?V.getOrCreate2DTextureView(e.device,s,w.sd.nodeId??`${ie}_${Pe}`,le,ce,w.sd,l,c,i.renderId,B,Y):V?V.getDummy1x1TextureView(e.device):_,F=a(G,"offsetX_sig"),me=a(u,"offsetY_sig"),pe=a(y,"centerX_sig"),ge=a(H,"centerY_sig"),he=a(C,"radius_sig"),Se=a(T,"sourceRadius_sig"),xe=a(x,"feather_sig"),be=a(M,"opacity_sig"),ve=t.mode==="Clone"?0:t.mode==="TextureTransfer"?2:1,o=new Float32Array(20);o[0]=G.val,o[1]=u.val,o[2]=y.val,o[3]=H.val,o[4]=C.val,o[5]=T.val,o[6]=x.val,o[7]=M.val,o[8]=ve,o[9]=m?1:0,o[10]=G.hasStaticSig?1:0,o[11]=u.hasStaticSig?1:0,o[12]=y.hasStaticSig?1:0,o[13]=H.hasStaticSig?1:0,o[14]=C.hasStaticSig?1:0,o[15]=T.hasStaticSig?1:0,o[16]=x.hasStaticSig?1:0,o[17]=M.hasStaticSig?1:0,o[18]=0,o[19]=0;let ye=e.renderer.getTemporaryBuffer(o),q=g%2===0?D:fe,Te=e.device.createBindGroup({layout:oe,entries:[{binding:0,resource:E.createView()},{binding:1,resource:de},{binding:2,resource:$}]}),Re=e.device.createBindGroup({layout:ue,entries:[{binding:0,resource:F},{binding:1,resource:me},{binding:2,resource:pe},{binding:3,resource:ge},{binding:4,resource:he},{binding:5,resource:Se},{binding:6,resource:xe},{binding:7,resource:be},{binding:8,resource:$}]}),X=s.beginRenderPass({colorAttachments:[{view:q.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});X.setPipeline(se),X.setBindGroup(0,e.device.createBindGroup({layout:ne,entries:[{binding:0,resource:{buffer:ye}}]})),X.setBindGroup(1,Te),X.setBindGroup(2,Re),X.draw(4),X.end(),E=q}let j=e.renderer.beginFrame(s,U,{r:0,g:0,b:0,a:0},l,c,"load");e.renderer.drawTexture(j,E,{x:0,y:0,width:l,height:c},{opacity:1}),r.pass=j};var $e=K({WebGPURenderer:re});export{re as a,$e as b};
@@ -1,4 +1,4 @@
1
- import{d as V}from"./chunk-6YJP57MZ.mjs";import{e as x}from"./chunk-BVF64D6H.mjs";x();x();var D=new WeakMap,ue=`
1
+ import{d as V}from"./chunk-6YJP57MZ.mjs";import{e as w}from"./chunk-BVF64D6H.mjs";w();w();var O=new WeakMap,ce=`
2
2
  struct ColorBalanceUniforms {
3
3
  shadows : vec4<f32>,
4
4
  midtones : vec4<f32>,
@@ -131,4 +131,4 @@ fn set_luminance(c: vec3<f32>, l: f32) -> vec3<f32> {
131
131
 
132
132
  return vec4<f32>(adjustedRgb * alpha, alpha);
133
133
  }
134
- `;function ce(r,i){let s=D.get(r);if(s)return s;let S=r.createBindGroupLayout({label:"ColorBalanceUniformLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),v=r.createBindGroupLayout({label:"ColorBalanceTextureLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),f=r.createBindGroupLayout({label:"ColorBalanceSignalTextureLayout",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,texture:{sampleType:"float"}},{binding:9,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),c=r.createShaderModule({label:"ColorBalanceShaderModule",code:ue});return s={pipeline:r.createRenderPipeline({label:"ColorBalancePipeline",layout:r.createPipelineLayout({bindGroupLayouts:[S,v,f]}),vertex:{module:c,entryPoint:"vs"},fragment:{module:c,entryPoint:"fs",targets:[{format:i}]},primitive:{topology:"triangle-strip"}}),uniformLayout:S,textureLayout:v,signalTextureLayout:f},D.set(r,s),s}var e=new Float32Array(24),O=async r=>{let{ctx:i,encoder:s,pass:S,targetView:v,targetTexture:f,targetWidth:c,targetHeight:y,props:n,drawChild:W}=r,a=n.virtualMedia?.operation;if(a?.op!=="ColorBalance"||!n.virtualMedia?.children?.[0])return;S.end();let w=n.frame??0,G=n.fps||30,H=n.virtualMedia.children[0],h=c,p=y,k=n.virtualMedia?.metadata?.id||(a.inputs?Object.keys(a.inputs)[0]:null)||n.renderId||"colorbalance_node",o=(t,g,E=-100,I=100)=>{if(t&&a.inputs?.[t]?.connectionValid){let u=a.inputs[t].outputItem;if(u?.type==="Number"){let de=typeof u.data=="number"?u.data:u.data?.value??g;return{val:Math.max(E,Math.min(I,de)),hasStaticSig:!1,sd:null}}if(u?.type==="Signal"&&u.data)return{val:g,hasStaticSig:!0,sd:u.data}}return{val:Math.max(E,Math.min(I,g)),hasStaticSig:!1,sd:null}},l=t=>{t!=null&&(typeof t=="object"&&"value"in t?t=t.value:typeof t=="function"&&(t=t(w,G)));let g=Number(t??0);return isNaN(g)?0:g},B=o(a.shadows_cyanRedHandleId,l(a.shadows?.cyanRed)),R=o(a.shadows_magentaGreenHandleId,l(a.shadows?.magentaGreen)),T=o(a.shadows_yellowBlueHandleId,l(a.shadows?.yellowBlue)),M=o(a.midtones_cyanRedHandleId,l(a.midtones?.cyanRed)),_=o(a.midtones_magentaGreenHandleId,l(a.midtones?.magentaGreen)),C=o(a.midtones_yellowBlueHandleId,l(a.midtones?.yellowBlue)),L=o(a.highlights_cyanRedHandleId,l(a.highlights?.cyanRed)),P=o(a.highlights_magentaGreenHandleId,l(a.highlights?.magentaGreen)),U=o(a.highlights_yellowBlueHandleId,l(a.highlights?.yellowBlue)),b=i.renderer.getTemporaryTexture(h,p,[...n.excludeTextures||[],f]),N=b.createView();i.renderer.beginFrame(s,N,{r:0,g:0,b:0,a:0},h,p,"clear").end(),i.renderer.pushScissor({x:0,y:0,width:h,height:p}),i.renderer.pushIdentity(),await W(H,{...n,virtualMedia:H},N,b,h,p),i.renderer.popTransform(),i.renderer.popScissor();let{pipeline:j,uniformLayout:$,textureLayout:q,signalTextureLayout:z}=ce(i.device,i.renderer.format),A=i.renderer.samplerCache.getSampler(i.device),J=n.elapsedMs!==void 0?n.elapsedMs/1e3:w/G,K=n.virtualMedia?.metadata?.durationMs?n.virtualMedia.metadata.durationMs/1e3:n.durationMs!==void 0?n.durationMs/1e3:0,d=(t,g)=>t.hasStaticSig&&t.sd?V.getOrCreate2DTextureView(i.device,s,t.sd.nodeId??`${k}_${g}`,J,K,t.sd,h,p,n.renderId,w,G):V.getDummy1x1TextureView(i.device),Q=d(B,"shadows_cyanRed_sig"),X=d(R,"shadows_magentaGreen_sig"),Z=d(T,"shadows_yellowBlue_sig"),ee=d(M,"midtones_cyanRed_sig"),ae=d(_,"midtones_magentaGreen_sig"),ie=d(C,"midtones_yellowBlue_sig"),te=d(L,"highlights_cyanRed_sig"),ne=d(P,"highlights_magentaGreen_sig"),re=d(U,"highlights_yellowBlue_sig"),se=a.preserveLuminosity===!1?0:1;e[0]=B.val/100,e[1]=R.val/100,e[2]=T.val/100,e[3]=0,e[4]=M.val/100,e[5]=_.val/100,e[6]=C.val/100,e[7]=0,e[8]=L.val/100,e[9]=P.val/100,e[10]=U.val/100,e[11]=0,e[12]=se,e[13]=B.hasStaticSig?1:0,e[14]=R.hasStaticSig?1:0,e[15]=T.hasStaticSig?1:0,e[16]=M.hasStaticSig?1:0,e[17]=_.hasStaticSig?1:0,e[18]=C.hasStaticSig?1:0,e[19]=L.hasStaticSig?1:0,e[20]=P.hasStaticSig?1:0,e[21]=U.hasStaticSig?1:0,e[22]=0,e[23]=0;let oe=i.renderer.getTemporaryBuffer(e),F=i.renderer.getTemporaryTexture(h,p,[b,f,...n.excludeTextures||[]]),le=i.device.createBindGroup({layout:z,entries:[{binding:0,resource:Q},{binding:1,resource:X},{binding:2,resource:Z},{binding:3,resource:ee},{binding:4,resource:ae},{binding:5,resource:ie},{binding:6,resource:te},{binding:7,resource:ne},{binding:8,resource:re},{binding:9,resource:A}]}),m=s.beginRenderPass({colorAttachments:[{view:F.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});m.setPipeline(j),m.setBindGroup(0,i.device.createBindGroup({layout:$,entries:[{binding:0,resource:{buffer:oe}}]})),m.setBindGroup(1,i.renderer.bindGroupCache.getBindGroup(i.device,q,b,A)),m.setBindGroup(2,le),m.draw(4),m.end();let Y=i.renderer.beginFrame(s,v,{r:0,g:0,b:0,a:0},c,y,"load");i.renderer.drawTexture(Y,F,{x:0,y:0,width:c,height:y},{opacity:n.opacity??1}),r.pass=Y};var ve={WebGPURenderer:O};export{O as a,ve as b};
134
+ `;function he(r,t){let s=O.get(r);if(s)return s;let S=r.createBindGroupLayout({label:"ColorBalanceUniformLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),v=r.createBindGroupLayout({label:"ColorBalanceTextureLayout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),f=r.createBindGroupLayout({label:"ColorBalanceSignalTextureLayout",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,texture:{sampleType:"float"}},{binding:9,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),c=r.createShaderModule({label:"ColorBalanceShaderModule",code:ce});return s={pipeline:r.createRenderPipeline({label:"ColorBalancePipeline",layout:r.createPipelineLayout({bindGroupLayouts:[S,v,f]}),vertex:{module:c,entryPoint:"vs"},fragment:{module:c,entryPoint:"fs",targets:[{format:t}]},primitive:{topology:"triangle-strip"}}),uniformLayout:S,textureLayout:v,signalTextureLayout:f},O.set(r,s),s}var e=new Float32Array(24),k=async r=>{let{ctx:t,encoder:s,pass:S,targetView:v,targetTexture:f,targetWidth:c,targetHeight:y,props:n,drawChild:W}=r,i=n.virtualMedia?.operation;if(i?.op!=="ColorBalance"||!n.virtualMedia?.children?.[0])return;S.end();let G=n.frame??0,H=n.compositionFrame??G,b=n.fps||30,F=n.virtualMedia.children[0],h=c,m=y,j=n.virtualMedia?.metadata?.id||(i.inputs?Object.keys(i.inputs)[0]:null)||n.renderId||"colorbalance_node",o=(a,g,I=-100,D=100)=>{if(a&&i.inputs?.[a]?.connectionValid){let u=i.inputs[a].outputItem;if(u?.type==="Number"){let ge=typeof u.data=="number"?u.data:u.data?.value??g;return{val:Math.max(I,Math.min(D,ge)),hasStaticSig:!1,sd:null}}if(u?.type==="Signal"&&u.data)return{val:g,hasStaticSig:!0,sd:u.data}}return{val:Math.max(I,Math.min(D,g)),hasStaticSig:!1,sd:null}},l=a=>{a!=null&&(typeof a=="object"&&a!==null?"get"in a&&typeof a.get=="function"?a=a.get({frame:H,fps:b}):"value"in a&&(a=a.value):typeof a=="function"&&(a=a(H,b)));let g=Number(a??0);return isNaN(g)?0:g},B=o(i.shadows_cyanRedHandleId,l(i.shadows?.cyanRed)),R=o(i.shadows_magentaGreenHandleId,l(i.shadows?.magentaGreen)),T=o(i.shadows_yellowBlueHandleId,l(i.shadows?.yellowBlue)),M=o(i.midtones_cyanRedHandleId,l(i.midtones?.cyanRed)),_=o(i.midtones_magentaGreenHandleId,l(i.midtones?.magentaGreen)),C=o(i.midtones_yellowBlueHandleId,l(i.midtones?.yellowBlue)),L=o(i.highlights_cyanRedHandleId,l(i.highlights?.cyanRed)),P=o(i.highlights_magentaGreenHandleId,l(i.highlights?.magentaGreen)),U=o(i.highlights_yellowBlueHandleId,l(i.highlights?.yellowBlue)),x=t.renderer.getTemporaryTexture(h,m,[...n.excludeTextures||[],f]),N=x.createView();t.renderer.beginFrame(s,N,{r:0,g:0,b:0,a:0},h,m,"clear").end(),t.renderer.pushScissor({x:0,y:0,width:h,height:m}),t.renderer.pushIdentity(),await W(F,{...n,virtualMedia:F},N,x,h,m),t.renderer.popTransform(),t.renderer.popScissor();let{pipeline:$,uniformLayout:q,textureLayout:z,signalTextureLayout:J}=he(t.device,t.renderer.format),A=t.renderer.samplerCache.getSampler(t.device),K=n.elapsedMs!==void 0?n.elapsedMs/1e3:G/b,Q=n.virtualMedia?.metadata?.durationMs?n.virtualMedia.metadata.durationMs/1e3:n.durationMs!==void 0?n.durationMs/1e3:0,d=(a,g)=>a.hasStaticSig&&a.sd?V.getOrCreate2DTextureView(t.device,s,a.sd.nodeId??`${j}_${g}`,K,Q,a.sd,h,m,n.renderId,G,b):V.getDummy1x1TextureView(t.device),X=d(B,"shadows_cyanRed_sig"),Z=d(R,"shadows_magentaGreen_sig"),ee=d(T,"shadows_yellowBlue_sig"),ie=d(M,"midtones_cyanRed_sig"),ae=d(_,"midtones_magentaGreen_sig"),te=d(C,"midtones_yellowBlue_sig"),ne=d(L,"highlights_cyanRed_sig"),re=d(P,"highlights_magentaGreen_sig"),se=d(U,"highlights_yellowBlue_sig"),oe=i.preserveLuminosity===!1?0:1;e[0]=B.val/100,e[1]=R.val/100,e[2]=T.val/100,e[3]=0,e[4]=M.val/100,e[5]=_.val/100,e[6]=C.val/100,e[7]=0,e[8]=L.val/100,e[9]=P.val/100,e[10]=U.val/100,e[11]=0,e[12]=oe,e[13]=B.hasStaticSig?1:0,e[14]=R.hasStaticSig?1:0,e[15]=T.hasStaticSig?1:0,e[16]=M.hasStaticSig?1:0,e[17]=_.hasStaticSig?1:0,e[18]=C.hasStaticSig?1:0,e[19]=L.hasStaticSig?1:0,e[20]=P.hasStaticSig?1:0,e[21]=U.hasStaticSig?1:0,e[22]=0,e[23]=0;let le=t.renderer.getTemporaryBuffer(e),Y=t.renderer.getTemporaryTexture(h,m,[x,f,...n.excludeTextures||[]]),de=t.device.createBindGroup({layout:J,entries:[{binding:0,resource:X},{binding:1,resource:Z},{binding:2,resource:ee},{binding:3,resource:ie},{binding:4,resource:ae},{binding:5,resource:te},{binding:6,resource:ne},{binding:7,resource:re},{binding:8,resource:se},{binding:9,resource:A}]}),p=s.beginRenderPass({colorAttachments:[{view:Y.createView(),loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});p.setPipeline($),p.setBindGroup(0,t.device.createBindGroup({layout:q,entries:[{binding:0,resource:{buffer:le}}]})),p.setBindGroup(1,t.renderer.bindGroupCache.getBindGroup(t.device,z,x,A)),p.setBindGroup(2,de),p.draw(4),p.end();let E=t.renderer.beginFrame(s,v,{r:0,g:0,b:0,a:0},c,y,"load");t.renderer.drawTexture(E,Y,{x:0,y:0,width:c,height:y},{opacity:n.opacity??1}),r.pass=E};var ye={WebGPURenderer:k};export{k as a,ye as b};
@@ -0,0 +1 @@
1
+ import{a as t}from"./chunk-AW7HNZKR.mjs";import{a as $}from"./chunk-25IW7NYO.mjs";import{h as j}from"./chunk-ZNGOAGAI.mjs";import{d,e as c}from"./chunk-BVF64D6H.mjs";c();c();c();c();c();c();function _(r){return typeof d<"u"?d.env?.[r]:void 0}function J(){let r=_("FRAMEFIELDS_STRICT_PROPS");return r==="1"||r==="true"}function Ee(){return J()||_("NODE_ENV")!=="production"}var Z=new Set;function K(r){if(J())throw new Error(r);Z.has(r)||(Z.add(r),console.warn(`[framefields] ${r}`))}function U(r){if(typeof r!="object"||r===null||Array.isArray(r)||j(r))return!1;let e=Object.getPrototypeOf(r);return e===Object.prototype||e===null}function we(r,e){let n=Array.from({length:e.length+1},(l,i)=>i);for(let l=1;l<=r.length;l++){let i=n[0];n[0]=l;for(let s=1;s<=e.length;s++){let u=n[s];n[s]=Math.min(n[s]+1,n[s-1]+1,i+(r[l-1]===e[s-1]?0:1)),i=u}}return n[e.length]}function ve(r,e){let n,l=Number.POSITIVE_INFINITY,i=r.toLowerCase();for(let u of e){let p=u.toLowerCase(),m=p.includes(i)||i.includes(p)?1:we(i,p);m<l&&(l=m,n=u)}return n&&l<=Math.max(2,Math.ceil(r.length/2))?` Did you mean "${n}"?`:` Known props: ${e.join(", ")}.`}function Me(r,e,n){if(typeof e=="number"){let{min:l,max:i}=n,s=l!==void 0&&e<l,u=i!==void 0&&e>i;if(s||u||Number.isNaN(e)){let p=l!==void 0&&i!==void 0?`${l} to ${i}`:l!==void 0?`\u2265 ${l}`:`\u2264 ${i}`;K(Number.isNaN(e)?`${r} is NaN`:`${r} = ${e} is outside ${p}`)}return}n.enum&&(typeof e=="string"||typeof e=="boolean")&&!n.enum.includes(e)&&K(`${r} = ${JSON.stringify(e)} is not one of ${n.enum.map(l=>JSON.stringify(l)).join(", ")}`)}function Q(r,e,n){let l=Object.keys(n);for(let[i,s]of Object.entries(e)){if(s===void 0)continue;let u=n[i];if(!u){K(`${r}: unknown prop "${i}".${ve(i,l)}`);continue}j(s)||typeof s=="function"||(u.props&&U(s)?Q(`${r}.${i}`,s,u.props):Me(`${r}.${i}`,s,u))}}function Re(r){return typeof r=="object"&&r!==null?structuredClone(r):r}function o(r,e,n,l){let i=n;Ee()&&Q(r,i,l);let s={};for(let[u,p]of Object.entries(e))s[u]=Re(p);for(let[u,p]of Object.entries(i)){if(p===void 0)continue;let m=s[u];s[u]=U(m)&&U(p)?{...m,...Object.fromEntries(Object.entries(p).filter(([,Ce])=>Ce!==void 0))}:p}return s}c();var a={AudioCompressor:{threshold:{min:-60,max:0},ratio:{min:1,max:100},attack:{min:1e-4,max:1},release:{min:.01,max:5},knee:{min:0,max:24},makeupGain:{min:0,max:24}},AudioDelay:{delayTime:{min:.001,max:5},feedback:{min:0,max:.95},wet:{min:0,max:1},dry:{min:0,max:1},pingPong:{}},AudioFade:{fadeInDuration:{min:0,max:60},fadeOutDuration:{min:0,max:60},fadeInCurve:{enum:["linear","exponential","scurve"]},fadeOutCurve:{enum:["linear","exponential","scurve"]}},AudioNoiseGate:{threshold:{min:-120,max:0},attack:{min:1e-4,max:1},hold:{min:.001,max:5},release:{min:.01,max:5},range:{min:-120,max:0}},AudioParametricEq:{type:{enum:["lowShelf","highShelf","peak","lowPass","highPass","notch"]},frequency:{min:20,max:2e4},gain:{min:-24,max:24},q:{min:.01,max:10}},AudioReverb:{roomSize:{min:0,max:.98},damping:{min:0,max:1},wet:{min:0,max:1},dry:{min:0,max:1},width:{min:0,max:1}},Blur:{blurType:{enum:["Gaussian","Box","Median","Motion","Bilateral","Edge-preserving","Radial","Zoom"]},strength:{min:0,max:100},angle:{min:0,max:360},sigmaColor:{min:.01,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1},partialBlur:{},radius:{min:.01,max:1},radiusY:{min:0,max:1},shape:{enum:["ellipse","circle","rect"]}},CameraParallax3D:{motionPreset:{enum:["Custom","DollyZoom","Orbit","FlyThrough","HandheldShake","RackFocus"]},panX:{min:-1,max:1},panY:{min:-1,max:1},dollyZ:{min:-1,max:1},fov:{min:15,max:120},parallaxAmount:{min:0,max:2},dofAperture:{min:0,max:1},focusPlane:{min:0,max:1},edgeDilation:{min:0,max:1},depthInvert:{}},ChannelMerger:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]},defaultChannel4:{min:0,max:1}},ChannelSplitter:{colorSpace:{enum:["RGBA","HSLA","CMYK","LAB"]}},ColorBalance:{shadows:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},midtones:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},highlights:{props:{cyanRed:{min:-100,max:100},magentaGreen:{min:-100,max:100},yellowBlue:{min:-100,max:100}}},preserveLuminosity:{}},ColorKey:{keyColor:{},similarity:{min:0,max:1},smoothness:{min:0,max:1},spillSuppression:{min:0,max:1},colorSpace:{enum:["YUV","RGB"]},spillSuppressionType:{enum:["Desaturate","Neutralize","None"]}},CornerPin:{points:{}},DisplacementMap:{strengthX:{min:0,max:500},strengthY:{min:0,max:500},xChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},yChannel:{enum:["Red","Green","Blue","Alpha","Luminance"]},wrapMode:{enum:["Clamp","Repeat","Mirror"]}},ExtractLUT:{strategy:{enum:["deterministic","statistical"]},samplePoints:{min:10,max:500}},Flip:{horizontal:{},vertical:{},diagonal:{},mode:{enum:["horizontal","vertical","both","diagonal","antiDiagonal","custom"]},symmetry:{enum:["none","leftToRight","rightToLeft","topToBottom","bottomToTop","quadrant"]}},KenBurns:{keyframes:{},motionBlurSize:{min:0,max:10},movementStyle:{enum:["spline","direct"]},aspectRatio:{enum:["input","16:9","9:16","21:9","9:21","1:1","4:3","3:2","2:3","4:5","5:4"]}},LayerStyle:{dropShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},spread:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},innerShadow:{props:{enabled:{},color:{},opacity:{min:0,max:1},angle:{min:0,max:360},distance:{min:0,max:500},choke:{min:0,max:100},size:{min:0,max:250},blendMode:{}}},outerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},innerGlow:{props:{enabled:{},color:{},opacity:{min:0,max:1},size:{min:0,max:250},spread:{min:0,max:100},blendMode:{}}},stroke:{props:{enabled:{},size:{min:0,max:100},position:{enum:["inside","center","outside"]},color:{},opacity:{min:0,max:1},blendMode:{}}},bevelEmboss:{props:{enabled:{},style:{enum:["InnerBevel","OuterBevel","Emboss","PillowEmboss"]},technique:{enum:["Smooth","ChiselHard","ChiselSoft"]},depth:{min:1,max:1e3},direction:{enum:["Up","Down"]},size:{min:0,max:250},soften:{min:0,max:50},angle:{min:0,max:360},altitude:{min:0,max:90},highlightColor:{},highlightOpacity:{min:0,max:1},shadowColor:{},shadowOpacity:{min:0,max:1}}},colorOverlay:{props:{enabled:{},color:{},opacity:{min:0,max:1},blendMode:{}}},dropShadowAngleHandleId:{},dropShadowDistanceHandleId:{},dropShadowSpreadHandleId:{},dropShadowSizeHandleId:{},dropShadowOpacityHandleId:{},innerShadowAngleHandleId:{},innerShadowDistanceHandleId:{},innerShadowChokeHandleId:{},innerShadowSizeHandleId:{},innerShadowOpacityHandleId:{},outerGlowSizeHandleId:{},outerGlowSpreadHandleId:{},outerGlowOpacityHandleId:{},innerGlowSizeHandleId:{},innerGlowSpreadHandleId:{},innerGlowOpacityHandleId:{},strokeSizeHandleId:{},strokeOpacityHandleId:{},bevelEmbossDepthHandleId:{},bevelEmbossSizeHandleId:{},bevelEmbossSoftenHandleId:{},bevelEmbossAngleHandleId:{},bevelEmbossAltitudeHandleId:{},bevelEmbossHighlightOpacityHandleId:{},bevelEmbossShadowOpacityHandleId:{},colorOverlayOpacityHandleId:{}},Liquify:{operations:{}},MaskMath:{operation:{enum:["Union","Intersect","Subtract","Difference","Invert","Dilate","Erode","Choke","Feather"]},radius:{min:0,max:200},threshold:{min:0,max:1},clampMin:{min:0,max:1},clampMax:{min:0,max:1},channelA:{enum:["Alpha","Luminance","Red","Green","Blue"]},channelB:{enum:["Alpha","Luminance","Red","Green","Blue"]},binarize:{},invertResult:{},outputFormat:{enum:["WhiteWithAlpha","GrayscaleRGB","AlphaOnly","PassthroughRGB"]}},MeshWarp:{cols:{min:2,max:12},rows:{min:2,max:12},points:{}},NoiseGenerator:{noiseType:{enum:["Perlin","Simplex","Voronoi"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},scale:{min:.1,max:100},octaves:{min:1,max:8},persistence:{min:0,max:1},lacunarity:{min:1,max:4},speed:{min:0,max:10},colorStart:{},colorEnd:{},durationMs:{min:1,max:6e4},fps:{min:1,max:120}},Paint:{width:{min:1,max:16384},height:{min:1,max:16384},maintainAspect:{},aspectRatio:{},backgroundColor:{},strokes:{}},PatchHeal:{patches:{},centerX:{min:0,max:1},centerY:{min:0,max:1},offsetX:{min:-4096,max:4096},offsetY:{min:-4096,max:4096},radius:{min:1,max:500},sourceRadius:{min:1,max:500},feather:{min:0,max:100},opacity:{min:0,max:1},mode:{enum:["Clone","SeamlessHeal","TextureTransfer"]}},ProceduralVFX:{effectType:{enum:["Smoke","Fire","Rain","Sparks","Snow","Dust","Lightning","Magic","LensFlare","Embers","EnergyBeam"]},outputType:{enum:["Image","Video"]},width:{min:16,max:4096},height:{min:16,max:4096},density:{min:0,max:1},scale:{min:.001,max:10},speed:{min:0,max:10},intensity:{min:0,max:1},seed:{min:0,max:1e6},colorStart:{},colorEnd:{},durationMs:{min:100,max:1e5},fps:{min:1,max:120}},RefineEdge:{decontaminateAmount:{min:0,max:1},radius:{min:.5,max:50},smooth:{min:0,max:100},feather:{min:0,max:50},shiftEdge:{min:-100,max:100},matteChannel:{enum:["Alpha","Luminance","Red","Green","Blue"]},outputMode:{enum:["Composite","MatteOnly","DecontaminatedRGB"]}},RefractionCaustics3D:{ior:{min:1,max:2.5},dispersion:{min:0,max:.2},refractionScale:{min:0,max:2},causticBrightness:{min:0,max:2},causticScale:{min:.1,max:5},fluidRipples:{min:0,max:1},rippleSpeed:{min:0,max:5},roughness:{min:0,max:1},specularIntensity:{min:0,max:2},lightPosX:{min:0,max:1},lightPosY:{min:0,max:1},tintColor:{},tintStrength:{min:0,max:1},depthInvert:{},depthScale:{min:.1,max:5}},ResizerScaler:{aspectRatioPreset:{enum:["9:16","16:9","1:1","4:5","21:9","custom"]},resolutionPreset:{enum:["4k","1080p","720p","480p","custom"]},targetWidth:{min:1,max:8192},targetHeight:{min:1,max:8192},fitMode:{enum:["cover","contain","stretch","manual"]},zoom:{min:1,max:1e3},offsetX:{min:-8192,max:8192},offsetY:{min:-8192,max:8192},backgroundMode:{enum:["solid","blurred","gradient","transparent"]},backgroundColor:{},backgroundColor2:{},blurRadius:{min:0,max:100},backgroundBrightness:{min:0,max:1},anchorX:{enum:["left","center","right"]},anchorY:{enum:["top","center","bottom"]}},Rotate:{angle:{},fit:{enum:["cover","contain","fill"]},scale:{min:.01,max:20}},StereoPanning:{pan:{min:-1,max:1}},Vignette:{strength:{min:0,max:100},radius:{min:.1,max:2},softness:{min:0,max:1},roundness:{min:0,max:1},centerX:{min:0,max:1},centerY:{min:0,max:1}}};var Ae={threshold:-24,ratio:4,attack:.003,release:.25,knee:6,makeupGain:0},b=class extends t{op="AudioCompressor";constructor(e={}){super(o("AudioCompressor",Ae,e,a.AudioCompressor))}},ke={delayTime:.25,feedback:.4,wet:.3,dry:1,pingPong:!1},f=class extends t{op="AudioDelay";constructor(e={}){super(o("AudioDelay",ke,e,a.AudioDelay))}},De={fadeInDuration:0,fadeOutDuration:0,fadeInCurve:"linear",fadeOutCurve:"linear"},h=class extends t{op="AudioFade";constructor(e={}){super(o("AudioFade",De,e,a.AudioFade))}},Be={threshold:-40,attack:.005,hold:.05,release:.1,range:-80},P=class extends t{op="AudioNoiseGate";constructor(e={}){super(o("AudioNoiseGate",Be,e,a.AudioNoiseGate))}},Ie={type:"peak",frequency:1e3,gain:0,q:1},y=class extends t{op="AudioParametricEq";constructor(e={}){super(o("AudioParametricEq",Ie,e,a.AudioParametricEq))}},Te={roomSize:.5,damping:.5,wet:.3,dry:1,width:1},g=class extends t{op="AudioReverb";constructor(e={}){super(o("AudioReverb",Te,e,a.AudioReverb))}},He={blurType:"Gaussian",strength:5,angle:0,sigmaColor:.1,centerX:.5,centerY:.5,partialBlur:!1,radius:.3,radiusY:0,shape:"circle"},N=class extends t{op="Blur";constructor(e={}){super(o("Blur",He,e,a.Blur))}},Le={motionPreset:"DollyZoom",panX:0,panY:0,dollyZ:0,fov:50,parallaxAmount:.6,dofAperture:.3,focusPlane:.4,edgeDilation:.5,depthInvert:!1},x=class extends t{op="CameraParallax3D";constructor(e={}){super(o("CameraParallax3D",Le,e,a.CameraParallax3D))}},Ge={colorSpace:"RGBA",defaultChannel4:1},S=class extends t{op="ChannelMerger";constructor(e={}){super(o("ChannelMerger",Ge,e,a.ChannelMerger))}},Oe={colorSpace:"RGBA"},C=class extends t{op="ChannelSplitter";constructor(e={}){super(o("ChannelSplitter",Oe,e,a.ChannelSplitter))}},ze={shadows:{cyanRed:0,magentaGreen:0,yellowBlue:0},midtones:{cyanRed:0,magentaGreen:0,yellowBlue:0},highlights:{cyanRed:0,magentaGreen:0,yellowBlue:0},preserveLuminosity:!0},E=class extends t{op="ColorBalance";constructor(e={}){super(o("ColorBalance",ze,e,a.ColorBalance))}},Fe={keyColor:"#00ff00",similarity:.4,smoothness:.1,spillSuppression:.2,colorSpace:"YUV",spillSuppressionType:"Desaturate"},w=class extends t{op="ColorKey";constructor(e={}){super(o("ColorKey",Fe,e,a.ColorKey))}},Ve={},v=class extends t{op="CornerPin";constructor(e={}){super(o("CornerPin",Ve,e,a.CornerPin))}},Ye={strengthX:50,strengthY:50,xChannel:"Red",yChannel:"Green",wrapMode:"Clamp"},M=class extends t{op="DisplacementMap";constructor(e={}){super(o("DisplacementMap",Ye,e,a.DisplacementMap))}},Xe={strategy:"deterministic",samplePoints:150},R=class extends t{op="ExtractLUT";constructor(e={}){super(o("ExtractLUT",Xe,e,a.ExtractLUT))}},qe={horizontal:!0,vertical:!1,diagonal:!1,mode:"horizontal",symmetry:"none"},A=class extends t{op="Flip";constructor(e={}){super(o("Flip",qe,e,a.Flip))}},We={keyframes:[],motionBlurSize:1.5,movementStyle:"spline",aspectRatio:"input"},k=class extends t{op="KenBurns";constructor(e={}){super(o("KenBurns",We,e,a.KenBurns))}},Ne={dropShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:10,spread:0,size:10,blendMode:"multiply"},innerShadow:{enabled:!1,color:"#000000",opacity:.75,angle:120,distance:5,choke:0,size:5,blendMode:"multiply"},outerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},innerGlow:{enabled:!1,color:"#ffffff",opacity:.75,size:15,spread:0,blendMode:"screen"},stroke:{enabled:!1,size:2,position:"outside",color:"#ffffff",opacity:1,blendMode:"normal"},bevelEmboss:{enabled:!1,style:"InnerBevel",technique:"Smooth",depth:100,direction:"Up",size:5,soften:0,angle:120,altitude:30,highlightColor:"#ffffff",highlightOpacity:.75,shadowColor:"#000000",shadowOpacity:.75},colorOverlay:{enabled:!1,color:"#ff0000",opacity:1,blendMode:"normal"}},D=class extends t{op="LayerStyle";constructor(e={}){super(o("LayerStyle",Ne,e,a.LayerStyle))}},je={operations:[]},B=class extends t{op="Liquify";constructor(e={}){super(o("Liquify",je,e,a.Liquify))}},Ke={operation:"Union",radius:0,threshold:.5,clampMin:0,clampMax:1,channelA:"Alpha",channelB:"Alpha",binarize:!1,invertResult:!1,outputFormat:"WhiteWithAlpha"},I=class extends t{op="MaskMath";constructor(e={}){super(o("MaskMath",Ke,e,a.MaskMath))}},Ue={cols:3,rows:3},T=class extends t{op="MeshWarp";constructor(e={}){super(o("MeshWarp",Ue,e,a.MeshWarp))}},$e={noiseType:"Perlin",outputType:"Image",width:512,height:512,scale:10,octaves:4,persistence:.5,lacunarity:2,speed:1,colorStart:"#000000",colorEnd:"#ffffff",durationMs:5e3,fps:30},H=class extends t{op="NoiseGenerator";constructor(e={}){super(o("NoiseGenerator",$e,e,a.NoiseGenerator))}},Ze={width:1080,height:1080,maintainAspect:!0,backgroundColor:"#ffffff"},L=class extends t{op="Paint";constructor(e={}){super(o("Paint",Ze,e,a.Paint))}},_e={centerX:.5,centerY:.5,offsetX:50,offsetY:0,radius:25,sourceRadius:25,feather:50,opacity:1,mode:"SeamlessHeal"},G=class extends t{op="PatchHeal";constructor(e={}){super(o("PatchHeal",_e,e,a.PatchHeal))}},Je={effectType:"Smoke",outputType:"Video",width:1080,height:1080,density:.6,scale:.01,speed:1,intensity:.8,seed:1234,colorStart:"#ffffff",colorEnd:"#ff5500",durationMs:5e3,fps:30},O=class extends t{op="ProceduralVFX";constructor(e={}){super(o("ProceduralVFX",Je,e,a.ProceduralVFX))}},Qe={decontaminateAmount:.7,radius:2,smooth:5,feather:.5,shiftEdge:0,matteChannel:"Alpha",outputMode:"Composite"},z=class extends t{op="RefineEdge";constructor(e={}){super(o("RefineEdge",Qe,e,a.RefineEdge))}},er={ior:1.52,dispersion:.04,refractionScale:.5,causticBrightness:.6,causticScale:1,fluidRipples:0,rippleSpeed:1,roughness:0,specularIntensity:.8,lightPosX:.5,lightPosY:.2,tintColor:"#ffffff",tintStrength:0,depthInvert:!1,depthScale:1},F=class extends t{op="RefractionCaustics3D";constructor(e={}){super(o("RefractionCaustics3D",er,e,a.RefractionCaustics3D))}},rr={aspectRatioPreset:"16:9",resolutionPreset:"1080p",targetWidth:1920,targetHeight:1080,fitMode:"contain",zoom:100,offsetX:0,offsetY:0,backgroundMode:"solid",backgroundColor:"#000000FF",backgroundColor2:"#000000FF",blurRadius:40,backgroundBrightness:.6,anchorX:"center",anchorY:"center"},V=class extends t{op="ResizerScaler";constructor(e={}){super(o("ResizerScaler",rr,e,a.ResizerScaler))}},tr={angle:90,fit:"cover",scale:1},Y=class extends t{op="Rotate";constructor(e={}){super(o("Rotate",tr,e,a.Rotate))}},nr={pan:0},X=class extends t{op="StereoPanning";constructor(e={}){super(o("StereoPanning",nr,e,a.StereoPanning))}},ar={strength:50,radius:1,softness:.5,roundness:.5,centerX:.5,centerY:.5},q=class extends t{op="Vignette";constructor(e={}){super(o("Vignette",ar,e,a.Vignette))}};function or(r){return{partialBlur:!0,centerX:r.center.x,centerY:r.center.y,radius:r.bounds.width.multiply(.55),radiusY:r.bounds.height.multiply(.55),shape:"ellipse",strength:r.active.multiply(25)}}var W=class extends N{constructor(e={}){let{track:n,...l}=e;super(n?{...or(n),...lr(l)}:l)}};function lr(r){return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}c();var ir={audioCompressor:r=>new b(r),audioDelay:r=>new f(r),audioFade:r=>new h(r),audioNoiseGate:r=>new P(r),audioParametricEq:r=>new y(r),audioReverb:r=>new g(r),blur:r=>new W(r),cameraParallax3D:r=>new x(r),channelMerger:r=>new S(r),channelSplitter:r=>new C(r),colorBalance:r=>new E(r),colorKey:r=>new w(r),cornerPin:r=>new v(r),displacementMap:r=>new M(r),extractLUT:r=>new R(r),flip:r=>new A(r),kenBurns:r=>new k(r),layerStyle:r=>new D(r),liquify:r=>new B(r),maskMath:r=>new I(r),meshWarp:r=>new T(r),noiseGenerator:r=>new H(r),paint:r=>new L(r),patchHeal:r=>new G(r),proceduralVFX:r=>new O(r),refineEdge:r=>new z(r),refractionCaustics3D:r=>new F(r),resizerScaler:r=>new V(r),rotate:r=>new Y(r),stereoPanning:r=>new X(r),vignette:r=>new q(r)};var ee=class extends t{op="Levels";constructor(e={}){let n={inBlack:0,inWhite:1,outBlack:0,outWhite:1};super({master:e.master??{...n},red:e.red??{...n},green:e.green??{...n},blue:e.blue??{...n},...e})}},re=class extends t{op="FilmGrain";constructor(e={}){super({strength:e.strength??15,size:e.size??1.5,monochrome:e.monochrome??!0,animated:e.animated??!0,speed:e.speed??50,shadows:e.shadows??.2,midtones:e.midtones??1,highlights:e.highlights??.2,...e})}},te=class extends t{op;constructor(e,n={}){super(n),this.op=e}},ne=class extends t{op="AudioSignalExtractor";constructor(e={}){super({extractionMode:e.extractionMode??"rms_envelope",attackMs:e.attackMs??10,releaseMs:e.releaseMs??120,sensitivity:e.sensitivity??1,noiseFloorDb:e.noiseFloorDb??-48,dynamicRangeDb:e.dynamicRangeDb??48,autoRange:e.autoRange??!0,smoothing:e.smoothing??.15,curve:e.curve??"linear",beatThreshold:e.beatThreshold??.08,beatDecayMs:e.beatDecayMs??80,previewMode:e.previewMode??"envelope",nodeId:e.nodeId??"audio_extractor",...e})}async extract(e,n={}){return $.extract(e,{extractionMode:this.extractionMode,attackMs:this.attackMs,releaseMs:this.releaseMs,sensitivity:this.sensitivity,noiseFloorDb:this.noiseFloorDb,dynamicRangeDb:this.dynamicRangeDb,smoothing:this.smoothing,curve:this.curve,beatThreshold:this.beatThreshold,beatDecayMs:this.beatDecayMs,previewMode:this.previewMode,...n})}},ae=class extends t{op="Curves";constructor(e={}){super({...e,curveType:e.curveType??"rgb",master:e.master??[{x:0,y:0},{x:1,y:1}],red:e.red??[{x:0,y:0},{x:1,y:1}],green:e.green??[{x:0,y:0},{x:1,y:1}],blue:e.blue??[{x:0,y:0},{x:1,y:1}],hueVsHue:e.hueVsHue??[{x:0,y:.5},{x:1,y:.5}],hueVsSat:e.hueVsSat??[{x:0,y:1},{x:1,y:1}],lumVsSat:e.lumVsSat??[{x:0,y:1},{x:1,y:1}],satVsSat:e.satVsSat??[{x:0,y:1},{x:1,y:1}]})}},oe=class extends t{op="SelectiveColor";constructor(e={}){let n={cyan:0,magenta:0,yellow:0,black:0};super({...e,method:e.method??"Relative",reds:{...n,...e.reds},yellows:{...n,...e.yellows},greens:{...n,...e.greens},cyans:{...n,...e.cyans},blues:{...n,...e.blues},magentas:{...n,...e.magentas},whites:{...n,...e.whites},neutrals:{...n,...e.neutrals},blacks:{...n,...e.blacks}})}},le=class extends t{op="GradientMap";constructor(e={}){let n=[{position:0,color:"#000000"},{position:1,color:"#ffffff"}];super({...e,stops:e.stops??n,smooth:e.smooth??!0,dither:e.dither??!0,opacity:e.opacity??1})}},ie=class extends t{op="ShadowsHighlights";constructor(e={}){super({...e,shadowAmount:e.shadowAmount??0,shadowTonalWidth:e.shadowTonalWidth??50,shadowRadius:e.shadowRadius??30,highlightAmount:e.highlightAmount??0,highlightTonalWidth:e.highlightTonalWidth??50,highlightRadius:e.highlightRadius??30,colorCorrection:e.colorCorrection??0,midtoneContrast:e.midtoneContrast??0})}},se=class extends t{op="ApplyLUT";constructor(e={}){super({...e,lutUrl:e.lutUrl??"",intensity:e.intensity??1})}},ue=class extends t{op="UnsharpMask";constructor(e={}){super({...e,amount:e.amount??100,radius:e.radius??1.5,threshold:e.threshold??3})}},ce=class extends t{op="HighPass";constructor(e={}){super({...e,radius:e.radius??3,contrastBoost:e.contrastBoost??1,monochrome:e.monochrome??!0})}},pe=class extends t{op="HalftoneScreen";constructor(e={}){super({...e,mode:e.mode??"Monochrome",dotShape:e.dotShape??"Circle",frequency:e.frequency??30,angle:e.angle??45,contrast:e.contrast??1,dotColor:e.dotColor??"#000000",paperColor:e.paperColor??"#ffffff",smooth:e.smooth??!0,invert:e.invert??!1,cyanAngle:e.cyanAngle??15,magentaAngle:e.magentaAngle??75,yellowAngle:e.yellowAngle??0,blackAngle:e.blackAngle??45,opacity:e.opacity??1})}},de=class extends t{op="TileOffset";constructor(e={}){super({...e,offsetX:e.offsetX??0,offsetY:e.offsetY??0,wrap:e.wrap??!0,edgeMode:e.edgeMode??"wrap"})}},me=class extends t{op="MotionBlur";constructor(e={}){super({...e,shutterAngle:e.shutterAngle??180,samples:e.samples??16,maxVelocity:e.maxVelocity??64,shutterCurve:e.shutterCurve??"gaussian",depthAware:e.depthAware??!0})}},be=class extends t{op="SSAO";constructor(e={}){super({...e,radius:e.radius??45,bias:e.bias??.025,intensity:e.intensity??1.5,kernelSamples:e.kernelSamples??16,blurRadius:e.blurRadius??4})}},fe=class extends t{op="PBRGlass";constructor(e={}){super({...e,ior:e.ior??1.49,roughness:e.roughness??.15,transmission:e.transmission??.92,dispersion:e.dispersion??.015,fresnelPower:e.fresnelPower??5,tintColor:e.tintColor??"#ffffff"})}},he=class extends t{op="DepthOfField";constructor(e={}){super({...e,focusDistance:e.focusDistance??500,focalLength:e.focalLength??50,aperture:e.aperture??2.8,maxBlur:e.maxBlur??16,quality:e.quality??"high"})}},Pe=class extends t{op="Crop";constructor(e={}){super({cropType:e.cropType??"rect",leftPercentage:e.leftPercentage??0,topPercentage:e.topPercentage??0,widthPercentage:e.widthPercentage??100,heightPercentage:e.heightPercentage??100,roundness:e.roundness??0,...e})}},ye=class extends t{op="Vision";constructor(e={}){super({enableDetection:e.enableDetection!==!1,enableSegmentation:e.enableSegmentation===!0,enablePose:e.enablePose===!0,enableMatte:e.enableMatte===!0,confidence:e.confidence??.3,variant:e.variant??"s",mode:e.mode??"passthrough",matteSource:e.matteSource??"instance",...e})}},ge=class extends t{op="Relight3D";constructor(e={}){super({lightType:e.lightType??"Point",intensity:e.intensity??1,lightPosX:e.lightPosX??.5,lightPosY:e.lightPosY??.5,lightPosZ:e.lightPosZ??.3,lightRadius:e.lightRadius??.8,spotConeAngle:e.spotConeAngle??45,specularRoughness:e.specularRoughness??.35,specularStrength:e.specularStrength??.7,metallic:e.metallic??0,ambientIntensity:e.ambientIntensity??.4,volumetricDensity:e.volumetricDensity??.2,depthScale:e.depthScale??1,depthInvert:e.depthInvert??!1,lightColor:e.lightColor??"#ffffff",ambientColor:e.ambientColor??"#ffffff",normalMap:e.normalMap,...e})}},xe=class extends t{op="TemporalDeflicker";constructor(e={}){super({blendWeight:e.blendWeight??.35,disocclusionThreshold:e.disocclusionThreshold??.15,maxMotionPixels:e.maxMotionPixels??64,scale:e.scale??.5,windowSize:e.windowSize??2,...e})}},Se=class extends t{op="Modulate";constructor(e={}){super({hue:e.hue??0,brightness:e.brightness??1,contrast:e.contrast??1,exposure:e.exposure??0,saturation:e.saturation??1,sepia:e.sepia??0,...e})}};export{a,b,f as c,h as d,P as e,y as f,g,x as h,S as i,C as j,E as k,w as l,v as m,M as n,R as o,A as p,k as q,D as r,B as s,I as t,T as u,H as v,L as w,G as x,O as y,z,F as A,V as B,Y as C,X as D,q as E,W as F,ir as G,ee as H,re as I,te as J,ne as K,ae as L,oe as M,le as N,ie as O,se as P,ue as Q,ce as R,pe as S,de as T,me as U,be as V,fe as W,he as X,Pe as Y,ye as Z,ge as _,xe as $,Se as aa};
@@ -0,0 +1 @@
1
+ import{b as D}from"./chunk-N4LHIPHZ.mjs";import{t as P}from"./chunk-ZNGOAGAI.mjs";import{e as g}from"./chunk-BVF64D6H.mjs";g();g();function C(e,n,r,i){if(e==null)return n;if(typeof e=="number")return Number.isFinite(e)?e:n;if(typeof e=="object"&&e!==null){if("get"in e&&typeof e.get=="function")try{let c=e.get({frame:r,fps:i,time:i>0?r/i:0,duration:0,durationMs:0,progress:0,deltaTime:i>0?1/i:0}),a=Number(c);if(Number.isFinite(a))return a}catch{}if("value"in e){let c=Number(e.value);if(Number.isFinite(c))return c}}if(typeof e=="function")try{let c=Number(e({frame:r,fps:i,time:i>0?r/i:0}));if(Number.isFinite(c))return c}catch{}let u=Number(e);return Number.isFinite(u)?u:n}function b(e,n,r,i,u,c,a){let h=`${n}HandleId`,o=e[h],l=o?e.inputs?.[o]:null,t;if(l?.connectionValid&&l.outputItem){let s=l.outputItem.data;t=s&&typeof s=="object"&&"offset"in s?s.offset:l.outputItem.data}else t=e[n];let p=C(t,r,c,a);return Math.max(i,Math.min(u,p))}var M=new Map;function O(e,n){let r=M.get(n);return r||(r=new D(e),M.set(n,r)),r}var I=async e=>{let{ctx:n,encoder:r,pass:i,targetView:u,targetTexture:c,targetWidth:a,targetHeight:h,props:o,drawChild:l}=e,t=o.virtualMedia?.operation;if(!t||t.op!=="TemporalDeflicker"&&t.op!=="Deflicker")return;let p=o.virtualMedia?.children?.[0];if(!p)return;i.end();let s=a,d=h,k=o.frame??0,m=o.compositionFrame??k,f=o.fps||30,w=n.renderer.getTemporaryTexture(s,d,[...o.excludeTextures||[],c]),x=w.createView();n.renderer.beginFrame(r,x,{r:0,g:0,b:0,a:0},s,d,"clear").end(),n.renderer.pushScissor({x:0,y:0,width:s,height:d}),n.renderer.pushIdentity(),await l(p,{...o,virtualMedia:p,containerWidth:s,containerHeight:d},x,w,s,d),n.renderer.popTransform(),n.renderer.popScissor(),e.pass.end();let W=b(t,"blendWeight",.35,0,1,m,f),N=b(t,"disocclusionThreshold",.15,.01,1,m,f),R=b(t,"maxMotionPixels",64,1,256,m,f),F=b(t,"scale",.5,.1,1,m,f),G=Math.round(b(t,"windowSize",2,1,5,m,f)),H=o.virtualMedia?.metadata?.id||t.id||`deflicker_${o.renderId??"global"}`,T=O(n.device,H);k===0&&T.reset();let S=T.execute(w,{blendWeight:W,disocclusionThreshold:N,maxMotionPixels:R,scale:F,windowSize:G},r),y=n.renderer.beginFrame(r,u,{r:0,g:0,b:0,a:0},s,d,"load"),U=typeof t.opacity=="number"?t.opacity:1;n.renderer.drawTexture(y,S,{x:0,y:0,width:s,height:d},{opacity:U}),e.pass=y};var A=P({WebGPURenderer:I});export{A as a};