@paper-design/shaders-react 0.0.27 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,1902 @@
1
1
  /***** Paper Shaders: https://github.com/paper-design/shaders *****/
2
- import{useEffect as U,useRef as E,forwardRef as H}from"react";import{ShaderMount as $}from"@paper-design/shaders";import*as G from"react";function V(s){let o=G.useRef(void 0),a=G.useCallback(r=>{let n=s.map(e=>{if(e!=null){if(typeof e=="function"){let t=e,l=t(r);return typeof l=="function"?l:()=>{t(null)}}return e.current=r,()=>{e.current=null}}});return()=>{n.forEach(e=>e?.())}},s);return G.useMemo(()=>s.every(r=>r==null)?null:r=>{o.current&&(o.current(),o.current=void 0),r!=null&&(o.current=a(r))},s)}import{jsx as K}from"react/jsx-runtime";var X=s=>{let o={},a=[],r=e=>{try{return e.startsWith("/")||new URL(e),!0}catch{return!1}},n=e=>{try{return e.startsWith("/")?!1:new URL(e,window.location.origin).origin!==window.location.origin}catch{return!1}};return Object.entries(s).forEach(([e,t])=>{if(typeof t=="string"){if(!r(t)){console.warn(`Uniform "${e}" has invalid URL "${t}". Skipping image loading.`);return}let l=new Promise((m,c)=>{let i=new Image;n(t)&&(i.crossOrigin="anonymous"),i.onload=()=>{o[e]=i,m()},i.onerror=()=>{console.error(`Could not set uniforms. Failed to load image at ${t}`),c()},i.src=t});a.push(l)}else o[e]=t}),Promise.all(a).then(()=>o)},p=H(function({shaderMountRef:o,fragmentShader:a,uniforms:r={},webGlContextAttributes:n,speed:e=1,frame:t=0,...l},m){let c=E(null),i=E(null);return U(()=>((async()=>{let P=await X(r);c.current&&!i.current&&(i.current=new $(c.current,a,P,n,e,t),o&&(o.current=i.current))})(),()=>{i.current?.dispose(),i.current=null}),[a,n]),U(()=>{(async()=>{let P=await X(r);i.current?.setUniforms(P)})()},[r]),U(()=>{i.current?.setSpeed(e)},[e]),U(()=>{i.current?.setFrame(t)},[t]),K("div",{ref:V([c,m]),...l})});p.displayName="ShaderMount";import{useMemo as Z}from"react";import{getShaderColorFromString as z,meshGradientFragmentShader as J}from"@paper-design/shaders";import{jsx as oe}from"react/jsx-runtime";var D={name:"Default",params:{speed:.15,frame: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)"}},Q={name:"Beach",params:{speed:.1,frame: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)"}},j={name:"Faded",params:{speed:-.3,frame: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)"}},ee=[D,Q,j],re=({color1:s,color2:o,color3:a,color4:r,...n})=>{let e=Z(()=>({u_color1:z(s,D.params.color1),u_color2:z(o,D.params.color2),u_color3:z(a,D.params.color3),u_color4:z(r,D.params.color4)}),[s,o,a,r]);return oe(p,{...n,fragmentShader:J,uniforms:e})};import{}from"@paper-design/shaders";import{useMemo as se}from"react";import{getShaderColorFromString as Y,smokeRingFragmentShader as ae}from"@paper-design/shaders";import{jsx as ce}from"react/jsx-runtime";var C={name:"Default",params:{scale:1,speed:.5,frame:0,colorInner:"hsla(0, 0%, 100%, 1)",colorOuter:"hsla(38, 4%, 38%, 1)",noiseScale:1,thickness:.5}},te={name:"Cloud",params:{scale:1,speed:1,frame:0,colorInner:"hsla(0, 0%, 100%, 1)",colorOuter:"hsla(0, 0%, 100%, 1)",noiseScale:1.8,thickness:.7},style:{background:"hsla(218, 100%, 62%, 1)"}},ne={name:"Fire",params:{scale:1,speed:4,frame:0,colorInner:"hsla(40, 100%, 50%, 1)",colorOuter:"hsla(0, 100%, 50%, 1)",noiseScale:1.4,thickness:.35},style:{background:"hsla(20, 100%, 5%, 1)"}},le={name:"Electric",params:{scale:1,speed:-2.5,frame:0,colorInner:"hsla(47, 100%, 64%, 1)",colorOuter:"hsla(47, 100%, 64%, 1)",noiseScale:1.8,thickness:.1},style:{background:"hsla(47, 50%, 7%, 1)"}},ie={name:"Poison",params:{scale:1,speed:3,frame:0,colorInner:"hsla(120, 100%, 3%, 1)",colorOuter:"hsla(120, 100%, 66%, 1)",noiseScale:5,thickness:.6},style:{background:"hsla(120, 100%, 3%, 1)"}},pe=[C,te,ne,le,ie],me=({scale:s,colorInner:o,colorOuter:a,noiseScale:r,thickness:n,...e})=>{let t=se(()=>({u_scale:s??C.params.scale,u_colorInner:Y(o,C.params.colorInner),u_colorOuter:Y(a,C.params.colorOuter),u_noiseScale:r??C.params.noiseScale,u_thickness:n??C.params.thickness}),[s,o,a,r,n]);return ce(p,{...e,fragmentShader:ae,uniforms:t})};import{}from"@paper-design/shaders";import{useMemo as de}from"react";import{getShaderColorFromString as T,neuroNoiseFragmentShader as ue}from"@paper-design/shaders";import{jsx as Se}from"react/jsx-runtime";var W={name:"Default",params:{scale:1,speed:1,frame:0,colorFront:"hsla(261, 100%, 82%, 1)",colorBack:"hsla(0, 0%, 0%, 1)",brightness:1.3}},fe={name:"Marble",params:{scale:.4,speed:0,frame:0,colorFront:"hsla(230, 24%, 15%, 1)",colorBack:"hsla(0, 0%, 97%, 1)",brightness:1.1}},he=[W,fe],Pe=({scale:s,colorFront:o,colorBack:a,brightness:r,...n})=>{let e=de(()=>({u_scale:s??W.params.scale,u_colorFront:T(o,W.params.colorFront),u_colorBack:T(a,W.params.colorBack),u_brightness:r??W.params.brightness}),[s,o,a,r]);return Se(p,{...n,fragmentShader:ue,uniforms:e})};import{}from"@paper-design/shaders";import{useMemo as ge}from"react";import{getShaderColorFromString as F,dotOrbitFragmentShader as ye}from"@paper-design/shaders";import{jsx as Re}from"react/jsx-runtime";var x={name:"Default",params:{scale:1,speed:2,frame: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}},be=[x],xe=({scale:s,color1:o,color2:a,color3:r,color4:n,dotSize:e,dotSizeRange:t,spreading:l,...m})=>{let c=ge(()=>({u_scale:s??x.params.scale,u_color1:F(o,x.params.color1),u_color2:F(a,x.params.color2),u_color3:F(r,x.params.color3),u_color4:F(n,x.params.color4),u_dotSize:e??x.params.dotSize,u_dotSizeRange:t??x.params.dotSizeRange,u_spreading:l??x.params.spreading}),[s,o,a,r,n,e,t,l]);return Re(p,{...m,fragmentShader:ye,uniforms:c})};import{}from"@paper-design/shaders";import{useMemo as Me}from"react";import{dotGridFragmentShader as ke,getShaderColorFromString as B,DotGridShapes as R}from"@paper-design/shaders";import{jsx as ve}from"react/jsx-runtime";var y={name:"Default",params:{colorFill:"hsla(0, 0%, 0%, 1)",colorStroke:"hsla(40, 100%, 50%, 1)",dotSize:2,gridSpacingX:50,gridSpacingY:50,strokeWidth:0,sizeRange:0,opacityRange:0,shape:R.Circle}},_e={name:"Macrodata",params:{colorFill:"hsla(218, 100%, 67%, 1)",colorStroke:"hsla(0, 0%, 0%, 1)",dotSize:3,gridSpacingX:25,gridSpacingY:25,strokeWidth:0,sizeRange:.25,opacityRange:.9,shape:R.Circle},style:{background:"hsla(211, 37%, 13%, 1)"}},Ge={name:"Triangles",params:{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:R.Triangle},style:{background:"hsla(0, 0%, 100%, 1)"}},Ce={name:"Bubbles",params:{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:R.Circle},style:{background:"hsla(234, 100%, 31%, .5)"}},Ne={name:"Tree line",params:{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:R.Circle},style:{background:"hsla(100, 100%, 36%, .05)"}},De={name:"Diamonds",params:{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:R.Diamond},style:{background:"hsla(0, 0%, 0%, 0)"}},We={name:"Wallpaper",params:{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:R.Diamond},style:{background:"hsla(154, 33%, 19%, 1)"}},we={name:"Enter the Matrix",params:{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:R.Triangle},style:{background:"hsla(0, 100%, 0%, 1)"}},Ue={name:"Waveform",params:{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:R.Square},style:{background:"hsla(0, 100%, 100%, 1)"}},ze=[y,_e,Ge,Ce,Ne,De,We,we,Ue],Fe=({colorFill:s,colorStroke:o,dotSize:a,gridSpacingX:r,gridSpacingY:n,strokeWidth:e,sizeRange:t,opacityRange:l,shape:m,...c})=>{let i=Me(()=>({u_colorFill:B(s,y.params.colorStroke),u_colorStroke:B(o,y.params.colorStroke),u_dotSize:a??y.params.dotSize,u_gridSpacingX:r??y.params.gridSpacingX,u_gridSpacingY:n??y.params.gridSpacingY,u_strokeWidth:e??y.params.strokeWidth,u_sizeRange:t??y.params.sizeRange,u_opacityRange:l??y.params.opacityRange,u_shape:m??y.params.shape}),[s,o,a,r,n,e,t,l,m]);return ve(p,{...c,fragmentShader:ke,uniforms:i})};import{DotGridShapes as Js}from"@paper-design/shaders";import{useMemo as Oe}from"react";import{getShaderColorFromString as w,steppedSimplexNoiseFragmentShader as Ie}from"@paper-design/shaders";import{jsx as Te}from"react/jsx-runtime";var M={name:"Default",params:{scale:1,speed:.15,frame: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}},qe={name:"Magma",params:{scale:.3,speed:.2,frame:0,color1:"hsla(0, 100%, 36%, 1)",color2:"hsla(0, 95%, 44%, 1)",color3:"hsla(20, 100%, 49%, 1)",color4:"hsla(45, 100%, 45%, 1)",color5:"hsla(31, 100%, 94%, 1)",stepsNumber:8}},Ve={name:"Blood cell",params:{scale:1.2,speed:.22,frame: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}},Ee={name:"First contact",params:{scale:1.2,speed:-.1,frame: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}},Xe=[M,qe,Ve,Ee],Ye=({scale:s,color1:o,color2:a,color3:r,color4:n,color5:e,stepsNumber:t,...l})=>{let m=Oe(()=>({u_scale:s??M.params.scale,u_color1:w(o,M.params.color1),u_color2:w(a,M.params.color2),u_color3:w(r,M.params.color3),u_color4:w(n,M.params.color4),u_color5:w(e,M.params.color5),u_steps_number:t??M.params.stepsNumber}),[s,o,a,r,n,e,t]);return Te(p,{...l,fragmentShader:Ie,uniforms:m})};import{}from"@paper-design/shaders";import{useMemo as Be}from"react";import{getShaderColorFromString as I,metaballsFragmentShader as Le}from"@paper-design/shaders";import{jsx as $e}from"react/jsx-runtime";var _={name:"Default",params:{scale:1,speed:.6,frame:0,color1:"hsla(350, 90%, 55%, 1)",color2:"hsla(350, 80%, 60%, 1)",color3:"hsla(20, 85%, 70%, 1)",ballSize:1,visibilityRange:.4}},Ae=[_],He=({scale:s,color1:o,color2:a,color3:r,ballSize:n,visibilityRange:e,...t})=>{let l=Be(()=>({u_scale:s??_.params.scale,u_color1:I(o,_.params.color1),u_color2:I(a,_.params.color2),u_color3:I(r,_.params.color3),u_ballSize:n??_.params.ballSize,u_visibilityRange:e??_.params.visibilityRange}),[s,o,a,r,n,e]);return $e(p,{...t,fragmentShader:Le,uniforms:l})};import{}from"@paper-design/shaders";import{useMemo as Ke}from"react";import{getShaderColorFromString as Ze,wavesFragmentShader as Je}from"@paper-design/shaders";import{jsx as tr}from"react/jsx-runtime";var b={name:"Default",params:{scale:1,rotation:0,color:"hsla(204, 47%, 45%, 1)",shape:1,frequency:.5,amplitude:.5,spacing:.75,dutyCycle:.2,softness:0}},Qe={name:"Spikes",params:{scale:2.3,rotation:0,color:"hsla(290, 52%, 15%, 1)",shape:0,frequency:.5,amplitude:.9,spacing:.37,dutyCycle:.93,softness:.15},style:{background:"hsla(65, 100%, 95%, 1)"}},je={name:"Groovy",params:{scale:.5,rotation:1,color:"hsla(20, 100%, 71%, 1)",shape:2.37,frequency:.2,amplitude:.67,spacing:1.17,dutyCycle:.57,softness:0},style:{background:"hsla(60, 100%, 97%, 1)"}},er={name:"Tangled up",params:{scale:3.04,rotation:1,color:"hsla(85.5, 35.7%, 78%, 1)",shape:3,frequency:.44,amplitude:.57,spacing:1.05,dutyCycle:.97,softness:0},style:{background:"hsla(198.7, 66.7%, 14.1%, 1)"}},rr={name:"Zig zag",params:{scale:2.7,rotation:1,color:"hsla(0, 0%, 90%, 1)",shape:0,frequency:.6,amplitude:.8,spacing:.5,dutyCycle:1,softness:.5},style:{background:"hsla(0, 0%, 0%, 1)"}},or={name:"Ride the wave",params:{scale:.84,rotation:0,color:"hsla(0, 0%, 12%, 1)",shape:2.23,frequency:.1,amplitude:.6,spacing:.41,dutyCycle:.99,softness:0},style:{background:"hsla(65, 100%, 95%, 1)"}},sr=[b,Qe,je,er,rr,or],ar=({scale:s,rotation:o,color:a,shape:r,frequency:n,amplitude:e,spacing:t,dutyCycle:l,softness:m,...c})=>{let i=Ke(()=>({u_scale:s??b.params.scale,u_rotation:o??b.params.rotation,u_color:Ze(a,b.params.color),u_shape:r??b.params.shape,u_frequency:n??b.params.frequency,u_amplitude:e??b.params.amplitude,u_spacing:t??b.params.spacing,u_dutyCycle:l??b.params.dutyCycle,u_softness:m??b.params.softness}),[s,o,a,r,n,e,t,l,m]);return tr(p,{...c,fragmentShader:Je,uniforms:i})};import{}from"@paper-design/shaders";import{useMemo as nr}from"react";import{getShaderColorFromString as lr,perlinNoiseFragmentShader as ir}from"@paper-design/shaders";import{jsx as Pr}from"react/jsx-runtime";var k={name:"Default",params:{scale:1,speed:.5,frame:0,color:"hsla(0, 0%, 15%, 1)",proportion:.65,softness:.1,octaveCount:2,persistence:1,lacunarity:1.5}},pr={name:"Nintendo Water",params:{scale:.2,speed:.4,frame:0,color:"hsla(200, 66%, 90%, 1)",proportion:.42,softness:0,octaveCount:2,persistence:.55,lacunarity:1.8},style:{background:"hsla(220, 66%, 50%, 1)"}},mr={name:"Colony",params:{scale:.15,speed:0,frame:0,color:"hsla(230, 80%, 20%, 1)",octaveCount:6,persistence:1,lacunarity:2.55,proportion:.65,softness:.35},style:{background:"hsla(56, 86%, 81%, 1)"}},cr={name:"Phosphenes",params:{scale:.03,speed:.15,frame:0,color:"hsla(150, 50%, 60%, 1)",proportion:.45,softness:.45,octaveCount:6,persistence:.3,lacunarity:3},style:{background:"hsla(350, 80%, 70%, 1)"}},dr={name:"Moss",params:{scale:.15,speed:.02,frame:0,color:"hsla(0, 0%, 15%, 1)",proportion:.65,softness:.35,octaveCount:6,persistence:1,lacunarity:2.55},style:{background:"hsla(137, 100%, 51%, 1)"}},ur={name:"Worms",params:{scale:2,speed:0,frame:0,color:"hsla(0, 0%, 35%, 1)",proportion:.5,softness:0,octaveCount:1,persistence:1,lacunarity:1.5},style:{background:"hsla(0, 100%, 100%, 1)"}},fr=[k,pr,mr,cr,dr,ur],hr=({scale:s,color:o,proportion:a,softness:r,octaveCount:n,persistence:e,lacunarity:t,...l})=>{let m=nr(()=>({u_scale:s??k.params.scale,u_color:lr(o,k.params.color),u_proportion:a??k.params.proportion,u_softness:r??k.params.softness,u_octaveCount:n??k.params.octaveCount,u_persistence:e??k.params.persistence,u_lacunarity:t??k.params.lacunarity}),[s,o,a,r,n,e,t]);return Pr(p,{...l,fragmentShader:ir,uniforms:m})};import{}from"@paper-design/shaders";import{useMemo as Sr}from"react";import{getShaderColorFromString as v,voronoiFragmentShader as gr}from"@paper-design/shaders";import{jsx as Nr}from"react/jsx-runtime";var S={name:"Default",params:{scale:1.5,speed:.5,frame:0,colorCell1:"hsla(15, 80%, 50%, 1)",colorCell2:"hsla(180, 80%, 50%, 1)",colorCell3:"hsla(200, 80%, 50%, 1)",colorMid:"hsla(0, 0%, 0%, 1)",colorGradient:.5,distance:.25,edgesSize:.15,edgesSoftness:.01,middleSize:0,middleSoftness:0}},yr={name:"Classic",params:{scale:3,speed:.8,frame:0,colorCell1:"hsla(0, 100%, 100%, 1)",colorCell2:"hsla(0, 0%, 100%, 1)",colorCell3:"hsla(0, 100%, 0%, 1)",colorMid:"hsla(0, 0%, 0%, 1)",colorGradient:1,distance:.45,edgesSize:.02,edgesSoftness:.07,middleSize:0,middleSoftness:0}},br={name:"Giraffe",params:{scale:1,speed:.6,frame:0,colorCell1:"hsla(32, 100%, 18%, 1)",colorCell2:"hsla(42, 93%, 35%, 1)",colorCell3:"hsla(32, 100%, 18%, 1)",colorMid:"hsla(0, 0%, 0%, 1)",colorGradient:1,distance:.25,edgesSize:.2,edgesSoftness:.01,middleSize:0,middleSoftness:0}},xr={name:"Eyes",params:{scale:1.6,speed:.6,frame: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)",colorGradient:1,distance:.25,edgesSize:.62,edgesSoftness:.01,middleSize:.1,middleSoftness:0}},Rr={name:"Bubbles",params:{scale:2,speed:.5,frame: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)",colorGradient:1,distance:.5,edgesSize:.81,edgesSoftness:0,middleSize:0,middleSoftness:0}},Mr={name:"Cells",params:{scale:2,speed:1,frame: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)",colorGradient:1,distance:.38,edgesSize:.1,edgesSoftness:.02,middleSize:0,middleSoftness:0}},kr={name:"Glow",params:{scale:1.2,speed:.8,frame:0,colorCell1:"hsla(40, 100%, 50%, 1)",colorCell2:"hsla(311, 100%, 59%, 1)",colorCell3:"hsla(180, 100%, 65%, 1)",colorMid:"hsla(0, 0%, 100%, 1)",colorGradient:1,distance:.25,edgesSize:.15,edgesSoftness:.01,middleSize:.7,middleSoftness:1}},_r={name:"Tiles",params:{scale:1.3,speed:1,frame: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)",colorGradient:0,distance:.05,edgesSize:.25,edgesSoftness:.02,middleSize:0,middleSoftness:0}},Gr=[S,yr,br,xr,Rr,Mr,kr,_r],Cr=({scale:s,colorCell1:o,colorCell2:a,colorCell3:r,colorMid:n,colorGradient:e,distance:t,edgesSize:l,edgesSoftness:m,middleSize:c,middleSoftness:i,...h})=>{let P=Sr(()=>({u_scale:s??S.params.scale,u_colorCell1:v(o,S.params.colorCell1),u_colorCell2:v(a,S.params.colorCell2),u_colorCell3:v(r,S.params.colorCell3),u_colorMid:v(n,S.params.colorMid),u_colorGradient:e??S.params.colorGradient,u_distance:t??S.params.distance,u_edgesSize:l??S.params.edgesSize,u_edgesSoftness:m??S.params.edgesSoftness,u_middleSize:c??S.params.middleSize,u_middleSoftness:i??S.params.middleSoftness}),[s,o,r,a,n,e,t,l,m,c,i]);return Nr(p,{...h,fragmentShader:gr,uniforms:P})};import{}from"@paper-design/shaders";import{useMemo as Dr}from"react";import{getShaderColorFromString as q,warpFragmentShader as Wr,PatternShapes as g}from"@paper-design/shaders";import{jsx as Tr}from"react/jsx-runtime";var u={name:"Default",params:{scale:1,rotation:0,speed:.1,frame: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:g.Checks}},wr={name:"Cauldron Pot",params:{scale:1.1,rotation:1.62,speed:1,frame: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:g.Edge}},Ur={name:"Silk",params:{scale:.26,rotation:0,speed:.5,frame: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:g.Stripes}},zr={name:"Passion",params:{scale:.25,rotation:1.35,speed:.3,frame: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:g.Checks}},Fr={name:"Phantom",params:{scale:.68,rotation:1.8,speed:1.25,frame: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:g.Checks}},vr={name:"The Abyss",params:{scale:.1,rotation:2,speed:.06,frame: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:g.Edge}},Or={name:"Live Ink",params:{scale:.7,rotation:1.5,speed:.25,frame: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:0,distortion:.25,swirl:.8,swirlIterations:10,shapeScale:.26,shape:g.Checks}},Ir={name:"Iceberg",params:{scale:1.1,rotation:2,speed:.05,frame: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:g.Checks}},qr={name:"Nectar",params:{scale:.24,rotation:0,speed:.42,frame: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:g.Edge}},Vr={name:"Filtered Light",params:{scale:2,rotation:.44,speed:.32,frame: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:g.Stripes}},Er={name:"Kelp",params:{scale:.38,rotation:.6,speed:2,frame: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:g.Stripes}},Xr=[u,vr,wr,Vr,Ir,Or,Er,qr,zr,Fr,Ur],Yr=({scale:s,rotation:o,color1:a,color2:r,color3:n,proportion:e,softness:t,distortion:l,swirl:m,swirlIterations:c,shapeScale:i,shape:h,...P})=>{let N=Dr(()=>({u_scale:s??u.params.scale,u_rotation:o??u.params.rotation,u_color1:q(a,u.params.color1),u_color2:q(r,u.params.color2),u_color3:q(n,u.params.color2),u_proportion:e??u.params.proportion,u_softness:t??u.params.softness,u_distortion:l??u.params.distortion,u_swirl:m??u.params.swirl,u_swirlIterations:c??u.params.swirlIterations,u_shapeScale:i??u.params.shapeScale,u_shape:h??u.params.shape}),[s,o,a,r,n,e,t,l,m,c,i,h]);return Tr(p,{...P,fragmentShader:Wr,uniforms:N})};import{PatternShapes as Ra}from"@paper-design/shaders";import{useMemo as Br}from"react";import{getShaderColorFromString as O,godRaysFragmentShader as Lr}from"@paper-design/shaders";import{jsx as Qr}from"react/jsx-runtime";var f={name:"Default",params:{colorBack:"hsla(215, 100%, 11%, 1)",color1:"hsla(45, 100%, 70%, 1)",color2:"hsla(10, 100%, 80%, 1)",color3:"hsla(178, 100%, 83%, 1)",offsetX:-.6,offsetY:-.6,frequency:6,spotty:.28,midIntensity:.97,midSize:2,density:.3,blending:0,speed:1,frame:0}},Ar={name:"Aurora",params:{colorBack:"hsla(0, 0%, 25%, 1)",color1:"hsla(239, 100%, 70%, 1)",color2:"hsla(150, 100%, 70%, 1)",color3:"hsla(200, 100%, 70%, 1)",offsetX:0,offsetY:1,frequency:2.4,spotty:.9,midIntensity:.8,midSize:2.1,density:.5,blending:1,speed:.5,frame:0}},Hr={name:"Warp",params:{colorBack:"hsla(0, 0%, 0%, 1)",color1:"hsla(317, 100%, 50%, 1)",color2:"hsla(25, 100%, 50%, 1)",color3:"hsla(0, 0%, 100%, 1)",offsetX:0,offsetY:0,frequency:1.2,spotty:.15,midIntensity:0,midSize:0,density:.79,blending:.4,speed:2,frame:0}},$r={name:"Linear",params:{colorBack:"hsla(0, 0%, 0%, 1)",color1:"hsl(0 0% 100% / 12%)",color2:"hsl(0 0% 100% / 24%)",color3:"hsl(0 0% 100% / 16%)",offsetX:.2,offsetY:-.7,frequency:1.2,spotty:.25,midSize:1.1,midIntensity:.75,density:.79,blending:1,speed:.5,frame:0}},Kr={name:"Ether",params:{colorBack:"hsl(226.7 50% 7.1% / 100%)",color1:"hsl(215 100% 53.9% / 65.1%)",color2:"hsl(214.4 85.9% 86.1% / 74.9%)",color3:"hsl(225 31.4% 20% / 100%)",offsetX:-.6,offsetY:0,frequency:.3,spotty:.77,midSize:1.1,midIntensity:.5,density:.6,blending:.6,speed:1,frame:0}},Zr=[f,Ar,Hr,$r,Kr],Jr=({colorBack:s,color1:o,color2:a,color3:r,offsetX:n,offsetY:e,frequency:t,spotty:l,midIntensity:m,midSize:c,density:i,blending:h,...P})=>{let N=Br(()=>({u_colorBack:O(s,f.params.colorBack),u_color1:O(o,f.params.color1),u_color2:O(a,f.params.color2),u_color3:O(r,f.params.color3),u_offsetX:n??f.params.offsetX,u_offsetY:e??f.params.offsetY,u_frequency:t??f.params.frequency,u_spotty:l??f.params.spotty,u_midIntensity:m??f.params.midIntensity,u_midSize:c??f.params.midSize,u_density:i??f.params.density,u_blending:h??f.params.blending}),[s,o,a,r,n,e,t,l,m,c,i,h]);return Qr(p,{...P,fragmentShader:Lr,uniforms:N})};import{}from"@paper-design/shaders";import{useMemo as jr}from"react";import{getShaderColorFromString as L,spiralFragmentShader as eo}from"@paper-design/shaders";import{jsx as po}from"react/jsx-runtime";var d={name:"Default",params:{color1:"hsla(0, 0%, 98%, 1)",color2:"hsla(0, 0%, 50%, 1)",scale:1,offsetX:0,offsetY:0,spiralDensity:0,spiralDistortion:0,strokeWidth:.5,strokeTaper:0,strokeCap:0,noiseFreq:0,noisePower:0,softness:.01,speed:1,frame:0}},ro={name:"Noisy",params:{color1:"hsla(87, 77%, 53%, 1)",color2:"hsla(109, 70%, 31%, 1)",scale:1.3,offsetX:0,offsetY:0,spiralDensity:.5,spiralDistortion:0,strokeWidth:.5,strokeTaper:0,strokeCap:.5,noiseFreq:.1,noisePower:1,softness:0,speed:1,frame:0}},oo={name:"Droplet",params:{color1:"hsla(320, 50%, 50%, 1)",color2:"hsla(190, 50%, 95%, 1)",scale:.65,offsetX:0,offsetY:0,spiralDensity:0,spiralDistortion:0,strokeWidth:.05,strokeTaper:0,strokeCap:1,noiseFreq:0,noisePower:0,softness:0,speed:1,frame:0}},so={name:"Sand",params:{color1:"hsla(45, 25%, 50%, 1)",color2:"hsla(0, 0%, 87%, 1)",scale:3,offsetX:0,offsetY:0,spiralDensity:0,spiralDistortion:0,strokeWidth:.15,strokeTaper:0,strokeCap:0,noiseFreq:30,noisePower:1,softness:.2,speed:0,frame:0}},ao={name:"Swirl",params:{color1:"hsla(160, 50%, 80%, 1)",color2:"hsla(220, 50%, 20%, 1)",scale:4,offsetX:0,offsetY:0,spiralDensity:.8,spiralDistortion:0,strokeWidth:.5,strokeTaper:0,strokeCap:0,noiseFreq:0,noisePower:0,softness:.5,speed:1,frame:0}},to={name:"Hook",params:{color1:"hsla(0, 0%, 0%, 1)",color2:"hsla(200, 50%, 70%, 1)",scale:.8,offsetX:0,offsetY:0,spiralDensity:0,spiralDistortion:0,strokeWidth:.5,strokeTaper:.5,strokeCap:0,noiseFreq:0,noisePower:0,softness:.02,speed:3,frame:0}},no={name:"Vinyl",params:{color1:"hsla(0, 0%, 15%, 1)",color2:"hsla(320, 5%, 75%, 1)",scale:1,offsetX:0,offsetY:0,spiralDensity:0,spiralDistortion:.3,strokeWidth:.95,strokeTaper:0,strokeCap:1,noiseFreq:0,noisePower:0,softness:.11,speed:1,frame:0}},lo=[d,ro,oo,ao,so,to,no],io=({color1:s,color2:o,scale:a,offsetX:r,offsetY:n,spiralDensity:e,spiralDistortion:t,strokeWidth:l,strokeTaper:m,strokeCap:c,noiseFreq:i,noisePower:h,softness:P,...N})=>{let A=jr(()=>({u_color1:L(s,d.params.color1),u_color2:L(o,d.params.color2),u_scale:a??d.params.scale,u_offsetX:r??d.params.offsetX,u_offsetY:n??d.params.offsetY,u_spiralDensity:e??d.params.spiralDensity,u_spiralDistortion:t??d.params.spiralDistortion,u_strokeWidth:l??d.params.strokeWidth,u_strokeTaper:m??d.params.strokeTaper,u_strokeCap:c??d.params.strokeCap,u_noiseFreq:i??d.params.noiseFreq,u_noisePower:h??d.params.noisePower,u_softness:P??d.params.softness}),[s,o,a,r,n,e,t,l,m,c,i,h,P]);return po(p,{...N,fragmentShader:eo,uniforms:A})};import{}from"@paper-design/shaders";import{getShaderColorFromString as Ua}from"@paper-design/shaders";export{Fe as DotGrid,Js as DotGridShapes,xe as DotOrbit,Jr as GodRays,re as MeshGradient,He as Metaballs,Pe as NeuroNoise,Ra as PatternShapes,hr as PerlinNoise,p as ShaderMount,me as SmokeRing,io as Spiral,Ye as SteppedSimplexNoise,Cr as Voronoi,Yr as Warp,ar as Waves,ze as dotGridPresets,be as dotOrbitPresets,Ua as getShaderColorFromString,Zr as godRaysPresets,ee as meshGradientPresets,Ae as metaballsPresets,he as neuroNoisePresets,fr as perlinNoisePresets,pe as smokeRingPresets,lo as spiralPresets,Xe as steppedSimplexNoisePresets,Gr as voronoiPresets,Xr as warpPresets,sr as wavesPresets};
2
+
3
+ // packages/shaders-react/src/shader-mount.tsx
4
+ import { useEffect, useRef as useRef2, forwardRef, useState } from "react";
5
+ import { ShaderMount as ShaderMountVanilla } from "@paper-design/shaders";
6
+
7
+ // packages/shaders-react/src/use-merge-refs.ts
8
+ import * as React from "react";
9
+ function useMergeRefs(refs) {
10
+ const cleanupRef = React.useRef(void 0);
11
+ const refEffect = React.useCallback((instance) => {
12
+ const cleanups = refs.map((ref) => {
13
+ if (ref == null) {
14
+ return;
15
+ }
16
+ if (typeof ref === "function") {
17
+ const refCallback = ref;
18
+ const refCleanup = refCallback(instance);
19
+ return typeof refCleanup === "function" ? refCleanup : () => {
20
+ refCallback(null);
21
+ };
22
+ }
23
+ ref.current = instance;
24
+ return () => {
25
+ ref.current = null;
26
+ };
27
+ });
28
+ return () => {
29
+ cleanups.forEach((refCleanup) => refCleanup?.());
30
+ };
31
+ }, refs);
32
+ return React.useMemo(() => {
33
+ if (refs.every((ref) => ref == null)) {
34
+ return null;
35
+ }
36
+ return (value) => {
37
+ if (cleanupRef.current) {
38
+ cleanupRef.current();
39
+ cleanupRef.current = void 0;
40
+ }
41
+ if (value != null) {
42
+ cleanupRef.current = refEffect(value);
43
+ }
44
+ };
45
+ }, refs);
46
+ }
47
+
48
+ // packages/shaders-react/src/shader-mount.tsx
49
+ import { jsx } from "react/jsx-runtime";
50
+ var processUniforms = (uniforms) => {
51
+ const processedUniforms = {};
52
+ const imageLoadPromises = [];
53
+ const isValidUrl = (url) => {
54
+ try {
55
+ if (url.startsWith("/")) return true;
56
+ new URL(url);
57
+ return true;
58
+ } catch {
59
+ return false;
60
+ }
61
+ };
62
+ const isExternalUrl = (url) => {
63
+ try {
64
+ if (url.startsWith("/")) return false;
65
+ const urlObject = new URL(url, window.location.origin);
66
+ return urlObject.origin !== window.location.origin;
67
+ } catch {
68
+ return false;
69
+ }
70
+ };
71
+ Object.entries(uniforms).forEach(([key, value]) => {
72
+ if (typeof value === "string") {
73
+ if (!isValidUrl(value)) {
74
+ console.warn(`Uniform "${key}" has invalid URL "${value}". Skipping image loading.`);
75
+ return;
76
+ }
77
+ const imagePromise = new Promise((resolve, reject) => {
78
+ const img = new Image();
79
+ if (isExternalUrl(value)) {
80
+ img.crossOrigin = "anonymous";
81
+ }
82
+ img.onload = () => {
83
+ processedUniforms[key] = img;
84
+ resolve();
85
+ };
86
+ img.onerror = () => {
87
+ console.error(`Could not set uniforms. Failed to load image at ${value}`);
88
+ reject();
89
+ };
90
+ img.src = value;
91
+ });
92
+ imageLoadPromises.push(imagePromise);
93
+ } else {
94
+ processedUniforms[key] = value;
95
+ }
96
+ });
97
+ return Promise.all(imageLoadPromises).then(() => processedUniforms);
98
+ };
99
+ var ShaderMount = forwardRef(
100
+ function ShaderMountImpl({
101
+ shaderMountRef: externalShaderMountRef,
102
+ fragmentShader,
103
+ uniforms = {},
104
+ webGlContextAttributes,
105
+ speed = 1,
106
+ frame = 0,
107
+ ...divProps
108
+ }, forwardedRef) {
109
+ const [isInitialized, setIsInitialized] = useState(false);
110
+ const divRef = useRef2(null);
111
+ const shaderMountRef = useRef2(null);
112
+ useEffect(() => {
113
+ const initShader = async () => {
114
+ const processedUniforms = await processUniforms(uniforms);
115
+ if (divRef.current && !shaderMountRef.current) {
116
+ shaderMountRef.current = new ShaderMountVanilla(
117
+ divRef.current,
118
+ fragmentShader,
119
+ processedUniforms,
120
+ webGlContextAttributes,
121
+ speed,
122
+ frame
123
+ );
124
+ if (externalShaderMountRef) {
125
+ externalShaderMountRef.current = shaderMountRef.current;
126
+ }
127
+ setIsInitialized(true);
128
+ }
129
+ };
130
+ initShader();
131
+ return () => {
132
+ shaderMountRef.current?.dispose();
133
+ shaderMountRef.current = null;
134
+ };
135
+ }, [fragmentShader, webGlContextAttributes]);
136
+ useEffect(() => {
137
+ const updateUniforms = async () => {
138
+ const processedUniforms = await processUniforms(uniforms);
139
+ shaderMountRef.current?.setUniforms(processedUniforms);
140
+ };
141
+ updateUniforms();
142
+ }, [uniforms, isInitialized]);
143
+ useEffect(() => {
144
+ shaderMountRef.current?.setSpeed(speed);
145
+ }, [speed, isInitialized]);
146
+ useEffect(() => {
147
+ shaderMountRef.current?.setFrame(frame);
148
+ }, [frame, isInitialized]);
149
+ return /* @__PURE__ */ jsx("div", { ref: useMergeRefs([divRef, forwardedRef]), ...divProps });
150
+ }
151
+ );
152
+ ShaderMount.displayName = "ShaderMount";
153
+
154
+ // packages/shaders-react/src/shaders/mesh-gradient.tsx
155
+ import { useMemo as useMemo2 } from "react";
156
+ import { getShaderColorFromString, meshGradientFragmentShader } from "@paper-design/shaders";
157
+ import { jsx as jsx2 } from "react/jsx-runtime";
158
+ var defaultPreset = {
159
+ name: "Default",
160
+ params: {
161
+ speed: 0.15,
162
+ frame: 0,
163
+ color1: "hsla(259, 29%, 73%, 1)",
164
+ color2: "hsla(263, 57%, 39%, 1)",
165
+ color3: "hsla(48, 73%, 84%, 1)",
166
+ color4: "hsla(295, 32%, 70%, 1)"
167
+ }
168
+ };
169
+ var beachPreset = {
170
+ name: "Beach",
171
+ params: {
172
+ speed: 0.1,
173
+ frame: 0,
174
+ color1: "hsla(186, 81%, 83%, 1)",
175
+ color2: "hsla(198, 55%, 68%, 1)",
176
+ color3: "hsla(53, 67%, 88%, 1)",
177
+ color4: "hsla(45, 93%, 73%, 1)"
178
+ }
179
+ };
180
+ var fadedPreset = {
181
+ name: "Faded",
182
+ params: {
183
+ speed: -0.3,
184
+ frame: 0,
185
+ color1: "hsla(186, 41%, 90%, 1)",
186
+ color2: "hsla(208, 71%, 85%, 1)",
187
+ color3: "hsla(183, 51%, 92%, 1)",
188
+ color4: "hsla(201, 72%, 90%, 1)"
189
+ }
190
+ };
191
+ var meshGradientPresets = [defaultPreset, beachPreset, fadedPreset];
192
+ var MeshGradient = ({ color1, color2, color3, color4, ...props }) => {
193
+ const uniforms = useMemo2(() => {
194
+ return {
195
+ u_color1: getShaderColorFromString(color1, defaultPreset.params.color1),
196
+ u_color2: getShaderColorFromString(color2, defaultPreset.params.color2),
197
+ u_color3: getShaderColorFromString(color3, defaultPreset.params.color3),
198
+ u_color4: getShaderColorFromString(color4, defaultPreset.params.color4)
199
+ };
200
+ }, [color1, color2, color3, color4]);
201
+ return /* @__PURE__ */ jsx2(ShaderMount, { ...props, fragmentShader: meshGradientFragmentShader, uniforms });
202
+ };
203
+
204
+ // packages/shaders-react/src/index.ts
205
+ import {} from "@paper-design/shaders";
206
+
207
+ // packages/shaders-react/src/shaders/smoke-ring.tsx
208
+ import { useMemo as useMemo3 } from "react";
209
+ import { getShaderColorFromString as getShaderColorFromString2, smokeRingFragmentShader } from "@paper-design/shaders";
210
+ import { jsx as jsx3 } from "react/jsx-runtime";
211
+ var defaultPreset2 = {
212
+ name: "Default",
213
+ params: {
214
+ scale: 1,
215
+ speed: 0.5,
216
+ frame: 0,
217
+ colorInner: "hsla(0, 0%, 100%, 1)",
218
+ colorOuter: "hsla(38, 4%, 38%, 1)",
219
+ noiseScale: 1,
220
+ thickness: 0.5
221
+ }
222
+ };
223
+ var cloudPreset = {
224
+ name: "Cloud",
225
+ params: {
226
+ scale: 1,
227
+ speed: 1,
228
+ frame: 0,
229
+ colorInner: "hsla(0, 0%, 100%, 1)",
230
+ colorOuter: "hsla(0, 0%, 100%, 1)",
231
+ noiseScale: 1.8,
232
+ thickness: 0.7
233
+ },
234
+ style: {
235
+ background: "hsla(218, 100%, 62%, 1)"
236
+ }
237
+ };
238
+ var firePreset = {
239
+ name: "Fire",
240
+ params: {
241
+ scale: 1,
242
+ speed: 4,
243
+ frame: 0,
244
+ colorInner: "hsla(40, 100%, 50%, 1)",
245
+ colorOuter: "hsla(0, 100%, 50%, 1)",
246
+ noiseScale: 1.4,
247
+ thickness: 0.35
248
+ },
249
+ style: {
250
+ background: "hsla(20, 100%, 5%, 1)"
251
+ }
252
+ };
253
+ var electricPreset = {
254
+ name: "Electric",
255
+ params: {
256
+ scale: 1,
257
+ speed: -2.5,
258
+ frame: 0,
259
+ colorInner: "hsla(47, 100%, 64%, 1)",
260
+ colorOuter: "hsla(47, 100%, 64%, 1)",
261
+ noiseScale: 1.8,
262
+ thickness: 0.1
263
+ },
264
+ style: {
265
+ background: "hsla(47, 50%, 7%, 1)"
266
+ }
267
+ };
268
+ var poisonPreset = {
269
+ name: "Poison",
270
+ params: {
271
+ scale: 1,
272
+ speed: 3,
273
+ frame: 0,
274
+ colorInner: "hsla(120, 100%, 3%, 1)",
275
+ colorOuter: "hsla(120, 100%, 66%, 1)",
276
+ noiseScale: 5,
277
+ thickness: 0.6
278
+ },
279
+ style: {
280
+ background: "hsla(120, 100%, 3%, 1)"
281
+ }
282
+ };
283
+ var smokeRingPresets = [
284
+ defaultPreset2,
285
+ cloudPreset,
286
+ firePreset,
287
+ electricPreset,
288
+ poisonPreset
289
+ ];
290
+ var SmokeRing = ({
291
+ scale,
292
+ colorInner,
293
+ colorOuter,
294
+ noiseScale,
295
+ thickness,
296
+ ...props
297
+ }) => {
298
+ const uniforms = useMemo3(() => {
299
+ return {
300
+ u_scale: scale ?? defaultPreset2.params.scale,
301
+ u_colorInner: getShaderColorFromString2(colorInner, defaultPreset2.params.colorInner),
302
+ u_colorOuter: getShaderColorFromString2(colorOuter, defaultPreset2.params.colorOuter),
303
+ u_noiseScale: noiseScale ?? defaultPreset2.params.noiseScale,
304
+ u_thickness: thickness ?? defaultPreset2.params.thickness
305
+ };
306
+ }, [scale, colorInner, colorOuter, noiseScale, thickness]);
307
+ return /* @__PURE__ */ jsx3(ShaderMount, { ...props, fragmentShader: smokeRingFragmentShader, uniforms });
308
+ };
309
+
310
+ // packages/shaders-react/src/index.ts
311
+ import {} from "@paper-design/shaders";
312
+
313
+ // packages/shaders-react/src/shaders/neuro-noise.tsx
314
+ import { useMemo as useMemo4 } from "react";
315
+ import { getShaderColorFromString as getShaderColorFromString3, neuroNoiseFragmentShader } from "@paper-design/shaders";
316
+ import { jsx as jsx4 } from "react/jsx-runtime";
317
+ var defaultPreset3 = {
318
+ name: "Default",
319
+ params: {
320
+ scale: 1,
321
+ speed: 1,
322
+ frame: 0,
323
+ colorFront: "hsla(261, 100%, 82%, 1)",
324
+ colorBack: "hsla(0, 0%, 0%, 1)",
325
+ brightness: 1.3
326
+ }
327
+ };
328
+ var marblePreset = {
329
+ name: "Marble",
330
+ params: {
331
+ scale: 0.4,
332
+ speed: 0,
333
+ frame: 0,
334
+ colorFront: "hsla(230, 24%, 15%, 1)",
335
+ colorBack: "hsla(0, 0%, 97%, 1)",
336
+ brightness: 1.1
337
+ }
338
+ };
339
+ var neuroNoisePresets = [defaultPreset3, marblePreset];
340
+ var NeuroNoise = ({
341
+ scale,
342
+ colorFront,
343
+ colorBack,
344
+ brightness,
345
+ ...props
346
+ }) => {
347
+ const uniforms = useMemo4(() => {
348
+ return {
349
+ u_scale: scale ?? defaultPreset3.params.scale,
350
+ u_colorFront: getShaderColorFromString3(colorFront, defaultPreset3.params.colorFront),
351
+ u_colorBack: getShaderColorFromString3(colorBack, defaultPreset3.params.colorBack),
352
+ u_brightness: brightness ?? defaultPreset3.params.brightness
353
+ };
354
+ }, [scale, colorFront, colorBack, brightness]);
355
+ return /* @__PURE__ */ jsx4(ShaderMount, { ...props, fragmentShader: neuroNoiseFragmentShader, uniforms });
356
+ };
357
+
358
+ // packages/shaders-react/src/index.ts
359
+ import {} from "@paper-design/shaders";
360
+
361
+ // packages/shaders-react/src/shaders/dot-orbit.tsx
362
+ import { useMemo as useMemo5 } from "react";
363
+ import { getShaderColorFromString as getShaderColorFromString4, dotOrbitFragmentShader } from "@paper-design/shaders";
364
+ import { jsx as jsx5 } from "react/jsx-runtime";
365
+ var defaultPreset4 = {
366
+ name: "Default",
367
+ params: {
368
+ scale: 1,
369
+ speed: 2,
370
+ frame: 0,
371
+ color1: "hsla(358, 66%, 49%, 1)",
372
+ color2: "hsla(145, 30%, 33%, 1)",
373
+ color3: "hsla(39, 88%, 52%, 1)",
374
+ color4: "hsla(274, 30%, 35%, 1)",
375
+ dotSize: 0.7,
376
+ dotSizeRange: 0.4,
377
+ spreading: 1
378
+ }
379
+ };
380
+ var dotOrbitPresets = [defaultPreset4];
381
+ var DotOrbit = ({
382
+ scale,
383
+ color1,
384
+ color2,
385
+ color3,
386
+ color4,
387
+ dotSize,
388
+ dotSizeRange,
389
+ spreading,
390
+ ...props
391
+ }) => {
392
+ const uniforms = useMemo5(() => {
393
+ return {
394
+ u_scale: scale ?? defaultPreset4.params.scale,
395
+ u_color1: getShaderColorFromString4(color1, defaultPreset4.params.color1),
396
+ u_color2: getShaderColorFromString4(color2, defaultPreset4.params.color2),
397
+ u_color3: getShaderColorFromString4(color3, defaultPreset4.params.color3),
398
+ u_color4: getShaderColorFromString4(color4, defaultPreset4.params.color4),
399
+ u_dotSize: dotSize ?? defaultPreset4.params.dotSize,
400
+ u_dotSizeRange: dotSizeRange ?? defaultPreset4.params.dotSizeRange,
401
+ u_spreading: spreading ?? defaultPreset4.params.spreading
402
+ };
403
+ }, [scale, color1, color2, color3, color4, dotSize, dotSizeRange, spreading]);
404
+ return /* @__PURE__ */ jsx5(ShaderMount, { ...props, fragmentShader: dotOrbitFragmentShader, uniforms });
405
+ };
406
+
407
+ // packages/shaders-react/src/index.ts
408
+ import {} from "@paper-design/shaders";
409
+
410
+ // packages/shaders-react/src/shaders/dot-grid.tsx
411
+ import { useMemo as useMemo6 } from "react";
412
+ import {
413
+ dotGridFragmentShader,
414
+ getShaderColorFromString as getShaderColorFromString5,
415
+ DotGridShapes
416
+ } from "@paper-design/shaders";
417
+ import { jsx as jsx6 } from "react/jsx-runtime";
418
+ var defaultPreset5 = {
419
+ name: "Default",
420
+ params: {
421
+ colorFill: "hsla(0, 0%, 0%, 1)",
422
+ colorStroke: "hsla(40, 100%, 50%, 1)",
423
+ dotSize: 2,
424
+ gridSpacingX: 50,
425
+ gridSpacingY: 50,
426
+ strokeWidth: 0,
427
+ sizeRange: 0,
428
+ opacityRange: 0,
429
+ shape: DotGridShapes.Circle
430
+ }
431
+ };
432
+ var macrodataPreset = {
433
+ name: "Macrodata",
434
+ params: {
435
+ colorFill: "hsla(218, 100%, 67%, 1)",
436
+ colorStroke: "hsla(0, 0%, 0%, 1)",
437
+ dotSize: 3,
438
+ gridSpacingX: 25,
439
+ gridSpacingY: 25,
440
+ strokeWidth: 0,
441
+ sizeRange: 0.25,
442
+ opacityRange: 0.9,
443
+ shape: DotGridShapes.Circle
444
+ },
445
+ style: {
446
+ background: "hsla(211, 37%, 13%, 1)"
447
+ }
448
+ };
449
+ var trianglesPreset = {
450
+ name: "Triangles",
451
+ params: {
452
+ colorFill: "hsla(0, 0%, 100%, 1)",
453
+ colorStroke: "hsla(0, 0%, 0%, .5)",
454
+ dotSize: 5,
455
+ gridSpacingX: 32,
456
+ gridSpacingY: 32,
457
+ strokeWidth: 1,
458
+ sizeRange: 0,
459
+ opacityRange: 0,
460
+ shape: DotGridShapes.Triangle
461
+ },
462
+ style: {
463
+ background: "hsla(0, 0%, 100%, 1)"
464
+ }
465
+ };
466
+ var bubblesPreset = {
467
+ name: "Bubbles",
468
+ params: {
469
+ colorFill: "hsla(100, 30%, 100%, 1)",
470
+ colorStroke: "hsla(0, 100%, 0%, 1)",
471
+ dotSize: 28,
472
+ gridSpacingX: 60,
473
+ gridSpacingY: 60,
474
+ strokeWidth: 12,
475
+ sizeRange: 0.7,
476
+ opacityRange: 1.3,
477
+ shape: DotGridShapes.Circle
478
+ },
479
+ style: {
480
+ background: "hsla(234, 100%, 31%, .5)"
481
+ }
482
+ };
483
+ var treeLinePreset = {
484
+ name: "Tree line",
485
+ params: {
486
+ colorFill: "hsla(150, 80%, 10%, 1)",
487
+ colorStroke: "hsla(0, 0%, 0%, 1)",
488
+ dotSize: 8,
489
+ gridSpacingX: 20,
490
+ gridSpacingY: 90,
491
+ strokeWidth: 0,
492
+ sizeRange: 1,
493
+ opacityRange: 0.6,
494
+ shape: DotGridShapes.Circle
495
+ },
496
+ style: {
497
+ background: "hsla(100, 100%, 36%, .05)"
498
+ }
499
+ };
500
+ var diamondsPreset = {
501
+ name: "Diamonds",
502
+ params: {
503
+ colorFill: "hsla(0, 100%, 50%, 1)",
504
+ colorStroke: "hsla(0, 0%, 0%, 1)",
505
+ dotSize: 15,
506
+ gridSpacingX: 30,
507
+ gridSpacingY: 30,
508
+ strokeWidth: 0,
509
+ sizeRange: 0,
510
+ opacityRange: 2,
511
+ shape: DotGridShapes.Diamond
512
+ },
513
+ style: {
514
+ background: "hsla(0, 0%, 0%, 0)"
515
+ }
516
+ };
517
+ var wallpaperPreset = {
518
+ name: "Wallpaper",
519
+ params: {
520
+ colorFill: "hsla(0, 0%, 0%, 0)",
521
+ colorStroke: "hsla(36, 48%, 58%, 1)",
522
+ dotSize: 9,
523
+ gridSpacingX: 32,
524
+ gridSpacingY: 32,
525
+ strokeWidth: 1,
526
+ sizeRange: 0,
527
+ opacityRange: 0,
528
+ shape: DotGridShapes.Diamond
529
+ },
530
+ style: {
531
+ background: "hsla(154, 33%, 19%, 1)"
532
+ }
533
+ };
534
+ var matrixPreset = {
535
+ name: "Enter the Matrix",
536
+ params: {
537
+ colorFill: "hsla(182, 100%, 64%, 1)",
538
+ colorStroke: "hsla(0, 100%, 100%, 0)",
539
+ dotSize: 2,
540
+ gridSpacingX: 10,
541
+ gridSpacingY: 10,
542
+ strokeWidth: 0.5,
543
+ sizeRange: 0.25,
544
+ opacityRange: 1,
545
+ shape: DotGridShapes.Triangle
546
+ },
547
+ style: {
548
+ background: "hsla(0, 100%, 0%, 1)"
549
+ }
550
+ };
551
+ var waveformPreset = {
552
+ name: "Waveform",
553
+ params: {
554
+ colorFill: "hsla(227, 93%, 38%, 1)",
555
+ colorStroke: "hsla(0, 0%, 0%, 0)",
556
+ dotSize: 100,
557
+ gridSpacingX: 2,
558
+ gridSpacingY: 215,
559
+ strokeWidth: 0,
560
+ sizeRange: 1,
561
+ opacityRange: 0,
562
+ shape: DotGridShapes.Square
563
+ },
564
+ style: {
565
+ background: "hsla(0, 100%, 100%, 1)"
566
+ }
567
+ };
568
+ var dotGridPresets = [
569
+ defaultPreset5,
570
+ macrodataPreset,
571
+ trianglesPreset,
572
+ bubblesPreset,
573
+ treeLinePreset,
574
+ diamondsPreset,
575
+ wallpaperPreset,
576
+ matrixPreset,
577
+ waveformPreset
578
+ ];
579
+ var DotGrid = ({
580
+ colorFill,
581
+ colorStroke,
582
+ dotSize,
583
+ gridSpacingX,
584
+ gridSpacingY,
585
+ strokeWidth,
586
+ sizeRange,
587
+ opacityRange,
588
+ shape,
589
+ ...props
590
+ }) => {
591
+ const uniforms = useMemo6(() => {
592
+ return {
593
+ u_colorFill: getShaderColorFromString5(colorFill, defaultPreset5.params.colorStroke),
594
+ u_colorStroke: getShaderColorFromString5(colorStroke, defaultPreset5.params.colorStroke),
595
+ u_dotSize: dotSize ?? defaultPreset5.params.dotSize,
596
+ u_gridSpacingX: gridSpacingX ?? defaultPreset5.params.gridSpacingX,
597
+ u_gridSpacingY: gridSpacingY ?? defaultPreset5.params.gridSpacingY,
598
+ u_strokeWidth: strokeWidth ?? defaultPreset5.params.strokeWidth,
599
+ u_sizeRange: sizeRange ?? defaultPreset5.params.sizeRange,
600
+ u_opacityRange: opacityRange ?? defaultPreset5.params.opacityRange,
601
+ u_shape: shape ?? defaultPreset5.params.shape
602
+ };
603
+ }, [colorFill, colorStroke, dotSize, gridSpacingX, gridSpacingY, strokeWidth, sizeRange, opacityRange, shape]);
604
+ return /* @__PURE__ */ jsx6(ShaderMount, { ...props, fragmentShader: dotGridFragmentShader, uniforms });
605
+ };
606
+
607
+ // packages/shaders-react/src/index.ts
608
+ import { DotGridShapes as DotGridShapes2 } from "@paper-design/shaders";
609
+
610
+ // packages/shaders-react/src/shaders/stepped-simplex-noise.tsx
611
+ import { useMemo as useMemo7 } from "react";
612
+ import {
613
+ getShaderColorFromString as getShaderColorFromString6,
614
+ steppedSimplexNoiseFragmentShader
615
+ } from "@paper-design/shaders";
616
+ import { jsx as jsx7 } from "react/jsx-runtime";
617
+ var defaultPreset6 = {
618
+ name: "Default",
619
+ params: {
620
+ scale: 1,
621
+ speed: 0.15,
622
+ frame: 0,
623
+ color1: "hsla(208, 25%, 45%, 1)",
624
+ color2: "hsla(94, 38%, 59%, 1)",
625
+ color3: "hsla(359, 94%, 62%, 1)",
626
+ color4: "hsla(42, 93%, 64%, 1)",
627
+ color5: "hsla(0, 0%, 100%, 1)",
628
+ stepsNumber: 13
629
+ }
630
+ };
631
+ var magmaPreset = {
632
+ name: "Magma",
633
+ params: {
634
+ scale: 0.3,
635
+ speed: 0.2,
636
+ frame: 0,
637
+ color1: "hsla(0, 100%, 36%, 1)",
638
+ color2: "hsla(0, 95%, 44%, 1)",
639
+ color3: "hsla(20, 100%, 49%, 1)",
640
+ color4: "hsla(45, 100%, 45%, 1)",
641
+ color5: "hsla(31, 100%, 94%, 1)",
642
+ stepsNumber: 8
643
+ }
644
+ };
645
+ var bloodCellPreset = {
646
+ name: "Blood cell",
647
+ params: {
648
+ scale: 1.2,
649
+ speed: 0.22,
650
+ frame: 0,
651
+ color1: "hsla(302, 43%, 13%, 1)",
652
+ color2: "hsla(325, 93%, 17%, 1)",
653
+ color3: "hsla(338, 80%, 25%, 1)",
654
+ color4: "hsla(338, 80%, 25%, 1)",
655
+ color5: "hsla(2, 85%, 72%, 1)",
656
+ stepsNumber: 29
657
+ }
658
+ };
659
+ var firstContactPreset = {
660
+ name: "First contact",
661
+ params: {
662
+ scale: 1.2,
663
+ speed: -0.1,
664
+ frame: 0,
665
+ color1: "hsla(300, 43%, 82%, 1)",
666
+ color2: "hsla(266, 70%, 9%, 1)",
667
+ color3: "hsla(289, 36%, 26%, 1)",
668
+ color4: "hsla(0, 41%, 78%, 1)",
669
+ color5: "hsla(0, 100%, 96%, 1)",
670
+ stepsNumber: 40
671
+ }
672
+ };
673
+ var steppedSimplexNoisePresets = [
674
+ defaultPreset6,
675
+ magmaPreset,
676
+ bloodCellPreset,
677
+ firstContactPreset
678
+ ];
679
+ var SteppedSimplexNoise = ({
680
+ scale,
681
+ color1,
682
+ color2,
683
+ color3,
684
+ color4,
685
+ color5,
686
+ stepsNumber,
687
+ ...props
688
+ }) => {
689
+ const uniforms = useMemo7(() => {
690
+ return {
691
+ u_scale: scale ?? defaultPreset6.params.scale,
692
+ u_color1: getShaderColorFromString6(color1, defaultPreset6.params.color1),
693
+ u_color2: getShaderColorFromString6(color2, defaultPreset6.params.color2),
694
+ u_color3: getShaderColorFromString6(color3, defaultPreset6.params.color3),
695
+ u_color4: getShaderColorFromString6(color4, defaultPreset6.params.color4),
696
+ u_color5: getShaderColorFromString6(color5, defaultPreset6.params.color5),
697
+ u_steps_number: stepsNumber ?? defaultPreset6.params.stepsNumber
698
+ };
699
+ }, [scale, color1, color2, color3, color4, color5, stepsNumber]);
700
+ return /* @__PURE__ */ jsx7(ShaderMount, { ...props, fragmentShader: steppedSimplexNoiseFragmentShader, uniforms });
701
+ };
702
+
703
+ // packages/shaders-react/src/index.ts
704
+ import {} from "@paper-design/shaders";
705
+
706
+ // packages/shaders-react/src/shaders/metaballs.tsx
707
+ import { useMemo as useMemo8 } from "react";
708
+ import { getShaderColorFromString as getShaderColorFromString7, metaballsFragmentShader } from "@paper-design/shaders";
709
+ import { jsx as jsx8 } from "react/jsx-runtime";
710
+ var defaultPreset7 = {
711
+ name: "Default",
712
+ params: {
713
+ scale: 1,
714
+ speed: 0.6,
715
+ frame: 0,
716
+ color1: "hsla(350, 90%, 55%, 1)",
717
+ color2: "hsla(350, 80%, 60%, 1)",
718
+ color3: "hsla(20, 85%, 70%, 1)",
719
+ ballSize: 1,
720
+ visibilityRange: 0.4
721
+ }
722
+ };
723
+ var metaballsPresets = [defaultPreset7];
724
+ var Metaballs = ({
725
+ scale,
726
+ color1,
727
+ color2,
728
+ color3,
729
+ ballSize,
730
+ visibilityRange,
731
+ ...props
732
+ }) => {
733
+ const uniforms = useMemo8(() => {
734
+ return {
735
+ u_scale: scale ?? defaultPreset7.params.scale,
736
+ u_color1: getShaderColorFromString7(color1, defaultPreset7.params.color1),
737
+ u_color2: getShaderColorFromString7(color2, defaultPreset7.params.color2),
738
+ u_color3: getShaderColorFromString7(color3, defaultPreset7.params.color3),
739
+ u_ballSize: ballSize ?? defaultPreset7.params.ballSize,
740
+ u_visibilityRange: visibilityRange ?? defaultPreset7.params.visibilityRange
741
+ };
742
+ }, [scale, color1, color2, color3, ballSize, visibilityRange]);
743
+ return /* @__PURE__ */ jsx8(ShaderMount, { ...props, fragmentShader: metaballsFragmentShader, uniforms });
744
+ };
745
+
746
+ // packages/shaders-react/src/index.ts
747
+ import {} from "@paper-design/shaders";
748
+
749
+ // packages/shaders-react/src/shaders/waves.tsx
750
+ import { useMemo as useMemo9 } from "react";
751
+ import { getShaderColorFromString as getShaderColorFromString8, wavesFragmentShader } from "@paper-design/shaders";
752
+ import { jsx as jsx9 } from "react/jsx-runtime";
753
+ var defaultPreset8 = {
754
+ name: "Default",
755
+ params: {
756
+ scale: 1,
757
+ rotation: 0,
758
+ color: "hsla(204, 47%, 45%, 1)",
759
+ shape: 1,
760
+ frequency: 0.5,
761
+ amplitude: 0.5,
762
+ spacing: 0.75,
763
+ dutyCycle: 0.2,
764
+ softness: 0
765
+ }
766
+ };
767
+ var spikesPreset = {
768
+ name: "Spikes",
769
+ params: {
770
+ scale: 2.3,
771
+ rotation: 0,
772
+ color: "hsla(290, 52%, 15%, 1)",
773
+ shape: 0,
774
+ frequency: 0.5,
775
+ amplitude: 0.9,
776
+ spacing: 0.37,
777
+ dutyCycle: 0.93,
778
+ softness: 0.15
779
+ },
780
+ style: {
781
+ background: "hsla(65, 100%, 95%, 1)"
782
+ }
783
+ };
784
+ var groovyPreset = {
785
+ name: "Groovy",
786
+ params: {
787
+ scale: 0.5,
788
+ rotation: 1,
789
+ color: "hsla(20, 100%, 71%, 1)",
790
+ shape: 2.37,
791
+ frequency: 0.2,
792
+ amplitude: 0.67,
793
+ spacing: 1.17,
794
+ dutyCycle: 0.57,
795
+ softness: 0
796
+ },
797
+ style: {
798
+ background: "hsla(60, 100%, 97%, 1)"
799
+ }
800
+ };
801
+ var tangledUpPreset = {
802
+ name: "Tangled up",
803
+ params: {
804
+ scale: 3.04,
805
+ rotation: 1,
806
+ color: "hsla(85.5, 35.7%, 78%, 1)",
807
+ shape: 3,
808
+ frequency: 0.44,
809
+ amplitude: 0.57,
810
+ spacing: 1.05,
811
+ dutyCycle: 0.97,
812
+ softness: 0
813
+ },
814
+ style: {
815
+ background: "hsla(198.7, 66.7%, 14.1%, 1)"
816
+ }
817
+ };
818
+ var zigZagPreset = {
819
+ name: "Zig zag",
820
+ params: {
821
+ scale: 2.7,
822
+ rotation: 1,
823
+ color: "hsla(0, 0%, 90%, 1)",
824
+ shape: 0,
825
+ frequency: 0.6,
826
+ amplitude: 0.8,
827
+ spacing: 0.5,
828
+ dutyCycle: 1,
829
+ softness: 0.5
830
+ },
831
+ style: {
832
+ background: "hsla(0, 0%, 0%, 1)"
833
+ }
834
+ };
835
+ var waveRidePreset = {
836
+ name: "Ride the wave",
837
+ params: {
838
+ scale: 0.84,
839
+ rotation: 0,
840
+ color: "hsla(0, 0%, 12%, 1)",
841
+ shape: 2.23,
842
+ frequency: 0.1,
843
+ amplitude: 0.6,
844
+ spacing: 0.41,
845
+ dutyCycle: 0.99,
846
+ softness: 0
847
+ },
848
+ style: {
849
+ background: "hsla(65, 100%, 95%, 1)"
850
+ }
851
+ };
852
+ var wavesPresets = [
853
+ defaultPreset8,
854
+ spikesPreset,
855
+ groovyPreset,
856
+ tangledUpPreset,
857
+ zigZagPreset,
858
+ waveRidePreset
859
+ ];
860
+ var Waves = ({
861
+ scale,
862
+ rotation,
863
+ color,
864
+ shape,
865
+ frequency,
866
+ amplitude,
867
+ spacing,
868
+ dutyCycle,
869
+ softness,
870
+ ...props
871
+ }) => {
872
+ const uniforms = useMemo9(() => {
873
+ return {
874
+ u_scale: scale ?? defaultPreset8.params.scale,
875
+ u_rotation: rotation ?? defaultPreset8.params.rotation,
876
+ u_color: getShaderColorFromString8(color, defaultPreset8.params.color),
877
+ u_shape: shape ?? defaultPreset8.params.shape,
878
+ u_frequency: frequency ?? defaultPreset8.params.frequency,
879
+ u_amplitude: amplitude ?? defaultPreset8.params.amplitude,
880
+ u_spacing: spacing ?? defaultPreset8.params.spacing,
881
+ u_dutyCycle: dutyCycle ?? defaultPreset8.params.dutyCycle,
882
+ u_softness: softness ?? defaultPreset8.params.softness
883
+ };
884
+ }, [scale, rotation, color, shape, frequency, amplitude, spacing, dutyCycle, softness]);
885
+ return /* @__PURE__ */ jsx9(ShaderMount, { ...props, fragmentShader: wavesFragmentShader, uniforms });
886
+ };
887
+
888
+ // packages/shaders-react/src/index.ts
889
+ import {} from "@paper-design/shaders";
890
+
891
+ // packages/shaders-react/src/shaders/perlin-noise.tsx
892
+ import { useMemo as useMemo10 } from "react";
893
+ import { getShaderColorFromString as getShaderColorFromString9, perlinNoiseFragmentShader } from "@paper-design/shaders";
894
+ import { jsx as jsx10 } from "react/jsx-runtime";
895
+ var defaultPreset9 = {
896
+ name: "Default",
897
+ params: {
898
+ scale: 1,
899
+ speed: 0.5,
900
+ frame: 0,
901
+ color: "hsla(0, 0%, 15%, 1)",
902
+ proportion: 0.65,
903
+ softness: 0.1,
904
+ octaveCount: 2,
905
+ persistence: 1,
906
+ lacunarity: 1.5
907
+ }
908
+ };
909
+ var nintendoWaterPreset = {
910
+ name: "Nintendo Water",
911
+ params: {
912
+ scale: 0.2,
913
+ speed: 0.4,
914
+ frame: 0,
915
+ color: "hsla(200, 66%, 90%, 1)",
916
+ proportion: 0.42,
917
+ softness: 0,
918
+ octaveCount: 2,
919
+ persistence: 0.55,
920
+ lacunarity: 1.8
921
+ },
922
+ style: {
923
+ background: "hsla(220, 66%, 50%, 1)"
924
+ }
925
+ };
926
+ var colonyPreset = {
927
+ name: "Colony",
928
+ params: {
929
+ scale: 0.15,
930
+ speed: 0,
931
+ frame: 0,
932
+ color: "hsla(230, 80%, 20%, 1)",
933
+ octaveCount: 6,
934
+ persistence: 1,
935
+ lacunarity: 2.55,
936
+ proportion: 0.65,
937
+ softness: 0.35
938
+ },
939
+ style: {
940
+ background: "hsla(56, 86%, 81%, 1)"
941
+ }
942
+ };
943
+ var phosphenesPreset = {
944
+ name: "Phosphenes",
945
+ params: {
946
+ scale: 0.03,
947
+ speed: 0.15,
948
+ frame: 0,
949
+ color: "hsla(150, 50%, 60%, 1)",
950
+ proportion: 0.45,
951
+ softness: 0.45,
952
+ octaveCount: 6,
953
+ persistence: 0.3,
954
+ lacunarity: 3
955
+ },
956
+ style: {
957
+ background: "hsla(350, 80%, 70%, 1)"
958
+ }
959
+ };
960
+ var mossPreset = {
961
+ name: "Moss",
962
+ params: {
963
+ scale: 0.15,
964
+ speed: 0.02,
965
+ frame: 0,
966
+ color: "hsla(0, 0%, 15%, 1)",
967
+ proportion: 0.65,
968
+ softness: 0.35,
969
+ octaveCount: 6,
970
+ persistence: 1,
971
+ lacunarity: 2.55
972
+ },
973
+ style: {
974
+ background: "hsla(137, 100%, 51%, 1)"
975
+ }
976
+ };
977
+ var wormsPreset = {
978
+ name: "Worms",
979
+ params: {
980
+ scale: 2,
981
+ speed: 0,
982
+ frame: 0,
983
+ color: "hsla(0, 0%, 35%, 1)",
984
+ proportion: 0.5,
985
+ softness: 0,
986
+ octaveCount: 1,
987
+ persistence: 1,
988
+ lacunarity: 1.5
989
+ },
990
+ style: {
991
+ background: "hsla(0, 100%, 100%, 1)"
992
+ }
993
+ };
994
+ var perlinNoisePresets = [
995
+ defaultPreset9,
996
+ nintendoWaterPreset,
997
+ colonyPreset,
998
+ phosphenesPreset,
999
+ mossPreset,
1000
+ wormsPreset
1001
+ ];
1002
+ var PerlinNoise = ({
1003
+ scale,
1004
+ color,
1005
+ proportion,
1006
+ softness,
1007
+ octaveCount,
1008
+ persistence,
1009
+ lacunarity,
1010
+ ...props
1011
+ }) => {
1012
+ const uniforms = useMemo10(() => {
1013
+ return {
1014
+ u_scale: scale ?? defaultPreset9.params.scale,
1015
+ u_color: getShaderColorFromString9(color, defaultPreset9.params.color),
1016
+ u_proportion: proportion ?? defaultPreset9.params.proportion,
1017
+ u_softness: softness ?? defaultPreset9.params.softness,
1018
+ u_octaveCount: octaveCount ?? defaultPreset9.params.octaveCount,
1019
+ u_persistence: persistence ?? defaultPreset9.params.persistence,
1020
+ u_lacunarity: lacunarity ?? defaultPreset9.params.lacunarity
1021
+ };
1022
+ }, [scale, color, proportion, softness, octaveCount, persistence, lacunarity]);
1023
+ return /* @__PURE__ */ jsx10(ShaderMount, { ...props, fragmentShader: perlinNoiseFragmentShader, uniforms });
1024
+ };
1025
+
1026
+ // packages/shaders-react/src/index.ts
1027
+ import {} from "@paper-design/shaders";
1028
+
1029
+ // packages/shaders-react/src/shaders/voronoi.tsx
1030
+ import { useMemo as useMemo11 } from "react";
1031
+ import { getShaderColorFromString as getShaderColorFromString10, voronoiFragmentShader } from "@paper-design/shaders";
1032
+ import { jsx as jsx11 } from "react/jsx-runtime";
1033
+ var defaultPreset10 = {
1034
+ name: "Default",
1035
+ params: {
1036
+ scale: 1.5,
1037
+ speed: 0.5,
1038
+ frame: 0,
1039
+ colorCell1: "hsla(15, 80%, 50%, 1)",
1040
+ colorCell2: "hsla(180, 80%, 50%, 1)",
1041
+ colorCell3: "hsla(200, 80%, 50%, 1)",
1042
+ colorMid: "hsla(0, 0%, 0%, 1)",
1043
+ colorGradient: 0.5,
1044
+ distance: 0.25,
1045
+ edgesSize: 0.15,
1046
+ edgesSoftness: 0.01,
1047
+ middleSize: 0,
1048
+ middleSoftness: 0
1049
+ }
1050
+ };
1051
+ var classicPreset = {
1052
+ name: "Classic",
1053
+ params: {
1054
+ scale: 3,
1055
+ speed: 0.8,
1056
+ frame: 0,
1057
+ colorCell1: "hsla(0, 100%, 100%, 1)",
1058
+ colorCell2: "hsla(0, 0%, 100%, 1)",
1059
+ colorCell3: "hsla(0, 100%, 0%, 1)",
1060
+ colorMid: "hsla(0, 0%, 0%, 1)",
1061
+ colorGradient: 1,
1062
+ distance: 0.45,
1063
+ edgesSize: 0.02,
1064
+ edgesSoftness: 0.07,
1065
+ middleSize: 0,
1066
+ middleSoftness: 0
1067
+ }
1068
+ };
1069
+ var giraffePreset = {
1070
+ name: "Giraffe",
1071
+ params: {
1072
+ scale: 1,
1073
+ speed: 0.6,
1074
+ frame: 0,
1075
+ colorCell1: "hsla(32, 100%, 18%, 1)",
1076
+ colorCell2: "hsla(42, 93%, 35%, 1)",
1077
+ colorCell3: "hsla(32, 100%, 18%, 1)",
1078
+ colorMid: "hsla(0, 0%, 0%, 1)",
1079
+ colorGradient: 1,
1080
+ distance: 0.25,
1081
+ edgesSize: 0.2,
1082
+ edgesSoftness: 0.01,
1083
+ middleSize: 0,
1084
+ middleSoftness: 0
1085
+ }
1086
+ };
1087
+ var eyesPreset = {
1088
+ name: "Eyes",
1089
+ params: {
1090
+ scale: 1.6,
1091
+ speed: 0.6,
1092
+ frame: 0,
1093
+ colorCell1: "hsla(79, 84%, 60%, 1)",
1094
+ colorCell2: "hsla(207, 53%, 41%, 1)",
1095
+ colorCell3: "hsla(207, 80%, 65%, 1)",
1096
+ colorMid: "hsla(0, 0%, 0%, 1)",
1097
+ colorGradient: 1,
1098
+ distance: 0.25,
1099
+ edgesSize: 0.62,
1100
+ edgesSoftness: 0.01,
1101
+ middleSize: 0.1,
1102
+ middleSoftness: 0
1103
+ }
1104
+ };
1105
+ var bubblesPreset2 = {
1106
+ name: "Bubbles",
1107
+ params: {
1108
+ scale: 2,
1109
+ speed: 0.5,
1110
+ frame: 0,
1111
+ colorCell1: "hsla(0, 100%, 50%, 1)",
1112
+ colorCell2: "hsla(169, 100%, 66%, 1)",
1113
+ colorCell3: "hsla(50, 100%, 66%, 1)",
1114
+ colorMid: "hsla(0, 0%, 0%, 1)",
1115
+ colorGradient: 1,
1116
+ distance: 0.5,
1117
+ edgesSize: 0.81,
1118
+ edgesSoftness: 0,
1119
+ middleSize: 0,
1120
+ middleSoftness: 0
1121
+ }
1122
+ };
1123
+ var cellsPreset = {
1124
+ name: "Cells",
1125
+ params: {
1126
+ scale: 2,
1127
+ speed: 1,
1128
+ frame: 0,
1129
+ colorCell1: "hsla(0, 0%, 100%, 1)",
1130
+ colorCell2: "hsla(0, 0%, 100%, 1)",
1131
+ colorCell3: "hsla(0, 0%, 100%, 1)",
1132
+ colorMid: "hsla(0, 0%, 0%, 1)",
1133
+ colorGradient: 1,
1134
+ distance: 0.38,
1135
+ edgesSize: 0.1,
1136
+ edgesSoftness: 0.02,
1137
+ middleSize: 0,
1138
+ middleSoftness: 0
1139
+ }
1140
+ };
1141
+ var glowPreset = {
1142
+ name: "Glow",
1143
+ params: {
1144
+ scale: 1.2,
1145
+ speed: 0.8,
1146
+ frame: 0,
1147
+ colorCell1: "hsla(40, 100%, 50%, 1)",
1148
+ colorCell2: "hsla(311, 100%, 59%, 1)",
1149
+ colorCell3: "hsla(180, 100%, 65%, 1)",
1150
+ colorMid: "hsla(0, 0%, 100%, 1)",
1151
+ colorGradient: 1,
1152
+ distance: 0.25,
1153
+ edgesSize: 0.15,
1154
+ edgesSoftness: 0.01,
1155
+ middleSize: 0.7,
1156
+ middleSoftness: 1
1157
+ }
1158
+ };
1159
+ var tilesPreset = {
1160
+ name: "Tiles",
1161
+ params: {
1162
+ scale: 1.3,
1163
+ speed: 1,
1164
+ frame: 0,
1165
+ colorCell1: "hsla(80, 50%, 50%, 1)",
1166
+ colorCell2: "hsla(0, 50%, 100%, 1)",
1167
+ colorCell3: "hsla(200, 50%, 50%, 1)",
1168
+ colorMid: "hsla(0, 0%, 0%, 1)",
1169
+ colorGradient: 0,
1170
+ distance: 0.05,
1171
+ edgesSize: 0.25,
1172
+ edgesSoftness: 0.02,
1173
+ middleSize: 0,
1174
+ middleSoftness: 0
1175
+ }
1176
+ };
1177
+ var voronoiPresets = [
1178
+ defaultPreset10,
1179
+ classicPreset,
1180
+ giraffePreset,
1181
+ eyesPreset,
1182
+ bubblesPreset2,
1183
+ cellsPreset,
1184
+ glowPreset,
1185
+ tilesPreset
1186
+ ];
1187
+ var Voronoi = ({
1188
+ scale,
1189
+ colorCell1,
1190
+ colorCell2,
1191
+ colorCell3,
1192
+ colorMid,
1193
+ colorGradient,
1194
+ distance,
1195
+ edgesSize,
1196
+ edgesSoftness,
1197
+ middleSize,
1198
+ middleSoftness,
1199
+ ...props
1200
+ }) => {
1201
+ const uniforms = useMemo11(() => {
1202
+ return {
1203
+ u_scale: scale ?? defaultPreset10.params.scale,
1204
+ u_colorCell1: getShaderColorFromString10(colorCell1, defaultPreset10.params.colorCell1),
1205
+ u_colorCell2: getShaderColorFromString10(colorCell2, defaultPreset10.params.colorCell2),
1206
+ u_colorCell3: getShaderColorFromString10(colorCell3, defaultPreset10.params.colorCell3),
1207
+ u_colorMid: getShaderColorFromString10(colorMid, defaultPreset10.params.colorMid),
1208
+ u_colorGradient: colorGradient ?? defaultPreset10.params.colorGradient,
1209
+ u_distance: distance ?? defaultPreset10.params.distance,
1210
+ u_edgesSize: edgesSize ?? defaultPreset10.params.edgesSize,
1211
+ u_edgesSoftness: edgesSoftness ?? defaultPreset10.params.edgesSoftness,
1212
+ u_middleSize: middleSize ?? defaultPreset10.params.middleSize,
1213
+ u_middleSoftness: middleSoftness ?? defaultPreset10.params.middleSoftness
1214
+ };
1215
+ }, [
1216
+ scale,
1217
+ colorCell1,
1218
+ colorCell3,
1219
+ colorCell2,
1220
+ colorMid,
1221
+ colorGradient,
1222
+ distance,
1223
+ edgesSize,
1224
+ edgesSoftness,
1225
+ middleSize,
1226
+ middleSoftness
1227
+ ]);
1228
+ return /* @__PURE__ */ jsx11(ShaderMount, { ...props, fragmentShader: voronoiFragmentShader, uniforms });
1229
+ };
1230
+
1231
+ // packages/shaders-react/src/index.ts
1232
+ import {} from "@paper-design/shaders";
1233
+
1234
+ // packages/shaders-react/src/shaders/warp.tsx
1235
+ import { useMemo as useMemo12 } from "react";
1236
+ import {
1237
+ getShaderColorFromString as getShaderColorFromString11,
1238
+ warpFragmentShader,
1239
+ PatternShapes
1240
+ } from "@paper-design/shaders";
1241
+ import { jsx as jsx12 } from "react/jsx-runtime";
1242
+ var defaultPreset11 = {
1243
+ name: "Default",
1244
+ params: {
1245
+ scale: 1,
1246
+ rotation: 0,
1247
+ speed: 0.1,
1248
+ frame: 0,
1249
+ color1: "hsla(0, 0%, 15%, 1)",
1250
+ color2: "hsla(203, 80%, 70%, 1)",
1251
+ color3: "hsla(0, 0%, 100%, 1)",
1252
+ proportion: 0.35,
1253
+ softness: 1,
1254
+ distortion: 0.25,
1255
+ swirl: 0.8,
1256
+ swirlIterations: 10,
1257
+ shapeScale: 0.1,
1258
+ shape: PatternShapes.Checks
1259
+ }
1260
+ };
1261
+ var presetCauldron = {
1262
+ name: "Cauldron Pot",
1263
+ params: {
1264
+ scale: 1.1,
1265
+ rotation: 1.62,
1266
+ speed: 1,
1267
+ frame: 0,
1268
+ color1: "hsla(100, 51%, 75%, 1)",
1269
+ color2: "hsla(220, 39%, 32%, 1)",
1270
+ color3: "hsla(129.2, 41.9%, 6.1%, 1)",
1271
+ proportion: 0.64,
1272
+ softness: 0.95,
1273
+ distortion: 0.2,
1274
+ swirl: 0.86,
1275
+ swirlIterations: 7,
1276
+ shapeScale: 0,
1277
+ shape: PatternShapes.Edge
1278
+ }
1279
+ };
1280
+ var presetSilk = {
1281
+ name: "Silk",
1282
+ params: {
1283
+ scale: 0.26,
1284
+ rotation: 0,
1285
+ speed: 0.5,
1286
+ frame: 0,
1287
+ color1: "hsla(0, 9%, 7%, 1)",
1288
+ color2: "hsla(8, 13%, 34%, 1)",
1289
+ color3: "hsla(5, 8%, 71%, 1)",
1290
+ proportion: 0,
1291
+ softness: 1,
1292
+ distortion: 0.3,
1293
+ swirl: 0.6,
1294
+ swirlIterations: 11,
1295
+ shapeScale: 0.05,
1296
+ shape: PatternShapes.Stripes
1297
+ }
1298
+ };
1299
+ var presetPassion = {
1300
+ name: "Passion",
1301
+ params: {
1302
+ scale: 0.25,
1303
+ rotation: 1.35,
1304
+ speed: 0.3,
1305
+ frame: 0,
1306
+ color1: "hsla(0, 44.7%, 14.9%, 1)",
1307
+ color2: "hsla(353.4, 34%, 42.2%, 1)",
1308
+ color3: "hsla(29, 100%, 76.1%, 1)",
1309
+ proportion: 0.5,
1310
+ softness: 1,
1311
+ distortion: 0.09,
1312
+ swirl: 0.9,
1313
+ swirlIterations: 6,
1314
+ shapeScale: 0.25,
1315
+ shape: PatternShapes.Checks
1316
+ }
1317
+ };
1318
+ var presetPhantom = {
1319
+ name: "Phantom",
1320
+ params: {
1321
+ scale: 0.68,
1322
+ rotation: 1.8,
1323
+ speed: 1.25,
1324
+ frame: 0,
1325
+ color1: "hsla(242.2, 44.3%, 12%, 1)",
1326
+ color2: "hsla(236.1, 80.4%, 70%, 1)",
1327
+ color3: "hsla(0, 0%, 100%, 1)",
1328
+ proportion: 0.45,
1329
+ softness: 1,
1330
+ distortion: 0.16,
1331
+ swirl: 0.3,
1332
+ swirlIterations: 7,
1333
+ shapeScale: 0.1,
1334
+ shape: PatternShapes.Checks
1335
+ }
1336
+ };
1337
+ var presetAbyss = {
1338
+ name: "The Abyss",
1339
+ params: {
1340
+ scale: 0.1,
1341
+ rotation: 2,
1342
+ speed: 0.06,
1343
+ frame: 0,
1344
+ color1: "hsla(242.2, 44.3%, 12%, 1)",
1345
+ color2: "hsla(236.1, 80.4%, 70%, 1)",
1346
+ color3: "hsla(0, 0%, 100%, 1)",
1347
+ proportion: 0,
1348
+ softness: 1,
1349
+ distortion: 0.09,
1350
+ swirl: 0.48,
1351
+ swirlIterations: 4,
1352
+ shapeScale: 0.1,
1353
+ shape: PatternShapes.Edge
1354
+ }
1355
+ };
1356
+ var presetInk = {
1357
+ name: "Live Ink",
1358
+ params: {
1359
+ scale: 0.7,
1360
+ rotation: 1.5,
1361
+ speed: 0.25,
1362
+ frame: 0,
1363
+ color1: "hsla(210, 11.1%, 7.1%, 1)",
1364
+ color2: "hsla(165, 9%, 65.1%, 1)",
1365
+ color3: "hsla(84, 100%, 97.1%, 1)",
1366
+ proportion: 0.35,
1367
+ softness: 0,
1368
+ distortion: 0.25,
1369
+ swirl: 0.8,
1370
+ swirlIterations: 10,
1371
+ shapeScale: 0.26,
1372
+ shape: PatternShapes.Checks
1373
+ }
1374
+ };
1375
+ var presetIceberg = {
1376
+ name: "Iceberg",
1377
+ params: {
1378
+ scale: 1.1,
1379
+ rotation: 2,
1380
+ speed: 0.05,
1381
+ frame: 0,
1382
+ color1: "hsla(0, 0%, 100%, 1)",
1383
+ color2: "hsla(220, 38.7%, 32%, 1)",
1384
+ color3: "hsla(129.2, 41.9%, 6.1%, 1)",
1385
+ proportion: 0.3,
1386
+ softness: 1,
1387
+ distortion: 0.2,
1388
+ swirl: 0.86,
1389
+ swirlIterations: 7,
1390
+ shapeScale: 0,
1391
+ shape: PatternShapes.Checks
1392
+ }
1393
+ };
1394
+ var presetNectar = {
1395
+ name: "Nectar",
1396
+ params: {
1397
+ scale: 0.24,
1398
+ rotation: 0,
1399
+ speed: 0.42,
1400
+ frame: 0,
1401
+ color1: "hsla(37.5, 22.2%, 7.1%, 1)",
1402
+ color2: "hsla(38.5, 59.1%, 63.1%, 1)",
1403
+ color3: "hsla(37.6, 30%, 95.2%, 1)",
1404
+ proportion: 0.24,
1405
+ softness: 1,
1406
+ distortion: 0.21,
1407
+ swirl: 0.57,
1408
+ swirlIterations: 10,
1409
+ shapeScale: 0.32,
1410
+ shape: PatternShapes.Edge
1411
+ }
1412
+ };
1413
+ var presetFilteredLight = {
1414
+ name: "Filtered Light",
1415
+ params: {
1416
+ scale: 2,
1417
+ rotation: 0.44,
1418
+ speed: 0.32,
1419
+ frame: 0,
1420
+ color1: "hsla(60.2, 7.8%, 8.3%, 1)",
1421
+ color2: "hsla(64.4, 27.8%, 81%, 1)",
1422
+ color3: "hsla(60, 100%, 93.9%, 1)",
1423
+ proportion: 0.25,
1424
+ softness: 1,
1425
+ distortion: 0.06,
1426
+ swirl: 0,
1427
+ swirlIterations: 0,
1428
+ shapeScale: 0,
1429
+ shape: PatternShapes.Stripes
1430
+ }
1431
+ };
1432
+ var presetKelp = {
1433
+ name: "Kelp",
1434
+ params: {
1435
+ scale: 0.38,
1436
+ rotation: 0.6,
1437
+ speed: 2,
1438
+ frame: 0,
1439
+ color1: "hsla(79.3, 100%, 78%, 1)",
1440
+ color2: "hsla(112, 10.5%, 28%, 1)",
1441
+ color3: "hsla(203.3, 50%, 7.1%, 1)",
1442
+ proportion: 1,
1443
+ softness: 0,
1444
+ distortion: 0,
1445
+ swirl: 0.15,
1446
+ swirlIterations: 0,
1447
+ shapeScale: 0.74,
1448
+ shape: PatternShapes.Stripes
1449
+ }
1450
+ };
1451
+ var warpPresets = [
1452
+ defaultPreset11,
1453
+ presetAbyss,
1454
+ presetCauldron,
1455
+ presetFilteredLight,
1456
+ presetIceberg,
1457
+ presetInk,
1458
+ presetKelp,
1459
+ presetNectar,
1460
+ presetPassion,
1461
+ presetPhantom,
1462
+ presetSilk
1463
+ ];
1464
+ var Warp = ({
1465
+ scale,
1466
+ rotation,
1467
+ color1,
1468
+ color2,
1469
+ color3,
1470
+ proportion,
1471
+ softness,
1472
+ distortion,
1473
+ swirl,
1474
+ swirlIterations,
1475
+ shapeScale,
1476
+ shape,
1477
+ ...props
1478
+ }) => {
1479
+ const uniforms = useMemo12(() => {
1480
+ return {
1481
+ u_scale: scale ?? defaultPreset11.params.scale,
1482
+ u_rotation: rotation ?? defaultPreset11.params.rotation,
1483
+ u_color1: getShaderColorFromString11(color1, defaultPreset11.params.color1),
1484
+ u_color2: getShaderColorFromString11(color2, defaultPreset11.params.color2),
1485
+ u_color3: getShaderColorFromString11(color3, defaultPreset11.params.color2),
1486
+ u_proportion: proportion ?? defaultPreset11.params.proportion,
1487
+ u_softness: softness ?? defaultPreset11.params.softness,
1488
+ u_distortion: distortion ?? defaultPreset11.params.distortion,
1489
+ u_swirl: swirl ?? defaultPreset11.params.swirl,
1490
+ u_swirlIterations: swirlIterations ?? defaultPreset11.params.swirlIterations,
1491
+ u_shapeScale: shapeScale ?? defaultPreset11.params.shapeScale,
1492
+ u_shape: shape ?? defaultPreset11.params.shape
1493
+ };
1494
+ }, [
1495
+ scale,
1496
+ rotation,
1497
+ color1,
1498
+ color2,
1499
+ color3,
1500
+ proportion,
1501
+ softness,
1502
+ distortion,
1503
+ swirl,
1504
+ swirlIterations,
1505
+ shapeScale,
1506
+ shape
1507
+ ]);
1508
+ return /* @__PURE__ */ jsx12(ShaderMount, { ...props, fragmentShader: warpFragmentShader, uniforms });
1509
+ };
1510
+
1511
+ // packages/shaders-react/src/index.ts
1512
+ import { PatternShapes as PatternShapes2 } from "@paper-design/shaders";
1513
+
1514
+ // packages/shaders-react/src/shaders/god-rays.tsx
1515
+ import { useMemo as useMemo13 } from "react";
1516
+ import { getShaderColorFromString as getShaderColorFromString12, godRaysFragmentShader } from "@paper-design/shaders";
1517
+ import { jsx as jsx13 } from "react/jsx-runtime";
1518
+ var defaultPreset12 = {
1519
+ name: "Default",
1520
+ params: {
1521
+ colorBack: "hsla(215, 100%, 11%, 1)",
1522
+ color1: "hsla(45, 100%, 70%, 1)",
1523
+ color2: "hsla(10, 100%, 80%, 1)",
1524
+ color3: "hsla(178, 100%, 83%, 1)",
1525
+ offsetX: -0.6,
1526
+ offsetY: -0.6,
1527
+ frequency: 6,
1528
+ spotty: 0.28,
1529
+ midIntensity: 0.97,
1530
+ midSize: 2,
1531
+ density: 0.3,
1532
+ blending: 0,
1533
+ speed: 1,
1534
+ frame: 0
1535
+ }
1536
+ };
1537
+ var auroraPreset = {
1538
+ name: "Aurora",
1539
+ params: {
1540
+ colorBack: "hsla(0, 0%, 25%, 1)",
1541
+ color1: "hsla(239, 100%, 70%, 1)",
1542
+ color2: "hsla(150, 100%, 70%, 1)",
1543
+ color3: "hsla(200, 100%, 70%, 1)",
1544
+ offsetX: 0,
1545
+ offsetY: 1,
1546
+ frequency: 2.4,
1547
+ spotty: 0.9,
1548
+ midIntensity: 0.8,
1549
+ midSize: 2.1,
1550
+ density: 0.5,
1551
+ blending: 1,
1552
+ speed: 0.5,
1553
+ frame: 0
1554
+ }
1555
+ };
1556
+ var warpPreset = {
1557
+ name: "Warp",
1558
+ params: {
1559
+ colorBack: "hsla(0, 0%, 0%, 1)",
1560
+ color1: "hsla(317, 100%, 50%, 1)",
1561
+ color2: "hsla(25, 100%, 50%, 1)",
1562
+ color3: "hsla(0, 0%, 100%, 1)",
1563
+ offsetX: 0,
1564
+ offsetY: 0,
1565
+ frequency: 1.2,
1566
+ spotty: 0.15,
1567
+ midIntensity: 0,
1568
+ midSize: 0,
1569
+ density: 0.79,
1570
+ blending: 0.4,
1571
+ speed: 2,
1572
+ frame: 0
1573
+ }
1574
+ };
1575
+ var linearPreset = {
1576
+ name: "Linear",
1577
+ params: {
1578
+ colorBack: "hsla(0, 0%, 0%, 1)",
1579
+ color1: "hsl(0 0% 100% / 12%)",
1580
+ color2: "hsl(0 0% 100% / 24%)",
1581
+ color3: "hsl(0 0% 100% / 16%)",
1582
+ offsetX: 0.2,
1583
+ offsetY: -0.7,
1584
+ frequency: 1.2,
1585
+ spotty: 0.25,
1586
+ midSize: 1.1,
1587
+ midIntensity: 0.75,
1588
+ density: 0.79,
1589
+ blending: 1,
1590
+ speed: 0.5,
1591
+ frame: 0
1592
+ }
1593
+ };
1594
+ var etherPreset = {
1595
+ name: "Ether",
1596
+ params: {
1597
+ colorBack: "hsl(226.7 50% 7.1% / 100%)",
1598
+ color1: "hsl(215 100% 53.9% / 65.1%)",
1599
+ color2: "hsl(214.4 85.9% 86.1% / 74.9%)",
1600
+ color3: "hsl(225 31.4% 20% / 100%)",
1601
+ offsetX: -0.6,
1602
+ offsetY: 0,
1603
+ frequency: 0.3,
1604
+ spotty: 0.77,
1605
+ midSize: 1.1,
1606
+ midIntensity: 0.5,
1607
+ density: 0.6,
1608
+ blending: 0.6,
1609
+ speed: 1,
1610
+ frame: 0
1611
+ }
1612
+ };
1613
+ var godRaysPresets = [defaultPreset12, auroraPreset, warpPreset, linearPreset, etherPreset];
1614
+ var GodRays = ({
1615
+ colorBack,
1616
+ color1,
1617
+ color2,
1618
+ color3,
1619
+ offsetX,
1620
+ offsetY,
1621
+ frequency,
1622
+ spotty,
1623
+ midIntensity,
1624
+ midSize,
1625
+ density,
1626
+ blending,
1627
+ ...props
1628
+ }) => {
1629
+ const uniforms = useMemo13(() => {
1630
+ return {
1631
+ u_colorBack: getShaderColorFromString12(colorBack, defaultPreset12.params.colorBack),
1632
+ u_color1: getShaderColorFromString12(color1, defaultPreset12.params.color1),
1633
+ u_color2: getShaderColorFromString12(color2, defaultPreset12.params.color2),
1634
+ u_color3: getShaderColorFromString12(color3, defaultPreset12.params.color3),
1635
+ u_offsetX: offsetX ?? defaultPreset12.params.offsetX,
1636
+ u_offsetY: offsetY ?? defaultPreset12.params.offsetY,
1637
+ u_frequency: frequency ?? defaultPreset12.params.frequency,
1638
+ u_spotty: spotty ?? defaultPreset12.params.spotty,
1639
+ u_midIntensity: midIntensity ?? defaultPreset12.params.midIntensity,
1640
+ u_midSize: midSize ?? defaultPreset12.params.midSize,
1641
+ u_density: density ?? defaultPreset12.params.density,
1642
+ u_blending: blending ?? defaultPreset12.params.blending
1643
+ };
1644
+ }, [
1645
+ colorBack,
1646
+ color1,
1647
+ color2,
1648
+ color3,
1649
+ offsetX,
1650
+ offsetY,
1651
+ frequency,
1652
+ spotty,
1653
+ midIntensity,
1654
+ midSize,
1655
+ density,
1656
+ blending
1657
+ ]);
1658
+ return /* @__PURE__ */ jsx13(ShaderMount, { ...props, fragmentShader: godRaysFragmentShader, uniforms });
1659
+ };
1660
+
1661
+ // packages/shaders-react/src/index.ts
1662
+ import {} from "@paper-design/shaders";
1663
+
1664
+ // packages/shaders-react/src/shaders/spiral.tsx
1665
+ import { useMemo as useMemo14 } from "react";
1666
+ import { getShaderColorFromString as getShaderColorFromString13, spiralFragmentShader } from "@paper-design/shaders";
1667
+ import { jsx as jsx14 } from "react/jsx-runtime";
1668
+ var defaultPreset13 = {
1669
+ name: "Default",
1670
+ params: {
1671
+ color1: "hsla(0, 0%, 98%, 1)",
1672
+ color2: "hsla(0, 0%, 50%, 1)",
1673
+ scale: 1,
1674
+ offsetX: 0,
1675
+ offsetY: 0,
1676
+ spiralDensity: 0,
1677
+ spiralDistortion: 0,
1678
+ strokeWidth: 0.5,
1679
+ strokeTaper: 0,
1680
+ strokeCap: 0,
1681
+ noiseFreq: 0,
1682
+ noisePower: 0,
1683
+ softness: 0.01,
1684
+ speed: 1,
1685
+ frame: 0
1686
+ }
1687
+ };
1688
+ var noisyPreset = {
1689
+ name: "Noisy",
1690
+ params: {
1691
+ color1: "hsla(87, 77%, 53%, 1)",
1692
+ color2: "hsla(109, 70%, 31%, 1)",
1693
+ scale: 1.3,
1694
+ offsetX: 0,
1695
+ offsetY: 0,
1696
+ spiralDensity: 0.5,
1697
+ spiralDistortion: 0,
1698
+ strokeWidth: 0.5,
1699
+ strokeTaper: 0,
1700
+ strokeCap: 0.5,
1701
+ noiseFreq: 0.1,
1702
+ noisePower: 1,
1703
+ softness: 0,
1704
+ speed: 1,
1705
+ frame: 0
1706
+ }
1707
+ };
1708
+ var dropletPreset = {
1709
+ name: "Droplet",
1710
+ params: {
1711
+ color1: "hsla(320, 50%, 50%, 1)",
1712
+ color2: "hsla(190, 50%, 95%, 1)",
1713
+ scale: 0.65,
1714
+ offsetX: 0,
1715
+ offsetY: 0,
1716
+ spiralDensity: 0,
1717
+ spiralDistortion: 0,
1718
+ strokeWidth: 0.05,
1719
+ strokeTaper: 0,
1720
+ strokeCap: 1,
1721
+ noiseFreq: 0,
1722
+ noisePower: 0,
1723
+ softness: 0,
1724
+ speed: 1,
1725
+ frame: 0
1726
+ }
1727
+ };
1728
+ var sandPreset = {
1729
+ name: "Sand",
1730
+ params: {
1731
+ color1: "hsla(45, 25%, 50%, 1)",
1732
+ color2: "hsla(0, 0%, 87%, 1)",
1733
+ scale: 3,
1734
+ offsetX: 0,
1735
+ offsetY: 0,
1736
+ spiralDensity: 0,
1737
+ spiralDistortion: 0,
1738
+ strokeWidth: 0.15,
1739
+ strokeTaper: 0,
1740
+ strokeCap: 0,
1741
+ noiseFreq: 30,
1742
+ noisePower: 1,
1743
+ softness: 0.2,
1744
+ speed: 0,
1745
+ frame: 0
1746
+ }
1747
+ };
1748
+ var swirlPreset = {
1749
+ name: "Swirl",
1750
+ params: {
1751
+ color1: "hsla(160, 50%, 80%, 1)",
1752
+ color2: "hsla(220, 50%, 20%, 1)",
1753
+ scale: 4,
1754
+ offsetX: 0,
1755
+ offsetY: 0,
1756
+ spiralDensity: 0.8,
1757
+ spiralDistortion: 0,
1758
+ strokeWidth: 0.5,
1759
+ strokeTaper: 0,
1760
+ strokeCap: 0,
1761
+ noiseFreq: 0,
1762
+ noisePower: 0,
1763
+ softness: 0.5,
1764
+ speed: 1,
1765
+ frame: 0
1766
+ }
1767
+ };
1768
+ var hookPreset = {
1769
+ name: "Hook",
1770
+ params: {
1771
+ color1: "hsla(0, 0%, 0%, 1)",
1772
+ color2: "hsla(200, 50%, 70%, 1)",
1773
+ scale: 0.8,
1774
+ offsetX: 0,
1775
+ offsetY: 0,
1776
+ spiralDensity: 0,
1777
+ spiralDistortion: 0,
1778
+ strokeWidth: 0.5,
1779
+ strokeTaper: 0.5,
1780
+ strokeCap: 0,
1781
+ noiseFreq: 0,
1782
+ noisePower: 0,
1783
+ softness: 0.02,
1784
+ speed: 3,
1785
+ frame: 0
1786
+ }
1787
+ };
1788
+ var vinylPreset = {
1789
+ name: "Vinyl",
1790
+ params: {
1791
+ color1: "hsla(0, 0%, 15%, 1)",
1792
+ color2: "hsla(320, 5%, 75%, 1)",
1793
+ scale: 1,
1794
+ offsetX: 0,
1795
+ offsetY: 0,
1796
+ spiralDensity: 0,
1797
+ spiralDistortion: 0.3,
1798
+ strokeWidth: 0.95,
1799
+ strokeTaper: 0,
1800
+ strokeCap: 1,
1801
+ noiseFreq: 0,
1802
+ noisePower: 0,
1803
+ softness: 0.11,
1804
+ speed: 1,
1805
+ frame: 0
1806
+ }
1807
+ };
1808
+ var spiralPresets = [
1809
+ defaultPreset13,
1810
+ noisyPreset,
1811
+ dropletPreset,
1812
+ swirlPreset,
1813
+ sandPreset,
1814
+ hookPreset,
1815
+ vinylPreset
1816
+ ];
1817
+ var Spiral = ({
1818
+ color1,
1819
+ color2,
1820
+ scale,
1821
+ offsetX,
1822
+ offsetY,
1823
+ spiralDensity,
1824
+ spiralDistortion,
1825
+ strokeWidth,
1826
+ strokeTaper,
1827
+ strokeCap,
1828
+ noiseFreq,
1829
+ noisePower,
1830
+ softness,
1831
+ ...props
1832
+ }) => {
1833
+ const uniforms = useMemo14(() => {
1834
+ return {
1835
+ u_color1: getShaderColorFromString13(color1, defaultPreset13.params.color1),
1836
+ u_color2: getShaderColorFromString13(color2, defaultPreset13.params.color2),
1837
+ u_scale: scale ?? defaultPreset13.params.scale,
1838
+ u_offsetX: offsetX ?? defaultPreset13.params.offsetX,
1839
+ u_offsetY: offsetY ?? defaultPreset13.params.offsetY,
1840
+ u_spiralDensity: spiralDensity ?? defaultPreset13.params.spiralDensity,
1841
+ u_spiralDistortion: spiralDistortion ?? defaultPreset13.params.spiralDistortion,
1842
+ u_strokeWidth: strokeWidth ?? defaultPreset13.params.strokeWidth,
1843
+ u_strokeTaper: strokeTaper ?? defaultPreset13.params.strokeTaper,
1844
+ u_strokeCap: strokeCap ?? defaultPreset13.params.strokeCap,
1845
+ u_noiseFreq: noiseFreq ?? defaultPreset13.params.noiseFreq,
1846
+ u_noisePower: noisePower ?? defaultPreset13.params.noisePower,
1847
+ u_softness: softness ?? defaultPreset13.params.softness
1848
+ };
1849
+ }, [
1850
+ color1,
1851
+ color2,
1852
+ scale,
1853
+ offsetX,
1854
+ offsetY,
1855
+ spiralDensity,
1856
+ spiralDistortion,
1857
+ strokeWidth,
1858
+ strokeTaper,
1859
+ strokeCap,
1860
+ noiseFreq,
1861
+ noisePower,
1862
+ softness
1863
+ ]);
1864
+ return /* @__PURE__ */ jsx14(ShaderMount, { ...props, fragmentShader: spiralFragmentShader, uniforms });
1865
+ };
1866
+
1867
+ // packages/shaders-react/src/index.ts
1868
+ import {} from "@paper-design/shaders";
1869
+ import { getShaderColorFromString as getShaderColorFromString14 } from "@paper-design/shaders";
1870
+ export {
1871
+ DotGrid,
1872
+ DotGridShapes2 as DotGridShapes,
1873
+ DotOrbit,
1874
+ GodRays,
1875
+ MeshGradient,
1876
+ Metaballs,
1877
+ NeuroNoise,
1878
+ PatternShapes2 as PatternShapes,
1879
+ PerlinNoise,
1880
+ ShaderMount,
1881
+ SmokeRing,
1882
+ Spiral,
1883
+ SteppedSimplexNoise,
1884
+ Voronoi,
1885
+ Warp,
1886
+ Waves,
1887
+ dotGridPresets,
1888
+ dotOrbitPresets,
1889
+ getShaderColorFromString14 as getShaderColorFromString,
1890
+ godRaysPresets,
1891
+ meshGradientPresets,
1892
+ metaballsPresets,
1893
+ neuroNoisePresets,
1894
+ perlinNoisePresets,
1895
+ smokeRingPresets,
1896
+ spiralPresets,
1897
+ steppedSimplexNoisePresets,
1898
+ voronoiPresets,
1899
+ warpPresets,
1900
+ wavesPresets
1901
+ };
3
1902
  //# sourceMappingURL=index.js.map