@paper-design/shaders-react 0.0.28 → 0.0.30

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.
Files changed (67) hide show
  1. package/dist/color-props-are-equal.d.ts +6 -0
  2. package/dist/color-props-are-equal.js +34 -0
  3. package/dist/color-props-are-equal.js.map +7 -0
  4. package/dist/index.d.ts +46 -41
  5. package/dist/index.js +90 -2
  6. package/dist/index.js.map +4 -4
  7. package/dist/shader-mount.d.ts +15 -13
  8. package/dist/shader-mount.js +120 -0
  9. package/dist/shader-mount.js.map +7 -0
  10. package/dist/shaders/dithering.d.ts +15 -0
  11. package/dist/shaders/dithering.js +179 -0
  12. package/dist/shaders/dithering.js.map +7 -0
  13. package/dist/shaders/dot-grid.d.ts +6 -20
  14. package/dist/shaders/dot-grid.js +230 -0
  15. package/dist/shaders/dot-grid.js.map +7 -0
  16. package/dist/shaders/dot-orbit.d.ts +6 -18
  17. package/dist/shaders/dot-orbit.js +77 -0
  18. package/dist/shaders/dot-orbit.js.map +7 -0
  19. package/dist/shaders/god-rays.d.ts +6 -22
  20. package/dist/shaders/god-rays.js +160 -0
  21. package/dist/shaders/god-rays.js.map +7 -0
  22. package/dist/shaders/grain-gradient.d.ts +16 -0
  23. package/dist/shaders/grain-gradient.js +197 -0
  24. package/dist/shaders/grain-gradient.js.map +7 -0
  25. package/dist/shaders/liquid-metal.d.ts +9 -0
  26. package/dist/shaders/liquid-metal.js +87 -0
  27. package/dist/shaders/liquid-metal.js.map +7 -0
  28. package/dist/shaders/mesh-gradient.d.ts +7 -15
  29. package/dist/shaders/mesh-gradient.js +104 -0
  30. package/dist/shaders/mesh-gradient.js.map +7 -0
  31. package/dist/shaders/metaballs.d.ts +6 -16
  32. package/dist/shaders/metaballs.js +72 -0
  33. package/dist/shaders/metaballs.js.map +7 -0
  34. package/dist/shaders/neuro-noise.d.ts +6 -14
  35. package/dist/shaders/neuro-noise.js +82 -0
  36. package/dist/shaders/neuro-noise.js.map +7 -0
  37. package/dist/shaders/perlin-noise.d.ts +6 -17
  38. package/dist/shaders/perlin-noise.js +183 -0
  39. package/dist/shaders/perlin-noise.js.map +7 -0
  40. package/dist/shaders/pulsing-border.d.ts +11 -0
  41. package/dist/shaders/pulsing-border.js +153 -0
  42. package/dist/shaders/pulsing-border.js.map +7 -0
  43. package/dist/shaders/simplex-noise.d.ts +9 -0
  44. package/dist/shaders/simplex-noise.js +80 -0
  45. package/dist/shaders/simplex-noise.js.map +7 -0
  46. package/dist/shaders/smoke-ring.d.ts +8 -18
  47. package/dist/shaders/smoke-ring.js +134 -0
  48. package/dist/shaders/smoke-ring.js.map +7 -0
  49. package/dist/shaders/spiral.d.ts +6 -23
  50. package/dist/shaders/spiral.js +218 -0
  51. package/dist/shaders/spiral.js.map +7 -0
  52. package/dist/shaders/swirl.d.ts +12 -0
  53. package/dist/shaders/swirl.js +137 -0
  54. package/dist/shaders/swirl.js.map +7 -0
  55. package/dist/shaders/voronoi.d.ts +7 -28
  56. package/dist/shaders/voronoi.js +102 -0
  57. package/dist/shaders/voronoi.js.map +7 -0
  58. package/dist/shaders/warp.d.ts +6 -23
  59. package/dist/shaders/warp.js +290 -0
  60. package/dist/shaders/warp.js.map +7 -0
  61. package/dist/shaders/waves.d.ts +6 -19
  62. package/dist/shaders/waves.js +178 -0
  63. package/dist/shaders/waves.js.map +7 -0
  64. package/dist/use-merge-refs.js +48 -0
  65. package/dist/use-merge-refs.js.map +7 -0
  66. package/package.json +13 -4
  67. package/dist/shaders/stepped-simplex-noise.d.ts +0 -20
@@ -0,0 +1,6 @@
1
+ interface PropsWithColors {
2
+ colors?: string[];
3
+ [key: string]: unknown;
4
+ }
5
+ export declare function colorPropsAreEqual(prevProps: PropsWithColors, nextProps: PropsWithColors): boolean;
6
+ export {};
@@ -0,0 +1,34 @@
1
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * *
2
+ * Paper Shaders *
3
+ * https://github.com/paper-design/shaders *
4
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5
+
6
+ function colorPropsAreEqual(prevProps, nextProps) {
7
+ for (const key in prevProps) {
8
+ if (key === "colors") {
9
+ const prevIsArray = Array.isArray(prevProps.colors);
10
+ const nextIsArray = Array.isArray(nextProps.colors);
11
+ if (!prevIsArray || !nextIsArray) {
12
+ if (Object.is(prevProps.colors, nextProps.colors) === false) {
13
+ return false;
14
+ }
15
+ continue;
16
+ }
17
+ if (prevProps.colors?.length !== nextProps.colors?.length) {
18
+ return false;
19
+ }
20
+ if (!prevProps.colors?.every((color, index) => color === nextProps.colors?.[index])) {
21
+ return false;
22
+ }
23
+ continue;
24
+ }
25
+ if (Object.is(prevProps[key], nextProps[key]) === false) {
26
+ return false;
27
+ }
28
+ }
29
+ return true;
30
+ }
31
+ export {
32
+ colorPropsAreEqual
33
+ };
34
+ //# sourceMappingURL=color-props-are-equal.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/color-props-are-equal.ts"],
4
+ "sourcesContent": ["interface PropsWithColors {\n colors?: string[];\n [key: string]: unknown;\n}\n\nexport function colorPropsAreEqual(prevProps: PropsWithColors, nextProps: PropsWithColors): boolean {\n for (const key in prevProps) {\n if (key === 'colors') {\n const prevIsArray = Array.isArray(prevProps.colors);\n const nextIsArray = Array.isArray(nextProps.colors);\n\n if (!prevIsArray || !nextIsArray) {\n if (Object.is(prevProps.colors, nextProps.colors) === false) {\n return false;\n }\n\n continue;\n }\n\n if (prevProps.colors?.length !== nextProps.colors?.length) {\n return false;\n }\n\n if (!prevProps.colors?.every((color, index) => color === nextProps.colors?.[index])) {\n return false;\n }\n\n continue;\n }\n\n if (Object.is(prevProps[key], nextProps[key]) === false) {\n return false;\n }\n }\n\n return true;\n}\n"],
5
+ "mappings": ";;;;;AAKO,SAAS,mBAAmB,WAA4B,WAAqC;AAClG,aAAW,OAAO,WAAW;AAC3B,QAAI,QAAQ,UAAU;AACpB,YAAM,cAAc,MAAM,QAAQ,UAAU,MAAM;AAClD,YAAM,cAAc,MAAM,QAAQ,UAAU,MAAM;AAElD,UAAI,CAAC,eAAe,CAAC,aAAa;AAChC,YAAI,OAAO,GAAG,UAAU,QAAQ,UAAU,MAAM,MAAM,OAAO;AAC3D,iBAAO;AAAA,QACT;AAEA;AAAA,MACF;AAEA,UAAI,UAAU,QAAQ,WAAW,UAAU,QAAQ,QAAQ;AACzD,eAAO;AAAA,MACT;AAEA,UAAI,CAAC,UAAU,QAAQ,MAAM,CAAC,OAAO,UAAU,UAAU,UAAU,SAAS,KAAK,CAAC,GAAG;AACnF,eAAO;AAAA,MACT;AAEA;AAAA,IACF;AAEA,QAAI,OAAO,GAAG,UAAU,GAAG,GAAG,UAAU,GAAG,CAAC,MAAM,OAAO;AACvD,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;",
6
+ "names": []
7
+ }
package/dist/index.d.ts CHANGED
@@ -1,54 +1,59 @@
1
1
  export { ShaderMount } from './shader-mount';
2
+ export type { ShaderMountProps, ShaderComponentProps } from './shader-mount';
2
3
  export { MeshGradient, meshGradientPresets } from './shaders/mesh-gradient';
3
- export { type MeshGradientProps } from './shaders/mesh-gradient';
4
- export { type MeshGradientParams } from './shaders/mesh-gradient';
5
- export { type MeshGradientUniforms } from '@paper-design/shaders';
4
+ export type { MeshGradientProps } from './shaders/mesh-gradient';
5
+ export type { MeshGradientUniforms, MeshGradientParams } from '@paper-design/shaders';
6
6
  export { SmokeRing, smokeRingPresets } from './shaders/smoke-ring';
7
- export { type SmokeRingProps } from './shaders/smoke-ring';
8
- export { type SmokeRingParams } from './shaders/smoke-ring';
9
- export { type SmokeRingUniforms } from '@paper-design/shaders';
7
+ export type { SmokeRingProps } from './shaders/smoke-ring';
8
+ export type { SmokeRingUniforms, SmokeRingParams } from '@paper-design/shaders';
10
9
  export { NeuroNoise, neuroNoisePresets } from './shaders/neuro-noise';
11
- export { type NeuroNoiseProps } from './shaders/neuro-noise';
12
- export { type NeuroNoiseParams } from './shaders/neuro-noise';
13
- export { type NeuroNoiseUniforms } from '@paper-design/shaders';
10
+ export type { NeuroNoiseProps } from './shaders/neuro-noise';
11
+ export type { NeuroNoiseUniforms, NeuroNoiseParams } from '@paper-design/shaders';
14
12
  export { DotOrbit, dotOrbitPresets } from './shaders/dot-orbit';
