shaders 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/core/{AngularBlur-BJi-Edw-.js → AngularBlur-BZENxuhv.js} +4 -4
  2. package/dist/core/{Ascii-B1KHvM1u.js → Ascii-joVW9dAD.js} +11 -11
  3. package/dist/core/{Blob-CBASKMfO.js → Blob-Ds3jasiC.js} +15 -14
  4. package/dist/core/{Blur-bz9Ubr0x.js → Blur-sKjcr9_K.js} +1 -1
  5. package/dist/core/Bulge-CdcB9we6.js +103 -0
  6. package/dist/core/{CRTScreen-BnfROw0f.js → CRTScreen-BWDSeX_0.js} +6 -6
  7. package/dist/core/{ChannelBlur-DhWT-55L.js → ChannelBlur-i9M5gbkh.js} +6 -6
  8. package/dist/core/{Checkerboard-CgWGd9t7.js → Checkerboard-D9-UAs26.js} +17 -16
  9. package/dist/core/{ChromaFlow-DOVrymVB.js → ChromaFlow-DZAJwEBw.js} +6 -6
  10. package/dist/core/{ChromaticAberration-CyTSXY7j.js → ChromaticAberration-DLYIcjJx.js} +2 -2
  11. package/dist/core/{Circle-0WHV1HrM.js → Circle-Ca-LtXkF.js} +13 -12
  12. package/dist/core/{CursorTrail-3zQ5rtjh.js → CursorTrail-B_VZJBOK.js} +11 -11
  13. package/dist/core/{DiffuseBlur-DLIKRsnf.js → DiffuseBlur-COpm1qrw.js} +5 -5
  14. package/dist/core/{Dither-Cnbknfji.js → Dither-MK-9r3tw.js} +2 -2
  15. package/dist/core/{DotGrid-BkItF2C8.js → DotGrid-DP__DqQj.js} +12 -11
  16. package/dist/core/{Duotone-BI4tJI3k.js → Duotone-CmkF6eDj.js} +3 -3
  17. package/dist/core/FilmGrain-ByNyK2gs.js +28 -0
  18. package/dist/core/FloatingParticles-CxcXDtZg.js +160 -0
  19. package/dist/core/GlassTiles-CxUl9MxF.js +52 -0
  20. package/dist/core/{Glow-BD0t9E1L.js → Glow-Cz3ImaBH.js} +5 -5
  21. package/dist/core/{Godrays-CPIAbymT.js → Godrays-BHfh6URI.js} +18 -17
  22. package/dist/core/{Grayscale-BtOqK43k.js → Grayscale-FPSUcFGC.js} +1 -1
  23. package/dist/core/{Grid-Ro0Yi5WY.js → Grid-BvM0M3Hl.js} +12 -11
  24. package/dist/core/GridDistortion-yjmNv0Q3.js +147 -0
  25. package/dist/core/{Group-DTXP-whY.js → Group-jZZimqG1.js} +1 -1
  26. package/dist/core/{Halftone-B_MuXCD8.js → Halftone-DWIVrS2s.js} +4 -4
  27. package/dist/core/{HueShift-CKG9M-d2.js → HueShift-CBupF7d4.js} +1 -1
  28. package/dist/core/{ImageTexture-B6zFP2fB.js → ImageTexture-GrTz4Fx7.js} +20 -19
  29. package/dist/core/{Invert-Cd7GK1vs.js → Invert-CCQ1H_Qr.js} +1 -1
  30. package/dist/core/{LinearBlur-JFLMQBY4.js → LinearBlur-DHBRP6Yh.js} +4 -4
  31. package/dist/core/{LinearGradient-Ztg5Lzwj.js → LinearGradient-B4C3CKhf.js} +16 -15
  32. package/dist/core/Liquify-DNHtcXxv.js +139 -0
  33. package/dist/core/Pixelate-BKooNVcb.js +38 -0
  34. package/dist/core/{PolarCoordinates-qzU8gNXR.js → PolarCoordinates-DKhEbQhq.js} +20 -16
  35. package/dist/core/{Posterize-BkBU8tnN.js → Posterize-D81ZG2A9.js} +1 -1
  36. package/dist/core/{ProgressiveBlur-HAQf188T.js → ProgressiveBlur-CPdReTnY.js} +7 -7
  37. package/dist/core/{RadialGradient-DISqJuTZ.js → RadialGradient-XmwfZ91d.js} +15 -14
  38. package/dist/core/RectangularCoordinates-DWY7ptY1.js +92 -0
  39. package/dist/core/{Ripples-CX8Qgnog.js → Ripples-CndvRX-N.js} +13 -12
  40. package/dist/core/{Saturation-DMxPYmIU.js → Saturation-C6u9sNkr.js} +1 -1
  41. package/dist/core/{SimplexNoise-B5ygfckG.js → SimplexNoise-BH0ZZzP4.js} +12 -11
  42. package/dist/core/{SineWave-KPFlP3Wk.js → SineWave-DBH8MraQ.js} +13 -12
  43. package/dist/core/{SolidColor-B8oxlGge.js → SolidColor-DR665qss.js} +6 -5
  44. package/dist/core/{Spiral-CX22hUJ3.js → Spiral--7KUy0u3.js} +15 -14
  45. package/dist/core/{Strands-Bv7RvyRC.js → Strands-Bi1Is8_o.js} +19 -18
  46. package/dist/core/{Swirl-CIXreSgZ.js → Swirl-DuYM23jG.js} +14 -13
  47. package/dist/core/{TiltShift-J0UUcoh-.js → TiltShift-BUvZWBsh.js} +11 -11
  48. package/dist/core/{Tritone-E9eHvjJV.js → Tritone-CKifp6Ob.js} +3 -3
  49. package/dist/core/{Twirl-ClhPpapm.js → Twirl-Ztlb9x_h.js} +21 -17
  50. package/dist/core/{Vibrance-CqnE9Zco.js → Vibrance-B7EsDw6e.js} +1 -1
  51. package/dist/core/{WaveDistortion-gecgVpvO.js → WaveDistortion-HCnk54tD.js} +20 -17
  52. package/dist/core/{ZoomBlur-CaGbSDG3.js → ZoomBlur-Ck6M9A2W.js} +2 -2
  53. package/dist/core/{colorMixing-C_ESXyqX.js → colorMixing-DPZ-Td4U.js} +3 -3
  54. package/dist/core/edges-B-tVdqcI.js +16 -0
  55. package/dist/core/index.js +1315 -945
  56. package/dist/core/performanceTracker.d.ts +2 -0
  57. package/dist/core/performanceTracker.d.ts.map +1 -1
  58. package/dist/core/renderer.d.ts +12 -0
  59. package/dist/core/renderer.d.ts.map +1 -1
  60. package/dist/core/shaderRegistry.d.ts.map +1 -1
  61. package/dist/core/shaders/AngularBlur/index.js +3 -3
  62. package/dist/core/shaders/Ascii/index.js +2 -2
  63. package/dist/core/shaders/Blob/index.d.ts.map +1 -1
  64. package/dist/core/shaders/Blob/index.js +5 -5
  65. package/dist/core/shaders/Blur/index.js +2 -2
  66. package/dist/core/shaders/Bulge/index.d.ts.map +1 -1
  67. package/dist/core/shaders/Bulge/index.js +4 -4
  68. package/dist/core/shaders/CRTScreen/index.js +2 -2
  69. package/dist/core/shaders/ChannelBlur/index.js +2 -2
  70. package/dist/core/shaders/Checkerboard/index.d.ts.map +1 -1
  71. package/dist/core/shaders/Checkerboard/index.js +4 -4
  72. package/dist/core/shaders/ChromaFlow/index.js +3 -3
  73. package/dist/core/shaders/ChromaticAberration/index.js +3 -3
  74. package/dist/core/shaders/Circle/index.d.ts.map +1 -1
  75. package/dist/core/shaders/Circle/index.js +3 -3
  76. package/dist/core/shaders/CursorTrail/index.js +4 -4
  77. package/dist/core/shaders/DiffuseBlur/index.js +2 -2
  78. package/dist/core/shaders/Dither/index.js +3 -3
  79. package/dist/core/shaders/DotGrid/index.d.ts.map +1 -1
  80. package/dist/core/shaders/DotGrid/index.js +3 -3
  81. package/dist/core/shaders/Duotone/index.js +4 -4
  82. package/dist/core/shaders/FilmGrain/index.d.ts.map +1 -1
  83. package/dist/core/shaders/FilmGrain/index.js +2 -2
  84. package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
  85. package/dist/core/shaders/FloatingParticles/index.js +3 -3
  86. package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
  87. package/dist/core/shaders/GlassTiles/index.js +2 -2
  88. package/dist/core/shaders/Glow/index.js +2 -2
  89. package/dist/core/shaders/Godrays/index.d.ts.map +1 -1
  90. package/dist/core/shaders/Godrays/index.js +3 -3
  91. package/dist/core/shaders/Grayscale/index.js +2 -2
  92. package/dist/core/shaders/Grid/index.d.ts.map +1 -1
  93. package/dist/core/shaders/Grid/index.js +3 -3
  94. package/dist/core/shaders/GridDistortion/index.d.ts.map +1 -1
  95. package/dist/core/shaders/GridDistortion/index.js +4 -4
  96. package/dist/core/shaders/Group/index.js +2 -2
  97. package/dist/core/shaders/Halftone/index.js +3 -3
  98. package/dist/core/shaders/HueShift/index.js +2 -2
  99. package/dist/core/shaders/ImageTexture/index.d.ts.map +1 -1
  100. package/dist/core/shaders/ImageTexture/index.js +2 -2
  101. package/dist/core/shaders/Invert/index.js +2 -2
  102. package/dist/core/shaders/LinearBlur/index.js +3 -3
  103. package/dist/core/shaders/LinearGradient/index.d.ts.map +1 -1
  104. package/dist/core/shaders/LinearGradient/index.js +4 -4
  105. package/dist/core/shaders/Liquify/index.d.ts.map +1 -1
  106. package/dist/core/shaders/Liquify/index.js +4 -4
  107. package/dist/core/shaders/Pixelate/index.d.ts.map +1 -1
  108. package/dist/core/shaders/Pixelate/index.js +2 -2
  109. package/dist/core/shaders/PolarCoordinates/index.d.ts.map +1 -1
  110. package/dist/core/shaders/PolarCoordinates/index.js +4 -4
  111. package/dist/core/shaders/Posterize/index.js +2 -2
  112. package/dist/core/shaders/ProgressiveBlur/index.js +3 -3
  113. package/dist/core/shaders/RadialGradient/index.d.ts.map +1 -1
  114. package/dist/core/shaders/RadialGradient/index.js +4 -4
  115. package/dist/core/shaders/RectangularCoordinates/index.d.ts +38 -0
  116. package/dist/core/shaders/RectangularCoordinates/index.d.ts.map +1 -0
  117. package/dist/core/shaders/RectangularCoordinates/index.js +8 -0
  118. package/dist/core/shaders/Ripples/index.d.ts.map +1 -1
  119. package/dist/core/shaders/Ripples/index.js +4 -4
  120. package/dist/core/shaders/Saturation/index.js +2 -2
  121. package/dist/core/shaders/SimplexNoise/index.d.ts.map +1 -1
  122. package/dist/core/shaders/SimplexNoise/index.js +4 -4
  123. package/dist/core/shaders/SineWave/index.d.ts.map +1 -1
  124. package/dist/core/shaders/SineWave/index.js +3 -3
  125. package/dist/core/shaders/SolidColor/index.d.ts.map +1 -1
  126. package/dist/core/shaders/SolidColor/index.js +3 -3
  127. package/dist/core/shaders/Spiral/index.d.ts.map +1 -1
  128. package/dist/core/shaders/Spiral/index.js +4 -4
  129. package/dist/core/shaders/Strands/index.d.ts.map +1 -1
  130. package/dist/core/shaders/Strands/index.js +4 -4
  131. package/dist/core/shaders/Swirl/index.d.ts.map +1 -1
  132. package/dist/core/shaders/Swirl/index.js +5 -5
  133. package/dist/core/shaders/TiltShift/index.js +3 -3
  134. package/dist/core/shaders/Tritone/index.js +4 -4
  135. package/dist/core/shaders/Twirl/index.d.ts.map +1 -1
  136. package/dist/core/shaders/Twirl/index.js +4 -4
  137. package/dist/core/shaders/Vibrance/index.js +2 -2
  138. package/dist/core/shaders/WaveDistortion/index.d.ts.map +1 -1
  139. package/dist/core/shaders/WaveDistortion/index.js +6 -7
  140. package/dist/core/shaders/ZoomBlur/index.js +3 -3
  141. package/dist/core/telemetry/collector.d.ts.map +1 -1
  142. package/dist/core/telemetry/index.js +19 -19
  143. package/dist/core/{three.tsl-CgyjOhns.js → three.tsl-BqgDcRt9.js} +21 -20
  144. package/dist/core/{time-myrFQH-u.js → time-5uQ65blS.js} +1 -1
  145. package/dist/core/{transformations-Bs66Qh16.js → transformations-DBjTkQ5b.js} +1 -1
  146. package/dist/core/types.d.ts +81 -0
  147. package/dist/core/types.d.ts.map +1 -1
  148. package/dist/core/utilities/edges.d.ts +13 -2
  149. package/dist/core/utilities/edges.d.ts.map +1 -1
  150. package/dist/core/utilities/uvTransform.d.ts +20 -0
  151. package/dist/core/utilities/uvTransform.d.ts.map +1 -1
  152. package/dist/react/components/RectangularCoordinates.d.ts +31 -0
  153. package/dist/react/components/RectangularCoordinates.d.ts.map +1 -0
  154. package/dist/react/index.cjs +233 -233
  155. package/dist/react/index.d.ts +1 -0
  156. package/dist/react/index.d.ts.map +1 -1
  157. package/dist/react/index.js +16300 -15647
  158. package/dist/react/utils/generatePresetCode.cjs +2 -2
  159. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  160. package/dist/react/utils/generatePresetCode.js +12 -0
  161. package/dist/registry.js +151 -0
  162. package/dist/svelte/components/RectangularCoordinates.svelte.d.ts +19 -0
  163. package/dist/svelte/index.d.ts +1 -0
  164. package/dist/svelte/index.js +15134 -14523
  165. package/dist/svelte/utils/generatePresetCode.js +12 -0
  166. package/dist/vue/components/RectangularCoordinates.vue.d.ts +57 -0
  167. package/dist/vue/components/RectangularCoordinates.vue.d.ts.map +1 -0
  168. package/dist/vue/{generatePresetCode-B6Ks_W3s.js → generatePresetCode-T78GxN5X.js} +12 -0
  169. package/dist/vue/index.d.ts +1 -0
  170. package/dist/vue/index.d.ts.map +1 -1
  171. package/dist/vue/index.js +15219 -14598
  172. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  173. package/dist/vue/utils/generatePresetCode.js +1 -1
  174. package/package.json +6 -1
  175. package/dist/core/Bulge-Ceythf-i.js +0 -99
  176. package/dist/core/FilmGrain-BAZORehh.js +0 -27
  177. package/dist/core/FloatingParticles-7wvOBUbD.js +0 -158
  178. package/dist/core/GlassTiles-C0y_PWTa.js +0 -48
  179. package/dist/core/GridDistortion-CuxRQdzs.js +0 -137
  180. package/dist/core/Liquify-rmJGJAdt.js +0 -126
  181. package/dist/core/Pixelate-BIANS3t9.js +0 -34
  182. package/dist/core/edges-Cj8yVYgz.js +0 -10
@@ -1,242 +1,243 @@
1
- import { B as wn, D as p, E as ce, F as Oe, G as Cn, H as Mn, I as Sn, K as An, L as xn, M as v, O as Z, P as He, R as Dn, S as zn, T as Ze, V as $n, _ as ue, c as Un, d as L, g as Be, h as Fe, i as En, j as _, k as E, l as en, m as R, n as b, o as On, q as _n, s as Bn, t as Fn, v as o, w as Gn, x as N, z as Ln } from "./three.tsl-CgyjOhns.js";
2
- import { t as Nn } from "./edges-Cj8yVYgz.js";
3
- import { t as qr } from "./time-myrFQH-u.js";
4
- import "./transformations-Bs66Qh16.js";
5
- import { n as qn } from "./AngularBlur-BJi-Edw-.js";
6
- import { n as Pn } from "./Ascii-B1KHvM1u.js";
7
- import "./colorMixing-C_ESXyqX.js";
8
- import { n as Vn } from "./Blob-CBASKMfO.js";
9
- import { n as Hn } from "./Blur-bz9Ubr0x.js";
10
- import { n as In } from "./Bulge-Ceythf-i.js";
11
- import { n as Wn } from "./ChannelBlur-DhWT-55L.js";
12
- import { n as Xn } from "./Checkerboard-CgWGd9t7.js";
13
- import { n as Yn } from "./ChromaFlow-DOVrymVB.js";
14
- import { n as jn } from "./ChromaticAberration-CyTSXY7j.js";
15
- import { n as Qn } from "./Circle-0WHV1HrM.js";
16
- import { n as Jn } from "./CRTScreen-BnfROw0f.js";
17
- import { n as Kn } from "./CursorTrail-3zQ5rtjh.js";
18
- import { n as Zn } from "./DiffuseBlur-DLIKRsnf.js";
19
- import { n as et } from "./Dither-Cnbknfji.js";
20
- import { n as nt } from "./DotGrid-BkItF2C8.js";
21
- import { n as tt } from "./Duotone-BI4tJI3k.js";
22
- import { n as rt } from "./FilmGrain-BAZORehh.js";
23
- import { n as ot } from "./FloatingParticles-7wvOBUbD.js";
24
- import { n as it } from "./GlassTiles-C0y_PWTa.js";
25
- import { n as at } from "./Glow-BD0t9E1L.js";
26
- import { n as st } from "./Godrays-CPIAbymT.js";
1
+ import { A as G, B as Xn, D as C, E as Se, F as dn, H as Yn, I as Je, J as Hn, K as Wn, L as jn, M as I, N as U, P as Pe, R as Qn, S as ke, T as kn, U as Jn, V as Kn, _ as Ue, c as Zn, d as J, g as Ke, h as Ze, i as er, k as he, l as wn, m as A, n as k, o as nr, q as rr, s as tr, t as or, v as s, w as ar, x as K, z as ir } from "./three.tsl-BqgDcRt9.js";
2
+ import { n as ve, t as we } from "./edges-B-tVdqcI.js";
3
+ import { t as oo } from "./time-5uQ65blS.js";
4
+ import "./transformations-DBjTkQ5b.js";
5
+ import { n as sr } from "./AngularBlur-BZENxuhv.js";
6
+ import { n as lr } from "./Ascii-joVW9dAD.js";
7
+ import "./colorMixing-DPZ-Td4U.js";
8
+ import { n as cr } from "./Blob-Ds3jasiC.js";
9
+ import { n as fr } from "./Blur-sKjcr9_K.js";
10
+ import { n as ur } from "./Bulge-CdcB9we6.js";
11
+ import { n as mr } from "./ChannelBlur-i9M5gbkh.js";
12
+ import { n as dr } from "./Checkerboard-D9-UAs26.js";
13
+ import { n as hr } from "./ChromaFlow-DZAJwEBw.js";
14
+ import { n as pr } from "./ChromaticAberration-DLYIcjJx.js";
15
+ import { n as gr } from "./Circle-Ca-LtXkF.js";
16
+ import { n as br } from "./CRTScreen-BWDSeX_0.js";
17
+ import { n as vr } from "./CursorTrail-B_VZJBOK.js";
18
+ import { n as Cr } from "./DiffuseBlur-COpm1qrw.js";
19
+ import { n as Rr } from "./Dither-MK-9r3tw.js";
20
+ import { n as Tr } from "./DotGrid-DP__DqQj.js";
21
+ import { n as kr } from "./Duotone-CmkF6eDj.js";
22
+ import { n as wr } from "./FilmGrain-ByNyK2gs.js";
23
+ import { n as yr } from "./FloatingParticles-CxcXDtZg.js";
24
+ import { n as Sr } from "./GlassTiles-CxUl9MxF.js";
25
+ import { n as Ur } from "./Glow-Cz3ImaBH.js";
26
+ import { n as xr } from "./Godrays-BHfh6URI.js";
27
27
  import "./TSLBase-BFMvTOak.js";
28
28
  import "./ColorAdjustment-CKwpE_4M.js";
