@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.
- package/dist/color-props-are-equal.d.ts +6 -0
- package/dist/color-props-are-equal.js +34 -0
- package/dist/color-props-are-equal.js.map +7 -0
- package/dist/index.d.ts +46 -41
- package/dist/index.js +90 -2
- package/dist/index.js.map +4 -4
- package/dist/shader-mount.d.ts +15 -13
- package/dist/shader-mount.js +120 -0
- package/dist/shader-mount.js.map +7 -0
- package/dist/shaders/dithering.d.ts +15 -0
- package/dist/shaders/dithering.js +179 -0
- package/dist/shaders/dithering.js.map +7 -0
- package/dist/shaders/dot-grid.d.ts +6 -20
- package/dist/shaders/dot-grid.js +230 -0
- package/dist/shaders/dot-grid.js.map +7 -0
- package/dist/shaders/dot-orbit.d.ts +6 -18
- package/dist/shaders/dot-orbit.js +77 -0
- package/dist/shaders/dot-orbit.js.map +7 -0
- package/dist/shaders/god-rays.d.ts +6 -22
- package/dist/shaders/god-rays.js +160 -0
- package/dist/shaders/god-rays.js.map +7 -0
- package/dist/shaders/grain-gradient.d.ts +16 -0
- package/dist/shaders/grain-gradient.js +197 -0
- package/dist/shaders/grain-gradient.js.map +7 -0
- package/dist/shaders/liquid-metal.d.ts +9 -0
- package/dist/shaders/liquid-metal.js +87 -0
- package/dist/shaders/liquid-metal.js.map +7 -0
- package/dist/shaders/mesh-gradient.d.ts +7 -15
- package/dist/shaders/mesh-gradient.js +104 -0
- package/dist/shaders/mesh-gradient.js.map +7 -0
- package/dist/shaders/metaballs.d.ts +6 -16
- package/dist/shaders/metaballs.js +72 -0
- package/dist/shaders/metaballs.js.map +7 -0
- package/dist/shaders/neuro-noise.d.ts +6 -14
- package/dist/shaders/neuro-noise.js +82 -0
- package/dist/shaders/neuro-noise.js.map +7 -0
- package/dist/shaders/perlin-noise.d.ts +6 -17
- package/dist/shaders/perlin-noise.js +183 -0
- package/dist/shaders/perlin-noise.js.map +7 -0
- package/dist/shaders/pulsing-border.d.ts +11 -0
- package/dist/shaders/pulsing-border.js +153 -0
- package/dist/shaders/pulsing-border.js.map +7 -0
- package/dist/shaders/simplex-noise.d.ts +9 -0
- package/dist/shaders/simplex-noise.js +80 -0
- package/dist/shaders/simplex-noise.js.map +7 -0
- package/dist/shaders/smoke-ring.d.ts +8 -18
- package/dist/shaders/smoke-ring.js +134 -0
- package/dist/shaders/smoke-ring.js.map +7 -0
- package/dist/shaders/spiral.d.ts +6 -23
- package/dist/shaders/spiral.js +218 -0
- package/dist/shaders/spiral.js.map +7 -0
- package/dist/shaders/swirl.d.ts +12 -0
- package/dist/shaders/swirl.js +137 -0
- package/dist/shaders/swirl.js.map +7 -0
- package/dist/shaders/voronoi.d.ts +7 -28
- package/dist/shaders/voronoi.js +102 -0
- package/dist/shaders/voronoi.js.map +7 -0
- package/dist/shaders/warp.d.ts +6 -23
- package/dist/shaders/warp.js +290 -0
- package/dist/shaders/warp.js.map +7 -0
- package/dist/shaders/waves.d.ts +6 -19
- package/dist/shaders/waves.js +178 -0
- package/dist/shaders/waves.js.map +7 -0
- package/dist/use-merge-refs.js +48 -0
- package/dist/use-merge-refs.js.map +7 -0
- package/package.json +13 -4
- package/dist/shaders/stepped-simplex-noise.d.ts +0 -20
|
@@ -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 {
|
|
4
|
-
export {
|
|
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 {
|
|
8
|
-
export {
|
|
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 {
|
|
12
|
-
export {
|
|
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 {
|
|
16
|
-
export {
|
|
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 {
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
22
|
-
export {
|
|
23
|
-
export {
|
|
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 {
|
|
28
|
-
export {
|
|
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 {
|
|
32
|
-
export {
|
|
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 {
|
|
36
|
-
export {
|
|
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 {
|
|
40
|
-
export {
|
|
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 {
|
|
44
|
-
export {
|
|
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 {
|
|
48
|
-
export {
|
|
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 {
|
|
52
|
-
export {
|
|
53
|
-
export {
|
|
54
|
-
export {
|
|
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
|
-
|
|
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/
|
|
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": [
|
|
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
|
}
|