15
- export { type DotOrbitProps } from './shaders/dot-orbit';
16
- export { type DotOrbitParams } from './shaders/dot-orbit';
17
- export { type DotOrbitUniforms } from '@paper-design/shaders';
13
+ export type { DotOrbitProps } from './shaders/dot-orbit';
14
+ export type { DotOrbitUniforms, DotOrbitParams } from '@paper-design/shaders';
18
15
  export { DotGrid, dotGridPresets } from './shaders/dot-grid';
19
- export { type DotGridProps } from './shaders/dot-grid';
20
- export { type DotGridParams } from './shaders/dot-grid';
21
- export { type DotGridUniforms, DotGridShapes, type DotGridShape } from '@paper-design/shaders';
22
- export { SteppedSimplexNoise, steppedSimplexNoisePresets } from './shaders/stepped-simplex-noise';
23
- export { type SteppedSimplexNoiseProps } from './shaders/stepped-simplex-noise';
24
- export { type SteppedSimplexNoiseParams } from './shaders/stepped-simplex-noise';
25
- export { type SteppedSimplexNoiseUniforms } from '@paper-design/shaders';
16
+ export type { DotGridProps } from './shaders/dot-grid';
17
+ export type { DotGridUniforms, DotGridParams, DotGridShape } from '@paper-design/shaders';
18
+ export { SimplexNoise, simplexNoisePresets } from './shaders/simplex-noise';
19
+ export type { SimplexNoiseProps } from './shaders/simplex-noise';
20
+ export type { SimplexNoiseUniforms, SimplexNoiseParams } from '@paper-design/shaders';
26
21
  export { Metaballs, metaballsPresets } from './shaders/metaballs';
27
- export { type MetaballsProps } from './shaders/metaballs';
28
- export { type MetaballsParams } from './shaders/metaballs';
29
- export { type MetaballsUniforms } from '@paper-design/shaders';
22
+ export type { MetaballsProps } from './shaders/metaballs';
23
+ export type { MetaballsUniforms, MetaballsParams } from '@paper-design/shaders';
30
24
  export { Waves, wavesPresets } from './shaders/waves';
31
- export { type WavesProps } from './shaders/waves';
32
- export { type WavesParams } from './shaders/waves';
33
- export { type WavesUniforms } from '@paper-design/shaders';
25
+ export type { WavesProps } from './shaders/waves';
26
+ export type { WavesUniforms, WavesParams } from '@paper-design/shaders';
34
27
  export { PerlinNoise, perlinNoisePresets } from './shaders/perlin-noise';
35
- export { type PerlinNoiseProps } from './shaders/perlin-noise';
36
- export { type PerlinNoiseParams } from './shaders/perlin-noise';
37
- export { type PerlinNoiseUniforms } from '@paper-design/shaders';
28
+ export type { PerlinNoiseProps } from './shaders/perlin-noise';
29
+ export type { PerlinNoiseUniforms, PerlinNoiseParams } from '@paper-design/shaders';
38
30
  export { Voronoi, voronoiPresets } from './shaders/voronoi';
39
- export { type VoronoiProps } from './shaders/voronoi';
40
- export { type VoronoiParams } from './shaders/voronoi';
41
- export { type VoronoiUniforms } from '@paper-design/shaders';
31
+ export type { VoronoiProps } from './shaders/voronoi';
32
+ export type { VoronoiUniforms, VoronoiParams } from '@paper-design/shaders';
42
33
  export { Warp, warpPresets } from './shaders/warp';
43
- export { type WarpProps } from './shaders/warp';
44
- export { type WarpParams } from './shaders/warp';
45
- export { type WarpUniforms, PatternShapes, type PatternShape } from '@paper-design/shaders';
34
+ export type { WarpProps } from './shaders/warp';
35
+ export type { WarpUniforms, WarpParams, WarpPattern } from '@paper-design/shaders';
46
36
  export { GodRays, godRaysPresets } from './shaders/god-rays';
47
- export { type GodRaysProps } from './shaders/god-rays';
48
- export { type GodRaysParams } from './shaders/god-rays';
49
- export { type GodRaysUniforms } from '@paper-design/shaders';
37
+ export type { GodRaysProps } from './shaders/god-rays';
38
+ export type { GodRaysUniforms, GodRaysParams } from '@paper-design/shaders';
50
39
  export { Spiral, spiralPresets } from './shaders/spiral';
51
- export { type SpiralProps } from './shaders/spiral';
52
- export { type SpiralParams } from './shaders/spiral';
53
- export { type SpiralUniforms } from '@paper-design/shaders';
54
- export { getShaderColorFromString } from '@paper-design/shaders';
40
+ export type { SpiralProps } from './shaders/spiral';
41
+ export type { SpiralUniforms, SpiralParams } from '@paper-design/shaders';
42
+ export { Swirl, swirlPresets } from './shaders/swirl';
43
+ export type { SwirlProps } from './shaders/swirl';
44
+ export type { SwirlUniforms, SwirlParams } from '@paper-design/shaders';
45
+ export { Dithering, ditheringPresets } from './shaders/dithering';
46
+ export type { DitheringProps } from './shaders/dithering';
47
+ export type { DitheringUniforms, DitheringParams } from '@paper-design/shaders';
48
+ export { GrainGradient, grainGradientPresets } from './shaders/grain-gradient';
49
+ export type { GrainGradientProps } from './shaders/grain-gradient';
50
+ export type { GrainGradientUniforms, GrainGradientParams } from '@paper-design/shaders';
51
+ export { LiquidMetal, liquidMetalPresets } from './shaders/liquid-metal';
52
+ export type { LiquidMetalProps } from './shaders/liquid-metal';
53
+ export type { LiquidMetalUniforms, LiquidMetalParams } from '@paper-design/shaders';
54
+ export { PulsingBorder, pulsingBorderPresets } from './shaders/pulsing-border';
55
+ export type { PulsingBorderProps } from './shaders/pulsing-border';
56
+ export type { PulsingBorderUniforms, PulsingBorderParams } from '@paper-design/shaders';
57
+ export { isPaperShaderElement, getShaderColorFromString } from '@paper-design/shaders';
58
+ export type { ShaderFit, ShaderSizingParams, ShaderSizingUniforms } from '@paper-design/shaders';
59
+ export { dotOrbitMeta, godRaysMeta, grainGradientMeta, meshGradientMeta, metaballsMeta, pulsingBorderMeta, simplexNoiseMeta, smokeRingMeta, swirlMeta, voronoiMeta, warpMeta, } from '@paper-design/shaders';
package/dist/index.js CHANGED
@@ -1,3 +1,91 @@
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};
1
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * *
2
+ * Paper Shaders *
3
+ * https://github.com/paper-design/shaders *
4
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5
+
6
+ import { ShaderMount } from "./shader-mount";
7
+ import { MeshGradient, meshGradientPresets } from "./shaders/mesh-gradient";
8
+ import { SmokeRing, smokeRingPresets } from "./shaders/smoke-ring";
9
+ import { NeuroNoise, neuroNoisePresets } from "./shaders/neuro-noise";
10
+ import { DotOrbit, dotOrbitPresets } from "./shaders/dot-orbit";
11
+ import { DotGrid, dotGridPresets } from "./shaders/dot-grid";
12
+ import { SimplexNoise, simplexNoisePresets } from "./shaders/simplex-noise";
13
+ import { Metaballs, metaballsPresets } from "./shaders/metaballs";
14
+ import { Waves, wavesPresets } from "./shaders/waves";
15
+ import { PerlinNoise, perlinNoisePresets } from "./shaders/perlin-noise";
16
+ import { Voronoi, voronoiPresets } from "./shaders/voronoi";
17
+ import { Warp, warpPresets } from "./shaders/warp";
18
+ import { GodRays, godRaysPresets } from "./shaders/god-rays";
19
+ import { Spiral, spiralPresets } from "./shaders/spiral";
20
+ import { Swirl, swirlPresets } from "./shaders/swirl";
21
+ import { Dithering, ditheringPresets } from "./shaders/dithering";
22
+ import { GrainGradient, grainGradientPresets } from "./shaders/grain-gradient";
23
+ import { LiquidMetal, liquidMetalPresets } from "./shaders/liquid-metal";
24
+ import { PulsingBorder, pulsingBorderPresets } from "./shaders/pulsing-border";
25
+ import { isPaperShaderElement, getShaderColorFromString } from "@paper-design/shaders";
26
+ import {
27
+ dotOrbitMeta,
28
+ godRaysMeta,
29
+ grainGradientMeta,
30
+ meshGradientMeta,
31
+ metaballsMeta,
32
+ pulsingBorderMeta,
33
+ simplexNoiseMeta,
34
+ smokeRingMeta,
35
+ swirlMeta,
36
+ voronoiMeta,
37
+ warpMeta
38
+ } from "@paper-design/shaders";
39
+ export {
40
+ Dithering,
41
+ DotGrid,
42
+ DotOrbit,
43
+ GodRays,
44
+ GrainGradient,
45
+ LiquidMetal,
46
+ MeshGradient,
47
+ Metaballs,
48
+ NeuroNoise,
49
+ PerlinNoise,
50
+ PulsingBorder,
51
+ ShaderMount,
52
+ SimplexNoise,
53
+ SmokeRing,
54
+ Spiral,
55
+ Swirl,
56
+ Voronoi,
57
+ Warp,
58
+ Waves,
59
+ ditheringPresets,
60
+ dotGridPresets,
61
+ dotOrbitMeta,
62
+ dotOrbitPresets,
63
+ getShaderColorFromString,
64
+ godRaysMeta,
65
+ godRaysPresets,
66
+ grainGradientMeta,
67
+ grainGradientPresets,
68
+ isPaperShaderElement,
69
+ liquidMetalPresets,
70
+ meshGradientMeta,
71
+ meshGradientPresets,
72
+ metaballsMeta,
73
+ metaballsPresets,
74
+ neuroNoisePresets,
75
+ perlinNoisePresets,
76
+ pulsingBorderMeta,
77
+ pulsingBorderPresets,
78
+ simplexNoiseMeta,
79
+ simplexNoisePresets,
80
+ smokeRingMeta,
81
+ smokeRingPresets,
82
+ spiralPresets,
83
+ swirlMeta,
84
+ swirlPresets,
85
+ voronoiMeta,
86
+ voronoiPresets,
87
+ warpMeta,
88
+ warpPresets,
89
+ wavesPresets
90
+ };
3
91
  //# 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/use-merge-refs.ts", "../src/shaders/mesh-gradient.tsx", "../src/index.ts", "../src/shaders/smoke-ring.tsx", "../src/shaders/neuro-noise.tsx", "../src/shaders/dot-orbit.tsx", "../src/shaders/dot-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", "../src/shaders/god-rays.tsx", "../src/shaders/spiral.tsx"],