29
- import { n as lt } from "./Grayscale-BtOqK43k.js";
30
- import { n as ct } from "./Grid-Ro0Yi5WY.js";
31
- import { n as ut } from "./GridDistortion-CuxRQdzs.js";
32
- import { n as mt } from "./Group-DTXP-whY.js";
33
- import { n as ft } from "./Halftone-B_MuXCD8.js";
34
- import { n as dt } from "./HueShift-CKG9M-d2.js";
35
- import { n as ht } from "./ImageTexture-B6zFP2fB.js";
36
- import { n as pt } from "./Invert-Cd7GK1vs.js";
37
- import { n as gt } from "./LinearBlur-JFLMQBY4.js";
38
- import { n as bt } from "./LinearGradient-Ztg5Lzwj.js";
39
- import { n as yt } from "./Liquify-rmJGJAdt.js";
40
- import { n as vt } from "./Pixelate-BIANS3t9.js";
41
- import { n as Tt } from "./PolarCoordinates-qzU8gNXR.js";
42
- import { n as Rt } from "./Posterize-BkBU8tnN.js";
43
- import { n as kt } from "./ProgressiveBlur-HAQf188T.js";
44
- import { n as wt } from "./RadialGradient-DISqJuTZ.js";
45
- import { n as Ct } from "./Ripples-CX8Qgnog.js";
46
- import { n as Mt } from "./Saturation-DMxPYmIU.js";
47
- import { n as St } from "./SimplexNoise-B5ygfckG.js";
48
- import { n as At } from "./SineWave-KPFlP3Wk.js";
49
- import { n as xt } from "./SolidColor-B8oxlGge.js";
50
- import { n as Dt } from "./Spiral-CX22hUJ3.js";
51
- import { n as zt } from "./Strands-Bv7RvyRC.js";
52
- import { n as $t } from "./Swirl-CIXreSgZ.js";
53
- import { n as Ut } from "./TiltShift-J0UUcoh-.js";
54
- import { n as Et } from "./Tritone-E9eHvjJV.js";
55
- import { n as Ot } from "./Twirl-ClhPpapm.js";
56
- import { n as _t } from "./Vibrance-CqnE9Zco.js";
57
- import { n as Bt } from "./WaveDistortion-gecgVpvO.js";
58
- import { n as Ft } from "./ZoomBlur-CaGbSDG3.js";
59
- import { WebGLRenderer as Gt } from "three";
60
- Sn();
61
- R();
62
- function Lt(e, n, r = 1) {
63
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
64
- return v(b(o(n.rgb, t), o(e.rgb, o(e.a, p(1, t)))), s);
29
+ import { n as Mr } from "./Grayscale-FPSUcFGC.js";
30
+ import { n as Ar } from "./Grid-BvM0M3Hl.js";
31
+ import { n as $r } from "./GridDistortion-yjmNv0Q3.js";
32
+ import { n as zr } from "./Group-jZZimqG1.js";
33
+ import { n as Dr } from "./Halftone-DWIVrS2s.js";
34
+ import { n as Fr } from "./HueShift-CBupF7d4.js";
35
+ import { n as Er } from "./ImageTexture-GrTz4Fx7.js";
36
+ import { n as Or } from "./Invert-CCQ1H_Qr.js";
37
+ import { n as Br } from "./LinearBlur-DHBRP6Yh.js";
38
+ import { n as Pr } from "./LinearGradient-B4C3CKhf.js";
39
+ import { n as _r } from "./Liquify-DNHtcXxv.js";
40
+ import { n as Vr } from "./Pixelate-BKooNVcb.js";
41
+ import { n as Lr } from "./PolarCoordinates-DKhEbQhq.js";
42
+ import { n as qr } from "./Posterize-D81ZG2A9.js";
43
+ import { n as Gr } from "./ProgressiveBlur-CPdReTnY.js";
44
+ import { n as Nr } from "./RadialGradient-XmwfZ91d.js";
45
+ import { n as Ir } from "./RectangularCoordinates-DWY7ptY1.js";
46
+ import { n as Xr } from "./Ripples-CndvRX-N.js";
47
+ import { n as Yr } from "./Saturation-C6u9sNkr.js";
48
+ import { n as Hr } from "./SimplexNoise-BH0ZZzP4.js";
49
+ import { n as Wr } from "./SineWave-DBH8MraQ.js";
50
+ import { n as jr } from "./SolidColor-DR665qss.js";
51
+ import { n as Qr } from "./Spiral--7KUy0u3.js";
52
+ import { n as Jr } from "./Strands-Bi1Is8_o.js";
53
+ import { n as Kr } from "./Swirl-DuYM23jG.js";
54
+ import { n as Zr } from "./TiltShift-BUvZWBsh.js";
55
+ import { n as et } from "./Tritone-CKifp6Ob.js";
56
+ import { n as nt } from "./Twirl-Ztlb9x_h.js";
57
+ import { n as rt } from "./Vibrance-B7EsDw6e.js";
58
+ import { n as tt } from "./WaveDistortion-HCnk54tD.js";
59
+ import { n as ot } from "./ZoomBlur-Ck6M9A2W.js";
60
+ import { WebGLRenderer as at } from "three";
61
+ jn();
62
+ A();
63
+ function it(e, n, i = 1) {
64
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
65
+ return U(k(s(n.rgb, r), s(e.rgb, s(e.a, C(1, r)))), u);
65
66
  }
66
- R();
67
- var Ie = (e) => _(e.x.mul(1.2249401).sub(e.y.mul(0.2249404)).sub(e.z.mul(0)), e.x.mul(-0.0420569).add(e.y.mul(1.0420571)).add(e.z.mul(0)), e.x.mul(-0.0196376).sub(e.y.mul(0.0786361)).add(e.z.mul(1.0982735))), Nt = (e) => _(e.x.mul(0.8224621).add(e.y.mul(0.177538)).add(e.z.mul(0)), e.x.mul(0.0331941).add(e.y.mul(0.9668058)).add(e.z.mul(0)), e.x.mul(0.0170826).add(e.y.mul(0.0723974)).add(e.z.mul(0.9105199))), We = (e) => {
68
- const n = e.x, r = e.y, t = e.z, s = n.mul(0.4122214708).add(r.mul(0.5363325363)).add(t.mul(0.0514459929)), f = n.mul(0.2119034982).add(r.mul(0.6806995451).add(t.mul(0.1073969566))), m = n.mul(0.0883024619).add(r.mul(0.2817188376)).add(t.mul(0.6299787005)), u = N(s, L(1 / 3)), g = N(f, L(1 / 3)), y = N(m, L(1 / 3));
69
- return _(u.mul(0.2104542553).add(g.mul(0.793617785)).sub(y.mul(0.0040720468)), u.mul(1.9779984951).sub(g.mul(2.428592205)).add(y.mul(0.4505937099)), u.mul(0.0259040371).add(g.mul(0.7827717662)).sub(y.mul(0.808675766)));
70
- }, qt = (e) => {
71
- const n = e.x, r = e.y, t = e.z, s = n.add(r.mul(0.3963377774)).add(t.mul(0.2158037573)), f = n.sub(r.mul(0.1055613458)).sub(t.mul(0.0638541728)), m = n.sub(r.mul(0.0894841775)).sub(t.mul(1.291485548)), u = N(s, L(3)), g = N(f, L(3)), y = N(m, L(3));
72
- return _(u.mul(4.0767416621).sub(g.mul(3.3077115913)).add(y.mul(0.2309699292)), u.mul(-1.2684380046).add(g.mul(2.6097574011)).sub(y.mul(0.3413193965)), u.mul(-0.0041960863).sub(g.mul(0.7034186147)).add(y.mul(1.707614701)));
73
- }, Xe = (e) => {
74
- const n = e.x, r = e.y, t = e.z;
75
- return _(n, Ze(r.mul(r).add(t.mul(t))), En(t, r));
76
- }, Pt = (e) => {
77
- const n = e.x, r = e.y, t = e.z;
78
- return _(n, r.mul(Bn(t)), r.mul(Gn(t)));
67
+ A();
68
+ var hn = (e) => I(e.x.mul(1.2249401).sub(e.y.mul(0.2249404)).sub(e.z.mul(0)), e.x.mul(-0.0420569).add(e.y.mul(1.0420571)).add(e.z.mul(0)), e.x.mul(-0.0196376).sub(e.y.mul(0.0786361)).add(e.z.mul(1.0982735))), st = (e) => I(e.x.mul(0.8224621).add(e.y.mul(0.177538)).add(e.z.mul(0)), e.x.mul(0.0331941).add(e.y.mul(0.9668058)).add(e.z.mul(0)), e.x.mul(0.0170826).add(e.y.mul(0.0723974)).add(e.z.mul(0.9105199))), pn = (e) => {
69
+ const n = e.x, i = e.y, r = e.z, u = n.mul(0.4122214708).add(i.mul(0.5363325363)).add(r.mul(0.0514459929)), p = n.mul(0.2119034982).add(i.mul(0.6806995451).add(r.mul(0.1073969566))), h = n.mul(0.0883024619).add(i.mul(0.2817188376)).add(r.mul(0.6299787005)), d = K(u, J(1 / 3)), R = K(p, J(1 / 3)), S = K(h, J(1 / 3));
70
+ return I(d.mul(0.2104542553).add(R.mul(0.793617785)).sub(S.mul(0.0040720468)), d.mul(1.9779984951).sub(R.mul(2.428592205)).add(S.mul(0.4505937099)), d.mul(0.0259040371).add(R.mul(0.7827717662)).sub(S.mul(0.808675766)));
71
+ }, lt = (e) => {
72
+ const n = e.x, i = e.y, r = e.z, u = n.add(i.mul(0.3963377774)).add(r.mul(0.2158037573)), p = n.sub(i.mul(0.1055613458)).sub(r.mul(0.0638541728)), h = n.sub(i.mul(0.0894841775)).sub(r.mul(1.291485548)), d = K(u, J(3)), R = K(p, J(3)), S = K(h, J(3));
73
+ return I(d.mul(4.0767416621).sub(R.mul(3.3077115913)).add(S.mul(0.2309699292)), d.mul(-1.2684380046).add(R.mul(2.6097574011)).sub(S.mul(0.3413193965)), d.mul(-0.0041960863).sub(R.mul(0.7034186147)).add(S.mul(1.707614701)));
74
+ }, gn = (e) => {
75
+ const n = e.x, i = e.y, r = e.z;
76
+ return I(n, kn(i.mul(i).add(r.mul(r))), er(r, i));
77
+ }, ct = (e) => {
78
+ const n = e.x, i = e.y, r = e.z;
79
+ return I(n, i.mul(tr(r)), i.mul(ar(r)));
79
80
  };
80
- function Vt(e, n, r = 1) {
81
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t))), f = Ie(_(e.r, e.g, e.b)), m = Ie(_(n.r, n.g, n.b)), u = We(f), g = We(m), y = Xe(u);
82
- return v(Nt(qt(Pt(b(o(Xe(g), t), o(y, o(e.a, p(1, t))))))), s);
81
+ function ft(e, n, i = 1) {
82
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r))), p = hn(I(e.r, e.g, e.b)), h = hn(I(n.r, n.g, n.b)), d = pn(p), R = pn(h), S = gn(d);
83
+ return U(st(lt(ct(k(s(gn(R), r), s(S, s(e.a, C(1, r))))))), u);
83
84
  }
84
- R();
85
- var Ye = (e) => _(e.x.mul(1.2249401).sub(e.y.mul(0.2249404)).sub(e.z.mul(0)), e.x.mul(-0.0420569).add(e.y.mul(1.0420571)).add(e.z.mul(0)), e.x.mul(-0.0196376).sub(e.y.mul(0.0786361)).add(e.z.mul(1.0982735))), Ht = (e) => _(e.x.mul(0.8224621).add(e.y.mul(0.177538)).add(e.z.mul(0)), e.x.mul(0.0331941).add(e.y.mul(0.9668058)).add(e.z.mul(0)), e.x.mul(0.0170826).add(e.y.mul(0.0723974)).add(e.z.mul(0.9105199))), je = (e) => {
86
- const n = e.x, r = e.y, t = e.z, s = n.mul(0.4122214708).add(r.mul(0.5363325363)).add(t.mul(0.0514459929)), f = n.mul(0.2119034982).add(r.mul(0.6806995451).add(t.mul(0.1073969566))), m = n.mul(0.0883024619).add(r.mul(0.2817188376)).add(t.mul(0.6299787005)), u = N(s, L(1 / 3)), g = N(f, L(1 / 3)), y = N(m, L(1 / 3));
87
- return _(u.mul(0.2104542553).add(g.mul(0.793617785)).sub(y.mul(0.0040720468)), u.mul(1.9779984951).sub(g.mul(2.428592205)).add(y.mul(0.4505937099)), u.mul(0.0259040371).add(g.mul(0.7827717662)).sub(y.mul(0.808675766)));
88
- }, It = (e) => {
89
- const n = e.x, r = e.y, t = e.z, s = n.add(r.mul(0.3963377774)).add(t.mul(0.2158037573)), f = n.sub(r.mul(0.1055613458)).sub(t.mul(0.0638541728)), m = n.sub(r.mul(0.0894841775)).sub(t.mul(1.291485548)), u = N(s, L(3)), g = N(f, L(3)), y = N(m, L(3));
90
- return _(u.mul(4.0767416621).sub(g.mul(3.3077115913)).add(y.mul(0.2309699292)), u.mul(-1.2684380046).add(g.mul(2.6097574011)).sub(y.mul(0.3413193965)), u.mul(-0.0041960863).sub(g.mul(0.7034186147)).add(y.mul(1.707614701)));
85
+ A();
86
+ var bn = (e) => I(e.x.mul(1.2249401).sub(e.y.mul(0.2249404)).sub(e.z.mul(0)), e.x.mul(-0.0420569).add(e.y.mul(1.0420571)).add(e.z.mul(0)), e.x.mul(-0.0196376).sub(e.y.mul(0.0786361)).add(e.z.mul(1.0982735))), ut = (e) => I(e.x.mul(0.8224621).add(e.y.mul(0.177538)).add(e.z.mul(0)), e.x.mul(0.0331941).add(e.y.mul(0.9668058)).add(e.z.mul(0)), e.x.mul(0.0170826).add(e.y.mul(0.0723974)).add(e.z.mul(0.9105199))), vn = (e) => {
87
+ const n = e.x, i = e.y, r = e.z, u = n.mul(0.4122214708).add(i.mul(0.5363325363)).add(r.mul(0.0514459929)), p = n.mul(0.2119034982).add(i.mul(0.6806995451).add(r.mul(0.1073969566))), h = n.mul(0.0883024619).add(i.mul(0.2817188376)).add(r.mul(0.6299787005)), d = K(u, J(1 / 3)), R = K(p, J(1 / 3)), S = K(h, J(1 / 3));
88
+ return I(d.mul(0.2104542553).add(R.mul(0.793617785)).sub(S.mul(0.0040720468)), d.mul(1.9779984951).sub(R.mul(2.428592205)).add(S.mul(0.4505937099)), d.mul(0.0259040371).add(R.mul(0.7827717662)).sub(S.mul(0.808675766)));
89
+ }, mt = (e) => {
90
+ const n = e.x, i = e.y, r = e.z, u = n.add(i.mul(0.3963377774)).add(r.mul(0.2158037573)), p = n.sub(i.mul(0.1055613458)).sub(r.mul(0.0638541728)), h = n.sub(i.mul(0.0894841775)).sub(r.mul(1.291485548)), d = K(u, J(3)), R = K(p, J(3)), S = K(h, J(3));
91
+ return I(d.mul(4.0767416621).sub(R.mul(3.3077115913)).add(S.mul(0.2309699292)), d.mul(-1.2684380046).add(R.mul(2.6097574011)).sub(S.mul(0.3413193965)), d.mul(-0.0041960863).sub(R.mul(0.7034186147)).add(S.mul(1.707614701)));
91
92
  };
92
- function Wt(e, n, r = 1) {
93
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t))), f = Ye(_(e.r, e.g, e.b)), m = Ye(_(n.r, n.g, n.b)), u = je(f);
94
- return v(Ht(It(b(o(je(m), t), o(u, o(e.a, p(1, t)))))), s);
93
+ function dt(e, n, i = 1) {
94
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r))), p = bn(I(e.r, e.g, e.b)), h = bn(I(n.r, n.g, n.b)), d = vn(p);
95
+ return U(ut(mt(k(s(vn(h), r), s(d, s(e.a, C(1, r)))))), u);
95
96
  }
96
- R();
97
- function Xt(e, n, r = 1) {
98
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
99
- return v(b(o(o(e.rgb, n.rgb), t), o(e.rgb, o(e.a, p(1, t)))), s);
97
+ A();
98
+ function ht(e, n, i = 1) {
99
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
100
+ return U(k(s(s(e.rgb, n.rgb), r), s(e.rgb, s(e.a, C(1, r)))), u);
100
101
  }
101
- R();
102
- function Yt(e, n, r = 1) {
103
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
104
- return v(b(o(p(1, o(p(1, e.rgb), p(1, n.rgb))), t), o(e.rgb, o(e.a, p(1, t)))), s);
102
+ A();
103
+ function pt(e, n, i = 1) {
104
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
105
+ return U(k(s(C(1, s(C(1, e.rgb), C(1, n.rgb))), r), s(e.rgb, s(e.a, C(1, r)))), u);
105
106
  }
106
- R();
107
- function jt(e, n, r = 1) {
108
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
109
- return v(b(o(Be(b(e.rgb, n.rgb), 1), t), o(e.rgb, o(e.a, p(1, t)))), s);
107
+ A();
108
+ function gt(e, n, i = 1) {
109
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
110
+ return U(k(s(Ke(k(e.rgb, n.rgb), 1), r), s(e.rgb, s(e.a, C(1, r)))), u);
110
111
  }
111
- R();
112
- function Qt(e, n, r = 1) {
113
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
114
- return v(b(o(ue(o(2, o(e.rgb, n.rgb)), p(1, o(2, o(p(1, e.rgb), p(1, n.rgb)))), ce(0.5, e.rgb)), t), o(e.rgb, o(e.a, p(1, t)))), s);
112
+ A();
113
+ function bt(e, n, i = 1) {
114
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
115
+ return U(k(s(Ue(s(2, s(e.rgb, n.rgb)), C(1, s(2, s(C(1, e.rgb), C(1, n.rgb)))), Se(0.5, e.rgb)), r), s(e.rgb, s(e.a, C(1, r)))), u);
115
116
  }
116
- R();
117
- function Jt(e, n, r = 1) {
118
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
119
- return v(b(o(Fn(p(e.rgb, n.rgb)), t), o(e.rgb, o(e.a, p(1, t)))), s);
117
+ A();
118
+ function vt(e, n, i = 1) {
119
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
120
+ return U(k(s(or(C(e.rgb, n.rgb)), r), s(e.rgb, s(e.a, C(1, r)))), u);
120
121
  }
121
- R();
122
- function Kt(e, n, r = 1) {
123
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
124
- return v(b(o(ue(e.rgb, Be(Un(e.rgb, p(1, n.rgb)), 1), ce(1e-3, p(1, n.rgb))), t), o(e.rgb, o(e.a, p(1, t)))), s);
122
+ A();
123
+ function Ct(e, n, i = 1) {
124
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
125
+ return U(k(s(Ue(e.rgb, Ke(Zn(e.rgb, C(1, n.rgb)), 1), Se(1e-3, C(1, n.rgb))), r), s(e.rgb, s(e.a, C(1, r)))), u);
125
126
  }
126
- R();
127
- function Zt(e, n, r = 1) {
128
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
129
- return v(b(o(p(b(e.rgb, n.rgb), o(2, o(e.rgb, n.rgb))), t), o(e.rgb, o(e.a, p(1, t)))), s);
127
+ A();
128
+ function Rt(e, n, i = 1) {
129
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
130
+ return U(k(s(C(k(e.rgb, n.rgb), s(2, s(e.rgb, n.rgb))), r), s(e.rgb, s(e.a, C(1, r)))), u);
130
131
  }
131
- R();
132
- function Y(e) {
133
- return b(b(o(e.r, 0.2126), o(e.g, 0.7152)), o(e.b, 0.0722));
132
+ A();
133
+ function ce(e) {
134
+ return k(k(s(e.r, 0.2126), s(e.g, 0.7152)), s(e.b, 0.0722));
134
135
  }
135
- R();
136
- function er(e, n, r = 1) {
137
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t))), f = p(Y(e.rgb), Y(n.rgb));
138
- return v(b(o(b(n.rgb, f), t), o(e.rgb, o(e.a, p(1, t)))), s);
136
+ A();
137
+ function Tt(e, n, i = 1) {
138
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r))), p = C(ce(e.rgb), ce(n.rgb));
139
+ return U(k(s(k(n.rgb, p), r), s(e.rgb, s(e.a, C(1, r)))), u);
139
140
  }
140
- R();
141
- function nr(e, n, r = 1) {
142
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t))), f = Y(e.rgb), m = Y(n.rgb).div(b(f, 1e-4));
143
- return v(b(o(o(e.rgb, m), t), o(e.rgb, o(e.a, p(1, t)))), s);
141
+ A();
142
+ function kt(e, n, i = 1) {
143
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r))), p = ce(e.rgb), h = ce(n.rgb).div(k(p, 1e-4));
144
+ return U(k(s(s(e.rgb, h), r), s(e.rgb, s(e.a, C(1, r)))), u);
144
145
  }
