@paper-design/shaders-react 0.0.17 → 0.0.19
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 +7 -5
- package/dist/index.d.ts +27 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/shader-mount.d.ts +2 -1
- package/dist/shaders/dots-grid.d.ts +23 -0
- package/dist/shaders/grain-clouds.d.ts +1 -1
- package/dist/shaders/mesh-gradient.d.ts +1 -0
- package/dist/shaders/metaballs.d.ts +18 -0
- package/dist/shaders/neuro-noise.d.ts +1 -1
- package/dist/shaders/perlin-noise.d.ts +25 -0
- package/dist/shaders/smoke-ring.d.ts +3 -2
- package/dist/shaders/stepped-simplex-noise.d.ts +1 -1
- package/dist/shaders/voronoi.d.ts +31 -0
- package/dist/shaders/warp.d.ts +35 -0
- package/dist/shaders/waves.d.ts +27 -0
- package/package.json +2 -2
- package/dist/shaders/{dots-pattern.d.ts → dots-orbit.d.ts} +1 -1
package/README.md
CHANGED
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
import { MeshGradient } from '@paper-design/shaders-react';
|
|
7
7
|
|
|
8
8
|
<MeshGradient
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
@@ -15,12 +15,36 @@ export { NeuroNoise, neuroNoisePresets } from './shaders/neuro-noise';
|
|
|
15
15
|
export { type NeuroNoiseProps } from './shaders/neuro-noise';
|
|
16
16
|
export { type NeuroNoiseParams } from './shaders/neuro-noise';
|
|
17
17
|
export { type NeuroNoiseUniforms } from '@paper-design/shaders';
|
|
18
|
-
export { DotsOrbit, dotsOrbitPresets } from './shaders/dots-
|
|
19
|
-
export { type DotsOrbitProps } from './shaders/dots-
|
|
20
|
-
export { type DotsOrbitParams } from './shaders/dots-
|
|
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
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';
|
|
22
26
|
export { SteppedSimplexNoise, steppedSimplexNoisePresets } from './shaders/stepped-simplex-noise';
|
|
23
27
|
export { type SteppedSimplexNoiseProps } from './shaders/stepped-simplex-noise';
|
|
24
28
|
export { type SteppedSimplexNoiseParams } from './shaders/stepped-simplex-noise';
|
|
25
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';
|
|
46
|
+
export { Warp, warpPresets } from './shaders/warp';
|
|
47
|
+
export { type WarpProps } from './shaders/warp';
|
|
48
|
+
export { type WarpParams } from './shaders/warp';
|
|
49
|
+
export { type WarpUniforms, PatternShapes, type PatternShape } from '@paper-design/shaders';
|
|
26
50
|
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 P,useRef as x}from"react";import{ShaderMount as M}from"@paper-design/shaders";import{jsx as k}from"react/jsx-runtime";var o=({ref:e,fragmentShader:r,style:y,uniforms:d={},webGlContextAttributes:g,speed:S=1})=>{let h=e??x(null),c=x(null);return P(()=>(h.current&&(c.current=new M(h.current,r,d,g,S)),()=>{c.current?.dispose()}),[r,g]),P(()=>{c.current?.setUniforms(d)},[d]),P(()=>{c.current?.setSpeed(S)},[S]),k("canvas",{ref:h,style:y})};import{useMemo as G}from"react";import{getShaderColorFromString as b,grainCloudsFragmentShader as R}from"@paper-design/shaders";import{jsx as F}from"react/jsx-runtime";var m={name:"Default",params:{color1:"hsla(0, 0%, 0%, 1)",color2:"hsla(0, 0%, 100%, 1)",scale:1,grainAmount:.05,speed:.3}},_={name:"Sky",params:{color1:"#73a6ff",color2:"#ffffff",scale:1,grainAmount:0,speed:.3}},C=[m,_],O=e=>{let r=G(()=>({u_color1:b(e.color1,m.params.color1),u_color2:b(e.color2,m.params.color2),u_scale:e.scale??m.params.scale,u_grainAmount:e.grainAmount??m.params.grainAmount}),[e.color1,e.color2,e.scale,e.grainAmount]);return F(o,{...e,fragmentShader:R,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as D}from"react";import{getShaderColorFromString as p,meshGradientFragmentShader as B}from"@paper-design/shaders";import{jsx as A}from"react/jsx-runtime";var l={name:"Default",params:{color1:"hsla(259, 29%, 73%, 1)",color2:"hsla(263, 57%, 39%, 1)",color3:"hsla(48, 73%, 84%,1)",color4:"hsla(295, 32%, 70%, 1)",speed:.15}},U={name:"Beach",params:{color1:"hsla(186, 81%, 83%, 1)",color2:"hsla(198, 55%, 68%, 1)",color3:"hsla(53, 67%, 88%, 1)",color4:"hsla(45, 93%, 73%, 1)",speed:.1}},z=[l,U],E=e=>{let r=D(()=>({u_color1:p(e.color1,l.params.color1),u_color2:p(e.color2,l.params.color2),u_color3:p(e.color3,l.params.color3),u_color4:p(e.color4,l.params.color4),u_speed:e.speed??l.params.speed}),[e.color1,e.color2,e.color3,e.color4,e.speed]);return A(o,{...e,fragmentShader:B,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as q}from"react";import{getShaderColorFromString as f,smokeRingFragmentShader as J}from"@paper-design/shaders";import{jsx as w}from"react/jsx-runtime";var a={name:"Default",params:{colorBack:"hsla(208, 54%, 7%, 1)",color1:"hsla(0, 0%, 100%, 1)",color2:"hsla(211, 100%, 64%, 1)",speed:1,noiseScale:1.4,thickness:.33}},X={name:"Cloud",params:{colorBack:"hsla(218, 100%, 62%)",color1:"hsla(0, 0%, 100%)",color2:"hsla(0, 0%, 100%)",speed:1,thickness:.7,noiseScale:1.8}},v={name:"Fire",params:{colorBack:"hsla(20, 100%, 5%)",color1:"hsla(40, 100%, 50%)",color2:"hsla(0, 100%, 50%)",speed:4,thickness:.35,noiseScale:1.4}},L={name:"Electric",params:{colorBack:"hsla(47, 50%, 7%)",color1:"hsla(47, 100%, 64%)",color2:"hsla(47, 100%, 64%)",speed:2.5,thickness:.1,noiseScale:1.8}},H={name:"Poison",params:{colorBack:"hsla(120, 100%, 3%)",color1:"hsla(120, 100%, 3%)",color2:"hsla(120, 100%, 66%)",speed:3,thickness:.6,noiseScale:5}},T=[a,X,v,L,H],V=e=>{let r=q(()=>({u_colorBack:f(e.colorBack,a.params.colorBack),u_color1:f(e.color1,a.params.color1),u_color2:f(e.color2,a.params.color2),u_speed:e.speed??a.params.speed,u_scale:e.noiseScale??a.params.noiseScale,u_thickness:e.thickness??a.params.thickness}),[e.colorBack,e.color1,e.color2,e.speed,e.noiseScale,e.thickness]);return w(o,{...e,fragmentShader:J,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as W}from"react";import{getShaderColorFromString as N,neuroNoiseFragmentShader as I}from"@paper-design/shaders";import{jsx as Z}from"react/jsx-runtime";var n={name:"Default",params:{colorFront:"hsla(261, 100%, 82%, 1)",colorBack:"hsla(0, 0%, 0%, 1)",scale:.7,speed:1,brightness:1.3}},K={name:"Marble",params:{colorFront:"hsla(230, 24%, 15%, 1)",colorBack:"hsla(0, 0%, 97%, 1)",scale:1.2,speed:0,brightness:1.1}},Q=[n,K],Y=e=>{let r=W(()=>({u_colorFront:N(e.colorFront,n.params.colorFront),u_colorBack:N(e.colorBack,n.params.colorBack),u_scale:e.scale??n.params.scale,u_speed:e.speed??n.params.speed,u_brightness:e.brightness??n.params.brightness}),[e.colorFront,e.colorBack,e.scale,e.speed,e.brightness]);return Z(o,{...e,fragmentShader:I,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as $}from"react";import{getShaderColorFromString as u,dotsOrbitFragmentShader as j}from"@paper-design/shaders";import{jsx as oe}from"react/jsx-runtime";var s={name:"Default",params:{color1:"hsla(358.2, 66.1%, 48.6%, 1)",color2:"hsla(145.2, 30.1%, 32.5%, 1)",color3:"hsla(39.4, 87.7%, 52.4%, 1)",color4:"hsla(273.5, 29.5%, 34.5%, 1)",dotSize:.15,dotSizeRange:.05,scale:10,speed:3,spreading:.25}},ee=[s],re=e=>{let r=$(()=>({u_color1:u(e.color1,s.params.color1),u_color2:u(e.color2,s.params.color2),u_color3:u(e.color3,s.params.color3),u_color4:u(e.color4,s.params.color4),u_dotSize:e.dotSize??s.params.dotSize,u_dotSizeRange:e.dotSizeRange??s.params.dotSizeRange,u_scale:e.scale??s.params.scale,u_spreading:e.spreading??s.params.spreading}),[e.color1,e.color2,e.color3,e.color4,e.dotSize,e.dotSizeRange,e.scale,e.spreading]);return oe(o,{...e,fragmentShader:j,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as se}from"react";import{getShaderColorFromString as i,steppedSimplexNoiseFragmentShader as te}from"@paper-design/shaders";import{jsx as ce}from"react/jsx-runtime";var t={name:"Default",params:{color1:"hsla(208.42, 24.68%, 45.29%, 1)",color2:"hsla(94.07, 38.39%, 58.63%, 1)",color3:"hsla(359.02, 93.88%, 61.57%, 1)",color4:"hsla(42.35, 93.41%, 64.31%, 1)",color5:"hsla(0, 0%, 100%, 1)",scale:.5,speed:.15,stepsNumber:13}},ae={name:"Magma",params:{color1:"hsla(0, 100%, 36.47%, 1)",color2:"hsla(0, 95.54%, 43.92%, 1)",color3:"hsla(20.08, 100%, 48.63%, 1)",color4:"hsla(45, 100%, 45.49%, 1)",color5:"hsla(31.87, 100%, 93.73%, 1)",speed:.2,scale:2,stepsNumber:8}},le={name:"Blood cell",params:{color1:"#30132f",color2:"#540332",color3:"#720d32",color4:"#720d32",color5:"#f4807c",scale:.72,speed:.22,stepsNumber:29}},ne={name:"First contact",params:{color1:"#e5bde5",color2:"#150727",color3:"#512a5a",color4:"#deb0b0",color5:"#ffebeb",scale:.62,speed:-.1,stepsNumber:40}},me=[t,ae,le,ne],ie=e=>{let r=se(()=>({u_color1:i(e.color1,t.params.color1),u_color2:i(e.color2,t.params.color2),u_color3:i(e.color3,t.params.color3),u_color4:i(e.color4,t.params.color4),u_color5:i(e.color5,t.params.color5),u_scale:e.scale??t.params.scale,u_speed:e.speed??t.params.speed,u_steps_number:e.stepsNumber??t.params.stepsNumber}),[e.color1,e.color2,e.color3,e.color4,e.color5,e.scale,e.speed,e.stepsNumber]);return ce(o,{...e,fragmentShader:te,uniforms:r})};import{}from"@paper-design/shaders";import{getShaderColorFromString as xr}from"@paper-design/shaders";export{re as DotsOrbit,O as GrainClouds,E as MeshGradient,Y as NeuroNoise,o as ShaderMount,V as SmokeRing,ie as SteppedSimplexNoise,ee as dotsOrbitPresets,xr as getShaderColorFromString,C as grainCloudsPresets,z as meshGradientPresets,Q as neuroNoisePresets,T as smokeRingPresets,me as steppedSimplexNoisePresets};
|
|
2
|
+
import{useEffect as b,useRef as v}from"react";import{ShaderMount as E}from"@paper-design/shaders";import{jsx as I}from"react/jsx-runtime";var o=({ref:e,fragmentShader:r,style:U,uniforms:M={},webGlContextAttributes:D,speed:G=1,seed:k=0})=>{let _=e??v(null),h=v(null);return b(()=>(_.current&&(h.current=new E(_.current,r,M,D,G,k)),()=>{h.current?.dispose()}),[r,D]),b(()=>{h.current?.setUniforms(M)},[M]),b(()=>{h.current?.setSpeed(G)},[G]),b(()=>{h.current?.setSeed(k)},[k]),I("canvas",{ref:_,style:U})};import{useMemo as X}from"react";import{getShaderColorFromString as F,grainCloudsFragmentShader as q}from"@paper-design/shaders";import{jsx as A}from"react/jsx-runtime";var S={name:"Default",params:{scale:1,speed:.3,seed:0,color1:"hsla(0, 0%, 0%, 1)",color2:"hsla(0, 0%, 100%, 1)",grainAmount:1}},V={name:"Sky",params:{scale:1,speed:.3,seed:0,color1:"hsla(218, 100%, 73%, 1)",color2:"hsla(0, 0%, 100%, 1)",grainAmount:0}},Y=[S,V],J=e=>{let r=X(()=>({u_scale:e.scale??S.params.scale,u_color1:F(e.color1,S.params.color1),u_color2:F(e.color2,S.params.color2),u_grainAmount:e.grainAmount??S.params.grainAmount}),[e.scale,e.color1,e.color2,e.grainAmount]);return A(o,{...e,fragmentShader:q,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as T}from"react";import{getShaderColorFromString as x,meshGradientFragmentShader as L}from"@paper-design/shaders";import{jsx as $}from"react/jsx-runtime";var g={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)"}},H={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)"}},K={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)"}},Z=[g,H,K],Q=e=>{let r=T(()=>({u_color1:x(e.color1,g.params.color1),u_color2:x(e.color2,g.params.color2),u_color3:x(e.color3,g.params.color3),u_color4:x(e.color4,g.params.color4)}),[e.color1,e.color2,e.color3,e.color4]);return $(o,{...e,fragmentShader:L,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as j}from"react";import{getShaderColorFromString as N,smokeRingFragmentShader as ee}from"@paper-design/shaders";import{jsx as ne}from"react/jsx-runtime";var p={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}},re={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}},oe={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}},se={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}},ae={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}},te=[p,re,oe,se,ae],le=e=>{let r=j(()=>({u_scale:e.scale??p.params.scale,u_colorBack:N(e.colorBack,p.params.colorBack),u_colorInner:N(e.colorInner,p.params.colorInner),u_colorOuter:N(e.colorOuter,p.params.colorOuter),u_noiseScale:e.noiseScale??p.params.noiseScale,u_thickness:e.thickness??p.params.thickness}),[e.scale,e.colorBack,e.colorInner,e.colorOuter,e.noiseScale,e.thickness]);return ne(o,{...e,fragmentShader:ee,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as ie}from"react";import{getShaderColorFromString as w,neuroNoiseFragmentShader as ce}from"@paper-design/shaders";import{jsx as ue}from"react/jsx-runtime";var P={name:"Default",params:{scale:1,speed:1,seed:0,colorFront:"hsla(261, 100%, 82%, 1)",colorBack:"hsla(0, 0%, 0%, 1)",brightness:1.3}},me={name:"Marble",params:{scale:.4,speed:0,seed:0,colorFront:"hsla(230, 24%, 15%, 1)",colorBack:"hsla(0, 0%, 97%, 1)",brightness:1.1}},de=[P,me],pe=e=>{let r=ie(()=>({u_scale:e.scale??P.params.scale,u_colorFront:w(e.colorFront,P.params.colorFront),u_colorBack:w(e.colorBack,P.params.colorBack),u_brightness:e.brightness??P.params.brightness}),[e.scale,e.colorFront,e.colorBack,e.brightness]);return ue(o,{...e,fragmentShader:ce,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as he}from"react";import{getShaderColorFromString as C,dotsOrbitFragmentShader as Se}from"@paper-design/shaders";import{jsx as fe}from"react/jsx-runtime";var i={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}},ge=[i],Pe=e=>{let r=he(()=>({u_scale:e.scale??i.params.scale,u_color1:C(e.color1,i.params.color1),u_color2:C(e.color2,i.params.color2),u_color3:C(e.color3,i.params.color3),u_color4:C(e.color4,i.params.color4),u_dotSize:e.dotSize??i.params.dotSize,u_dotSizeRange:e.dotSizeRange??i.params.dotSizeRange,u_spreading:e.spreading??i.params.spreading}),[e.scale,e.color1,e.color2,e.color3,e.color4,e.dotSize,e.dotSizeRange,e.spreading]);return fe(o,{...e,fragmentShader:Se,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as ye}from"react";import{dotsGridFragmentShader as be,getShaderColorFromString as R,DotsGridShapes as m}from"@paper-design/shaders";import{jsx as We}from"react/jsx-runtime";var t={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:m.Circle}},xe={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:m.Triangle}},Ce={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:m.Circle}},Me={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:m.Circle}},Ge={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:m.Diamond}},ke={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:m.Diamond}},_e={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:m.Triangle}},Ne={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:m.Square}},Re=[t,xe,Ce,Me,Ge,ke,_e,Ne],ze=e=>{let r=ye(()=>({u_colorBack:R(e.colorBack,t.params.colorBack),u_colorFill:R(e.colorFill,t.params.colorStroke),u_colorStroke:R(e.colorStroke,t.params.colorStroke),u_dotSize:e.dotSize??t.params.dotSize,u_gridSpacingX:e.gridSpacingX??t.params.gridSpacingX,u_gridSpacingY:e.gridSpacingY??t.params.gridSpacingY,u_strokeWidth:e.strokeWidth??t.params.strokeWidth,u_sizeRange:e.sizeRange??t.params.sizeRange,u_opacityRange:e.opacityRange??t.params.opacityRange,u_shape:e.shape??t.params.shape}),[e.colorBack,e.colorFill,e.colorStroke,e.dotSize,e.gridSpacingX,e.gridSpacingY,e.strokeWidth,e.sizeRange,e.opacityRange,e.shape]);return We(o,{...e,fragmentShader:be,uniforms:r})};import{DotsGridShapes as xs}from"@paper-design/shaders";import{useMemo as De}from"react";import{getShaderColorFromString as f,steppedSimplexNoiseFragmentShader as ve}from"@paper-design/shaders";import{jsx as Ee}from"react/jsx-runtime";var d={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}},Fe={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}},we={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}},Be={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}},Oe=[d,Fe,we,Be],Ue=e=>{let r=De(()=>({u_scale:e.scale??d.params.scale,u_color1:f(e.color1,d.params.color1),u_color2:f(e.color2,d.params.color2),u_color3:f(e.color3,d.params.color3),u_color4:f(e.color4,d.params.color4),u_color5:f(e.color5,d.params.color5),u_steps_number:e.stepsNumber??d.params.stepsNumber}),[e.scale,e.color1,e.color2,e.color3,e.color4,e.color5,e.stepsNumber]);return Ee(o,{...e,fragmentShader:ve,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as Ie}from"react";import{getShaderColorFromString as z,metaballsFragmentShader as Xe}from"@paper-design/shaders";import{jsx as Ye}from"react/jsx-runtime";var u={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}},qe=[u],Ve=e=>{let r=Ie(()=>({u_scale:e.scale??u.params.scale,u_color1:z(e.color1,u.params.color1),u_color2:z(e.color2,u.params.color2),u_color3:z(e.color3,u.params.color3),u_ballSize:e.ballSize??u.params.ballSize,u_visibilityRange:e.visibilityRange??u.params.visibilityRange}),[e.scale,e.color1,e.color2,e.color3,e.ballSize,e.visibilityRange]);return Ye(o,{...e,fragmentShader:Xe,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as Je}from"react";import{getShaderColorFromString as B,wavesFragmentShader as Ae}from"@paper-design/shaders";import{jsx as je}from"react/jsx-runtime";var l={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}},Te={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}},Le={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}},He={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}},Ke={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}},Ze={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}},Qe=[l,Te,Le,He,Ke,Ze],$e=e=>{let r=Je(()=>({u_scale:e.scale??l.params.scale,u_rotation:e.rotation??l.params.rotation,u_color1:B(e.color1,l.params.color1),u_color2:B(e.color2,l.params.color2),u_shape:e.shape??l.params.shape,u_frequency:e.frequency??l.params.frequency,u_amplitude:e.amplitude??l.params.amplitude,u_spacing:e.spacing??l.params.spacing,u_dutyCycle:e.dutyCycle??l.params.dutyCycle,u_edgeBlur:e.edgeBlur??l.params.edgeBlur}),[e.scale,e.rotation,e.color1,e.color2,e.shape,e.frequency,e.amplitude,e.spacing,e.dutyCycle,e.edgeBlur]);return je(o,{...e,fragmentShader:Ae,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as er}from"react";import{getShaderColorFromString as O,perlinNoiseFragmentShader as rr}from"@paper-design/shaders";import{jsx as cr}from"react/jsx-runtime";var c={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}},or={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}},sr={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}},ar={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}},tr={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}},lr={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}},nr=[c,or,sr,ar,tr,lr],ir=e=>{let r=er(()=>({u_scale:e.scale??c.params.scale,u_color1:O(e.color1,c.params.color1),u_color2:O(e.color2,c.params.color2),u_proportion:e.proportion??c.params.proportion,u_contour:e.contour??c.params.contour,u_octaveCount:e.octaveCount??c.params.octaveCount,u_persistence:e.persistence??c.params.persistence,u_lacunarity:e.lacunarity??c.params.lacunarity}),[e.scale,e.color1,e.color2,e.proportion,e.contour,e.octaveCount,e.persistence,e.lacunarity]);return cr(o,{...e,fragmentShader:rr,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as mr}from"react";import{getShaderColorFromString as y,voronoiFragmentShader as dr}from"@paper-design/shaders";import{jsx as xr}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}},pr={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}},ur={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}},hr={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}},Sr={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}},gr={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}},Pr={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}},fr={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}},yr=[s,pr,ur,hr,Sr,gr,Pr,fr],br=e=>{let r=mr(()=>({u_scale:e.scale??s.params.scale,u_colorCell1:y(e.colorCell1,s.params.colorCell1),u_colorCell2:y(e.colorCell2,s.params.colorCell2),u_colorCell3:y(e.colorCell3,s.params.colorCell3),u_colorMid:y(e.colorMid,s.params.colorMid),u_colorEdges:y(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 xr(o,{...e,fragmentShader:dr,uniforms:r})};import{}from"@paper-design/shaders";import{useMemo as Cr}from"react";import{getShaderColorFromString as W,warpFragmentShader as Mr,PatternShapes as n}from"@paper-design/shaders";import{jsx as Or}from"react/jsx-runtime";var a={name:"Default",params:{scale:1,rotation:0,speed:.1,seed:0,color1:"hsla(0, 0%, 15%, 1)",color2:"hsla(203, 80%, 70%, 1)",color3:"hsla(0, 0%, 100%, 1)",proportion:.35,softness:1,distortion:.25,swirl:.8,swirlIterations:10,shapeScale:.1,shape:n.Checks}},Gr={name:"Cauldron Pot",params:{scale:1.1,rotation:1.62,speed:1,seed:0,color1:"hsla(100, 51%, 75%, 1)",color2:"hsla(220, 39%, 32%, 1)",color3:"hsla(129.2, 41.9%, 6.1%, 1)",proportion:.64,softness:.95,distortion:.2,swirl:.86,swirlIterations:7,shapeScale:0,shape:n.Edge}},kr={name:"Silk",params:{scale:.26,rotation:0,speed:.5,seed:0,color1:"hsla(0, 9%, 7%, 1)",color2:"hsla(8, 13%, 34%, 1)",color3:"hsla(5, 8%, 71%, 1)",proportion:0,softness:1,distortion:.3,swirl:.6,swirlIterations:11,shapeScale:.05,shape:n.Stripes}},_r={name:"Passion",params:{scale:.25,rotation:1.35,speed:.3,seed:0,color1:"hsla(0, 44.7%, 14.9%, 1)",color2:"hsla(353.4, 34%, 42.2%, 1)",color3:"hsla(29, 100%, 76.1%, 1)",proportion:.5,softness:1,distortion:.09,swirl:.9,swirlIterations:6,shapeScale:.25,shape:n.Checks}},Nr={name:"Phantom",params:{scale:.68,rotation:1.8,speed:1.25,seed:0,color1:"hsla(242.2, 44.3%, 12%, 1)",color2:"hsla(236.1, 80.4%, 70%, 1)",color3:"hsla(0, 0%, 100%, 1)",proportion:.45,softness:1,distortion:.16,swirl:.3,swirlIterations:7,shapeScale:.1,shape:n.Checks}},Rr={name:"The Abyss",params:{scale:.1,rotation:2,speed:.06,seed:0,color1:"hsla(242.2, 44.3%, 12%, 1)",color2:"hsla(236.1, 80.4%, 70%, 1)",color3:"hsla(0, 0%, 100%, 1)",proportion:0,softness:1,distortion:.09,swirl:.48,swirlIterations:4,shapeScale:.1,shape:n.Edge}},zr={name:"Live Ink",params:{scale:2,rotation:1.5,speed:.25,seed:0,color1:"hsla(210, 11.1%, 7.1%, 1)",color2:"hsla(165, 9%, 65.1%, 1)",color3:"hsla(84, 100%, 97.1%, 1)",proportion:.35,softness:.3,distortion:.25,swirl:.8,swirlIterations:10,shapeScale:.26,shape:n.Checks}},Wr={name:"Iceberg",params:{scale:1.1,rotation:2,speed:.05,seed:0,color1:"hsla(0, 0%, 100%, 1)",color2:"hsla(220, 38.7%, 32%, 1)",color3:"hsla(129.2, 41.9%, 6.1%, 1)",proportion:.3,softness:1,distortion:.2,swirl:.86,swirlIterations:7,shapeScale:0,shape:n.Checks}},Dr={name:"Nectar",params:{scale:.24,rotation:0,speed:.42,seed:0,color1:"hsla(37.5, 22.2%, 7.1%, 1)",color2:"hsla(38.5, 59.1%, 63.1%, 1)",color3:"hsla(37.6, 30%, 95.2%, 1)",proportion:.24,softness:1,distortion:.21,swirl:.57,swirlIterations:10,shapeScale:.32,shape:n.Edge}},vr={name:"Filtered Light",params:{scale:2,rotation:.44,speed:.32,seed:0,color1:"hsla(60.2, 7.8%, 8.3%, 1)",color2:"hsla(64.4, 27.8%, 81%, 1)",color3:"hsla(60, 100%, 93.9%, 1)",proportion:.25,softness:1,distortion:.06,swirl:0,swirlIterations:0,shapeScale:0,shape:n.Stripes}},Fr={name:"Kelp",params:{scale:.38,rotation:.6,speed:2,seed:0,color1:"hsla(79.3, 100%, 78%, 1)",color2:"hsla(112, 10.5%, 28%, 1)",color3:"hsla(203.3, 50%, 7.1%, 1)",proportion:1,softness:0,distortion:0,swirl:.15,swirlIterations:0,shapeScale:.74,shape:n.Stripes}},wr=[a,Rr,Gr,vr,Wr,zr,Fr,Dr,_r,Nr,kr],Br=e=>{let r=Cr(()=>({u_scale:e.scale??a.params.scale,u_rotation:e.rotation??a.params.rotation,u_color1:W(e.color1,a.params.color1),u_color2:W(e.color2,a.params.color2),u_color3:W(e.color3,a.params.color2),u_proportion:e.proportion??a.params.proportion,u_softness:e.softness??a.params.softness,u_distortion:e.distortion??a.params.distortion,u_swirl:e.swirl??a.params.swirl,u_swirlIterations:e.swirlIterations??a.params.swirlIterations,u_shapeScale:e.shapeScale??a.params.shapeScale,u_shape:e.shape??a.params.shape}),[e.scale,e.rotation,e.color1,e.color2,e.color3,e.proportion,e.softness,e.distortion,e.swirl,e.swirlIterations,e.shapeScale,e.shape]);return Or(o,{...e,fragmentShader:Mr,uniforms:r})};import{PatternShapes as Ts}from"@paper-design/shaders";import{getShaderColorFromString as Hs}from"@paper-design/shaders";export{ze as DotsGrid,xs as DotsGridShapes,Pe as DotsOrbit,J as GrainClouds,Q as MeshGradient,Ve as Metaballs,pe as NeuroNoise,Ts as PatternShapes,ir as PerlinNoise,o as ShaderMount,le as SmokeRing,Ue as SteppedSimplexNoise,br as Voronoi,Br as Warp,$e as Waves,Re as dotsGridPresets,ge as dotsOrbitPresets,Hs as getShaderColorFromString,Y as grainCloudsPresets,Z as meshGradientPresets,qe as metaballsPresets,de as neuroNoisePresets,nr as perlinNoisePresets,te as smokeRingPresets,Oe as steppedSimplexNoisePresets,yr as voronoiPresets,wr as warpPresets,Qe 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/smoke-ring.tsx", "../src/shaders/neuro-noise.tsx", "../src/shaders/dots-
|
|
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}\n\n/** Params that every shader can set as part of their controls */\nexport type GlobalParams = Pick<ShaderMountProps, 'speed'>;\n\nexport const ShaderMount: React.FC<ShaderMountProps> = ({\n ref,\n fragmentShader,\n style,\n uniforms = {},\n webGlContextAttributes,\n speed = 1,\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 );\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 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 color1?: string;\n color2?: string;\n scale?: number;\n grainAmount?: number;\n} & GlobalParams;\n\nexport type GrainCloudsProps = Omit<ShaderMountProps, 'fragmentShader'> & GrainCloudsParams;\n\ntype GrainCloudsPreset = { name: string; params: Required<GrainCloudsParams> };\n\nexport const defaultPreset: GrainCloudsPreset = {\n name: 'Default',\n params: {\n // Note: Keep default colors in HSLA format so that our Leva controls show a transparency channel (rgba and hex8 do not work)\n color1: 'hsla(0, 0%, 0%, 1)',\n color2: 'hsla(0, 0%, 100%, 1)',\n scale: 1,\n grainAmount: 0.05,\n speed: 0.3,\n },\n};\n\nexport const skyPreset: GrainCloudsPreset = {\n name: 'Sky',\n params: {\n color1: '#73a6ff',\n color2: '#ffffff',\n scale: 1,\n grainAmount: 0,\n speed: 0.3,\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_color1: getShaderColorFromString(props.color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(props.color2, defaultPreset.params.color2),\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_grainAmount: props.grainAmount ?? defaultPreset.params.grainAmount,\n };\n }, [props.color1, props.color2, props.scale, 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-pattern';\nexport { type DotsOrbitProps } from './shaders/dots-pattern';\nexport { type DotsOrbitParams } from './shaders/dots-pattern';\nexport { type DotsOrbitUniforms } 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// ----- 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\nexport const defaultPreset: MeshGradientPreset = {\n name: 'Default',\n params: {\n // Note: Keep default colors in HSLA format so that our Leva controls show a transparency channel (rgba and hex8 do not work)\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 speed: 0.15,\n },\n} as const;\n\nexport const beachPreset: MeshGradientPreset = {\n name: 'Beach',\n params: {\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 speed: 0.1,\n },\n};\n\nexport const meshGradientPresets: MeshGradientPreset[] = [defaultPreset, beachPreset];\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 u_speed: props.speed ?? defaultPreset.params.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 GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, smokeRingFragmentShader, type SmokeRingUniforms } from '@paper-design/shaders';\n\nexport type SmokeRingParams = {\n colorBack?: string;\n color1?: string;\n color2?: string;\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\nexport const defaultPreset: SmokeRingPreset = {\n name: 'Default',\n params: {\n // Note: Keep default colors in HSLA format so that our Leva controls show a transparency channel (rgba and hex8 do not work)\n colorBack: 'hsla(208, 54%, 7%, 1)',\n color1: 'hsla(0, 0%, 100%, 1)',\n color2: 'hsla(211, 100%, 64%, 1)',\n speed: 1,\n noiseScale: 1.4,\n thickness: 0.33,\n },\n} as const;\n\nexport const cloudPreset: SmokeRingPreset = {\n name: 'Cloud',\n params: {\n colorBack: 'hsla(218, 100%, 62%)',\n color1: 'hsla(0, 0%, 100%)',\n color2: 'hsla(0, 0%, 100%)',\n speed: 1,\n thickness: 0.7,\n noiseScale: 1.8,\n },\n};\n\nexport const firePreset: SmokeRingPreset = {\n name: 'Fire',\n params: {\n colorBack: 'hsla(20, 100%, 5%)',\n color1: 'hsla(40, 100%, 50%)',\n color2: 'hsla(0, 100%, 50%)',\n speed: 4,\n thickness: 0.35,\n noiseScale: 1.4,\n },\n};\n\nexport const electricPreset: SmokeRingPreset = {\n name: 'Electric',\n params: {\n colorBack: 'hsla(47, 50%, 7%)',\n color1: 'hsla(47, 100%, 64%)',\n color2: 'hsla(47, 100%, 64%)',\n speed: 2.5,\n thickness: 0.1,\n noiseScale: 1.8,\n },\n};\n\nexport const poisonPreset: SmokeRingPreset = {\n name: 'Poison',\n params: {\n colorBack: 'hsla(120, 100%, 3%)',\n color1: 'hsla(120, 100%, 3%)',\n color2: 'hsla(120, 100%, 66%)',\n speed: 3,\n thickness: 0.6,\n noiseScale: 5,\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_colorBack: getShaderColorFromString(props.colorBack, defaultPreset.params.colorBack),\n u_color1: getShaderColorFromString(props.color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(props.color2, defaultPreset.params.color2),\n u_speed: props.speed ?? defaultPreset.params.speed,\n u_scale: props.noiseScale ?? defaultPreset.params.noiseScale,\n u_thickness: props.thickness ?? defaultPreset.params.thickness,\n };\n }, [props.colorBack, props.color1, props.color2, props.speed, 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 colorFront?: string;\n colorBack?: string;\n scale?: number;\n brightness?: number;\n} & GlobalParams;\n\nexport type NeuroNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & NeuroNoiseParams;\n\ntype NeuroNoisePreset = { name: string; params: Required<NeuroNoiseParams> };\n\nexport const defaultPreset: NeuroNoisePreset = {\n name: 'Default',\n params: {\n colorFront: 'hsla(261, 100%, 82%, 1)',\n colorBack: 'hsla(0, 0%, 0%, 1)',\n scale: 0.7,\n speed: 1,\n brightness: 1.3,\n },\n} as const;\n\nconst marblePreset: NeuroNoisePreset = {\n name: 'Marble',\n params: {\n // Note: Keep default colors in HSLA format so that our Leva controls show a transparency channel (rgba and hex8 do not work)\n colorFront: 'hsla(230, 24%, 15%, 1)',\n colorBack: 'hsla(0, 0%, 97%, 1)',\n scale: 1.2,\n speed: 0,\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_colorFront: getShaderColorFromString(props.colorFront, defaultPreset.params.colorFront),\n u_colorBack: getShaderColorFromString(props.colorBack, defaultPreset.params.colorBack),\n u_scale: props.scale ?? defaultPreset.params.scale,\n u_speed: props.speed ?? defaultPreset.params.speed,\n u_brightness: props.brightness ?? defaultPreset.params.brightness,\n };\n }, [props.colorFront, props.colorBack, props.scale, props.speed, 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 color1?: string;\n color2?: string;\n color3?: string;\n color4?: string;\n dotSize?: number;\n dotSizeRange?: number;\n scale?: number;\n spreading?: number;\n} & GlobalParams;\n\nexport type DotsOrbitProps = Omit<ShaderMountProps, 'fragmentShader'> & DotsOrbitParams;\n\ntype DotsOrbitPreset = { name: string; params: Required<DotsOrbitParams> };\n\nexport const defaultPreset: DotsOrbitPreset = {\n name: 'Default',\n params: {\n // Note: Keep default colors in HSLA format so that our Leva controls show a transparency channel (rgba and hex8 do not work)\n color1: 'hsla(358.2, 66.1%, 48.6%, 1)',\n color2: 'hsla(145.2, 30.1%, 32.5%, 1)',\n color3: 'hsla(39.4, 87.7%, 52.4%, 1)',\n color4: 'hsla(273.5, 29.5%, 34.5%, 1)',\n dotSize: 0.15,\n dotSizeRange: 0.05,\n scale: 10,\n speed: 3,\n spreading: 0.25,\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_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_scale: props.scale ?? defaultPreset.params.scale,\n u_spreading: props.spreading ?? defaultPreset.params.spreading,\n };\n }, [\n props.color1,\n props.color2,\n props.color3,\n props.color4,\n props.dotSize,\n props.dotSizeRange,\n props.scale,\n props.spreading,\n ]);\n\n return <ShaderMount {...props} fragmentShader={dotsOrbitFragmentShader} 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 color1?: string;\n color2?: string;\n color3?: string;\n color4?: string;\n color5?: string;\n scale?: number;\n stepsNumber?: number;\n} & GlobalParams;\n\nexport type SteppedSimplexNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & SteppedSimplexNoiseParams;\n\ntype SteppedSimplexNoisePreset = { name: string; params: Required<SteppedSimplexNoiseParams> };\n\nexport const defaultPreset: SteppedSimplexNoisePreset = {\n name: 'Default',\n params: {\n // Note: Keep default colors in HSLA format so that our Leva controls show a transparency channel (rgba and hex8 do not work)\n color1: 'hsla(208.42, 24.68%, 45.29%, 1)',\n color2: 'hsla(94.07, 38.39%, 58.63%, 1)',\n color3: 'hsla(359.02, 93.88%, 61.57%, 1)',\n color4: 'hsla(42.35, 93.41%, 64.31%, 1)',\n color5: 'hsla(0, 0%, 100%, 1)',\n scale: 0.5,\n speed: 0.15,\n stepsNumber: 13,\n },\n} as const;\n\nconst magmaPreset: SteppedSimplexNoisePreset = {\n name: 'Magma',\n params: {\n color1: 'hsla(0, 100%, 36.47%, 1)',\n color2: 'hsla(0, 95.54%, 43.92%, 1)',\n color3: 'hsla(20.08, 100%, 48.63%, 1)',\n color4: 'hsla(45, 100%, 45.49%, 1)',\n color5: 'hsla(31.87, 100%, 93.73%, 1)',\n speed: 0.2,\n scale: 2,\n stepsNumber: 8,\n },\n};\n\nconst bloodCellPreset: SteppedSimplexNoisePreset = {\n name: 'Blood cell',\n params: {\n color1: '#30132f',\n color2: '#540332',\n color3: '#720d32',\n color4: '#720d32',\n color5: '#f4807c',\n scale: 0.72,\n speed: 0.22,\n stepsNumber: 29,\n },\n};\n\nconst firstContactPreset: SteppedSimplexNoisePreset = {\n name: 'First contact',\n params: {\n color1: '#e5bde5',\n color2: '#150727',\n color3: '#512a5a',\n color4: '#deb0b0',\n color5: '#ffebeb',\n scale: 0.62,\n speed: -0.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_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_scale: props.scale ?? defaultPreset.params.scale,\n u_speed: props.speed ?? defaultPreset.params.speed,\n u_steps_number: props.stepsNumber ?? defaultPreset.params.stepsNumber,\n };\n }, [\n props.color1,\n props.color2,\n props.color3,\n props.color4,\n props.color5,\n props.scale,\n props.speed,\n props.stepsNumber,\n ]);\n\n return <ShaderMount {...props} fragmentShader={steppedSimplexNoiseFragmentShader} uniforms={uniforms} />;\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["useEffect", "useRef", "ShaderMountVanilla", "jsx", "ShaderMount", "ref", "fragmentShader", "style", "uniforms", "webGlContextAttributes", "speed", "canvasRef", "shaderMountRef", "useMemo", "getShaderColorFromString", "grainCloudsFragmentShader", "jsx", "defaultPreset", "skyPreset", "grainCloudsPresets", "GrainClouds", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "meshGradientFragmentShader", "jsx", "defaultPreset", "beachPreset", "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", "getShaderColorFromString", "steppedSimplexNoiseFragmentShader", "jsx", "defaultPreset", "magmaPreset", "bloodCellPreset", "firstContactPreset", "steppedSimplexNoisePresets", "SteppedSimplexNoise", "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", "../src/shaders/warp.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// Warping distortion\nexport { Warp, warpPresets } from './shaders/warp';\nexport { type WarpProps } from './shaders/warp';\nexport { type WarpParams } from './shaders/warp';\nexport { type WarpUniforms, PatternShapes, type PatternShape } 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", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport {\n getShaderColorFromString,\n warpFragmentShader,\n type WarpUniforms,\n type PatternShape,\n PatternShapes,\n} from '@paper-design/shaders';\n\nexport type WarpParams = {\n scale?: number;\n rotation?: number;\n color1?: string;\n color2?: string;\n color3?: string;\n proportion?: number;\n softness?: number;\n distortion?: number;\n swirl?: number;\n swirlIterations?: number;\n shapeScale?: number;\n shape?: PatternShape;\n} & GlobalParams;\n\nexport type WarpProps = Omit<ShaderMountProps, 'fragmentShader'> & WarpParams;\n\ntype WarpPreset = { name: string; params: Required<WarpParams> };\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: WarpPreset = {\n name: 'Default',\n params: {\n scale: 1,\n rotation: 0,\n speed: 0.1,\n seed: 0,\n color1: 'hsla(0, 0%, 15%, 1)',\n color2: 'hsla(203, 80%, 70%, 1)',\n color3: 'hsla(0, 0%, 100%, 1)',\n proportion: 0.35,\n softness: 1,\n distortion: 0.25,\n swirl: 0.8,\n swirlIterations: 10,\n shapeScale: 0.1,\n shape: PatternShapes.Checks,\n },\n};\n\nexport const presetCauldron: WarpPreset = {\n name: 'Cauldron Pot',\n params: {\n scale: 1.1,\n rotation: 1.62,\n speed: 1,\n seed: 0,\n color1: 'hsla(100, 51%, 75%, 1)',\n color2: 'hsla(220, 39%, 32%, 1)',\n color3: 'hsla(129.2, 41.9%, 6.1%, 1)',\n proportion: 0.64,\n softness: 0.95,\n distortion: 0.2,\n swirl: 0.86,\n swirlIterations: 7,\n shapeScale: 0,\n shape: PatternShapes.Edge,\n },\n};\n\nexport const presetSilk: WarpPreset = {\n name: 'Silk',\n params: {\n scale: 0.26,\n rotation: 0,\n speed: 0.5,\n seed: 0,\n color1: 'hsla(0, 9%, 7%, 1)',\n color2: 'hsla(8, 13%, 34%, 1)',\n color3: 'hsla(5, 8%, 71%, 1)',\n proportion: 0,\n softness: 1,\n distortion: 0.3,\n swirl: 0.6,\n swirlIterations: 11,\n shapeScale: 0.05,\n shape: PatternShapes.Stripes,\n },\n};\n\nexport const presetPassion: WarpPreset = {\n name: 'Passion',\n params: {\n scale: 0.25,\n rotation: 1.35,\n speed: 0.3,\n seed: 0,\n color1: 'hsla(0, 44.7%, 14.9%, 1)',\n color2: 'hsla(353.4, 34%, 42.2%, 1)',\n color3: 'hsla(29, 100%, 76.1%, 1)',\n proportion: 0.5,\n softness: 1,\n distortion: 0.09,\n swirl: 0.9,\n swirlIterations: 6,\n shapeScale: 0.25,\n shape: PatternShapes.Checks,\n },\n};\n\nexport const presetPhantom: WarpPreset = {\n name: 'Phantom',\n params: {\n scale: 0.68,\n rotation: 1.8,\n speed: 1.25,\n seed: 0,\n color1: 'hsla(242.2, 44.3%, 12%, 1)',\n color2: 'hsla(236.1, 80.4%, 70%, 1)',\n color3: 'hsla(0, 0%, 100%, 1)',\n proportion: 0.45,\n softness: 1,\n distortion: 0.16,\n swirl: 0.3,\n swirlIterations: 7,\n shapeScale: 0.1,\n shape: PatternShapes.Checks,\n },\n};\n\nexport const presetAbyss: WarpPreset = {\n name: 'The Abyss',\n params: {\n scale: 0.1,\n rotation: 2,\n speed: 0.06,\n seed: 0,\n color1: 'hsla(242.2, 44.3%, 12%, 1)',\n color2: 'hsla(236.1, 80.4%, 70%, 1)',\n color3: 'hsla(0, 0%, 100%, 1)',\n proportion: 0,\n softness: 1,\n distortion: 0.09,\n swirl: 0.48,\n swirlIterations: 4,\n shapeScale: 0.1,\n shape: PatternShapes.Edge,\n },\n};\n\nexport const presetInk: WarpPreset = {\n name: 'Live Ink',\n params: {\n scale: 2,\n rotation: 1.5,\n speed: 0.25,\n seed: 0,\n color1: 'hsla(210, 11.1%, 7.1%, 1)',\n color2: 'hsla(165, 9%, 65.1%, 1)',\n color3: 'hsla(84, 100%, 97.1%, 1)',\n proportion: 0.35,\n softness: 0.3,\n distortion: 0.25,\n swirl: 0.8,\n swirlIterations: 10,\n shapeScale: 0.26,\n shape: PatternShapes.Checks,\n },\n};\n\nexport const presetIceberg: WarpPreset = {\n name: 'Iceberg',\n params: {\n scale: 1.1,\n rotation: 2,\n speed: 0.05,\n seed: 0,\n color1: 'hsla(0, 0%, 100%, 1)',\n color2: 'hsla(220, 38.7%, 32%, 1)',\n color3: 'hsla(129.2, 41.9%, 6.1%, 1)',\n proportion: 0.3,\n softness: 1,\n distortion: 0.2,\n swirl: 0.86,\n swirlIterations: 7,\n shapeScale: 0,\n shape: PatternShapes.Checks,\n },\n};\n\nexport const presetNectar: WarpPreset = {\n name: 'Nectar',\n params: {\n scale: 0.24,\n rotation: 0,\n speed: 0.42,\n seed: 0,\n color1: 'hsla(37.5, 22.2%, 7.1%, 1)',\n color2: 'hsla(38.5, 59.1%, 63.1%, 1)',\n color3: 'hsla(37.6, 30%, 95.2%, 1)',\n proportion: 0.24,\n softness: 1,\n distortion: 0.21,\n swirl: 0.57,\n swirlIterations: 10,\n shapeScale: 0.32,\n shape: PatternShapes.Edge,\n },\n};\n\nexport const presetFilteredLight: WarpPreset = {\n name: 'Filtered Light',\n params: {\n scale: 2,\n rotation: 0.44,\n speed: 0.32,\n seed: 0,\n color1: 'hsla(60.2, 7.8%, 8.3%, 1)',\n color2: 'hsla(64.4, 27.8%, 81%, 1)',\n color3: 'hsla(60, 100%, 93.9%, 1)',\n proportion: 0.25,\n softness: 1,\n distortion: 0.06,\n swirl: 0,\n swirlIterations: 0,\n shapeScale: 0,\n shape: PatternShapes.Stripes\n },\n};\n\nexport const presetKelp: WarpPreset = {\n name: 'Kelp',\n params: {\n scale: 0.38,\n rotation: 0.6,\n speed: 2,\n seed: 0,\n color1: 'hsla(79.3, 100%, 78%, 1)',\n color2: 'hsla(112, 10.5%, 28%, 1)',\n color3: 'hsla(203.3, 50%, 7.1%, 1)',\n proportion: 1,\n softness: 0,\n distortion: 0,\n swirl: 0.15,\n swirlIterations: 0,\n shapeScale: 0.74,\n shape: PatternShapes.Stripes\n },\n};\n\n\n\nexport const warpPresets: WarpPreset[] = [\n defaultPreset,\n presetAbyss,\n presetCauldron,\n presetFilteredLight,\n presetIceberg,\n presetInk,\n presetKelp,\n presetNectar,\n presetPassion,\n presetPhantom,\n presetSilk,\n];\n\nexport const Warp = (props: WarpProps): JSX.Element => {\n const uniforms: WarpUniforms = 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_color3: getShaderColorFromString(props.color3, defaultPreset.params.color2),\n u_proportion: props.proportion ?? defaultPreset.params.proportion,\n u_softness: props.softness ?? defaultPreset.params.softness,\n u_distortion: props.distortion ?? defaultPreset.params.distortion,\n u_swirl: props.swirl ?? defaultPreset.params.swirl,\n u_swirlIterations: props.swirlIterations ?? defaultPreset.params.swirlIterations,\n u_shapeScale: props.shapeScale ?? defaultPreset.params.shapeScale,\n u_shape: props.shape ?? defaultPreset.params.shape,\n };\n }, [\n props.scale,\n props.rotation,\n props.color1,\n props.color2,\n props.color3,\n props.proportion,\n props.softness,\n props.distortion,\n props.swirl,\n props.swirlIterations,\n props.shapeScale,\n props.shape,\n ]);\n\n return <ShaderMount {...props} fragmentShader={warpFragmentShader} 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", "useMemo", "getShaderColorFromString", "warpFragmentShader", "PatternShapes", "jsx", "defaultPreset", "presetCauldron", "presetSilk", "presetPassion", "presetPhantom", "presetAbyss", "presetInk", "presetIceberg", "presetNectar", "presetFilteredLight", "presetKelp", "warpPresets", "Warp", "props", "uniforms", "useMemo", "ShaderMount", "PatternShapes", "getShaderColorFromString"]
|
|
7
7
|
}
|
package/dist/shader-mount.d.ts
CHANGED
|
@@ -6,7 +6,8 @@ export interface ShaderMountProps {
|
|
|
6
6
|
uniforms?: Record<string, number | number[]>;
|
|
7
7
|
webGlContextAttributes?: WebGLContextAttributes;
|
|
8
8
|
speed?: number;
|
|
9
|
+
seed?: number;
|
|
9
10
|
}
|
|
10
11
|
/** Params that every shader can set as part of their controls */
|
|
11
|
-
export type GlobalParams = Pick<ShaderMountProps, 'speed'>;
|
|
12
|
+
export type GlobalParams = Pick<ShaderMountProps, 'speed' | 'seed'>;
|
|
12
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 {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
|
|
2
2
|
export type GrainCloudsParams = {
|
|
3
|
+
scale?: number;
|
|
3
4
|
color1?: string;
|
|
4
5
|
color2?: string;
|
|
5
|
-
scale?: number;
|
|
6
6
|
grainAmount?: number;
|
|
7
7
|
} & GlobalParams;
|
|
8
8
|
export type GrainCloudsProps = Omit<ShaderMountProps, 'fragmentShader'> & GrainCloudsParams;
|
|
@@ -12,6 +12,7 @@ type MeshGradientPreset = {
|
|
|
12
12
|
};
|
|
13
13
|
export declare const defaultPreset: MeshGradientPreset;
|
|
14
14
|
export declare const beachPreset: MeshGradientPreset;
|
|
15
|
+
export declare const fadedPreset: MeshGradientPreset;
|
|
15
16
|
export declare const meshGradientPresets: MeshGradientPreset[];
|
|
16
17
|
export declare const MeshGradient: (props: MeshGradientProps) => JSX.Element;
|
|
17
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,8 +1,8 @@
|
|
|
1
1
|
import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
|
|
2
2
|
export type NeuroNoiseParams = {
|
|
3
|
+
scale?: number;
|
|
3
4
|
colorFront?: string;
|
|
4
5
|
colorBack?: string;
|
|
5
|
-
scale?: number;
|
|
6
6
|
brightness?: number;
|
|
7
7
|
} & GlobalParams;
|
|
8
8
|
export type NeuroNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & NeuroNoiseParams;
|
|
@@ -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 {};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
|
|
2
2
|
export type SmokeRingParams = {
|
|
3
3
|
colorBack?: string;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
colorInner?: string;
|
|
5
|
+
colorOuter?: string;
|
|
6
|
+
scale?: number;
|
|
6
7
|
noiseScale?: number;
|
|
7
8
|
thickness?: number;
|
|
8
9
|
} & GlobalParams;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
|
|
2
2
|
export type SteppedSimplexNoiseParams = {
|
|
3
|
+
scale?: number;
|
|
3
4
|
color1?: string;
|
|
4
5
|
color2?: string;
|
|
5
6
|
color3?: string;
|
|
6
7
|
color4?: string;
|
|
7
8
|
color5?: string;
|
|
8
|
-
scale?: number;
|
|
9
9
|
stepsNumber?: number;
|
|
10
10
|
} & GlobalParams;
|
|
11
11
|
export type SteppedSimplexNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & SteppedSimplexNoiseParams;
|
|
@@ -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,35 @@
|
|
|
1
|
+
import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
|
|
2
|
+
import { type PatternShape } from '@paper-design/shaders';
|
|
3
|
+
export type WarpParams = {
|
|
4
|
+
scale?: number;
|
|
5
|
+
rotation?: number;
|
|
6
|
+
color1?: string;
|
|
7
|
+
color2?: string;
|
|
8
|
+
color3?: string;
|
|
9
|
+
proportion?: number;
|
|
10
|
+
softness?: number;
|
|
11
|
+
distortion?: number;
|
|
12
|
+
swirl?: number;
|
|
13
|
+
swirlIterations?: number;
|
|
14
|
+
shapeScale?: number;
|
|
15
|
+
shape?: PatternShape;
|
|
16
|
+
} & GlobalParams;
|
|
17
|
+
export type WarpProps = Omit<ShaderMountProps, 'fragmentShader'> & WarpParams;
|
|
18
|
+
type WarpPreset = {
|
|
19
|
+
name: string;
|
|
20
|
+
params: Required<WarpParams>;
|
|
21
|
+
};
|
|
22
|
+
export declare const defaultPreset: WarpPreset;
|
|
23
|
+
export declare const presetCauldron: WarpPreset;
|
|
24
|
+
export declare const presetSilk: WarpPreset;
|
|
25
|
+
export declare const presetPassion: WarpPreset;
|
|
26
|
+
export declare const presetPhantom: WarpPreset;
|
|
27
|
+
export declare const presetAbyss: WarpPreset;
|
|
28
|
+
export declare const presetInk: WarpPreset;
|
|
29
|
+
export declare const presetIceberg: WarpPreset;
|
|
30
|
+
export declare const presetNectar: WarpPreset;
|
|
31
|
+
export declare const presetFilteredLight: WarpPreset;
|
|
32
|
+
export declare const presetKelp: WarpPreset;
|
|
33
|
+
export declare const warpPresets: WarpPreset[];
|
|
34
|
+
export declare const Warp: (props: WarpProps) => JSX.Element;
|
|
35
|
+
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.
|
|
3
|
+
"version": "0.0.19",
|
|
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.
|
|
26
|
+
"@paper-design/shaders": "0.0.17",
|
|
27
27
|
"react": ">=18"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
|
|
2
2
|
export type DotsOrbitParams = {
|
|
3
|
+
scale?: number;
|
|
3
4
|
color1?: string;
|
|
4
5
|
color2?: string;
|
|
5
6
|
color3?: string;
|
|
6
7
|
color4?: string;
|
|
7
8
|
dotSize?: number;
|
|
8
9
|
dotSizeRange?: number;
|
|
9
|
-
scale?: number;
|
|
10
10
|
spreading?: number;
|
|
11
11
|
} & GlobalParams;
|
|
12
12
|
export type DotsOrbitProps = Omit<ShaderMountProps, 'fragmentShader'> & DotsOrbitParams;
|