4
- "sourcesContent": ["import React, { useEffect, useRef, forwardRef } from 'react';\nimport { ShaderMount as ShaderMountVanilla, type ShaderMountUniforms } from '@paper-design/shaders';\nimport { useMergeRefs } from './use-merge-refs';\n\n/** The React ShaderMount can also accept strings as uniform values, which will assumed to be URLs and loaded as images */\nexport type ShaderMountUniformsReact = { [key: string]: ShaderMountUniforms[keyof ShaderMountUniforms] | string };\n\nexport interface ShaderMountProps extends React.ComponentProps<'div'> {\n shaderMountRef?: React.RefObject<ShaderMountVanilla | null>;\n fragmentShader: string;\n uniforms?: ShaderMountUniformsReact;\n webGlContextAttributes?: WebGLContextAttributes;\n speed?: number;\n frame?: number;\n}\n\n/** Params that every shader can set as part of their controls */\nexport type GlobalParams = Pick<ShaderMountProps, 'speed' | 'frame'>;\n\n/** Parse the provided uniforms, turning URL strings into loaded images */\nconst processUniforms = (uniforms: ShaderMountUniformsReact): Promise<ShaderMountUniforms> => {\n const processedUniforms: ShaderMountUniforms = {};\n const imageLoadPromises: Promise<void>[] = [];\n\n const isValidUrl = (url: string): boolean => {\n try {\n // Handle absolute paths\n if (url.startsWith('/')) return true;\n // Check if it's a valid URL\n new URL(url);\n return true;\n } catch {\n return false;\n }\n };\n\n const isExternalUrl = (url: string): boolean => {\n try {\n if (url.startsWith('/')) return false;\n const urlObject = new URL(url, window.location.origin);\n return urlObject.origin !== window.location.origin;\n } catch {\n return false;\n }\n };\n\n Object.entries(uniforms).forEach(([key, value]) => {\n if (typeof value === 'string') {\n // Make sure the provided string is a valid URL or just skip trying to set this uniform entirely\n if (!isValidUrl(value)) {\n console.warn(`Uniform \"${key}\" has invalid URL \"${value}\". Skipping image loading.`);\n return;\n }\n\n const imagePromise = new Promise<void>((resolve, reject) => {\n const img = new Image();\n if (isExternalUrl(value)) {\n img.crossOrigin = 'anonymous';\n }\n img.onload = () => {\n processedUniforms[key] = img;\n resolve();\n };\n img.onerror = () => {\n console.error(`Could not set uniforms. Failed to load image at ${value}`);\n reject();\n };\n img.src = value;\n });\n imageLoadPromises.push(imagePromise);\n } else {\n processedUniforms[key] = value;\n }\n });\n\n return Promise.all(imageLoadPromises).then(() => processedUniforms);\n};\n\n/**\n * A React component that mounts a shader and updates its uniforms as the component's props change\n * If you pass a string as a uniform value, it will be assumed to be a URL and attempted to be loaded as an image\n */\nexport const ShaderMount: React.FC<ShaderMountProps> = forwardRef<HTMLDivElement, ShaderMountProps>(\n function ShaderMountImpl(\n {\n shaderMountRef: externalShaderMountRef,\n fragmentShader,\n uniforms = {},\n webGlContextAttributes,\n speed = 1,\n frame = 0,\n ...divProps\n },\n forwardedRef\n ) {\n const divRef = useRef<HTMLDivElement>(null);\n const shaderMountRef: React.RefObject<ShaderMountVanilla | null> = useRef<ShaderMountVanilla>(null);\n\n useEffect(() => {\n const initShader = async () => {\n const processedUniforms = await processUniforms(uniforms);\n\n if (divRef.current && !shaderMountRef.current) {\n shaderMountRef.current = new ShaderMountVanilla(\n divRef.current,\n fragmentShader,\n processedUniforms,\n webGlContextAttributes,\n speed,\n frame\n );\n\n if (externalShaderMountRef) {\n externalShaderMountRef.current = shaderMountRef.current;\n }\n }\n };\n\n initShader();\n\n return () => {\n shaderMountRef.current?.dispose();\n shaderMountRef.current = null;\n };\n }, [fragmentShader, webGlContextAttributes]);\n\n useEffect(() => {\n const updateUniforms = async () => {\n const processedUniforms = await processUniforms(uniforms);\n shaderMountRef.current?.setUniforms(processedUniforms);\n };\n\n updateUniforms();\n }, [uniforms]);\n\n useEffect(() => {\n shaderMountRef.current?.setSpeed(speed);\n }, [speed]);\n\n useEffect(() => {\n shaderMountRef.current?.setFrame(frame);\n }, [frame]);\n\n return <div ref={useMergeRefs([divRef, forwardedRef])} {...divProps} />;\n }\n);\n\nShaderMount.displayName = 'ShaderMount';\n", "import * as React from 'react';\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/react-utils#usemergerefs\n */\nexport function useMergeRefs<Instance>(refs: Array<React.Ref<Instance> | undefined>): null | React.Ref<Instance> {\n const cleanupRef = React.useRef<void | (() => void)>(undefined);\n\n const refEffect = React.useCallback((instance: Instance | null) => {\n const cleanups = refs.map((ref) => {\n if (ref == null) {\n return;\n }\n\n if (typeof ref === 'function') {\n const refCallback = ref;\n const refCleanup: void | (() => void) = refCallback(instance);\n return typeof refCleanup === 'function'\n ? refCleanup\n : () => {\n refCallback(null);\n };\n }\n\n (ref as React.MutableRefObject<Instance | null>).current = instance;\n return () => {\n (ref as React.MutableRefObject<Instance | null>).current = null;\n };\n });\n\n return () => {\n cleanups.forEach((refCleanup) => refCleanup?.());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n\n return React.useMemo(() => {\n if (refs.every((ref) => ref == null)) {\n return null;\n }\n\n return (value) => {\n if (cleanupRef.current) {\n cleanupRef.current();\n (cleanupRef as React.MutableRefObject<void | (() => void)>).current = undefined;\n }\n\n if (value != null) {\n (cleanupRef as React.MutableRefObject<void | (() => void)>).current = refEffect(value);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\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>; style?: React.CSSProperties };\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 frame: 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};\n\nexport const beachPreset: MeshGradientPreset = {\n name: 'Beach',\n params: {\n speed: 0.1,\n frame: 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 frame: 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 = ({ color1, color2, color3, color4, ...props }: MeshGradientProps): React.ReactElement => {\n const uniforms: MeshGradientUniforms = useMemo(() => {\n return {\n u_color1: getShaderColorFromString(color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(color2, defaultPreset.params.color2),\n u_color3: getShaderColorFromString(color3, defaultPreset.params.color3),\n u_color4: getShaderColorFromString(color4, defaultPreset.params.color4),\n };\n }, [color1, color2, color3, color4]);\n\n return <ShaderMount {...props} fragmentShader={meshGradientFragmentShader} uniforms={uniforms} />;\n};\n", "// ----- ShaderMount ----- //\nexport { ShaderMount } from './shader-mount';\n\n// ----- Fragment 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 dot pattern: orbit type of animation\nexport { DotOrbit, dotOrbitPresets } from './shaders/dot-orbit';\nexport { type DotOrbitProps } from './shaders/dot-orbit';\nexport { type DotOrbitParams } from './shaders/dot-orbit';\nexport { type DotOrbitUniforms } from '@paper-design/shaders';\n\n// Dot Grid\nexport { DotGrid, dotGridPresets } from './shaders/dot-grid';\nexport { type DotGridProps } from './shaders/dot-grid';\nexport { type DotGridParams } from './shaders/dot-grid';\nexport { type DotGridUniforms, DotGridShapes, type DotGridShape } 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// God Rays effect\nexport { GodRays, godRaysPresets } from './shaders/god-rays';\nexport { type GodRaysProps } from './shaders/god-rays';\nexport { type GodRaysParams } from './shaders/god-rays';\nexport { type GodRaysUniforms } from '@paper-design/shaders';\n\n// Single-colored spiral shape\nexport { Spiral, spiralPresets } from './shaders/spiral';\nexport { type SpiralProps } from './shaders/spiral';\nexport { type SpiralParams } from './shaders/spiral';\nexport { type SpiralUniforms } 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, smokeRingFragmentShader, type SmokeRingUniforms } from '@paper-design/shaders';\n\nexport type SmokeRingParams = {\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>; style?: React.CSSProperties };\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: 0.5,\n frame: 0,\n colorInner: 'hsla(0, 0%, 100%, 1)',\n colorOuter: 'hsla(38, 4%, 38%, 1)',\n noiseScale: 1,\n thickness: 0.5,\n },\n};\n\nexport const cloudPreset: SmokeRingPreset = {\n name: 'Cloud',\n params: {\n scale: 1,\n speed: 1,\n frame: 0,\n colorInner: 'hsla(0, 0%, 100%, 1)',\n colorOuter: 'hsla(0, 0%, 100%, 1)',\n noiseScale: 1.8,\n thickness: 0.7,\n },\n style: {\n background: 'hsla(218, 100%, 62%, 1)',\n },\n};\n\nexport const firePreset: SmokeRingPreset = {\n name: 'Fire',\n params: {\n scale: 1,\n speed: 4,\n frame: 0,\n colorInner: 'hsla(40, 100%, 50%, 1)',\n colorOuter: 'hsla(0, 100%, 50%, 1)',\n noiseScale: 1.4,\n thickness: 0.35,\n },\n style: {\n background: 'hsla(20, 100%, 5%, 1)',\n },\n};\n\nexport const electricPreset: SmokeRingPreset = {\n name: 'Electric',\n params: {\n scale: 1,\n speed: -2.5,\n frame: 0,\n colorInner: 'hsla(47, 100%, 64%, 1)',\n colorOuter: 'hsla(47, 100%, 64%, 1)',\n noiseScale: 1.8,\n thickness: 0.1,\n },\n style: {\n background: 'hsla(47, 50%, 7%, 1)',\n },\n};\n\nexport const poisonPreset: SmokeRingPreset = {\n name: 'Poison',\n params: {\n scale: 1,\n speed: 3,\n frame: 0,\n colorInner: 'hsla(120, 100%, 3%, 1)',\n colorOuter: 'hsla(120, 100%, 66%, 1)',\n noiseScale: 5,\n thickness: 0.6,\n },\n style: {\n background: 'hsla(120, 100%, 3%, 1)',\n },\n};\n\nexport const smokeRingPresets: SmokeRingPreset[] = [\n defaultPreset,\n cloudPreset,\n firePreset,\n electricPreset,\n poisonPreset,\n];\n\nexport const SmokeRing = ({\n scale,\n colorInner,\n colorOuter,\n noiseScale,\n thickness,\n ...props\n}: SmokeRingProps): React.ReactElement => {\n const uniforms: SmokeRingUniforms = useMemo(() => {\n return {\n u_scale: scale ?? defaultPreset.params.scale,\n u_colorInner: getShaderColorFromString(colorInner, defaultPreset.params.colorInner),\n u_colorOuter: getShaderColorFromString(colorOuter, defaultPreset.params.colorOuter),\n u_noiseScale: noiseScale ?? defaultPreset.params.noiseScale,\n u_thickness: thickness ?? defaultPreset.params.thickness,\n };\n }, [scale, colorInner, colorOuter, noiseScale, 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>; style?: React.CSSProperties };\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 frame: 0,\n colorFront: 'hsla(261, 100%, 82%, 1)',\n colorBack: 'hsla(0, 0%, 0%, 1)',\n brightness: 1.3,\n },\n};\n\nconst marblePreset: NeuroNoisePreset = {\n name: 'Marble',\n params: {\n scale: 0.4,\n speed: 0,\n frame: 0,\n colorFront: 'hsla(230, 24%, 15%, 1)',\n colorBack: 'hsla(0, 0%, 97%, 1)',\n brightness: 1.1,\n },\n};\n\nexport const neuroNoisePresets: NeuroNoisePreset[] = [defaultPreset, marblePreset] as const;\n\nexport const NeuroNoise = ({\n scale,\n colorFront,\n colorBack,\n brightness,\n ...props\n}: NeuroNoiseProps): React.ReactElement => {\n const uniforms: NeuroNoiseUniforms = useMemo(() => {\n return {\n u_scale: scale ?? defaultPreset.params.scale,\n u_colorFront: getShaderColorFromString(colorFront, defaultPreset.params.colorFront),\n u_colorBack: getShaderColorFromString(colorBack, defaultPreset.params.colorBack),\n u_brightness: brightness ?? defaultPreset.params.brightness,\n };\n }, [scale, colorFront, colorBack, 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, dotOrbitFragmentShader, type DotOrbitUniforms } from '@paper-design/shaders';\n\nexport type DotOrbitParams = {\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 DotOrbitProps = Omit<ShaderMountProps, 'fragmentShader'> & DotOrbitParams;\n\ntype DotOrbitPreset = { name: string; params: Required<DotOrbitParams>; style?: React.CSSProperties };\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: DotOrbitPreset = {\n name: 'Default',\n params: {\n scale: 1,\n speed: 2,\n frame: 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};\n\nexport const dotOrbitPresets: DotOrbitPreset[] = [defaultPreset];\n\nexport const DotOrbit = ({\n scale,\n color1,\n color2,\n color3,\n color4,\n dotSize,\n dotSizeRange,\n spreading,\n ...props\n}: DotOrbitProps): React.ReactElement => {\n const uniforms: DotOrbitUniforms = useMemo(() => {\n return {\n u_scale: scale ?? defaultPreset.params.scale,\n u_color1: getShaderColorFromString(color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(color2, defaultPreset.params.color2),\n u_color3: getShaderColorFromString(color3, defaultPreset.params.color3),\n u_color4: getShaderColorFromString(color4, defaultPreset.params.color4),\n u_dotSize: dotSize ?? defaultPreset.params.dotSize,\n u_dotSizeRange: dotSizeRange ?? defaultPreset.params.dotSizeRange,\n u_spreading: spreading ?? defaultPreset.params.spreading,\n };\n }, [scale, color1, color2, color3, color4, dotSize, dotSizeRange, spreading]);\n\n return <ShaderMount {...props} fragmentShader={dotOrbitFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type ShaderMountProps } from '../shader-mount';\nimport {\n dotGridFragmentShader,\n getShaderColorFromString,\n type DotGridUniforms,\n type DotGridShape,\n DotGridShapes,\n} from '@paper-design/shaders';\n\nexport type DotGridParams = {\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?: DotGridShape;\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 DotGridProps = Omit<ShaderMountProps, 'fragmentShader'> & DotGridParams;\n\ntype DotGridPreset = { name: string; params: Required<DotGridParams>; style?: React.CSSProperties };\n\nexport const defaultPreset: DotGridPreset = {\n name: 'Default',\n params: {\n colorFill: 'hsla(0, 0%, 0%, 1)',\n colorStroke: 'hsla(40, 100%, 50%, 1)',\n dotSize: 2,\n gridSpacingX: 50,\n gridSpacingY: 50,\n strokeWidth: 0,\n sizeRange: 0,\n opacityRange: 0,\n shape: DotGridShapes.Circle,\n },\n};\n\nexport const macrodataPreset: DotGridPreset = {\n name: 'Macrodata',\n params: {\n colorFill: 'hsla(218, 100%, 67%, 1)',\n colorStroke: 'hsla(0, 0%, 0%, 1)',\n dotSize: 3,\n gridSpacingX: 25,\n gridSpacingY: 25,\n strokeWidth: 0,\n sizeRange: 0.25,\n opacityRange: 0.9,\n shape: DotGridShapes.Circle,\n },\n style: {\n background: 'hsla(211, 37%, 13%, 1)',\n },\n};\n\nconst trianglesPreset: DotGridPreset = {\n name: 'Triangles',\n params: {\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: DotGridShapes.Triangle,\n },\n style: {\n background: 'hsla(0, 0%, 100%, 1)',\n },\n};\n\nconst bubblesPreset: DotGridPreset = {\n name: 'Bubbles',\n params: {\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: DotGridShapes.Circle,\n },\n style: {\n background: 'hsla(234, 100%, 31%, .5)',\n },\n};\n\nconst treeLinePreset: DotGridPreset = {\n name: 'Tree line',\n params: {\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: DotGridShapes.Circle,\n },\n style: {\n background: 'hsla(100, 100%, 36%, .05)',\n },\n};\n\nconst diamondsPreset: DotGridPreset = {\n name: 'Diamonds',\n params: {\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: DotGridShapes.Diamond,\n },\n style: {\n background: 'hsla(0, 0%, 0%, 0)',\n },\n};\n\nconst wallpaperPreset: DotGridPreset = {\n name: 'Wallpaper',\n params: {\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: DotGridShapes.Diamond,\n },\n style: {\n background: 'hsla(154, 33%, 19%, 1)',\n },\n};\n\nconst matrixPreset: DotGridPreset = {\n name: 'Enter the Matrix',\n params: {\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: DotGridShapes.Triangle,\n },\n style: {\n background: 'hsla(0, 100%, 0%, 1)',\n },\n};\n\nconst waveformPreset: DotGridPreset = {\n name: 'Waveform',\n params: {\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: DotGridShapes.Square,\n },\n style: {\n background: 'hsla(0, 100%, 100%, 1)',\n },\n};\n\nexport const dotGridPresets: DotGridPreset[] = [\n defaultPreset,\n macrodataPreset,\n trianglesPreset,\n bubblesPreset,\n treeLinePreset,\n diamondsPreset,\n wallpaperPreset,\n matrixPreset,\n waveformPreset,\n];\n\nexport const DotGrid = ({\n colorFill,\n colorStroke,\n dotSize,\n gridSpacingX,\n gridSpacingY,\n strokeWidth,\n sizeRange,\n opacityRange,\n shape,\n ...props\n}: DotGridProps): React.ReactElement => {\n const uniforms: DotGridUniforms = useMemo(() => {\n return {\n u_colorFill: getShaderColorFromString(colorFill, defaultPreset.params.colorStroke),\n u_colorStroke: getShaderColorFromString(colorStroke, defaultPreset.params.colorStroke),\n u_dotSize: dotSize ?? defaultPreset.params.dotSize,\n u_gridSpacingX: gridSpacingX ?? defaultPreset.params.gridSpacingX,\n u_gridSpacingY: gridSpacingY ?? defaultPreset.params.gridSpacingY,\n u_strokeWidth: strokeWidth ?? defaultPreset.params.strokeWidth,\n u_sizeRange: sizeRange ?? defaultPreset.params.sizeRange,\n u_opacityRange: opacityRange ?? defaultPreset.params.opacityRange,\n u_shape: shape ?? defaultPreset.params.shape,\n };\n }, [colorFill, colorStroke, dotSize, gridSpacingX, gridSpacingY, strokeWidth, sizeRange, opacityRange, shape]);\n\n return <ShaderMount {...props} fragmentShader={dotGridFragmentShader} 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 = {\n name: string;\n params: Required<SteppedSimplexNoiseParams>;\n style?: React.CSSProperties;\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 const defaultPreset: SteppedSimplexNoisePreset = {\n name: 'Default',\n params: {\n scale: 1,\n speed: 0.15,\n frame: 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};\n\nconst magmaPreset: SteppedSimplexNoisePreset = {\n name: 'Magma',\n params: {\n scale: 0.3,\n speed: 0.2,\n frame: 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 frame: 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 frame: 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 = ({\n scale,\n color1,\n color2,\n color3,\n color4,\n color5,\n stepsNumber,\n ...props\n}: SteppedSimplexNoiseProps): React.ReactElement => {\n const uniforms: SteppedSimplexNoiseUniforms = useMemo(() => {\n return {\n u_scale: scale ?? defaultPreset.params.scale,\n u_color1: getShaderColorFromString(color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(color2, defaultPreset.params.color2),\n u_color3: getShaderColorFromString(color3, defaultPreset.params.color3),\n u_color4: getShaderColorFromString(color4, defaultPreset.params.color4),\n u_color5: getShaderColorFromString(color5, defaultPreset.params.color5),\n u_steps_number: stepsNumber ?? defaultPreset.params.stepsNumber,\n };\n }, [scale, color1, color2, color3, color4, color5, 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>; style?: React.CSSProperties };\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 frame: 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};\n\nexport const metaballsPresets: MetaballsPreset[] = [defaultPreset];\n\nexport const Metaballs = ({\n scale,\n color1,\n color2,\n color3,\n ballSize,\n visibilityRange,\n ...props\n}: MetaballsProps): React.ReactElement => {\n const uniforms: MetaballsUniforms = useMemo(() => {\n return {\n u_scale: scale ?? defaultPreset.params.scale,\n u_color1: getShaderColorFromString(color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(color2, defaultPreset.params.color2),\n u_color3: getShaderColorFromString(color3, defaultPreset.params.color3),\n u_ballSize: ballSize ?? defaultPreset.params.ballSize,\n u_visibilityRange: visibilityRange ?? defaultPreset.params.visibilityRange,\n };\n }, [scale, color1, color2, color3, ballSize, 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 color?: string;\n shape?: number;\n frequency?: number;\n amplitude?: number;\n spacing?: number;\n dutyCycle?: number;\n softness?: number;\n};\n\nexport type WavesProps = Omit<ShaderMountProps, 'fragmentShader'> & WavesParams;\n\ntype WavesPreset = { name: string; params: Required<WavesParams>; style?: React.CSSProperties };\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 color: '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 softness: 0,\n },\n};\n\nexport const spikesPreset: WavesPreset = {\n name: 'Spikes',\n params: {\n scale: 2.3,\n rotation: 0,\n color: '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 softness: 0.15,\n },\n style: {\n background: 'hsla(65, 100%, 95%, 1)',\n },\n};\n\nexport const groovyPreset: WavesPreset = {\n name: 'Groovy',\n params: {\n scale: 0.5,\n rotation: 1,\n color: '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 softness: 0,\n },\n style: {\n background: 'hsla(60, 100%, 97%, 1)',\n },\n};\n\nexport const tangledUpPreset: WavesPreset = {\n name: 'Tangled up',\n params: {\n scale: 3.04,\n rotation: 1,\n color: '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 softness: 0,\n },\n style: {\n background: 'hsla(198.7, 66.7%, 14.1%, 1)',\n },\n};\n\nexport const zigZagPreset: WavesPreset = {\n name: 'Zig zag',\n params: {\n scale: 2.7,\n rotation: 1,\n color: 'hsla(0, 0%, 90%, 1)',\n shape: 0,\n frequency: 0.6,\n amplitude: 0.8,\n spacing: 0.5,\n dutyCycle: 1,\n softness: 0.5,\n },\n style: {\n background: 'hsla(0, 0%, 0%, 1)',\n },\n};\n\nexport const waveRidePreset: WavesPreset = {\n name: 'Ride the wave',\n params: {\n scale: 0.84,\n rotation: 0,\n color: '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 softness: 0,\n },\n style: {\n background: 'hsla(65, 100%, 95%, 1)',\n },\n};\n\nexport const wavesPresets: WavesPreset[] = [\n defaultPreset,\n spikesPreset,\n groovyPreset,\n tangledUpPreset,\n zigZagPreset,\n waveRidePreset,\n];\n\nexport const Waves = ({\n scale,\n rotation,\n color,\n shape,\n frequency,\n amplitude,\n spacing,\n dutyCycle,\n softness,\n ...props\n}: WavesProps): React.ReactElement => {\n const uniforms: WavesUniforms = useMemo(() => {\n return {\n u_scale: scale ?? defaultPreset.params.scale,\n u_rotation: rotation ?? defaultPreset.params.rotation,\n u_color: getShaderColorFromString(color, defaultPreset.params.color),\n u_shape: shape ?? defaultPreset.params.shape,\n u_frequency: frequency ?? defaultPreset.params.frequency,\n u_amplitude: amplitude ?? defaultPreset.params.amplitude,\n u_spacing: spacing ?? defaultPreset.params.spacing,\n u_dutyCycle: dutyCycle ?? defaultPreset.params.dutyCycle,\n u_softness: softness ?? defaultPreset.params.softness,\n };\n }, [scale, rotation, color, shape, frequency, amplitude, spacing, dutyCycle, softness]);\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 color?: string;\n proportion?: number;\n softness?: 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>; style?: React.CSSProperties };\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 frame: 0,\n color: 'hsla(0, 0%, 15%, 1)',\n proportion: 0.65,\n softness: 0.1,\n octaveCount: 2,\n persistence: 1,\n lacunarity: 1.5,\n },\n};\n\nexport const nintendoWaterPreset: PerlinNoisePreset = {\n name: 'Nintendo Water',\n params: {\n scale: 0.2,\n speed: 0.4,\n frame: 0,\n color: 'hsla(200, 66%, 90%, 1)',\n proportion: 0.42,\n softness: 0,\n octaveCount: 2,\n persistence: 0.55,\n lacunarity: 1.8,\n },\n style: {\n background: 'hsla(220, 66%, 50%, 1)',\n },\n};\n\nexport const colonyPreset: PerlinNoisePreset = {\n name: 'Colony',\n params: {\n scale: 0.15,\n speed: 0,\n frame: 0,\n color: 'hsla(230, 80%, 20%, 1)',\n octaveCount: 6,\n persistence: 1,\n lacunarity: 2.55,\n proportion: 0.65,\n softness: 0.35,\n },\n style: {\n background: 'hsla(56, 86%, 81%, 1)',\n },\n};\n\nexport const phosphenesPreset: PerlinNoisePreset = {\n name: 'Phosphenes',\n params: {\n scale: 0.03,\n speed: 0.15,\n frame: 0,\n color: 'hsla(150, 50%, 60%, 1)',\n proportion: 0.45,\n softness: 0.45,\n octaveCount: 6,\n persistence: 0.3,\n lacunarity: 3,\n },\n style: {\n background: 'hsla(350, 80%, 70%, 1)',\n },\n};\n\nexport const mossPreset: PerlinNoisePreset = {\n name: 'Moss',\n params: {\n scale: 0.15,\n speed: 0.02,\n frame: 0,\n color: 'hsla(0, 0%, 15%, 1)',\n proportion: 0.65,\n softness: 0.35,\n octaveCount: 6,\n persistence: 1,\n lacunarity: 2.55,\n },\n style: {\n background: 'hsla(137, 100%, 51%, 1)',\n },\n};\n\nexport const wormsPreset: PerlinNoisePreset = {\n name: 'Worms',\n params: {\n scale: 2,\n speed: 0,\n frame: 0,\n color: 'hsla(0, 0%, 35%, 1)',\n proportion: 0.5,\n softness: 0,\n octaveCount: 1,\n persistence: 1,\n lacunarity: 1.5,\n },\n style: {\n background: 'hsla(0, 100%, 100%, 1)',\n },\n};\n\nexport const perlinNoisePresets: PerlinNoisePreset[] = [\n defaultPreset,\n nintendoWaterPreset,\n colonyPreset,\n phosphenesPreset,\n mossPreset,\n wormsPreset,\n];\n\nexport const PerlinNoise = ({\n scale,\n color,\n proportion,\n softness,\n octaveCount,\n persistence,\n lacunarity,\n ...props\n}: PerlinNoiseProps): React.ReactElement => {\n const uniforms: PerlinNoiseUniforms = useMemo(() => {\n return {\n u_scale: scale ?? defaultPreset.params.scale,\n u_color: getShaderColorFromString(color, defaultPreset.params.color),\n u_proportion: proportion ?? defaultPreset.params.proportion,\n u_softness: softness ?? defaultPreset.params.softness,\n u_octaveCount: octaveCount ?? defaultPreset.params.octaveCount,\n u_persistence: persistence ?? defaultPreset.params.persistence,\n u_lacunarity: lacunarity ?? defaultPreset.params.lacunarity,\n };\n }, [scale, color, proportion, softness, octaveCount, persistence, lacunarity]);\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 colorGradient?: number;\n distance?: number;\n edgesSize?: number;\n edgesSoftness?: number;\n middleSize?: number;\n middleSoftness?: number;\n} & GlobalParams;\n\nexport type VoronoiProps = Omit<ShaderMountProps, 'fragmentShader'> & VoronoiParams;\n\ntype VoronoiPreset = { name: string; params: Required<VoronoiParams>; style?: React.CSSProperties };\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 frame: 0,\n colorCell1: 'hsla(15, 80%, 50%, 1)',\n colorCell2: 'hsla(180, 80%, 50%, 1)',\n colorCell3: 'hsla(200, 80%, 50%, 1)',\n colorMid: 'hsla(0, 0%, 0%, 1)',\n colorGradient: 0.5,\n distance: 0.25,\n edgesSize: 0.15,\n edgesSoftness: 0.01,\n middleSize: 0,\n middleSoftness: 0,\n },\n};\n\nexport const classicPreset: VoronoiPreset = {\n name: 'Classic',\n params: {\n scale: 3,\n speed: 0.8,\n frame: 0,\n colorCell1: 'hsla(0, 100%, 100%, 1)',\n colorCell2: 'hsla(0, 0%, 100%, 1)',\n colorCell3: 'hsla(0, 100%, 0%, 1)',\n colorMid: 'hsla(0, 0%, 0%, 1)',\n colorGradient: 1,\n distance: 0.45,\n edgesSize: 0.02,\n edgesSoftness: 0.07,\n middleSize: 0,\n middleSoftness: 0,\n },\n};\n\nexport const giraffePreset: VoronoiPreset = {\n name: 'Giraffe',\n params: {\n scale: 1,\n speed: 0.6,\n frame: 0,\n colorCell1: 'hsla(32, 100%, 18%, 1)',\n colorCell2: 'hsla(42, 93%, 35%, 1)',\n colorCell3: 'hsla(32, 100%, 18%, 1)',\n colorMid: 'hsla(0, 0%, 0%, 1)',\n colorGradient: 1,\n distance: 0.25,\n edgesSize: 0.2,\n edgesSoftness: 0.01,\n middleSize: 0,\n middleSoftness: 0,\n },\n};\n\nexport const eyesPreset: VoronoiPreset = {\n name: 'Eyes',\n params: {\n scale: 1.6,\n speed: 0.6,\n frame: 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 colorGradient: 1,\n distance: 0.25,\n edgesSize: 0.62,\n edgesSoftness: 0.01,\n middleSize: 0.1,\n middleSoftness: 0,\n },\n};\n\nexport const bubblesPreset: VoronoiPreset = {\n name: 'Bubbles',\n params: {\n scale: 2,\n speed: 0.5,\n frame: 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 colorGradient: 1,\n distance: 0.5,\n edgesSize: 0.81,\n edgesSoftness: 0.0,\n middleSize: 0,\n middleSoftness: 0,\n },\n};\n\nexport const cellsPreset: VoronoiPreset = {\n name: 'Cells',\n params: {\n scale: 2,\n speed: 1,\n frame: 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 colorGradient: 1,\n distance: 0.38,\n edgesSize: 0.1,\n edgesSoftness: 0.02,\n middleSize: 0,\n middleSoftness: 0,\n },\n};\n\nexport const glowPreset: VoronoiPreset = {\n name: 'Glow',\n params: {\n scale: 1.2,\n speed: 0.8,\n frame: 0,\n colorCell1: 'hsla(40, 100%, 50%, 1)',\n colorCell2: 'hsla(311, 100%, 59%, 1)',\n colorCell3: 'hsla(180, 100%, 65%, 1)',\n colorMid: 'hsla(0, 0%, 100%, 1)',\n colorGradient: 1,\n distance: 0.25,\n edgesSize: 0.15,\n edgesSoftness: 0.01,\n middleSize: 0.7,\n middleSoftness: 1,\n },\n};\n\nexport const tilesPreset: VoronoiPreset = {\n name: 'Tiles',\n params: {\n scale: 1.3,\n speed: 1,\n frame: 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 colorGradient: 0,\n distance: 0.05,\n edgesSize: 0.25,\n edgesSoftness: 0.02,\n middleSize: 0,\n middleSoftness: 0,\n },\n};\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 = ({\n scale,\n colorCell1,\n colorCell2,\n colorCell3,\n colorMid,\n colorGradient,\n distance,\n edgesSize,\n edgesSoftness,\n middleSize,\n middleSoftness,\n ...props\n}: VoronoiProps): React.ReactElement => {\n const uniforms: VoronoiUniforms = useMemo(() => {\n return {\n u_scale: scale ?? defaultPreset.params.scale,\n u_colorCell1: getShaderColorFromString(colorCell1, defaultPreset.params.colorCell1),\n u_colorCell2: getShaderColorFromString(colorCell2, defaultPreset.params.colorCell2),\n u_colorCell3: getShaderColorFromString(colorCell3, defaultPreset.params.colorCell3),\n u_colorMid: getShaderColorFromString(colorMid, defaultPreset.params.colorMid),\n u_colorGradient: colorGradient ?? defaultPreset.params.colorGradient,\n u_distance: distance ?? defaultPreset.params.distance,\n u_edgesSize: edgesSize ?? defaultPreset.params.edgesSize,\n u_edgesSoftness: edgesSoftness ?? defaultPreset.params.edgesSoftness,\n u_middleSize: middleSize ?? defaultPreset.params.middleSize,\n u_middleSoftness: middleSoftness ?? defaultPreset.params.middleSoftness,\n };\n }, [\n scale,\n colorCell1,\n colorCell3,\n colorCell2,\n colorMid,\n colorGradient,\n distance,\n edgesSize,\n edgesSoftness,\n middleSize,\n middleSoftness,\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>; style?: React.CSSProperties };\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 frame: 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 frame: 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 frame: 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 frame: 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 frame: 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 frame: 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: 0.7,\n rotation: 1.5,\n speed: 0.25,\n frame: 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,\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 frame: 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 frame: 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 frame: 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 frame: 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\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 = ({\n scale,\n rotation,\n color1,\n color2,\n color3,\n proportion,\n softness,\n distortion,\n swirl,\n swirlIterations,\n shapeScale,\n shape,\n ...props\n}: WarpProps): React.ReactElement => {\n const uniforms: WarpUniforms = useMemo(() => {\n return {\n u_scale: scale ?? defaultPreset.params.scale,\n u_rotation: rotation ?? defaultPreset.params.rotation,\n u_color1: getShaderColorFromString(color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(color2, defaultPreset.params.color2),\n u_color3: getShaderColorFromString(color3, defaultPreset.params.color2),\n u_proportion: proportion ?? defaultPreset.params.proportion,\n u_softness: softness ?? defaultPreset.params.softness,\n u_distortion: distortion ?? defaultPreset.params.distortion,\n u_swirl: swirl ?? defaultPreset.params.swirl,\n u_swirlIterations: swirlIterations ?? defaultPreset.params.swirlIterations,\n u_shapeScale: shapeScale ?? defaultPreset.params.shapeScale,\n u_shape: shape ?? defaultPreset.params.shape,\n };\n }, [\n scale,\n rotation,\n color1,\n color2,\n color3,\n proportion,\n softness,\n distortion,\n swirl,\n swirlIterations,\n shapeScale,\n shape,\n ]);\n\n return <ShaderMount {...props} fragmentShader={warpFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, godRaysFragmentShader, type GodRaysUniforms } from '@paper-design/shaders';\n\nexport type GodRaysParams = {\n colorBack?: string;\n color1?: string;\n color2?: string;\n color3?: string;\n offsetX?: number;\n offsetY?: number;\n frequency?: number;\n spotty?: number;\n midIntensity?: number;\n midSize?: number;\n density?: number;\n blending?: number;\n} & GlobalParams;\n\nexport type GodRaysProps = Omit<ShaderMountProps, 'fragmentShader'> & GodRaysParams;\n\ntype GodRaysPreset = { name: string; params: Required<GodRaysParams>; style?: React.CSSProperties };\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 highmidIntensity bug)\n\nexport const defaultPreset: GodRaysPreset = {\n name: 'Default',\n params: {\n colorBack: 'hsla(215, 100%, 11%, 1)',\n color1: 'hsla(45, 100%, 70%, 1)',\n color2: 'hsla(10, 100%, 80%, 1)',\n color3: 'hsla(178, 100%, 83%, 1)',\n offsetX: -0.6,\n offsetY: -0.6,\n frequency: 6,\n spotty: 0.28,\n midIntensity: 0.97,\n midSize: 2,\n density: 0.3,\n blending: 0,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const auroraPreset: GodRaysPreset = {\n name: 'Aurora',\n params: {\n colorBack: 'hsla(0, 0%, 25%, 1)',\n color1: 'hsla(239, 100%, 70%, 1)',\n color2: 'hsla(150, 100%, 70%, 1)',\n color3: 'hsla(200, 100%, 70%, 1)',\n offsetX: 0,\n offsetY: 1,\n frequency: 2.4,\n spotty: 0.9,\n midIntensity: 0.8,\n midSize: 2.1,\n density: 0.5,\n blending: 1,\n speed: 0.5,\n frame: 0,\n },\n};\n\nexport const warpPreset: GodRaysPreset = {\n name: 'Warp',\n params: {\n colorBack: 'hsla(0, 0%, 0%, 1)',\n color1: 'hsla(317, 100%, 50%, 1)',\n color2: 'hsla(25, 100%, 50%, 1)',\n color3: 'hsla(0, 0%, 100%, 1)',\n offsetX: 0,\n offsetY: 0,\n frequency: 1.2,\n spotty: 0.15,\n midIntensity: 0,\n midSize: 0,\n density: 0.79,\n blending: 0.4,\n speed: 2,\n frame: 0,\n },\n};\n\nexport const linearPreset: GodRaysPreset = {\n name: 'Linear',\n params: {\n colorBack: 'hsla(0, 0%, 0%, 1)',\n color1: 'hsl(0 0% 100% / 12%)',\n color2: 'hsl(0 0% 100% / 24%)',\n color3: 'hsl(0 0% 100% / 16%)',\n offsetX: 0.2,\n offsetY: -0.7,\n frequency: 1.2,\n spotty: 0.25,\n midSize: 1.1,\n midIntensity: 0.75,\n density: 0.79,\n blending: 1,\n speed: 0.5,\n frame: 0,\n },\n};\n\nexport const etherPreset: GodRaysPreset = {\n name: 'Ether',\n params: {\n colorBack: 'hsl(226.7 50% 7.1% / 100%)',\n color1: 'hsl(215 100% 53.9% / 65.1%)',\n color2: 'hsl(214.4 85.9% 86.1% / 74.9%)',\n color3: 'hsl(225 31.4% 20% / 100%)',\n offsetX: -0.6,\n offsetY: 0,\n frequency: 0.3,\n spotty: 0.77,\n midSize: 1.1,\n midIntensity: 0.5,\n density: 0.6,\n blending: 0.6,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const godRaysPresets: GodRaysPreset[] = [defaultPreset, auroraPreset, warpPreset, linearPreset, etherPreset];\n\nexport const GodRays = ({\n colorBack,\n color1,\n color2,\n color3,\n offsetX,\n offsetY,\n frequency,\n spotty,\n midIntensity,\n midSize,\n density,\n blending,\n ...props\n}: GodRaysProps): React.ReactElement => {\n const uniforms: GodRaysUniforms = useMemo(() => {\n return {\n u_colorBack: getShaderColorFromString(colorBack, defaultPreset.params.colorBack),\n u_color1: getShaderColorFromString(color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(color2, defaultPreset.params.color2),\n u_color3: getShaderColorFromString(color3, defaultPreset.params.color3),\n u_offsetX: offsetX ?? defaultPreset.params.offsetX,\n u_offsetY: offsetY ?? defaultPreset.params.offsetY,\n u_frequency: frequency ?? defaultPreset.params.frequency,\n u_spotty: spotty ?? defaultPreset.params.spotty,\n u_midIntensity: midIntensity ?? defaultPreset.params.midIntensity,\n u_midSize: midSize ?? defaultPreset.params.midSize,\n u_density: density ?? defaultPreset.params.density,\n u_blending: blending ?? defaultPreset.params.blending,\n };\n }, [\n colorBack,\n color1,\n color2,\n color3,\n offsetX,\n offsetY,\n frequency,\n spotty,\n midIntensity,\n midSize,\n density,\n blending,\n ]);\n\n return <ShaderMount {...props} fragmentShader={godRaysFragmentShader} uniforms={uniforms} />;\n};\n", "import { useMemo } from 'react';\nimport { ShaderMount, type GlobalParams, type ShaderMountProps } from '../shader-mount';\nimport { getShaderColorFromString, spiralFragmentShader, type SpiralUniforms } from '@paper-design/shaders';\n\nexport type SpiralParams = {\n color1?: string;\n color2?: string;\n scale?: number;\n offsetX?: number;\n offsetY?: number;\n spiralDensity?: number;\n spiralDistortion?: number;\n strokeWidth?: number;\n strokeTaper?: number;\n strokeCap?: number;\n noiseFreq?: number;\n noisePower?: number;\n softness?: number;\n} & GlobalParams;\n\nexport type SpiralProps = Omit<ShaderMountProps, 'fragmentShader'> & SpiralParams;\n\ntype SpiralPreset = { name: string; params: Required<SpiralParams>; style?: React.CSSProperties };\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 highmidIntensity bug)\n\nexport const defaultPreset: SpiralPreset = {\n name: 'Default',\n params: {\n color1: 'hsla(0, 0%, 98%, 1)',\n color2: 'hsla(0, 0%, 50%, 1)',\n scale: 1,\n offsetX: 0,\n offsetY: 0,\n spiralDensity: 0,\n spiralDistortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0,\n strokeCap: 0,\n noiseFreq: 0,\n noisePower: 0,\n softness: 0.01,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const noisyPreset: SpiralPreset = {\n name: 'Noisy',\n params: {\n color1: 'hsla(87, 77%, 53%, 1)',\n color2: 'hsla(109, 70%, 31%, 1)',\n scale: 1.3,\n offsetX: 0,\n offsetY: 0,\n spiralDensity: 0.5,\n spiralDistortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0,\n strokeCap: 0.5,\n noiseFreq: 0.1,\n noisePower: 1,\n softness: 0,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const dropletPreset: SpiralPreset = {\n name: 'Droplet',\n params: {\n color1: 'hsla(320, 50%, 50%, 1)',\n color2: 'hsla(190, 50%, 95%, 1)',\n scale: 0.65,\n offsetX: 0,\n offsetY: 0,\n spiralDensity: 0,\n spiralDistortion: 0,\n strokeWidth: 0.05,\n strokeTaper: 0,\n strokeCap: 1,\n noiseFreq: 0,\n noisePower: 0,\n softness: 0,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const sandPreset: SpiralPreset = {\n name: 'Sand',\n params: {\n color1: 'hsla(45, 25%, 50%, 1)',\n color2: 'hsla(0, 0%, 87%, 1)',\n scale: 3,\n offsetX: 0,\n offsetY: 0,\n spiralDensity: 0,\n spiralDistortion: 0,\n strokeWidth: 0.15,\n strokeTaper: 0,\n strokeCap: 0,\n noiseFreq: 30,\n noisePower: 1,\n softness: 0.2,\n speed: 0,\n frame: 0,\n },\n};\n\nexport const swirlPreset: SpiralPreset = {\n name: 'Swirl',\n params: {\n color1: 'hsla(160, 50%, 80%, 1)',\n color2: 'hsla(220, 50%, 20%, 1)',\n scale: 4,\n offsetX: 0,\n offsetY: 0,\n spiralDensity: 0.8,\n spiralDistortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0,\n strokeCap: 0,\n noiseFreq: 0,\n noisePower: 0,\n softness: 0.5,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const hookPreset: SpiralPreset = {\n name: 'Hook',\n params: {\n color1: 'hsla(0, 0%, 0%, 1)',\n color2: 'hsla(200, 50%, 70%, 1)',\n scale: 0.8,\n offsetX: 0,\n offsetY: 0,\n spiralDensity: 0,\n spiralDistortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0.5,\n strokeCap: 0,\n noiseFreq: 0,\n noisePower: 0,\n softness: 0.02,\n speed: 3,\n frame: 0,\n },\n};\n\nexport const vinylPreset: SpiralPreset = {\n name: 'Vinyl',\n params: {\n color1: 'hsla(0, 0%, 15%, 1)',\n color2: 'hsla(320, 5%, 75%, 1)',\n scale: 1,\n offsetX: 0,\n offsetY: 0,\n spiralDensity: 0,\n spiralDistortion: 0.3,\n strokeWidth: 0.95,\n strokeTaper: 0,\n strokeCap: 1,\n noiseFreq: 0,\n noisePower: 0,\n softness: 0.11,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const spiralPresets: SpiralPreset[] = [\n defaultPreset,\n noisyPreset,\n dropletPreset,\n swirlPreset,\n sandPreset,\n hookPreset,\n vinylPreset,\n];\n\nexport const Spiral = ({\n color1,\n color2,\n scale,\n offsetX,\n offsetY,\n spiralDensity,\n spiralDistortion,\n strokeWidth,\n strokeTaper,\n strokeCap,\n noiseFreq,\n noisePower,\n softness,\n ...props\n}: SpiralProps): React.ReactElement => {\n const uniforms: SpiralUniforms = useMemo(() => {\n return {\n u_color1: getShaderColorFromString(color1, defaultPreset.params.color1),\n u_color2: getShaderColorFromString(color2, defaultPreset.params.color2),\n u_scale: scale ?? defaultPreset.params.scale,\n u_offsetX: offsetX ?? defaultPreset.params.offsetX,\n u_offsetY: offsetY ?? defaultPreset.params.offsetY,\n u_spiralDensity: spiralDensity ?? defaultPreset.params.spiralDensity,\n u_spiralDistortion: spiralDistortion ?? defaultPreset.params.spiralDistortion,\n u_strokeWidth: strokeWidth ?? defaultPreset.params.strokeWidth,\n u_strokeTaper: strokeTaper ?? defaultPreset.params.strokeTaper,\n u_strokeCap: strokeCap ?? defaultPreset.params.strokeCap,\n u_noiseFreq: noiseFreq ?? defaultPreset.params.noiseFreq,\n u_noisePower: noisePower ?? defaultPreset.params.noisePower,\n u_softness: softness ?? defaultPreset.params.softness,\n };\n }, [\n color1,\n color2,\n scale,\n offsetX,\n offsetY,\n spiralDensity,\n spiralDistortion,\n strokeWidth,\n strokeTaper,\n strokeCap,\n noiseFreq,\n noisePower,\n softness,\n ]);\n\n return <ShaderMount {...props} fragmentShader={spiralFragmentShader} uniforms={uniforms} />;\n};\n"],
5
- "mappings": "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",
6
- "names": ["useEffect", "useRef", "forwardRef", "ShaderMountVanilla", "React", "useMergeRefs", "refs", "cleanupRef", "refEffect", "instance", "cleanups", "ref", "refCallback", "refCleanup", "value", "jsx", "processUniforms", "uniforms", "processedUniforms", "imageLoadPromises", "isValidUrl", "url", "isExternalUrl", "key", "value", "imagePromise", "resolve", "reject", "img", "ShaderMount", "forwardRef", "externalShaderMountRef", "fragmentShader", "webGlContextAttributes", "speed", "frame", "divProps", "forwardedRef", "divRef", "useRef", "shaderMountRef", "useEffect", "ShaderMountVanilla", "useMergeRefs", "useMemo", "getShaderColorFromString", "meshGradientFragmentShader", "jsx", "defaultPreset", "beachPreset", "fadedPreset", "meshGradientPresets", "MeshGradient", "color1", "color2", "color3", "color4", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "smokeRingFragmentShader", "jsx", "defaultPreset", "cloudPreset", "firePreset", "electricPreset", "poisonPreset", "smokeRingPresets", "SmokeRing", "scale", "colorInner", "colorOuter", "noiseScale", "thickness", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "neuroNoiseFragmentShader", "jsx", "defaultPreset", "marblePreset", "neuroNoisePresets", "NeuroNoise", "scale", "colorFront", "colorBack", "brightness", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "dotOrbitFragmentShader", "jsx", "defaultPreset", "dotOrbitPresets", "DotOrbit", "scale", "color1", "color2", "color3", "color4", "dotSize", "dotSizeRange", "spreading", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "dotGridFragmentShader", "getShaderColorFromString", "DotGridShapes", "jsx", "defaultPreset", "macrodataPreset", "trianglesPreset", "bubblesPreset", "treeLinePreset", "diamondsPreset", "wallpaperPreset", "matrixPreset", "waveformPreset", "dotGridPresets", "DotGrid", "colorFill", "colorStroke", "dotSize", "gridSpacingX", "gridSpacingY", "strokeWidth", "sizeRange", "opacityRange", "shape", "props", "uniforms", "useMemo", "ShaderMount", "DotGridShapes", "useMemo", "getShaderColorFromString", "steppedSimplexNoiseFragmentShader", "jsx", "defaultPreset", "magmaPreset", "bloodCellPreset", "firstContactPreset", "steppedSimplexNoisePresets", "SteppedSimplexNoise", "scale", "color1", "color2", "color3", "color4", "color5", "stepsNumber", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "metaballsFragmentShader", "jsx", "defaultPreset", "metaballsPresets", "Metaballs", "scale", "color1", "color2", "color3", "ballSize", "visibilityRange", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "wavesFragmentShader", "jsx", "defaultPreset", "spikesPreset", "groovyPreset", "tangledUpPreset", "zigZagPreset", "waveRidePreset", "wavesPresets", "Waves", "scale", "rotation", "color", "shape", "frequency", "amplitude", "spacing", "dutyCycle", "softness", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "perlinNoiseFragmentShader", "jsx", "defaultPreset", "nintendoWaterPreset", "colonyPreset", "phosphenesPreset", "mossPreset", "wormsPreset", "perlinNoisePresets", "PerlinNoise", "scale", "color", "proportion", "softness", "octaveCount", "persistence", "lacunarity", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "voronoiFragmentShader", "jsx", "defaultPreset", "classicPreset", "giraffePreset", "eyesPreset", "bubblesPreset", "cellsPreset", "glowPreset", "tilesPreset", "voronoiPresets", "Voronoi", "scale", "colorCell1", "colorCell2", "colorCell3", "colorMid", "colorGradient", "distance", "edgesSize", "edgesSoftness", "middleSize", "middleSoftness", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "warpFragmentShader", "PatternShapes", "jsx", "defaultPreset", "presetCauldron", "presetSilk", "presetPassion", "presetPhantom", "presetAbyss", "presetInk", "presetIceberg", "presetNectar", "presetFilteredLight", "presetKelp", "warpPresets", "Warp", "scale", "rotation", "color1", "color2", "color3", "proportion", "softness", "distortion", "swirl", "swirlIterations", "shapeScale", "shape", "props", "uniforms", "useMemo", "ShaderMount", "PatternShapes", "useMemo", "getShaderColorFromString", "godRaysFragmentShader", "jsx", "defaultPreset", "auroraPreset", "warpPreset", "linearPreset", "etherPreset", "godRaysPresets", "GodRays", "colorBack", "color1", "color2", "color3", "offsetX", "offsetY", "frequency", "spotty", "midIntensity", "midSize", "density", "blending", "props", "uniforms", "useMemo", "ShaderMount", "useMemo", "getShaderColorFromString", "spiralFragmentShader", "jsx", "defaultPreset", "noisyPreset", "dropletPreset", "sandPreset", "swirlPreset", "hookPreset", "vinylPreset", "spiralPresets", "Spiral", "color1", "color2", "scale", "offsetX", "offsetY", "spiralDensity", "spiralDistortion", "strokeWidth", "strokeTaper", "strokeCap", "noiseFreq", "noisePower", "softness", "props", "uniforms", "useMemo", "ShaderMount", "getShaderColorFromString"]
3
+ "sources": ["../src/index.ts"],
4
+ "sourcesContent": ["export { ShaderMount } from './shader-mount';\nexport type { ShaderMountProps, ShaderComponentProps } from './shader-mount';\n\nexport { MeshGradient, meshGradientPresets } from './shaders/mesh-gradient';\nexport type { MeshGradientProps } from './shaders/mesh-gradient';\nexport type { MeshGradientUniforms, MeshGradientParams } from '@paper-design/shaders';\n\nexport { SmokeRing, smokeRingPresets } from './shaders/smoke-ring';\nexport type { SmokeRingProps } from './shaders/smoke-ring';\nexport type { SmokeRingUniforms, SmokeRingParams } from '@paper-design/shaders';\n\nexport { NeuroNoise, neuroNoisePresets } from './shaders/neuro-noise';\nexport type { NeuroNoiseProps } from './shaders/neuro-noise';\nexport type { NeuroNoiseUniforms, NeuroNoiseParams } from '@paper-design/shaders';\n\nexport { DotOrbit, dotOrbitPresets } from './shaders/dot-orbit';\nexport type { DotOrbitProps } from './shaders/dot-orbit';\nexport type { DotOrbitUniforms, DotOrbitParams } from '@paper-design/shaders';\n\nexport { DotGrid, dotGridPresets } from './shaders/dot-grid';\nexport type { DotGridProps } from './shaders/dot-grid';\nexport type { DotGridUniforms, DotGridParams, DotGridShape } from '@paper-design/shaders';\n\nexport { SimplexNoise, simplexNoisePresets } from './shaders/simplex-noise';\nexport type { SimplexNoiseProps } from './shaders/simplex-noise';\nexport type { SimplexNoiseUniforms, SimplexNoiseParams } from '@paper-design/shaders';\n\nexport { Metaballs, metaballsPresets } from './shaders/metaballs';\nexport type { MetaballsProps } from './shaders/metaballs';\nexport type { MetaballsUniforms, MetaballsParams } from '@paper-design/shaders';\n\nexport { Waves, wavesPresets } from './shaders/waves';\nexport type { WavesProps } from './shaders/waves';\nexport type { WavesUniforms, WavesParams } from '@paper-design/shaders';\n\nexport { PerlinNoise, perlinNoisePresets } from './shaders/perlin-noise';\nexport type { PerlinNoiseProps } from './shaders/perlin-noise';\nexport type { PerlinNoiseUniforms, PerlinNoiseParams } from '@paper-design/shaders';\n\nexport { Voronoi, voronoiPresets } from './shaders/voronoi';\nexport type { VoronoiProps } from './shaders/voronoi';\nexport type { VoronoiUniforms, VoronoiParams } from '@paper-design/shaders';\n\nexport { Warp, warpPresets } from './shaders/warp';\nexport type { WarpProps } from './shaders/warp';\nexport type { WarpUniforms, WarpParams, WarpPattern } from '@paper-design/shaders';\n\nexport { GodRays, godRaysPresets } from './shaders/god-rays';\nexport type { GodRaysProps } from './shaders/god-rays';\nexport type { GodRaysUniforms, GodRaysParams } from '@paper-design/shaders';\n\nexport { Spiral, spiralPresets } from './shaders/spiral';\nexport type { SpiralProps } from './shaders/spiral';\nexport type { SpiralUniforms, SpiralParams } from '@paper-design/shaders';\n\nexport { Swirl, swirlPresets } from './shaders/swirl';\nexport type { SwirlProps } from './shaders/swirl';\nexport type { SwirlUniforms, SwirlParams } from '@paper-design/shaders';\n\nexport { Dithering, ditheringPresets } from './shaders/dithering';\nexport type { DitheringProps } from './shaders/dithering';\nexport type { DitheringUniforms, DitheringParams } from '@paper-design/shaders';\n\nexport { GrainGradient, grainGradientPresets } from './shaders/grain-gradient';\nexport type { GrainGradientProps } from './shaders/grain-gradient';\nexport type { GrainGradientUniforms, GrainGradientParams } from '@paper-design/shaders';\n\nexport { LiquidMetal, liquidMetalPresets } from './shaders/liquid-metal';\nexport type { LiquidMetalProps } from './shaders/liquid-metal';\nexport type { LiquidMetalUniforms, LiquidMetalParams } from '@paper-design/shaders';\n\nexport { PulsingBorder, pulsingBorderPresets } from './shaders/pulsing-border';\nexport type { PulsingBorderProps } from './shaders/pulsing-border';\nexport type { PulsingBorderUniforms, PulsingBorderParams } from '@paper-design/shaders';\n\nexport { isPaperShaderElement, getShaderColorFromString } from '@paper-design/shaders';\nexport type { ShaderFit, ShaderSizingParams, ShaderSizingUniforms } from '@paper-design/shaders';\n\nexport {\n dotOrbitMeta,\n godRaysMeta,\n grainGradientMeta,\n meshGradientMeta,\n metaballsMeta,\n pulsingBorderMeta,\n simplexNoiseMeta,\n smokeRingMeta,\n swirlMeta,\n voronoiMeta,\n warpMeta,\n} from '@paper-design/shaders';\n"],
5
+ "mappings": ";;;;;AAAA,SAAS,mBAAmB;AAG5B,SAAS,cAAc,2BAA2B;AAIlD,SAAS,WAAW,wBAAwB;AAI5C,SAAS,YAAY,yBAAyB;AAI9C,SAAS,UAAU,uBAAuB;AAI1C,SAAS,SAAS,sBAAsB;AAIxC,SAAS,cAAc,2BAA2B;AAIlD,SAAS,WAAW,wBAAwB;AAI5C,SAAS,OAAO,oBAAoB;AAIpC,SAAS,aAAa,0BAA0B;AAIhD,SAAS,SAAS,sBAAsB;AAIxC,SAAS,MAAM,mBAAmB;AAIlC,SAAS,SAAS,sBAAsB;AAIxC,SAAS,QAAQ,qBAAqB;AAItC,SAAS,OAAO,oBAAoB;AAIpC,SAAS,WAAW,wBAAwB;AAI5C,SAAS,eAAe,4BAA4B;AAIpD,SAAS,aAAa,0BAA0B;AAIhD,SAAS,eAAe,4BAA4B;AAIpD,SAAS,sBAAsB,gCAAgC;AAG/D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
6
+ "names": []
7
7
  }