145
- R();
146
- function tr(e, n, r = 1) {
147
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
148
- return v(b(o(Be(e.rgb, n.rgb), t), o(e.rgb, o(e.a, p(1, t)))), s);
146
+ A();
147
+ function wt(e, n, i = 1) {
148
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
149
+ return U(k(s(Ke(e.rgb, n.rgb), r), s(e.rgb, s(e.a, C(1, r)))), u);
149
150
  }
150
- R();
151
- function rr(e, n, r = 1) {
152
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
153
- return v(b(o(Fe(e.rgb, n.rgb), t), o(e.rgb, o(e.a, p(1, t)))), s);
151
+ A();
152
+ function yt(e, n, i = 1) {
153
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
154
+ return U(k(s(Ze(e.rgb, n.rgb), r), s(e.rgb, s(e.a, C(1, r)))), u);
154
155
  }
155
- R();
156
- function or(e, n, r = 1) {
157
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
158
- return v(b(o(ue(v(0, 0, 0, 1).rgb, Fe(p(1, p(1, e.rgb).div(b(n.rgb, 1e-4))), 0), ce(1e-4, n.rgb)), t), o(e.rgb, o(e.a, p(1, t)))), s);
156
+ A();
157
+ function St(e, n, i = 1) {
158
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
159
+ return U(k(s(Ue(U(0, 0, 0, 1).rgb, Ze(C(1, C(1, e.rgb).div(k(n.rgb, 1e-4))), 0), Se(1e-4, n.rgb)), r), s(e.rgb, s(e.a, C(1, r)))), u);
159
160
  }
160
- R();
161
- function ir(e, n, r = 1) {
162
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
163
- return v(b(o(Fe(b(b(e.rgb, n.rgb), -1), 0), t), o(e.rgb, o(e.a, p(1, t)))), s);
161
+ A();
162
+ function Ut(e, n, i = 1) {
163
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
164
+ return U(k(s(Ze(k(k(e.rgb, n.rgb), -1), 0), r), s(e.rgb, s(e.a, C(1, r)))), u);
164
165
  }
165
- R();
166
- function ar(e, n, r = 1) {
167
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t))), f = b(o(2, o(e.rgb, n.rgb)), o(o(e.rgb, e.rgb), p(1, o(2, n.rgb)))), m = Ze(e.rgb);
168
- return v(b(o(ue(f, b(o(2, o(e.rgb, p(1, n.rgb))), o(m, p(o(2, n.rgb), 1))), ce(0.5, n.rgb)), t), o(e.rgb, o(e.a, p(1, t)))), s);
166
+ A();
167
+ function xt(e, n, i = 1) {
168
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r))), p = k(s(2, s(e.rgb, n.rgb)), s(s(e.rgb, e.rgb), C(1, s(2, n.rgb)))), h = kn(e.rgb);
169
+ return U(k(s(Ue(p, k(s(2, s(e.rgb, C(1, n.rgb))), s(h, C(s(2, n.rgb), 1))), Se(0.5, n.rgb)), r), s(e.rgb, s(e.a, C(1, r)))), u);
169
170
  }
170
- R();
171
- function sr(e, n, r = 1) {
172
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t)));
173
- return v(b(o(ue(o(2, o(e.rgb, n.rgb)), p(1, o(2, o(p(1, e.rgb), p(1, n.rgb)))), ce(0.5, n.rgb)), t), o(e.rgb, o(e.a, p(1, t)))), s);
171
+ A();
172
+ function Mt(e, n, i = 1) {
173
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r)));
174
+ return U(k(s(Ue(s(2, s(e.rgb, n.rgb)), C(1, s(2, s(C(1, e.rgb), C(1, n.rgb)))), Se(0.5, n.rgb)), r), s(e.rgb, s(e.a, C(1, r)))), u);
174
175
  }
175
- R();
176
- function lr(e, n, r = 1) {
177
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t))), f = Y(e.rgb), m = Y(n.rgb), u = e.rgb.sub(f), g = n.rgb.sub(m), y = u.length();
178
- return v(b(o(b(o(g.normalize(), y), f), t), o(e.rgb, o(e.a, p(1, t)))), s);
176
+ A();
177
+ function At(e, n, i = 1) {
178
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r))), p = ce(e.rgb), h = ce(n.rgb), d = e.rgb.sub(p), R = n.rgb.sub(h), S = d.length();
179
+ return U(k(s(k(s(R.normalize(), S), p), r), s(e.rgb, s(e.a, C(1, r)))), u);
179
180
  }
