shaders 2.5.92 → 2.5.93
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.
- package/dist/core/DOMTexture-Dw3Qakny.js +97 -0
- package/dist/core/{VideoTexture-C90aUnt4.js → VideoTexture-BobyGZGr.js} +1 -1
- package/dist/core/{WebcamTexture-7SK_C_Xf.js → WebcamTexture-BXj7sqND.js} +1 -1
- package/dist/core/index.js +98 -89
- package/dist/core/registry.js +80 -79
- package/dist/core/renderer.d.ts +5 -1
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/core/shaderRegistry-BZ6QG12o.js +244 -0
- package/dist/core/shaderRegistry.d.ts.map +1 -1
- package/dist/core/shaders/DOMTexture/index.d.ts +7 -0
- package/dist/core/shaders/DOMTexture/index.d.ts.map +1 -0
- package/dist/core/shaders/DOMTexture/index.js +2 -0
- package/dist/core/shaders/DotGrid/index.js +1 -1
- package/dist/core/shaders/DropShadow/index.js +1 -1
- package/dist/core/shaders/Duotone/index.js +1 -1
- package/dist/core/shaders/Ellipse/index.js +1 -1
- package/dist/core/shaders/Emboss/index.js +1 -1
- package/dist/core/shaders/FallingLines/index.js +1 -1
- package/dist/core/shaders/FilmGrain/index.js +1 -1
- package/dist/core/shaders/FloatingParticles/index.js +1 -1
- package/dist/core/shaders/FlowField/index.js +1 -1
- package/dist/core/shaders/Flower/index.js +1 -1
- package/dist/core/shaders/FlowingGradient/index.js +1 -1
- package/dist/core/shaders/Form3D/index.js +1 -1
- package/dist/core/shaders/Glass/index.js +1 -1
- package/dist/core/shaders/GlassTiles/index.js +1 -1
- package/dist/core/shaders/Glitch/index.js +1 -1
- package/dist/core/shaders/Glow/index.js +1 -1
- package/dist/core/shaders/Godrays/index.js +1 -1
- package/dist/core/shaders/Grayscale/index.js +1 -1
- package/dist/core/shaders/Grid/index.js +1 -1
- package/dist/core/shaders/GridDistortion/index.js +1 -1
- package/dist/core/shaders/Group/index.js +1 -1
- package/dist/core/shaders/Halftone/index.js +1 -1
- package/dist/core/shaders/HexGrid/index.js +1 -1
- package/dist/core/shaders/HueShift/index.js +1 -1
- package/dist/core/shaders/ImageTexture/index.js +1 -1
- package/dist/core/shaders/Invert/index.js +1 -1
- package/dist/core/shaders/Kaleidoscope/index.js +1 -1
- package/dist/core/shaders/LensFlare/index.js +1 -1
- package/dist/core/shaders/LinearBlur/index.js +1 -1
- package/dist/core/shaders/LinearGradient/index.js +1 -1
- package/dist/core/shaders/Liquify/index.js +1 -1
- package/dist/core/shaders/Mirror/index.js +1 -1
- package/dist/core/shaders/MultiPointGradient/index.js +1 -1
- package/dist/core/shaders/Neon/index.js +1 -1
- package/dist/core/shaders/Paper/index.js +1 -1
- package/dist/core/shaders/Perspective/index.js +1 -1
- package/dist/core/shaders/Pixelate/index.js +1 -1
- package/dist/core/shaders/Plasma/index.js +1 -1
- package/dist/core/shaders/PolarCoordinates/index.js +1 -1
- package/dist/core/shaders/Polygon/index.js +1 -1
- package/dist/core/shaders/Posterize/index.js +1 -1
- package/dist/core/shaders/ProgressiveBlur/index.js +1 -1
- package/dist/core/shaders/RadialGradient/index.js +1 -1
- package/dist/core/shaders/RectangularCoordinates/index.js +1 -1
- package/dist/core/shaders/Ring/index.js +1 -1
- package/dist/core/shaders/Ripples/index.js +1 -1
- package/dist/core/shaders/RoundedRect/index.js +1 -1
- package/dist/core/shaders/Saturation/index.js +1 -1
- package/dist/core/shaders/Sharpness/index.js +1 -1
- package/dist/core/shaders/Shatter/index.js +1 -1
- package/dist/core/shaders/SimplexNoise/index.js +1 -1
- package/dist/core/shaders/SineWave/index.js +1 -1
- package/dist/core/shaders/Solarize/index.js +1 -1
- package/dist/core/shaders/SolidColor/index.js +1 -1
- package/dist/core/shaders/Spherize/index.js +1 -1
- package/dist/core/shaders/Spiral/index.js +1 -1
- package/dist/core/shaders/Star/index.js +1 -1
- package/dist/core/shaders/Strands/index.js +1 -1
- package/dist/core/shaders/Stretch/index.js +1 -1
- package/dist/core/shaders/Stripes/index.js +1 -1
- package/dist/core/shaders/StudioBackground/index.js +1 -1
- package/dist/core/shaders/Swirl/index.js +1 -1
- package/dist/core/shaders/TiltShift/index.js +1 -1
- package/dist/core/shaders/Tint/index.js +1 -1
- package/dist/core/shaders/Trapezoid/index.js +1 -1
- package/dist/core/shaders/Tritone/index.js +1 -1
- package/dist/core/shaders/Truchet/index.js +1 -1
- package/dist/core/shaders/Twirl/index.js +1 -1
- package/dist/core/shaders/Vesica/index.js +1 -1
- package/dist/core/shaders/Vibrance/index.js +1 -1
- package/dist/core/shaders/VideoTexture/index.js +2 -2
- package/dist/core/shaders/Vignette/index.js +1 -1
- package/dist/core/shaders/Voronoi/index.js +1 -1
- package/dist/core/shaders/WaveDistortion/index.js +1 -1
- package/dist/core/shaders/Weave/index.js +1 -1
- package/dist/core/shaders/WebcamTexture/index.js +2 -2
- package/dist/core/shaders/ZoomBlur/index.js +1 -1
- package/dist/core/types.d.ts +29 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/js/createShader.js +1 -1
- package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/js/utils/generatePresetCode.js +5 -0
- package/dist/react/AngularBlur.js +50 -8
- package/dist/react/Ascii.js +50 -8
- package/dist/react/Aurora.js +50 -8
- package/dist/react/Beam.js +50 -8
- package/dist/react/Blob.js +50 -8
- package/dist/react/Blur.js +50 -8
- package/dist/react/BrightnessContrast.js +50 -8
- package/dist/react/Bulge.js +50 -8
- package/dist/react/CRTScreen.js +50 -8
- package/dist/react/ChannelBlur.js +50 -8
- package/dist/react/Checkerboard.js +50 -8
- package/dist/react/ChromaFlow.js +50 -8
- package/dist/react/ChromaticAberration.js +50 -8
- package/dist/react/Circle.js +50 -8
- package/dist/react/ConcentricSpin.js +50 -8
- package/dist/react/ConicGradient.js +50 -8
- package/dist/react/ContourLines.js +50 -8
- package/dist/react/Crescent.js +50 -8
- package/dist/react/Cross.js +50 -8
- package/dist/react/Crystal.js +50 -8
- package/dist/react/CursorRipples.js +50 -8
- package/dist/react/CursorTrail.js +50 -8
- package/dist/react/DOMTexture.js +223 -0
- package/dist/react/DiamondGradient.js +50 -8
- package/dist/react/DiffuseBlur.js +50 -8
- package/dist/react/Dither.js +50 -8
- package/dist/react/DotGrid.js +50 -8
- package/dist/react/DropShadow.js +50 -8
- package/dist/react/Duotone.js +50 -8
- package/dist/react/Ellipse.js +50 -8
- package/dist/react/Emboss.js +50 -8
- package/dist/react/FallingLines.js +50 -8
- package/dist/react/FilmGrain.js +50 -8
- package/dist/react/FloatingParticles.js +50 -8
- package/dist/react/FlowField.js +50 -8
- package/dist/react/Flower.js +50 -8
- package/dist/react/FlowingGradient.js +50 -8
- package/dist/react/Form3D.js +50 -8
- package/dist/react/Glass.js +50 -8
- package/dist/react/GlassTiles.js +50 -8
- package/dist/react/Glitch.js +50 -8
- package/dist/react/Glow.js +50 -8
- package/dist/react/Godrays.js +50 -8
- package/dist/react/Grayscale.js +50 -8
- package/dist/react/Grid.js +50 -8
- package/dist/react/GridDistortion.js +50 -8
- package/dist/react/Group.js +50 -8
- package/dist/react/Halftone.js +50 -8
- package/dist/react/HexGrid.js +50 -8
- package/dist/react/HueShift.js +50 -8
- package/dist/react/ImageTexture.js +50 -8
- package/dist/react/Invert.js +50 -8
- package/dist/react/Kaleidoscope.js +50 -8
- package/dist/react/LensFlare.js +50 -8
- package/dist/react/LinearBlur.js +50 -8
- package/dist/react/LinearGradient.js +50 -8
- package/dist/react/Liquify.js +50 -8
- package/dist/react/Mirror.js +50 -8
- package/dist/react/MultiPointGradient.js +50 -8
- package/dist/react/Neon.js +50 -8
- package/dist/react/Paper.js +50 -8
- package/dist/react/Perspective.js +50 -8
- package/dist/react/Pixelate.js +50 -8
- package/dist/react/Plasma.js +50 -8
- package/dist/react/PolarCoordinates.js +50 -8
- package/dist/react/Polygon.js +50 -8
- package/dist/react/Posterize.js +50 -8
- package/dist/react/Preview.js +1 -0
- package/dist/react/ProgressiveBlur.js +50 -8
- package/dist/react/RadialGradient.js +50 -8
- package/dist/react/RectangularCoordinates.js +50 -8
- package/dist/react/Ring.js +50 -8
- package/dist/react/Ripples.js +50 -8
- package/dist/react/RoundedRect.js +50 -8
- package/dist/react/Saturation.js +50 -8
- package/dist/react/Shader.js +4 -4
- package/dist/react/Sharpness.js +50 -8
- package/dist/react/Shatter.js +50 -8
- package/dist/react/SimplexNoise.js +50 -8
- package/dist/react/SineWave.js +50 -8
- package/dist/react/Solarize.js +50 -8
- package/dist/react/SolidColor.js +50 -8
- package/dist/react/Spherize.js +50 -8
- package/dist/react/Spiral.js +50 -8
- package/dist/react/Star.js +50 -8
- package/dist/react/Strands.js +50 -8
- package/dist/react/Stretch.js +50 -8
- package/dist/react/Stripes.js +50 -8
- package/dist/react/StudioBackground.js +50 -8
- package/dist/react/Swirl.js +50 -8
- package/dist/react/TiltShift.js +50 -8
- package/dist/react/Tint.js +50 -8
- package/dist/react/Trapezoid.js +50 -8
- package/dist/react/Tritone.js +50 -8
- package/dist/react/Truchet.js +50 -8
- package/dist/react/Twirl.js +50 -8
- package/dist/react/Vesica.js +50 -8
- package/dist/react/Vibrance.js +50 -8
- package/dist/react/VideoTexture.js +50 -8
- package/dist/react/Vignette.js +50 -8
- package/dist/react/Voronoi.js +50 -8
- package/dist/react/WaveDistortion.js +50 -8
- package/dist/react/Weave.js +50 -8
- package/dist/react/WebcamTexture.js +50 -8
- package/dist/react/ZoomBlur.js +50 -8
- package/dist/react/components/AngularBlur.d.ts.map +1 -1
- package/dist/react/components/Ascii.d.ts.map +1 -1
- package/dist/react/components/Aurora.d.ts.map +1 -1
- package/dist/react/components/Beam.d.ts.map +1 -1
- package/dist/react/components/Blob.d.ts.map +1 -1
- package/dist/react/components/Blur.d.ts.map +1 -1
- package/dist/react/components/BrightnessContrast.d.ts.map +1 -1
- package/dist/react/components/Bulge.d.ts.map +1 -1
- package/dist/react/components/CRTScreen.d.ts.map +1 -1
- package/dist/react/components/ChannelBlur.d.ts.map +1 -1
- package/dist/react/components/Checkerboard.d.ts.map +1 -1
- package/dist/react/components/ChromaFlow.d.ts.map +1 -1
- package/dist/react/components/ChromaticAberration.d.ts.map +1 -1
- package/dist/react/components/Circle.d.ts.map +1 -1
- package/dist/react/components/ConcentricSpin.d.ts.map +1 -1
- package/dist/react/components/ConicGradient.d.ts.map +1 -1
- package/dist/react/components/ContourLines.d.ts.map +1 -1
- package/dist/react/components/Crescent.d.ts.map +1 -1
- package/dist/react/components/Cross.d.ts.map +1 -1
- package/dist/react/components/Crystal.d.ts.map +1 -1
- package/dist/react/components/CursorRipples.d.ts.map +1 -1
- package/dist/react/components/CursorTrail.d.ts.map +1 -1
- package/dist/react/components/DOMTexture.d.ts +31 -0
- package/dist/react/components/DOMTexture.d.ts.map +1 -0
- package/dist/react/components/DiamondGradient.d.ts.map +1 -1
- package/dist/react/components/DiffuseBlur.d.ts.map +1 -1
- package/dist/react/components/Dither.d.ts.map +1 -1
- package/dist/react/components/DotGrid.d.ts.map +1 -1
- package/dist/react/components/DropShadow.d.ts.map +1 -1
- package/dist/react/components/Duotone.d.ts.map +1 -1
- package/dist/react/components/Ellipse.d.ts.map +1 -1
- package/dist/react/components/Emboss.d.ts.map +1 -1
- package/dist/react/components/FallingLines.d.ts.map +1 -1
- package/dist/react/components/FilmGrain.d.ts.map +1 -1
- package/dist/react/components/FloatingParticles.d.ts.map +1 -1
- package/dist/react/components/FlowField.d.ts.map +1 -1
- package/dist/react/components/Flower.d.ts.map +1 -1
- package/dist/react/components/FlowingGradient.d.ts.map +1 -1
- package/dist/react/components/Form3D.d.ts.map +1 -1
- package/dist/react/components/Glass.d.ts.map +1 -1
- package/dist/react/components/GlassTiles.d.ts.map +1 -1
- package/dist/react/components/Glitch.d.ts.map +1 -1
- package/dist/react/components/Glow.d.ts.map +1 -1
- package/dist/react/components/Godrays.d.ts.map +1 -1
- package/dist/react/components/Grayscale.d.ts.map +1 -1
- package/dist/react/components/Grid.d.ts.map +1 -1
- package/dist/react/components/GridDistortion.d.ts.map +1 -1
- package/dist/react/components/Group.d.ts.map +1 -1
- package/dist/react/components/Halftone.d.ts.map +1 -1
- package/dist/react/components/HexGrid.d.ts.map +1 -1
- package/dist/react/components/HueShift.d.ts.map +1 -1
- package/dist/react/components/ImageTexture.d.ts.map +1 -1
- package/dist/react/components/Invert.d.ts.map +1 -1
- package/dist/react/components/Kaleidoscope.d.ts.map +1 -1
- package/dist/react/components/LensFlare.d.ts.map +1 -1
- package/dist/react/components/LinearBlur.d.ts.map +1 -1
- package/dist/react/components/LinearGradient.d.ts.map +1 -1
- package/dist/react/components/Liquify.d.ts.map +1 -1
- package/dist/react/components/Mirror.d.ts.map +1 -1
- package/dist/react/components/MultiPointGradient.d.ts.map +1 -1
- package/dist/react/components/Neon.d.ts.map +1 -1
- package/dist/react/components/Paper.d.ts.map +1 -1
- package/dist/react/components/Perspective.d.ts.map +1 -1
- package/dist/react/components/Pixelate.d.ts.map +1 -1
- package/dist/react/components/Plasma.d.ts.map +1 -1
- package/dist/react/components/PolarCoordinates.d.ts.map +1 -1
- package/dist/react/components/Polygon.d.ts.map +1 -1
- package/dist/react/components/Posterize.d.ts.map +1 -1
- package/dist/react/components/ProgressiveBlur.d.ts.map +1 -1
- package/dist/react/components/RadialGradient.d.ts.map +1 -1
- package/dist/react/components/RectangularCoordinates.d.ts.map +1 -1
- package/dist/react/components/Ring.d.ts.map +1 -1
- package/dist/react/components/Ripples.d.ts.map +1 -1
- package/dist/react/components/RoundedRect.d.ts.map +1 -1
- package/dist/react/components/Saturation.d.ts.map +1 -1
- package/dist/react/components/Sharpness.d.ts.map +1 -1
- package/dist/react/components/Shatter.d.ts.map +1 -1
- package/dist/react/components/SimplexNoise.d.ts.map +1 -1
- package/dist/react/components/SineWave.d.ts.map +1 -1
- package/dist/react/components/Solarize.d.ts.map +1 -1
- package/dist/react/components/SolidColor.d.ts.map +1 -1
- package/dist/react/components/Spherize.d.ts.map +1 -1
- package/dist/react/components/Spiral.d.ts.map +1 -1
- package/dist/react/components/Star.d.ts.map +1 -1
- package/dist/react/components/Strands.d.ts.map +1 -1
- package/dist/react/components/Stretch.d.ts.map +1 -1
- package/dist/react/components/Stripes.d.ts.map +1 -1
- package/dist/react/components/StudioBackground.d.ts.map +1 -1
- package/dist/react/components/Swirl.d.ts.map +1 -1
- package/dist/react/components/TiltShift.d.ts.map +1 -1
- package/dist/react/components/Tint.d.ts.map +1 -1
- package/dist/react/components/Trapezoid.d.ts.map +1 -1
- package/dist/react/components/Tritone.d.ts.map +1 -1
- package/dist/react/components/Truchet.d.ts.map +1 -1
- package/dist/react/components/Twirl.d.ts.map +1 -1
- package/dist/react/components/Vesica.d.ts.map +1 -1
- package/dist/react/components/Vibrance.d.ts.map +1 -1
- package/dist/react/components/VideoTexture.d.ts.map +1 -1
- package/dist/react/components/Vignette.d.ts.map +1 -1
- package/dist/react/components/Voronoi.d.ts.map +1 -1
- package/dist/react/components/WaveDistortion.d.ts.map +1 -1
- package/dist/react/components/Weave.d.ts.map +1 -1
- package/dist/react/components/WebcamTexture.d.ts.map +1 -1
- package/dist/react/components/ZoomBlur.d.ts.map +1 -1
- package/dist/react/engine/Preview.d.ts.map +1 -1
- package/dist/react/engine/Shader.d.ts +1 -1
- package/dist/react/engine/Shader.d.ts.map +1 -1
- package/dist/react/engine/component.template.d.ts.map +1 -1
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +2 -1
- package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/react/utils/generatePresetCode.js +9 -1
- package/dist/react/utils/generatePresetCode.template.d.ts.map +1 -1
- package/dist/registry.js +22 -0
- package/dist/solid/components/AngularBlur.d.ts.map +1 -1
- package/dist/solid/components/AngularBlur.js +55 -10
- package/dist/solid/components/Ascii.d.ts.map +1 -1
- package/dist/solid/components/Ascii.js +55 -10
- package/dist/solid/components/Aurora.d.ts.map +1 -1
- package/dist/solid/components/Aurora.js +55 -10
- package/dist/solid/components/Beam.d.ts.map +1 -1
- package/dist/solid/components/Beam.js +55 -10
- package/dist/solid/components/Blob.d.ts.map +1 -1
- package/dist/solid/components/Blob.js +55 -10
- package/dist/solid/components/Blur.d.ts.map +1 -1
- package/dist/solid/components/Blur.js +55 -10
- package/dist/solid/components/BrightnessContrast.d.ts.map +1 -1
- package/dist/solid/components/BrightnessContrast.js +55 -10
- package/dist/solid/components/Bulge.d.ts.map +1 -1
- package/dist/solid/components/Bulge.js +55 -10
- package/dist/solid/components/CRTScreen.d.ts.map +1 -1
- package/dist/solid/components/CRTScreen.js +55 -10
- package/dist/solid/components/ChannelBlur.d.ts.map +1 -1
- package/dist/solid/components/ChannelBlur.js +55 -10
- package/dist/solid/components/Checkerboard.d.ts.map +1 -1
- package/dist/solid/components/Checkerboard.js +55 -10
- package/dist/solid/components/ChromaFlow.d.ts.map +1 -1
- package/dist/solid/components/ChromaFlow.js +55 -10
- package/dist/solid/components/ChromaticAberration.d.ts.map +1 -1
- package/dist/solid/components/ChromaticAberration.js +55 -10
- package/dist/solid/components/Circle.d.ts.map +1 -1
- package/dist/solid/components/Circle.js +55 -10
- package/dist/solid/components/ConcentricSpin.d.ts.map +1 -1
- package/dist/solid/components/ConcentricSpin.js +55 -10
- package/dist/solid/components/ConicGradient.d.ts.map +1 -1
- package/dist/solid/components/ConicGradient.js +55 -10
- package/dist/solid/components/ContourLines.d.ts.map +1 -1
- package/dist/solid/components/ContourLines.js +55 -10
- package/dist/solid/components/Crescent.d.ts.map +1 -1
- package/dist/solid/components/Crescent.js +55 -10
- package/dist/solid/components/Cross.d.ts.map +1 -1
- package/dist/solid/components/Cross.js +55 -10
- package/dist/solid/components/Crystal.d.ts.map +1 -1
- package/dist/solid/components/Crystal.js +55 -10
- package/dist/solid/components/CursorRipples.d.ts.map +1 -1
- package/dist/solid/components/CursorRipples.js +55 -10
- package/dist/solid/components/CursorTrail.d.ts.map +1 -1
- package/dist/solid/components/CursorTrail.js +55 -10
- package/dist/solid/components/DOMTexture.d.ts +28 -0
- package/dist/solid/components/DOMTexture.d.ts.map +1 -0
- package/dist/solid/components/DOMTexture.js +228 -0
- package/dist/solid/components/DiamondGradient.d.ts.map +1 -1
- package/dist/solid/components/DiamondGradient.js +55 -10
- package/dist/solid/components/DiffuseBlur.d.ts.map +1 -1
- package/dist/solid/components/DiffuseBlur.js +55 -10
- package/dist/solid/components/Dither.d.ts.map +1 -1
- package/dist/solid/components/Dither.js +55 -10
- package/dist/solid/components/DotGrid.d.ts.map +1 -1
- package/dist/solid/components/DotGrid.js +55 -10
- package/dist/solid/components/DropShadow.d.ts.map +1 -1
- package/dist/solid/components/DropShadow.js +55 -10
- package/dist/solid/components/Duotone.d.ts.map +1 -1
- package/dist/solid/components/Duotone.js +55 -10
- package/dist/solid/components/Ellipse.d.ts.map +1 -1
- package/dist/solid/components/Ellipse.js +55 -10
- package/dist/solid/components/Emboss.d.ts.map +1 -1
- package/dist/solid/components/Emboss.js +55 -10
- package/dist/solid/components/FallingLines.d.ts.map +1 -1
- package/dist/solid/components/FallingLines.js +55 -10
- package/dist/solid/components/FilmGrain.d.ts.map +1 -1
- package/dist/solid/components/FilmGrain.js +55 -10
- package/dist/solid/components/FloatingParticles.d.ts.map +1 -1
- package/dist/solid/components/FloatingParticles.js +55 -10
- package/dist/solid/components/FlowField.d.ts.map +1 -1
- package/dist/solid/components/FlowField.js +55 -10
- package/dist/solid/components/Flower.d.ts.map +1 -1
- package/dist/solid/components/Flower.js +55 -10
- package/dist/solid/components/FlowingGradient.d.ts.map +1 -1
- package/dist/solid/components/FlowingGradient.js +55 -10
- package/dist/solid/components/Form3D.d.ts.map +1 -1
- package/dist/solid/components/Form3D.js +55 -10
- package/dist/solid/components/Glass.d.ts.map +1 -1
- package/dist/solid/components/Glass.js +55 -10
- package/dist/solid/components/GlassTiles.d.ts.map +1 -1
- package/dist/solid/components/GlassTiles.js +55 -10
- package/dist/solid/components/Glitch.d.ts.map +1 -1
- package/dist/solid/components/Glitch.js +55 -10
- package/dist/solid/components/Glow.d.ts.map +1 -1
- package/dist/solid/components/Glow.js +55 -10
- package/dist/solid/components/Godrays.d.ts.map +1 -1
- package/dist/solid/components/Godrays.js +55 -10
- package/dist/solid/components/Grayscale.d.ts.map +1 -1
- package/dist/solid/components/Grayscale.js +55 -10
- package/dist/solid/components/Grid.d.ts.map +1 -1
- package/dist/solid/components/Grid.js +55 -10
- package/dist/solid/components/GridDistortion.d.ts.map +1 -1
- package/dist/solid/components/GridDistortion.js +55 -10
- package/dist/solid/components/Group.d.ts.map +1 -1
- package/dist/solid/components/Group.js +55 -10
- package/dist/solid/components/Halftone.d.ts.map +1 -1
- package/dist/solid/components/Halftone.js +55 -10
- package/dist/solid/components/HexGrid.d.ts.map +1 -1
- package/dist/solid/components/HexGrid.js +55 -10
- package/dist/solid/components/HueShift.d.ts.map +1 -1
- package/dist/solid/components/HueShift.js +55 -10
- package/dist/solid/components/ImageTexture.d.ts.map +1 -1
- package/dist/solid/components/ImageTexture.js +55 -10
- package/dist/solid/components/Invert.d.ts.map +1 -1
- package/dist/solid/components/Invert.js +55 -10
- package/dist/solid/components/Kaleidoscope.d.ts.map +1 -1
- package/dist/solid/components/Kaleidoscope.js +55 -10
- package/dist/solid/components/LensFlare.d.ts.map +1 -1
- package/dist/solid/components/LensFlare.js +55 -10
- package/dist/solid/components/LinearBlur.d.ts.map +1 -1
- package/dist/solid/components/LinearBlur.js +55 -10
- package/dist/solid/components/LinearGradient.d.ts.map +1 -1
- package/dist/solid/components/LinearGradient.js +55 -10
- package/dist/solid/components/Liquify.d.ts.map +1 -1
- package/dist/solid/components/Liquify.js +55 -10
- package/dist/solid/components/Mirror.d.ts.map +1 -1
- package/dist/solid/components/Mirror.js +55 -10
- package/dist/solid/components/MultiPointGradient.d.ts.map +1 -1
- package/dist/solid/components/MultiPointGradient.js +55 -10
- package/dist/solid/components/Neon.d.ts.map +1 -1
- package/dist/solid/components/Neon.js +55 -10
- package/dist/solid/components/Paper.d.ts.map +1 -1
- package/dist/solid/components/Paper.js +55 -10
- package/dist/solid/components/Perspective.d.ts.map +1 -1
- package/dist/solid/components/Perspective.js +55 -10
- package/dist/solid/components/Pixelate.d.ts.map +1 -1
- package/dist/solid/components/Pixelate.js +55 -10
- package/dist/solid/components/Plasma.d.ts.map +1 -1
- package/dist/solid/components/Plasma.js +55 -10
- package/dist/solid/components/PolarCoordinates.d.ts.map +1 -1
- package/dist/solid/components/PolarCoordinates.js +55 -10
- package/dist/solid/components/Polygon.d.ts.map +1 -1
- package/dist/solid/components/Polygon.js +55 -10
- package/dist/solid/components/Posterize.d.ts.map +1 -1
- package/dist/solid/components/Posterize.js +55 -10
- package/dist/solid/components/ProgressiveBlur.d.ts.map +1 -1
- package/dist/solid/components/ProgressiveBlur.js +55 -10
- package/dist/solid/components/RadialGradient.d.ts.map +1 -1
- package/dist/solid/components/RadialGradient.js +55 -10
- package/dist/solid/components/RectangularCoordinates.d.ts.map +1 -1
- package/dist/solid/components/RectangularCoordinates.js +55 -10
- package/dist/solid/components/Ring.d.ts.map +1 -1
- package/dist/solid/components/Ring.js +55 -10
- package/dist/solid/components/Ripples.d.ts.map +1 -1
- package/dist/solid/components/Ripples.js +55 -10
- package/dist/solid/components/RoundedRect.d.ts.map +1 -1
- package/dist/solid/components/RoundedRect.js +55 -10
- package/dist/solid/components/Saturation.d.ts.map +1 -1
- package/dist/solid/components/Saturation.js +55 -10
- package/dist/solid/components/Sharpness.d.ts.map +1 -1
- package/dist/solid/components/Sharpness.js +55 -10
- package/dist/solid/components/Shatter.d.ts.map +1 -1
- package/dist/solid/components/Shatter.js +55 -10
- package/dist/solid/components/SimplexNoise.d.ts.map +1 -1
- package/dist/solid/components/SimplexNoise.js +55 -10
- package/dist/solid/components/SineWave.d.ts.map +1 -1
- package/dist/solid/components/SineWave.js +55 -10
- package/dist/solid/components/Solarize.d.ts.map +1 -1
- package/dist/solid/components/Solarize.js +55 -10
- package/dist/solid/components/SolidColor.d.ts.map +1 -1
- package/dist/solid/components/SolidColor.js +55 -10
- package/dist/solid/components/Spherize.d.ts.map +1 -1
- package/dist/solid/components/Spherize.js +55 -10
- package/dist/solid/components/Spiral.d.ts.map +1 -1
- package/dist/solid/components/Spiral.js +55 -10
- package/dist/solid/components/Star.d.ts.map +1 -1
- package/dist/solid/components/Star.js +55 -10
- package/dist/solid/components/Strands.d.ts.map +1 -1
- package/dist/solid/components/Strands.js +55 -10
- package/dist/solid/components/Stretch.d.ts.map +1 -1
- package/dist/solid/components/Stretch.js +55 -10
- package/dist/solid/components/Stripes.d.ts.map +1 -1
- package/dist/solid/components/Stripes.js +55 -10
- package/dist/solid/components/StudioBackground.d.ts.map +1 -1
- package/dist/solid/components/StudioBackground.js +55 -10
- package/dist/solid/components/Swirl.d.ts.map +1 -1
- package/dist/solid/components/Swirl.js +55 -10
- package/dist/solid/components/TiltShift.d.ts.map +1 -1
- package/dist/solid/components/TiltShift.js +55 -10
- package/dist/solid/components/Tint.d.ts.map +1 -1
- package/dist/solid/components/Tint.js +55 -10
- package/dist/solid/components/Trapezoid.d.ts.map +1 -1
- package/dist/solid/components/Trapezoid.js +55 -10
- package/dist/solid/components/Tritone.d.ts.map +1 -1
- package/dist/solid/components/Tritone.js +55 -10
- package/dist/solid/components/Truchet.d.ts.map +1 -1
- package/dist/solid/components/Truchet.js +55 -10
- package/dist/solid/components/Twirl.d.ts.map +1 -1
- package/dist/solid/components/Twirl.js +55 -10
- package/dist/solid/components/Vesica.d.ts.map +1 -1
- package/dist/solid/components/Vesica.js +55 -10
- package/dist/solid/components/Vibrance.d.ts.map +1 -1
- package/dist/solid/components/Vibrance.js +55 -10
- package/dist/solid/components/VideoTexture.d.ts.map +1 -1
- package/dist/solid/components/VideoTexture.js +55 -10
- package/dist/solid/components/Vignette.d.ts.map +1 -1
- package/dist/solid/components/Vignette.js +55 -10
- package/dist/solid/components/Voronoi.d.ts.map +1 -1
- package/dist/solid/components/Voronoi.js +55 -10
- package/dist/solid/components/WaveDistortion.d.ts.map +1 -1
- package/dist/solid/components/WaveDistortion.js +55 -10
- package/dist/solid/components/Weave.d.ts.map +1 -1
- package/dist/solid/components/Weave.js +55 -10
- package/dist/solid/components/WebcamTexture.d.ts.map +1 -1
- package/dist/solid/components/WebcamTexture.js +55 -10
- package/dist/solid/components/ZoomBlur.d.ts.map +1 -1
- package/dist/solid/components/ZoomBlur.js +55 -10
- package/dist/solid/engine/Preview.d.ts.map +1 -1
- package/dist/solid/engine/Preview.js +46 -44
- package/dist/solid/engine/Shader.d.ts +1 -1
- package/dist/solid/engine/Shader.d.ts.map +1 -1
- package/dist/solid/engine/Shader.js +3 -3
- package/dist/solid/engine/component.template.d.ts.map +1 -1
- package/dist/solid/index.d.ts +1 -0
- package/dist/solid/index.d.ts.map +1 -1
- package/dist/solid/index.js +166 -164
- package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/solid/utils/generatePresetCode.js +18 -1
- package/dist/solid/utils/generatePresetCode.template.d.ts.map +1 -1
- package/dist/svelte/components/DOMTexture.svelte.d.ts +19 -0
- package/dist/svelte/{generatePresetCode-GNbu5b-Y.js → generatePresetCode-gaYD5uUH.js} +9 -1
- package/dist/svelte/index.d.ts +1 -0
- package/dist/svelte/index.js +6384 -778
- package/dist/svelte/source/components/AngularBlur.svelte +43 -4
- package/dist/svelte/source/components/Ascii.svelte +43 -4
- package/dist/svelte/source/components/Aurora.svelte +43 -4
- package/dist/svelte/source/components/Beam.svelte +43 -4
- package/dist/svelte/source/components/Blob.svelte +43 -4
- package/dist/svelte/source/components/Blur.svelte +43 -4
- package/dist/svelte/source/components/BrightnessContrast.svelte +43 -4
- package/dist/svelte/source/components/Bulge.svelte +43 -4
- package/dist/svelte/source/components/CRTScreen.svelte +43 -4
- package/dist/svelte/source/components/ChannelBlur.svelte +43 -4
- package/dist/svelte/source/components/Checkerboard.svelte +43 -4
- package/dist/svelte/source/components/ChromaFlow.svelte +43 -4
- package/dist/svelte/source/components/ChromaticAberration.svelte +43 -4
- package/dist/svelte/source/components/Circle.svelte +43 -4
- package/dist/svelte/source/components/ConcentricSpin.svelte +43 -4
- package/dist/svelte/source/components/ConicGradient.svelte +43 -4
- package/dist/svelte/source/components/ContourLines.svelte +43 -4
- package/dist/svelte/source/components/Crescent.svelte +43 -4
- package/dist/svelte/source/components/Cross.svelte +43 -4
- package/dist/svelte/source/components/Crystal.svelte +43 -4
- package/dist/svelte/source/components/CursorRipples.svelte +43 -4
- package/dist/svelte/source/components/CursorTrail.svelte +43 -4
- package/dist/svelte/source/components/DOMTexture.svelte +325 -0
- package/dist/svelte/source/components/DiamondGradient.svelte +43 -4
- package/dist/svelte/source/components/DiffuseBlur.svelte +43 -4
- package/dist/svelte/source/components/Dither.svelte +43 -4
- package/dist/svelte/source/components/DotGrid.svelte +43 -4
- package/dist/svelte/source/components/DropShadow.svelte +43 -4
- package/dist/svelte/source/components/Duotone.svelte +43 -4
- package/dist/svelte/source/components/Ellipse.svelte +43 -4
- package/dist/svelte/source/components/Emboss.svelte +43 -4
- package/dist/svelte/source/components/FallingLines.svelte +43 -4
- package/dist/svelte/source/components/FilmGrain.svelte +43 -4
- package/dist/svelte/source/components/FloatingParticles.svelte +43 -4
- package/dist/svelte/source/components/FlowField.svelte +43 -4
- package/dist/svelte/source/components/Flower.svelte +43 -4
- package/dist/svelte/source/components/FlowingGradient.svelte +43 -4
- package/dist/svelte/source/components/Form3D.svelte +43 -4
- package/dist/svelte/source/components/Glass.svelte +43 -4
- package/dist/svelte/source/components/GlassTiles.svelte +43 -4
- package/dist/svelte/source/components/Glitch.svelte +43 -4
- package/dist/svelte/source/components/Glow.svelte +43 -4
- package/dist/svelte/source/components/Godrays.svelte +43 -4
- package/dist/svelte/source/components/Grayscale.svelte +43 -4
- package/dist/svelte/source/components/Grid.svelte +43 -4
- package/dist/svelte/source/components/GridDistortion.svelte +43 -4
- package/dist/svelte/source/components/Group.svelte +43 -4
- package/dist/svelte/source/components/Halftone.svelte +43 -4
- package/dist/svelte/source/components/HexGrid.svelte +43 -4
- package/dist/svelte/source/components/HueShift.svelte +43 -4
- package/dist/svelte/source/components/ImageTexture.svelte +43 -4
- package/dist/svelte/source/components/Invert.svelte +43 -4
- package/dist/svelte/source/components/Kaleidoscope.svelte +43 -4
- package/dist/svelte/source/components/LensFlare.svelte +43 -4
- package/dist/svelte/source/components/LinearBlur.svelte +43 -4
- package/dist/svelte/source/components/LinearGradient.svelte +43 -4
- package/dist/svelte/source/components/Liquify.svelte +43 -4
- package/dist/svelte/source/components/Mirror.svelte +43 -4
- package/dist/svelte/source/components/MultiPointGradient.svelte +43 -4
- package/dist/svelte/source/components/Neon.svelte +43 -4
- package/dist/svelte/source/components/Paper.svelte +43 -4
- package/dist/svelte/source/components/Perspective.svelte +43 -4
- package/dist/svelte/source/components/Pixelate.svelte +43 -4
- package/dist/svelte/source/components/Plasma.svelte +43 -4
- package/dist/svelte/source/components/PolarCoordinates.svelte +43 -4
- package/dist/svelte/source/components/Polygon.svelte +43 -4
- package/dist/svelte/source/components/Posterize.svelte +43 -4
- package/dist/svelte/source/components/ProgressiveBlur.svelte +43 -4
- package/dist/svelte/source/components/RadialGradient.svelte +43 -4
- package/dist/svelte/source/components/RectangularCoordinates.svelte +43 -4
- package/dist/svelte/source/components/Ring.svelte +43 -4
- package/dist/svelte/source/components/Ripples.svelte +43 -4
- package/dist/svelte/source/components/RoundedRect.svelte +43 -4
- package/dist/svelte/source/components/Saturation.svelte +43 -4
- package/dist/svelte/source/components/Sharpness.svelte +43 -4
- package/dist/svelte/source/components/Shatter.svelte +43 -4
- package/dist/svelte/source/components/SimplexNoise.svelte +43 -4
- package/dist/svelte/source/components/SineWave.svelte +43 -4
- package/dist/svelte/source/components/Solarize.svelte +43 -4
- package/dist/svelte/source/components/SolidColor.svelte +43 -4
- package/dist/svelte/source/components/Spherize.svelte +43 -4
- package/dist/svelte/source/components/Spiral.svelte +43 -4
- package/dist/svelte/source/components/Star.svelte +43 -4
- package/dist/svelte/source/components/Strands.svelte +43 -4
- package/dist/svelte/source/components/Stretch.svelte +43 -4
- package/dist/svelte/source/components/Stripes.svelte +43 -4
- package/dist/svelte/source/components/StudioBackground.svelte +43 -4
- package/dist/svelte/source/components/Swirl.svelte +43 -4
- package/dist/svelte/source/components/TiltShift.svelte +43 -4
- package/dist/svelte/source/components/Tint.svelte +43 -4
- package/dist/svelte/source/components/Trapezoid.svelte +43 -4
- package/dist/svelte/source/components/Tritone.svelte +43 -4
- package/dist/svelte/source/components/Truchet.svelte +43 -4
- package/dist/svelte/source/components/Twirl.svelte +43 -4
- package/dist/svelte/source/components/Vesica.svelte +43 -4
- package/dist/svelte/source/components/Vibrance.svelte +43 -4
- package/dist/svelte/source/components/VideoTexture.svelte +43 -4
- package/dist/svelte/source/components/Vignette.svelte +43 -4
- package/dist/svelte/source/components/Voronoi.svelte +43 -4
- package/dist/svelte/source/components/WaveDistortion.svelte +43 -4
- package/dist/svelte/source/components/Weave.svelte +43 -4
- package/dist/svelte/source/components/WebcamTexture.svelte +43 -4
- package/dist/svelte/source/components/ZoomBlur.svelte +43 -4
- package/dist/svelte/source/engine/Preview.svelte +2 -0
- package/dist/svelte/source/engine/Shader.svelte +2 -2
- package/dist/svelte/source/index.js +1 -0
- package/dist/svelte/utils/generatePresetCode.js +1 -1
- package/dist/vue/AngularBlur.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Ascii.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Aurora.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Beam.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Blob.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Blur.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/BrightnessContrast.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Bulge.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/CRTScreen.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/ChannelBlur.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Checkerboard.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/ChromaFlow.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/ChromaticAberration.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Circle.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/ConcentricSpin.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/ConicGradient.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/ContourLines.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Crescent.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Cross.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Crystal.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/CursorRipples.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/CursorTrail.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/DOMTexture.js +3 -0
- package/dist/vue/DOMTexture.vue_vue_type_script_setup_true_lang.js +212 -0
- package/dist/vue/DiamondGradient.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/DiffuseBlur.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Dither.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/DotGrid.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/DropShadow.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Duotone.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Ellipse.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Emboss.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/FallingLines.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/FilmGrain.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/FloatingParticles.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/FlowField.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Flower.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/FlowingGradient.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Form3D.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Glass.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/GlassTiles.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Glitch.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Glow.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Godrays.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Grayscale.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Grid.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/GridDistortion.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Group.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Halftone.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/HexGrid.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/HueShift.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/ImageTexture.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Invert.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Kaleidoscope.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/LensFlare.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/LinearBlur.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/LinearGradient.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Liquify.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Mirror.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/MultiPointGradient.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Neon.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Paper.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Perspective.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Pixelate.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Plasma.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/PolarCoordinates.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Polygon.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Posterize.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/vue/ProgressiveBlur.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/RadialGradient.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/RectangularCoordinates.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Ring.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Ripples.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/RoundedRect.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Saturation.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/vue/Sharpness.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Shatter.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/SimplexNoise.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/SineWave.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Solarize.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/SolidColor.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Spherize.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Spiral.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Star.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Strands.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Stretch.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Stripes.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/StudioBackground.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Swirl.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/TiltShift.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Tint.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Trapezoid.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Tritone.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Truchet.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Twirl.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Vesica.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Vibrance.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/VideoTexture.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Vignette.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Voronoi.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/WaveDistortion.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/Weave.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/WebcamTexture.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/ZoomBlur.vue_vue_type_script_setup_true_lang.js +52 -5
- package/dist/vue/components/AngularBlur.vue.d.ts.map +1 -1
- package/dist/vue/components/Ascii.vue.d.ts.map +1 -1
- package/dist/vue/components/Aurora.vue.d.ts.map +1 -1
- package/dist/vue/components/Beam.vue.d.ts.map +1 -1
- package/dist/vue/components/Blob.vue.d.ts.map +1 -1
- package/dist/vue/components/Blur.vue.d.ts.map +1 -1
- package/dist/vue/components/BrightnessContrast.vue.d.ts.map +1 -1
- package/dist/vue/components/Bulge.vue.d.ts.map +1 -1
- package/dist/vue/components/CRTScreen.vue.d.ts.map +1 -1
- package/dist/vue/components/ChannelBlur.vue.d.ts.map +1 -1
- package/dist/vue/components/Checkerboard.vue.d.ts.map +1 -1
- package/dist/vue/components/ChromaFlow.vue.d.ts.map +1 -1
- package/dist/vue/components/ChromaticAberration.vue.d.ts.map +1 -1
- package/dist/vue/components/Circle.vue.d.ts.map +1 -1
- package/dist/vue/components/ConcentricSpin.vue.d.ts.map +1 -1
- package/dist/vue/components/ConicGradient.vue.d.ts.map +1 -1
- package/dist/vue/components/ContourLines.vue.d.ts.map +1 -1
- package/dist/vue/components/Crescent.vue.d.ts.map +1 -1
- package/dist/vue/components/Cross.vue.d.ts.map +1 -1
- package/dist/vue/components/Crystal.vue.d.ts.map +1 -1
- package/dist/vue/components/CursorRipples.vue.d.ts.map +1 -1
- package/dist/vue/components/CursorTrail.vue.d.ts.map +1 -1
- package/dist/vue/components/DOMTexture.vue.d.ts +54 -0
- package/dist/vue/components/DOMTexture.vue.d.ts.map +1 -0
- package/dist/vue/components/DiamondGradient.vue.d.ts.map +1 -1
- package/dist/vue/components/DiffuseBlur.vue.d.ts.map +1 -1
- package/dist/vue/components/Dither.vue.d.ts.map +1 -1
- package/dist/vue/components/DotGrid.vue.d.ts.map +1 -1
- package/dist/vue/components/DropShadow.vue.d.ts.map +1 -1
- package/dist/vue/components/Duotone.vue.d.ts.map +1 -1
- package/dist/vue/components/Ellipse.vue.d.ts.map +1 -1
- package/dist/vue/components/Emboss.vue.d.ts.map +1 -1
- package/dist/vue/components/FallingLines.vue.d.ts.map +1 -1
- package/dist/vue/components/FilmGrain.vue.d.ts.map +1 -1
- package/dist/vue/components/FloatingParticles.vue.d.ts.map +1 -1
- package/dist/vue/components/FlowField.vue.d.ts.map +1 -1
- package/dist/vue/components/Flower.vue.d.ts.map +1 -1
- package/dist/vue/components/FlowingGradient.vue.d.ts.map +1 -1
- package/dist/vue/components/Form3D.vue.d.ts.map +1 -1
- package/dist/vue/components/Glass.vue.d.ts.map +1 -1
- package/dist/vue/components/GlassTiles.vue.d.ts.map +1 -1
- package/dist/vue/components/Glitch.vue.d.ts.map +1 -1
- package/dist/vue/components/Glow.vue.d.ts.map +1 -1
- package/dist/vue/components/Godrays.vue.d.ts.map +1 -1
- package/dist/vue/components/Grayscale.vue.d.ts.map +1 -1
- package/dist/vue/components/Grid.vue.d.ts.map +1 -1
- package/dist/vue/components/GridDistortion.vue.d.ts.map +1 -1
- package/dist/vue/components/Group.vue.d.ts.map +1 -1
- package/dist/vue/components/Halftone.vue.d.ts.map +1 -1
- package/dist/vue/components/HexGrid.vue.d.ts.map +1 -1
- package/dist/vue/components/HueShift.vue.d.ts.map +1 -1
- package/dist/vue/components/ImageTexture.vue.d.ts.map +1 -1
- package/dist/vue/components/Invert.vue.d.ts.map +1 -1
- package/dist/vue/components/Kaleidoscope.vue.d.ts.map +1 -1
- package/dist/vue/components/LensFlare.vue.d.ts.map +1 -1
- package/dist/vue/components/LinearBlur.vue.d.ts.map +1 -1
- package/dist/vue/components/LinearGradient.vue.d.ts.map +1 -1
- package/dist/vue/components/Liquify.vue.d.ts.map +1 -1
- package/dist/vue/components/Mirror.vue.d.ts.map +1 -1
- package/dist/vue/components/MultiPointGradient.vue.d.ts.map +1 -1
- package/dist/vue/components/Neon.vue.d.ts.map +1 -1
- package/dist/vue/components/Paper.vue.d.ts.map +1 -1
- package/dist/vue/components/Perspective.vue.d.ts.map +1 -1
- package/dist/vue/components/Pixelate.vue.d.ts.map +1 -1
- package/dist/vue/components/Plasma.vue.d.ts.map +1 -1
- package/dist/vue/components/PolarCoordinates.vue.d.ts.map +1 -1
- package/dist/vue/components/Polygon.vue.d.ts.map +1 -1
- package/dist/vue/components/Posterize.vue.d.ts.map +1 -1
- package/dist/vue/components/ProgressiveBlur.vue.d.ts.map +1 -1
- package/dist/vue/components/RadialGradient.vue.d.ts.map +1 -1
- package/dist/vue/components/RectangularCoordinates.vue.d.ts.map +1 -1
- package/dist/vue/components/Ring.vue.d.ts.map +1 -1
- package/dist/vue/components/Ripples.vue.d.ts.map +1 -1
- package/dist/vue/components/RoundedRect.vue.d.ts.map +1 -1
- package/dist/vue/components/Saturation.vue.d.ts.map +1 -1
- package/dist/vue/components/Sharpness.vue.d.ts.map +1 -1
- package/dist/vue/components/Shatter.vue.d.ts.map +1 -1
- package/dist/vue/components/SimplexNoise.vue.d.ts.map +1 -1
- package/dist/vue/components/SineWave.vue.d.ts.map +1 -1
- package/dist/vue/components/Solarize.vue.d.ts.map +1 -1
- package/dist/vue/components/SolidColor.vue.d.ts.map +1 -1
- package/dist/vue/components/Spherize.vue.d.ts.map +1 -1
- package/dist/vue/components/Spiral.vue.d.ts.map +1 -1
- package/dist/vue/components/Star.vue.d.ts.map +1 -1
- package/dist/vue/components/Strands.vue.d.ts.map +1 -1
- package/dist/vue/components/Stretch.vue.d.ts.map +1 -1
- package/dist/vue/components/Stripes.vue.d.ts.map +1 -1
- package/dist/vue/components/StudioBackground.vue.d.ts.map +1 -1
- package/dist/vue/components/Swirl.vue.d.ts.map +1 -1
- package/dist/vue/components/TiltShift.vue.d.ts.map +1 -1
- package/dist/vue/components/Tint.vue.d.ts.map +1 -1
- package/dist/vue/components/Trapezoid.vue.d.ts.map +1 -1
- package/dist/vue/components/Tritone.vue.d.ts.map +1 -1
- package/dist/vue/components/Truchet.vue.d.ts.map +1 -1
- package/dist/vue/components/Twirl.vue.d.ts.map +1 -1
- package/dist/vue/components/Vesica.vue.d.ts.map +1 -1
- package/dist/vue/components/Vibrance.vue.d.ts.map +1 -1
- package/dist/vue/components/VideoTexture.vue.d.ts.map +1 -1
- package/dist/vue/components/Vignette.vue.d.ts.map +1 -1
- package/dist/vue/components/Voronoi.vue.d.ts.map +1 -1
- package/dist/vue/components/WaveDistortion.vue.d.ts.map +1 -1
- package/dist/vue/components/Weave.vue.d.ts.map +1 -1
- package/dist/vue/components/WebcamTexture.vue.d.ts.map +1 -1
- package/dist/vue/components/ZoomBlur.vue.d.ts.map +1 -1
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/index.js +2 -1
- package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/vue/utils/generatePresetCode.js +9 -1
- package/dist/vue/utils/generatePresetCode.template.d.ts.map +1 -1
- package/package.json +9 -1
- package/dist/core/shaderRegistry-BiyVs5uZ.js +0 -242
- /package/dist/core/{DotGrid-Cv_aCN_c.js → DotGrid-CiDt4NmI.js} +0 -0
- /package/dist/core/{DropShadow-9bPzXwAc.js → DropShadow-BRoXryDA.js} +0 -0
- /package/dist/core/{Duotone-Db9kfzCs.js → Duotone-CGHcHB9f.js} +0 -0
- /package/dist/core/{Ellipse-BvlGDQyZ.js → Ellipse-BNmzdnpK.js} +0 -0
- /package/dist/core/{Emboss-CF-BN_CQ.js → Emboss-nrduRrVs.js} +0 -0
- /package/dist/core/{FallingLines-CTa8zuvs.js → FallingLines-vdw8KxhV.js} +0 -0
- /package/dist/core/{FilmGrain-SrB3ZXIg.js → FilmGrain-BqQeKO6Z.js} +0 -0
- /package/dist/core/{FloatingParticles-BVUK6GlL.js → FloatingParticles-DR5cv6Eh.js} +0 -0
- /package/dist/core/{FlowField-CF95xOBc.js → FlowField-DpP32B1X.js} +0 -0
- /package/dist/core/{Flower-ByQNUJyZ.js → Flower-B4xPp0Qa.js} +0 -0
- /package/dist/core/{FlowingGradient-DhOce4wJ.js → FlowingGradient-lSouJxmq.js} +0 -0
- /package/dist/core/{Form3D-CcBdpCQr.js → Form3D-DQD-0zrd.js} +0 -0
- /package/dist/core/{Glass-BGy9jsiS.js → Glass-CR9981-Z.js} +0 -0
- /package/dist/core/{GlassTiles-LsfUL0JT.js → GlassTiles-B7aAvcTQ.js} +0 -0
- /package/dist/core/{Glitch-DuQ-dtyM.js → Glitch-CgmgjLea.js} +0 -0
- /package/dist/core/{Glow-CsiZkj9_.js → Glow-CKWIRcBt.js} +0 -0
- /package/dist/core/{Godrays-CoSL15CM.js → Godrays-o-3Im6H1.js} +0 -0
- /package/dist/core/{Grayscale-BrwJ4_uW.js → Grayscale-Bip62olI.js} +0 -0
- /package/dist/core/{Grid-Dweeo8b2.js → Grid-hwQnF_hs.js} +0 -0
- /package/dist/core/{GridDistortion-DIarsmKa.js → GridDistortion-DXM5MgSc.js} +0 -0
- /package/dist/core/{Group-Cc3_0QdC.js → Group-BexPm4Fb.js} +0 -0
- /package/dist/core/{Halftone-nfr7eNaT.js → Halftone-onLYU4dF.js} +0 -0
- /package/dist/core/{HexGrid-KxwCqF1D.js → HexGrid-BkqEEgfh.js} +0 -0
- /package/dist/core/{HueShift-kNK2rEVM.js → HueShift-BldS-av9.js} +0 -0
- /package/dist/core/{ImageTexture-acllbA1z.js → ImageTexture-DLCjc5cM.js} +0 -0
- /package/dist/core/{Invert-CMnUhHo2.js → Invert-C2LI5GXr.js} +0 -0
- /package/dist/core/{Kaleidoscope-CgnidMrq.js → Kaleidoscope-CxWjs5jx.js} +0 -0
- /package/dist/core/{LensFlare-CkCTGuKS.js → LensFlare-BNO7tCXH.js} +0 -0
- /package/dist/core/{LinearBlur-ByirUCm_.js → LinearBlur-Ds6rm8u-.js} +0 -0
- /package/dist/core/{LinearGradient-B2ErQXPL.js → LinearGradient-BZjDhnZp.js} +0 -0
- /package/dist/core/{Liquify-BTyJAOmV.js → Liquify-CqcAWBwZ.js} +0 -0
- /package/dist/core/{Mirror-CAW37Y13.js → Mirror-5W3sul9v.js} +0 -0
- /package/dist/core/{MultiPointGradient-BcjurHeM.js → MultiPointGradient-lpUGnrLq.js} +0 -0
- /package/dist/core/{Neon-CRC16G0F.js → Neon-CUKnkAK8.js} +0 -0
- /package/dist/core/{Paper-Dkh14pIW.js → Paper-14yYPnWW.js} +0 -0
- /package/dist/core/{Perspective-CyG4fNaI.js → Perspective-POVbIGPc.js} +0 -0
- /package/dist/core/{Pixelate-DkD_q_Ma.js → Pixelate-CxUxBDeN.js} +0 -0
- /package/dist/core/{Plasma-Cuv1eJhl.js → Plasma-DM9TU0VN.js} +0 -0
- /package/dist/core/{PolarCoordinates-iQB2vg0q.js → PolarCoordinates-t4Wa00gQ.js} +0 -0
- /package/dist/core/{Polygon-2V8po0Ba.js → Polygon-C1y6Nyh4.js} +0 -0
- /package/dist/core/{Posterize-Bnf3EUfk.js → Posterize-Dk4DE8Ee.js} +0 -0
- /package/dist/core/{ProgressiveBlur-Bc_dXikb.js → ProgressiveBlur-BcHBSVDo.js} +0 -0
- /package/dist/core/{RadialGradient-niSnNlOF.js → RadialGradient-CSXQIa5L.js} +0 -0
- /package/dist/core/{RectangularCoordinates-DbQ25OTz.js → RectangularCoordinates-YaZ_uRXb.js} +0 -0
- /package/dist/core/{Ring-BiKv_lr2.js → Ring-Chj1tp_P.js} +0 -0
- /package/dist/core/{Ripples-Daco0GPY.js → Ripples-wJx2FwJY.js} +0 -0
- /package/dist/core/{RoundedRect-BjOTRXb0.js → RoundedRect-BEj6tE1e.js} +0 -0
- /package/dist/core/{Saturation-BNWZN-nJ.js → Saturation-B500nPZH.js} +0 -0
- /package/dist/core/{Sharpness-tRNM2arG.js → Sharpness-NqY4_gKZ.js} +0 -0
- /package/dist/core/{Shatter-Cyq_lBjn.js → Shatter-CZMOHj60.js} +0 -0
- /package/dist/core/{SimplexNoise-DSvDs4b7.js → SimplexNoise-2-J7EbY9.js} +0 -0
- /package/dist/core/{SineWave-Beim8Xoe.js → SineWave-OWJVWsI1.js} +0 -0
- /package/dist/core/{Solarize-B0aT_8tE.js → Solarize-CEhQxL9Z.js} +0 -0
- /package/dist/core/{SolidColor-kt6ayyXz.js → SolidColor-Dlzm61ZG.js} +0 -0
- /package/dist/core/{Spherize-u6gO2hh2.js → Spherize-CXf4_Mkm.js} +0 -0
- /package/dist/core/{Spiral-DRpE_jsz.js → Spiral-CSXNX92f.js} +0 -0
- /package/dist/core/{Star-DJnks6B5.js → Star-fPw1j10r.js} +0 -0
- /package/dist/core/{Strands-BqCaitMb.js → Strands-BPVy1zbt.js} +0 -0
- /package/dist/core/{Stretch-TztFP3F2.js → Stretch-CFAjfvny.js} +0 -0
- /package/dist/core/{Stripes-UYWf5Cmn.js → Stripes-BSGzno-I.js} +0 -0
- /package/dist/core/{StudioBackground-CvKGt77W.js → StudioBackground-81AihXcZ.js} +0 -0
- /package/dist/core/{Swirl-YCWu5OJE.js → Swirl-D_ZvZtDS.js} +0 -0
- /package/dist/core/{TiltShift-DKibnYzM.js → TiltShift-BysRsV8v.js} +0 -0
- /package/dist/core/{Tint-aVYSCIlD.js → Tint-C6xN-Qot.js} +0 -0
- /package/dist/core/{Trapezoid-CoK8i1IS.js → Trapezoid-Cr61vRvN.js} +0 -0
- /package/dist/core/{Tritone-Cn0ugwld.js → Tritone-Dk8GcpYo.js} +0 -0
- /package/dist/core/{Truchet-Bz6ETvSS.js → Truchet-BFd2XYD3.js} +0 -0
- /package/dist/core/{Twirl-Dk8y9GcM.js → Twirl-CA0r8U7e.js} +0 -0
- /package/dist/core/{Vesica-BELYZ5M8.js → Vesica-AXTA8DJU.js} +0 -0
- /package/dist/core/{Vibrance-Cdx5A_q2.js → Vibrance-Dq1jBFJb.js} +0 -0
- /package/dist/core/{Vignette-B94FMFBz.js → Vignette-DB8x78Up.js} +0 -0
- /package/dist/core/{Voronoi-DPWvdZ05.js → Voronoi-ALXxxHBo.js} +0 -0
- /package/dist/core/{WaveDistortion-C7mIgJok.js → WaveDistortion-BVT1KuLK.js} +0 -0
- /package/dist/core/{Weave-DzZv1-19.js → Weave-j4CrCig4.js} +0 -0
- /package/dist/core/{ZoomBlur-DUcqnggc.js → ZoomBlur-Cl75kL8E.js} +0 -0
- /package/dist/core/{browser-CpS3EEFG.js → browser-DIoaEnIX.js} +0 -0
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
// @ts-ignore - this import is replaced at build time
|
|
16
16
|
import { componentDefinition, type ComponentProps } from '../../../core/shaders/Grayscale/index.js';
|
|
17
17
|
|
|
18
|
+
// Warn once per page load if this is an experimental component
|
|
19
|
+
let _experimentalWarnedOnce = false;
|
|
20
|
+
if ((componentDefinition as any).experimental && !_experimentalWarnedOnce) {
|
|
21
|
+
_experimentalWarnedOnce = true;
|
|
22
|
+
const _e = (componentDefinition as any).experimental;
|
|
23
|
+
console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, 'color: #f59e0b; font-weight: bold');
|
|
24
|
+
}
|
|
25
|
+
|
|
18
26
|
/**
|
|
19
27
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
20
28
|
*/
|
|
@@ -157,7 +165,7 @@
|
|
|
157
165
|
/**
|
|
158
166
|
* Get the node registration function from parent context
|
|
159
167
|
*/
|
|
160
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
168
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
161
169
|
if (parentRegister === undefined) {
|
|
162
170
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
163
171
|
}
|
|
@@ -178,6 +186,27 @@
|
|
|
178
186
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
179
187
|
}
|
|
180
188
|
|
|
189
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
190
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
191
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
192
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
193
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
194
|
+
|
|
195
|
+
function teleportToBody(node: HTMLElement) {
|
|
196
|
+
document.body.appendChild(node);
|
|
197
|
+
return { destroy() { node.remove(); } };
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (isCapturesDOM) {
|
|
201
|
+
const onWinResize = () => {
|
|
202
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
203
|
+
captureW = Math.round(window.innerWidth * d);
|
|
204
|
+
captureH = Math.round(window.innerHeight * d);
|
|
205
|
+
};
|
|
206
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
207
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
208
|
+
}
|
|
209
|
+
|
|
181
210
|
// DOM marker ref for determining render order from template position
|
|
182
211
|
let orderMarker: HTMLSpanElement;
|
|
183
212
|
|
|
@@ -247,7 +276,8 @@
|
|
|
247
276
|
transform: effectiveTransform
|
|
248
277
|
},
|
|
249
278
|
uniforms,
|
|
250
|
-
componentDefinition
|
|
279
|
+
componentDefinition,
|
|
280
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
251
281
|
);
|
|
252
282
|
|
|
253
283
|
// Set flag to enable effects after successful registration
|
|
@@ -282,5 +312,14 @@
|
|
|
282
312
|
</script>
|
|
283
313
|
|
|
284
314
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
285
|
-
{
|
|
286
|
-
|
|
315
|
+
{#if !isCapturesDOM}
|
|
316
|
+
{@render children?.()}
|
|
317
|
+
{/if}
|
|
318
|
+
</span>
|
|
319
|
+
{#if isCapturesDOM}
|
|
320
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
321
|
+
width={captureW} height={captureH}
|
|
322
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
323
|
+
{@render children?.()}
|
|
324
|
+
</canvas>
|
|
325
|
+
{/if}
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
// @ts-ignore - this import is replaced at build time
|
|
16
16
|
import { componentDefinition, type ComponentProps } from '../../../core/shaders/Grid/index.js';
|
|
17
17
|
|
|
18
|
+
// Warn once per page load if this is an experimental component
|
|
19
|
+
let _experimentalWarnedOnce = false;
|
|
20
|
+
if ((componentDefinition as any).experimental && !_experimentalWarnedOnce) {
|
|
21
|
+
_experimentalWarnedOnce = true;
|
|
22
|
+
const _e = (componentDefinition as any).experimental;
|
|
23
|
+
console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, 'color: #f59e0b; font-weight: bold');
|
|
24
|
+
}
|
|
25
|
+
|
|
18
26
|
/**
|
|
19
27
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
20
28
|
*/
|
|
@@ -160,7 +168,7 @@
|
|
|
160
168
|
/**
|
|
161
169
|
* Get the node registration function from parent context
|
|
162
170
|
*/
|
|
163
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
171
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
164
172
|
if (parentRegister === undefined) {
|
|
165
173
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
166
174
|
}
|
|
@@ -181,6 +189,27 @@
|
|
|
181
189
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
182
190
|
}
|
|
183
191
|
|
|
192
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
193
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
194
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
195
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
196
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
197
|
+
|
|
198
|
+
function teleportToBody(node: HTMLElement) {
|
|
199
|
+
document.body.appendChild(node);
|
|
200
|
+
return { destroy() { node.remove(); } };
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (isCapturesDOM) {
|
|
204
|
+
const onWinResize = () => {
|
|
205
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
206
|
+
captureW = Math.round(window.innerWidth * d);
|
|
207
|
+
captureH = Math.round(window.innerHeight * d);
|
|
208
|
+
};
|
|
209
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
210
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
211
|
+
}
|
|
212
|
+
|
|
184
213
|
// DOM marker ref for determining render order from template position
|
|
185
214
|
let orderMarker: HTMLSpanElement;
|
|
186
215
|
|
|
@@ -250,7 +279,8 @@
|
|
|
250
279
|
transform: effectiveTransform
|
|
251
280
|
},
|
|
252
281
|
uniforms,
|
|
253
|
-
componentDefinition
|
|
282
|
+
componentDefinition,
|
|
283
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
254
284
|
);
|
|
255
285
|
|
|
256
286
|
// Set flag to enable effects after successful registration
|
|
@@ -285,5 +315,14 @@
|
|
|
285
315
|
</script>
|
|
286
316
|
|
|
287
317
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
288
|
-
{
|
|
289
|
-
|
|
318
|
+
{#if !isCapturesDOM}
|
|
319
|
+
{@render children?.()}
|
|
320
|
+
{/if}
|
|
321
|
+
</span>
|
|
322
|
+
{#if isCapturesDOM}
|
|
323
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
324
|
+
width={captureW} height={captureH}
|
|
325
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
326
|
+
{@render children?.()}
|
|
327
|
+
</canvas>
|
|
328
|
+
{/if}
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
// @ts-ignore - this import is replaced at build time
|
|
16
16
|
import { componentDefinition, type ComponentProps } from '../../../core/shaders/GridDistortion/index.js';
|
|
17
17
|
|
|
18
|
+
// Warn once per page load if this is an experimental component
|
|
19
|
+
let _experimentalWarnedOnce = false;
|
|
20
|
+
if ((componentDefinition as any).experimental && !_experimentalWarnedOnce) {
|
|
21
|
+
_experimentalWarnedOnce = true;
|
|
22
|
+
const _e = (componentDefinition as any).experimental;
|
|
23
|
+
console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, 'color: #f59e0b; font-weight: bold');
|
|
24
|
+
}
|
|
25
|
+
|
|
18
26
|
/**
|
|
19
27
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
20
28
|
*/
|
|
@@ -158,7 +166,7 @@
|
|
|
158
166
|
/**
|
|
159
167
|
* Get the node registration function from parent context
|
|
160
168
|
*/
|
|
161
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
169
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
162
170
|
if (parentRegister === undefined) {
|
|
163
171
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
164
172
|
}
|
|
@@ -179,6 +187,27 @@
|
|
|
179
187
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
180
188
|
}
|
|
181
189
|
|
|
190
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
191
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
192
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
193
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
194
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
195
|
+
|
|
196
|
+
function teleportToBody(node: HTMLElement) {
|
|
197
|
+
document.body.appendChild(node);
|
|
198
|
+
return { destroy() { node.remove(); } };
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
if (isCapturesDOM) {
|
|
202
|
+
const onWinResize = () => {
|
|
203
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
204
|
+
captureW = Math.round(window.innerWidth * d);
|
|
205
|
+
captureH = Math.round(window.innerHeight * d);
|
|
206
|
+
};
|
|
207
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
208
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
209
|
+
}
|
|
210
|
+
|
|
182
211
|
// DOM marker ref for determining render order from template position
|
|
183
212
|
let orderMarker: HTMLSpanElement;
|
|
184
213
|
|
|
@@ -248,7 +277,8 @@
|
|
|
248
277
|
transform: effectiveTransform
|
|
249
278
|
},
|
|
250
279
|
uniforms,
|
|
251
|
-
componentDefinition
|
|
280
|
+
componentDefinition,
|
|
281
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
252
282
|
);
|
|
253
283
|
|
|
254
284
|
// Set flag to enable effects after successful registration
|
|
@@ -283,5 +313,14 @@
|
|
|
283
313
|
</script>
|
|
284
314
|
|
|
285
315
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
286
|
-
{
|
|
287
|
-
|
|
316
|
+
{#if !isCapturesDOM}
|
|
317
|
+
{@render children?.()}
|
|
318
|
+
{/if}
|
|
319
|
+
</span>
|
|
320
|
+
{#if isCapturesDOM}
|
|
321
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
322
|
+
width={captureW} height={captureH}
|
|
323
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
324
|
+
{@render children?.()}
|
|
325
|
+
</canvas>
|
|
326
|
+
{/if}
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
// @ts-ignore - this import is replaced at build time
|
|
16
16
|
import { componentDefinition, type ComponentProps } from '../../../core/shaders/Group/index.js';
|
|
17
17
|
|
|
18
|
+
// Warn once per page load if this is an experimental component
|
|
19
|
+
let _experimentalWarnedOnce = false;
|
|
20
|
+
if ((componentDefinition as any).experimental && !_experimentalWarnedOnce) {
|
|
21
|
+
_experimentalWarnedOnce = true;
|
|
22
|
+
const _e = (componentDefinition as any).experimental;
|
|
23
|
+
console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, 'color: #f59e0b; font-weight: bold');
|
|
24
|
+
}
|
|
25
|
+
|
|
18
26
|
/**
|
|
19
27
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
20
28
|
*/
|
|
@@ -157,7 +165,7 @@
|
|
|
157
165
|
/**
|
|
158
166
|
* Get the node registration function from parent context
|
|
159
167
|
*/
|
|
160
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
168
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
161
169
|
if (parentRegister === undefined) {
|
|
162
170
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
163
171
|
}
|
|
@@ -178,6 +186,27 @@
|
|
|
178
186
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
179
187
|
}
|
|
180
188
|
|
|
189
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
190
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
191
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
192
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
193
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
194
|
+
|
|
195
|
+
function teleportToBody(node: HTMLElement) {
|
|
196
|
+
document.body.appendChild(node);
|
|
197
|
+
return { destroy() { node.remove(); } };
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (isCapturesDOM) {
|
|
201
|
+
const onWinResize = () => {
|
|
202
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
203
|
+
captureW = Math.round(window.innerWidth * d);
|
|
204
|
+
captureH = Math.round(window.innerHeight * d);
|
|
205
|
+
};
|
|
206
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
207
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
208
|
+
}
|
|
209
|
+
|
|
181
210
|
// DOM marker ref for determining render order from template position
|
|
182
211
|
let orderMarker: HTMLSpanElement;
|
|
183
212
|
|
|
@@ -247,7 +276,8 @@
|
|
|
247
276
|
transform: effectiveTransform
|
|
248
277
|
},
|
|
249
278
|
uniforms,
|
|
250
|
-
componentDefinition
|
|
279
|
+
componentDefinition,
|
|
280
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
251
281
|
);
|
|
252
282
|
|
|
253
283
|
// Set flag to enable effects after successful registration
|
|
@@ -282,5 +312,14 @@
|
|
|
282
312
|
</script>
|
|
283
313
|
|
|
284
314
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
285
|
-
{
|
|
286
|
-
|
|
315
|
+
{#if !isCapturesDOM}
|
|
316
|
+
{@render children?.()}
|
|
317
|
+
{/if}
|
|
318
|
+
</span>
|
|
319
|
+
{#if isCapturesDOM}
|
|
320
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
321
|
+
width={captureW} height={captureH}
|
|
322
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
323
|
+
{@render children?.()}
|
|
324
|
+
</canvas>
|
|
325
|
+
{/if}
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
// @ts-ignore - this import is replaced at build time
|
|
16
16
|
import { componentDefinition, type ComponentProps } from '../../../core/shaders/Halftone/index.js';
|
|
17
17
|
|
|
18
|
+
// Warn once per page load if this is an experimental component
|
|
19
|
+
let _experimentalWarnedOnce = false;
|
|
20
|
+
if ((componentDefinition as any).experimental && !_experimentalWarnedOnce) {
|
|
21
|
+
_experimentalWarnedOnce = true;
|
|
22
|
+
const _e = (componentDefinition as any).experimental;
|
|
23
|
+
console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, 'color: #f59e0b; font-weight: bold');
|
|
24
|
+
}
|
|
25
|
+
|
|
18
26
|
/**
|
|
19
27
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
20
28
|
*/
|
|
@@ -160,7 +168,7 @@
|
|
|
160
168
|
/**
|
|
161
169
|
* Get the node registration function from parent context
|
|
162
170
|
*/
|
|
163
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
171
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
164
172
|
if (parentRegister === undefined) {
|
|
165
173
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
166
174
|
}
|
|
@@ -181,6 +189,27 @@
|
|
|
181
189
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
182
190
|
}
|
|
183
191
|
|
|
192
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
193
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
194
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
195
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
196
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
197
|
+
|
|
198
|
+
function teleportToBody(node: HTMLElement) {
|
|
199
|
+
document.body.appendChild(node);
|
|
200
|
+
return { destroy() { node.remove(); } };
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (isCapturesDOM) {
|
|
204
|
+
const onWinResize = () => {
|
|
205
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
206
|
+
captureW = Math.round(window.innerWidth * d);
|
|
207
|
+
captureH = Math.round(window.innerHeight * d);
|
|
208
|
+
};
|
|
209
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
210
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
211
|
+
}
|
|
212
|
+
|
|
184
213
|
// DOM marker ref for determining render order from template position
|
|
185
214
|
let orderMarker: HTMLSpanElement;
|
|
186
215
|
|
|
@@ -250,7 +279,8 @@
|
|
|
250
279
|
transform: effectiveTransform
|
|
251
280
|
},
|
|
252
281
|
uniforms,
|
|
253
|
-
componentDefinition
|
|
282
|
+
componentDefinition,
|
|
283
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
254
284
|
);
|
|
255
285
|
|
|
256
286
|
// Set flag to enable effects after successful registration
|
|
@@ -285,5 +315,14 @@
|
|
|
285
315
|
</script>
|
|
286
316
|
|
|
287
317
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
288
|
-
{
|
|
289
|
-
|
|
318
|
+
{#if !isCapturesDOM}
|
|
319
|
+
{@render children?.()}
|
|
320
|
+
{/if}
|
|
321
|
+
</span>
|
|
322
|
+
{#if isCapturesDOM}
|
|
323
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
324
|
+
width={captureW} height={captureH}
|
|
325
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
326
|
+
{@render children?.()}
|
|
327
|
+
</canvas>
|
|
328
|
+
{/if}
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
// @ts-ignore - this import is replaced at build time
|
|
16
16
|
import { componentDefinition, type ComponentProps } from '../../../core/shaders/HexGrid/index.js';
|
|
17
17
|
|
|
18
|
+
// Warn once per page load if this is an experimental component
|
|
19
|
+
let _experimentalWarnedOnce = false;
|
|
20
|
+
if ((componentDefinition as any).experimental && !_experimentalWarnedOnce) {
|
|
21
|
+
_experimentalWarnedOnce = true;
|
|
22
|
+
const _e = (componentDefinition as any).experimental;
|
|
23
|
+
console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, 'color: #f59e0b; font-weight: bold');
|
|
24
|
+
}
|
|
25
|
+
|
|
18
26
|
/**
|
|
19
27
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
20
28
|
*/
|
|
@@ -159,7 +167,7 @@
|
|
|
159
167
|
/**
|
|
160
168
|
* Get the node registration function from parent context
|
|
161
169
|
*/
|
|
162
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
170
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
163
171
|
if (parentRegister === undefined) {
|
|
164
172
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
165
173
|
}
|
|
@@ -180,6 +188,27 @@
|
|
|
180
188
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
181
189
|
}
|
|
182
190
|
|
|
191
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
192
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
193
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
194
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
195
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
196
|
+
|
|
197
|
+
function teleportToBody(node: HTMLElement) {
|
|
198
|
+
document.body.appendChild(node);
|
|
199
|
+
return { destroy() { node.remove(); } };
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (isCapturesDOM) {
|
|
203
|
+
const onWinResize = () => {
|
|
204
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
205
|
+
captureW = Math.round(window.innerWidth * d);
|
|
206
|
+
captureH = Math.round(window.innerHeight * d);
|
|
207
|
+
};
|
|
208
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
209
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
210
|
+
}
|
|
211
|
+
|
|
183
212
|
// DOM marker ref for determining render order from template position
|
|
184
213
|
let orderMarker: HTMLSpanElement;
|
|
185
214
|
|
|
@@ -249,7 +278,8 @@
|
|
|
249
278
|
transform: effectiveTransform
|
|
250
279
|
},
|
|
251
280
|
uniforms,
|
|
252
|
-
componentDefinition
|
|
281
|
+
componentDefinition,
|
|
282
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
253
283
|
);
|
|
254
284
|
|
|
255
285
|
// Set flag to enable effects after successful registration
|
|
@@ -284,5 +314,14 @@
|
|
|
284
314
|
</script>
|
|
285
315
|
|
|
286
316
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
287
|
-
{
|
|
288
|
-
|
|
317
|
+
{#if !isCapturesDOM}
|
|
318
|
+
{@render children?.()}
|
|
319
|
+
{/if}
|
|
320
|
+
</span>
|
|
321
|
+
{#if isCapturesDOM}
|
|
322
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
323
|
+
width={captureW} height={captureH}
|
|
324
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
325
|
+
{@render children?.()}
|
|
326
|
+
</canvas>
|
|
327
|
+
{/if}
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
// @ts-ignore - this import is replaced at build time
|
|
16
16
|
import { componentDefinition, type ComponentProps } from '../../../core/shaders/HueShift/index.js';
|
|
17
17
|
|
|
18
|
+
// Warn once per page load if this is an experimental component
|
|
19
|
+
let _experimentalWarnedOnce = false;
|
|
20
|
+
if ((componentDefinition as any).experimental && !_experimentalWarnedOnce) {
|
|
21
|
+
_experimentalWarnedOnce = true;
|
|
22
|
+
const _e = (componentDefinition as any).experimental;
|
|
23
|
+
console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, 'color: #f59e0b; font-weight: bold');
|
|
24
|
+
}
|
|
25
|
+
|
|
18
26
|
/**
|
|
19
27
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
20
28
|
*/
|
|
@@ -158,7 +166,7 @@
|
|
|
158
166
|
/**
|
|
159
167
|
* Get the node registration function from parent context
|
|
160
168
|
*/
|
|
161
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
169
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
162
170
|
if (parentRegister === undefined) {
|
|
163
171
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
164
172
|
}
|
|
@@ -179,6 +187,27 @@
|
|
|
179
187
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
180
188
|
}
|
|
181
189
|
|
|
190
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
191
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
192
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
193
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
194
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
195
|
+
|
|
196
|
+
function teleportToBody(node: HTMLElement) {
|
|
197
|
+
document.body.appendChild(node);
|
|
198
|
+
return { destroy() { node.remove(); } };
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
if (isCapturesDOM) {
|
|
202
|
+
const onWinResize = () => {
|
|
203
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
204
|
+
captureW = Math.round(window.innerWidth * d);
|
|
205
|
+
captureH = Math.round(window.innerHeight * d);
|
|
206
|
+
};
|
|
207
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
208
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
209
|
+
}
|
|
210
|
+
|
|
182
211
|
// DOM marker ref for determining render order from template position
|
|
183
212
|
let orderMarker: HTMLSpanElement;
|
|
184
213
|
|
|
@@ -248,7 +277,8 @@
|
|
|
248
277
|
transform: effectiveTransform
|
|
249
278
|
},
|
|
250
279
|
uniforms,
|
|
251
|
-
componentDefinition
|
|
280
|
+
componentDefinition,
|
|
281
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
252
282
|
);
|
|
253
283
|
|
|
254
284
|
// Set flag to enable effects after successful registration
|
|
@@ -283,5 +313,14 @@
|
|
|
283
313
|
</script>
|
|
284
314
|
|
|
285
315
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
286
|
-
{
|
|
287
|
-
|
|
316
|
+
{#if !isCapturesDOM}
|
|
317
|
+
{@render children?.()}
|
|
318
|
+
{/if}
|
|
319
|
+
</span>
|
|
320
|
+
{#if isCapturesDOM}
|
|
321
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
322
|
+
width={captureW} height={captureH}
|
|
323
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
324
|
+
{@render children?.()}
|
|
325
|
+
</canvas>
|
|
326
|
+
{/if}
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
// @ts-ignore - this import is replaced at build time
|
|
16
16
|
import { componentDefinition, type ComponentProps } from '../../../core/shaders/ImageTexture/index.js';
|
|
17
17
|
|
|
18
|
+
// Warn once per page load if this is an experimental component
|
|
19
|
+
let _experimentalWarnedOnce = false;
|
|
20
|
+
if ((componentDefinition as any).experimental && !_experimentalWarnedOnce) {
|
|
21
|
+
_experimentalWarnedOnce = true;
|
|
22
|
+
const _e = (componentDefinition as any).experimental;
|
|
23
|
+
console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, 'color: #f59e0b; font-weight: bold');
|
|
24
|
+
}
|
|
25
|
+
|
|
18
26
|
/**
|
|
19
27
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
20
28
|
*/
|
|
@@ -157,7 +165,7 @@
|
|
|
157
165
|
/**
|
|
158
166
|
* Get the node registration function from parent context
|
|
159
167
|
*/
|
|
160
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
168
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
161
169
|
if (parentRegister === undefined) {
|
|
162
170
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
163
171
|
}
|
|
@@ -178,6 +186,27 @@
|
|
|
178
186
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
179
187
|
}
|
|
180
188
|
|
|
189
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
190
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
191
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
192
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
193
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
194
|
+
|
|
195
|
+
function teleportToBody(node: HTMLElement) {
|
|
196
|
+
document.body.appendChild(node);
|
|
197
|
+
return { destroy() { node.remove(); } };
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (isCapturesDOM) {
|
|
201
|
+
const onWinResize = () => {
|
|
202
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
203
|
+
captureW = Math.round(window.innerWidth * d);
|
|
204
|
+
captureH = Math.round(window.innerHeight * d);
|
|
205
|
+
};
|
|
206
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
207
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
208
|
+
}
|
|
209
|
+
|
|
181
210
|
// DOM marker ref for determining render order from template position
|
|
182
211
|
let orderMarker: HTMLSpanElement;
|
|
183
212
|
|
|
@@ -247,7 +276,8 @@
|
|
|
247
276
|
transform: effectiveTransform
|
|
248
277
|
},
|
|
249
278
|
uniforms,
|
|
250
|
-
componentDefinition
|
|
279
|
+
componentDefinition,
|
|
280
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
251
281
|
);
|
|
252
282
|
|
|
253
283
|
// Set flag to enable effects after successful registration
|
|
@@ -282,5 +312,14 @@
|
|
|
282
312
|
</script>
|
|
283
313
|
|
|
284
314
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
285
|
-
{
|
|
286
|
-
|
|
315
|
+
{#if !isCapturesDOM}
|
|
316
|
+
{@render children?.()}
|
|
317
|
+
{/if}
|
|
318
|
+
</span>
|
|
319
|
+
{#if isCapturesDOM}
|
|
320
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
321
|
+
width={captureW} height={captureH}
|
|
322
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
323
|
+
{@render children?.()}
|
|
324
|
+
</canvas>
|
|
325
|
+
{/if}
|