shaders 3.0.449 → 3.0.451

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 (477) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/{AngularBlur-DU1WmNHt.js → AngularBlur-4jt7bNoF.js} +1 -1
  3. package/dist/core/{Arc-C8QmYsiZ.js → Arc-DXIfbBgd.js} +2 -2
  4. package/dist/core/{Ascii-BaQ6MZTc.js → Ascii-GDof03Ca.js} +1 -1
  5. package/dist/core/{Aurora-B6lOg6M4.js → Aurora-CS4vewUW.js} +3 -3
  6. package/dist/core/{BarShift-CFK-CzF9.js → BarShift-BtnYLQ0B.js} +2 -2
  7. package/dist/core/{BarnDoors-DWs_0xtH.js → BarnDoors-Dw9K-amf.js} +1 -1
  8. package/dist/core/{Beam-Cgc4EYnj.js → Beam-D_cyaMjJ.js} +1 -1
  9. package/dist/core/{Bend-oof5pE1H.js → Bend-CSs5UIh8.js} +1 -1
  10. package/dist/core/{Blob-cfvDCv0i.js → Blob-h25zA5WH.js} +2 -2
  11. package/dist/core/{BlockDissolve-C7yJzYGZ.js → BlockDissolve-CKN_KvLP.js} +2 -2
  12. package/dist/core/{BlockNoise-DaM9YDAH.js → BlockNoise-DhKyd_F7.js} +5 -5
  13. package/dist/core/{BlueNoise-BMMRTsMw.js → BlueNoise-Auhzq4x5.js} +4 -4
  14. package/dist/core/{Blur-Be7sX4v9.js → Blur-CcxMqYsu.js} +3 -3
  15. package/dist/core/{Boids-C9S69THK.js → Boids-D51U46GF.js} +783 -656
  16. package/dist/core/{BokehBlur-DSkKZ_yy.js → BokehBlur-Cfaqbh3I.js} +3 -3
  17. package/dist/core/{BrickPattern-BY7h4hyx.js → BrickPattern-tASwilX0.js} +2 -2
  18. package/dist/core/{BrightnessContrast-DFc0gSUv.js → BrightnessContrast-ZCKqJW7i.js} +1 -1
  19. package/dist/core/{BrushedMetal-B06tUygH.js → BrushedMetal-B6gSVB28.js} +6 -6
  20. package/dist/core/{Bulge-BpSOQfH0.js → Bulge-dCYtWP4S.js} +1 -1
  21. package/dist/core/{CRTScreen-DdGcEvk2.js → CRTScreen-CVY1lOGL.js} +1 -1
  22. package/dist/core/{CarbonFiber-Dy7Osb3V.js → CarbonFiber-Do9EONKv.js} +5 -5
  23. package/dist/core/{Chalkboard-wRYj23wL.js → Chalkboard-0hyyGnYl.js} +1 -1
  24. package/dist/core/{ChannelBlur-DKD9GUpc.js → ChannelBlur-DcZKCKXi.js} +2 -2
  25. package/dist/core/{CheckerWipe-D0WmsSKg.js → CheckerWipe-BIE62tJ1.js} +1 -1
  26. package/dist/core/{Checkerboard-2sQYJks9.js → Checkerboard-CRnfu63u.js} +1 -1
  27. package/dist/core/{Chevron-D3oPw2-i.js → Chevron-Ld_v4z9T.js} +2 -2
  28. package/dist/core/{ChromaFlow-px9KG_h6.js → ChromaFlow-CTWeauIr.js} +1 -1
  29. package/dist/core/{ChromaticAberration-DLFROPJV.js → ChromaticAberration-CxuOb68m.js} +1 -1
  30. package/dist/core/{Circle-0CqIPN3a.js → Circle-XP1B5rsN.js} +2 -2
  31. package/dist/core/{ColorWheel-CMtn8slz.js → ColorWheel-CFU_OmOW.js} +2 -2
  32. package/dist/core/{CompressionArtifacts-D7dpVg47.js → CompressionArtifacts-Bc9xTdQP.js} +2 -2
  33. package/dist/core/{ConcentricSpin-BPk-_egF.js → ConcentricSpin-DTJytpAk.js} +2 -2
  34. package/dist/core/{ConicGradient-B-tEhmfR.js → ConicGradient-C-4uDmQj.js} +2 -2
  35. package/dist/core/{ContourLines-BlgCWFSy.js → ContourLines-C8p6f-1y.js} +1 -1
  36. package/dist/core/{CornerPin-DB3G2i_y.js → CornerPin-CB92kX10.js} +1 -1
  37. package/dist/core/{Crescent-CFzPQKll.js → Crescent-Dk4nlG8T.js} +2 -2
  38. package/dist/core/{Cross-Cstl9nDg.js → Cross-DsnI1U8g.js} +2 -2
  39. package/dist/core/{Crystal-CEeqF1Xa.js → Crystal-CR_sG2y7.js} +5 -5
  40. package/dist/core/{CurlNoise-uvTKk4Wa.js → CurlNoise-DJ27ih0F.js} +5 -5
  41. package/dist/core/{CursorRipples-B46VApbY.js → CursorRipples-CuO3sZga.js} +2 -2
  42. package/dist/core/{CursorTrail-DzYRTzzA.js → CursorTrail-d4xx4QpM.js} +3 -3
  43. package/dist/core/{DataMosh-Ysev5-c_.js → DataMosh-BhvE-2yC.js} +2 -2
  44. package/dist/core/{DiamondGradient-pTOwPuAl.js → DiamondGradient-CtOVKrYf.js} +2 -2
  45. package/dist/core/{DiamondWipe-D6u1P2xH.js → DiamondWipe-D-yiQBVj.js} +1 -1
  46. package/dist/core/{DiffuseBlur-BX0cfwyh.js → DiffuseBlur-BDf-Czxz.js} +1 -1
  47. package/dist/core/{DisplacementMap-DMNivtcV.js → DisplacementMap-B_jf_2lj.js} +1 -1
  48. package/dist/core/{Dither-Cxu-hSc_.js → Dither-D3P6EJU8.js} +1 -1
  49. package/dist/core/{DotGrid-CbNHebie.js → DotGrid-BnSVhJlh.js} +2 -2
  50. package/dist/core/{DropShadow-DFyuEA17.js → DropShadow-BSKVH3n3.js} +1 -1
  51. package/dist/core/{Duotone-CgueO-jZ.js → Duotone-DfjYuK2u.js} +1 -1
  52. package/dist/core/{Ellipse-DxRnSw__.js → Ellipse-D7_1QKaa.js} +2 -2
  53. package/dist/core/{Emboss-BJxzjZmZ.js → Emboss-ZiPslqzl.js} +4 -4
  54. package/dist/core/{Engraving-DmQCj8vU.js → Engraving-DsfkKajz.js} +2 -2
  55. package/dist/core/{ErosionNoise-7ekcAfBb.js → ErosionNoise-SELArv9H.js} +4 -4
  56. package/dist/core/{Exposure-avEereLn.js → Exposure-A7WlTOti.js} +1 -1
  57. package/dist/core/{FallingLines-BINyHi3N.js → FallingLines-9PRMb_Ou.js} +2 -2
  58. package/dist/core/{FilmGrain-B-pZBxiK.js → FilmGrain-SXzVDesw.js} +1 -1
  59. package/dist/core/{FilmStock-BJfso8f3.js → FilmStock-RK4fk4m0.js} +3 -3
  60. package/dist/core/{Flip-Dbwe0zh8.js → Flip-DjoNWG4v.js} +1 -1
  61. package/dist/core/{FloatingParticles-CoQ01il5.js → FloatingParticles-D7vUF5g7.js} +550 -367
  62. package/dist/core/{FlowField-CU6S3Jar.js → FlowField-tHrXhd1b.js} +3 -3
  63. package/dist/core/{Flower-R7HIopNH.js → Flower-BfehbmmG.js} +2 -2
  64. package/dist/core/{FlowingGradient-D66Y9Wgq.js → FlowingGradient-BTKjkx5F.js} +3 -3
  65. package/dist/core/{FlutedGlass-WAaeW92l.js → FlutedGlass-uFT7iy_9.js} +2 -2
  66. package/dist/core/{Fog-BChoF6fi.js → Fog-Cu1CMATa.js} +2 -2
  67. package/dist/core/{Form3D-DajWNpAi.js → Form3D-D0ji-MeC.js} +2 -2
  68. package/dist/core/{FractalNoise-DIrQ3eQj.js → FractalNoise-D9HYiOdr.js} +4 -4
  69. package/dist/core/{Frost-B_3JSI2H.js → Frost-DQZZxdTk.js} +6 -6
  70. package/dist/core/{GaborNoise-4FWeA9yr.js → GaborNoise-D7BP0K4g.js} +5 -5
  71. package/dist/core/{Glass-wOhmSf3v.js → Glass-CzCVnGn-.js} +5 -5
  72. package/dist/core/{GlassTiles-DgdAiEuy.js → GlassTiles-DJzPPqwz.js} +1 -1
  73. package/dist/core/{Glitch-BOiywFUR.js → Glitch-D1Dx8__X.js} +28 -11
  74. package/dist/core/{Glow-C2cEWdNE.js → Glow-Bd9_o_Kv.js} +3 -3
  75. package/dist/core/{Godrays-DAZB2GSn.js → Godrays-DRPRWGPm.js} +2 -2
  76. package/dist/core/{Goo-B_WAqWYW.js → Goo-28A_pNBg.js} +5 -5
  77. package/dist/core/{GradientMap-DxsOInED.js → GradientMap-D8dv-1AX.js} +1 -1
  78. package/dist/core/{Grayscale-DSHs9mZd.js → Grayscale-BlVXBVwW.js} +1 -1
  79. package/dist/core/{Grid-aO3wzf4X.js → Grid-D9vlHvs1.js} +1 -1
  80. package/dist/core/{GridDistortion-DsHsHda7.js → GridDistortion-BpqDvqj6.js} +2 -2
  81. package/dist/core/{Group-CCcDbysC.js → Group-bwQnJRec.js} +1 -1
  82. package/dist/core/{HTMLInCanvas-B2OooKKr.js → HTMLInCanvas-gCf64ozE.js} +1 -1
  83. package/dist/core/{Halftone-3a3rz4ln.js → Halftone-B_WouxiP.js} +1 -1
  84. package/dist/core/{Heart-CzO0_GoB.js → Heart-Bmt2TLNz.js} +2 -2
  85. package/dist/core/{Heatmap-DPtUc8YG.js → Heatmap-Ruef741_.js} +6 -6
  86. package/dist/core/{HexGrid-CN5A0m5j.js → HexGrid-By9k0YuI.js} +1 -1
  87. package/dist/core/{Hologram-DoKRhChe.js → Hologram-Cf25ONOE.js} +6 -6
  88. package/dist/core/{Holographic-BWyW5z_h.js → Holographic-C9RzYykt.js} +6 -6
  89. package/dist/core/{HueShift-C0p8EGk-.js → HueShift-V3gQVuIo.js} +1 -1
  90. package/dist/core/{ImageTexture-BnwkbXAW.js → ImageTexture-DAUR2N5Q.js} +2 -2
  91. package/dist/core/{InkFlow-BH86usRX.js → InkFlow-DlP1gmr4.js} +2 -2
  92. package/dist/core/{Invert-BIjy9ddK.js → Invert-K648khvD.js} +1 -1
  93. package/dist/core/{IrisWipe-lpU7lucQ.js → IrisWipe-Clkd_5CA.js} +1 -1
  94. package/dist/core/{IsometricCubes-CIieztxI.js → IsometricCubes-CzfAwpQ5.js} +1 -1
  95. package/dist/core/{Kaleidoscope-CUMvqmfN.js → Kaleidoscope-B9k6HkNn.js} +1 -1
  96. package/dist/core/{KeyFrames-mI1J02zX.js → KeyFrames-DX6JFhsy.js} +2 -2
  97. package/dist/core/LensDistortion-DG4VHEXV.js +435 -0
  98. package/dist/core/{LensFlare-ChQK_hJN.js → LensFlare-DO5lm--6.js} +2 -2
  99. package/dist/core/{LightEdge-Rg-zMpGb.js → LightEdge-CxWsQwpZ.js} +6 -6
  100. package/dist/core/{LightLeak-D1CxVo9A.js → LightLeak-tGJW6l2_.js} +3 -3
  101. package/dist/core/{LinearBlur-DJBkHfs8.js → LinearBlur-OmZcUden.js} +1 -1
  102. package/dist/core/{LinearGradient-DCRYBS4Q.js → LinearGradient-DDqFujWC.js} +2 -2
  103. package/dist/core/{LinearWipe-Cxfs1tIO.js → LinearWipe-BzthBFNb.js} +1 -1
  104. package/dist/core/{LiquidMetal-oscNnbsr.js → LiquidMetal-DpRAJ5Ne.js} +6 -6
  105. package/dist/core/{Liquify-CJwl6Wef.js → Liquify-BVzmuY6D.js} +2 -2
  106. package/dist/core/{MagneticFilings-DAOFLjAQ.js → MagneticFilings-BP1KyU2C.js} +893 -653
  107. package/dist/core/{Marble-Cr4Iaq38.js → Marble-abj97ioG.js} +3 -3
  108. package/dist/core/{Mirror-BwOuv3TP.js → Mirror-BYqbXWUj.js} +1 -1
  109. package/dist/core/{MultiPointGradient-CSowH0-7.js → MultiPointGradient-DZZSkiDv.js} +1 -1
  110. package/dist/core/{Neon-CPIvbGSB.js → Neon-DD8qY6H9.js} +4 -4
  111. package/dist/core/{NoiseDissolve-ByahROgQ.js → NoiseDissolve-DSkh5NdD.js} +2 -2
  112. package/dist/core/{ObjectTracker-DMCr6kHz.js → ObjectTracker-DvQF31-0.js} +2 -2
  113. package/dist/core/{PagePeel-Coq0hc8R.js → PagePeel-DWtgqWdt.js} +1 -1
  114. package/dist/core/{Paper-CLlhc3fn.js → Paper-DGzZsv79.js} +2 -2
  115. package/dist/core/{Parallelogram-Be8RQBV7.js → Parallelogram-Ce0Pg7DX.js} +2 -2
  116. package/dist/core/{ParticleField-DDO-Tk9X.js → ParticleField-CgCOigET.js} +1375 -1230
  117. package/dist/core/{ParticleFlow-B89PWVem.js → ParticleFlow-CRQhvYQx.js} +1264 -993
  118. package/dist/core/{Particles-D8rP46SB.js → Particles-fKk9qTkl.js} +681 -469
  119. package/dist/core/{PerlinNoise-_whB3Y3m.js → PerlinNoise-DIFK1BpN.js} +5 -5
  120. package/dist/core/{Perspective-BJuQWHOr.js → Perspective-CDNz_7y5.js} +1 -1
  121. package/dist/core/{PixelSort-CJfXD6g0.js → PixelSort-sgh5ghCc.js} +2 -2
  122. package/dist/core/{PixelThrow-BaTI5PzH.js → PixelThrow-CXtB4Am2.js} +1 -1
  123. package/dist/core/{Pixelate-D7Dto_8I.js → Pixelate-BSOzwVHo.js} +1 -1
  124. package/dist/core/{Plasma-DWIDcCnn.js → Plasma-G6Hl__3L.js} +3 -3
  125. package/dist/core/{Plastic-CWAOd2i9.js → Plastic-B6F2WeaX.js} +6 -6
  126. package/dist/core/{PolarCoordinates-DQM3dLK3.js → PolarCoordinates-Bi99omfI.js} +1 -1
  127. package/dist/core/{Polygon-CFmLohBu.js → Polygon-BFxoe-Fg.js} +2 -2
  128. package/dist/core/{Posterize-B8PHXwhy.js → Posterize-DxiCXLUL.js} +1 -1
  129. package/dist/core/{Prism-C5VS4TLU.js → Prism-D6J-acZf.js} +2 -2
  130. package/dist/core/{ProgressiveBlur-BcGcteLH.js → ProgressiveBlur-Bko6UMxQ.js} +3 -3
  131. package/dist/core/{RadialGradient-D3UoKiGu.js → RadialGradient-B_Dgxs9_.js} +2 -2
  132. package/dist/core/{RadialWipe-DXfAH0Ug.js → RadialWipe-U9n5aeiJ.js} +1 -1
  133. package/dist/core/{RandomBars-BVsp1Q7v.js → RandomBars-U_zpGDJh.js} +2 -2
  134. package/dist/core/{ReactionDiffusion-DknxOF-o.js → ReactionDiffusion-I9xj-iK_.js} +2 -2
  135. package/dist/core/{RectangularCoordinates-DFQm4y6H.js → RectangularCoordinates-DX6wutjX.js} +1 -1
  136. package/dist/core/{ReflectivePlane-BDlGBzo1.js → ReflectivePlane-DU9pf-7H.js} +3 -3
  137. package/dist/core/{Repeater-DHW6eDAm.js → Repeater-kCIaHHFy.js} +1 -1
  138. package/dist/core/{Ring-3brC5en8.js → Ring-B_tYq3KV.js} +2 -2
  139. package/dist/core/{RippleWipe-DQfXGjRv.js → RippleWipe-DCgZZ4VT.js} +1 -1
  140. package/dist/core/{Ripples-DajR3Cl5.js → Ripples-BDhMh7XC.js} +2 -2
  141. package/dist/core/{RoundedRect-CfkYNmkV.js → RoundedRect-9b3REf2d.js} +2 -2
  142. package/dist/core/{Saturation-BPTssGSs.js → Saturation-CcblT031.js} +1 -1
  143. package/dist/core/{Scratches-A-AyASZm.js → Scratches-Rzk27V6D.js} +5 -5
  144. package/dist/core/{Sharpness-Di39DpCB.js → Sharpness-ClLOnNR8.js} +1 -1
  145. package/dist/core/{Shatter-CWf3HtjN.js → Shatter-CLI896c7.js} +2 -2
  146. package/dist/core/{SimplexNoise-DpZ2jtdk.js → SimplexNoise-98RPhPzU.js} +4 -4
  147. package/dist/core/{SineWave-CZuksvHn.js → SineWave-BZPrTdYD.js} +2 -2
  148. package/dist/core/{SliceWipe-BwL2D3HR.js → SliceWipe-BR5Qr38C.js} +1 -1
  149. package/dist/core/{Smoke-BsUkbTI1.js → Smoke-DoW6Brlo.js} +3 -3
  150. package/dist/core/{SmokeFill-CaDMgNW-.js → SmokeFill-CXHhKX8u.js} +5 -5
  151. package/dist/core/{SmokeFlow-CLfsAbPS.js → SmokeFlow-mRJ_JcnZ.js} +3 -3
  152. package/dist/core/{Solarize-ALjXXAf0.js → Solarize-BNCG4TCa.js} +1 -1
  153. package/dist/core/{Spherize-SBfCc9Wk.js → Spherize-6d5WZIZV.js} +1 -1
  154. package/dist/core/{Spiral-iRrT222n.js → Spiral-IOZ-Zm0_.js} +2 -2
  155. package/dist/core/{Star-DL3d_HqY.js → Star-D9txpy4P.js} +2 -2
  156. package/dist/core/{Stone-OTsCM-rr.js → Stone-H2qLOvGJ.js} +2 -2
  157. package/dist/core/{Strands-DjoQgGnd.js → Strands-Db6_uJAi.js} +2 -2
  158. package/dist/core/{Stretch-CdzhxnbM.js → Stretch-BIFeD7-1.js} +1 -1
  159. package/dist/core/{Stripes-CsBgKYdp.js → Stripes-5YZhE4bc.js} +2 -2
  160. package/dist/core/{StudioBackground-D8EdrLg5.js → StudioBackground-B16ICQTt.js} +2 -2
  161. package/dist/core/{SunBurst-ErBFL-nF.js → SunBurst-DSUFLqjC.js} +2 -2
  162. package/dist/core/{Surface3D-CLjX61TZ.js → Surface3D-BoliMAeJ.js} +1826 -1420
  163. package/dist/core/{Swirl-DDQif_lC.js → Swirl-CozBN2cj.js} +2 -2
  164. package/dist/core/{Teardrop-CvpdElTs.js → Teardrop-D8uqqHu8.js} +2 -2
  165. package/dist/core/{Text-vyzeMvhl.js → Text-Dka9dwCa.js} +2 -2
  166. package/dist/core/{ThinFilm-CbkMTbD2.js → ThinFilm-d7IlUY62.js} +4 -4
  167. package/dist/core/{TiltShift-BVMyB8lF.js → TiltShift-CNc1M7bT.js} +3 -3
  168. package/dist/core/{TimeTrail-CuFGvzFi.js → TimeTrail-BFuqrI-l.js} +1058 -1699
  169. package/dist/core/{Tint-C6zMMsYH.js → Tint-BzCm1m93.js} +1 -1
  170. package/dist/core/{Trapezoid-kFuxWONU.js → Trapezoid-Dc6dpnCU.js} +2 -2
  171. package/dist/core/{TriangularGrid-FIrpI_qE.js → TriangularGrid-BMemTQ8X.js} +2 -2
  172. package/dist/core/{Tritone-DyLGtOug.js → Tritone-XnyfjYXL.js} +1 -1
  173. package/dist/core/{Truchet-B4NI56Zz.js → Truchet-DUbAZPvr.js} +1 -1
  174. package/dist/core/{Twirl-CuzhWXfj.js → Twirl-Dj6ZOh7V.js} +1 -1
  175. package/dist/core/{VHS-DYbzndAZ.js → VHS-DcN38Sa-.js} +1 -1
  176. package/dist/core/{VenetianBlinds-DVopy3xp.js → VenetianBlinds-Dsix9S6Y.js} +1 -1
  177. package/dist/core/{Vesica-Cd-XyG3F.js → Vesica-BvLPrNBY.js} +2 -2
  178. package/dist/core/{Vibrance-CvXatkfO.js → Vibrance-B3F1IOJC.js} +1 -1
  179. package/dist/core/{VideoTexture-C5PS6Vly.js → VideoTexture-rZnbkY1j.js} +1 -1
  180. package/dist/core/{Vignette-DtBpWWxW.js → Vignette-D747S9Un.js} +1 -1
  181. package/dist/core/{Voronoi-CRH2cGlR.js → Voronoi-tdjJp1Yz.js} +2 -2
  182. package/dist/core/{Water-CneenzRZ.js → Water-wnYFmeVF.js} +6 -6
  183. package/dist/core/{Watercolor-B343pgM-.js → Watercolor-DlrWTnkX.js} +267 -350
  184. package/dist/core/{WaveDistortion-DHz1FxLT.js → WaveDistortion-11QwOfVR.js} +2 -2
  185. package/dist/core/{WaveletNoise-CsLE9gbM.js → WaveletNoise-DWOzHG3M.js} +5 -5
  186. package/dist/core/{Weave-CQEF71nr.js → Weave-CdGwj7cZ.js} +1 -1
  187. package/dist/core/{WebcamTexture-BcsYFM_g.js → WebcamTexture-CihYSbzd.js} +2 -2
  188. package/dist/core/{Wool-BFSicimy.js → Wool-DKCBMabi.js} +2 -2
  189. package/dist/core/{WorleyNoise-BKq3es5v.js → WorleyNoise-BjD32UOl.js} +2 -2
  190. package/dist/core/{ZoomBlur-Bu1SlmS2.js → ZoomBlur-BnRTijPn.js} +1 -1
  191. package/dist/core/{agents-Bv3--qPL.js → agents-c-JjGH1b.js} +446 -3
  192. package/dist/core/{blur-tvWOoxKt.js → blur-DKmdsW6d.js} +2 -2
  193. package/dist/core/{compute-BjeJ0sIA.js → compute-BoeIXi0l.js} +1 -1
  194. package/dist/core/{edges-BXNBKxSN.js → edges-BZUKQxSE.js} +1 -1
  195. package/dist/core/{glass-IfoQ8Prf.js → glass-BVqgjSPg.js} +1 -1
  196. package/dist/core/gpu/index.d.ts.map +1 -1
  197. package/dist/core/gpu/kit/agents.d.ts +17 -1
  198. package/dist/core/gpu/kit/agents.d.ts.map +1 -1
  199. package/dist/core/gpu/passManager.d.ts +6 -2
  200. package/dist/core/gpu/passManager.d.ts.map +1 -1
  201. package/dist/core/gpu/textures.d.ts +2 -2
  202. package/dist/core/gpu/textures.d.ts.map +1 -1
  203. package/dist/core/index.js +229 -209
  204. package/dist/core/{media-B9BNeMPu.js → media-Ds6MRfGR.js} +1 -1
  205. package/dist/core/{noise-wTSHXgFz.js → noise-Cq0KUOSC.js} +1 -1
  206. package/dist/core/{noiseColor-CPakiKNF.js → noiseColor-CQyzqpVZ.js} +2 -2
  207. package/dist/core/{noiseColor-DscZM9CO.js → noiseColor-DjCUZ_8u.js} +1 -1
  208. package/dist/core/{noiseStylize-BXpflWPW.js → noiseStylize-fKVcJbGK.js} +2 -2
  209. package/dist/core/{porters-DBK1Aipq.js → porters-DogLzpKT.js} +1 -1
  210. package/dist/core/presetRenderer.d.ts.map +1 -1
  211. package/dist/core/registry.js +205 -204
  212. package/dist/core/{sdf-R0EN3EvS.js → sdf-o99ONcMJ.js} +1 -1
  213. package/dist/core/shaderRegistry-CkDrffEe.js +427 -0
  214. package/dist/core/shaderRegistry.d.ts.map +1 -1
  215. package/dist/core/shaders/AngularBlur/index.js +4 -4
  216. package/dist/core/shaders/Arc/index.js +5 -5
  217. package/dist/core/shaders/Ascii/index.js +4 -4
  218. package/dist/core/shaders/Aurora/index.js +5 -5
  219. package/dist/core/shaders/BarShift/index.js +4 -4
  220. package/dist/core/shaders/BarnDoors/index.js +4 -4
  221. package/dist/core/shaders/Beam/index.js +4 -4
  222. package/dist/core/shaders/Bend/index.js +4 -4
  223. package/dist/core/shaders/Blob/index.js +4 -4
  224. package/dist/core/shaders/BlockDissolve/index.js +5 -5
  225. package/dist/core/shaders/BlockNoise/index.js +7 -7
  226. package/dist/core/shaders/BlueNoise/index.js +7 -7
  227. package/dist/core/shaders/Blur/index.js +5 -5
  228. package/dist/core/shaders/Boids/index.d.ts +3 -3
  229. package/dist/core/shaders/Boids/index.d.ts.map +1 -1
  230. package/dist/core/shaders/Boids/index.js +8 -7
  231. package/dist/core/shaders/BokehBlur/index.js +5 -5
  232. package/dist/core/shaders/BrickPattern/index.js +4 -4
  233. package/dist/core/shaders/BrightnessContrast/index.js +4 -4
  234. package/dist/core/shaders/BrushedMetal/index.js +8 -8
  235. package/dist/core/shaders/Bulge/index.js +4 -4
  236. package/dist/core/shaders/CRTScreen/index.js +4 -4
  237. package/dist/core/shaders/CarbonFiber/index.js +8 -8
  238. package/dist/core/shaders/Chalkboard/index.js +4 -4
  239. package/dist/core/shaders/ChannelBlur/index.js +5 -5
  240. package/dist/core/shaders/CheckerWipe/index.js +4 -4
  241. package/dist/core/shaders/Checkerboard/index.js +4 -4
  242. package/dist/core/shaders/Chevron/index.js +4 -4
  243. package/dist/core/shaders/ChromaFlow/index.js +4 -4
  244. package/dist/core/shaders/ChromaticAberration/index.js +4 -4
  245. package/dist/core/shaders/Circle/index.js +5 -5
  246. package/dist/core/shaders/ColorWheel/index.js +4 -4
  247. package/dist/core/shaders/CompressionArtifacts/index.js +4 -4
  248. package/dist/core/shaders/ConcentricSpin/index.js +4 -4
  249. package/dist/core/shaders/ConicGradient/index.js +4 -4
  250. package/dist/core/shaders/ContourLines/index.js +4 -4
  251. package/dist/core/shaders/CornerPin/index.js +4 -4
  252. package/dist/core/shaders/Crescent/index.js +5 -5
  253. package/dist/core/shaders/Cross/index.js +5 -5
  254. package/dist/core/shaders/Crystal/index.js +8 -8
  255. package/dist/core/shaders/CurlNoise/index.js +7 -7
  256. package/dist/core/shaders/CursorRipples/index.js +4 -4
  257. package/dist/core/shaders/CursorTrail/index.js +4 -4
  258. package/dist/core/shaders/DataMosh/index.js +4 -4
  259. package/dist/core/shaders/DiamondGradient/index.js +4 -4
  260. package/dist/core/shaders/DiamondWipe/index.js +4 -4
  261. package/dist/core/shaders/DiffuseBlur/index.js +4 -4
  262. package/dist/core/shaders/DisplacementMap/index.js +4 -4
  263. package/dist/core/shaders/Dither/index.js +4 -4
  264. package/dist/core/shaders/DotGrid/index.js +4 -4
  265. package/dist/core/shaders/DropShadow/index.js +4 -4
  266. package/dist/core/shaders/Duotone/index.js +4 -4
  267. package/dist/core/shaders/Ellipse/index.js +5 -5
  268. package/dist/core/shaders/Emboss/index.js +7 -7
  269. package/dist/core/shaders/Engraving/index.js +5 -5
  270. package/dist/core/shaders/ErosionNoise/index.js +7 -7
  271. package/dist/core/shaders/Exposure/index.js +4 -4
  272. package/dist/core/shaders/FallingLines/index.js +4 -4
  273. package/dist/core/shaders/FilmGrain/index.js +4 -4
  274. package/dist/core/shaders/FilmStock/index.js +5 -5
  275. package/dist/core/shaders/Flip/index.js +4 -4
  276. package/dist/core/shaders/FloatingParticles/index.d.ts +9 -4
  277. package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
  278. package/dist/core/shaders/FloatingParticles/index.js +8 -7
  279. package/dist/core/shaders/FlowField/index.js +5 -5
  280. package/dist/core/shaders/Flower/index.js +5 -5
  281. package/dist/core/shaders/FlowingGradient/index.js +5 -5
  282. package/dist/core/shaders/FlutedGlass/index.js +4 -4
  283. package/dist/core/shaders/Fog/index.js +4 -4
  284. package/dist/core/shaders/Form3D/index.js +4 -4
  285. package/dist/core/shaders/FractalNoise/index.js +6 -6
  286. package/dist/core/shaders/Frost/index.js +8 -8
  287. package/dist/core/shaders/GaborNoise/index.js +7 -7
  288. package/dist/core/shaders/Glass/index.js +8 -8
  289. package/dist/core/shaders/GlassTiles/index.js +4 -4
  290. package/dist/core/shaders/Glitch/index.d.ts +1 -1
  291. package/dist/core/shaders/Glitch/index.d.ts.map +1 -1
  292. package/dist/core/shaders/Glitch/index.js +4 -4
  293. package/dist/core/shaders/Glow/index.js +5 -5
  294. package/dist/core/shaders/Godrays/index.js +4 -4
  295. package/dist/core/shaders/Goo/index.js +7 -7
  296. package/dist/core/shaders/GradientMap/index.js +4 -4
  297. package/dist/core/shaders/Grayscale/index.js +4 -4
  298. package/dist/core/shaders/Grid/index.js +4 -4
  299. package/dist/core/shaders/GridDistortion/index.js +4 -4
  300. package/dist/core/shaders/Group/index.js +4 -4
  301. package/dist/core/shaders/HTMLInCanvas/index.js +4 -4
  302. package/dist/core/shaders/Halftone/index.js +4 -4
  303. package/dist/core/shaders/Heart/index.js +5 -5
  304. package/dist/core/shaders/Heatmap/index.js +8 -8
  305. package/dist/core/shaders/HexGrid/index.js +4 -4
  306. package/dist/core/shaders/Hologram/index.js +8 -8
  307. package/dist/core/shaders/Holographic/index.js +8 -8
  308. package/dist/core/shaders/HueShift/index.js +4 -4
  309. package/dist/core/shaders/ImageTexture/index.js +5 -5
  310. package/dist/core/shaders/InkFlow/index.js +4 -4
  311. package/dist/core/shaders/Invert/index.js +4 -4
  312. package/dist/core/shaders/IrisWipe/index.js +4 -4
  313. package/dist/core/shaders/IsometricCubes/index.js +4 -4
  314. package/dist/core/shaders/Kaleidoscope/index.js +4 -4
  315. package/dist/core/shaders/KeyFrames/index.js +4 -4
  316. package/dist/core/shaders/LensDistortion/index.d.ts +123 -0
  317. package/dist/core/shaders/LensDistortion/index.d.ts.map +1 -0
  318. package/dist/core/shaders/LensDistortion/index.js +8 -0
  319. package/dist/core/shaders/LensFlare/index.js +4 -4
  320. package/dist/core/shaders/LightEdge/index.js +8 -8
  321. package/dist/core/shaders/LightLeak/index.js +5 -5
  322. package/dist/core/shaders/LinearBlur/index.js +4 -4
  323. package/dist/core/shaders/LinearGradient/index.js +4 -4
  324. package/dist/core/shaders/LinearWipe/index.js +4 -4
  325. package/dist/core/shaders/LiquidMetal/index.js +8 -8
  326. package/dist/core/shaders/Liquify/index.js +4 -4
  327. package/dist/core/shaders/MagneticFilings/index.d.ts +0 -2
  328. package/dist/core/shaders/MagneticFilings/index.d.ts.map +1 -1
  329. package/dist/core/shaders/MagneticFilings/index.js +8 -7
  330. package/dist/core/shaders/Marble/index.js +5 -5
  331. package/dist/core/shaders/Mirror/index.js +4 -4
  332. package/dist/core/shaders/MultiPointGradient/index.js +4 -4
  333. package/dist/core/shaders/Neon/index.js +6 -6
  334. package/dist/core/shaders/NoiseDissolve/index.js +5 -5
  335. package/dist/core/shaders/ObjectTracker/index.js +5 -5
  336. package/dist/core/shaders/PagePeel/index.js +4 -4
  337. package/dist/core/shaders/Paper/index.js +5 -5
  338. package/dist/core/shaders/Parallelogram/index.js +5 -5
  339. package/dist/core/shaders/ParticleField/index.d.ts +10 -5
  340. package/dist/core/shaders/ParticleField/index.d.ts.map +1 -1
  341. package/dist/core/shaders/ParticleField/index.js +7 -7
  342. package/dist/core/shaders/ParticleFlow/index.d.ts +10 -4
  343. package/dist/core/shaders/ParticleFlow/index.d.ts.map +1 -1
  344. package/dist/core/shaders/ParticleFlow/index.js +8 -7
  345. package/dist/core/shaders/Particles/index.d.ts +4 -3
  346. package/dist/core/shaders/Particles/index.d.ts.map +1 -1
  347. package/dist/core/shaders/Particles/index.js +9 -9
  348. package/dist/core/shaders/PerlinNoise/index.js +7 -7
  349. package/dist/core/shaders/Perspective/index.js +4 -4
  350. package/dist/core/shaders/PixelSort/index.js +4 -4
  351. package/dist/core/shaders/PixelThrow/index.js +4 -4
  352. package/dist/core/shaders/Pixelate/index.js +4 -4
  353. package/dist/core/shaders/Plasma/index.js +5 -5
  354. package/dist/core/shaders/Plastic/index.js +8 -8
  355. package/dist/core/shaders/PolarCoordinates/index.js +4 -4
  356. package/dist/core/shaders/Polygon/index.js +5 -5
  357. package/dist/core/shaders/Posterize/index.js +4 -4
  358. package/dist/core/shaders/Prism/index.js +4 -4
  359. package/dist/core/shaders/ProgressiveBlur/index.js +5 -5
  360. package/dist/core/shaders/RadialGradient/index.js +4 -4
  361. package/dist/core/shaders/RadialWipe/index.js +4 -4
  362. package/dist/core/shaders/RandomBars/index.js +5 -5
  363. package/dist/core/shaders/ReactionDiffusion/index.js +4 -4
  364. package/dist/core/shaders/RectangularCoordinates/index.js +4 -4
  365. package/dist/core/shaders/ReflectivePlane/index.js +5 -5
  366. package/dist/core/shaders/Repeater/index.js +4 -4
  367. package/dist/core/shaders/Ring/index.js +5 -5
  368. package/dist/core/shaders/RippleWipe/index.js +4 -4
  369. package/dist/core/shaders/Ripples/index.js +4 -4
  370. package/dist/core/shaders/RoundedRect/index.js +5 -5
  371. package/dist/core/shaders/Saturation/index.js +4 -4
  372. package/dist/core/shaders/Scratches/index.js +7 -7
  373. package/dist/core/shaders/Sharpness/index.js +4 -4
  374. package/dist/core/shaders/Shatter/index.js +4 -4
  375. package/dist/core/shaders/SimplexNoise/index.js +6 -6
  376. package/dist/core/shaders/SineWave/index.js +4 -4
  377. package/dist/core/shaders/SliceWipe/index.js +4 -4
  378. package/dist/core/shaders/Smoke/index.js +4 -4
  379. package/dist/core/shaders/SmokeFill/index.js +7 -7
  380. package/dist/core/shaders/SmokeFlow/index.js +4 -4
  381. package/dist/core/shaders/Solarize/index.js +4 -4
  382. package/dist/core/shaders/SolidColor/index.js +1 -1
  383. package/dist/core/shaders/Spherize/index.js +4 -4
  384. package/dist/core/shaders/Spiral/index.js +4 -4
  385. package/dist/core/shaders/Star/index.js +5 -5
  386. package/dist/core/shaders/Stone/index.js +4 -4
  387. package/dist/core/shaders/Strands/index.js +4 -4
  388. package/dist/core/shaders/Stretch/index.js +4 -4
  389. package/dist/core/shaders/Stripes/index.js +4 -4
  390. package/dist/core/shaders/StudioBackground/index.js +4 -4
  391. package/dist/core/shaders/SunBurst/index.js +4 -4
  392. package/dist/core/shaders/Surface3D/index.d.ts +4 -2
  393. package/dist/core/shaders/Surface3D/index.d.ts.map +1 -1
  394. package/dist/core/shaders/Surface3D/index.js +6 -5
  395. package/dist/core/shaders/Swirl/index.js +4 -4
  396. package/dist/core/shaders/Teardrop/index.js +5 -5
  397. package/dist/core/shaders/Text/index.js +5 -5
  398. package/dist/core/shaders/ThinFilm/index.js +6 -6
  399. package/dist/core/shaders/TiltShift/index.js +5 -5
  400. package/dist/core/shaders/TimeTrail/index.d.ts +47 -1
  401. package/dist/core/shaders/TimeTrail/index.d.ts.map +1 -1
  402. package/dist/core/shaders/TimeTrail/index.js +6 -5
  403. package/dist/core/shaders/Tint/index.js +4 -4
  404. package/dist/core/shaders/Trapezoid/index.js +5 -5
  405. package/dist/core/shaders/TriangularGrid/index.js +4 -4
  406. package/dist/core/shaders/Tritone/index.js +4 -4
  407. package/dist/core/shaders/Truchet/index.js +4 -4
  408. package/dist/core/shaders/Twirl/index.js +4 -4
  409. package/dist/core/shaders/VHS/index.js +4 -4
  410. package/dist/core/shaders/VenetianBlinds/index.js +4 -4
  411. package/dist/core/shaders/Vesica/index.js +5 -5
  412. package/dist/core/shaders/Vibrance/index.js +4 -4
  413. package/dist/core/shaders/VideoTexture/index.js +4 -4
  414. package/dist/core/shaders/Vignette/index.js +4 -4
  415. package/dist/core/shaders/Voronoi/index.js +4 -4
  416. package/dist/core/shaders/Water/index.js +8 -8
  417. package/dist/core/shaders/Watercolor/index.d.ts +1 -1
  418. package/dist/core/shaders/Watercolor/index.d.ts.map +1 -1
  419. package/dist/core/shaders/Watercolor/index.js +5 -4
  420. package/dist/core/shaders/WaveDistortion/index.js +4 -4
  421. package/dist/core/shaders/WaveletNoise/index.js +7 -7
  422. package/dist/core/shaders/Weave/index.js +4 -4
  423. package/dist/core/shaders/WebcamTexture/index.js +5 -5
  424. package/dist/core/shaders/Wool/index.js +4 -4
  425. package/dist/core/shaders/WorleyNoise/index.js +4 -4
  426. package/dist/core/shaders/ZoomBlur/index.js +4 -4
  427. package/dist/core/{shapeEffectBounds-CtKwBX8c.js → shapeEffectBounds-Dg4GQ5vW.js} +3 -3
  428. package/dist/js/bundle.js +174 -174
  429. package/dist/js/createShader.js +1 -1
  430. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  431. package/dist/js/utils/generatePresetCode.js +27 -0
  432. package/dist/react/LensDistortion.js +226 -0
  433. package/dist/react/Preview.js +1 -0
  434. package/dist/react/Shader.js +1 -1
  435. package/dist/react/bundle.js +160 -160
  436. package/dist/react/components/LensDistortion.d.ts +54 -0
  437. package/dist/react/components/LensDistortion.d.ts.map +1 -0
  438. package/dist/react/engine/Preview.d.ts.map +1 -1
  439. package/dist/react/index.d.ts +1 -0
  440. package/dist/react/index.d.ts.map +1 -1
  441. package/dist/react/index.js +2 -1
  442. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  443. package/dist/react/utils/generatePresetCode.js +27 -0
  444. package/dist/registry.js +585 -1
  445. package/dist/solid/components/LensDistortion.d.ts +51 -0
  446. package/dist/solid/components/LensDistortion.d.ts.map +1 -0
  447. package/dist/solid/components/LensDistortion.js +232 -0
  448. package/dist/solid/engine/Preview.d.ts.map +1 -1
  449. package/dist/solid/engine/Preview.js +193 -191
  450. package/dist/solid/engine/Shader.js +1 -1
  451. package/dist/solid/index.d.ts +1 -0
  452. package/dist/solid/index.d.ts.map +1 -1
  453. package/dist/solid/index.js +194 -192
  454. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  455. package/dist/solid/utils/generatePresetCode.js +27 -0
  456. package/dist/svelte/components/LensDistortion.svelte.d.ts +41 -0
  457. package/dist/svelte/index.d.ts +1 -0
  458. package/dist/svelte/index.js +2751 -2544
  459. package/dist/svelte/source/components/LensDistortion.svelte +365 -0
  460. package/dist/svelte/source/engine/Preview.svelte +2 -0
  461. package/dist/svelte/source/index.js +1 -0
  462. package/dist/svelte/utils/generatePresetCode.js +27 -0
  463. package/dist/vue/LensDistortion.js +3 -0
  464. package/dist/vue/LensDistortion.vue_vue_type_script_setup_true_lang.js +244 -0
  465. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
  466. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  467. package/dist/vue/components/LensDistortion.vue.d.ts +76 -0
  468. package/dist/vue/components/LensDistortion.vue.d.ts.map +1 -0
  469. package/dist/vue/index.d.ts +1 -0
  470. package/dist/vue/index.d.ts.map +1 -1
  471. package/dist/vue/index.js +2 -1
  472. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  473. package/dist/vue/utils/generatePresetCode.js +27 -0
  474. package/package.json +9 -1
  475. package/dist/core/shaderRegistry-CcvE7wN0.js +0 -425
  476. /package/dist/core/{SolidColor-Cu_9b_my.js → SolidColor-dYxjV0YF.js} +0 -0
  477. /package/dist/core/{fonts-v_F1SFl9.js → fonts-DFuXI3Hk.js} +0 -0