180
- R();
181
- function cr(e, n, r = 1) {
182
- const t = o(n.a, r), s = b(t, o(e.a, p(1, t))), f = Y(e.rgb), m = Y(n.rgb), u = e.rgb.sub(f), g = n.rgb.sub(m);
183
- return v(b(o(b(o(u.normalize(), g.length()), f), t), o(e.rgb, o(e.a, p(1, t)))), s);
181
+ A();
182
+ function $t(e, n, i = 1) {
183
+ const r = s(n.a, i), u = k(r, s(e.a, C(1, r))), p = ce(e.rgb), h = ce(n.rgb), d = e.rgb.sub(p), R = n.rgb.sub(h);
184
+ return U(k(s(k(s(d.normalize(), R.length()), p), r), s(e.rgb, s(e.a, C(1, r)))), u);
184
185
  }
185
- var Qe = {
186
- normal: Lt,
187
- "normal-oklch": Vt,
188
- "normal-oklab": Wt,
189
- multiply: Xt,
190
- screen: Yt,
191
- linearDodge: jt,
192
- overlay: Qt,
193
- difference: Jt,
194
- colorDodge: Kt,
195
- exclusion: Zt,
196
- color: er,
197
- luminosity: nr,
198
- darken: tr,
199
- lighten: rr,
200
- colorBurn: or,
201
- linearBurn: ir,
202
- softLight: ar,
203
- hardLight: sr,
204
- hue: lr,
205
- saturation: cr
186
+ var Cn = {
187
+ normal: it,
188
+ "normal-oklch": ft,
189
+ "normal-oklab": dt,
190
+ multiply: ht,
191
+ screen: pt,
192
+ linearDodge: gt,
193
+ overlay: bt,
194
+ difference: vt,
195
+ colorDodge: Ct,
196
+ exclusion: Rt,
197
+ color: Tt,
198
+ luminosity: kt,
199
+ darken: wt,
200
+ lighten: yt,
201
+ colorBurn: St,
202
+ linearBurn: Ut,
203
+ softLight: xt,
204
+ hardLight: Mt,
205
+ hue: At,
206
+ saturation: $t
206
207
  };
207
- function X(e, n, r = "normal", t = 1) {
208
- return (Qe[r] || Qe.normal)(e, n, t);
208
+ function Q(e, n, i = "normal", r = 1) {
209
+ return (Cn[i] || Cn.normal)(e, n, r);
209
210
  }
210
- R();
211
- function ur(e, n) {
212
- const r = o(e.a, n.a);
213
- return v(e.rgb, r);
211
+ A();
212
+ function zt(e, n) {
213
+ const i = s(e.a, n.a);
214
+ return U(e.rgb, i);
214
215
  }
215
- R();
216
- function mr(e, n) {
217
- const r = p(1, n.a), t = o(e.a, r);
218
- return v(e.rgb, t);
216
+ A();
217
+ function Dt(e, n) {
218
+ const i = C(1, n.a), r = s(e.a, i);
219
+ return U(e.rgb, r);
219
220
  }
220
- R();
221
- function fr(e, n) {
222
- const r = _(0.2126, 0.7152, 0.0722), t = en(n.rgb, r), s = o(e.a, t);
223
- return v(e.rgb, s);
221
+ A();
222
+ function Ft(e, n) {
223
+ const i = I(0.2126, 0.7152, 0.0722), r = wn(n.rgb, i), u = s(e.a, r);
224
+ return U(e.rgb, u);
224
225
  }
225
- R();
226
- function dr(e, n) {
227
- const r = _(0.2126, 0.7152, 0.0722), t = p(1, en(n.rgb, r)), s = o(e.a, t);
228
- return v(e.rgb, s);
226
+ A();
227
+ function Et(e, n) {
228
+ const i = I(0.2126, 0.7152, 0.0722), r = C(1, wn(n.rgb, i)), u = s(e.a, r);
229
+ return U(e.rgb, u);
229
230
  }
230
- var Je = {
231
- alpha: ur,
232
- alphaInverted: mr,
233
- luminance: fr,
234
- luminanceInverted: dr
231
+ var Rn = {
232
+ alpha: zt,
233
+ alphaInverted: Dt,
234
+ luminance: Ft,
235
+ luminanceInverted: Et
235
236
  };
236
- function hr(e, n, r = "alpha") {
237
- return (Je[r] || Je.alpha)(e, n);
237
+ function Ot(e, n, i = "alpha") {
238
+ return (Rn[i] || Rn.alpha)(e, n);
238
239
  }
239
- var pr = class {
240
+ var Bt = class {
240
241
  frameTimesMs = [];
241
242
  maxSamples = 60;
242
243
  targetFrameTime = 16.67;
@@ -249,11 +250,19 @@ var pr = class {
249
250
  lastCpuTime = null;
250
251
  lastGpuTime = null;
251
252
  isRendering = !1;
253
+ lastFrameTimestamp = 0;
254
+ frameIntervals = [];
252
255
  /**
253
256
  * Records a frame's render time
254
257
  */
255
258
  recordFrame(e) {
256
- this.frameTimesMs.push(e), this.frameTimesMs.length > this.maxSamples && this.frameTimesMs.shift(), this.totalFrameCount++, e > this.targetFrameTime && this.jankFrameCount++, this.recordMemorySnapshot();
259
+ this.frameTimesMs.push(e), this.frameTimesMs.length > this.maxSamples && this.frameTimesMs.shift(), this.totalFrameCount++, e > this.targetFrameTime && this.jankFrameCount++;
260
+ const n = performance.now();
261
+ if (this.lastFrameTimestamp > 0) {
262
+ const i = n - this.lastFrameTimestamp;
263
+ this.frameIntervals.push(i), this.frameIntervals.length > this.maxSamples && this.frameIntervals.shift();
264
+ }
265
+ this.lastFrameTimestamp = n, this.recordMemorySnapshot();
257
266
  }
258
267
  /**
259
268
  * Records CPU time for the last frame
@@ -289,32 +298,32 @@ var pr = class {
289
298
  time: e,
290
299
  bytes: n
291
300
  });
292
- const r = e - this.memoryWindowMs;
293
- this.memorySnapshots = this.memorySnapshots.filter((t) => t.time > r);
301
+ const i = e - this.memoryWindowMs;
302
+ this.memorySnapshots = this.memorySnapshots.filter((r) => r.time > i);
294
303
  }
295
304
  /**
296
305
  * Calculates memory growth rate in MB/sec
297
306
  */
298
307
  calculateMemoryGrowthRate() {
299
308
  if (this.memorySnapshots.length < 2) return null;
300
- const e = this.memorySnapshots[0], n = this.memorySnapshots[this.memorySnapshots.length - 1], r = (n.time - e.time) / 1e3;
301
- return (n.bytes - e.bytes) / (1024 * 1024) / r;
309
+ const e = this.memorySnapshots[0], n = this.memorySnapshots[this.memorySnapshots.length - 1], i = (n.time - e.time) / 1e3;
310
+ return (n.bytes - e.bytes) / (1024 * 1024) / i;
302
311
  }
303
312
  /**
304
313
  * Calculates standard deviation of frame times
305
314
  */
306
315
  calculateStdDev(e) {
307
316
  if (e.length === 0) return 0;
308
- const n = e.reduce((t, s) => t + s, 0) / e.length, r = e.map((t) => Math.pow(t - n, 2)).reduce((t, s) => t + s, 0) / e.length;
309
- return Math.sqrt(r);
317
+ const n = e.reduce((r, u) => r + u, 0) / e.length, i = e.map((r) => Math.pow(r - n, 2)).reduce((r, u) => r + u, 0) / e.length;
318
+ return Math.sqrt(i);
310
319
  }
311
320
  /**
312
321
  * Calculates 99th percentile frame time
313
322
  */
314
323
  calculateP99(e) {
315
324
  if (e.length === 0) return 0;
316
- const n = [...e].sort((t, s) => t - s), r = Math.floor(n.length * 0.99);
317
- return n[Math.min(r, n.length - 1)];
325
+ const n = [...e].sort((r, u) => r - u), i = Math.floor(n.length * 0.99);
326
+ return n[Math.min(i, n.length - 1)];
318
327
  }
319
328
  /**
320
329
  * Calculates complexity score based on node structure
@@ -340,10 +349,10 @@ var pr = class {
340
349
  score: 0,
341
350
  label: "N/A"
342
351
  };
343
- const n = this.frameTimesMs.reduce((y, A) => y + A, 0) / e, r = Math.min(n / 16.67 * 100, 100), t = this.calculateComplexityScore(), s = Math.min(t / 100 * 100, 100);
344
- let f = 0;
345
- this.lastGpuTime !== null && (f = Math.min(this.lastGpuTime / 16.67 * 100, 100));
346
- const m = this.lastGpuTime !== null ? {
352
+ const n = this.frameTimesMs.reduce((S, P) => S + P, 0) / e, i = Math.min(n / 16.67 * 100, 100), r = this.calculateComplexityScore(), u = Math.min(r / 100 * 100, 100);
353
+ let p = 0;
354
+ this.lastGpuTime !== null && (p = Math.min(this.lastGpuTime / 16.67 * 100, 100));
355
+ const h = this.lastGpuTime !== null ? {
347
356
  frame: 0.4,
348
357
  gpu: 0.4,
349
358
  complexity: 0.2
@@ -351,40 +360,40 @@ var pr = class {
351
360
  frame: 0.7,
352
361
  gpu: 0,
353
362
  complexity: 0.3
354
- }, u = Math.round(r * m.frame + f * m.gpu + s * m.complexity);
355
- let g;
356
- return u <= 20 ? g = "Very Light" : u <= 40 ? g = "Light" : u <= 60 ? g = "Medium" : u <= 80 ? g = "Heavy" : g = "Very Heavy", {
357
- score: Math.min(u, 100),
358
- label: g
363
+ }, d = Math.round(i * h.frame + p * h.gpu + u * h.complexity);
364
+ let R;
365
+ return d <= 20 ? R = "Very Light" : d <= 40 ? R = "Light" : d <= 60 ? R = "Medium" : d <= 80 ? R = "Heavy" : R = "Very Heavy", {
366
+ score: Math.min(d, 100),
367
+ label: R
359
368
  };
360
369
  }
361
370
  /**
362
371
  * Gets current performance statistics
363
372
  */
364
373
  getStats(e) {
365
- const n = this.frameTimesMs.length, r = n > 0 ? 1e3 / (this.frameTimesMs.reduce((M, S) => M + S, 0) / n) : 0, t = n > 0 ? this.frameTimesMs.reduce((M, S) => M + S, 0) / n : 0, s = n > 0 ? Math.min(...this.frameTimesMs) : 0, f = n > 0 ? Math.max(...this.frameTimesMs) : 0, m = this.calculateP99(this.frameTimesMs), u = this.calculateStdDev(this.frameTimesMs), g = this.totalFrameCount > 0 ? this.jankFrameCount / this.totalFrameCount * 100 : 0, y = performance.memory, A = y ? y.usedJSHeapSize / (1024 * 1024) : null, C = this.calculateMemoryGrowthRate(), q = t > 0 ? t / this.targetFrameTime * 100 : 0, B = e?.render?.calls ?? null, F = e?.programs?.length ?? null, O = e?.memory?.textures ?? null, I = this.calculateIntensityScore();
374
+ const n = this.frameTimesMs.length, i = this.frameIntervals.length > 0 ? 1e3 / (this.frameIntervals.reduce(($, z) => $ + z, 0) / this.frameIntervals.length) : 0, r = n > 0 ? this.frameTimesMs.reduce(($, z) => $ + z, 0) / n : 0, u = n > 0 ? Math.min(...this.frameTimesMs) : 0, p = n > 0 ? Math.max(...this.frameTimesMs) : 0, h = this.calculateP99(this.frameTimesMs), d = this.calculateStdDev(this.frameTimesMs), R = this.totalFrameCount > 0 ? this.jankFrameCount / this.totalFrameCount * 100 : 0, S = performance.memory, P = S ? S.usedJSHeapSize / (1024 * 1024) : null, E = this.calculateMemoryGrowthRate(), Z = r > 0 ? r / this.targetFrameTime * 100 : 0, X = e?.render?.calls ?? null, Y = e?.programs?.length ?? null, N = e?.memory?.textures ?? null, ae = this.calculateIntensityScore();
366
375
  return {
367
- fps: Math.round(r),
368
- avgFrameTime: Math.round(t * 100) / 100,
369
- minFrameTime: Math.round(s * 100) / 100,
370
- maxFrameTime: Math.round(f * 100) / 100,
371
- p99FrameTime: Math.round(m * 100) / 100,
372
- stdDevFrameTime: Math.round(u * 100) / 100,
376
+ fps: Math.round(i),
377
+ avgFrameTime: Math.round(r * 100) / 100,
378
+ minFrameTime: Math.round(u * 100) / 100,
379
+ maxFrameTime: Math.round(p * 100) / 100,
380
+ p99FrameTime: Math.round(h * 100) / 100,
381
+ stdDevFrameTime: Math.round(d * 100) / 100,
373
382
  jankCount: this.jankFrameCount,
374
- jankPercent: Math.round(g * 10) / 10,
383
+ jankPercent: Math.round(R * 10) / 10,
375
384
  nodeCount: this.nodeCount,
376
385
  rttNodeCount: this.rttNodeCount,
377
386
  complexityScore: this.calculateComplexityScore(),
378
- memoryUsedMB: A !== null ? Math.round(A * 100) / 100 : null,
379
- memoryGrowthRate: C !== null ? Math.round(C * 1e3) / 1e3 : null,
387
+ memoryUsedMB: P !== null ? Math.round(P * 100) / 100 : null,
388
+ memoryGrowthRate: E !== null ? Math.round(E * 1e3) / 1e3 : null,
380
389
  cpuTime: this.lastCpuTime !== null ? Math.round(this.lastCpuTime * 100) / 100 : null,
381
390
  gpuTime: this.lastGpuTime !== null ? Math.round(this.lastGpuTime * 100) / 100 : null,
382
- budgetUsed: Math.round(q * 10) / 10,
383
- drawCalls: B,
384
- shaderPrograms: F,
385
- textureCount: O,
386
- intensityScore: I.score,
387
- intensityLabel: I.label,
391
+ budgetUsed: Math.round(Z * 10) / 10,
392
+ drawCalls: X,
393
+ shaderPrograms: Y,
394
+ textureCount: N,
395
+ intensityScore: ae.score,
396
+ intensityLabel: ae.label,
388
397
  isRendering: this.isRendering
389
398
  };
390
399
  }
@@ -392,96 +401,96 @@ var pr = class {
392
401
  * Resets all statistics
393
402
  */
394
403
  reset() {
395
- this.frameTimesMs = [], this.jankFrameCount = 0, this.totalFrameCount = 0, this.memorySnapshots = [], this.lastCpuTime = null, this.lastGpuTime = null;
404
+ this.frameTimesMs = [], this.frameIntervals = [], this.lastFrameTimestamp = 0, this.jankFrameCount = 0, this.totalFrameCount = 0, this.memorySnapshots = [], this.lastCpuTime = null, this.lastGpuTime = null;
396
405
  }
397
406
  };
398
- R();
399
- var { vec2: le, cos: gr, sin: br, float: yr, PI: vr } = Z;
400
- const _e = (e) => e.offsetX !== 0 || e.offsetY !== 0 || e.rotation !== 0 || e.scale !== 1 || e.anchorX !== 0.5 || e.anchorY !== 0.5, Tr = (e, n, r, t, s, f, m, u) => {
401
- const g = t.mul(vr).div(yr(180)), y = gr(g), A = br(g), C = le(f, m), q = e.sub(C).div(s), B = le(q.x.mul(u), q.y), F = le(B.x.mul(y).sub(B.y.mul(A)), B.x.mul(A).add(B.y.mul(y)));
402
- return le(F.x.div(u), F.y).sub(le(n, r)).add(C);
407
+ A();
408
+ var { vec2: ye, cos: Pt, sin: _t, float: Vt, PI: Lt } = he;
409
+ const de = (e) => e.offsetX !== 0 || e.offsetY !== 0 || e.rotation !== 0 || e.scale !== 1 || e.anchorX !== 0.5 || e.anchorY !== 0.5, _e = (e, n, i, r, u, p, h, d) => {
410
+ const R = r.mul(Lt).div(Vt(180)), S = Pt(R), P = _t(R), E = ye(p, h), Z = e.sub(E).div(u), X = ye(Z.x.mul(d), Z.y), Y = ye(X.x.mul(S).sub(X.y.mul(P)), X.x.mul(P).add(X.y.mul(S)));
411
+ return ye(Y.x.div(d), Y.y).sub(ye(n, i)).add(E);
403
412
  };
404
- var Rr = /* @__PURE__ */ An({
405
- createUniformsMap: () => kr,
406
- updateUniformValue: () => wr
413
+ var qt = /* @__PURE__ */ rr({
414
+ createUniformsMap: () => Gt,
415
+ updateUniformValue: () => Nt
407
416
  });
408
- function kr(e, n, r) {
409
- const t = {};
410
- return Object.entries(e.props).forEach(([s, f]) => {
411
- const m = n[s];
412
- let u = m;
413
- if (f.transform) {
414
- const y = f.transform(m);
415
- u = y?.node ?? y;
417
+ function Gt(e, n, i) {
418
+ const r = {};
419
+ return Object.entries(e.props).forEach(([u, p]) => {
420
+ const h = n[u];
421
+ let d = h;
422
+ if (p.transform) {
423
+ const S = p.transform(h);
424
+ d = S?.node ?? S;
416
425
  }
417
- if (u == null && (u = f.default, f.transform && u !== null && u !== void 0)) {
418
- const y = f.transform(u);
419
- u = y?.node ?? y;
426
+ if (d == null && (d = p.default, p.transform && d !== null && d !== void 0)) {
427
+ const S = p.transform(d);
428
+ d = S?.node ?? S;
420
429
  }
421
- u == null && (console.error(`[Shaders] Uniform "${s}" is null/undefined after fallback. PropConfig:`, {
422
- propName: s,
423
- initialValue: m,
424
- default: f.default,
425
- hasTransform: !!f.transform
426
- }), u = 0);
427
- const g = nn(u).setName(`${s}_${r}`);
428
- typeof u == "string" && g.value === null && (g.value = u), t[s] = {
429
- uniform: g,
430
- transform: f.transform || void 0
430
+ d == null && (console.error(`[Shaders] Uniform "${u}" is null/undefined after fallback. PropConfig:`, {
431
+ propName: u,
432
+ initialValue: h,
433
+ default: p.default,
434
+ hasTransform: !!p.transform
435
+ }), d = 0);
436
+ const R = yn(d).setName(`${u}_${i}`);
437
+ typeof d == "string" && R.value === null && (R.value = d), r[u] = {
438
+ uniform: R,
439
+ transform: p.transform || void 0
431
440
  };
432
- }), t;
441
+ }), r;
433
442
  }
434
- function wr(e, n) {
443
+ function Nt(e, n) {
435
444
  if (e?.transform) {
436
- const r = e.transform(n), t = r?.data ?? r;
437
- e.uniform.value = t;
445
+ const i = e.transform(n), r = i?.data ?? i;
446
+ e.uniform.value = r;
438
447
  } else e.uniform.value = n;
439
448
  }
440
- var nn, tn = Cn({ "src/utilities/uniforms.ts": (() => {
441
- R(), { uniform: nn } = Z;
449
+ var yn, Sn = Wn({ "src/utilities/uniforms.ts": (() => {
450
+ A(), { uniform: yn } = he;
442
451
  }) });
443
- R();
444
- var Ke = !1, Cr = /* @__PURE__ */ (() => {
452
+ A();
453
+ var Tn = !1, It = /* @__PURE__ */ (() => {
445
454
  let e = 0;
446
- const n = /* @__PURE__ */ new Set(), r = (m) => {
447
- n.forEach((u) => {
455
+ const n = /* @__PURE__ */ new Set(), i = (h) => {
456
+ n.forEach((d) => {
448
457
  try {
449
- u.onMouseMove(m);
450
- } catch (g) {
451
- console.error("[Shaders] Error in mouse move handler:", g);
458
+ d.onMouseMove(h);
459
+ } catch (R) {
460
+ console.error("[Shaders] Error in mouse move handler:", R);
452
461
  }
453
462
  });
454
- }, t = (m) => {
455
- n.forEach((u) => {
463
+ }, r = (h) => {
464
+ n.forEach((d) => {
456
465
  try {
457
- u.onTouchMove(m);
458
- } catch (g) {
459
- console.error("[Shaders] Error in touch move handler:", g);
466
+ d.onTouchMove(h);
467
+ } catch (R) {
468
+ console.error("[Shaders] Error in touch move handler:", R);
460
469
  }
461
470
  });
462
- }, s = () => {
463
- n.forEach((m) => {
471
+ }, u = () => {
472
+ n.forEach((h) => {
464
473
  try {
465
- m.onMouseUp();
466
- } catch (u) {
467
- console.error("[Shaders] Error in mouse up handler:", u);
474
+ h.onMouseUp();
475
+ } catch (d) {
476
+ console.error("[Shaders] Error in mouse up handler:", d);
468
477
  }
469
478
  });
470
- }, f = () => {
471
- n.forEach((m) => {
479
+ }, p = () => {
480
+ n.forEach((h) => {
472
481
  try {
473
- m.onTouchEnd();
474
- } catch (u) {
475
- console.error("[Shaders] Error in touch end handler:", u);
482
+ h.onTouchEnd();
483
+ } catch (d) {
484
+ console.error("[Shaders] Error in touch end handler:", d);
476
485
  }
477
486
  });
478
487
  };
479
- return { register(m) {
480
- return n.add(m), e++, e === 1 && (window.addEventListener("mousemove", r), window.addEventListener("touchmove", t), window.addEventListener("mouseup", s), window.addEventListener("touchend", f)), () => {
481
- n.delete(m), e--, e === 0 && (window.removeEventListener("mousemove", r), window.removeEventListener("touchmove", t), window.removeEventListener("mouseup", s), window.removeEventListener("touchend", f));
488
+ return { register(h) {
489
+ return n.add(h), e++, e === 1 && (window.addEventListener("mousemove", i), window.addEventListener("touchmove", r), window.addEventListener("mouseup", u), window.addEventListener("touchend", p)), () => {
490
+ n.delete(h), e--, e === 0 && (window.removeEventListener("mousemove", i), window.removeEventListener("touchmove", r), window.removeEventListener("mouseup", u), window.removeEventListener("touchend", p));
482
491
  };
483
492
  } };
484
- })(), Mr = () => {
493
+ })(), Xt = () => {
485
494
  try {
486
495
  {
487
496
  const { MODE: e, DEV: n } = {
@@ -499,802 +508,1163 @@ var Ke = !1, Cr = /* @__PURE__ */ (() => {
499
508
  return !1;
500
509
  }
501
510
  };
502
- function Io() {
503
- let e = null, n, r, t, s, f;
504
- const m = {
511
+ function ca() {
512
+ let e = null, n, i, r, u, p;
513
+ const h = {
505
514
  nodes: /* @__PURE__ */ new Map(),
506
515
  rootId: null,
507
516
  idToNodeId: /* @__PURE__ */ new Map()
508
- }, u = /* @__PURE__ */ new Map();
509
- let g = null, y = null, A = null, C = !1, q = !1, B = !1, F = null, O = !1, I = !0, M = 0, S = 0, V = !1, Re = 0, ke = !1, me = 0.5, fe = 0.5, j = !1, de = !1, he = null, Q = !1;
510
- const W = new pr();
511
- let H = [], we = !1, pe = [], ee = null, ge = [], ne = null, Ge = /* @__PURE__ */ new Set(), Ce = /* @__PURE__ */ new Set(), re = /* @__PURE__ */ new Set(), Me = /* @__PURE__ */ new Set(), oe = null, be = !1;
512
- const rn = () => window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? !1, Se = (c, i) => {
513
- c <= 0 || i <= 0 || c === M && i === S || (oe = {
514
- width: c,
515
- height: i
516
- }, be || (be = !0, requestAnimationFrame(() => {
517
- if (be = !1, !oe) return;
518
- const { width: l, height: a } = oe;
519
- oe = null, M = l, S = a, B || (B = !0), n.setSize(l, a, !1);
520
- const h = l / a, T = 2, w = T * h;
521
- r.left = -w / 2, r.right = w / 2, r.top = T / 2, r.bottom = -T / 2, r.updateProjectionMatrix(), s.scale.set(w, T, 1), m.nodes.forEach(($) => {
522
- $.transformUniforms?.aspectRatio && ($.transformUniforms.aspectRatio.value = h), $.resizeCallbacks.forEach((G) => {
517
+ }, d = /* @__PURE__ */ new Map();
518
+ let R = null, S = null, P = null, E = !1, Z = !1, X = !1, Y = null, N = !1, ae = !0, $ = 0, z = 0, ne = !1, Le = 0, xe = !1, Me = 0.5, Ae = 0.5, fe = !1, $e = !1, ze = null, Ce = null, ue = !1;
519
+ const ie = new Bt();
520
+ let re = [], qe = !1, De = [], pe = null, Fe = [], ge = null, en = /* @__PURE__ */ new Set(), nn = /* @__PURE__ */ new Set(), Ee = 0, Re = /* @__PURE__ */ new Set(), Ge = /* @__PURE__ */ new Set(), Te = null, Oe = !1;
521
+ const Ne = (a, t) => {
522
+ a <= 0 || t <= 0 || a === $ && t === z || (Te = {
523
+ width: a,
524
+ height: t
525
+ }, Oe || (Oe = !0, requestAnimationFrame(() => {
526
+ if (Oe = !1, !Te) return;
527
+ const { width: o, height: l } = Te;
528
+ Te = null, $ = o, z = l, X || (X = !0), n.setSize(o, l, !1);
529
+ const f = o / l, b = 2, g = b * f;
530
+ i.left = -g / 2, i.right = g / 2, i.top = b / 2, i.bottom = -b / 2, i.updateProjectionMatrix(), u.scale.set(g, b, 1), h.nodes.forEach((w) => {
531
+ w.transformUniforms?.aspectRatio && (w.transformUniforms.aspectRatio.value = f), w.resizeCallbacks.forEach((x) => {
523
532
  try {
524
- G({
525
- width: l,
526
- height: a
533
+ x({
534
+ width: o,
535
+ height: l
527
536
  });
528
537
  } catch (D) {
529
538
  console.error("Error in resize callback:", D);
530
539
  }
531
540
  });
532
- }), P().catch(console.warn);
541
+ }), ee().catch(console.warn);
533
542
  })));
534
- }, on = () => C && !!n && !!t && !!r && !!f && M > 0 && S > 0 && O, an = (c) => {
535
- if (!n || !r || !s) return;
536
- const i = c[0];
537
- if (!i) return;
538
- let l, a;
539
- if (i.contentBoxSize) {
540
- const h = Array.isArray(i.contentBoxSize) ? i.contentBoxSize[0] : i.contentBoxSize;
541
- h ? (l = Math.round(h.inlineSize), a = Math.round(h.blockSize)) : (l = Math.round(i.contentRect.width), a = Math.round(i.contentRect.height));
543
+ }, Un = () => E && !!n && !!r && !!i && !!p && $ > 0 && z > 0 && N, xn = (a) => {
544
+ if (!n || !i || !u) return;
545
+ const t = a[0];
546
+ if (!t) return;
547
+ let o, l;
548
+ if (t.contentBoxSize) {
549
+ const f = Array.isArray(t.contentBoxSize) ? t.contentBoxSize[0] : t.contentBoxSize;
550
+ f ? (o = Math.round(f.inlineSize), l = Math.round(f.blockSize)) : (o = Math.round(t.contentRect.width), l = Math.round(t.contentRect.height));
542
551
  } else
543
- l = Math.round(i.contentRect.width), a = Math.round(i.contentRect.height);
544
- l === 0 || a === 0 || Se(l, a);
545
- }, sn = (c) => {
546
- const i = c[0];
547
- if (!i) return;
548
- const l = O;
549
- O = i.isIntersecting;
550
- const a = e?.getBoundingClientRect(), h = V;
551
- if (V = O && !!a && a.width > 0 && a.height > 0, O && !l) {
552
- if (ke = !0, e) {
553
- const { width: T, height: w } = e.getBoundingClientRect(), $ = Math.round(T), G = Math.round(w);
554
- $ > 0 && G > 0 && (M === 0 || S === 0 || $ !== M || G !== S ? (Se($, G), !h && V && J()) : f && C && m.rootId && (f.needsUpdate = !0, J(), P().catch(console.warn)));
552
+ o = Math.round(t.contentRect.width), l = Math.round(t.contentRect.height);
553
+ o === 0 || l === 0 || Ne(o, l);
554
+ }, Mn = (a) => {
555
+ const t = a[0];
556
+ if (!t) return;
557
+ const o = N;
558
+ N = t.isIntersecting;
559
+ const l = e?.getBoundingClientRect(), f = ne;
560
+ if (ne = N && !!l && l.width > 0 && l.height > 0, N && !o) {
561
+ if (xe = !0, e) {
562
+ const { width: b, height: g } = e.getBoundingClientRect(), w = Math.round(b), x = Math.round(g);
563
+ w > 0 && x > 0 && ($ === 0 || z === 0 || w !== $ || x !== z ? (Ne(w, x), !f && ne && me()) : p && E && h.rootId && (p.needsUpdate = !0, me(), ee().catch(console.warn)));
555
564
  }
556
- I && xe();
557
- } else !O && l && De();
558
- }, ln = (c, i) => {
559
- if (c.size !== i.size) return !1;
560
- for (const l of c) if (!i.has(l)) return !1;
565
+ ae && je();
566
+ } else !N && o && Qe();
567
+ }, An = (a, t) => {
568
+ if (a.size !== t.size) return !1;
569
+ for (const o of a) if (!t.has(o)) return !1;
561
570
  return !0;
562
- }, cn = (c) => {
563
- const i = On(c);
564
- return re.add(i), i;
565
- }, Le = () => {
566
- Me.forEach((c) => {
571
+ }, Ie = (a) => {
572
+ Ee++;
573
+ const t = nr(a);
574
+ return Re.add(t), t;
575
+ }, rn = () => {
576
+ Ge.forEach((a) => {
567
577
  try {
568
- c?.renderTarget?.dispose && c.renderTarget.dispose();
578
+ a?.renderTarget?.dispose && a.renderTarget.dispose();
569
579
  } catch {
570
580
  }
571
- }), Me.clear();
581
+ }), Ge.clear();
572
582
  };
573
- let te = !1;
574
- const J = () => {
575
- if (!(!m.rootId || !f || de) && m.nodes.get(m.rootId)) {
576
- if (M === 0 || S === 0) {
577
- te || (te = !0, requestAnimationFrame(() => {
578
- te = !1, M > 0 && S > 0 && J();
579
- }));
580
- return;
583
+ let be = !1;
584
+ const me = () => {
585
+ if (!h.rootId || !p || $e || !h.nodes.get(h.rootId)) return;
586
+ if ($ === 0 || z === 0) {
587
+ be || (be = !0, requestAnimationFrame(() => {
588
+ be = !1, $ > 0 && z > 0 && me();
589
+ }));
590
+ return;
591
+ }
592
+ $e = !0;
593
+ const a = performance.now();
594
+ console.log("[Shaders Perf] Starting updateMaterial()");
595
+ try {
596
+ const t = performance.now();
597
+ Ge = new Set(Re), Re.clear(), console.log(`[Shaders Perf] Texture management: ${(performance.now() - t).toFixed(2)}ms`);
598
+ const o = /* @__PURE__ */ new Set(), l = performance.now();
599
+ nn.clear(), h.nodes.forEach((g, w) => {
600
+ (g.requiresRTT || g.transformRTTActive) && nn.add(w);
601
+ }), console.log(`[Shaders Perf] RTT tracking rebuild: ${(performance.now() - l).toFixed(2)}ms (${h.nodes.size} nodes)`), Ee = 0;
602
+ const f = performance.now(), b = j(h.rootId, /* @__PURE__ */ new Set(), o);
603
+ if (console.log(`[Shaders Perf] composeNodeTree: ${(performance.now() - f).toFixed(2)}ms (RTT ops: ${Ee})`), b && p) {
604
+ const g = !An(en, o), w = p.fragmentNode !== b;
605
+ if (g || xe || w) {
606
+ console.log(`[Shaders Perf] Recompilation needed: compositionChanged=${g}, nodeChanged=${w}, needsRefresh=${xe}`);
607
+ const x = performance.now();
608
+ rn(), console.log(`[Shaders Perf] Texture disposal: ${(performance.now() - x).toFixed(2)}ms`);
609
+ const D = performance.now();
610
+ try {
611
+ p.dispose(), n.renderTarget && n.renderTarget.dispose();
612
+ } catch {
613
+ }
614
+ console.log(`[Shaders Perf] Material disposal: ${(performance.now() - D).toFixed(2)}ms`);
615
+ const y = performance.now(), m = new dn({ transparent: !0 });
616
+ m.fragmentNode = b, m.needsUpdate = !0, console.log(`[Shaders Perf] Material creation: ${(performance.now() - y).toFixed(2)}ms`), u.material = m, p = m, xe = !1, en = o;
617
+ } else console.log("[Shaders Perf] No recompilation needed (composition unchanged)");
581
618
  }
582
- de = !0;
619
+ console.log(`[Shaders Perf] TOTAL updateMaterial: ${(performance.now() - a).toFixed(2)}ms`), console.log("========================================");
620
+ } catch (t) {
621
+ console.error("Error composing shader tree:", t), console.log(`[Shaders Perf] FAILED after ${(performance.now() - a).toFixed(2)}ms`);
622
+ } finally {
623
+ $e = !1;
624
+ }
625
+ N && ee().catch(console.warn);
626
+ }, W = (a) => {
627
+ const t = d.get(a);
628
+ if (!t) return [];
629
+ const o = [];
630
+ for (const l of t) {
631
+ const f = h.nodes.get(l);
632
+ f && o.push(f);
633
+ }
634
+ return o;
635
+ }, $n = (a) => {
636
+ for (const [t, o] of h.nodes.entries()) if (o.metadata.id === a) return t;
637
+ return null;
638
+ }, te = (a, t, o, l) => {
639
+ if (!t.metadata.mask?.source) return a;
640
+ const f = t.metadata.mask.source, b = $n(f);
641
+ if (!b) return a;
642
+ if (l.has(b))
643
+ return console.error("Uh oh, looks like you've got a circular dependency in your shader masks."), a;
644
+ const g = new Set(l);
645
+ return g.add(o), Ot(a, j(b, g), t.metadata.mask.type || "alpha");
646
+ }, se = (a, t) => {
647
+ if (!t.metadata.transform || !t.transformUniforms || !de(t.metadata.transform) && !t.transformRTTActive) return a;
648
+ const o = Ie(a), l = _e(ke, t.transformUniforms.offsetX, t.transformUniforms.offsetY, t.transformUniforms.rotation, t.transformUniforms.scale, t.transformUniforms.anchorX, t.transformUniforms.anchorY, t.transformUniforms.aspectRatio);
649
+ return we(l, o.sample(l), o, t.transformUniforms.edges);
650
+ }, H = (a) => !!a.uvTransformFunc && a.requiresChild && a.metadata.blendMode === "normal" && (a.metadata.opacity === void 0 || a.metadata.opacity === 1) && a.metadata.visible !== !1 && !a.metadata.mask?.source && !(a.transformUniforms && a.metadata.transform && de(a.metadata.transform)), Xe = (a) => {
651
+ const t = [];
652
+ let o = a;
653
+ for (; o; ) {
654
+ const l = h.nodes.get(o);
655
+ if (!l || !H(l)) break;
656
+ t.push(l);
657
+ const f = W(l.id);
658
+ if (f.length !== 1) break;
659
+ const b = f[0];
660
+ if (H(b)) o = b.id;
661
+ else break;
662
+ }
663
+ return t;
664
+ }, zn = (a) => {
665
+ if (a.length === 0) return null;
666
+ const t = a[a.length - 1], o = W(t.id);
667
+ return o.length === 0 ? null : o.length === 1 ? o[0] : null;
668
+ }, Be = (a) => {
669
+ if (!a.uvTransformFunc || !H(a)) return !1;
670
+ const t = W(a.id);
671
+ if (t.length !== 1) return !1;
672
+ const o = t[0];
673
+ return o.acceptsUVContext && !o.requiresChild ? !0 : o.uvTransformFunc && H(o) ? Be(o) : !1;
674
+ }, Ye = (a, t, o) => {
675
+ const l = [];
676
+ let f = a;
677
+ for (; f; ) {
678
+ const v = h.nodes.get(f);
679
+ if (!v) break;
680
+ if (l.length >= 2)
681
+ return console.log(`[Shaders Perf] UV chain depth limit reached (${l.length}), falling back to RTT`), j(a, t, o, !0);
682
+ if (l.push(v), o && o.add(v.id), v.acceptsUVContext && !v.requiresChild) break;
683
+ const c = W(f);
684
+ if (c.length !== 1) break;
685
+ f = c[0].id;
686
+ }
687
+ if (l.length === 0) return U(0, 0, 0, 0);
688
+ const b = l[l.length - 1];
689
+ let g = ke;
690
+ for (let v = 0; v < l.length; v++) {
691
+ const c = l[v];
692
+ c.uvTransformFunc && (g = c.uvTransformFunc({
693
+ uv: g,
694
+ uniforms: c.uniforms,
695
+ viewportSize: Pe
696
+ })), c.transformUniforms && c.metadata.transform && de(c.metadata.transform) && (g = _e(g, c.transformUniforms.offsetX, c.transformUniforms.offsetY, c.transformUniforms.rotation, c.transformUniforms.scale, c.transformUniforms.anchorX, c.transformUniforms.anchorY, c.transformUniforms.aspectRatio), c.transformUniforms.edges && (g = ve(g, c.transformUniforms.edges)), c.transformRTTActive = !0);
697
+ }
698
+ for (let v = 0; v < l.length - 1; v++) {
699
+ const c = l[v];
700
+ if (!c.requiresChild) continue;
701
+ const F = (L) => {
702
+ c.cleanupCallbacks.push(L);
703
+ }, O = (L) => {
704
+ c.beforeRenderCallbacks.push(L);
705
+ }, T = (L) => {
706
+ c.afterRenderCallbacks.push(L);
707
+ }, M = (L) => {
708
+ c.resizeCallbacks.push(L);
709
+ };
710
+ c.cleanupCallbacks.forEach((L) => {
711
+ try {
712
+ L();
713
+ } catch (oe) {
714
+ console.error("Error in cleanup callback:", oe);
715
+ }
716
+ }), c.cleanupCallbacks = [], c.beforeRenderCallbacks = [], c.afterRenderCallbacks = [], c.resizeCallbacks = [], c.fragmentNodeFunc({
717
+ uniforms: c.uniforms ?? {},
718
+ childNode: void 0,
719
+ uvContext: void 0,
720
+ onCleanup: F,
721
+ onBeforeRender: O,
722
+ onAfterRender: T,
723
+ onResize: M,
724
+ canvas: e,
725
+ dimensions: {
726
+ width: $,
727
+ height: z
728
+ },
729
+ renderer: n
730
+ });
731
+ }
732
+ const w = (v) => {
733
+ b.cleanupCallbacks.push(v);
734
+ }, x = (v) => {
735
+ b.beforeRenderCallbacks.push(v);
736
+ }, D = (v) => {
737
+ b.afterRenderCallbacks.push(v);
738
+ }, y = (v) => {
739
+ b.resizeCallbacks.push(v);
740
+ };
741
+ b.cleanupCallbacks.forEach((v) => {
583
742
  try {
584
- Me = new Set(re), re.clear();
585
- const c = /* @__PURE__ */ new Set();
586
- Ce.clear(), m.nodes.forEach((l, a) => {
587
- (l.requiresRTT || l.transformRTTActive) && Ce.add(a);
743
+ v();
744
+ } catch (c) {
745
+ console.error("Error in cleanup callback:", c);
746
+ }
747
+ }), b.cleanupCallbacks = [], b.beforeRenderCallbacks = [], b.afterRenderCallbacks = [], b.resizeCallbacks = [];
748
+ const m = b.fragmentNodeFunc({
749
+ uniforms: b.uniforms ?? {},
750
+ childNode: void 0,
751
+ uvContext: g,
752
+ onCleanup: w,
753
+ onBeforeRender: x,
754
+ onAfterRender: D,
755
+ onResize: y,
756
+ canvas: e,
757
+ dimensions: {
758
+ width: $,
759
+ height: z
760
+ },
761
+ renderer: n
762
+ });
763
+ for (const v of l) if (v.uniforms.edges?.uniform) return we(g, m, null, v.uniforms.edges.uniform);
764
+ return m;
765
+ }, He = (a, t, o) => {
766
+ if (a.length === 0) return U(0, 0, 0, 0);
767
+ const l = zn(a);
768
+ let f;
769
+ if (l) f = j(l.id, t, o);
770
+ else return U(0, 0, 0, 0);
771
+ const b = Ie(f);
772
+ let g = ke;
773
+ for (let D = a.length - 1; D >= 0; D--) {
774
+ const y = a[D];
775
+ y.uvTransformFunc && (g = y.uvTransformFunc({
776
+ uv: g,
777
+ uniforms: y.uniforms,
778
+ viewportSize: Pe
779
+ }), y.uniforms.edges?.uniform && (g = ve(g, y.uniforms.edges.uniform))), o && o.add(y.id);
780
+ }
781
+ const w = b.sample(g), x = a[0];
782
+ return x.uniforms.edges?.uniform ? we(g, w, b, x.uniforms.edges.uniform) : w;
783
+ }, tn = (a, t) => {
784
+ const o = [];
785
+ for (let l = t; l < a.length; l++) {
786
+ const f = a[l];
787
+ if (!H(f) || W(f.id).length > 0) break;
788
+ o.push(f);
789
+ }
790
+ return o;
791
+ }, on = (a, t, o) => {
792
+ if (a.length === 0) return t;
793
+ const l = Ie(t);
794
+ let f = ke;
795
+ for (let w = a.length - 1; w >= 0; w--) {
796
+ const x = a[w];
797
+ x.uvTransformFunc && (f = x.uvTransformFunc({
798
+ uv: f,
799
+ uniforms: x.uniforms,
800
+ viewportSize: Pe
801
+ }), x.uniforms.edges?.uniform && (f = ve(f, x.uniforms.edges.uniform))), o && o.add(x.id);
802
+ }
803
+ const b = l.sample(f), g = a[a.length - 1];
804
+ return g.uniforms.edges?.uniform ? we(f, b, l, g.uniforms.edges.uniform) : b;
805
+ }, an = (a) => {
806
+ const t = [], o = [];
807
+ let l = !1;
808
+ for (let g = 0; g < a.length; g++) {
809
+ const w = a[g], x = W(w.id).length > 0;
810
+ w.acceptsUVContext && !w.requiresChild && t.push(g), H(w) && !x && (o.push(g), t.length > 0 && (l = !0));
811
+ }
812
+ if (t.length === 0 || o.length === 0 || !l) return !1;
813
+ const f = Math.min(...t), b = Math.max(...o);
814
+ for (let g = f + 1; g < b; g++) {
815
+ const w = a[g];
816
+ if (w.requiresRTT && !H(w) && !(w.acceptsUVContext && !w.requiresChild)) return !1;
817
+ }
818
+ return o.length > 2 ? (console.log(`[Shaders Perf] Too many distortions in sibling group (${o.length}), skipping UV propagation`), !1) : !0;
819
+ }, sn = (a, t, o) => {
820
+ const l = performance.now();
821
+ console.log(`[Shaders Perf] composeSiblingsWithUVContext (${a.length} children)`);
822
+ const f = performance.now(), b = [], g = [];
823
+ a.forEach((y, m) => {
824
+ const v = W(y.id).length > 0;
825
+ H(y) && !v ? g.push({
826
+ node: y,
827
+ index: m
828
+ }) : y.acceptsUVContext && !y.requiresChild && !v && b.push({
829
+ node: y,
830
+ index: m
831
+ });
832
+ }), console.log(`[Shaders Perf] Categorization: ${(performance.now() - f).toFixed(2)}ms (${b.length} gens, ${g.length} dists)`);
833
+ const w = performance.now();
834
+ for (const y of g) {
835
+ const m = y.node;
836
+ m.cleanupCallbacks.forEach((T) => {
837
+ try {
838
+ T();
839
+ } catch (M) {
840
+ console.error("Cleanup error:", M);
841
+ }
842
+ }), m.cleanupCallbacks = [], m.beforeRenderCallbacks = [], m.afterRenderCallbacks = [], m.resizeCallbacks = [];
843
+ const v = (T) => m.cleanupCallbacks.push(T), c = (T) => m.beforeRenderCallbacks.push(T), F = (T) => m.afterRenderCallbacks.push(T), O = (T) => m.resizeCallbacks.push(T);
844
+ m.fragmentNodeFunc({
845
+ uniforms: m.uniforms ?? {},
846
+ childNode: void 0,
847
+ uvContext: void 0,
848
+ onCleanup: v,
849
+ onBeforeRender: c,
850
+ onAfterRender: F,
851
+ onResize: O,
852
+ canvas: e,
853
+ dimensions: {
854
+ width: $,
855
+ height: z
856
+ },
857
+ renderer: n
858
+ }), o && o.add(m.id);
859
+ }
860
+ console.log(`[Shaders Perf] Callback registration: ${(performance.now() - w).toFixed(2)}ms (${g.length} distortions)`);
861
+ const x = performance.now();
862
+ let D;
863
+ for (let y = 0; y < a.length; y++) {
864
+ const m = a[y];
865
+ if (m.metadata.visible === !1) continue;
866
+ const v = m.metadata.opacity ?? 1;
867
+ m.opacityUniform.value = v, o && o.add(m.id);
868
+ const c = W(m.id).length > 0;
869
+ let F;
870
+ const O = b.find((T) => T.index === y);
871
+ if (O) {
872
+ const T = g.filter((B) => B.index > O.index).sort((B, V) => B.index - V.index).map((B) => B.node);
873
+ let M = ke;
874
+ for (let B = T.length - 1; B >= 0; B--) {
875
+ const V = T[B];
876
+ V.uvTransformFunc && (M = V.uvTransformFunc({
877
+ uv: M,
878
+ uniforms: V.uniforms,
879
+ viewportSize: Pe
880
+ })), V.transformUniforms && V.metadata.transform && de(V.metadata.transform) && (M = _e(M, V.transformUniforms.offsetX, V.transformUniforms.offsetY, V.transformUniforms.rotation, V.transformUniforms.scale, V.transformUniforms.anchorX, V.transformUniforms.anchorY, V.transformUniforms.aspectRatio), V.transformUniforms.edges && (M = ve(M, V.transformUniforms.edges)), V.transformRTTActive = !0), V.uniforms.edges?.uniform && (M = ve(M, V.uniforms.edges.uniform));
881
+ }
882
+ O.node.transformUniforms && O.node.metadata.transform && de(O.node.metadata.transform) && (M = _e(M, O.node.transformUniforms.offsetX, O.node.transformUniforms.offsetY, O.node.transformUniforms.rotation, O.node.transformUniforms.scale, O.node.transformUniforms.anchorX, O.node.transformUniforms.anchorY, O.node.transformUniforms.aspectRatio), O.node.transformUniforms.edges && (M = ve(M, O.node.transformUniforms.edges)), O.node.transformRTTActive = !0), m.cleanupCallbacks.forEach((B) => {
883
+ try {
884
+ B();
885
+ } catch (V) {
886
+ console.error("Cleanup error:", V);
887
+ }
888
+ }), m.cleanupCallbacks = [], m.beforeRenderCallbacks = [], m.afterRenderCallbacks = [], m.resizeCallbacks = [];
889
+ const L = (B) => m.cleanupCallbacks.push(B), oe = (B) => m.beforeRenderCallbacks.push(B), le = (B) => m.afterRenderCallbacks.push(B), q = (B) => m.resizeCallbacks.push(B);
890
+ let _ = m.fragmentNodeFunc({
891
+ uniforms: m.uniforms ?? {},
892
+ childNode: void 0,
893
+ uvContext: M,
894
+ onCleanup: L,
895
+ onBeforeRender: oe,
896
+ onAfterRender: le,
897
+ onResize: q,
898
+ canvas: e,
899
+ dimensions: {
900
+ width: $,
901
+ height: z
902
+ },
903
+ renderer: n
588
904
  });
589
- const i = ve(m.rootId, /* @__PURE__ */ new Set(), c);
590
- if (i && f) {
591
- const l = !ln(Ge, c), a = f.fragmentNode !== i;
592
- if (l || ke || a) {
593
- Le();
905
+ if (T.length > 0) {
906
+ const B = T[0];
907
+ B.uniforms.edges?.uniform && (_ = we(M, _, null, B.uniforms.edges.uniform));
908
+ }
909
+ F = te(_, m, m.id, t);
910
+ } else {
911
+ if (g.find((T) => T.index === y)) continue;
912
+ if (c) if (Be(m)) F = Ye(m.id, t, o);
913
+ else if (H(m)) {
914
+ const T = Xe(m.id);
915
+ T.length > 1 ? F = He(T, t, o) : F = j(m.id, t, o);
916
+ } else F = j(m.id, t, o);
917
+ else {
918
+ m.cleanupCallbacks.forEach((q) => {
594
919
  try {
595
- f.dispose(), n.renderTarget && n.renderTarget.dispose();
596
- } catch {
920
+ q();
921
+ } catch (_) {
922
+ console.error("Cleanup error:", _);
597
923
  }
598
- const h = new He({ transparent: !0 });
599
- h.fragmentNode = i, h.needsUpdate = !0, s.material = h, f = h, ke = !1, Ge = c;
600
- }
924
+ }), m.cleanupCallbacks = [], m.beforeRenderCallbacks = [], m.afterRenderCallbacks = [], m.resizeCallbacks = [];
925
+ const T = (q) => m.cleanupCallbacks.push(q), M = (q) => m.beforeRenderCallbacks.push(q), L = (q) => m.afterRenderCallbacks.push(q), oe = (q) => m.resizeCallbacks.push(q);
926
+ let le = D;
927
+ m.requiresRTT && D !== void 0 && (le = Q(U(0, 0, 0, 0), D, "normal", 1)), F = te(se(m.fragmentNodeFunc({
928
+ uniforms: m.uniforms ?? {},
929
+ childNode: le,
930
+ onCleanup: T,
931
+ onBeforeRender: M,
932
+ onAfterRender: L,
933
+ onResize: oe,
934
+ canvas: e,
935
+ dimensions: {
936
+ width: $,
937
+ height: z
938
+ },
939
+ renderer: n
940
+ }), m), m, m.id, t);
601
941
  }
602
- } catch (c) {
603
- console.error("Error composing shader tree:", c);
604
- } finally {
605
- de = !1;
606
942
  }
607
- O && P().catch(console.warn);
608
- }
609
- }, ye = (c) => {
610
- const i = u.get(c);
611
- if (!i) return [];
612
- const l = [];
613
- for (const a of i) {
614
- const h = m.nodes.get(a);
615
- h && l.push(h);
943
+ m.requiresChild && m.metadata.blendMode === "normal" && !c ? D = Q(U(0, 0, 0, 0), F, "normal", m.opacityUniform) : D === void 0 ? D = Q(U(1, 1, 1, 0), F, m.metadata.blendMode, m.opacityUniform) : D = Q(D, F, m.metadata.blendMode, m.opacityUniform);
616
944
  }
617
- return l;
618
- }, un = (c) => {
619
- for (const [i, l] of m.nodes.entries()) if (l.metadata.id === c) return i;
620
- return null;
621
- }, ie = (c, i, l, a) => {
622
- if (!i.metadata.mask?.source) return c;
623
- const h = i.metadata.mask.source, T = un(h);
624
- if (!T) return c;
625
- if (a.has(T))
626
- return console.error("Uh oh, looks like you've got a circular dependency in your shader masks."), c;
627
- const w = new Set(a);
628
- return w.add(l), hr(c, ve(T, w), i.metadata.mask.type || "alpha");
629
- }, ae = (c, i) => {
630
- if (!i.metadata.transform || !i.transformUniforms || !_e(i.metadata.transform) && !i.transformRTTActive) return c;
631
- const l = cn(c), a = Tr(zn, i.transformUniforms.offsetX, i.transformUniforms.offsetY, i.transformUniforms.rotation, i.transformUniforms.scale, i.transformUniforms.anchorX, i.transformUniforms.anchorY, i.transformUniforms.aspectRatio);
632
- return Nn(a, l.sample(a), l, i.transformUniforms.edges);
633
- }, ve = (c, i = /* @__PURE__ */ new Set(), l) => {
634
- if (M === 0 || S === 0) return v(0, 0, 0, 0);
635
- const a = m.nodes.get(c);
636
- if (!a) return v(0, 0, 0, 0);
637
- const h = (D) => {
638
- a.cleanupCallbacks.push(D);
639
- }, T = (D) => {
640
- a.beforeRenderCallbacks.push(D);
641
- }, w = (D) => {
642
- a.afterRenderCallbacks.push(D);
643
- }, $ = (D) => {
644
- a.resizeCallbacks.push(D);
645
- }, G = ye(c);
646
- if (G.length === 0)
647
- return a.requiresRTT && !V ? v(0, 0, 0, 0) : (a.cleanupCallbacks.forEach((D) => {
945
+ return console.log(`[Shaders Perf] Node processing: ${(performance.now() - x).toFixed(2)}ms`), console.log(`[Shaders Perf] TOTAL composeSiblingsWithUVContext: ${(performance.now() - l).toFixed(2)}ms`), D ?? U(0, 0, 0, 0);
946
+ }, j = (a, t = /* @__PURE__ */ new Set(), o, l = !1) => {
947
+ if ($ === 0 || z === 0) return U(0, 0, 0, 0);
948
+ const f = h.nodes.get(a);
949
+ if (!f) return U(0, 0, 0, 0);
950
+ const b = (y) => {
951
+ f.cleanupCallbacks.push(y);
952
+ }, g = (y) => {
953
+ f.beforeRenderCallbacks.push(y);
954
+ }, w = (y) => {
955
+ f.afterRenderCallbacks.push(y);
956
+ }, x = (y) => {
957
+ f.resizeCallbacks.push(y);
958
+ }, D = W(a);
959
+ if (D.length === 0)
960
+ return f.requiresRTT && !ne ? U(0, 0, 0, 0) : (f.cleanupCallbacks.forEach((y) => {
648
961
  try {
649
- D();
650
- } catch (k) {
651
- console.error("Error in cleanup callback:", k);
962
+ y();
963
+ } catch (m) {
964
+ console.error("Error in cleanup callback:", m);
652
965
  }
653
- }), a.cleanupCallbacks = [], a.beforeRenderCallbacks = [], a.afterRenderCallbacks = [], a.resizeCallbacks = [], ie(ae(a.fragmentNodeFunc({
654
- uniforms: a.uniforms ?? {},
966
+ }), f.cleanupCallbacks = [], f.beforeRenderCallbacks = [], f.afterRenderCallbacks = [], f.resizeCallbacks = [], te(se(f.fragmentNodeFunc({
967
+ uniforms: f.uniforms ?? {},
655
968
  childNode: void 0,
656
- onCleanup: h,
657
- onBeforeRender: T,
969
+ onCleanup: b,
970
+ onBeforeRender: g,
658
971
  onAfterRender: w,
659
- onResize: $,
972
+ onResize: x,
660
973
  canvas: e,
661
974
  dimensions: {
662
- width: M,
663
- height: S
975
+ width: $,
976
+ height: z
664
977
  },
665
978
  renderer: n
666
- }), a), a, c, i));
979
+ }), f), f, a, t));
667
980
  {
668
- const D = [...G].sort((k, d) => k.metadata.renderOrder - d.metadata.renderOrder);
669
- if (a.parentId === null) {
670
- let k;
671
- for (const d of D) {
672
- let x;
673
- if (d.metadata.opacity === void 0 ? (x = 1, d.opacityUniform.value = x) : (x = d.metadata.opacity, d.opacityUniform.value = x), d.metadata.visible === !1) continue;
674
- l && l.add(d.id);
675
- const K = ye(d.id).length > 0;
676
- let z;
677
- if (K) z = ve(d.id, i, l);
678
- else if (d.requiresRTT && !V) z = v(0, 0, 0, 0);
981
+ const y = [...D].sort((m, v) => m.metadata.renderOrder - v.metadata.renderOrder);
982
+ if (f.parentId === null) {
983
+ if (!l && an(y)) return te(se(sn(y, t, o), f), f, a, t);
984
+ let m;
985
+ for (let v = 0; v < y.length; v++) {
986
+ const c = y[v];
987
+ let F;
988
+ if (c.metadata.opacity === void 0 ? (F = 1, c.opacityUniform.value = F) : (F = c.metadata.opacity, c.opacityUniform.value = F), c.metadata.visible === !1) continue;
989
+ o && o.add(c.id);
990
+ const O = W(c.id).length > 0;
991
+ let T;
992
+ if (O) if (l) T = j(c.id, t, o, !0);
993
+ else if (Be(c)) T = Ye(c.id, t, o);
994
+ else if (H(c)) {
995
+ const M = Xe(c.id);
996
+ M.length > 1 ? T = He(M, t, o) : T = j(c.id, t, o);
997
+ } else T = j(c.id, t, o);
679
998
  else {
680
- const ze = (U) => {
681
- d.cleanupCallbacks.push(U);
682
- }, $e = (U) => {
683
- d.beforeRenderCallbacks.push(U);
684
- }, Ue = (U) => {
685
- d.afterRenderCallbacks.push(U);
686
- }, Ee = (U) => {
687
- d.resizeCallbacks.push(U);
688
- };
689
- let se = k;
690
- d.requiresRTT && k !== void 0 && (se = X(v(0, 0, 0, 0), k, "normal", 1)), d.cleanupCallbacks.forEach((U) => {
691
- try {
692
- U();
693
- } catch (kn) {
694
- console.error("Error in cleanup callback:", kn);
999
+ if (H(c) && c.requiresChild && m !== void 0) {
1000
+ const M = tn(y, v);
1001
+ if (M.length > 1) {
1002
+ T = on(M, m, o), v += M.length - 1, m = T;
1003
+ continue;
695
1004
  }
696
- }), d.cleanupCallbacks = [], d.beforeRenderCallbacks = [], d.afterRenderCallbacks = [], d.resizeCallbacks = [], z = ie(ae(d.fragmentNodeFunc({
697
- uniforms: d.uniforms ?? {},
698
- childNode: se,
699
- onCleanup: ze,
700
- onBeforeRender: $e,
701
- onAfterRender: Ue,
702
- onResize: Ee,
703
- canvas: e,
704
- dimensions: {
705
- width: M,
706
- height: S
707
- },
708
- renderer: n
709
- }), d), d, d.id, i);
1005
+ }
1006
+ if (c.requiresRTT && !ne) T = U(0, 0, 0, 0);
1007
+ else {
1008
+ const M = (_) => {
1009
+ c.cleanupCallbacks.push(_);
1010
+ }, L = (_) => {
1011
+ c.beforeRenderCallbacks.push(_);
1012
+ }, oe = (_) => {
1013
+ c.afterRenderCallbacks.push(_);
1014
+ }, le = (_) => {
1015
+ c.resizeCallbacks.push(_);
1016
+ };
1017
+ let q = m;
1018
+ c.requiresRTT && m !== void 0 && (q = Q(U(0, 0, 0, 0), m, "normal", 1)), c.cleanupCallbacks.forEach((_) => {
1019
+ try {
1020
+ _();
1021
+ } catch (B) {
1022
+ console.error("Error in cleanup callback:", B);
1023
+ }
1024
+ }), c.cleanupCallbacks = [], c.beforeRenderCallbacks = [], c.afterRenderCallbacks = [], c.resizeCallbacks = [], T = te(se(c.fragmentNodeFunc({
1025
+ uniforms: c.uniforms ?? {},
1026
+ childNode: q,
1027
+ onCleanup: M,
1028
+ onBeforeRender: L,
1029
+ onAfterRender: oe,
1030
+ onResize: le,
1031
+ canvas: e,
1032
+ dimensions: {
1033
+ width: $,
1034
+ height: z
1035
+ },
1036
+ renderer: n
1037
+ }), c), c, c.id, t);
1038
+ }
710
1039
  }
711
- d.requiresChild && d.metadata.blendMode === "normal" && !K ? k = X(v(0, 0, 0, 0), z, "normal", d.opacityUniform) : k === void 0 ? a.requiresRTT || x !== 1 ? k = X(v(1, 1, 1, 0), z, d.metadata.blendMode, d.opacityUniform) : k = z : k = X(k, z, d.metadata.blendMode, d.opacityUniform);
1040
+ c.requiresChild && c.metadata.blendMode === "normal" && !O ? m = Q(U(0, 0, 0, 0), T, "normal", c.opacityUniform) : m === void 0 ? f.requiresRTT || F !== 1 ? m = Q(U(1, 1, 1, 0), T, c.metadata.blendMode, c.opacityUniform) : m = T : m = Q(m, T, c.metadata.blendMode, c.opacityUniform);
712
1041
  }
713
- return a.requiresRTT && !V ? v(0, 0, 0, 0) : (a.cleanupCallbacks.forEach((d) => {
1042
+ return f.requiresRTT && !ne ? U(0, 0, 0, 0) : (f.cleanupCallbacks.forEach((v) => {
714
1043
  try {
715
- d();
716
- } catch (x) {
717
- console.error("Error in cleanup callback:", x);
1044
+ v();
1045
+ } catch (c) {
1046
+ console.error("Error in cleanup callback:", c);
718
1047
  }
719
- }), a.cleanupCallbacks = [], a.beforeRenderCallbacks = [], a.afterRenderCallbacks = [], a.resizeCallbacks = [], ie(ae(a.fragmentNodeFunc({
720
- uniforms: a.uniforms ?? {},
721
- childNode: k,
722
- onCleanup: h,
723
- onBeforeRender: T,
1048
+ }), f.cleanupCallbacks = [], f.beforeRenderCallbacks = [], f.afterRenderCallbacks = [], f.resizeCallbacks = [], te(se(f.fragmentNodeFunc({
1049
+ uniforms: f.uniforms ?? {},
1050
+ childNode: m,
1051
+ onCleanup: b,
1052
+ onBeforeRender: g,
724
1053
  onAfterRender: w,
725
- onResize: $,
1054
+ onResize: x,
726
1055
  canvas: e,
727
1056
  dimensions: {
728
- width: M,
729
- height: S
1057
+ width: $,
1058
+ height: z
730
1059
  },
731
1060
  renderer: n
732
- }), a), a, c, i));
1061
+ }), f), f, a, t));
733
1062
  } else {
734
- let k;
735
- for (const d of D) {
736
- let x;
737
- if (d.metadata.opacity === void 0 ? (x = 1, d.opacityUniform.value = x) : (x = d.metadata.opacity, d.opacityUniform.value = x), d.metadata.visible === !1) continue;
738
- l && l.add(d.id);
739
- const K = ye(d.id).length > 0;
740
- let z;
741
- if (K) z = ve(d.id, i, l);
742
- else if (d.requiresRTT && !V) z = v(0, 0, 0, 0);
1063
+ if (!l && an(y)) {
1064
+ const v = sn(y, t, o);
1065
+ return te(se(f.fragmentNodeFunc({
1066
+ uniforms: f.uniforms ?? {},
1067
+ childNode: v,
1068
+ onCleanup: b,
1069
+ onBeforeRender: g,
1070
+ onAfterRender: w,
1071
+ onResize: x,
1072
+ canvas: e,
1073
+ dimensions: {
1074
+ width: $,
1075
+ height: z
1076
+ },
1077
+ renderer: n
1078
+ }), f), f, a, t);
1079
+ }
1080
+ let m;
1081
+ for (let v = 0; v < y.length; v++) {
1082
+ const c = y[v];
1083
+ let F;
1084
+ if (c.metadata.opacity === void 0 ? (F = 1, c.opacityUniform.value = F) : (F = c.metadata.opacity, c.opacityUniform.value = F), c.metadata.visible === !1) continue;
1085
+ o && o.add(c.id);
1086
+ const O = W(c.id).length > 0;
1087
+ let T;
1088
+ if (O) if (l) T = j(c.id, t, o, !0);
1089
+ else if (Be(c)) T = Ye(c.id, t, o);
1090
+ else if (H(c)) {
1091
+ const M = Xe(c.id);
1092
+ M.length > 1 ? T = He(M, t, o) : T = j(c.id, t, o);
1093
+ } else T = j(c.id, t, o);
743
1094
  else {
744
- const ze = (U) => {
745
- d.cleanupCallbacks.push(U);
746
- }, $e = (U) => {
747
- d.beforeRenderCallbacks.push(U);
748
- }, Ue = (U) => {
749
- d.afterRenderCallbacks.push(U);
750
- }, Ee = (U) => {
751
- d.resizeCallbacks.push(U);
752
- };
753
- let se = k;
754
- d.requiresRTT && k !== void 0 && (se = X(v(0, 0, 0, 0), k, "normal", 1)), d.cleanupCallbacks = [], d.beforeRenderCallbacks = [], d.afterRenderCallbacks = [], d.resizeCallbacks = [], z = ie(ae(d.fragmentNodeFunc({
755
- uniforms: d.uniforms ?? {},
756
- childNode: se,
757
- onCleanup: ze,
758
- onBeforeRender: $e,
759
- onAfterRender: Ue,
760
- onResize: Ee,
761
- canvas: e,
762
- dimensions: {
763
- width: M,
764
- height: S
765
- },
766
- renderer: n
767
- }), d), d, d.id, i);
1095
+ if (H(c) && c.requiresChild && m !== void 0) {
1096
+ const M = tn(y, v);
1097
+ if (M.length > 1) {
1098
+ T = on(M, m, o), v += M.length - 1, m = T;
1099
+ continue;
1100
+ }
1101
+ }
1102
+ if (c.requiresRTT && !ne) T = U(0, 0, 0, 0);
1103
+ else {
1104
+ const M = (_) => {
1105
+ c.cleanupCallbacks.push(_);
1106
+ }, L = (_) => {
1107
+ c.beforeRenderCallbacks.push(_);
1108
+ }, oe = (_) => {
1109
+ c.afterRenderCallbacks.push(_);
1110
+ }, le = (_) => {
1111
+ c.resizeCallbacks.push(_);
1112
+ };
1113
+ let q = m;
1114
+ c.requiresRTT && m !== void 0 && (q = Q(U(0, 0, 0, 0), m, "normal", 1)), c.cleanupCallbacks = [], c.beforeRenderCallbacks = [], c.afterRenderCallbacks = [], c.resizeCallbacks = [], T = te(se(c.fragmentNodeFunc({
1115
+ uniforms: c.uniforms ?? {},
1116
+ childNode: q,
1117
+ onCleanup: M,
1118
+ onBeforeRender: L,
1119
+ onAfterRender: oe,
1120
+ onResize: le,
1121
+ canvas: e,
1122
+ dimensions: {
1123
+ width: $,
1124
+ height: z
1125
+ },
1126
+ renderer: n
1127
+ }), c), c, c.id, t);
1128
+ }
768
1129
  }
769
- d.requiresChild && d.metadata.blendMode === "normal" && !K ? k = X(v(0, 0, 0, 0), z, "normal", d.opacityUniform) : k === void 0 ? a.requiresRTT || x !== 1 ? k = X(v(1, 1, 1, 0), z, d.metadata.blendMode, d.opacityUniform) : k = z : k = X(k, z, d.metadata.blendMode, d.opacityUniform);
1130
+ c.requiresChild && c.metadata.blendMode === "normal" && !O ? m = Q(U(0, 0, 0, 0), T, "normal", c.opacityUniform) : m === void 0 ? f.requiresRTT || F !== 1 ? m = Q(U(1, 1, 1, 0), T, c.metadata.blendMode, c.opacityUniform) : m = T : m = Q(m, T, c.metadata.blendMode, c.opacityUniform);
770
1131
  }
771
- return a.requiresRTT && !V ? v(0, 0, 0, 0) : (a.cleanupCallbacks.forEach((d) => {
1132
+ return f.requiresRTT && !ne ? U(0, 0, 0, 0) : (f.cleanupCallbacks.forEach((v) => {
772
1133
  try {
773
- d();
774
- } catch (x) {
775
- console.error("Error in cleanup callback:", x);
1134
+ v();
1135
+ } catch (c) {
1136
+ console.error("Error in cleanup callback:", c);
776
1137
  }
777
- }), a.cleanupCallbacks = [], a.beforeRenderCallbacks = [], a.afterRenderCallbacks = [], a.resizeCallbacks = [], ie(ae(a.fragmentNodeFunc({
778
- uniforms: a.uniforms ?? {},
779
- childNode: k,
780
- onCleanup: h,
781
- onBeforeRender: T,
1138
+ }), f.cleanupCallbacks = [], f.beforeRenderCallbacks = [], f.afterRenderCallbacks = [], f.resizeCallbacks = [], te(se(f.fragmentNodeFunc({
1139
+ uniforms: f.uniforms ?? {},
1140
+ childNode: m,
1141
+ onCleanup: b,
1142
+ onBeforeRender: g,
782
1143
  onAfterRender: w,
783
- onResize: $,
1144
+ onResize: x,
784
1145
  canvas: e,
785
1146
  dimensions: {
786
- width: M,
787
- height: S
1147
+ width: $,
1148
+ height: z
788
1149
  },
789
1150
  renderer: n
790
- }), a), a, c, i));
1151
+ }), f), f, a, t));
791
1152
  }
792
1153
  }
793
- }, Ne = (c, i, l, a, h = {}, T) => {
794
- if (i === null) {
795
- const d = H.findIndex((x) => x.id === c);
796
- if (d !== -1) {
797
- H.splice(d, 1);
1154
+ }, ln = (a, t, o, l, f = {}, b) => {
1155
+ if (t === null) {
1156
+ const m = re.findIndex((v) => v.id === a);
1157
+ if (m !== -1) {
1158
+ re.splice(m, 1);
798
1159
  return;
799
1160
  }
800
- Ae(c);
1161
+ We(a);
801
1162
  return;
802
1163
  }
803
- if (!we) {
804
- const d = H.findIndex((x) => x.id === c);
805
- d !== -1 ? H[d] = {
806
- id: c,
807
- fragmentNodeFunc: i,
808
- parentId: l,
809
- metadata: a,
810
- uniforms: h,
811
- componentDefinition: T
812
- } : H.push({
813
- id: c,
814
- fragmentNodeFunc: i,
815
- parentId: l,
816
- metadata: a,
817
- uniforms: h,
818
- componentDefinition: T
1164
+ if (!qe) {
1165
+ const m = re.findIndex((v) => v.id === a);
1166
+ m !== -1 ? re[m] = {
1167
+ id: a,
1168
+ fragmentNodeFunc: t,
1169
+ parentId: o,
1170
+ metadata: l,
1171
+ uniforms: f,
1172
+ componentDefinition: b
1173
+ } : re.push({
1174
+ id: a,
1175
+ fragmentNodeFunc: t,
1176
+ parentId: o,
1177
+ metadata: l,
1178
+ uniforms: f,
1179
+ componentDefinition: b
819
1180
  });
820
1181
  return;
821
1182
  }
822
- let w = 0;
823
- if (l !== null) {
824
- const d = u.get(l);
825
- if (d && d.size > 0) {
826
- let x = 0;
827
- for (const K of d) {
828
- const z = m.nodes.get(K);
829
- z && z.metadata.renderOrder > x && (x = z.metadata.renderOrder);
1183
+ let g = 0;
1184
+ if (o !== null) {
1185
+ const m = d.get(o);
1186
+ if (m && m.size > 0) {
1187
+ let v = 0;
1188
+ for (const c of m) {
1189
+ const F = h.nodes.get(c);
1190
+ F && F.metadata.renderOrder > v && (v = F.metadata.renderOrder);
830
1191
  }
831
- w = x + 1;
1192
+ g = v + 1;
832
1193
  }
833
1194
  }
834
- const $ = E(a?.opacity !== void 0 ? a.opacity : 1);
835
- let G;
836
- if (a?.transform) {
837
- const d = M / Math.max(1, S);
838
- G = {
839
- offsetX: E(a.transform.offsetX),
840
- offsetY: E(a.transform.offsetY),
841
- rotation: E(a.transform.rotation),
842
- scale: E(a.transform.scale),
843
- anchorX: E(a.transform.anchorX),
844
- anchorY: E(a.transform.anchorY),
845
- edges: E(a.transform.edges === "stretch" ? 0 : a.transform.edges === "transparent" ? 1 : a.transform.edges === "mirror" ? 2 : 3),
846
- aspectRatio: E(d)
1195
+ const w = G(l?.opacity !== void 0 ? l.opacity : 1);
1196
+ let x;
1197
+ if (l?.transform) {
1198
+ const m = $ / Math.max(1, z);
1199
+ x = {
1200
+ offsetX: G(l.transform.offsetX),
1201
+ offsetY: G(l.transform.offsetY),
1202
+ rotation: G(l.transform.rotation),
1203
+ scale: G(l.transform.scale),
1204
+ anchorX: G(l.transform.anchorX),
1205
+ anchorY: G(l.transform.anchorY),
1206
+ edges: G(l.transform.edges === "stretch" ? 0 : l.transform.edges === "transparent" ? 1 : l.transform.edges === "mirror" ? 2 : 3),
1207
+ aspectRatio: G(m)
847
1208
  };
848
1209
  }
849
1210
  const D = {
850
- id: c,
851
- componentName: T?.name || "Unknown",
852
- fragmentNodeFunc: i,
853
- parentId: l,
854
- requiresRTT: T?.requiresRTT || !1,
855
- requiresChild: T?.requiresChild || !1,
856
- opacityUniform: $,
1211
+ id: a,
1212
+ componentName: b?.name || "Unknown",
1213
+ fragmentNodeFunc: t,
1214
+ parentId: o,
1215
+ requiresRTT: b?.requiresRTT || !1,
1216
+ requiresChild: b?.requiresChild || !1,
1217
+ opacityUniform: w,
857
1218
  metadata: {
858
- blendMode: a?.blendMode || "normal",
859
- opacity: a?.opacity,
860
- visible: a?.visible !== !1,
861
- id: a?.id,
862
- mask: a?.mask,
863
- renderOrder: a?.renderOrder !== void 0 ? a?.renderOrder : w,
864
- transform: a?.transform
1219
+ blendMode: l?.blendMode || "normal",
1220
+ opacity: l?.opacity,
1221
+ visible: l?.visible !== !1,
1222
+ id: l?.id,
1223
+ mask: l?.mask,
1224
+ renderOrder: l?.renderOrder !== void 0 ? l?.renderOrder : g,
1225
+ transform: l?.transform
865
1226
  },
866
- uniforms: h,
1227
+ uniforms: f,
867
1228
  cleanupCallbacks: [],
868
1229
  beforeRenderCallbacks: [],
869
1230
  afterRenderCallbacks: [],
870
1231
  resizeCallbacks: [],
871
- transformUniforms: G,
872
- transformRTTActive: !1
1232
+ transformUniforms: x,
1233
+ transformRTTActive: !1,
1234
+ uvTransformFunc: b?.uvTransformNode,
1235
+ acceptsUVContext: b?.acceptsUVContext || !1
873
1236
  };
874
- m.nodes.set(c, D), l === null && (m.rootId = c);
875
- const k = u.get(l) || /* @__PURE__ */ new Set();
876
- k.add(c), u.set(l, k), f && C && M > 0 && S > 0 ? (pe.includes(c) || pe.push(c), ee === null && (ee = requestAnimationFrame(() => {
877
- ee = null, pe = [], J();
878
- }))) : f && C && (te || (te = !0, requestAnimationFrame(() => {
879
- te = !1, M > 0 && S > 0 && J();
1237
+ h.nodes.set(a, D), o === null && (h.rootId = a);
1238
+ const y = d.get(o) || /* @__PURE__ */ new Set();
1239
+ y.add(a), d.set(o, y), p && E && $ > 0 && z > 0 ? (De.includes(a) || De.push(a), pe === null && (pe = requestAnimationFrame(() => {
1240
+ pe = null, De = [], me();
1241
+ }))) : p && E && (be || (be = !0, requestAnimationFrame(() => {
1242
+ be = !1, $ > 0 && z > 0 && me();
880
1243
  })));
881
- }, mn = (c, i, l) => {
882
- const a = m.nodes.get(c);
883
- if (!a || !a.uniforms) return;
884
- const h = a.uniforms[i];
885
- if (!(!h || !h.uniform)) {
886
- if (h.transform) {
887
- const { updateUniformValue: T } = (tn(), _n(Rr));
888
- T(h, l);
889
- } else h.uniform.value = l;
890
- O && P();
1244
+ }, Dn = (a, t, o) => {
1245
+ const l = h.nodes.get(a);
1246
+ if (!l || !l.uniforms) return;
1247
+ const f = l.uniforms[t];
1248
+ if (!(!f || !f.uniform)) {
1249
+ if (f.transform) {
1250
+ const { updateUniformValue: b } = (Sn(), Hn(qt));
1251
+ b(f, o);
1252
+ } else f.uniform.value = o;
1253
+ N && ee();
891
1254
  }
892
- }, fn = (c, i) => {
893
- const l = m.nodes.get(c);
894
- if (!l) return;
895
- let a = !1;
896
- i.blendMode !== void 0 && l.metadata.blendMode !== i.blendMode && (l.metadata.blendMode = i.blendMode, a = !0), i.opacity !== void 0 && l.metadata.opacity !== i.opacity && (l.metadata.opacity = i.opacity, l.opacityUniform.value = i.opacity), i.renderOrder !== void 0 && l.metadata.renderOrder !== i.renderOrder && (l.metadata.renderOrder = i.renderOrder, a = !0);
897
- const h = i.visible !== !1;
898
- if (l.metadata.visible !== h && (l.metadata.visible = h, a = !0), i.id !== void 0 && l.metadata.id !== i.id && (l.metadata.id = i.id, a = !0), i.mask !== void 0 && (l.metadata.mask?.source !== i.mask?.source || l.metadata.mask?.type !== i.mask?.type) && (l.metadata.mask = i.mask, a = !0), i.transform !== void 0) {
899
- const T = l.metadata.transform ? _e(l.metadata.transform) : !1, w = _e(i.transform);
900
- if (l.metadata.transform = i.transform, !l.transformUniforms && i.transform) {
901
- const $ = M / Math.max(1, S);
902
- l.transformUniforms = {
903
- offsetX: E(i.transform.offsetX),
904
- offsetY: E(i.transform.offsetY),
905
- rotation: E(i.transform.rotation),
906
- scale: E(i.transform.scale),
907
- anchorX: E(i.transform.anchorX),
908
- anchorY: E(i.transform.anchorY),
909
- edges: E(i.transform.edges === "stretch" ? 0 : i.transform.edges === "transparent" ? 1 : i.transform.edges === "mirror" ? 2 : 3),
910
- aspectRatio: E($)
1255
+ }, Fn = (a, t) => {
1256
+ const o = h.nodes.get(a);
1257
+ if (!o) return;
1258
+ let l = !1;
1259
+ t.blendMode !== void 0 && o.metadata.blendMode !== t.blendMode && (o.metadata.blendMode = t.blendMode, l = !0), t.opacity !== void 0 && o.metadata.opacity !== t.opacity && (o.metadata.opacity = t.opacity, o.opacityUniform.value = t.opacity), t.renderOrder !== void 0 && o.metadata.renderOrder !== t.renderOrder && (o.metadata.renderOrder = t.renderOrder, l = !0);
1260
+ const f = t.visible !== !1;
1261
+ if (o.metadata.visible !== f && (o.metadata.visible = f, l = !0), t.id !== void 0 && o.metadata.id !== t.id && (o.metadata.id = t.id, l = !0), t.mask !== void 0 && (o.metadata.mask?.source !== t.mask?.source || o.metadata.mask?.type !== t.mask?.type) && (o.metadata.mask = t.mask, l = !0), t.transform !== void 0) {
1262
+ const b = o.metadata.transform ? de(o.metadata.transform) : !1, g = de(t.transform);
1263
+ if (o.metadata.transform = t.transform, !o.transformUniforms && t.transform) {
1264
+ const w = $ / Math.max(1, z);
1265
+ o.transformUniforms = {
1266
+ offsetX: G(t.transform.offsetX),
1267
+ offsetY: G(t.transform.offsetY),
1268
+ rotation: G(t.transform.rotation),
1269
+ scale: G(t.transform.scale),
1270
+ anchorX: G(t.transform.anchorX),
1271
+ anchorY: G(t.transform.anchorY),
1272
+ edges: G(t.transform.edges === "stretch" ? 0 : t.transform.edges === "transparent" ? 1 : t.transform.edges === "mirror" ? 2 : 3),
1273
+ aspectRatio: G(w)
911
1274
  };
912
- } else l.transformUniforms && (l.transformUniforms.offsetX.value = i.transform.offsetX, l.transformUniforms.offsetY.value = i.transform.offsetY, l.transformUniforms.rotation.value = i.transform.rotation, l.transformUniforms.scale.value = i.transform.scale, l.transformUniforms.anchorX.value = i.transform.anchorX, l.transformUniforms.anchorY.value = i.transform.anchorY, l.transformUniforms.edges.value = i.transform.edges === "stretch" ? 0 : i.transform.edges === "transparent" ? 1 : i.transform.edges === "mirror" ? 2 : 3);
913
- w && !l.transformRTTActive && (l.transformRTTActive = !0, a = !0), !T && w && !l.transformRTTActive && (a = !0);
1275
+ } else o.transformUniforms && (o.transformUniforms.offsetX.value = t.transform.offsetX, o.transformUniforms.offsetY.value = t.transform.offsetY, o.transformUniforms.rotation.value = t.transform.rotation, o.transformUniforms.scale.value = t.transform.scale, o.transformUniforms.anchorX.value = t.transform.anchorX, o.transformUniforms.anchorY.value = t.transform.anchorY, o.transformUniforms.edges.value = t.transform.edges === "stretch" ? 0 : t.transform.edges === "transparent" ? 1 : t.transform.edges === "mirror" ? 2 : 3);
1276
+ g && !o.transformRTTActive && (o.transformRTTActive = !0, l = !0), !b && g && !o.transformRTTActive && (l = !0);
914
1277
  }
915
- a && f && C ? (ge.includes(c) || ge.push(c), ne === null && (ne = requestAnimationFrame(() => {
916
- ne = null, ge = [], J();
917
- }))) : O && P();
918
- }, Ae = (c) => {
919
- if (!m.nodes.has(c)) return;
920
- const i = m.nodes.get(c);
921
- if (i && i.cleanupCallbacks.length > 0) for (const a of i.cleanupCallbacks) try {
922
- a();
923
- } catch (h) {
924
- console.error(`Error executing cleanup callback for node ${c}:`, h);
1278
+ l && p && E ? (Fe.includes(a) || Fe.push(a), ge === null && (ge = requestAnimationFrame(() => {
1279
+ ge = null, Fe = [], me();
1280
+ }))) : N && ee();
1281
+ }, We = (a) => {
1282
+ if (!h.nodes.has(a)) return;
1283
+ const t = h.nodes.get(a);
1284
+ if (t && t.cleanupCallbacks.length > 0) for (const l of t.cleanupCallbacks) try {
1285
+ l();
1286
+ } catch (f) {
1287
+ console.error(`Error executing cleanup callback for node ${a}:`, f);
925
1288
  }
926
- const l = ye(c);
927
- for (const a of l) Ae(a.id);
928
- if (m.rootId === c && (m.rootId = null), i) {
929
- const a = u.get(i.parentId);
930
- a && (a.delete(c), a.size === 0 && u.delete(i.parentId));
1289
+ const o = W(a);
1290
+ for (const l of o) We(l.id);
1291
+ if (h.rootId === a && (h.rootId = null), t) {
1292
+ const l = d.get(t.parentId);
1293
+ l && (l.delete(a), l.size === 0 && d.delete(t.parentId));
931
1294
  }
932
- m.nodes.delete(c), f && C && J();
933
- }, dn = (c) => {
934
- const i = {
935
- deltaTime: c,
1295
+ h.nodes.delete(a), p && E && me();
1296
+ }, En = (a) => {
1297
+ const t = {
1298
+ deltaTime: a,
936
1299
  pointer: {
937
- x: me,
938
- y: fe
1300
+ x: Me,
1301
+ y: Ae
939
1302
  },
940
- pointerActive: j,
1303
+ pointerActive: fe,
941
1304
  dimensions: {
942
- width: M,
943
- height: S
1305
+ width: $,
1306
+ height: z
944
1307
  }
945
1308
  };
946
- for (const l of m.nodes.values()) if (l.beforeRenderCallbacks.length > 0) for (const a of l.beforeRenderCallbacks) try {
947
- a(i);
948
- } catch (h) {
949
- console.error(`Error executing before render callback for node ${l.id}:`, h);
1309
+ for (const o of h.nodes.values()) if (o.beforeRenderCallbacks.length > 0) for (const l of o.beforeRenderCallbacks) try {
1310
+ l(t);
1311
+ } catch (f) {
1312
+ console.error(`Error executing before render callback for node ${o.id}:`, f);
950
1313
  }
951
- }, hn = (c) => {
952
- const i = {
953
- deltaTime: c,
1314
+ }, On = (a) => {
1315
+ const t = {
1316
+ deltaTime: a,
954
1317
  pointer: {
955
- x: me,
956
- y: fe
1318
+ x: Me,
1319
+ y: Ae
957
1320
  },
958
- pointerActive: j,
1321
+ pointerActive: fe,
959
1322
  dimensions: {
960
- width: M,
961
- height: S
1323
+ width: $,
1324
+ height: z
962
1325
  }
963
1326
  };
964
- for (const l of m.nodes.values()) if (l.afterRenderCallbacks.length > 0) for (const a of l.afterRenderCallbacks) try {
965
- a(i);
966
- } catch (h) {
967
- console.error(`Error executing after render callback for node ${l.id}:`, h);
1327
+ for (const o of h.nodes.values()) if (o.afterRenderCallbacks.length > 0) for (const l of o.afterRenderCallbacks) try {
1328
+ l(t);
1329
+ } catch (f) {
1330
+ console.error(`Error executing after render callback for node ${o.id}:`, f);
968
1331
  }
969
- }, P = async () => {
970
- if (!on()) return;
971
- const c = Q ? performance.now() : 0, i = c || performance.now(), l = Re > 0 ? (i - Re) / 1e3 : 0.016, a = Math.min(l, 0.1);
972
- Re = i, Q && performance.mark("shader-cpu-start"), dn(a);
1332
+ }, ee = async () => {
1333
+ if (!Un()) return;
1334
+ const a = ue ? performance.now() : 0, t = a || performance.now(), o = Le > 0 ? (t - Le) / 1e3 : 0.016, l = Math.min(o, 0.1);
1335
+ Le = t, ue && performance.mark("shader-cpu-start"), En(l);
973
1336
  try {
974
- if (de) return;
975
- if (Q && performance.mark("shader-gpu-start"), n.render(t, r), hn(a), Q) {
976
- if (performance.mark("shader-gpu-end"), n instanceof Oe) try {
977
- const h = n.backend;
978
- if (h && h.get && h.get(n)) {
979
- const T = h.get(n);
980
- if (T?.timestampQuery) {
981
- const w = T.timestampQuery.getResult();
982
- w != null && W.recordGpuTime(w / 1e6);
1337
+ if ($e) return;
1338
+ ue && performance.mark("shader-gpu-start");
1339
+ const f = performance.now();
1340
+ n.render(r, i);
1341
+ const b = performance.now() - f;
1342
+ if (b > 20 && console.log(`[Shaders Perf] renderer.render(): ${b.toFixed(2)}ms`), b > 100 && console.warn(`[Shaders Perf] ⚠️ SLOW RENDER! Likely GPU shader compilation: ${b.toFixed(0)}ms`), On(l), ue) {
1343
+ if (performance.mark("shader-gpu-end"), n instanceof Je) try {
1344
+ const g = n.backend;
1345
+ if (g && g.get && g.get(n)) {
1346
+ const w = g.get(n);
1347
+ if (w?.timestampQuery) {
1348
+ const x = w.timestampQuery.getResult();
1349
+ x != null && ie.recordGpuTime(x / 1e6);
983
1350
  }
984
1351
  }
985
1352
  } catch {
986
1353
  }
987
1354
  try {
988
1355
  performance.measure("shader-gpu-time", "shader-gpu-start", "shader-gpu-end");
989
- const h = performance.getEntriesByName("shader-gpu-time")[0];
990
- h && W.recordGpuTime(h.duration), performance.clearMarks("shader-gpu-start"), performance.clearMarks("shader-gpu-end"), performance.clearMeasures("shader-gpu-time");
1356
+ const g = performance.getEntriesByName("shader-gpu-time")[0];
1357
+ g && ie.recordGpuTime(g.duration), performance.clearMarks("shader-gpu-start"), performance.clearMarks("shader-gpu-end"), performance.clearMeasures("shader-gpu-time");
991
1358
  } catch {
992
1359
  }
993
1360
  }
994
- if (Q) {
1361
+ if (ue) {
995
1362
  performance.mark("shader-cpu-end");
996
1363
  try {
997
1364
  performance.measure("shader-cpu-time", "shader-cpu-start", "shader-cpu-end");
998
- const T = performance.getEntriesByName("shader-cpu-time")[0];
999
- T && W.recordCpuTime(T.duration), performance.clearMarks("shader-cpu-start"), performance.clearMarks("shader-cpu-end"), performance.clearMeasures("shader-cpu-time");
1365
+ const w = performance.getEntriesByName("shader-cpu-time")[0];
1366
+ w && ie.recordCpuTime(w.duration), performance.clearMarks("shader-cpu-start"), performance.clearMarks("shader-cpu-end"), performance.clearMeasures("shader-cpu-time");
1000
1367
  } catch {
1001
1368
  }
1002
- const h = performance.now() - c;
1003
- W.recordFrame(h);
1369
+ const g = performance.now() - a;
1370
+ ie.recordFrame(g);
1004
1371
  }
1005
- } catch (h) {
1006
- console.error("Render frame error:", h);
1372
+ } catch (f) {
1373
+ console.error("Render frame error:", f);
1007
1374
  }
1008
- }, pn = () => {
1009
- const c = Math.max(0, m.nodes.size - 1), i = Ce.size;
1010
- W.updateNodeCounts(c, i);
1011
- }, gn = () => {
1012
- pn();
1013
- const c = n?.info;
1014
- return W.getStats(c);
1015
- }, xe = () => {
1016
- if (g || !I || !O) return;
1017
- W.setRendering(!0);
1018
- const c = () => {
1019
- g = requestAnimationFrame(c), P().catch(console.warn);
1375
+ }, Bn = () => {
1376
+ const a = Math.max(0, h.nodes.size - 1), t = Ee;
1377
+ ie.updateNodeCounts(a, t);
1378
+ }, Pn = () => {
1379
+ Bn();
1380
+ const a = n?.info;
1381
+ return ie.getStats(a);
1382
+ }, je = () => {
1383
+ if (R || !ae || !N) return;
1384
+ ie.setRendering(!0);
1385
+ const a = () => {
1386
+ R = requestAnimationFrame(a), ee().catch(console.warn);
1020
1387
  };
1021
- c();
1022
- }, De = () => {
1023
- g && (cancelAnimationFrame(g), g = null), W.setRendering(!1);
1024
- }, qe = (c) => {
1388
+ a();
1389
+ }, Qe = () => {
1390
+ R && (cancelAnimationFrame(R), R = null), ie.setRendering(!1);
1391
+ }, cn = (a) => {
1025
1392
  if (!e) return;
1026
- let i, l;
1027
- if ("touches" in c) {
1028
- if (c.touches.length === 0) return;
1029
- i = c.touches[0].clientX, l = c.touches[0].clientY;
1393
+ let t, o;
1394
+ if ("touches" in a) {
1395
+ if (a.touches.length === 0) return;
1396
+ t = a.touches[0].clientX, o = a.touches[0].clientY;
1030
1397
  } else
1031
- i = c.clientX, l = c.clientY;
1032
- const a = e.getBoundingClientRect(), h = (i - a.left) / a.width, T = (l - a.top) / a.height;
1033
- me = h, fe = T;
1034
- }, bn = (c) => {
1035
- !C || !e || qe(c);
1036
- }, yn = (c) => {
1037
- !C || !e || qe(c);
1038
- }, vn = () => {
1039
- C && (j = !1, P().catch(console.warn));
1040
- }, Tn = () => {
1041
- C && (j = !1, P().catch(console.warn));
1042
- }, Pe = () => {
1043
- j = !0, P().catch(console.warn);
1044
- }, Ve = () => {
1045
- j = !0, P().catch(console.warn);
1046
- }, Rn = () => {
1047
- if (H.length === 0) return;
1048
- const c = [...H];
1049
- H = [];
1050
- for (const { id: i, fragmentNodeFunc: l, parentId: a, metadata: h, uniforms: T, componentDefinition: w } of c) l && Ne(i, l, a, h, T, w);
1051
- };
1052
- return {
1053
- initialize: async ({ canvas: c, enablePerformanceTracking: i = !1 }) => {
1054
- if (C || q) return;
1055
- Q = i, q = !0, F = new AbortController();
1056
- const l = F;
1398
+ t = a.clientX, o = a.clientY;
1399
+ const l = e.getBoundingClientRect(), f = (t - l.left) / l.width, b = (o - l.top) / l.height;
1400
+ Me = f, Ae = b;
1401
+ }, _n = (a) => {
1402
+ !E || !e || cn(a);
1403
+ }, Vn = (a) => {
1404
+ !E || !e || cn(a);
1405
+ }, Ln = () => {
1406
+ E && (fe = !1, ee().catch(console.warn));
1407
+ }, qn = () => {
1408
+ E && (fe = !1, ee().catch(console.warn));
1409
+ }, fn = () => {
1410
+ fe = !0, ee().catch(console.warn);
1411
+ }, un = () => {
1412
+ fe = !0, ee().catch(console.warn);
1413
+ }, Gn = () => {
1414
+ if (re.length === 0) return;
1415
+ const a = [...re];
1416
+ re = [];
1417
+ for (const { id: t, fragmentNodeFunc: o, parentId: l, metadata: f, uniforms: b, componentDefinition: g } of a) o && ln(t, o, l, f, b, g);
1418
+ }, Nn = async ({ canvas: a, enablePerformanceTracking: t = !1 }) => {
1419
+ if (E || Z) return;
1420
+ ue = t, Z = !0, Y = new AbortController();
1421
+ const o = Y;
1422
+ try {
1423
+ if (e = a, r = new Jn(), r.background = null, i = new Xn(-1, 1, 1, -1, 0.1, 10), i.position.z = 1, i.lookAt(0, 0, 0), ze = It.register({
1424
+ onMouseMove: _n,
1425
+ onTouchMove: Vn,
1426
+ onMouseUp: Ln,
1427
+ onTouchEnd: qn
1428
+ }), a.addEventListener("mousedown", fn), a.addEventListener("touchstart", un), Ce = () => {
1429
+ mn();
1430
+ }, window.addEventListener("beforeunload", Ce), o.signal.aborted) return;
1057
1431
  try {
1058
- if (e = c, t = new Mn(), t.background = null, r = new Ln(-1, 1, 1, -1, 0.1, 10), r.position.z = 1, r.lookAt(0, 0, 0), he = Cr.register({
1059
- onMouseMove: bn,
1060
- onTouchMove: yn,
1061
- onMouseUp: vn,
1062
- onTouchEnd: Tn
1063
- }), c.addEventListener("mousedown", Pe), c.addEventListener("touchstart", Ve), l.signal.aborted) return;
1432
+ const D = {
1433
+ canvas: a,
1434
+ antialias: !0,
1435
+ alpha: !0,
1436
+ depth: !1,
1437
+ powerPreference: "high-performance"
1438
+ };
1439
+ if (ue && (D.forceWebGL = !1, D.requiredFeatures = ["timestamp-query"]), n = new Je(D), await n.init(), o.signal.aborted) return;
1440
+ } catch (D) {
1441
+ if (o.signal.aborted) return;
1442
+ console.warn("[Shaders] WebGPU initialization failed, falling back to WebGL:", D);
1064
1443
  try {
1065
- const D = {
1066
- canvas: c,
1444
+ if (n = new at({
1445
+ canvas: a,
1067
1446
  antialias: !0,
1068
1447
  alpha: !0,
1069
1448
  depth: !1,
1070
1449
  powerPreference: "high-performance"
1071
- };
1072
- if (Q && (D.forceWebGL = !1, D.requiredFeatures = ["timestamp-query"]), n = new Oe(D), await n.init(), l.signal.aborted) return;
1073
- } catch (D) {
1074
- if (l.signal.aborted) return;
1075
- console.warn("[Shaders] WebGPU initialization failed, falling back to WebGL:", D);
1076
- try {
1077
- if (n = new Gt({
1078
- canvas: c,
1079
- antialias: !0,
1080
- alpha: !0,
1081
- depth: !1,
1082
- powerPreference: "high-performance"
1083
- }), l.signal.aborted) return;
1084
- } catch (k) {
1085
- if (l.signal.aborted) return;
1086
- console.error("[Shaders] Both WebGPU and WebGL initialization failed:", k);
1087
- return;
1088
- }
1089
- }
1090
- if (l.signal.aborted) return;
1091
- n.setPixelRatio(Math.min(window.devicePixelRatio, 2)), n.outputColorSpace = $n, f = new He({ transparent: !0 }), f.fragmentNode = v(0, 0, 0, 0), s = new Dn(new wn(2, 2), f), t.add(s);
1092
- const a = c.parentElement;
1093
- if (!a) {
1094
- console.warn("[Shaders] Canvas has no parent element for resize observation");
1450
+ }), o.signal.aborted) return;
1451
+ } catch (y) {
1452
+ if (o.signal.aborted) return;
1453
+ console.error("[Shaders] Both WebGPU and WebGL initialization failed:", y);
1095
1454
  return;
1096
1455
  }
1097
- y = new ResizeObserver(an), y.observe(a), A = new IntersectionObserver(sn, { threshold: 0 }), A.observe(c);
1098
- const h = c.getBoundingClientRect();
1099
- O = h.width > 0 && h.height > 0 && h.top < window.innerHeight && h.bottom > 0 && h.left < window.innerWidth && h.right > 0, V = O && h.width > 0 && h.height > 0, I = !rn();
1100
- const { width: T, height: w } = c.getBoundingClientRect(), $ = Math.round(T), G = Math.round(w);
1101
- $ > 0 && G > 0 ? (Se($, G), B = !0, await P()) : B = !1, I && O && xe(), l.signal.aborted || (C = !0, we = !0, Rn());
1102
- } catch (a) {
1103
- console.error("[Shaders] Initialization error:", a);
1104
- } finally {
1105
- q = !1, F === l && (F = null);
1106
1456
  }
1107
- },
1108
- cleanup: () => {
1109
- if (F && F.abort(), y && (y.disconnect(), y = null), A && (A.disconnect(), A = null), he && (he(), he = null), e && (e.removeEventListener("mousedown", Pe), e.removeEventListener("touchstart", Ve)), De(), Le(), re.forEach((c) => {
1110
- try {
1111
- c?.renderTarget?.dispose && c.renderTarget.dispose();
1112
- } catch {
1113
- }
1114
- }), re.clear(), m.nodes.clear(), m.rootId = null, m.idToNodeId.clear(), u.clear(), H = [], we = !1, pe = [], ee !== null && (cancelAnimationFrame(ee), ee = null), ge = [], ne !== null && (cancelAnimationFrame(ne), ne = null), oe = null, be = !1, s) {
1115
- t && t.remove(s);
1116
- try {
1117
- s.geometry && typeof s.geometry.dispose == "function" && s.geometry.dispose();
1118
- } catch {
1119
- }
1120
- try {
1121
- s.material instanceof xn && typeof s.material.dispose == "function" && s.material.dispose();
1122
- } catch {
1123
- }
1457
+ if (o.signal.aborted) return;
1458
+ n.setPixelRatio(Math.min(window.devicePixelRatio, 2)), n.outputColorSpace = Yn, p = new dn({ transparent: !0 }), p.fragmentNode = U(0, 0, 0, 0), u = new ir(new Kn(2, 2), p), r.add(u);
1459
+ const l = a.parentElement;
1460
+ if (!l) {
1461
+ console.warn("[Shaders] Canvas has no parent element for resize observation");
1462
+ return;
1124
1463
  }
1125
- if (n && typeof n.dispose == "function") try {
1126
- n.dispose();
1464
+ S = new ResizeObserver(xn), S.observe(l), P = new IntersectionObserver(Mn, { threshold: 0 }), P.observe(a);
1465
+ const f = a.getBoundingClientRect();
1466
+ N = f.width > 0 && f.height > 0 && f.top < window.innerHeight && f.bottom > 0 && f.left < window.innerWidth && f.right > 0, ne = N && f.width > 0 && f.height > 0, ae = !0;
1467
+ const { width: b, height: g } = a.getBoundingClientRect(), w = Math.round(b), x = Math.round(g);
1468
+ w > 0 && x > 0 ? (Ne(w, x), X = !0, await ee()) : X = !1, ae && N && je(), o.signal.aborted || (E = !0, qe = !0, Gn());
1469
+ } catch (l) {
1470
+ console.error("[Shaders] Initialization error:", l);
1471
+ } finally {
1472
+ Z = !1, Y === o && (Y = null);
1473
+ }
1474
+ }, In = () => {
1475
+ !Xt() || Tn || (console.warn("Shaders is running in development mode. Please purchase a license at https://shaders.com to use it in production."), Tn = !0);
1476
+ }, mn = () => {
1477
+ if (Y && Y.abort(), S && (S.disconnect(), S = null), P && (P.disconnect(), P = null), ze && (ze(), ze = null), e && (e.removeEventListener("mousedown", fn), e.removeEventListener("touchstart", un)), Ce && (window.removeEventListener("beforeunload", Ce), Ce = null), Qe(), rn(), Re.forEach((a) => {
1478
+ try {
1479
+ a?.renderTarget?.dispose && a.renderTarget.dispose();
1127
1480
  } catch {
1128
1481
  }
1129
- e = null, n = null, r = null, t = null, s = null, f = null, C = !1, q = !1, B = !1, F = null, M = 0, S = 0, O = !1, I = !0, me = 0.5, fe = 0.5, j = !1;
1130
- },
1131
- registerNode: Ne,
1132
- removeNode: Ae,
1133
- updateUniformValue: mn,
1134
- updateNodeMetadata: fn,
1135
- showLicenseWarning: () => {
1136
- !Mr() || Ke || (console.warn("Shaders is running in development mode. Please purchase a license at https://shaders.com to use it in production."), Ke = !0);
1137
- },
1138
- isInitialized: () => C,
1139
- startAnimation: xe,
1140
- stopAnimation: De,
1141
- getPerformanceStats: gn,
1142
- getNodeRegistry: () => ({ nodes: new Map(m.nodes) }),
1143
- getRendererType: () => n ? n instanceof Oe ? "webgpu" : "webgl" : null
1482
+ }), Re.clear(), h.nodes.clear(), h.rootId = null, h.idToNodeId.clear(), d.clear(), re = [], qe = !1, De = [], pe !== null && (cancelAnimationFrame(pe), pe = null), Fe = [], ge !== null && (cancelAnimationFrame(ge), ge = null), Te = null, Oe = !1, u) {
1483
+ r && r.remove(u);
1484
+ try {
1485
+ u.geometry && typeof u.geometry.dispose == "function" && u.geometry.dispose();
1486
+ } catch {
1487
+ }
1488
+ try {
1489
+ u.material instanceof Qn && typeof u.material.dispose == "function" && u.material.dispose();
1490
+ } catch {
1491
+ }
1492
+ }
1493
+ if (n && typeof n.dispose == "function") try {
1494
+ n.dispose();
1495
+ } catch {
1496
+ }
1497
+ e = null, n = null, i = null, r = null, u = null, p = null, E = !1, Z = !1, X = !1, Y = null, $ = 0, z = 0, N = !1, ae = !0, Me = 0.5, Ae = 0.5, fe = !1;
1498
+ };
1499
+ return {
1500
+ initialize: Nn,
1501
+ cleanup: mn,
1502
+ registerNode: ln,
1503
+ removeNode: We,
1504
+ updateUniformValue: Dn,
1505
+ updateNodeMetadata: Fn,
1506
+ showLicenseWarning: In,
1507
+ isInitialized: () => E,
1508
+ startAnimation: je,
1509
+ stopAnimation: Qe,
1510
+ getPerformanceStats: Pn,
1511
+ getNodeRegistry: () => ({ nodes: new Map(h.nodes) }),
1512
+ getRendererType: () => n ? n instanceof Je ? "webgpu" : "webgl" : null
1144
1513
  };
1145
1514
  }
1146
- tn();
1147
- function Wo(e) {
1148
- const n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), t = {
1515
+ Sn();
1516
+ function fa(e) {
1517
+ const n = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), r = {
1149
1518
  processingOrder: [],
1150
1519
  maskSources: /* @__PURE__ */ new Map(),
1151
1520
  circularDependencies: []
1152
1521
  };
1153
- return e.forEach((s) => {
1154
- s.elementId && n.set(s.elementId, s.id);
1155
- }), e.forEach((s) => {
1156
- if (s.mask?.source) {
1157
- const f = s.mask.source.startsWith("#") ? s.mask.source.substring(1) : s.mask.source, m = n.get(f);
1158
- m ? (r.has(s.id) || r.set(s.id, []), r.get(s.id)?.push(m), t.maskSources.set(s.id, m)) : console.warn(`Mask source "${f}" not found for node "${s.id}"`);
1522
+ return e.forEach((u) => {
1523
+ u.elementId && n.set(u.elementId, u.id);
1524
+ }), e.forEach((u) => {
1525
+ if (u.mask?.source) {
1526
+ const p = u.mask.source.startsWith("#") ? u.mask.source.substring(1) : u.mask.source, h = n.get(p);
1527
+ h ? (i.has(u.id) || i.set(u.id, []), i.get(u.id)?.push(h), r.maskSources.set(u.id, h)) : console.warn(`Mask source "${p}" not found for node "${u.id}"`);
1159
1528
  }
1160
- }), t.processingOrder = Sr(r, t.circularDependencies), t;
1529
+ }), r.processingOrder = Yt(i, r.circularDependencies), r;
1161
1530
  }
1162
- function Sr(e, n) {
1163
- const r = [], t = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new Set();
1164
- function f(u, g = []) {
1165
- if (t.has(u)) return;
1166
- if (s.has(u)) {
1167
- const A = [...g.slice(g.indexOf(u)), u];
1168
- n.push(A);
1531
+ function Yt(e, n) {
1532
+ const i = [], r = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set();
1533
+ function p(d, R = []) {
1534
+ if (r.has(d)) return;
1535
+ if (u.has(d)) {
1536
+ const P = [...R.slice(R.indexOf(d)), d];
1537
+ n.push(P);
1169
1538
  return;
1170
1539
  }
1171
- s.add(u), g.push(u);
1172
- const y = e.get(u) || [];
1173
- for (const A of y) f(A, [...g]);
1174
- s.delete(u), t.add(u), r.push(u);
1540
+ u.add(d), R.push(d);
1541
+ const S = e.get(d) || [];
1542
+ for (const P of S) p(P, [...R]);
1543
+ u.delete(d), r.add(d), i.push(d);
1175
1544
  }
1176
- for (const u of e.keys()) t.has(u) || f(u);
1177
- const m = new Set([...e.values()].flat());
1178
- for (const u of m) !t.has(u) && !e.has(u) && r.push(u);
1179
- return r.reverse();
1545
+ for (const d of e.keys()) r.has(d) || p(d);
1546
+ const h = new Set([...e.values()].flat());
1547
+ for (const d of h) !r.has(d) && !e.has(d) && i.push(d);
1548
+ return i.reverse();
1180
1549
  }
1181
- R();
1182
- var { vec2: Ar, fract: xr, sin: Dr, dot: zr } = Z;
1183
- const $r = (e) => xr(Dr(zr(e, Ar(12.12345, 78.12345))).mul(40000.12345)), Xo = (e = 0.03) => (n) => $r(n).mul(e).mul(0.10012345);
1184
- R();
1185
- var { vec2: Ur } = Z;
1186
- const Yo = (e = Ur(0), n = 0.02, r = 1, t = 1) => {
1187
- const { vec2: s, sin: f, cos: m, time: u } = Z, g = t * 1.618033988749895, y = t * 2.718281828459045, A = (Math.sin(t) + 2) * 5, C = (Math.cos(t) + 2) * 5, q = s(f(e.x.mul(r).mul(A).add(u.mul(0.1)).add(g)), m(e.y.mul(r).mul(A).add(u.mul(0.1)).add(y))), B = s(f(e.y.mul(r).mul(C).add(u.mul(0.05)).add(y)), m(e.x.mul(r).mul(C).add(u.mul(0.05)).add(g))), F = q.add(B).mul(n);
1188
- return e.add(F);
1550
+ A();
1551
+ var { vec2: Ht, fract: Wt, sin: jt, dot: Qt } = he;
1552
+ const Jt = (e) => Wt(jt(Qt(e, Ht(12.12345, 78.12345))).mul(40000.12345)), ua = (e = 0.03) => (n) => Jt(n).mul(e).mul(0.10012345);
1553
+ A();
1554
+ var { vec2: Kt } = he;
1555
+ const ma = (e = Kt(0), n = 0.02, i = 1, r = 1) => {
1556
+ const { vec2: u, sin: p, cos: h, time: d } = he, R = r * 1.618033988749895, S = r * 2.718281828459045, P = (Math.sin(r) + 2) * 5, E = (Math.cos(r) + 2) * 5, Z = u(p(e.x.mul(i).mul(P).add(d.mul(0.1)).add(R)), h(e.y.mul(i).mul(P).add(d.mul(0.1)).add(S))), X = u(p(e.y.mul(i).mul(E).add(d.mul(0.05)).add(S)), h(e.x.mul(i).mul(E).add(d.mul(0.05)).add(R))), Y = Z.add(X).mul(n);
1557
+ return e.add(Y);
1189
1558
  };
1190
- R();
1191
- const jo = (e, n, r = 0.6, t = 0.3, s = 1) => {
1192
- const { max: f, smoothstep: m, vec4: u } = Z, g = f(f(e.r, e.g), e.b), y = m(r, r + t, g).mul(s).mul(1);
1193
- return u(e.rgb.add(n.rgb.mul(y)), e.a);
1559
+ A();
1560
+ const da = (e, n, i = 0.6, r = 0.3, u = 1) => {
1561
+ const { max: p, smoothstep: h, vec4: d } = he, R = p(p(e.r, e.g), e.b), S = h(i, i + r, R).mul(u).mul(1);
1562
+ return d(e.rgb.add(n.rgb.mul(S)), e.a);
1194
1563
  };
1195
- R();
1196
- const Qo = (e = {}) => {
1197
- const { inset: n = 0.4, softness: r = 0.5, offsetX: t = 0, offsetY: s = 0 } = e, { float: f, smoothstep: m, uv: u } = Z, g = u(), y = g.x.sub(0.5).sub(f(t)).mul(2), A = g.y.sub(0.5).add(f(s)).mul(2), C = y.mul(y).add(A.mul(A)).sqrt();
1198
- return f(1).sub(m(f(1).sub(f(n)), f(1).sub(f(n)).add(f(r)), C.mul(f(1).add(f(r)))));
1564
+ A();
1565
+ const ha = (e = {}) => {
1566
+ const { inset: n = 0.4, softness: i = 0.5, offsetX: r = 0, offsetY: u = 0 } = e, { float: p, smoothstep: h, uv: d } = he, R = d(), S = R.x.sub(0.5).sub(p(r)).mul(2), P = R.y.sub(0.5).add(p(u)).mul(2), E = S.mul(S).add(P.mul(P)).sqrt();
1567
+ return p(1).sub(h(p(1).sub(p(n)), p(1).sub(p(n)).add(p(i)), E.mul(p(1).add(p(i)))));
1199
1568
  };
1200
- var Er = () => {
1569
+ var Zt = () => {
1201
1570
  const e = {};
1202
1571
  return Object.entries({
1203
- AngularBlur: qn,
1204
- Ascii: Pn,
1205
- Blob: Vn,
1206
- Blur: Hn,
1207
- Bulge: In,
1208
- ChannelBlur: Wn,
1209
- Checkerboard: Xn,
1210
- ChromaFlow: Yn,
1211
- ChromaticAberration: jn,
1212
- Circle: Qn,
1213
- CRTScreen: Jn,
1214
- CursorTrail: Kn,
1215
- DiffuseBlur: Zn,
1216
- Dither: et,
1217
- DotGrid: nt,
1218
- Duotone: tt,
1219
- FilmGrain: rt,
1220
- FloatingParticles: ot,
1221
- GlassTiles: it,
1222
- Glow: at,
1223
- Godrays: st,
1224
- Grayscale: lt,
1225
- Grid: ct,
1226
- GridDistortion: ut,
1227
- Group: mt,
1228
- Halftone: ft,
1229
- HueShift: dt,
1230
- ImageTexture: ht,
1231
- Invert: pt,
1232
- LinearBlur: gt,
1233
- LinearGradient: bt,
1234
- Liquify: yt,
1235
- Pixelate: vt,
1236
- PolarCoordinates: Tt,
1237
- Posterize: Rt,
1238
- ProgressiveBlur: kt,
1239
- RadialGradient: wt,
1240
- Ripples: Ct,
1241
- Saturation: Mt,
1242
- SimplexNoise: St,
1243
- SineWave: At,
1244
- SolidColor: xt,
1245
- Spiral: Dt,
1246
- Strands: zt,
1247
- Swirl: $t,
1248
- TiltShift: Ut,
1249
- Tritone: Et,
1250
- Twirl: Ot,
1251
- Vibrance: _t,
1252
- WaveDistortion: Bt,
1253
- ZoomBlur: Ft
1254
- }).forEach(([r, t]) => {
1255
- const s = {};
1256
- t.props && Object.entries(t.props).forEach(([f, m]) => {
1257
- m.ui && (s[f] = {
1258
- ui: m.ui,
1259
- default: m.default,
1260
- description: m.description
1572
+ AngularBlur: sr,
1573
+ Ascii: lr,
1574
+ Blob: cr,
1575
+ Blur: fr,
1576
+ Bulge: ur,
1577
+ ChannelBlur: mr,
1578
+ Checkerboard: dr,
1579
+ ChromaFlow: hr,
1580
+ ChromaticAberration: pr,
1581
+ Circle: gr,
1582
+ CRTScreen: br,
1583
+ CursorTrail: vr,
1584
+ DiffuseBlur: Cr,
1585
+ Dither: Rr,
1586
+ DotGrid: Tr,
1587
+ Duotone: kr,
1588
+ FilmGrain: wr,
1589
+ FloatingParticles: yr,
1590
+ GlassTiles: Sr,
1591
+ Glow: Ur,
1592
+ Godrays: xr,
1593
+ Grayscale: Mr,
1594
+ Grid: Ar,
1595
+ GridDistortion: $r,
1596
+ Group: zr,
1597
+ Halftone: Dr,
1598
+ HueShift: Fr,
1599
+ ImageTexture: Er,
1600
+ Invert: Or,
1601
+ LinearBlur: Br,
1602
+ LinearGradient: Pr,
1603
+ Liquify: _r,
1604
+ Pixelate: Vr,
1605
+ PolarCoordinates: Lr,
1606
+ Posterize: qr,
1607
+ ProgressiveBlur: Gr,
1608
+ RadialGradient: Nr,
1609
+ RectangularCoordinates: Ir,
1610
+ Ripples: Xr,
1611
+ Saturation: Yr,
1612
+ SimplexNoise: Hr,
1613
+ SineWave: Wr,
1614
+ SolidColor: jr,
1615
+ Spiral: Qr,
1616
+ Strands: Jr,
1617
+ Swirl: Kr,
1618
+ TiltShift: Zr,
1619
+ Tritone: et,
1620
+ Twirl: nt,
1621
+ Vibrance: rt,
1622
+ WaveDistortion: tt,
1623
+ ZoomBlur: ot
1624
+ }).forEach(([i, r]) => {
1625
+ const u = {};
1626
+ r.props && Object.entries(r.props).forEach(([p, h]) => {
1627
+ h.ui && (u[p] = {
1628
+ ui: h.ui,
1629
+ default: h.default,
1630
+ description: h.description
1261
1631
  });
1262
- }), e[t.name] = {
1263
- name: t.name,
1264
- fileName: r,
1265
- category: t.category || "Uncategorized",
1266
- definition: t,
1267
- propsMetadata: s
1632
+ }), e[r.name] = {
1633
+ name: r.name,
1634
+ fileName: i,
1635
+ category: r.category || "Uncategorized",
1636
+ definition: r,
1637
+ propsMetadata: u
1268
1638
  };
1269
1639
  }), e;
1270
1640
  };
1271
- const Te = Er();
1272
- function Jo() {
1273
- return Object.values(Te);
1641
+ const Ve = Zt();
1642
+ function pa() {
1643
+ return Object.values(Ve);
1274
1644
  }
1275
- function Ko(e) {
1276
- return Te[e];
1645
+ function ga(e) {
1646
+ return Ve[e];
1277
1647
  }
1278
- function Zo(e) {
1279
- return Object.values(Te).filter((n) => n.category === e);
1648
+ function ba(e) {
1649
+ return Object.values(Ve).filter((n) => n.category === e);
1280
1650
  }
1281
- function ei() {
1282
- const e = new Set(Object.values(Te).map((n) => n.category));
1651
+ function va() {
1652
+ const e = new Set(Object.values(Ve).map((n) => n.category));
1283
1653
  return Array.from(e).sort();
1284
1654
  }
1285
1655
  export {
1286
- qr as createAnimatedTime,
1287
- kr as createUniformsMap,
1288
- Yo as distort,
1289
- Qo as edgeMask,
1290
- Jo as getAllShaders,
1291
- Ko as getShaderByName,
1292
- ei as getShaderCategories,
1293
- Zo as getShadersByCategory,
1294
- jo as glow,
1295
- Xo as grain,
1296
- Wo as resolveMaskDependencies,
1297
- Te as shaderRegistry,
1298
- Io as shaderRenderer,
1299
- wr as updateUniformValue
1656
+ oo as createAnimatedTime,
1657
+ Gt as createUniformsMap,
1658
+ ma as distort,
1659
+ ha as edgeMask,
1660
+ pa as getAllShaders,
1661
+ ga as getShaderByName,
1662
+ va as getShaderCategories,
1663
+ ba as getShadersByCategory,
1664
+ da as glow,
1665
+ ua as grain,
1666
+ fa as resolveMaskDependencies,
1667
+ Ve as shaderRegistry,
1668
+ ca as shaderRenderer,
1669
+ Nt as updateUniformValue
1300
1670
  };