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/CRTScreen/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
|
*/
|
|
@@ -165,7 +173,7 @@
|
|
|
165
173
|
/**
|
|
166
174
|
* Get the node registration function from parent context
|
|
167
175
|
*/
|
|
168
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
176
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
169
177
|
if (parentRegister === undefined) {
|
|
170
178
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
171
179
|
}
|
|
@@ -186,6 +194,27 @@
|
|
|
186
194
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
187
195
|
}
|
|
188
196
|
|
|
197
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
198
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
199
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
200
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
201
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
202
|
+
|
|
203
|
+
function teleportToBody(node: HTMLElement) {
|
|
204
|
+
document.body.appendChild(node);
|
|
205
|
+
return { destroy() { node.remove(); } };
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
if (isCapturesDOM) {
|
|
209
|
+
const onWinResize = () => {
|
|
210
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
211
|
+
captureW = Math.round(window.innerWidth * d);
|
|
212
|
+
captureH = Math.round(window.innerHeight * d);
|
|
213
|
+
};
|
|
214
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
215
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
216
|
+
}
|
|
217
|
+
|
|
189
218
|
// DOM marker ref for determining render order from template position
|
|
190
219
|
let orderMarker: HTMLSpanElement;
|
|
191
220
|
|
|
@@ -255,7 +284,8 @@
|
|
|
255
284
|
transform: effectiveTransform
|
|
256
285
|
},
|
|
257
286
|
uniforms,
|
|
258
|
-
componentDefinition
|
|
287
|
+
componentDefinition,
|
|
288
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
259
289
|
);
|
|
260
290
|
|
|
261
291
|
// Set flag to enable effects after successful registration
|
|
@@ -290,5 +320,14 @@
|
|
|
290
320
|
</script>
|
|
291
321
|
|
|
292
322
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
293
|
-
{
|
|
294
|
-
|
|
323
|
+
{#if !isCapturesDOM}
|
|
324
|
+
{@render children?.()}
|
|
325
|
+
{/if}
|
|
326
|
+
</span>
|
|
327
|
+
{#if isCapturesDOM}
|
|
328
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
329
|
+
width={captureW} height={captureH}
|
|
330
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
331
|
+
{@render children?.()}
|
|
332
|
+
</canvas>
|
|
333
|
+
{/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/ChannelBlur/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/Checkerboard/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/ChromaFlow/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/ChromaticAberration/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
|
*/
|
|
@@ -162,7 +170,7 @@
|
|
|
162
170
|
/**
|
|
163
171
|
* Get the node registration function from parent context
|
|
164
172
|
*/
|
|
165
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
173
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
166
174
|
if (parentRegister === undefined) {
|
|
167
175
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
168
176
|
}
|
|
@@ -183,6 +191,27 @@
|
|
|
183
191
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
184
192
|
}
|
|
185
193
|
|
|
194
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
195
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
196
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
197
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
198
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
199
|
+
|
|
200
|
+
function teleportToBody(node: HTMLElement) {
|
|
201
|
+
document.body.appendChild(node);
|
|
202
|
+
return { destroy() { node.remove(); } };
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (isCapturesDOM) {
|
|
206
|
+
const onWinResize = () => {
|
|
207
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
208
|
+
captureW = Math.round(window.innerWidth * d);
|
|
209
|
+
captureH = Math.round(window.innerHeight * d);
|
|
210
|
+
};
|
|
211
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
212
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
213
|
+
}
|
|
214
|
+
|
|
186
215
|
// DOM marker ref for determining render order from template position
|
|
187
216
|
let orderMarker: HTMLSpanElement;
|
|
188
217
|
|
|
@@ -252,7 +281,8 @@
|
|
|
252
281
|
transform: effectiveTransform
|
|
253
282
|
},
|
|
254
283
|
uniforms,
|
|
255
|
-
componentDefinition
|
|
284
|
+
componentDefinition,
|
|
285
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
256
286
|
);
|
|
257
287
|
|
|
258
288
|
// Set flag to enable effects after successful registration
|
|
@@ -287,5 +317,14 @@
|
|
|
287
317
|
</script>
|
|
288
318
|
|
|
289
319
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
290
|
-
{
|
|
291
|
-
|
|
320
|
+
{#if !isCapturesDOM}
|
|
321
|
+
{@render children?.()}
|
|
322
|
+
{/if}
|
|
323
|
+
</span>
|
|
324
|
+
{#if isCapturesDOM}
|
|
325
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
326
|
+
width={captureW} height={captureH}
|
|
327
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
328
|
+
{@render children?.()}
|
|
329
|
+
</canvas>
|
|
330
|
+
{/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/Circle/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
|
*/
|
|
@@ -161,7 +169,7 @@
|
|
|
161
169
|
/**
|
|
162
170
|
* Get the node registration function from parent context
|
|
163
171
|
*/
|
|
164
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
172
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
165
173
|
if (parentRegister === undefined) {
|
|
166
174
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
167
175
|
}
|
|
@@ -182,6 +190,27 @@
|
|
|
182
190
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
183
191
|
}
|
|
184
192
|
|
|
193
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
194
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
195
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
196
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
197
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
198
|
+
|
|
199
|
+
function teleportToBody(node: HTMLElement) {
|
|
200
|
+
document.body.appendChild(node);
|
|
201
|
+
return { destroy() { node.remove(); } };
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
if (isCapturesDOM) {
|
|
205
|
+
const onWinResize = () => {
|
|
206
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
207
|
+
captureW = Math.round(window.innerWidth * d);
|
|
208
|
+
captureH = Math.round(window.innerHeight * d);
|
|
209
|
+
};
|
|
210
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
211
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
212
|
+
}
|
|
213
|
+
|
|
185
214
|
// DOM marker ref for determining render order from template position
|
|
186
215
|
let orderMarker: HTMLSpanElement;
|
|
187
216
|
|
|
@@ -251,7 +280,8 @@
|
|
|
251
280
|
transform: effectiveTransform
|
|
252
281
|
},
|
|
253
282
|
uniforms,
|
|
254
|
-
componentDefinition
|
|
283
|
+
componentDefinition,
|
|
284
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
255
285
|
);
|
|
256
286
|
|
|
257
287
|
// Set flag to enable effects after successful registration
|
|
@@ -286,5 +316,14 @@
|
|
|
286
316
|
</script>
|
|
287
317
|
|
|
288
318
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
289
|
-
{
|
|
290
|
-
|
|
319
|
+
{#if !isCapturesDOM}
|
|
320
|
+
{@render children?.()}
|
|
321
|
+
{/if}
|
|
322
|
+
</span>
|
|
323
|
+
{#if isCapturesDOM}
|
|
324
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
325
|
+
width={captureW} height={captureH}
|
|
326
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
327
|
+
{@render children?.()}
|
|
328
|
+
</canvas>
|
|
329
|
+
{/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/ConcentricSpin/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
|
*/
|
|
@@ -162,7 +170,7 @@
|
|
|
162
170
|
/**
|
|
163
171
|
* Get the node registration function from parent context
|
|
164
172
|
*/
|
|
165
|
-
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any) => void>('shaderNodeRegister');
|
|
173
|
+
const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: UniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
|
|
166
174
|
if (parentRegister === undefined) {
|
|
167
175
|
throw new Error('Shader components must be used inside an <Shader> component or another shader component');
|
|
168
176
|
}
|
|
@@ -183,6 +191,27 @@
|
|
|
183
191
|
throw new Error('Shader components require shaderMetadataUpdate from parent');
|
|
184
192
|
}
|
|
185
193
|
|
|
194
|
+
// capturesDOM — canvas layoutsubtree portal for DOMTexture-style shaders
|
|
195
|
+
const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
|
|
196
|
+
let captureCanvas: HTMLCanvasElement | undefined;
|
|
197
|
+
let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
198
|
+
let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
|
|
199
|
+
|
|
200
|
+
function teleportToBody(node: HTMLElement) {
|
|
201
|
+
document.body.appendChild(node);
|
|
202
|
+
return { destroy() { node.remove(); } };
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (isCapturesDOM) {
|
|
206
|
+
const onWinResize = () => {
|
|
207
|
+
const d = Math.min(window.devicePixelRatio, 2);
|
|
208
|
+
captureW = Math.round(window.innerWidth * d);
|
|
209
|
+
captureH = Math.round(window.innerHeight * d);
|
|
210
|
+
};
|
|
211
|
+
onMount(() => { window.addEventListener('resize', onWinResize); });
|
|
212
|
+
onDestroy(() => { window.removeEventListener('resize', onWinResize); });
|
|
213
|
+
}
|
|
214
|
+
|
|
186
215
|
// DOM marker ref for determining render order from template position
|
|
187
216
|
let orderMarker: HTMLSpanElement;
|
|
188
217
|
|
|
@@ -252,7 +281,8 @@
|
|
|
252
281
|
transform: effectiveTransform
|
|
253
282
|
},
|
|
254
283
|
uniforms,
|
|
255
|
-
componentDefinition
|
|
284
|
+
componentDefinition,
|
|
285
|
+
isCapturesDOM ? captureCanvas : undefined
|
|
256
286
|
);
|
|
257
287
|
|
|
258
288
|
// Set flag to enable effects after successful registration
|
|
@@ -287,5 +317,14 @@
|
|
|
287
317
|
</script>
|
|
288
318
|
|
|
289
319
|
<span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
|
|
290
|
-
{
|
|
291
|
-
|
|
320
|
+
{#if !isCapturesDOM}
|
|
321
|
+
{@render children?.()}
|
|
322
|
+
{/if}
|
|
323
|
+
</span>
|
|
324
|
+
{#if isCapturesDOM}
|
|
325
|
+
<canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
|
|
326
|
+
width={captureW} height={captureH}
|
|
327
|
+
style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
|
|
328
|
+
{@render children?.()}
|
|
329
|
+
</canvas>
|
|
330
|
+
{/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/ConicGradient/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}
|