@@ -0,0 +1,365 @@
1
+ <script lang="ts">
2
+ import { getContext, setContext, onMount, onDestroy } from 'svelte';
3
+ import {
4
+ createGpuUniformsMap,
5
+ resolveBoundingBox,
6
+ type GpuUniformsMap,
7
+ type BlendMode,
8
+ type NodeMetadata,
9
+ type PropConfig,
10
+ type MaskConfig,
11
+ type PropDriver,
12
+ type TransformConfig,
13
+ type BoundingBoxConfig,
14
+ type LayoutConfig
15
+ } from '../../../core/index.js';
16
+ import {setColorSpaceMode} from '../../../core/utilities/transformations/index.js';
17
+
18
+ // @ts-ignore - this import is replaced at build time
19
+ import { componentDefinition, type ComponentProps } from '../../../core/shaders/LensDistortion/index.js';
20
+
21
+ // Warn once per page load if this is an experimental component
22
+ let _experimentalWarnedOnce = false;
23
+ if ((componentDefinition as any).experimental && !_experimentalWarnedOnce) {
24
+ _experimentalWarnedOnce = true;
25
+ const _e = (componentDefinition as any).experimental;
26
+ console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, 'color: #f59e0b; font-weight: bold');
27
+ }
28
+
29
+ /**
30
+ * Define component props including blend mode, opacity, visibility, masking, and transformation
31
+ */
32
+ interface ExtendedComponentProps extends Partial<ComponentProps> {
33
+ center?: ComponentProps['center'] | PropDriver;
34
+ spread?: ComponentProps['spread'] | PropDriver;
35
+ angle?: ComponentProps['angle'] | PropDriver;
36
+ perspective?: ComponentProps['perspective'] | PropDriver;
37
+ bias?: ComponentProps['bias'] | PropDriver;
38
+ count?: ComponentProps['count'] | PropDriver;
39
+ dispersion?: ComponentProps['dispersion'] | PropDriver;
40
+ dispersionShift?: ComponentProps['dispersionShift'] | PropDriver;
41
+ dispersionColor?: ComponentProps['dispersionColor'] | PropDriver;
42
+ focusCenter?: ComponentProps['focusCenter'] | PropDriver;
43
+ focusEdges?: ComponentProps['focusEdges'] | PropDriver;
44
+ lensBulge?: ComponentProps['lensBulge'] | PropDriver;
45
+ lensCircle?: ComponentProps['lensCircle'] | PropDriver;
46
+ swirl?: ComponentProps['swirl'] | PropDriver;
47
+ noise?: ComponentProps['noise'] | PropDriver;
48
+ noiseFrequency?: ComponentProps['noiseFrequency'] | PropDriver;
49
+ noiseOffset?: ComponentProps['noiseOffset'] | PropDriver;
50
+ grainMixer?: ComponentProps['grainMixer'] | PropDriver;
51
+ grainOverlay?: ComponentProps['grainOverlay'] | PropDriver;
52
+ blendMode?: BlendMode;
53
+ opacity?: number;
54
+ visible?: boolean;
55
+ id?: string;
56
+ maskSource?: string;
57
+ maskType?: string;
58
+ renderOrder?: number;
59
+ transform?: Partial<TransformConfig>;
60
+ boundingBox?: Partial<BoundingBoxConfig>;
61
+ flow?: LayoutConfig;
62
+ absolute?: boolean;
63
+ children?: import('svelte').Snippet;
64
+ }
65
+
66
+ function isPropDriver(value: unknown): value is PropDriver {
67
+ return typeof value === 'object' && value !== null && 'type' in value &&
68
+ ((value as any).type === 'map' || (value as any).type === 'mouse' || (value as any).type === 'mouse-position' || (value as any).type === 'auto-animate');
69
+ }
70
+
71
+ /**
72
+ * Default transform configuration (optimized for zero overhead)
73
+ */
74
+ const DEFAULT_TRANSFORM: TransformConfig = {
75
+ offsetX: 0,
76
+ offsetY: 0,
77
+ rotation: 0,
78
+ scale: 1,
79
+ anchorX: 0.5,
80
+ anchorY: 0.5,
81
+ edges: 'transparent'
82
+ };
83
+
84
+ // Define the component props and their default values from the shader definition
85
+ const componentDefaults = {
86
+ blendMode: 'normal' as BlendMode,
87
+ visible: true,
88
+ // opacity intentionally has no default - handled by renderer
89
+ // transform intentionally has no default - handled by effectiveTransform
90
+ ...Object.entries(componentDefinition.props).reduce(
91
+ (acc, [key, config]) => {
92
+ acc[key] = (config as unknown as PropConfig<typeof config>).default;
93
+ return acc;
94
+ },
95
+ {} as Record<string, any>
96
+ )
97
+ };
98
+
99
+ // Declare props using Svelte 5's syntax
100
+ const props: ExtendedComponentProps = $props();
101
+
102
+ // Apply defaults manually since Svelte 5 doesn't have withDefaults equivalent
103
+ // Use $derived so the metadata $effect re-runs when any of these change at runtime
104
+ const blendMode = $derived(props.blendMode ?? componentDefaults.blendMode);
105
+ const opacity = $derived(props.opacity); // No default - handled by renderer
106
+ const visible = $derived(props.visible ?? componentDefaults.visible); // Default to true
107
+ const id = $derived(props.id);
108
+ const maskSource = $derived(props.maskSource);
109
+ const maskType = $derived(props.maskType);
110
+ const renderOrder = $derived(props.renderOrder);
111
+ const { children } = props;
112
+
113
+ // Collect PropDriver values from shader props into the maps metadata structure
114
+ const mapsFromProps = $derived.by(() => {
115
+ const maps: Record<string, PropDriver> = {};
116
+ for (const key of Object.keys(componentDefinition.props)) {
117
+ const val = (props as any)[key];
118
+ if (isPropDriver(val)) maps[key] = val as PropDriver;
119
+ }
120
+ return Object.keys(maps).length > 0 ? maps : undefined;
121
+ });
122
+
123
+ /**
124
+ * Computed transform that merges user-provided values with defaults
125
+ */
126
+ const effectiveTransform = $derived({
127
+ ...DEFAULT_TRANSFORM,
128
+ ...props.transform
129
+ });
130
+
131
+ /**
132
+ * Effective bounding box — partial configs merge with full-frame defaults,
133
+ * absent stays undefined so the bbox render path is not activated
134
+ */
135
+ const effectiveBoundingBox = $derived(resolveBoundingBox(props.boundingBox));
136
+
137
+ /**
138
+ * FIRST: Get the parent ID from context BEFORE setting our own context
139
+ */
140
+ const parentId = getContext<string>('shaderParentId');
141
+ if (parentId === undefined) {
142
+ throw new Error('Shader components must be used inside an <Shader> component or another shader component');
143
+ }
144
+
145
+ /**
146
+ * Use the provided ID or generate a unique identifier for this component instance
147
+ */
148
+ const instanceId = (id ? id.replace(/[^a-zA-Z0-9_]/g, '_') : null) || Math.random().toString(36).substring(2, 10);
149
+
150
+ /**
151
+ * THEN: Provide our unique identifier to child components
152
+ */
153
+ setContext('shaderParentId', instanceId);
154
+
155
+ /**
156
+ * Creates a non-reactive object containing only props that differ from defaults
157
+ * This optimization prevents unnecessary GPU uniform updates for unchanged values
158
+ * Special props like blendMode and opacity are handled separately
159
+ */
160
+ const shaderReadyProps = $derived.by(() => {
161
+ let baseProps = { ...componentDefaults };
162
+
163
+ // Only include props that differ from defaults (excluding special props and PropDrivers)
164
+ for (const key in props) {
165
+ if (key !== 'blendMode' && key !== 'opacity' && key !== 'visible' &&
166
+ key !== 'id' && key !== 'maskSource' && key !== 'maskType' && key !== 'renderOrder' &&
167
+ key !== 'transform' && key !== 'boundingBox' && key !== 'flow' && key !== 'absolute' && key !== 'children') {
168
+ const propValue = (props as any)[key];
169
+ if (isPropDriver(propValue)) continue; // PropDrivers go to metadata.maps, not uniforms
170
+ const defaultValue = (componentDefaults as any)[key];
171
+ if (propValue !== undefined && propValue !== defaultValue) {
172
+ (baseProps as any)[key] = propValue;
173
+ }
174
+ }
175
+ }
176
+ return baseProps;
177
+ });
178
+
179
+ /**
180
+ * Get the color space from the root Shader component.
181
+ * Used to set the global color space mode before creating uniforms.
182
+ */
183
+ const shaderColorSpace = getContext<() => 'p3-linear' | 'srgb'>('shaderColorSpace');
184
+
185
+ /**
186
+ * Creates the GPU uniform values map using only the changed props
187
+ * Set the global color space mode before creating uniforms so colors are transformed correctly
188
+ * Note: Intentionally captures initial value - props are immutable after initialization
189
+ */
190
+ if (shaderColorSpace) {
191
+ setColorSpaceMode(shaderColorSpace());
192
+ }
193
+ // svelte-ignore state_referenced_locally
194
+ const uniforms: GpuUniformsMap = createGpuUniformsMap(componentDefinition, shaderReadyProps, instanceId);
195
+
196
+ /**
197
+ * Get the node registration function from parent context
198
+ */
199
+ const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: GpuUniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
200
+ if (parentRegister === undefined) {
201
+ throw new Error('Shader components must be used inside an <Shader> component or another shader component');
202
+ }
203
+
204
+ /**
205
+ * Get the uniform update function from parent context
206
+ */
207
+ const parentUniformUpdate = getContext<(nodeId: string, uniformName: string, value: any) => void>('shaderUniformUpdate');
208
+ if (parentUniformUpdate === undefined) {
209
+ throw new Error('Shader components require shaderUniformUpdate from parent');
210
+ }
211
+
212
+ /**
213
+ * Get the metadata update function from parent context
214
+ */
215
+ const parentMetadataUpdate = getContext<(nodeId: string, metadata: NodeMetadata) => void>('shaderMetadataUpdate');
216
+ if (parentMetadataUpdate === undefined) {
217
+ throw new Error('Shader components require shaderMetadataUpdate from parent');
218
+ }
219
+
220
+ // capturesDOM — canvas layoutsubtree portal for HTMLInCanvas-style shaders
221
+ const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
222
+ let captureCanvas: HTMLCanvasElement | undefined;
223
+ let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
224
+ let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
225
+
226
+ function teleportToBody(node: HTMLElement) {
227
+ document.body.appendChild(node);
228
+ return { destroy() { node.remove(); } };
229
+ }
230
+
231
+ if (isCapturesDOM) {
232
+ const onWinResize = () => {
233
+ const d = Math.min(window.devicePixelRatio, 2);
234
+ captureW = Math.round(window.innerWidth * d);
235
+ captureH = Math.round(window.innerHeight * d);
236
+ };
237
+ onMount(() => { window.addEventListener('resize', onWinResize); });
238
+ onDestroy(() => { window.removeEventListener('resize', onWinResize); });
239
+ }
240
+
241
+ // DOM marker ref for determining render order from template position
242
+ let orderMarker: HTMLSpanElement;
243
+
244
+ // Stores the DOM-detected render order
245
+ let detectedRenderOrder: number | undefined = undefined;
246
+
247
+ // Flag to track when component is registered
248
+ let isRegistered = $state(false);
249
+
250
+ // Setup uniform watchers with registration guard
251
+ Object.entries(uniforms).forEach(([propName, entry]) => {
252
+ $effect(() => {
253
+ // Only run after component is registered
254
+ if (!isRegistered) return;
255
+
256
+ // GPU bridge entries carry `.value` (no v1 `.uniform` node). colorStops expands into
257
+ // extra array fields (colorsArray/…) that aren't component props — their `props[name]`
258
+ // is always undefined, so the guard below skips them.
259
+ if (entry && entry.value !== undefined) {
260
+ const newValue = (props as any)[propName];
261
+ if (newValue !== undefined && !isPropDriver(newValue)) {
262
+ // Send raw value - renderer will handle transformation
263
+ // PropDriver values go to metadata.maps, not uniforms
264
+ parentUniformUpdate(instanceId, propName, newValue);
265
+ }
266
+ }
267
+ });
268
+ });
269
+
270
+ // Watch blend mode, opacity, visibility, masking, transformations, and prop maps changes
271
+ $effect(() => {
272
+ // Only run after component is registered
273
+ if (!isRegistered) return;
274
+
275
+ const metadata: NodeMetadata = {
276
+ blendMode,
277
+ opacity,
278
+ visible: visible === false ? false : true,
279
+ id,
280
+ mask: maskSource ? {
281
+ source: maskSource,
282
+ type: (maskType || 'alpha') as MaskConfig['type']
283
+ } : undefined,
284
+ maps: mapsFromProps,
285
+ renderOrder: renderOrder ?? detectedRenderOrder,
286
+ transform: effectiveTransform,
287
+ boundingBox: effectiveBoundingBox,
288
+ flow: props.flow,
289
+ absolute: props.absolute
290
+ };
291
+ parentMetadataUpdate(instanceId, metadata);
292
+ });
293
+
294
+ // Register this component after mount to ensure parent is ready
295
+ onMount(() => {
296
+ // Register this component with safety check
297
+ if (componentDefinition && typeof componentDefinition.fragment === 'function') {
298
+ parentRegister(
299
+ instanceId,
300
+ componentDefinition.fragment,
301
+ parentId,
302
+ {
303
+ blendMode,
304
+ opacity,
305
+ visible: visible !== false ? true : false,
306
+ id,
307
+ mask: maskSource ? {
308
+ source: maskSource,
309
+ type: (maskType || 'alpha') as MaskConfig['type']
310
+ } as MaskConfig : undefined,
311
+ maps: mapsFromProps,
312
+ renderOrder: renderOrder ?? detectedRenderOrder,
313
+ transform: effectiveTransform,
314
+ boundingBox: effectiveBoundingBox,
315
+ flow: props.flow,
316
+ absolute: props.absolute
317
+ },
318
+ uniforms,
319
+ componentDefinition,
320
+ isCapturesDOM ? captureCanvas : undefined
321
+ );
322
+
323
+ // Set flag to enable effects after successful registration
324
+ isRegistered = true;
325
+
326
+ // Detect DOM position for correct render ordering
327
+ if (renderOrder === undefined && orderMarker) {
328
+ const parent = orderMarker.parentElement;
329
+ if (parent) {
330
+ const siblings = parent.querySelectorAll(':scope > [data-shader-id]');
331
+ const position = Array.from(siblings).indexOf(orderMarker);
332
+ if (position >= 0) {
333
+ detectedRenderOrder = position;
334
+ parentMetadataUpdate(instanceId, { renderOrder: position } as NodeMetadata);
335
+ }
336
+ }
337
+ }
338
+ } else {
339
+ console.error('componentDefinition.fragment is not a function:', {
340
+ componentDefinition,
341
+ fragment: componentDefinition?.fragment,
342
+ type: typeof componentDefinition?.fragment
343
+ });
344
+ }
345
+ });
346
+
347
+ // Clean up node from registry when component is unmounted
348
+ onDestroy(() => {
349
+ isRegistered = false;
350
+ parentRegister(instanceId, null, null, null, null);
351
+ });
352
+ </script>
353
+
354
+ <span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
355
+ {#if !isCapturesDOM}
356
+ {@render children?.()}
357
+ {/if}
358
+ </span>
359
+ {#if isCapturesDOM}
360
+ <canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
361
+ width={captureW} height={captureH}
362
+ style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
363
+ {@render children?.()}
364
+ </canvas>
365
+ {/if}
@@ -100,6 +100,7 @@ import IrisWipe from '../components/IrisWipe.svelte'
100
100
  import IsometricCubes from '../components/IsometricCubes.svelte'
101
101
  import Kaleidoscope from '../components/Kaleidoscope.svelte'
102
102
  import KeyFrames from '../components/KeyFrames.svelte'
103
+ import LensDistortion from '../components/LensDistortion.svelte'
103
104
  import LensFlare from '../components/LensFlare.svelte'
104
105
  import LightEdge from '../components/LightEdge.svelte'
105
106
  import LightLeak from '../components/LightLeak.svelte'
@@ -294,6 +295,7 @@ const componentMap: Record<string, any> = {
294
295
  IsometricCubes,
295
296
  Kaleidoscope,
296
297
  KeyFrames,
298
+ LensDistortion,
297
299
  LensFlare,
298
300
  LightEdge,
299
301
  LightLeak,
@@ -95,6 +95,7 @@ export { default as IrisWipe } from './components/IrisWipe.svelte';
95
95
  export { default as IsometricCubes } from './components/IsometricCubes.svelte';
96
96
  export { default as Kaleidoscope } from './components/Kaleidoscope.svelte';
97
97
  export { default as KeyFrames } from './components/KeyFrames.svelte';
98
+ export { default as LensDistortion } from './components/LensDistortion.svelte';
98
99
  export { default as LensFlare } from './components/LensFlare.svelte';
99
100
  export { default as LightEdge } from './components/LightEdge.svelte';
100
101
  export { default as LightLeak } from './components/LightLeak.svelte';
@@ -1305,6 +1305,32 @@ var shaderMetadata = {
1305
1305
  "keyframeColor": "#ffcf33",
1306
1306
  "pathColor": "#ffffffb8"
1307
1307
  },
1308
+ "LensDistortion": {
1309
+ "opacity": 1,
1310
+ "blendMode": "normal",
1311
+ "center": {
1312
+ "x": .5,
1313
+ "y": .5
1314
+ },
1315
+ "spread": .6,
1316
+ "angle": 0,
1317
+ "perspective": .1,
1318
+ "bias": 1,
1319
+ "count": 35,
1320
+ "dispersion": 1,
1321
+ "dispersionShift": 0,
1322
+ "dispersionColor": .6,
1323
+ "focusCenter": .8,
1324
+ "focusEdges": 1,
1325
+ "lensBulge": 0,
1326
+ "lensCircle": 0,
1327
+ "swirl": .35,
1328
+ "noise": 0,
1329
+ "noiseFrequency": .25,
1330
+ "noiseOffset": 0,
1331
+ "grainMixer": 0,
1332
+ "grainOverlay": 0
1333
+ },
1308
1334
  "LensFlare": {
1309
1335
  "opacity": 1,
1310
1336
  "blendMode": "normal",
@@ -2983,6 +3009,7 @@ const availableComponents = [
2983
3009
  "IsometricCubes",
2984
3010
  "Kaleidoscope",
2985
3011
  "KeyFrames",
3012
+ "LensDistortion",
2986
3013
  "LensFlare",
2987
3014
  "LightEdge",
2988
3015
  "LightLeak",
@@ -0,0 +1,3 @@
1
+ import LensDistortion_vue_vue_type_script_setup_true_lang_default from "./LensDistortion.vue_vue_type_script_setup_true_lang.js";
2
+ var LensDistortion_default = LensDistortion_vue_vue_type_script_setup_true_lang_default;
3
+ export { LensDistortion_default as default };
@@ -0,0 +1,244 @@
1
+ import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, effectScope, inject, mergeDefaults, mergeProps, onBeforeUnmount, onMounted, openBlock, provide, ref, renderSlot, toValue, unref, useId, watch } from "vue";
2
+ import { createGpuUniformsMap, resolveBoundingBox } from "../core/index.js";
3
+ import { setColorSpaceMode } from "../core/utilities/transformations/index.js";
4
+ import { componentDefinition } from "../core/shaders/LensDistortion/index.js";
5
+ var _hoisted_1 = ["data-shader-id"];
6
+ var _hoisted_2 = ["width", "height"];
7
+ var LensDistortion_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ __name: "LensDistortion",
9
+ props: /* @__PURE__ */ mergeDefaults({
10
+ center: {},
11
+ spread: {},
12
+ angle: {},
13
+ perspective: {},
14
+ bias: {},
15
+ count: {},
16
+ dispersion: {},
17
+ dispersionShift: {},
18
+ dispersionColor: {},
19
+ focusCenter: {},
20
+ focusEdges: {},
21
+ lensBulge: {},
22
+ lensCircle: {},
23
+ swirl: {},
24
+ noise: {},
25
+ noiseFrequency: {},
26
+ noiseOffset: {},
27
+ grainMixer: {},
28
+ grainOverlay: {},
29
+ blendMode: {},
30
+ opacity: {},
31
+ visible: { type: Boolean },
32
+ id: {},
33
+ maskSource: {},
34
+ maskType: {},
35
+ renderOrder: {},
36
+ transform: {},
37
+ boundingBox: {},
38
+ flow: {},
39
+ absolute: { type: Boolean }
40
+ }, {
41
+ blendMode: "normal",
42
+ visible: true,
43
+ ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
44
+ acc[key] = config.default;
45
+ return acc;
46
+ }, {})
47
+ }),
48
+ setup(__props) {
49
+ let _experimentalWarnedOnce = false;
50
+ if (componentDefinition.experimental && !_experimentalWarnedOnce) {
51
+ _experimentalWarnedOnce = true;
52
+ const _e = componentDefinition.experimental;
53
+ console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, "color: #f59e0b; font-weight: bold");
54
+ }
55
+ function isPropDriver(value) {
56
+ return typeof value === "object" && value !== null && "type" in value && (value.type === "map" || value.type === "mouse" || value.type === "mouse-position" || value.type === "auto-animate");
57
+ }
58
+ const props = __props;
59
+ const instanceId = (props.id ? props.id.replace(/[^a-zA-Z0-9_]/g, "_") : null) || useId().replace(/[^a-zA-Z0-9_]/g, "");
60
+ provide("shaderParentId", instanceId);
61
+ const DEFAULT_TRANSFORM = {
62
+ offsetX: 0,
63
+ offsetY: 0,
64
+ rotation: 0,
65
+ scale: 1,
66
+ anchorX: .5,
67
+ anchorY: .5,
68
+ edges: "transparent"
69
+ };
70
+ const effectiveTransform = computed(() => ({
71
+ ...DEFAULT_TRANSFORM,
72
+ ...props.transform
73
+ }));
74
+ const effectiveBoundingBox = computed(() => resolveBoundingBox(props.boundingBox));
75
+ const shaderReadyProps = computed(() => {
76
+ let baseProps = { ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
77
+ acc[key] = config.default;
78
+ return acc;
79
+ }, {}) };
80
+ for (const key in props) if (key !== "blendMode" && key !== "opacity" && key !== "visible" && key !== "id" && key !== "maskSource" && key !== "maskType" && key !== "renderOrder" && key !== "transform" && key !== "boundingBox" && key !== "flow" && key !== "absolute") {
81
+ const val = toValue(props[key]);
82
+ if (isPropDriver(val)) continue;
83
+ if (val !== Object.entries(componentDefinition.props).reduce((acc, [key$1, config]) => {
84
+ acc[key$1] = config.default;
85
+ return acc;
86
+ }, {})[key]) baseProps[key] = val;
87
+ }
88
+ return baseProps;
89
+ });
90
+ const mapsFromProps = computed(() => {
91
+ const maps = {};
92
+ for (const key of Object.keys(componentDefinition.props)) {
93
+ const val = props[key];
94
+ if (isPropDriver(val)) maps[key] = val;
95
+ }
96
+ return Object.keys(maps).length > 0 ? maps : void 0;
97
+ });
98
+ const shaderColorSpace = inject("shaderColorSpace");
99
+ if (shaderColorSpace) setColorSpaceMode(shaderColorSpace.value);
100
+ const uniforms = createGpuUniformsMap(componentDefinition, shaderReadyProps.value, instanceId);
101
+ const parentId = inject("shaderParentId");
102
+ if (parentId === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
103
+ const parentRegister = inject("shaderNodeRegister");
104
+ if (parentRegister === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
105
+ const parentUniformUpdate = inject("shaderUniformUpdate");
106
+ if (parentUniformUpdate === void 0) throw new Error("Shader components require shaderUniformUpdate from parent");
107
+ const parentMetadataUpdate = inject("shaderMetadataUpdate");
108
+ if (parentMetadataUpdate === void 0) throw new Error("Shader components require shaderMetadataUpdate from parent");
109
+ const rendererResetSignal = inject("shaderRendererResetSignal");
110
+ const orderMarker = ref(null);
111
+ const isCapturesDOM = !!componentDefinition.capturesDOM;
112
+ const captureCanvas = ref(null);
113
+ const captureW = ref(typeof window !== "undefined" ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
114
+ const captureH = ref(typeof window !== "undefined" ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
115
+ const captureStyle = {
116
+ position: "fixed",
117
+ inset: "0",
118
+ width: "100vw",
119
+ height: "100vh",
120
+ zIndex: "-9999"
121
+ };
122
+ if (isCapturesDOM) {
123
+ const onWinResize = () => {
124
+ const d = Math.min(window.devicePixelRatio, 2);
125
+ captureW.value = Math.round(window.innerWidth * d);
126
+ captureH.value = Math.round(window.innerHeight * d);
127
+ };
128
+ onMounted(() => {
129
+ const d = Math.min(window.devicePixelRatio, 2);
130
+ captureW.value = Math.round(window.innerWidth * d);
131
+ captureH.value = Math.round(window.innerHeight * d);
132
+ window.addEventListener("resize", onWinResize);
133
+ });
134
+ onBeforeUnmount(() => {
135
+ window.removeEventListener("resize", onWinResize);
136
+ });
137
+ }
138
+ let detectedRenderOrder = void 0;
139
+ const registerWithRenderer = () => {
140
+ parentRegister(instanceId, componentDefinition.fragment, parentId, {
141
+ blendMode: props.blendMode,
142
+ opacity: props.opacity,
143
+ visible: props.visible === false ? false : true,
144
+ id: props.id,
145
+ mask: props.maskSource ? {
146
+ source: props.maskSource,
147
+ type: props.maskType || "alpha"
148
+ } : void 0,
149
+ maps: mapsFromProps.value,
150
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
151
+ transform: effectiveTransform.value,
152
+ boundingBox: effectiveBoundingBox.value,
153
+ flow: props.flow,
154
+ absolute: props.absolute
155
+ }, uniforms, componentDefinition, isCapturesDOM ? captureCanvas.value ?? void 0 : void 0);
156
+ };
157
+ onMounted(() => {
158
+ if (props.renderOrder === void 0 && orderMarker.value) {
159
+ const parent = orderMarker.value.parentElement;
160
+ if (parent) {
161
+ const siblings = parent.querySelectorAll(":scope > [data-shader-id]");
162
+ const position = Array.from(siblings).indexOf(orderMarker.value);
163
+ if (position >= 0) {
164
+ detectedRenderOrder = position;
165
+ parentMetadataUpdate(instanceId, { renderOrder: position });
166
+ }
167
+ }
168
+ }
169
+ });
170
+ const setupUniformWatchers = () => {
171
+ const scope = effectScope();
172
+ scope.run(() => {
173
+ Object.entries(uniforms).forEach(([propName, entry]) => {
174
+ watch(() => props[propName], (newValue) => {
175
+ if (entry && entry.value !== void 0 && !isPropDriver(newValue)) parentUniformUpdate(instanceId, propName, newValue);
176
+ }, { deep: true });
177
+ });
178
+ watch(() => [
179
+ props.blendMode,
180
+ props.opacity,
181
+ props.visible,
182
+ props.id,
183
+ props.maskSource,
184
+ props.maskType,
185
+ props.renderOrder,
186
+ props.transform,
187
+ props.boundingBox,
188
+ props.flow,
189
+ props.absolute,
190
+ mapsFromProps.value
191
+ ], ([blendMode, opacity, visible]) => {
192
+ parentMetadataUpdate(instanceId, {
193
+ blendMode,
194
+ opacity,
195
+ visible: visible === false ? false : true,
196
+ id: props.id,
197
+ mask: props.maskSource ? {
198
+ source: props.maskSource,
199
+ type: props.maskType || "alpha"
200
+ } : void 0,
201
+ maps: mapsFromProps.value,
202
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
203
+ transform: effectiveTransform.value,
204
+ boundingBox: effectiveBoundingBox.value,
205
+ flow: props.flow,
206
+ absolute: props.absolute
207
+ });
208
+ }, { deep: true });
209
+ if (rendererResetSignal) watch(() => rendererResetSignal.value, (newValue) => {
210
+ if (newValue > 0) registerWithRenderer();
211
+ }, { immediate: true });
212
+ });
213
+ onBeforeUnmount(() => {
214
+ scope.stop();
215
+ });
216
+ };
217
+ if (isCapturesDOM) onMounted(() => {
218
+ setupUniformWatchers();
219
+ });
220
+ else setupUniformWatchers();
221
+ onBeforeUnmount(() => {
222
+ parentRegister(instanceId, null, null, null, null, null);
223
+ });
224
+ return (_ctx, _cache) => {
225
+ return openBlock(), createElementBlock(Fragment, null, [createElementVNode("span", {
226
+ ref_key: "orderMarker",
227
+ ref: orderMarker,
228
+ style: { "display": "contents" },
229
+ "data-shader-id": unref(instanceId)
230
+ }, [!isCapturesDOM ? renderSlot(_ctx.$slots, "default", { key: 0 }) : createCommentVNode("", true)], 8, _hoisted_1), isCapturesDOM ? (openBlock(), createBlock(Teleport, {
231
+ key: 0,
232
+ to: "body"
233
+ }, [createElementVNode("canvas", mergeProps({
234
+ ref_key: "captureCanvas",
235
+ ref: captureCanvas
236
+ }, { "layoutsubtree": "" }, {
237
+ width: captureW.value,
238
+ height: captureH.value,
239
+ style: captureStyle
240
+ }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_2)])) : createCommentVNode("", true)], 64);
241
+ };
242
+ }
243
+ });
244
+ export { LensDistortion_vue_vue_type_script_setup_true_lang_default as default };