@paper-design/shaders-react 0.0.16 → 0.0.18

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/README.md CHANGED
@@ -6,11 +6,13 @@
6
6
  import { MeshGradient } from '@paper-design/shaders-react';
7
7
 
8
8
  <MeshGradient
9
- colors={['#283BFC', '#FF2828', '#ddd']}
10
- blur="0.6"
11
- frequency="0.8"
12
- animationSpeed="1"
13
- style={{ width: 500, height: 200 }} />
9
+ color1="#FFC0CB" // pink
10
+ color2="#FFFF00" // yellow
11
+ color3="#0000FF" // blue
12
+ color4="#800080" // purple
13
+ speed={0.25}
14
+ style={{ width: 500, height: 200 }}
15
+ />;
14
16
 
15
17
  // these settings can be configured in code or designed in Paper
16
18
  ```
package/dist/index.d.ts CHANGED
@@ -1,11 +1,46 @@
1
1
  export { ShaderMount } from './shader-mount';
2
- export { GrainClouds, grainCloudsDefaults } from './shaders/grain-clouds';
2
+ export { GrainClouds, grainCloudsPresets } from './shaders/grain-clouds';
3
3
  export { type GrainCloudsProps } from './shaders/grain-clouds';
4
+ export { type GrainCloudsParams } from './shaders/grain-clouds';
4
5
  export { type GrainCloudsUniforms } from '@paper-design/shaders';
5
- export { MeshGradient, meshGradientDefaults } from './shaders/mesh-gradient';
6
+ export { MeshGradient, meshGradientPresets } from './shaders/mesh-gradient';
6
7
  export { type MeshGradientProps } from './shaders/mesh-gradient';
8
+ export { type MeshGradientParams } from './shaders/mesh-gradient';
7
9
  export { type MeshGradientUniforms } from '@paper-design/shaders';
8
- export { NeuroNoise, neuroNoiseDefaults } from './shaders/neuro-noise';
10
+ export { SmokeRing, smokeRingPresets } from './shaders/smoke-ring';
11
+ export { type SmokeRingProps } from './shaders/smoke-ring';
12
+ export { type SmokeRingParams } from './shaders/smoke-ring';
13
+ export { type SmokeRingUniforms } from '@paper-design/shaders';
14
+ export { NeuroNoise, neuroNoisePresets } from './shaders/neuro-noise';
9
15
  export { type NeuroNoiseProps } from './shaders/neuro-noise';
16
+ export { type NeuroNoiseParams } from './shaders/neuro-noise';
10
17
  export { type NeuroNoiseUniforms } from '@paper-design/shaders';
18
+ export { DotsOrbit, dotsOrbitPresets } from './shaders/dots-orbit';
19
+ export { type DotsOrbitProps } from './shaders/dots-orbit';
20
+ export { type DotsOrbitParams } from './shaders/dots-orbit';
21
+ export { type DotsOrbitUniforms } from '@paper-design/shaders';
22
+ export { DotsGrid, dotsGridPresets } from './shaders/dots-grid';
23
+ export { type DotsGridProps } from './shaders/dots-grid';
24
+ export { type DotsGridParams } from './shaders/dots-grid';
25
+ export { type DotsGridUniforms, DotsGridShapes, type DotsGridShape } from '@paper-design/shaders';
26
+ export { SteppedSimplexNoise, steppedSimplexNoisePresets } from './shaders/stepped-simplex-noise';
27
+ export { type SteppedSimplexNoiseProps } from './shaders/stepped-simplex-noise';
28
+ export { type SteppedSimplexNoiseParams } from './shaders/stepped-simplex-noise';
29
+ export { type SteppedSimplexNoiseUniforms } from '@paper-design/shaders';
30
+ export { Metaballs, metaballsPresets } from './shaders/metaballs';
31
+ export { type MetaballsProps } from './shaders/metaballs';
32
+ export { type MetaballsParams } from './shaders/metaballs';
33
+ export { type MetaballsUniforms } from '@paper-design/shaders';
34
+ export { Waves, wavesPresets } from './shaders/waves';
35
+ export { type WavesProps } from './shaders/waves';
36
+ export { type WavesParams } from './shaders/waves';
37
+ export { type WavesUniforms } from '@paper-design/shaders';
38
+ export { PerlinNoise, perlinNoisePresets } from './shaders/perlin-noise';
39
+ export { type PerlinNoiseProps } from './shaders/perlin-noise';
40
+ export { type PerlinNoiseParams } from './shaders/perlin-noise';
41
+ export { type PerlinNoiseUniforms } from '@paper-design/shaders';
42
+ export { Voronoi, voronoiPresets } from './shaders/voronoi';
43
+ export { type VoronoiProps } from './shaders/voronoi';
44
+ export { type VoronoiParams } from './shaders/voronoi';
45
+ export { type VoronoiUniforms } from '@paper-design/shaders';
11
46
  export { getShaderColorFromString } from '@paper-design/shaders';
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /***** Paper Shaders: https://github.com/paper-design/shaders *****/
2
- import{useEffect as m,useRef as f}from"react";import{ShaderMount as M}from"@paper-design/shaders";import{jsx as p}from"react/jsx-runtime";var t=({ref:o,fragmentShader:r,style:g,uniforms:u={},webGlContextAttributes:d,animated:l=!0})=>{let c=o??f(null),e=f(null);return m(()=>(c.current&&(e.current=new M(c.current,r,u,d,l)),()=>{e.current&&e.current.dispose()}),[r,d]),m(()=>{e.current&&e.current.setUniforms(u)},[u]),m(()=>{e.current&&(l?e.current.startAnimating():e.current.stopAnimating())},[l]),p("canvas",{ref:c,style:g})};import{useMemo as b}from"react";import{getShaderColorFromString as S,grainCloudsFragmentShader as C}from"@paper-design/shaders";import{jsx as x}from"react/jsx-runtime";var n={color1:"#000000",color2:"#ffffff",noiseScale:1,noiseSpeed:.3,grainAmount:.05},G=o=>{let r=b(()=>({u_color1:S(o.color1,n.color1),u_color2:S(o.color2,n.color2),u_noiseScale:o.noiseScale??n.noiseScale,u_noiseSpeed:o.noiseSpeed??n.noiseSpeed,u_grainAmount:o.grainAmount??n.grainAmount}),[o.color1,o.color2,o.noiseScale,o.noiseSpeed,o.grainAmount]);return x(t,{...o,fragmentShader:C,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as N}from"react";import{getShaderColorFromString as i,meshGradientFragmentShader as P}from"@paper-design/shaders";import{jsx as _}from"react/jsx-runtime";var s={color1:"#6a5496",color2:"#9b8ab8",color3:"#f5d03b",color4:"#e48b97",speed:.1},y=o=>{let r=N(()=>({u_color1:i(o.color1,s.color1),u_color2:i(o.color2,s.color2),u_color3:i(o.color3,s.color3),u_color4:i(o.color4,s.color4),u_speed:o.speed??s.speed}),[o.color1,o.color2,o.color3,o.color4,o.speed]);return _(t,{...o,fragmentShader:P,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as F}from"react";import{getShaderColorFromString as h,neuroNoiseFragmentShader as U}from"@paper-design/shaders";import{jsx as R}from"react/jsx-runtime";var a={colorFront:"#c3a3ff",colorBack:"#000000",scale:1,speed:1,brightness:1.3},A=o=>{let r=F(()=>({u_colorFront:h(o.colorFront,a.colorFront),u_colorBack:h(o.colorBack,a.colorBack),u_scale:o.scale??a.scale,u_speed:o.speed??a.speed,u_brightness:o.brightness??a.brightness}),[o.colorFront,o.colorBack,o.scale,o.speed,o.brightness]);return R(t,{...o,fragmentShader:U,uniforms:r})};import{}from"@paper-design/shaders";import{getShaderColorFromString as lo}from"@paper-design/shaders";export{G as GrainClouds,y as MeshGradient,A as NeuroNoise,t as ShaderMount,lo as getShaderColorFromString,n as grainCloudsDefaults,s as meshGradientDefaults,a as neuroNoiseDefaults};
2
+ import{useEffect as f,useRef as z}from"react";import{ShaderMount as W}from"@paper-design/shaders";import{jsx as U}from"react/jsx-runtime";var o=({ref:e,fragmentShader:r,style:O,uniforms:x={},webGlContextAttributes:_,speed:C=1,seed:M=0})=>{let G=e??z(null),p=z(null);return f(()=>(G.current&&(p.current=new W(G.current,r,x,_,C,M)),()=>{p.current?.dispose()}),[r,_]),f(()=>{p.current?.setUniforms(x)},[x]),f(()=>{p.current?.setSpeed(C)},[C]),f(()=>{p.current?.setSeed(M)},[M]),U("canvas",{ref:G,style:O})};import{useMemo as E}from"react";import{getShaderColorFromString as D,grainCloudsFragmentShader as V}from"@paper-design/shaders";import{jsx as J}from"react/jsx-runtime";var u={name:"Default",params:{scale:1,speed:.3,seed:0,color1:"hsla(0, 0%, 0%, 1)",color2:"hsla(0, 0%, 100%, 1)",grainAmount:1}},X={name:"Sky",params:{scale:1,speed:.3,seed:0,color1:"hsla(218, 100%, 73%, 1)",color2:"hsla(0, 0%, 100%, 1)",grainAmount:0}},q=[u,X],Y=e=>{let r=E(()=>({u_scale:e.scale??u.params.scale,u_color1:D(e.color1,u.params.color1),u_color2:D(e.color2,u.params.color2),u_grainAmount:e.grainAmount??u.params.grainAmount}),[e.scale,e.color1,e.color2,e.grainAmount]);return J(o,{...e,fragmentShader:V,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as w}from"react";import{getShaderColorFromString as y,meshGradientFragmentShader as I}from"@paper-design/shaders";import{jsx as Z}from"react/jsx-runtime";var h={name:"Default",params:{speed:.15,seed:0,color1:"hsla(259, 29%, 73%, 1)",color2:"hsla(263, 57%, 39%, 1)",color3:"hsla(48, 73%, 84%, 1)",color4:"hsla(295, 32%, 70%, 1)"}},A={name:"Beach",params:{speed:.1,seed:0,color1:"hsla(186, 81%, 83%, 1)",color2:"hsla(198, 55%, 68%, 1)",color3:"hsla(53, 67%, 88%, 1)",color4:"hsla(45, 93%, 73%, 1)"}},T={name:"Faded",params:{speed:-.3,seed:0,color1:"hsla(186, 41%, 90%, 1)",color2:"hsla(208, 71%, 85%, 1)",color3:"hsla(183, 51%, 92%, 1)",color4:"hsla(201, 72%, 90%, 1)"}},L=[h,A,T],H=e=>{let r=w(()=>({u_color1:y(e.color1,h.params.color1),u_color2:y(e.color2,h.params.color2),u_color3:y(e.color3,h.params.color3),u_color4:y(e.color4,h.params.color4)}),[e.color1,e.color2,e.color3,e.color4]);return Z(o,{...e,fragmentShader:I,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as K}from"react";import{getShaderColorFromString as k,smokeRingFragmentShader as Q}from"@paper-design/shaders";import{jsx as ae}from"react/jsx-runtime";var m={name:"Default",params:{scale:1,speed:1,seed:0,colorBack:"hsla(208, 54%, 7%, 1)",colorInner:"hsla(0, 0%, 100%, 1)",colorOuter:"hsla(211, 100%, 64%, 1)",noiseScale:1.4,thickness:.33}},$={name:"Cloud",params:{scale:1,speed:1,seed:0,colorBack:"hsla(218, 100%, 62%, 1)",colorInner:"hsla(0, 0%, 100%, 1)",colorOuter:"hsla(0, 0%, 100%, 1)",noiseScale:1.8,thickness:.7}},j={name:"Fire",params:{scale:1,speed:4,seed:0,colorBack:"hsla(20, 100%, 5%, 1)",colorInner:"hsla(40, 100%, 50%, 1)",colorOuter:"hsla(0, 100%, 50%, 1)",noiseScale:1.4,thickness:.35}},ee={name:"Electric",params:{scale:1,speed:2.5,seed:0,colorBack:"hsla(47, 50%, 7%, 1)",colorInner:"hsla(47, 100%, 64%, 1)",colorOuter:"hsla(47, 100%, 64%, 1)",noiseScale:1.8,thickness:.1}},re={name:"Poison",params:{scale:1,speed:3,seed:0,colorBack:"hsla(120, 100%, 3%, 1)",colorInner:"hsla(120, 100%, 3%, 1)",colorOuter:"hsla(120, 100%, 66%, 1)",noiseScale:5,thickness:.6}},oe=[m,$,j,ee,re],se=e=>{let r=K(()=>({u_scale:e.scale??m.params.scale,u_colorBack:k(e.colorBack,m.params.colorBack),u_colorInner:k(e.colorInner,m.params.colorInner),u_colorOuter:k(e.colorOuter,m.params.colorOuter),u_noiseScale:e.noiseScale??m.params.noiseScale,u_thickness:e.thickness??m.params.thickness}),[e.scale,e.colorBack,e.colorInner,e.colorOuter,e.noiseScale,e.thickness]);return ae(o,{...e,fragmentShader:Q,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as te}from"react";import{getShaderColorFromString as v,neuroNoiseFragmentShader as le}from"@paper-design/shaders";import{jsx as me}from"react/jsx-runtime";var g={name:"Default",params:{scale:1,speed:1,seed:0,colorFront:"hsla(261, 100%, 82%, 1)",colorBack:"hsla(0, 0%, 0%, 1)",brightness:1.3}},ne={name:"Marble",params:{scale:.4,speed:0,seed:0,colorFront:"hsla(230, 24%, 15%, 1)",colorBack:"hsla(0, 0%, 97%, 1)",brightness:1.1}},ie=[g,ne],ce=e=>{let r=te(()=>({u_scale:e.scale??g.params.scale,u_colorFront:v(e.colorFront,g.params.colorFront),u_colorBack:v(e.colorBack,g.params.colorBack),u_brightness:e.brightness??g.params.brightness}),[e.scale,e.colorFront,e.colorBack,e.brightness]);return me(o,{...e,fragmentShader:le,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as de}from"react";import{getShaderColorFromString as b,dotsOrbitFragmentShader as pe}from"@paper-design/shaders";import{jsx as ge}from"react/jsx-runtime";var l={name:"Default",params:{scale:1,speed:2,seed:0,color1:"hsla(358, 66%, 49%, 1)",color2:"hsla(145, 30%, 33%, 1)",color3:"hsla(39, 88%, 52%, 1)",color4:"hsla(274, 30%, 35%, 1)",dotSize:.7,dotSizeRange:.4,spreading:1}},ue=[l],he=e=>{let r=de(()=>({u_scale:e.scale??l.params.scale,u_color1:b(e.color1,l.params.color1),u_color2:b(e.color2,l.params.color2),u_color3:b(e.color3,l.params.color3),u_color4:b(e.color4,l.params.color4),u_dotSize:e.dotSize??l.params.dotSize,u_dotSizeRange:e.dotSizeRange??l.params.dotSizeRange,u_spreading:e.spreading??l.params.spreading}),[e.scale,e.color1,e.color2,e.color3,e.color4,e.dotSize,e.dotSizeRange,e.spreading]);return ge(o,{...e,fragmentShader:pe,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as Se}from"react";import{dotsGridFragmentShader as Pe,getShaderColorFromString as N,DotsGridShapes as i}from"@paper-design/shaders";import{jsx as Re}from"react/jsx-runtime";var a={name:"Default",params:{colorBack:"hsla(358, 66%, 49%, 0)",colorFill:"hsla(145, 30%, 10%, 1)",colorStroke:"hsla(39, 88%, 52%, 1)",dotSize:2,gridSpacingX:50,gridSpacingY:50,strokeWidth:0,sizeRange:0,opacityRange:0,shape:i.Circle}},fe={name:"Triangles",params:{colorBack:"hsla(0, 0%, 100%, 1)",colorFill:"hsla(0, 0%, 100%, 1)",colorStroke:"hsla(0, 0%, 0%, .5)",dotSize:5,gridSpacingX:32,gridSpacingY:32,strokeWidth:1,sizeRange:0,opacityRange:0,shape:i.Triangle}},ye={name:"Bubbles",params:{colorBack:"hsla(234, 100%, 31%, .5)",colorFill:"hsla(100, 30%, 100%, 1)",colorStroke:"hsla(0, 100%, 0%, 1)",dotSize:28,gridSpacingX:60,gridSpacingY:60,strokeWidth:12,sizeRange:.7,opacityRange:1.3,shape:i.Circle}},be={name:"Tree line",params:{colorBack:"hsla(100, 100%, 36%, .05)",colorFill:"hsla(150, 80%, 10%, 1)",colorStroke:"hsla(0, 0%, 0%, 1)",dotSize:8,gridSpacingX:20,gridSpacingY:90,strokeWidth:0,sizeRange:1,opacityRange:.6,shape:i.Circle}},xe={name:"Diamonds",params:{colorBack:"hsla(0, 0%, 0%, 0)",colorFill:"hsla(0, 100%, 50%, 1)",colorStroke:"hsla(0, 0%, 0%, 1)",dotSize:15,gridSpacingX:30,gridSpacingY:30,strokeWidth:0,sizeRange:0,opacityRange:2,shape:i.Diamond}},Ce={name:"Wallpaper",params:{colorBack:"hsla(154, 33%, 19%, 1)",colorFill:"hsla(0, 0%, 0%, 0)",colorStroke:"hsla(36, 48%, 58%, 1)",dotSize:9,gridSpacingX:32,gridSpacingY:32,strokeWidth:1,sizeRange:0,opacityRange:0,shape:i.Diamond}},Me={name:"Enter the Matrix",params:{colorBack:"hsla(0, 100%, 0%, 1)",colorFill:"hsla(182, 100%, 64%, 1)",colorStroke:"hsla(0, 100%, 100%, 0)",dotSize:2,gridSpacingX:10,gridSpacingY:10,strokeWidth:.5,sizeRange:.25,opacityRange:1,shape:i.Triangle}},Ge={name:"Waveform",params:{colorBack:"hsla(0, 100%, 100%, 1)",colorFill:"hsla(227, 93%, 38%, 1)",colorStroke:"hsla(0, 0%, 0%, 0)",dotSize:100,gridSpacingX:2,gridSpacingY:215,strokeWidth:0,sizeRange:1,opacityRange:0,shape:i.Square}},ke=[a,fe,ye,be,xe,Ce,Me,Ge],Ne=e=>{let r=Se(()=>({u_colorBack:N(e.colorBack,a.params.colorBack),u_colorFill:N(e.colorFill,a.params.colorStroke),u_colorStroke:N(e.colorStroke,a.params.colorStroke),u_dotSize:e.dotSize??a.params.dotSize,u_gridSpacingX:e.gridSpacingX??a.params.gridSpacingX,u_gridSpacingY:e.gridSpacingY??a.params.gridSpacingY,u_strokeWidth:e.strokeWidth??a.params.strokeWidth,u_sizeRange:e.sizeRange??a.params.sizeRange,u_opacityRange:e.opacityRange??a.params.opacityRange,u_shape:e.shape??a.params.shape}),[e.colorBack,e.colorFill,e.colorStroke,e.dotSize,e.gridSpacingX,e.gridSpacingY,e.strokeWidth,e.sizeRange,e.opacityRange,e.shape]);return Re(o,{...e,fragmentShader:Pe,uniforms:r})};import{DotsGridShapes as $o}from"@paper-design/shaders";import{useMemo as _e}from"react";import{getShaderColorFromString as S,steppedSimplexNoiseFragmentShader as ze}from"@paper-design/shaders";import{jsx as We}from"react/jsx-runtime";var c={name:"Default",params:{scale:1,speed:.15,seed:0,color1:"hsla(208, 25%, 45%, 1)",color2:"hsla(94, 38%, 59%, 1)",color3:"hsla(359, 94%, 62%, 1)",color4:"hsla(42, 93%, 64%, 1)",color5:"hsla(0, 0%, 100%, 1)",stepsNumber:13}},De={name:"Magma",params:{scale:.3,speed:.2,seed:0,color1:"hsla(0, 100%, 36%, 1)",color2:"hsla(0, 95%, 44%, 1)",color3:"hsla(20, 100%, 49%, 1)",color4:"hsla(45, 100%, 45%, 1)",color5:"hsla(31, 100%, 94%, 1)",stepsNumber:8}},ve={name:"Blood cell",params:{scale:1.2,speed:.22,seed:0,color1:"hsla(302, 43%, 13%, 1)",color2:"hsla(325, 93%, 17%, 1)",color3:"hsla(338, 80%, 25%, 1)",color4:"hsla(338, 80%, 25%, 1)",color5:"hsla(2, 85%, 72%, 1)",stepsNumber:29}},Fe={name:"First contact",params:{scale:1.2,speed:-.1,seed:0,color1:"hsla(300, 43%, 82%, 1)",color2:"hsla(266, 70%, 9%, 1)",color3:"hsla(289, 36%, 26%, 1)",color4:"hsla(0, 41%, 78%, 1)",color5:"hsla(0, 100%, 96%, 1)",stepsNumber:40}},Be=[c,De,ve,Fe],Oe=e=>{let r=_e(()=>({u_scale:e.scale??c.params.scale,u_color1:S(e.color1,c.params.color1),u_color2:S(e.color2,c.params.color2),u_color3:S(e.color3,c.params.color3),u_color4:S(e.color4,c.params.color4),u_color5:S(e.color5,c.params.color5),u_steps_number:e.stepsNumber??c.params.stepsNumber}),[e.scale,e.color1,e.color2,e.color3,e.color4,e.color5,e.stepsNumber]);return We(o,{...e,fragmentShader:ze,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as Ue}from"react";import{getShaderColorFromString as R,metaballsFragmentShader as Ee}from"@paper-design/shaders";import{jsx as qe}from"react/jsx-runtime";var d={name:"Default",params:{scale:1,speed:.6,seed:0,color1:"hsla(350, 90%, 55%, 1)",color2:"hsla(350, 80%, 60%, 1)",color3:"hsla(20, 85%, 70%, 1)",ballSize:1,visibilityRange:.4}},Ve=[d],Xe=e=>{let r=Ue(()=>({u_scale:e.scale??d.params.scale,u_color1:R(e.color1,d.params.color1),u_color2:R(e.color2,d.params.color2),u_color3:R(e.color3,d.params.color3),u_ballSize:e.ballSize??d.params.ballSize,u_visibilityRange:e.visibilityRange??d.params.visibilityRange}),[e.scale,e.color1,e.color2,e.color3,e.ballSize,e.visibilityRange]);return qe(o,{...e,fragmentShader:Ee,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as Ye}from"react";import{getShaderColorFromString as F,wavesFragmentShader as Je}from"@paper-design/shaders";import{jsx as Ke}from"react/jsx-runtime";var t={name:"Default",params:{scale:1,rotation:0,color1:"hsla(48, 100%, 74%, 1)",color2:"hsla(204, 47%, 45%, 1)",shape:1,frequency:.5,amplitude:.5,spacing:.75,dutyCycle:.2,edgeBlur:0}},we={name:"Spikes",params:{scale:2.3,rotation:0,color1:"hsla(65, 100%, 95%, 1)",color2:"hsla(290, 52%, 15%, 1)",shape:0,frequency:.5,amplitude:.9,spacing:.37,dutyCycle:.93,edgeBlur:.15}},Ie={name:"Groovy",params:{scale:.5,rotation:1,color1:"hsla(60, 100%, 97%, 1)",color2:"hsla(20, 100%, 71%, 1)",shape:2.37,frequency:.2,amplitude:.67,spacing:1.17,dutyCycle:.57,edgeBlur:0}},Ae={name:"Tangled up",params:{scale:3.04,rotation:1,color1:"hsla(198.7, 66.7%, 14.1%, 1)",color2:"hsla(85.5, 35.7%, 78%, 1)",shape:3,frequency:.44,amplitude:.57,spacing:1.05,dutyCycle:.97,edgeBlur:0}},Te={name:"Zig zag",params:{scale:2.7,rotation:1,color1:"hsla(0, 0%, 0%, 1)",color2:"hsla(0, 0%, 90%, 1)",shape:0,frequency:.6,amplitude:.8,spacing:.5,dutyCycle:1,edgeBlur:.5}},Le={name:"Ride the wave",params:{scale:.84,rotation:0,color1:"hsla(65, 100%, 95%, 1)",color2:"hsla(0, 0%, 12%, 1)",shape:2.23,frequency:.1,amplitude:.6,spacing:.41,dutyCycle:.99,edgeBlur:0}},He=[t,we,Ie,Ae,Te,Le],Ze=e=>{let r=Ye(()=>({u_scale:e.scale??t.params.scale,u_rotation:e.rotation??t.params.rotation,u_color1:F(e.color1,t.params.color1),u_color2:F(e.color2,t.params.color2),u_shape:e.shape??t.params.shape,u_frequency:e.frequency??t.params.frequency,u_amplitude:e.amplitude??t.params.amplitude,u_spacing:e.spacing??t.params.spacing,u_dutyCycle:e.dutyCycle??t.params.dutyCycle,u_edgeBlur:e.edgeBlur??t.params.edgeBlur}),[e.scale,e.rotation,e.color1,e.color2,e.shape,e.frequency,e.amplitude,e.spacing,e.dutyCycle,e.edgeBlur]);return Ke(o,{...e,fragmentShader:Je,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as Qe}from"react";import{getShaderColorFromString as B,perlinNoiseFragmentShader as $e}from"@paper-design/shaders";import{jsx as lr}from"react/jsx-runtime";var n={name:"Default",params:{scale:1,speed:.5,seed:0,color1:"hsla(0, 0%, 15%, 1)",color2:"hsla(203, 100%, 87%, 1)",proportion:.34,contour:.9,octaveCount:2,persistence:1,lacunarity:1.5}},je={name:"Nintendo Water",params:{scale:.2,speed:.5,seed:0,color1:"hsla(220, 66%, 50%, 1)",color2:"hsla(155, 66%, 80%, 1)",proportion:.42,contour:1,octaveCount:2,persistence:.55,lacunarity:1.8}},er={name:"Colony",params:{scale:.15,speed:0,seed:0,color1:"hsla(56, 86%, 81%, 1)",color2:"hsla(230, 80%, 20%, 1)",octaveCount:6,persistence:1,lacunarity:2.55,proportion:.65,contour:.65}},rr={name:"Phosphenes",params:{scale:.03,speed:.15,seed:0,color1:"hsla(350, 80%, 70%, 1)",color2:"hsla(150, 50%, 60%, 1)",proportion:.45,contour:.55,octaveCount:6,persistence:.3,lacunarity:3}},or={name:"Moss",params:{scale:.15,speed:.02,seed:0,color1:"hsla(137, 100%, 51%, 1)",color2:"hsla(0, 0%, 15%, 1)",proportion:.65,contour:.65,octaveCount:6,persistence:1,lacunarity:2.55}},sr={name:"Worms",params:{scale:2,speed:0,seed:0,color1:"hsla(0, 100%, 100%, 1)",color2:"hsla(0, 0%, 35%, 1)",proportion:.5,contour:1,octaveCount:1,persistence:1,lacunarity:1.5}},ar=[n,je,er,rr,or,sr],tr=e=>{let r=Qe(()=>({u_scale:e.scale??n.params.scale,u_color1:B(e.color1,n.params.color1),u_color2:B(e.color2,n.params.color2),u_proportion:e.proportion??n.params.proportion,u_contour:e.contour??n.params.contour,u_octaveCount:e.octaveCount??n.params.octaveCount,u_persistence:e.persistence??n.params.persistence,u_lacunarity:e.lacunarity??n.params.lacunarity}),[e.scale,e.color1,e.color2,e.proportion,e.contour,e.octaveCount,e.persistence,e.lacunarity]);return lr(o,{...e,fragmentShader:$e,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as nr}from"react";import{getShaderColorFromString as P,voronoiFragmentShader as ir}from"@paper-design/shaders";import{jsx as fr}from"react/jsx-runtime";var s={name:"Default",params:{scale:1.5,speed:.5,seed:0,colorCell1:"hsla(15, 80%, 50%, 1)",colorCell2:"hsla(180, 80%, 50%, 1)",colorCell3:"hsla(200, 80%, 50%, 1)",colorEdges:"hsla(30, 90%, 10%, 1)",colorMid:"hsla(0, 0%, 0%, 1)",colorGradient:.5,distance:.25,edgesSize:.15,edgesSharpness:.01,middleSize:0,middleSharpness:0}},cr={name:"Classic",params:{scale:3,speed:.8,seed:0,colorCell1:"hsla(0, 100%, 100%, 1)",colorCell2:"hsla(0, 0%, 100%, 1)",colorCell3:"hsla(0, 100%, 0%, 1)",colorEdges:"hsla(0, 0%, 0%, 1)",colorMid:"hsla(0, 0%, 0%, 1)",colorGradient:1,distance:.45,edgesSize:.02,edgesSharpness:.07,middleSize:0,middleSharpness:0}},mr={name:"Giraffe",params:{scale:1,speed:.6,seed:0,colorCell1:"hsla(32, 100%, 18%, 1)",colorCell2:"hsla(42, 93%, 35%, 1)",colorCell3:"hsla(32, 100%, 18%, 1)",colorEdges:"hsla(45, 100%, 96%, 1)",colorMid:"hsla(0, 0%, 0%, 1)",colorGradient:1,distance:.25,edgesSize:.2,edgesSharpness:.01,middleSize:0,middleSharpness:.3}},dr={name:"Eyes",params:{scale:1.6,speed:.6,seed:0,colorCell1:"hsla(79, 84%, 60%, 1)",colorCell2:"hsla(207, 53%, 41%, 1)",colorCell3:"hsla(207, 80%, 65%, 1)",colorMid:"hsla(0, 0%, 0%, 1)",colorEdges:"hsla(0, 100%, 100%, 1)",colorGradient:1,distance:.25,edgesSize:.62,edgesSharpness:.01,middleSize:.1,middleSharpness:1}},pr={name:"Bubbles",params:{scale:2,speed:.5,seed:0,colorCell1:"hsla(0, 100%, 50%, 1)",colorCell2:"hsla(169, 100%, 66%, 1)",colorCell3:"hsla(50, 100%, 66%, 1)",colorMid:"hsla(0, 0%, 0%, 1)",colorEdges:"hsla(0, 0%, 0%, 1)",colorGradient:1,distance:.5,edgesSize:.81,edgesSharpness:0,middleSize:0,middleSharpness:.45}},ur={name:"Cells",params:{scale:2,speed:1,seed:0,colorCell1:"hsla(0, 0%, 100%, 1)",colorCell2:"hsla(0, 0%, 100%, 1)",colorCell3:"hsla(0, 0%, 100%, 1)",colorMid:"hsla(0, 0%, 0%, 1)",colorEdges:"hsla(200, 50%, 15%, 1)",colorGradient:1,distance:.38,edgesSize:.1,edgesSharpness:.02,middleSize:0,middleSharpness:0}},hr={name:"Glow",params:{scale:1.2,speed:.8,seed:0,colorCell1:"hsla(40, 100%, 50%, 1)",colorCell2:"hsla(311, 100%, 59%, 1)",colorCell3:"hsla(180, 100%, 65%, 1)",colorEdges:"hsla(0, 100%, 0%, 1)",colorMid:"hsla(0, 0%, 100%, 1)",colorGradient:1,distance:.25,edgesSize:.15,edgesSharpness:.01,middleSize:.7,middleSharpness:0}},gr={name:"Tiles",params:{scale:1.3,speed:1,seed:0,colorCell1:"hsla(80, 50%, 50%, 1)",colorCell2:"hsla(0, 50%, 100%, 1)",colorCell3:"hsla(200, 50%, 50%, 1)",colorMid:"hsla(0, 0%, 0%, 1)",colorEdges:"hsla(200, 50%, 10%, 1)",colorGradient:0,distance:.05,edgesSize:.25,edgesSharpness:.02,middleSize:0,middleSharpness:0}},Sr=[s,cr,mr,dr,pr,ur,hr,gr],Pr=e=>{let r=nr(()=>({u_scale:e.scale??s.params.scale,u_colorCell1:P(e.colorCell1,s.params.colorCell1),u_colorCell2:P(e.colorCell2,s.params.colorCell2),u_colorCell3:P(e.colorCell3,s.params.colorCell3),u_colorMid:P(e.colorMid,s.params.colorMid),u_colorEdges:P(e.colorEdges,s.params.colorEdges),u_colorGradient:e.colorGradient??s.params.colorGradient,u_distance:e.distance??s.params.distance,u_edgesSize:e.edgesSize??s.params.edgesSize,u_edgesSharpness:e.edgesSharpness??s.params.edgesSharpness,u_middleSize:e.middleSize??s.params.middleSize,u_middleSharpness:e.middleSharpness??s.params.middleSharpness}),[e.scale,e.colorCell1,e.colorCell3,e.colorCell2,e.colorMid,e.colorEdges,e.colorGradient,e.distance,e.edgesSize,e.edgesSharpness,e.middleSize,e.middleSharpness]);return fr(o,{...e,fragmentShader:ir,uniforms:r})};import{}from"@paper-design/shaders";import{getShaderColorFromString as bs}from"@paper-design/shaders";export{Ne as DotsGrid,$o as DotsGridShapes,he as DotsOrbit,Y as GrainClouds,H as MeshGradient,Xe as Metaballs,ce as NeuroNoise,tr as PerlinNoise,o as ShaderMount,se as SmokeRing,Oe as SteppedSimplexNoise,Pr as Voronoi,Ze as Waves,ke as dotsGridPresets,ue as dotsOrbitPresets,bs as getShaderColorFromString,q as grainCloudsPresets,L as meshGradientPresets,Ve as metaballsPresets,ie as neuroNoisePresets,ar as perlinNoisePresets,oe as smokeRingPresets,Be as steppedSimplexNoisePresets,Sr as voronoiPresets,He as wavesPresets};
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/shader-mount.tsx", "../src/shaders/grain-clouds.tsx", "../src/index.ts", "../src/shaders/mesh-gradient.tsx", "../src/shaders/neuro-noise.tsx"],
4
- "sourcesContent": ["import React, { useEffect, useRef } from 'react';\nimport { ShaderMount as ShaderMountVanilla } from '@paper-design/shaders';\n\nexport interface ShaderMountProps {\n ref?: React.RefObject<HTMLCanvasElement>;\n fragmentShader: string;\n style?: React.CSSProperties;\n uniforms?: Record<string, number | number[]>;\n webGlContextAttributes?: WebGLContextAttributes;\n animated?: boolean;\n}\n\nexport const ShaderMount: React.FC<ShaderMountProps> = ({\n ref,\n fragmentShader,\n style,\n uniforms = {},\n webGlContextAttributes,\n animated = true,\n}) => {\n const canvasRef = ref ?? useRef<HTMLCanvasElement>(null);\n const shaderMountRef = useRef<ShaderMountVanilla | null>(null);\n\n useEffect(() => {\n if (canvasRef.current) {\n shaderMountRef.current = new ShaderMountVanilla(\n canvasRef.current,\n fragmentShader,\n uniforms,\n webGlContextAttributes,\n animated\n );\n }\n\n return () => {\n if (shaderMountRef.current) {\n shaderMountRef.current.dispose();\n }\n };\n }, [fragmentShader, webGlContextAttributes]);\n\n useEffect(() => {\n if (shaderMountRef.current) {\n shaderMountRef.current.setUniforms(uniforms);\n }\n }, [uniforms]);\n\n useEffect(() => {\n if (shaderMountRef.current) {\n if (animated) {\n shaderMountRef.current.startAnimating();\n } else {\n shaderMountRef.current.stopAnimating();\n }\n }\n }, [animated]);\n\n return <canvas ref={canvasRef} style={style} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, grainCloudsFragmentShader, type GrainCloudsUniforms } from '@paper-design/shaders';\n\nexport type GrainCloudsProps = Omit<ShaderMountProps, 'fragmentShader'> & {\n color1?: string;\n color2?: string;\n noiseScale?: number;\n noiseSpeed?: number;\n grainAmount?: number;\n};\n\n/** Some default values for the shader props */\nexport const grainCloudsDefaults = {\n color1: '#000000',\n color2: '#ffffff',\n noiseScale: 1,\n noiseSpeed: 0.3,\n grainAmount: 0.05,\n} as const;\n\nexport const GrainClouds = (props: GrainCloudsProps): JSX.Element => {\n const uniforms: GrainCloudsUniforms = useMemo(() => {\n return {\n u_color1: getShaderColorFromString(props.color1, grainCloudsDefaults.color1),\n u_color2: getShaderColorFromString(props.color2, grainCloudsDefaults.color2),\n u_noiseScale: props.noiseScale ?? grainCloudsDefaults.noiseScale,\n u_noiseSpeed: props.noiseSpeed ?? grainCloudsDefaults.noiseSpeed,\n u_grainAmount: props.grainAmount ?? grainCloudsDefaults.grainAmount,\n };\n }, [props.color1, props.color2, props.noiseScale, props.noiseSpeed, props.grainAmount]);\n\n return <ShaderMount {...props} fragmentShader={grainCloudsFragmentShader} uniforms={uniforms} />;\n};\n", "// ----- ShaderMount ----- //\nexport { ShaderMount } from './shader-mount';\n\n// ----- Fragment shaders ----- //\n\n// Grain clouds\nexport { GrainClouds, grainCloudsDefaults } from './shaders/grain-clouds';\nexport { type GrainCloudsProps } from './shaders/grain-clouds';\nexport { type GrainCloudsUniforms } from '@paper-design/shaders';\n\n// Mesh gradient\nexport { MeshGradient, meshGradientDefaults } from './shaders/mesh-gradient';\nexport { type MeshGradientProps } from './shaders/mesh-gradient';\nexport { type MeshGradientUniforms } from '@paper-design/shaders';\n\n// Neuro noise\nexport { NeuroNoise, neuroNoiseDefaults } from './shaders/neuro-noise';\nexport { type NeuroNoiseProps } from './shaders/neuro-noise';\nexport { type NeuroNoiseUniforms } from '@paper-design/shaders';\n\n// ----- Uniform conversion utils ----- //\nexport { getShaderColorFromString } from '@paper-design/shaders';\n", "import { useMemo } from 'react';\nimport { ShaderMount, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, meshGradientFragmentShader, type MeshGradientUniforms } from '@paper-design/shaders';\n\nexport type MeshGradientProps = Omit<ShaderMountProps, 'fragmentShader'> & {\n color1?: string;\n color2?: string;\n color3?: string;\n color4?: string;\n speed?: number;\n};\n\n/** Some default values for the shader props */\nexport const meshGradientDefaults = {\n color1: '#6a5496',\n color2: '#9b8ab8',\n color3: '#f5d03b',\n color4: '#e48b97',\n speed: 0.1,\n} as const;\n\nexport const MeshGradient = (props: MeshGradientProps): JSX.Element => {\n const uniforms: MeshGradientUniforms = useMemo(() => {\n return {\n u_color1: getShaderColorFromString(props.color1, meshGradientDefaults.color1),\n u_color2: getShaderColorFromString(props.color2, meshGradientDefaults.color2),\n u_color3: getShaderColorFromString(props.color3, meshGradientDefaults.color3),\n u_color4: getShaderColorFromString(props.color4, meshGradientDefaults.color4),\n u_speed: props.speed ?? meshGradientDefaults.speed,\n };\n }, [props.color1, props.color2, props.color3, props.color4, props.speed]);\n\n return <ShaderMount {...props} fragmentShader={meshGradientFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, neuroNoiseFragmentShader, type NeuroNoiseUniforms } from '@paper-design/shaders';\n\nexport type NeuroNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & {\n colorFront?: string;\n colorBack?: string;\n scale?: number;\n speed?: number;\n brightness?: number;\n};\n\n/** Some default values for the shader props */\nexport const neuroNoiseDefaults = {\n colorFront: '#c3a3ff',\n colorBack: '#000000',\n scale: 1,\n speed: 1,\n brightness: 1.3,\n} as const;\n\nexport const NeuroNoise = (props: NeuroNoiseProps): JSX.Element => {\n const uniforms: NeuroNoiseUniforms = useMemo(() => {\n return {\n u_colorFront: getShaderColorFromString(props.colorFront, neuroNoiseDefaults.colorFront),\n u_colorBack: getShaderColorFromString(props.colorBack, neuroNoiseDefaults.colorBack),\n u_scale: props.scale ?? neuroNoiseDefaults.scale,\n u_speed: props.speed ?? neuroNoiseDefaults.speed,\n u_brightness: props.brightness ?? neuroNoiseDefaults.brightness,\n };\n }, [props.colorFront, props.colorBack, props.scale, props.speed, props.brightness]);\n\n return <ShaderMount {...props} fragmentShader={neuroNoiseFragmentShader} uniforms={uniforms} />;\n};\n"],
5
- "mappings": "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",
6
- "names": ["useEffect", "useRef", "ShaderMountVanilla", "jsx", "ShaderMount", "ref", "fragmentShader", "style", "uniforms", "webGlContextAttributes", "animated", "canvasRef", "shaderMountRef", "useMemo", "getShaderColorFromString", "grainCloudsFragmentShader", "jsx", "grainCloudsDefaults", "GrainClouds", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "meshGradientFragmentShader", "jsx", "meshGradientDefaults", "MeshGradient", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "neuroNoiseFragmentShader", "jsx", "neuroNoiseDefaults", "NeuroNoise", "props", "uniforms", "useMemo", "ShaderMount", "getShaderColorFromString"]
3
+ "sources": ["../src/shader-mount.tsx", "../src/shaders/grain-clouds.tsx", "../src/index.ts", "../src/shaders/mesh-gradient.tsx", "../src/shaders/smoke-ring.tsx", "../src/shaders/neuro-noise.tsx", "../src/shaders/dots-orbit.tsx", "../src/shaders/dots-grid.tsx", "../src/shaders/stepped-simplex-noise.tsx", "../src/shaders/metaballs.tsx", "../src/shaders/waves.tsx", "../src/shaders/perlin-noise.tsx", "../src/shaders/voronoi.tsx"],
4
+ "sourcesContent": ["import React, { useEffect, useRef } from 'react';\nimport { ShaderMount as ShaderMountVanilla } from '@paper-design/shaders';\n\nexport interface ShaderMountProps {\n ref?: React.RefObject<HTMLCanvasElement>;\n fragmentShader: string;\n style?: React.CSSProperties;\n uniforms?: Record<string, number | number[]>;\n webGlContextAttributes?: WebGLContextAttributes;\n speed?: number;\n seed?: number;\n}\n\n/** Params that every shader can set as part of their controls */\nexport type GlobalParams = Pick<ShaderMountProps, 'speed' | 'seed'>;\n\nexport const ShaderMount: React.FC<ShaderMountProps> = ({\n ref,\n fragmentShader,\n style,\n uniforms = {},\n webGlContextAttributes,\n speed = 1,\n seed = 0,\n}) => {\n const canvasRef = ref ?? useRef<HTMLCanvasElement>(null);\n const shaderMountRef = useRef<ShaderMountVanilla | null>(null);\n\n useEffect(() => {\n if (canvasRef.current) {\n shaderMountRef.current = new ShaderMountVanilla(\n canvasRef.current,\n fragmentShader,\n uniforms,\n webGlContextAttributes,\n speed,\n seed\n );\n }\n\n return () => {\n shaderMountRef.current?.dispose();\n };\n }, [fragmentShader, webGlContextAttributes]);\n\n useEffect(() => {\n shaderMountRef.current?.setUniforms(uniforms);\n }, [uniforms]);\n\n useEffect(() => {\n shaderMountRef.current?.setSpeed(speed);\n }, [speed]);\n\n useEffect(() => {\n shaderMountRef.current?.setSeed(seed);\n }, [seed]);\n\n return <canvas ref={canvasRef} style={style} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, grainCloudsFragmentShader, type GrainCloudsUniforms } from '@paper-design/shaders';\n\nexport type GrainCloudsParams = {\n scale?: number;\n color1?: string;\n color2?: string;\n grainAmount?: number;\n} & GlobalParams;\n\nexport type GrainCloudsProps = Omit<ShaderMountProps, 'fragmentShader'> & GrainCloudsParams;\n\ntype GrainCloudsPreset = { name: string; params: Required<GrainCloudsParams> };\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: GrainCloudsPreset = {\n name: 'Default',\n params: {\n scale: 1,\n speed: 0.3,\n seed: 0,\n color1: 'hsla(0, 0%, 0%, 1)',\n color2: 'hsla(0, 0%, 100%, 1)',\n grainAmount: 1,\n },\n};\n\nexport const skyPreset: GrainCloudsPreset = {\n name: 'Sky',\n params: {\n scale: 1,\n speed: 0.3,\n seed: 0,\n color1: 'hsla(218, 100%, 73%, 1)',\n color2: 'hsla(0, 0%, 100%, 1)',\n grainAmount: 0,\n },\n};\n\nexport const grainCloudsPresets: GrainCloudsPreset[] = [defaultPreset, skyPreset];\n\nexport const GrainClouds = (props: GrainCloudsProps): JSX.Element => {\n const uniforms: GrainCloudsUniforms = useMemo(() => {\n return {\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_color1: getShaderColorFromString(props.color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(props.color2, defaultPreset.params.color2),\n u_grainAmount: props.grainAmount ?? defaultPreset.params.grainAmount,\n };\n }, [props.scale, props.color1, props.color2, props.grainAmount]);\n\n return <ShaderMount {...props} fragmentShader={grainCloudsFragmentShader} uniforms={uniforms} />;\n};\n", "// ----- ShaderMount ----- //\nexport { ShaderMount } from './shader-mount';\n\n// ----- Fragment shaders ----- //\n\n// Grain clouds\nexport { GrainClouds, grainCloudsPresets } from './shaders/grain-clouds';\nexport { type GrainCloudsProps } from './shaders/grain-clouds';\nexport { type GrainCloudsParams } from './shaders/grain-clouds';\nexport { type GrainCloudsUniforms } from '@paper-design/shaders';\n\n// Mesh gradient\nexport { MeshGradient, meshGradientPresets } from './shaders/mesh-gradient';\nexport { type MeshGradientProps } from './shaders/mesh-gradient';\nexport { type MeshGradientParams } from './shaders/mesh-gradient';\nexport { type MeshGradientUniforms } from '@paper-design/shaders';\n\n// Smoke ring\nexport { SmokeRing, smokeRingPresets } from './shaders/smoke-ring';\nexport { type SmokeRingProps } from './shaders/smoke-ring';\nexport { type SmokeRingParams } from './shaders/smoke-ring';\nexport { type SmokeRingUniforms } from '@paper-design/shaders';\n\n// Neuro noise\nexport { NeuroNoise, neuroNoisePresets } from './shaders/neuro-noise';\nexport { type NeuroNoiseProps } from './shaders/neuro-noise';\nexport { type NeuroNoiseParams } from './shaders/neuro-noise';\nexport { type NeuroNoiseUniforms } from '@paper-design/shaders';\n\n// Animated dots pattern: orbit type of animation\nexport { DotsOrbit, dotsOrbitPresets } from './shaders/dots-orbit';\nexport { type DotsOrbitProps } from './shaders/dots-orbit';\nexport { type DotsOrbitParams } from './shaders/dots-orbit';\nexport { type DotsOrbitUniforms } from '@paper-design/shaders';\n\n// Dot Grid\nexport { DotsGrid, dotsGridPresets } from './shaders/dots-grid';\nexport { type DotsGridProps } from './shaders/dots-grid';\nexport { type DotsGridParams } from './shaders/dots-grid';\nexport { type DotsGridUniforms, DotsGridShapes, type DotsGridShape } from '@paper-design/shaders';\n\n// Stepped simplex noise\nexport { SteppedSimplexNoise, steppedSimplexNoisePresets } from './shaders/stepped-simplex-noise';\nexport { type SteppedSimplexNoiseProps } from './shaders/stepped-simplex-noise';\nexport { type SteppedSimplexNoiseParams } from './shaders/stepped-simplex-noise';\nexport { type SteppedSimplexNoiseUniforms } from '@paper-design/shaders';\n\n// Metaballs\nexport { Metaballs, metaballsPresets } from './shaders/metaballs';\nexport { type MetaballsProps } from './shaders/metaballs';\nexport { type MetaballsParams } from './shaders/metaballs';\nexport { type MetaballsUniforms } from '@paper-design/shaders';\n\n// Waves\nexport { Waves, wavesPresets } from './shaders/waves';\nexport { type WavesProps } from './shaders/waves';\nexport { type WavesParams } from './shaders/waves';\nexport { type WavesUniforms } from '@paper-design/shaders';\n\n// Perlin noise\nexport { PerlinNoise, perlinNoisePresets } from './shaders/perlin-noise';\nexport { type PerlinNoiseProps } from './shaders/perlin-noise';\nexport { type PerlinNoiseParams } from './shaders/perlin-noise';\nexport { type PerlinNoiseUniforms } from '@paper-design/shaders';\n\n// Voronoi diagram\nexport { Voronoi, voronoiPresets } from './shaders/voronoi';\nexport { type VoronoiProps } from './shaders/voronoi';\nexport { type VoronoiParams } from './shaders/voronoi';\nexport { type VoronoiUniforms } from '@paper-design/shaders';\n\n// ----- Uniform conversion utils ----- //\nexport { getShaderColorFromString } from '@paper-design/shaders';\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, meshGradientFragmentShader, type MeshGradientUniforms } from '@paper-design/shaders';\n\nexport type MeshGradientParams = {\n color1?: string;\n color2?: string;\n color3?: string;\n color4?: string;\n} & GlobalParams;\n\nexport type MeshGradientProps = Omit<ShaderMountProps, 'fragmentShader'> & MeshGradientParams;\n\ntype MeshGradientPreset = { name: string; params: Required<MeshGradientParams> };\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: MeshGradientPreset = {\n name: 'Default',\n params: {\n speed: 0.15,\n seed: 0,\n color1: 'hsla(259, 29%, 73%, 1)',\n color2: 'hsla(263, 57%, 39%, 1)',\n color3: 'hsla(48, 73%, 84%, 1)',\n color4: 'hsla(295, 32%, 70%, 1)',\n },\n} as const;\n\nexport const beachPreset: MeshGradientPreset = {\n name: 'Beach',\n params: {\n speed: 0.1,\n seed: 0,\n color1: 'hsla(186, 81%, 83%, 1)',\n color2: 'hsla(198, 55%, 68%, 1)',\n color3: 'hsla(53, 67%, 88%, 1)',\n color4: 'hsla(45, 93%, 73%, 1)',\n },\n};\n\nexport const fadedPreset: MeshGradientPreset = {\n name: 'Faded',\n params: {\n speed: -0.3,\n seed: 0,\n color1: 'hsla(186, 41%, 90%, 1)',\n color2: 'hsla(208, 71%, 85%, 1)',\n color3: 'hsla(183, 51%, 92%, 1)',\n color4: 'hsla(201, 72%, 90%, 1)',\n },\n};\n\nexport const meshGradientPresets: MeshGradientPreset[] = [defaultPreset, beachPreset, fadedPreset];\n\nexport const MeshGradient = (props: MeshGradientProps): JSX.Element => {\n const uniforms: MeshGradientUniforms = useMemo(() => {\n return {\n u_color1: getShaderColorFromString(props.color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(props.color2, defaultPreset.params.color2),\n u_color3: getShaderColorFromString(props.color3, defaultPreset.params.color3),\n u_color4: getShaderColorFromString(props.color4, defaultPreset.params.color4),\n };\n }, [props.color1, props.color2, props.color3, props.color4]);\n\n return <ShaderMount {...props} fragmentShader={meshGradientFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, smokeRingFragmentShader, type SmokeRingUniforms } from '@paper-design/shaders';\n\nexport type SmokeRingParams = {\n colorBack?: string;\n colorInner?: string;\n colorOuter?: string;\n scale?: number;\n noiseScale?: number;\n thickness?: number;\n} & GlobalParams;\n\nexport type SmokeRingProps = Omit<ShaderMountProps, 'fragmentShader'> & SmokeRingParams;\n\ntype SmokeRingPreset = { name: string; params: Required<SmokeRingParams> };\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: SmokeRingPreset = {\n name: 'Default',\n params: {\n scale: 1,\n speed: 1,\n seed: 0,\n colorBack: 'hsla(208, 54%, 7%, 1)',\n colorInner: 'hsla(0, 0%, 100%, 1)',\n colorOuter: 'hsla(211, 100%, 64%, 1)',\n noiseScale: 1.4,\n thickness: 0.33,\n },\n} as const;\n\nexport const cloudPreset: SmokeRingPreset = {\n name: 'Cloud',\n params: {\n scale: 1,\n speed: 1,\n seed: 0,\n colorBack: 'hsla(218, 100%, 62%, 1)',\n colorInner: 'hsla(0, 0%, 100%, 1)',\n colorOuter: 'hsla(0, 0%, 100%, 1)',\n noiseScale: 1.8,\n thickness: 0.7,\n },\n};\n\nexport const firePreset: SmokeRingPreset = {\n name: 'Fire',\n params: {\n scale: 1,\n speed: 4,\n seed: 0,\n colorBack: 'hsla(20, 100%, 5%, 1)',\n colorInner: 'hsla(40, 100%, 50%, 1)',\n colorOuter: 'hsla(0, 100%, 50%, 1)',\n noiseScale: 1.4,\n thickness: 0.35,\n },\n};\n\nexport const electricPreset: SmokeRingPreset = {\n name: 'Electric',\n params: {\n scale: 1,\n speed: 2.5,\n seed: 0,\n colorBack: 'hsla(47, 50%, 7%, 1)',\n colorInner: 'hsla(47, 100%, 64%, 1)',\n colorOuter: 'hsla(47, 100%, 64%, 1)',\n noiseScale: 1.8,\n thickness: 0.1,\n },\n};\n\nexport const poisonPreset: SmokeRingPreset = {\n name: 'Poison',\n params: {\n scale: 1,\n speed: 3,\n seed: 0,\n colorBack: 'hsla(120, 100%, 3%, 1)',\n colorInner: 'hsla(120, 100%, 3%, 1)',\n colorOuter: 'hsla(120, 100%, 66%, 1)',\n noiseScale: 5,\n thickness: 0.6,\n },\n};\n\nexport const smokeRingPresets: SmokeRingPreset[] = [\n defaultPreset,\n cloudPreset,\n firePreset,\n electricPreset,\n poisonPreset,\n];\n\nexport const SmokeRing = (props: SmokeRingProps): JSX.Element => {\n const uniforms: SmokeRingUniforms = useMemo(() => {\n return {\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_colorBack: getShaderColorFromString(props.colorBack, defaultPreset.params.colorBack),\n u_colorInner: getShaderColorFromString(props.colorInner, defaultPreset.params.colorInner),\n u_colorOuter: getShaderColorFromString(props.colorOuter, defaultPreset.params.colorOuter),\n u_noiseScale: props.noiseScale ?? defaultPreset.params.noiseScale,\n u_thickness: props.thickness ?? defaultPreset.params.thickness,\n };\n }, [props.scale, props.colorBack, props.colorInner, props.colorOuter, props.noiseScale, props.thickness]);\n\n return <ShaderMount {...props} fragmentShader={smokeRingFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, neuroNoiseFragmentShader, type NeuroNoiseUniforms } from '@paper-design/shaders';\n\nexport type NeuroNoiseParams = {\n scale?: number;\n colorFront?: string;\n colorBack?: string;\n brightness?: number;\n} & GlobalParams;\n\nexport type NeuroNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & NeuroNoiseParams;\n\ntype NeuroNoisePreset = { name: string; params: Required<NeuroNoiseParams> };\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: NeuroNoisePreset = {\n name: 'Default',\n params: {\n scale: 1,\n speed: 1,\n seed: 0,\n colorFront: 'hsla(261, 100%, 82%, 1)',\n colorBack: 'hsla(0, 0%, 0%, 1)',\n brightness: 1.3,\n },\n} as const;\n\nconst marblePreset: NeuroNoisePreset = {\n name: 'Marble',\n params: {\n scale: 0.4,\n speed: 0,\n seed: 0,\n colorFront: 'hsla(230, 24%, 15%, 1)',\n colorBack: 'hsla(0, 0%, 97%, 1)',\n brightness: 1.1,\n },\n} as const;\n\nexport const neuroNoisePresets: NeuroNoisePreset[] = [defaultPreset, marblePreset] as const;\n\nexport const NeuroNoise = (props: NeuroNoiseProps): JSX.Element => {\n const uniforms: NeuroNoiseUniforms = useMemo(() => {\n return {\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_colorFront: getShaderColorFromString(props.colorFront, defaultPreset.params.colorFront),\n u_colorBack: getShaderColorFromString(props.colorBack, defaultPreset.params.colorBack),\n u_brightness: props.brightness ?? defaultPreset.params.brightness,\n };\n }, [props.scale, props.colorFront, props.colorBack, props.brightness]);\n\n return <ShaderMount {...props} fragmentShader={neuroNoiseFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, dotsOrbitFragmentShader, type DotsOrbitUniforms } from '@paper-design/shaders';\n\nexport type DotsOrbitParams = {\n scale?: number;\n color1?: string;\n color2?: string;\n color3?: string;\n color4?: string;\n dotSize?: number;\n dotSizeRange?: number;\n spreading?: number;\n} & GlobalParams;\n\nexport type DotsOrbitProps = Omit<ShaderMountProps, 'fragmentShader'> & DotsOrbitParams;\n\ntype DotsOrbitPreset = { name: string; params: Required<DotsOrbitParams> };\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: DotsOrbitPreset = {\n name: 'Default',\n params: {\n scale: 1,\n speed: 2,\n seed: 0,\n color1: 'hsla(358, 66%, 49%, 1)',\n color2: 'hsla(145, 30%, 33%, 1)',\n color3: 'hsla(39, 88%, 52%, 1)',\n color4: 'hsla(274, 30%, 35%, 1)',\n dotSize: 0.7,\n dotSizeRange: 0.4,\n spreading: 1,\n },\n} as const;\n\nexport const dotsOrbitPresets: DotsOrbitPreset[] = [defaultPreset];\n\nexport const DotsOrbit = (props: DotsOrbitProps): JSX.Element => {\n const uniforms: DotsOrbitUniforms = useMemo(() => {\n return {\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_color1: getShaderColorFromString(props.color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(props.color2, defaultPreset.params.color2),\n u_color3: getShaderColorFromString(props.color3, defaultPreset.params.color3),\n u_color4: getShaderColorFromString(props.color4, defaultPreset.params.color4),\n u_dotSize: props.dotSize ?? defaultPreset.params.dotSize,\n u_dotSizeRange: props.dotSizeRange ?? defaultPreset.params.dotSizeRange,\n u_spreading: props.spreading ?? defaultPreset.params.spreading,\n };\n }, [\n props.scale,\n props.color1,\n props.color2,\n props.color3,\n props.color4,\n props.dotSize,\n props.dotSizeRange,\n props.spreading,\n ]);\n\n return <ShaderMount {...props} fragmentShader={dotsOrbitFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type ShaderMountProps } from '../shader-mount';\nimport {\n dotsGridFragmentShader,\n getShaderColorFromString,\n type DotsGridUniforms,\n type DotsGridShape,\n DotsGridShapes,\n} from '@paper-design/shaders';\n\nexport type DotsGridParams = {\n colorBack?: string;\n colorFill?: string;\n colorStroke?: string;\n dotSize?: number;\n gridSpacingX?: number;\n gridSpacingY?: number;\n strokeWidth?: number;\n sizeRange?: number;\n opacityRange?: number;\n shape?: DotsGridShape;\n};\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport type DotsGridProps = Omit<ShaderMountProps, 'fragmentShader'> & DotsGridParams;\n\ntype DotsGridPreset = { name: string; params: Required<DotsGridParams> };\n\nexport const defaultPreset: DotsGridPreset = {\n name: 'Default',\n params: {\n colorBack: 'hsla(358, 66%, 49%, 0)',\n colorFill: 'hsla(145, 30%, 10%, 1)',\n colorStroke: 'hsla(39, 88%, 52%, 1)',\n dotSize: 2,\n gridSpacingX: 50,\n gridSpacingY: 50,\n strokeWidth: 0,\n sizeRange: 0,\n opacityRange: 0,\n shape: DotsGridShapes.Circle,\n },\n} as const;\n\nconst trianglesPreset: DotsGridPreset = {\n name: 'Triangles',\n params: {\n colorBack: 'hsla(0, 0%, 100%, 1)',\n colorFill: 'hsla(0, 0%, 100%, 1)',\n colorStroke: 'hsla(0, 0%, 0%, .5)',\n dotSize: 5,\n gridSpacingX: 32,\n gridSpacingY: 32,\n strokeWidth: 1,\n sizeRange: 0,\n opacityRange: 0,\n shape: DotsGridShapes.Triangle,\n },\n} as const;\n\nconst bubblesPreset: DotsGridPreset = {\n name: 'Bubbles',\n params: {\n colorBack: 'hsla(234, 100%, 31%, .5)',\n colorFill: 'hsla(100, 30%, 100%, 1)',\n colorStroke: 'hsla(0, 100%, 0%, 1)',\n dotSize: 28,\n gridSpacingX: 60,\n gridSpacingY: 60,\n strokeWidth: 12,\n sizeRange: 0.7,\n opacityRange: 1.3,\n shape: DotsGridShapes.Circle,\n },\n} as const;\n\nconst treeLinePreset: DotsGridPreset = {\n name: 'Tree line',\n params: {\n colorBack: 'hsla(100, 100%, 36%, .05)',\n colorFill: 'hsla(150, 80%, 10%, 1)',\n colorStroke: 'hsla(0, 0%, 0%, 1)',\n dotSize: 8,\n gridSpacingX: 20,\n gridSpacingY: 90,\n strokeWidth: 0,\n sizeRange: 1,\n opacityRange: 0.6,\n shape: DotsGridShapes.Circle,\n },\n} as const;\n\nconst diamondsPreset: DotsGridPreset = {\n name: 'Diamonds',\n params: {\n colorBack: 'hsla(0, 0%, 0%, 0)',\n colorFill: 'hsla(0, 100%, 50%, 1)',\n colorStroke: 'hsla(0, 0%, 0%, 1)',\n dotSize: 15,\n gridSpacingX: 30,\n gridSpacingY: 30,\n strokeWidth: 0,\n sizeRange: 0,\n opacityRange: 2,\n shape: DotsGridShapes.Diamond,\n },\n} as const;\n\nconst wallpaperPreset: DotsGridPreset = {\n name: 'Wallpaper',\n params: {\n colorBack: 'hsla(154, 33%, 19%, 1)',\n colorFill: 'hsla(0, 0%, 0%, 0)',\n colorStroke: 'hsla(36, 48%, 58%, 1)',\n dotSize: 9,\n gridSpacingX: 32,\n gridSpacingY: 32,\n strokeWidth: 1,\n sizeRange: 0,\n opacityRange: 0,\n shape: DotsGridShapes.Diamond,\n },\n} as const;\n\nconst matrixPreset: DotsGridPreset = {\n name: 'Enter the Matrix',\n params: {\n colorBack: 'hsla(0, 100%, 0%, 1)',\n colorFill: 'hsla(182, 100%, 64%, 1)',\n colorStroke: 'hsla(0, 100%, 100%, 0)',\n dotSize: 2,\n gridSpacingX: 10,\n gridSpacingY: 10,\n strokeWidth: 0.5,\n sizeRange: 0.25,\n opacityRange: 1,\n shape: DotsGridShapes.Triangle,\n },\n} as const;\n\nconst waveformPreset: DotsGridPreset = {\n name: 'Waveform',\n params: {\n colorBack: 'hsla(0, 100%, 100%, 1)',\n colorFill: 'hsla(227, 93%, 38%, 1)',\n colorStroke: 'hsla(0, 0%, 0%, 0)',\n dotSize: 100,\n gridSpacingX: 2,\n gridSpacingY: 215,\n strokeWidth: 0,\n sizeRange: 1,\n opacityRange: 0,\n shape: DotsGridShapes.Square,\n },\n} as const;\n\nexport const dotsGridPresets: DotsGridPreset[] = [\n defaultPreset,\n trianglesPreset,\n bubblesPreset,\n treeLinePreset,\n diamondsPreset,\n wallpaperPreset,\n matrixPreset,\n waveformPreset,\n];\n\nexport const DotsGrid = (props: DotsGridProps): JSX.Element => {\n const uniforms: DotsGridUniforms = useMemo(() => {\n return {\n u_colorBack: getShaderColorFromString(props.colorBack, defaultPreset.params.colorBack),\n u_colorFill: getShaderColorFromString(props.colorFill, defaultPreset.params.colorStroke),\n u_colorStroke: getShaderColorFromString(props.colorStroke, defaultPreset.params.colorStroke),\n u_dotSize: props.dotSize ?? defaultPreset.params.dotSize,\n u_gridSpacingX: props.gridSpacingX ?? defaultPreset.params.gridSpacingX,\n u_gridSpacingY: props.gridSpacingY ?? defaultPreset.params.gridSpacingY,\n u_strokeWidth: props.strokeWidth ?? defaultPreset.params.strokeWidth,\n u_sizeRange: props.sizeRange ?? defaultPreset.params.sizeRange,\n u_opacityRange: props.opacityRange ?? defaultPreset.params.opacityRange,\n u_shape: props.shape ?? defaultPreset.params.shape,\n };\n }, [\n props.colorBack,\n props.colorFill,\n props.colorStroke,\n props.dotSize,\n props.gridSpacingX,\n props.gridSpacingY,\n props.strokeWidth,\n props.sizeRange,\n props.opacityRange,\n props.shape,\n ]);\n\n return <ShaderMount {...props} fragmentShader={dotsGridFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport {\n getShaderColorFromString,\n steppedSimplexNoiseFragmentShader,\n type SteppedSimplexNoiseUniforms,\n} from '@paper-design/shaders';\n\nexport type SteppedSimplexNoiseParams = {\n scale?: number;\n color1?: string;\n color2?: string;\n color3?: string;\n color4?: string;\n color5?: string;\n stepsNumber?: number;\n} & GlobalParams;\n\nexport type SteppedSimplexNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & SteppedSimplexNoiseParams;\n\ntype SteppedSimplexNoisePreset = { name: string; params: Required<SteppedSimplexNoiseParams> };\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: SteppedSimplexNoisePreset = {\n name: 'Default',\n params: {\n scale: 1,\n speed: 0.15,\n seed: 0,\n color1: 'hsla(208, 25%, 45%, 1)',\n color2: 'hsla(94, 38%, 59%, 1)',\n color3: 'hsla(359, 94%, 62%, 1)',\n color4: 'hsla(42, 93%, 64%, 1)',\n color5: 'hsla(0, 0%, 100%, 1)',\n stepsNumber: 13,\n },\n} as const;\n\nconst magmaPreset: SteppedSimplexNoisePreset = {\n name: 'Magma',\n params: {\n scale: 0.3,\n speed: 0.2,\n seed: 0,\n color1: 'hsla(0, 100%, 36%, 1)',\n color2: 'hsla(0, 95%, 44%, 1)',\n color3: 'hsla(20, 100%, 49%, 1)',\n color4: 'hsla(45, 100%, 45%, 1)',\n color5: 'hsla(31, 100%, 94%, 1)',\n stepsNumber: 8,\n },\n};\n\nconst bloodCellPreset: SteppedSimplexNoisePreset = {\n name: 'Blood cell',\n params: {\n scale: 1.2,\n speed: 0.22,\n seed: 0,\n color1: 'hsla(302, 43%, 13%, 1)',\n color2: 'hsla(325, 93%, 17%, 1)',\n color3: 'hsla(338, 80%, 25%, 1)',\n color4: 'hsla(338, 80%, 25%, 1)',\n color5: 'hsla(2, 85%, 72%, 1)',\n stepsNumber: 29,\n },\n};\n\nconst firstContactPreset: SteppedSimplexNoisePreset = {\n name: 'First contact',\n params: {\n scale: 1.2,\n speed: -0.1,\n seed: 0,\n color1: 'hsla(300, 43%, 82%, 1)',\n color2: 'hsla(266, 70%, 9%, 1)',\n color3: 'hsla(289, 36%, 26%, 1)',\n color4: 'hsla(0, 41%, 78%, 1)',\n color5: 'hsla(0, 100%, 96%, 1)',\n stepsNumber: 40,\n },\n};\n\nexport const steppedSimplexNoisePresets: SteppedSimplexNoisePreset[] = [\n defaultPreset,\n magmaPreset,\n bloodCellPreset,\n firstContactPreset,\n];\n\nexport const SteppedSimplexNoise = (props: SteppedSimplexNoiseProps): JSX.Element => {\n const uniforms: SteppedSimplexNoiseUniforms = useMemo(() => {\n return {\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_color1: getShaderColorFromString(props.color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(props.color2, defaultPreset.params.color2),\n u_color3: getShaderColorFromString(props.color3, defaultPreset.params.color3),\n u_color4: getShaderColorFromString(props.color4, defaultPreset.params.color4),\n u_color5: getShaderColorFromString(props.color5, defaultPreset.params.color5),\n u_steps_number: props.stepsNumber ?? defaultPreset.params.stepsNumber,\n };\n }, [props.scale, props.color1, props.color2, props.color3, props.color4, props.color5, props.stepsNumber]);\n\n return <ShaderMount {...props} fragmentShader={steppedSimplexNoiseFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, metaballsFragmentShader, type MetaballsUniforms } from '@paper-design/shaders';\n\nexport type MetaballsParams = {\n scale?: number;\n color1?: string;\n color2?: string;\n color3?: string;\n ballSize?: number;\n visibilityRange?: number;\n} & GlobalParams;\n\nexport type MetaballsProps = Omit<ShaderMountProps, 'fragmentShader'> & MetaballsParams;\n\ntype MetaballsPreset = { name: string; params: Required<MetaballsParams> };\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: MetaballsPreset = {\n name: 'Default',\n params: {\n scale: 1,\n speed: 0.6,\n seed: 0,\n color1: 'hsla(350, 90%, 55%, 1)',\n color2: 'hsla(350, 80%, 60%, 1)',\n color3: 'hsla(20, 85%, 70%, 1)',\n ballSize: 1,\n visibilityRange: 0.4,\n },\n} as const;\n\nexport const metaballsPresets: MetaballsPreset[] = [defaultPreset];\n\nexport const Metaballs = (props: MetaballsProps): JSX.Element => {\n const uniforms: MetaballsUniforms = useMemo(() => {\n return {\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_color1: getShaderColorFromString(props.color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(props.color2, defaultPreset.params.color2),\n u_color3: getShaderColorFromString(props.color3, defaultPreset.params.color3),\n u_ballSize: props.ballSize ?? defaultPreset.params.ballSize,\n u_visibilityRange: props.visibilityRange ?? defaultPreset.params.visibilityRange,\n };\n }, [props.scale, props.color1, props.color2, props.color3, props.ballSize, props.visibilityRange]);\n\n return <ShaderMount {...props} fragmentShader={metaballsFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, wavesFragmentShader, type WavesUniforms } from '@paper-design/shaders';\n\nexport type WavesParams = {\n scale?: number;\n rotation?: number;\n color1?: string;\n color2?: string;\n shape?: number;\n frequency?: number;\n amplitude?: number;\n spacing?: number;\n dutyCycle?: number;\n edgeBlur?: number;\n};\n\nexport type WavesProps = Omit<ShaderMountProps, 'fragmentShader'> & WavesParams;\n\ntype WavesPreset = { name: string; params: Required<WavesParams> };\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: WavesPreset = {\n name: 'Default',\n params: {\n scale: 1,\n rotation: 0,\n color1: 'hsla(48, 100%, 74%, 1)',\n color2: 'hsla(204, 47%, 45%, 1)',\n shape: 1,\n frequency: 0.5,\n amplitude: 0.5,\n spacing: 0.75,\n dutyCycle: 0.2,\n edgeBlur: 0,\n },\n} as const;\n\nexport const spikesPreset: WavesPreset = {\n name: 'Spikes',\n params: {\n scale: 2.3,\n rotation: 0,\n color1: 'hsla(65, 100%, 95%, 1)',\n color2: 'hsla(290, 52%, 15%, 1)',\n shape: 0,\n frequency: 0.5,\n amplitude: 0.9,\n spacing: 0.37,\n dutyCycle: 0.93,\n edgeBlur: 0.15,\n },\n} as const;\n\nexport const groovyPreset: WavesPreset = {\n name: 'Groovy',\n params: {\n scale: 0.5,\n rotation: 1,\n color1: 'hsla(60, 100%, 97%, 1)',\n color2: 'hsla(20, 100%, 71%, 1)',\n shape: 2.37,\n frequency: 0.2,\n amplitude: 0.67,\n spacing: 1.17,\n dutyCycle: 0.57,\n edgeBlur: 0,\n },\n} as const;\n\nexport const tangledUpPreset: WavesPreset = {\n name: 'Tangled up',\n params: {\n scale: 3.04,\n rotation: 1,\n color1: 'hsla(198.7, 66.7%, 14.1%, 1)',\n color2: 'hsla(85.5, 35.7%, 78%, 1)',\n shape: 3,\n frequency: 0.44,\n amplitude: 0.57,\n spacing: 1.05,\n dutyCycle: 0.97,\n edgeBlur: 0,\n },\n} as const;\n\nexport const zigZagPreset: WavesPreset = {\n name: 'Zig zag',\n params: {\n scale: 2.7,\n rotation: 1,\n color1: 'hsla(0, 0%, 0%, 1)',\n color2: 'hsla(0, 0%, 90%, 1)',\n shape: 0,\n frequency: 0.6,\n amplitude: 0.8,\n spacing: 0.5,\n dutyCycle: 1,\n edgeBlur: 0.5,\n },\n} as const;\n\nexport const waveRidePreset: WavesPreset = {\n name: 'Ride the wave',\n params: {\n scale: 0.84,\n rotation: 0,\n color1: 'hsla(65, 100%, 95%, 1)',\n color2: 'hsla(0, 0%, 12%, 1)',\n shape: 2.23,\n frequency: 0.1,\n amplitude: 0.6,\n spacing: 0.41,\n dutyCycle: 0.99,\n edgeBlur: 0,\n },\n} as const;\n\nexport const wavesPresets: WavesPreset[] = [\n defaultPreset,\n spikesPreset,\n groovyPreset,\n tangledUpPreset,\n zigZagPreset,\n waveRidePreset,\n];\n\nexport const Waves = (props: WavesProps): JSX.Element => {\n const uniforms: WavesUniforms = useMemo(() => {\n return {\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_rotation: props.rotation ?? defaultPreset.params.rotation,\n u_color1: getShaderColorFromString(props.color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(props.color2, defaultPreset.params.color2),\n u_shape: props.shape ?? defaultPreset.params.shape,\n u_frequency: props.frequency ?? defaultPreset.params.frequency,\n u_amplitude: props.amplitude ?? defaultPreset.params.amplitude,\n u_spacing: props.spacing ?? defaultPreset.params.spacing,\n u_dutyCycle: props.dutyCycle ?? defaultPreset.params.dutyCycle,\n u_edgeBlur: props.edgeBlur ?? defaultPreset.params.edgeBlur,\n };\n }, [\n props.scale,\n props.rotation,\n props.color1,\n props.color2,\n props.shape,\n props.frequency,\n props.amplitude,\n props.spacing,\n props.dutyCycle,\n props.edgeBlur,\n ]);\n\n return <ShaderMount {...props} fragmentShader={wavesFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, perlinNoiseFragmentShader, type PerlinNoiseUniforms } from '@paper-design/shaders';\n\nexport type PerlinNoiseParams = {\n scale?: number;\n color1?: string;\n color2?: string;\n proportion?: number;\n contour?: number;\n octaveCount?: number;\n persistence?: number;\n lacunarity?: number;\n} & GlobalParams;\n\nexport type PerlinNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & PerlinNoiseParams;\n\ntype PerlinNoisePreset = { name: string; params: Required<PerlinNoiseParams> };\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: PerlinNoisePreset = {\n name: 'Default',\n params: {\n scale: 1,\n speed: 0.5,\n seed: 0,\n color1: 'hsla(0, 0%, 15%, 1)',\n color2: 'hsla(203, 100%, 87%, 1)',\n proportion: 0.34,\n contour: 0.9,\n octaveCount: 2,\n persistence: 1,\n lacunarity: 1.5,\n },\n};\n\nexport const preset1: PerlinNoisePreset = {\n name: 'Nintendo Water',\n params: {\n scale: 0.2,\n speed: 0.5,\n seed: 0,\n color1: 'hsla(220, 66%, 50%, 1)',\n color2: 'hsla(155, 66%, 80%, 1)',\n proportion: 0.42,\n contour: 1,\n octaveCount: 2,\n persistence: 0.55,\n lacunarity: 1.8,\n },\n};\n\nexport const preset2: PerlinNoisePreset = {\n name: 'Colony',\n params: {\n scale: 0.15,\n speed: 0,\n seed: 0,\n color1: 'hsla(56, 86%, 81%, 1)',\n color2: 'hsla(230, 80%, 20%, 1)',\n octaveCount: 6,\n persistence: 1,\n lacunarity: 2.55,\n proportion: 0.65,\n contour: 0.65,\n },\n};\n\nexport const preset3: PerlinNoisePreset = {\n name: 'Phosphenes',\n params: {\n scale: 0.03,\n speed: 0.15,\n seed: 0,\n color1: 'hsla(350, 80%, 70%, 1)',\n color2: 'hsla(150, 50%, 60%, 1)',\n proportion: 0.45,\n contour: 0.55,\n octaveCount: 6,\n persistence: 0.3,\n lacunarity: 3,\n },\n} as const;\n\nexport const preset4: PerlinNoisePreset = {\n name: 'Moss',\n params: {\n scale: 0.15,\n speed: 0.02,\n seed: 0,\n color1: 'hsla(137, 100%, 51%, 1)',\n color2: 'hsla(0, 0%, 15%, 1)',\n proportion: 0.65,\n contour: 0.65,\n octaveCount: 6,\n persistence: 1,\n lacunarity: 2.55,\n },\n} as const;\n\nexport const preset5: PerlinNoisePreset = {\n name: 'Worms',\n params: {\n scale: 2,\n speed: 0,\n seed: 0,\n color1: 'hsla(0, 100%, 100%, 1)',\n color2: 'hsla(0, 0%, 35%, 1)',\n proportion: 0.5,\n contour: 1,\n octaveCount: 1,\n persistence: 1,\n lacunarity: 1.5,\n },\n} as const;\n\nexport const perlinNoisePresets: PerlinNoisePreset[] = [defaultPreset, preset1, preset2, preset3, preset4, preset5];\n\nexport const PerlinNoise = (props: PerlinNoiseProps): JSX.Element => {\n const uniforms: PerlinNoiseUniforms = useMemo(() => {\n return {\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_color1: getShaderColorFromString(props.color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(props.color2, defaultPreset.params.color2),\n u_proportion: props.proportion ?? defaultPreset.params.proportion,\n u_contour: props.contour ?? defaultPreset.params.contour,\n u_octaveCount: props.octaveCount ?? defaultPreset.params.octaveCount,\n u_persistence: props.persistence ?? defaultPreset.params.persistence,\n u_lacunarity: props.lacunarity ?? defaultPreset.params.lacunarity,\n };\n }, [\n props.scale,\n props.color1,\n props.color2,\n props.proportion,\n props.contour,\n props.octaveCount,\n props.persistence,\n props.lacunarity,\n ]);\n\n return <ShaderMount {...props} fragmentShader={perlinNoiseFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, voronoiFragmentShader, type VoronoiUniforms } from '@paper-design/shaders';\n\nexport type VoronoiParams = {\n scale?: number;\n colorCell1?: string;\n colorCell2?: string;\n colorCell3?: string;\n colorMid?: string;\n colorEdges?: string;\n colorGradient?: number;\n distance?: number;\n edgesSize?: number;\n edgesSharpness?: number;\n middleSize?: number;\n middleSharpness?: number;\n} & GlobalParams;\n\nexport type VoronoiProps = Omit<ShaderMountProps, 'fragmentShader'> & VoronoiParams;\n\ntype VoronoiPreset = { name: string; params: Required<VoronoiParams> };\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: VoronoiPreset = {\n name: 'Default',\n params: {\n scale: 1.5,\n speed: 0.5,\n seed: 0,\n colorCell1: 'hsla(15, 80%, 50%, 1)',\n colorCell2: 'hsla(180, 80%, 50%, 1)',\n colorCell3: 'hsla(200, 80%, 50%, 1)',\n colorEdges: 'hsla(30, 90%, 10%, 1)',\n colorMid: 'hsla(0, 0%, 0%, 1)',\n colorGradient: 0.5,\n distance: 0.25,\n edgesSize: 0.15,\n edgesSharpness: 0.01,\n middleSize: 0,\n middleSharpness: 0,\n },\n} as const;\n\nexport const classicPreset: VoronoiPreset = {\n name: 'Classic',\n params: {\n scale: 3,\n speed: 0.8,\n seed: 0,\n colorCell1: 'hsla(0, 100%, 100%, 1)',\n colorCell2: 'hsla(0, 0%, 100%, 1)',\n colorCell3: 'hsla(0, 100%, 0%, 1)',\n colorEdges: 'hsla(0, 0%, 0%, 1)',\n colorMid: 'hsla(0, 0%, 0%, 1)',\n colorGradient: 1,\n distance: 0.45,\n edgesSize: 0.02,\n edgesSharpness: 0.07,\n middleSize: 0,\n middleSharpness: 0,\n },\n} as const;\n\nexport const giraffePreset: VoronoiPreset = {\n name: 'Giraffe',\n params: {\n scale: 1,\n speed: 0.6,\n seed: 0,\n colorCell1: 'hsla(32, 100%, 18%, 1)',\n colorCell2: 'hsla(42, 93%, 35%, 1)',\n colorCell3: 'hsla(32, 100%, 18%, 1)',\n colorEdges: 'hsla(45, 100%, 96%, 1)',\n colorMid: 'hsla(0, 0%, 0%, 1)',\n colorGradient: 1,\n distance: 0.25,\n edgesSize: 0.2,\n edgesSharpness: 0.01,\n middleSize: 0,\n middleSharpness: 0.3,\n },\n} as const;\n\nexport const eyesPreset: VoronoiPreset = {\n name: 'Eyes',\n params: {\n scale: 1.6,\n speed: 0.6,\n seed: 0,\n colorCell1: 'hsla(79, 84%, 60%, 1)',\n colorCell2: 'hsla(207, 53%, 41%, 1)',\n colorCell3: 'hsla(207, 80%, 65%, 1)',\n colorMid: 'hsla(0, 0%, 0%, 1)',\n colorEdges: 'hsla(0, 100%, 100%, 1)',\n colorGradient: 1,\n distance: 0.25,\n edgesSize: 0.62,\n edgesSharpness: 0.01,\n middleSize: 0.1,\n middleSharpness: 1,\n },\n} as const;\n\nexport const bubblesPreset: VoronoiPreset = {\n name: 'Bubbles',\n params: {\n scale: 2,\n speed: 0.5,\n seed: 0,\n colorCell1: 'hsla(0, 100%, 50%, 1)',\n colorCell2: 'hsla(169, 100%, 66%, 1)',\n colorCell3: 'hsla(50, 100%, 66%, 1)',\n colorMid: 'hsla(0, 0%, 0%, 1)',\n colorEdges: 'hsla(0, 0%, 0%, 1)',\n colorGradient: 1,\n distance: 0.5,\n edgesSize: 0.81,\n edgesSharpness: 0.0,\n middleSize: 0,\n middleSharpness: 0.45,\n },\n} as const;\n\nexport const cellsPreset: VoronoiPreset = {\n name: 'Cells',\n params: {\n scale: 2,\n speed: 1,\n seed: 0,\n colorCell1: 'hsla(0, 0%, 100%, 1)',\n colorCell2: 'hsla(0, 0%, 100%, 1)',\n colorCell3: 'hsla(0, 0%, 100%, 1)',\n colorMid: 'hsla(0, 0%, 0%, 1)',\n colorEdges: 'hsla(200, 50%, 15%, 1)',\n colorGradient: 1,\n distance: 0.38,\n edgesSize: 0.1,\n edgesSharpness: 0.02,\n middleSize: 0,\n middleSharpness: 0,\n },\n} as const;\n\nexport const glowPreset: VoronoiPreset = {\n name: 'Glow',\n params: {\n scale: 1.2,\n speed: 0.8,\n seed: 0,\n colorCell1: 'hsla(40, 100%, 50%, 1)',\n colorCell2: 'hsla(311, 100%, 59%, 1)',\n colorCell3: 'hsla(180, 100%, 65%, 1)',\n colorEdges: 'hsla(0, 100%, 0%, 1)',\n colorMid: 'hsla(0, 0%, 100%, 1)',\n colorGradient: 1,\n distance: 0.25,\n edgesSize: 0.15,\n edgesSharpness: 0.01,\n middleSize: 0.7,\n middleSharpness: 0,\n },\n} as const;\n\nexport const tilesPreset: VoronoiPreset = {\n name: 'Tiles',\n params: {\n scale: 1.3,\n speed: 1,\n seed: 0,\n colorCell1: 'hsla(80, 50%, 50%, 1)',\n colorCell2: 'hsla(0, 50%, 100%, 1)',\n colorCell3: 'hsla(200, 50%, 50%, 1)',\n colorMid: 'hsla(0, 0%, 0%, 1)',\n colorEdges: 'hsla(200, 50%, 10%, 1)',\n colorGradient: 0,\n distance: 0.05,\n edgesSize: 0.25,\n edgesSharpness: 0.02,\n middleSize: 0,\n middleSharpness: 0,\n },\n} as const;\n\nexport const voronoiPresets: VoronoiPreset[] = [\n defaultPreset,\n classicPreset,\n giraffePreset,\n eyesPreset,\n bubblesPreset,\n cellsPreset,\n glowPreset,\n tilesPreset,\n];\n\nexport const Voronoi = (props: VoronoiProps): JSX.Element => {\n const uniforms: VoronoiUniforms = useMemo(() => {\n return {\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_colorCell1: getShaderColorFromString(props.colorCell1, defaultPreset.params.colorCell1),\n u_colorCell2: getShaderColorFromString(props.colorCell2, defaultPreset.params.colorCell2),\n u_colorCell3: getShaderColorFromString(props.colorCell3, defaultPreset.params.colorCell3),\n u_colorMid: getShaderColorFromString(props.colorMid, defaultPreset.params.colorMid),\n u_colorEdges: getShaderColorFromString(props.colorEdges, defaultPreset.params.colorEdges),\n u_colorGradient: props.colorGradient ?? defaultPreset.params.colorGradient,\n u_distance: props.distance ?? defaultPreset.params.distance,\n u_edgesSize: props.edgesSize ?? defaultPreset.params.edgesSize,\n u_edgesSharpness: props.edgesSharpness ?? defaultPreset.params.edgesSharpness,\n u_middleSize: props.middleSize ?? defaultPreset.params.middleSize,\n u_middleSharpness: props.middleSharpness ?? defaultPreset.params.middleSharpness,\n };\n }, [\n props.scale,\n props.colorCell1,\n props.colorCell3,\n props.colorCell2,\n props.colorMid,\n props.colorEdges,\n props.colorGradient,\n props.distance,\n props.edgesSize,\n props.edgesSharpness,\n props.middleSize,\n props.middleSharpness,\n ]);\n\n return <ShaderMount {...props} fragmentShader={voronoiFragmentShader} uniforms={uniforms} />;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["useEffect", "useRef", "ShaderMountVanilla", "jsx", "ShaderMount", "ref", "fragmentShader", "style", "uniforms", "webGlContextAttributes", "speed", "seed", "canvasRef", "shaderMountRef", "useMemo", "getShaderColorFromString", "grainCloudsFragmentShader", "jsx", "defaultPreset", "skyPreset", "grainCloudsPresets", "GrainClouds", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "meshGradientFragmentShader", "jsx", "defaultPreset", "beachPreset", "fadedPreset", "meshGradientPresets", "MeshGradient", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "smokeRingFragmentShader", "jsx", "defaultPreset", "cloudPreset", "firePreset", "electricPreset", "poisonPreset", "smokeRingPresets", "SmokeRing", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "neuroNoiseFragmentShader", "jsx", "defaultPreset", "marblePreset", "neuroNoisePresets", "NeuroNoise", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "dotsOrbitFragmentShader", "jsx", "defaultPreset", "dotsOrbitPresets", "DotsOrbit", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "dotsGridFragmentShader", "getShaderColorFromString", "DotsGridShapes", "jsx", "defaultPreset", "trianglesPreset", "bubblesPreset", "treeLinePreset", "diamondsPreset", "wallpaperPreset", "matrixPreset", "waveformPreset", "dotsGridPresets", "DotsGrid", "props", "uniforms", "useMemo", "ShaderMount", "DotsGridShapes", "useMemo", "getShaderColorFromString", "steppedSimplexNoiseFragmentShader", "jsx", "defaultPreset", "magmaPreset", "bloodCellPreset", "firstContactPreset", "steppedSimplexNoisePresets", "SteppedSimplexNoise", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "metaballsFragmentShader", "jsx", "defaultPreset", "metaballsPresets", "Metaballs", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "wavesFragmentShader", "jsx", "defaultPreset", "spikesPreset", "groovyPreset", "tangledUpPreset", "zigZagPreset", "waveRidePreset", "wavesPresets", "Waves", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "perlinNoiseFragmentShader", "jsx", "defaultPreset", "preset1", "preset2", "preset3", "preset4", "preset5", "perlinNoisePresets", "PerlinNoise", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "voronoiFragmentShader", "jsx", "defaultPreset", "classicPreset", "giraffePreset", "eyesPreset", "bubblesPreset", "cellsPreset", "glowPreset", "tilesPreset", "voronoiPresets", "Voronoi", "props", "uniforms", "useMemo", "ShaderMount", "getShaderColorFromString"]
7
7
  }
@@ -5,6 +5,9 @@ export interface ShaderMountProps {
5
5
  style?: React.CSSProperties;
6
6
  uniforms?: Record<string, number | number[]>;
7
7
  webGlContextAttributes?: WebGLContextAttributes;
8
- animated?: boolean;
8
+ speed?: number;
9
+ seed?: number;
9
10
  }
11
+ /** Params that every shader can set as part of their controls */
12
+ export type GlobalParams = Pick<ShaderMountProps, 'speed' | 'seed'>;
10
13
  export declare const ShaderMount: React.FC<ShaderMountProps>;
@@ -0,0 +1,23 @@
1
+ import { type ShaderMountProps } from '../shader-mount';
2
+ import { type DotsGridShape } from '@paper-design/shaders';
3
+ export type DotsGridParams = {
4
+ colorBack?: string;
5
+ colorFill?: string;
6
+ colorStroke?: string;
7
+ dotSize?: number;
8
+ gridSpacingX?: number;
9
+ gridSpacingY?: number;
10
+ strokeWidth?: number;
11
+ sizeRange?: number;
12
+ opacityRange?: number;
13
+ shape?: DotsGridShape;
14
+ };
15
+ export type DotsGridProps = Omit<ShaderMountProps, 'fragmentShader'> & DotsGridParams;
16
+ type DotsGridPreset = {
17
+ name: string;
18
+ params: Required<DotsGridParams>;
19
+ };
20
+ export declare const defaultPreset: DotsGridPreset;
21
+ export declare const dotsGridPresets: DotsGridPreset[];
22
+ export declare const DotsGrid: (props: DotsGridProps) => JSX.Element;
23
+ export {};
@@ -0,0 +1,20 @@
1
+ import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
+ export type DotsOrbitParams = {
3
+ scale?: number;
4
+ color1?: string;
5
+ color2?: string;
6
+ color3?: string;
7
+ color4?: string;
8
+ dotSize?: number;
9
+ dotSizeRange?: number;
10
+ spreading?: number;
11
+ } & GlobalParams;
12
+ export type DotsOrbitProps = Omit<ShaderMountProps, 'fragmentShader'> & DotsOrbitParams;
13
+ type DotsOrbitPreset = {
14
+ name: string;
15
+ params: Required<DotsOrbitParams>;
16
+ };
17
+ export declare const defaultPreset: DotsOrbitPreset;
18
+ export declare const dotsOrbitPresets: DotsOrbitPreset[];
19
+ export declare const DotsOrbit: (props: DotsOrbitProps) => JSX.Element;
20
+ export {};
@@ -1,17 +1,17 @@
1
- import { type ShaderMountProps } from '../shader-mount';
2
- export type GrainCloudsProps = Omit<ShaderMountProps, 'fragmentShader'> & {
1
+ import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
+ export type GrainCloudsParams = {
3
+ scale?: number;
3
4
  color1?: string;
4
5
  color2?: string;
5
- noiseScale?: number;
6
- noiseSpeed?: number;
7
6
  grainAmount?: number;
7
+ } & GlobalParams;
8
+ export type GrainCloudsProps = Omit<ShaderMountProps, 'fragmentShader'> & GrainCloudsParams;
9
+ type GrainCloudsPreset = {
10
+ name: string;
11
+ params: Required<GrainCloudsParams>;
8
12
  };
9
- /** Some default values for the shader props */
10
- export declare const grainCloudsDefaults: {
11
- readonly color1: "#000000";
12
- readonly color2: "#ffffff";
13
- readonly noiseScale: 1;
14
- readonly noiseSpeed: 0.3;
15
- readonly grainAmount: 0.05;
16
- };
13
+ export declare const defaultPreset: GrainCloudsPreset;
14
+ export declare const skyPreset: GrainCloudsPreset;
15
+ export declare const grainCloudsPresets: GrainCloudsPreset[];
17
16
  export declare const GrainClouds: (props: GrainCloudsProps) => JSX.Element;
17
+ export {};
@@ -1,17 +1,18 @@
1
- import { type ShaderMountProps } from '../shader-mount';
2
- export type MeshGradientProps = Omit<ShaderMountProps, 'fragmentShader'> & {
1
+ import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
+ export type MeshGradientParams = {
3
3
  color1?: string;
4
4
  color2?: string;
5
5
  color3?: string;
6
6
  color4?: string;
7
- speed?: number;
8
- };
9
- /** Some default values for the shader props */
10
- export declare const meshGradientDefaults: {
11
- readonly color1: "#6a5496";
12
- readonly color2: "#9b8ab8";
13
- readonly color3: "#f5d03b";
14
- readonly color4: "#e48b97";
15
- readonly speed: 0.1;
7
+ } & GlobalParams;
8
+ export type MeshGradientProps = Omit<ShaderMountProps, 'fragmentShader'> & MeshGradientParams;
9
+ type MeshGradientPreset = {
10
+ name: string;
11
+ params: Required<MeshGradientParams>;
16
12
  };
13
+ export declare const defaultPreset: MeshGradientPreset;
14
+ export declare const beachPreset: MeshGradientPreset;
15
+ export declare const fadedPreset: MeshGradientPreset;
16
+ export declare const meshGradientPresets: MeshGradientPreset[];
17
17
  export declare const MeshGradient: (props: MeshGradientProps) => JSX.Element;
18
+ export {};
@@ -0,0 +1,18 @@
1
+ import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
+ export type MetaballsParams = {
3
+ scale?: number;
4
+ color1?: string;
5
+ color2?: string;
6
+ color3?: string;
7
+ ballSize?: number;
8
+ visibilityRange?: number;
9
+ } & GlobalParams;
10
+ export type MetaballsProps = Omit<ShaderMountProps, 'fragmentShader'> & MetaballsParams;
11
+ type MetaballsPreset = {
12
+ name: string;
13
+ params: Required<MetaballsParams>;
14
+ };
15
+ export declare const defaultPreset: MetaballsPreset;
16
+ export declare const metaballsPresets: MetaballsPreset[];
17
+ export declare const Metaballs: (props: MetaballsProps) => JSX.Element;
18
+ export {};
@@ -1,17 +1,16 @@
1
- import { type ShaderMountProps } from '../shader-mount';
2
- export type NeuroNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & {
1
+ import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
+ export type NeuroNoiseParams = {
3
+ scale?: number;
3
4
  colorFront?: string;
4
5
  colorBack?: string;
5
- scale?: number;
6
- speed?: number;
7
6
  brightness?: number;
7
+ } & GlobalParams;
8
+ export type NeuroNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & NeuroNoiseParams;
9
+ type NeuroNoisePreset = {
10
+ name: string;
11
+ params: Required<NeuroNoiseParams>;
8
12
  };
9
- /** Some default values for the shader props */
10
- export declare const neuroNoiseDefaults: {
11
- readonly colorFront: "#c3a3ff";
12
- readonly colorBack: "#000000";
13
- readonly scale: 1;
14
- readonly speed: 1;
15
- readonly brightness: 1.3;
16
- };
13
+ export declare const defaultPreset: NeuroNoisePreset;
14
+ export declare const neuroNoisePresets: NeuroNoisePreset[];
17
15
  export declare const NeuroNoise: (props: NeuroNoiseProps) => JSX.Element;
16
+ export {};
@@ -0,0 +1,25 @@
1
+ import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
+ export type PerlinNoiseParams = {
3
+ scale?: number;
4
+ color1?: string;
5
+ color2?: string;
6
+ proportion?: number;
7
+ contour?: number;
8
+ octaveCount?: number;
9
+ persistence?: number;
10
+ lacunarity?: number;
11
+ } & GlobalParams;
12
+ export type PerlinNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & PerlinNoiseParams;
13
+ type PerlinNoisePreset = {
14
+ name: string;
15
+ params: Required<PerlinNoiseParams>;
16
+ };
17
+ export declare const defaultPreset: PerlinNoisePreset;
18
+ export declare const preset1: PerlinNoisePreset;
19
+ export declare const preset2: PerlinNoisePreset;
20
+ export declare const preset3: PerlinNoisePreset;
21
+ export declare const preset4: PerlinNoisePreset;
22
+ export declare const preset5: PerlinNoisePreset;
23
+ export declare const perlinNoisePresets: PerlinNoisePreset[];
24
+ export declare const PerlinNoise: (props: PerlinNoiseProps) => JSX.Element;
25
+ export {};
@@ -0,0 +1,22 @@
1
+ import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
+ export type SmokeRingParams = {
3
+ colorBack?: string;
4
+ colorInner?: string;
5
+ colorOuter?: string;
6
+ scale?: number;
7
+ noiseScale?: number;
8
+ thickness?: number;
9
+ } & GlobalParams;
10
+ export type SmokeRingProps = Omit<ShaderMountProps, 'fragmentShader'> & SmokeRingParams;
11
+ type SmokeRingPreset = {
12
+ name: string;
13
+ params: Required<SmokeRingParams>;
14
+ };
15
+ export declare const defaultPreset: SmokeRingPreset;
16
+ export declare const cloudPreset: SmokeRingPreset;
17
+ export declare const firePreset: SmokeRingPreset;
18
+ export declare const electricPreset: SmokeRingPreset;
19
+ export declare const poisonPreset: SmokeRingPreset;
20
+ export declare const smokeRingPresets: SmokeRingPreset[];
21
+ export declare const SmokeRing: (props: SmokeRingProps) => JSX.Element;
22
+ export {};
@@ -0,0 +1,19 @@
1
+ import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
+ export type SteppedSimplexNoiseParams = {
3
+ scale?: number;
4
+ color1?: string;
5
+ color2?: string;
6
+ color3?: string;
7
+ color4?: string;
8
+ color5?: string;
9
+ stepsNumber?: number;
10
+ } & GlobalParams;
11
+ export type SteppedSimplexNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & SteppedSimplexNoiseParams;
12
+ type SteppedSimplexNoisePreset = {
13
+ name: string;
14
+ params: Required<SteppedSimplexNoiseParams>;
15
+ };
16
+ export declare const defaultPreset: SteppedSimplexNoisePreset;
17
+ export declare const steppedSimplexNoisePresets: SteppedSimplexNoisePreset[];
18
+ export declare const SteppedSimplexNoise: (props: SteppedSimplexNoiseProps) => JSX.Element;
19
+ export {};
@@ -0,0 +1,31 @@
1
+ import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
+ export type VoronoiParams = {
3
+ scale?: number;
4
+ colorCell1?: string;
5
+ colorCell2?: string;
6
+ colorCell3?: string;
7
+ colorMid?: string;
8
+ colorEdges?: string;
9
+ colorGradient?: number;
10
+ distance?: number;
11
+ edgesSize?: number;
12
+ edgesSharpness?: number;
13
+ middleSize?: number;
14
+ middleSharpness?: number;
15
+ } & GlobalParams;
16
+ export type VoronoiProps = Omit<ShaderMountProps, 'fragmentShader'> & VoronoiParams;
17
+ type VoronoiPreset = {
18
+ name: string;
19
+ params: Required<VoronoiParams>;
20
+ };
21
+ export declare const defaultPreset: VoronoiPreset;
22
+ export declare const classicPreset: VoronoiPreset;
23
+ export declare const giraffePreset: VoronoiPreset;
24
+ export declare const eyesPreset: VoronoiPreset;
25
+ export declare const bubblesPreset: VoronoiPreset;
26
+ export declare const cellsPreset: VoronoiPreset;
27
+ export declare const glowPreset: VoronoiPreset;
28
+ export declare const tilesPreset: VoronoiPreset;
29
+ export declare const voronoiPresets: VoronoiPreset[];
30
+ export declare const Voronoi: (props: VoronoiProps) => JSX.Element;
31
+ export {};
@@ -0,0 +1,27 @@
1
+ import { type ShaderMountProps } from '../shader-mount';
2
+ export type WavesParams = {
3
+ scale?: number;
4
+ rotation?: number;
5
+ color1?: string;
6
+ color2?: string;
7
+ shape?: number;
8
+ frequency?: number;
9
+ amplitude?: number;
10
+ spacing?: number;
11
+ dutyCycle?: number;
12
+ edgeBlur?: number;
13
+ };
14
+ export type WavesProps = Omit<ShaderMountProps, 'fragmentShader'> & WavesParams;
15
+ type WavesPreset = {
16
+ name: string;
17
+ params: Required<WavesParams>;
18
+ };
19
+ export declare const defaultPreset: WavesPreset;
20
+ export declare const spikesPreset: WavesPreset;
21
+ export declare const groovyPreset: WavesPreset;
22
+ export declare const tangledUpPreset: WavesPreset;
23
+ export declare const zigZagPreset: WavesPreset;
24
+ export declare const waveRidePreset: WavesPreset;
25
+ export declare const wavesPresets: WavesPreset[];
26
+ export declare const Waves: (props: WavesProps) => JSX.Element;
27
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paper-design/shaders-react",
3
- "version": "0.0.16",
3
+ "version": "0.0.18",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -23,7 +23,7 @@
23
23
  "type-check": "tsc --project tsconfig.json"
24
24
  },
25
25
  "dependencies": {
26
- "@paper-design/shaders": "0.0.14",
26
+ "@paper-design/shaders": "0.0.16",
27
27
  "react": ">=18"
28
28
  },
29
29
  "devDependencies": {