@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,87 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
9
|
+
import {
|
|
10
|
+
getShaderColorFromString,
|
|
11
|
+
liquidMetalFragmentShader,
|
|
12
|
+
ShaderFitOptions,
|
|
13
|
+
defaultObjectSizing
|
|
14
|
+
} from "@paper-design/shaders";
|
|
15
|
+
import { jsx } from "react/jsx-runtime";
|
|
16
|
+
const defaultPreset = {
|
|
17
|
+
name: "Default",
|
|
18
|
+
params: {
|
|
19
|
+
...defaultObjectSizing,
|
|
20
|
+
speed: 1,
|
|
21
|
+
frame: 0,
|
|
22
|
+
patternBlur: 5e-3,
|
|
23
|
+
patternScale: 3,
|
|
24
|
+
dispersion: 0.015,
|
|
25
|
+
liquid: 0.07,
|
|
26
|
+
shape: 0,
|
|
27
|
+
worldWidth: 0,
|
|
28
|
+
worldHeight: 0
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const liquidMetalPresets = [defaultPreset];
|
|
32
|
+
const LiquidMetal = memo(function LiquidMetalImpl({
|
|
33
|
+
// Own props
|
|
34
|
+
speed = defaultPreset.params.speed,
|
|
35
|
+
frame = defaultPreset.params.frame,
|
|
36
|
+
patternBlur = defaultPreset.params.patternBlur,
|
|
37
|
+
patternScale = defaultPreset.params.patternScale,
|
|
38
|
+
dispersion = defaultPreset.params.dispersion,
|
|
39
|
+
liquid = defaultPreset.params.liquid,
|
|
40
|
+
shape = defaultPreset.params.shape,
|
|
41
|
+
// Sizing props
|
|
42
|
+
fit = defaultPreset.params.fit,
|
|
43
|
+
scale = defaultPreset.params.scale,
|
|
44
|
+
rotation = defaultPreset.params.rotation,
|
|
45
|
+
originX = defaultPreset.params.originX,
|
|
46
|
+
originY = defaultPreset.params.originY,
|
|
47
|
+
offsetX = defaultPreset.params.offsetX,
|
|
48
|
+
offsetY = defaultPreset.params.offsetY,
|
|
49
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
50
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
51
|
+
...props
|
|
52
|
+
}) {
|
|
53
|
+
const uniforms = {
|
|
54
|
+
// Own uniforms
|
|
55
|
+
u_patternBlur: patternBlur,
|
|
56
|
+
u_patternScale: patternScale,
|
|
57
|
+
u_dispersion: dispersion,
|
|
58
|
+
u_liquid: liquid,
|
|
59
|
+
u_shape: shape,
|
|
60
|
+
// Sizing uniforms
|
|
61
|
+
u_fit: ShaderFitOptions[fit],
|
|
62
|
+
u_scale: scale,
|
|
63
|
+
u_rotation: rotation,
|
|
64
|
+
u_offsetX: offsetX,
|
|
65
|
+
u_offsetY: offsetY,
|
|
66
|
+
u_originX: originX,
|
|
67
|
+
u_originY: originY,
|
|
68
|
+
u_worldWidth: worldWidth,
|
|
69
|
+
u_worldHeight: worldHeight
|
|
70
|
+
};
|
|
71
|
+
return /* @__PURE__ */ jsx(
|
|
72
|
+
ShaderMount,
|
|
73
|
+
{
|
|
74
|
+
...props,
|
|
75
|
+
speed,
|
|
76
|
+
frame,
|
|
77
|
+
fragmentShader: liquidMetalFragmentShader,
|
|
78
|
+
uniforms
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
}, colorPropsAreEqual);
|
|
82
|
+
export {
|
|
83
|
+
LiquidMetal,
|
|
84
|
+
defaultPreset,
|
|
85
|
+
liquidMetalPresets
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=liquid-metal.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/liquid-metal.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n getShaderColorFromString,\n liquidMetalFragmentShader,\n ShaderFitOptions,\n type LiquidMetalUniforms,\n type LiquidMetalParams,\n type ShaderPreset,\n defaultObjectSizing,\n} from '@paper-design/shaders';\n\nexport interface LiquidMetalProps extends ShaderComponentProps, LiquidMetalParams {}\n\ntype LiquidMetalPreset = ShaderPreset<LiquidMetalParams>;\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: LiquidMetalPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n patternBlur: 0.005,\n patternScale: 3,\n dispersion: 0.015,\n liquid: 0.07,\n shape: 0,\n worldWidth: 0,\n worldHeight: 0,\n },\n};\n\nexport const liquidMetalPresets: LiquidMetalPreset[] = [defaultPreset];\n\nexport const LiquidMetal: React.FC<LiquidMetalProps> = memo(function LiquidMetalImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n patternBlur = defaultPreset.params.patternBlur,\n patternScale = defaultPreset.params.patternScale,\n dispersion = defaultPreset.params.dispersion,\n liquid = defaultPreset.params.liquid,\n shape = defaultPreset.params.shape,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: LiquidMetalProps) {\n const uniforms = {\n // Own uniforms\n u_patternBlur: patternBlur,\n u_patternScale: patternScale,\n u_dispersion: dispersion,\n u_liquid: liquid,\n u_shape: shape,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies LiquidMetalUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={liquidMetalFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,OACK;AAuEH;AA7DG,MAAM,gBAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACf;AACF;AAEO,MAAM,qBAA0C,CAAC,aAAa;AAE9D,MAAM,cAA0C,KAAK,SAAS,gBAAgB;AAAA;AAAA,EAEnF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,cAAc,cAAc,OAAO;AAAA,EACnC,eAAe,cAAc,OAAO;AAAA,EACpC,aAAa,cAAc,OAAO;AAAA,EAClC,SAAS,cAAc,OAAO;AAAA,EAC9B,QAAQ,cAAc,OAAO;AAAA;AAAA,EAG7B,MAAM,cAAc,OAAO;AAAA,EAC3B,QAAQ,cAAc,OAAO;AAAA,EAC7B,WAAW,cAAc,OAAO;AAAA,EAChC,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAqB;AACnB,QAAM,WAAW;AAAA;AAAA,IAEf,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA;AAAA,IAGT,OAAO,iBAAiB,GAAG;AAAA,IAC3B,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ,GAAG,kBAAkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
color4?: string;
|
|
7
|
-
} & GlobalParams;
|
|
8
|
-
export type MeshGradientProps = Omit<ShaderMountProps, 'fragmentShader'> & MeshGradientParams;
|
|
9
|
-
type MeshGradientPreset = {
|
|
10
|
-
name: string;
|
|
11
|
-
params: Required<MeshGradientParams>;
|
|
12
|
-
style?: React.CSSProperties;
|
|
13
|
-
};
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount';
|
|
2
|
+
import { type MeshGradientParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface MeshGradientProps extends ShaderComponentProps, MeshGradientParams {
|
|
4
|
+
}
|
|
5
|
+
type MeshGradientPreset = ShaderPreset<MeshGradientParams>;
|
|
14
6
|
export declare const defaultPreset: MeshGradientPreset;
|
|
7
|
+
export declare const purplePreset: MeshGradientPreset;
|
|
15
8
|
export declare const beachPreset: MeshGradientPreset;
|
|
16
|
-
export declare const fadedPreset: MeshGradientPreset;
|
|
17
9
|
export declare const meshGradientPresets: MeshGradientPreset[];
|
|
18
|
-
export declare const MeshGradient:
|
|
10
|
+
export declare const MeshGradient: React.FC<MeshGradientProps>;
|
|
19
11
|
export {};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
9
|
+
import {
|
|
10
|
+
defaultObjectSizing,
|
|
11
|
+
getShaderColorFromString,
|
|
12
|
+
meshGradientFragmentShader,
|
|
13
|
+
ShaderFitOptions
|
|
14
|
+
} from "@paper-design/shaders";
|
|
15
|
+
import { jsx } from "react/jsx-runtime";
|
|
16
|
+
const defaultPreset = {
|
|
17
|
+
name: "Default",
|
|
18
|
+
params: {
|
|
19
|
+
...defaultObjectSizing,
|
|
20
|
+
speed: 1,
|
|
21
|
+
frame: 4e4,
|
|
22
|
+
colors: ["hsla(259, 100%, 50%, 1)", "hsla(150, 100%, 50%, 1)", "hsla(48, 100%, 50%, 1)", "hsla(295, 100%, 50%, 1)"],
|
|
23
|
+
distortion: 0.8,
|
|
24
|
+
swirl: 0.1
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const purplePreset = {
|
|
28
|
+
name: "Purple",
|
|
29
|
+
params: {
|
|
30
|
+
...defaultObjectSizing,
|
|
31
|
+
speed: 0.6,
|
|
32
|
+
frame: 100,
|
|
33
|
+
colors: ["hsla(259, 29%, 73%, 1)", "hsla(263, 57%, 39%, 1)", "hsla(48, 73%, 84%, 1)", "hsla(295, 32%, 70%, 1)"],
|
|
34
|
+
distortion: 0.3,
|
|
35
|
+
swirl: 0.5
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const beachPreset = {
|
|
39
|
+
name: "Beach",
|
|
40
|
+
params: {
|
|
41
|
+
...defaultObjectSizing,
|
|
42
|
+
speed: 0.1,
|
|
43
|
+
frame: 0,
|
|
44
|
+
colors: ["hsla(186, 81%, 83%, 1)", "hsla(198, 55%, 68%, 1)", "hsla(53, 67%, 88%, 1)", "hsla(45, 93%, 73%, 1)"],
|
|
45
|
+
distortion: 0.8,
|
|
46
|
+
swirl: 0.35
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const meshGradientPresets = [defaultPreset, purplePreset, beachPreset];
|
|
50
|
+
const MeshGradient = memo(function MeshGradientImpl({
|
|
51
|
+
// Own props
|
|
52
|
+
speed = defaultPreset.params.speed,
|
|
53
|
+
frame = defaultPreset.params.frame,
|
|
54
|
+
colors = defaultPreset.params.colors,
|
|
55
|
+
distortion = defaultPreset.params.distortion,
|
|
56
|
+
swirl = defaultPreset.params.swirl,
|
|
57
|
+
// Sizing props
|
|
58
|
+
fit = defaultPreset.params.fit,
|
|
59
|
+
rotation = defaultPreset.params.rotation,
|
|
60
|
+
scale = defaultPreset.params.scale,
|
|
61
|
+
originX = defaultPreset.params.originX,
|
|
62
|
+
originY = defaultPreset.params.originY,
|
|
63
|
+
offsetX = defaultPreset.params.offsetX,
|
|
64
|
+
offsetY = defaultPreset.params.offsetY,
|
|
65
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
66
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
67
|
+
...props
|
|
68
|
+
}) {
|
|
69
|
+
const uniforms = {
|
|
70
|
+
// Own uniforms
|
|
71
|
+
u_colors: colors.map(getShaderColorFromString),
|
|
72
|
+
u_colorsCount: colors.length,
|
|
73
|
+
u_distortion: distortion,
|
|
74
|
+
u_swirl: swirl,
|
|
75
|
+
// Sizing uniforms
|
|
76
|
+
u_fit: ShaderFitOptions[fit],
|
|
77
|
+
u_rotation: rotation,
|
|
78
|
+
u_scale: scale,
|
|
79
|
+
u_offsetX: offsetX,
|
|
80
|
+
u_offsetY: offsetY,
|
|
81
|
+
u_originX: originX,
|
|
82
|
+
u_originY: originY,
|
|
83
|
+
u_worldWidth: worldWidth,
|
|
84
|
+
u_worldHeight: worldHeight
|
|
85
|
+
};
|
|
86
|
+
return /* @__PURE__ */ jsx(
|
|
87
|
+
ShaderMount,
|
|
88
|
+
{
|
|
89
|
+
...props,
|
|
90
|
+
speed,
|
|
91
|
+
frame,
|
|
92
|
+
fragmentShader: meshGradientFragmentShader,
|
|
93
|
+
uniforms
|
|
94
|
+
}
|
|
95
|
+
);
|
|
96
|
+
}, colorPropsAreEqual);
|
|
97
|
+
export {
|
|
98
|
+
MeshGradient,
|
|
99
|
+
beachPreset,
|
|
100
|
+
defaultPreset,
|
|
101
|
+
meshGradientPresets,
|
|
102
|
+
purplePreset
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=mesh-gradient.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/mesh-gradient.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n meshGradientFragmentShader,\n ShaderFitOptions,\n type MeshGradientParams,\n type MeshGradientUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MeshGradientProps extends ShaderComponentProps, MeshGradientParams {}\n\ntype MeshGradientPreset = ShaderPreset<MeshGradientParams>;\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: MeshGradientPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 40000,\n colors: ['hsla(259, 100%, 50%, 1)', 'hsla(150, 100%, 50%, 1)', 'hsla(48, 100%, 50%, 1)', 'hsla(295, 100%, 50%, 1)'],\n distortion: 0.8,\n swirl: 0.1,\n },\n};\n\nexport const purplePreset: MeshGradientPreset = {\n name: 'Purple',\n params: {\n ...defaultObjectSizing,\n speed: 0.6,\n frame: 100,\n colors: ['hsla(259, 29%, 73%, 1)', 'hsla(263, 57%, 39%, 1)', 'hsla(48, 73%, 84%, 1)', 'hsla(295, 32%, 70%, 1)'],\n distortion: 0.3,\n swirl: 0.5,\n },\n};\n\nexport const beachPreset: MeshGradientPreset = {\n name: 'Beach',\n params: {\n ...defaultObjectSizing,\n speed: 0.1,\n frame: 0,\n colors: ['hsla(186, 81%, 83%, 1)', 'hsla(198, 55%, 68%, 1)', 'hsla(53, 67%, 88%, 1)', 'hsla(45, 93%, 73%, 1)'],\n distortion: 0.8,\n swirl: 0.35,\n },\n};\n\nexport const meshGradientPresets: MeshGradientPreset[] = [defaultPreset, purplePreset, beachPreset];\n\nexport const MeshGradient: React.FC<MeshGradientProps> = memo(function MeshGradientImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n distortion = defaultPreset.params.distortion,\n swirl = defaultPreset.params.swirl,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n rotation = defaultPreset.params.rotation,\n scale = defaultPreset.params.scale,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: MeshGradientProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_distortion: distortion,\n u_swirl: swirl,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_rotation: rotation,\n u_scale: scale,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies MeshGradientUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={meshGradientFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAwFH;AA9EG,MAAM,gBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,2BAA2B,2BAA2B,0BAA0B,yBAAyB;AAAA,IAClH,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF;AAEO,MAAM,eAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,0BAA0B,0BAA0B,yBAAyB,wBAAwB;AAAA,IAC9G,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF;AAEO,MAAM,cAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,0BAA0B,0BAA0B,yBAAyB,uBAAuB;AAAA,IAC7G,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF;AAEO,MAAM,sBAA4C,CAAC,eAAe,cAAc,WAAW;AAE3F,MAAM,eAA4C,KAAK,SAAS,iBAAiB;AAAA;AAAA,EAEtF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,SAAS,cAAc,OAAO;AAAA,EAC9B,aAAa,cAAc,OAAO;AAAA,EAClC,QAAQ,cAAc,OAAO;AAAA;AAAA,EAG7B,MAAM,cAAc,OAAO;AAAA,EAC3B,WAAW,cAAc,OAAO;AAAA,EAChC,QAAQ,cAAc,OAAO;AAAA,EAC7B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAsB;AACpB,QAAM,WAAW;AAAA;AAAA,IAEf,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,cAAc;AAAA,IACd,SAAS;AAAA;AAAA,IAGT,OAAO,iBAAiB,GAAG;AAAA,IAC3B,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ,GAAG,kBAAkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,19 +1,9 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
color3?: string;
|
|
7
|
-
ballSize?: number;
|
|
8
|
-
visibilityRange?: number;
|
|
9
|
-
} & GlobalParams;
|
|
10
|
-
export type MetaballsProps = Omit<ShaderMountProps, 'fragmentShader'> & MetaballsParams;
|
|
11
|
-
type MetaballsPreset = {
|
|
12
|
-
name: string;
|
|
13
|
-
params: Required<MetaballsParams>;
|
|
14
|
-
style?: React.CSSProperties;
|
|
15
|
-
};
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount';
|
|
2
|
+
import { type MetaballsParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface MetaballsProps extends ShaderComponentProps, MetaballsParams {
|
|
4
|
+
}
|
|
5
|
+
type MetaballsPreset = ShaderPreset<MetaballsParams>;
|
|
16
6
|
export declare const defaultPreset: MetaballsPreset;
|
|
17
7
|
export declare const metaballsPresets: MetaballsPreset[];
|
|
18
|
-
export declare const Metaballs:
|
|
8
|
+
export declare const Metaballs: React.FC<MetaballsProps>;
|
|
19
9
|
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
9
|
+
import {
|
|
10
|
+
defaultObjectSizing,
|
|
11
|
+
getShaderColorFromString,
|
|
12
|
+
metaballsFragmentShader,
|
|
13
|
+
ShaderFitOptions
|
|
14
|
+
} from "@paper-design/shaders";
|
|
15
|
+
import { jsx } from "react/jsx-runtime";
|
|
16
|
+
const defaultPreset = {
|
|
17
|
+
name: "Default",
|
|
18
|
+
params: {
|
|
19
|
+
...defaultObjectSizing,
|
|
20
|
+
scale: 1,
|
|
21
|
+
speed: 1,
|
|
22
|
+
frame: 0,
|
|
23
|
+
colors: ["hsla(259, 100%, 80%, 1)", "hsla(150, 100%, 80%, 1)", "hsla(48, 100%, 80%, 1)", "hsla(295, 100%, 80%, 1)"],
|
|
24
|
+
count: 7,
|
|
25
|
+
size: 1
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const metaballsPresets = [defaultPreset];
|
|
29
|
+
const Metaballs = memo(function MetaballsImpl({
|
|
30
|
+
// Own props
|
|
31
|
+
speed = defaultPreset.params.speed,
|
|
32
|
+
frame = defaultPreset.params.frame,
|
|
33
|
+
colors = defaultPreset.params.colors,
|
|
34
|
+
size = defaultPreset.params.size,
|
|
35
|
+
count = defaultPreset.params.count,
|
|
36
|
+
// Sizing props
|
|
37
|
+
fit = defaultPreset.params.fit,
|
|
38
|
+
rotation = defaultPreset.params.rotation,
|
|
39
|
+
scale = defaultPreset.params.scale,
|
|
40
|
+
originX = defaultPreset.params.originX,
|
|
41
|
+
originY = defaultPreset.params.originY,
|
|
42
|
+
offsetX = defaultPreset.params.offsetX,
|
|
43
|
+
offsetY = defaultPreset.params.offsetY,
|
|
44
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
45
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
46
|
+
...props
|
|
47
|
+
}) {
|
|
48
|
+
const uniforms = {
|
|
49
|
+
// Own uniforms
|
|
50
|
+
u_colors: colors.map(getShaderColorFromString),
|
|
51
|
+
u_colorsCount: colors.length,
|
|
52
|
+
u_size: size,
|
|
53
|
+
u_count: count,
|
|
54
|
+
// Sizing uniforms
|
|
55
|
+
u_fit: ShaderFitOptions[fit],
|
|
56
|
+
u_rotation: rotation,
|
|
57
|
+
u_scale: scale,
|
|
58
|
+
u_offsetX: offsetX,
|
|
59
|
+
u_offsetY: offsetY,
|
|
60
|
+
u_originX: originX,
|
|
61
|
+
u_originY: originY,
|
|
62
|
+
u_worldWidth: worldWidth,
|
|
63
|
+
u_worldHeight: worldHeight
|
|
64
|
+
};
|
|
65
|
+
return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: metaballsFragmentShader, uniforms });
|
|
66
|
+
}, colorPropsAreEqual);
|
|
67
|
+
export {
|
|
68
|
+
Metaballs,
|
|
69
|
+
defaultPreset,
|
|
70
|
+
metaballsPresets
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=metaballs.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/metaballs.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n metaballsFragmentShader,\n ShaderFitOptions,\n type MetaballsParams,\n type MetaballsUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MetaballsProps extends ShaderComponentProps, MetaballsParams {}\n\ntype MetaballsPreset = ShaderPreset<MetaballsParams>;\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: MetaballsPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 1,\n frame: 0,\n colors: ['hsla(259, 100%, 80%, 1)', 'hsla(150, 100%, 80%, 1)', 'hsla(48, 100%, 80%, 1)', 'hsla(295, 100%, 80%, 1)'],\n count: 7,\n size: 1,\n },\n};\n\nexport const metaballsPresets: MetaballsPreset[] = [defaultPreset];\n\nexport const Metaballs: React.FC<MetaballsProps> = memo(function MetaballsImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n size = defaultPreset.params.size,\n count = defaultPreset.params.count,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n rotation = defaultPreset.params.rotation,\n scale = defaultPreset.params.scale,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: MetaballsProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_size: size,\n u_count: count,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_rotation: rotation,\n u_scale: scale,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies MetaballsUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={metaballsFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAiEH;AAvDG,MAAM,gBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,2BAA2B,2BAA2B,0BAA0B,yBAAyB;AAAA,IAClH,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,mBAAsC,CAAC,aAAa;AAE1D,MAAM,YAAsC,KAAK,SAAS,cAAc;AAAA;AAAA,EAE7E,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,SAAS,cAAc,OAAO;AAAA,EAC9B,OAAO,cAAc,OAAO;AAAA,EAC5B,QAAQ,cAAc,OAAO;AAAA;AAAA,EAG7B,MAAM,cAAc,OAAO;AAAA,EAC3B,WAAW,cAAc,OAAO;AAAA,EAChC,QAAQ,cAAc,OAAO;AAAA,EAC7B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAmB;AACjB,QAAM,WAAW;AAAA;AAAA,IAEf,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,QAAQ;AAAA,IACR,SAAS;AAAA;AAAA,IAGT,OAAO,iBAAiB,GAAG;AAAA,IAC3B,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE,oBAAC,eAAa,GAAG,OAAO,OAAc,OAAc,gBAAgB,yBAAyB,UAAoB;AAErH,GAAG,kBAAkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
brightness?: number;
|
|
7
|
-
} & GlobalParams;
|
|
8
|
-
export type NeuroNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & NeuroNoiseParams;
|
|
9
|
-
type NeuroNoisePreset = {
|
|
10
|
-
name: string;
|
|
11
|
-
params: Required<NeuroNoiseParams>;
|
|
12
|
-
style?: React.CSSProperties;
|
|
13
|
-
};
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount';
|
|
2
|
+
import { type NeuroNoiseParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface NeuroNoiseProps extends ShaderComponentProps, NeuroNoiseParams {
|
|
4
|
+
}
|
|
5
|
+
type NeuroNoisePreset = ShaderPreset<NeuroNoiseParams>;
|
|
14
6
|
export declare const defaultPreset: NeuroNoisePreset;
|
|
15
7
|
export declare const neuroNoisePresets: NeuroNoisePreset[];
|
|
16
|
-
export declare const NeuroNoise:
|
|
8
|
+
export declare const NeuroNoise: React.FC<NeuroNoiseProps>;
|
|
17
9
|
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
9
|
+
import {
|
|
10
|
+
defaultPatternSizing,
|
|
11
|
+
getShaderColorFromString,
|
|
12
|
+
neuroNoiseFragmentShader,
|
|
13
|
+
ShaderFitOptions
|
|
14
|
+
} from "@paper-design/shaders";
|
|
15
|
+
import { jsx } from "react/jsx-runtime";
|
|
16
|
+
const defaultPreset = {
|
|
17
|
+
name: "Default",
|
|
18
|
+
params: {
|
|
19
|
+
...defaultPatternSizing,
|
|
20
|
+
speed: 1,
|
|
21
|
+
frame: 0,
|
|
22
|
+
colorFront: "hsla(261, 100%, 82%, 1)",
|
|
23
|
+
colorBack: "hsla(0, 0%, 0%, 1)",
|
|
24
|
+
brightness: 1.3
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const marblePreset = {
|
|
28
|
+
name: "Marble",
|
|
29
|
+
params: {
|
|
30
|
+
...defaultPatternSizing,
|
|
31
|
+
scale: 0.4,
|
|
32
|
+
speed: 0,
|
|
33
|
+
frame: 0,
|
|
34
|
+
colorFront: "hsla(230, 24%, 15%, 1)",
|
|
35
|
+
colorBack: "hsla(0, 0%, 97%, 1)",
|
|
36
|
+
brightness: 1.1
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const neuroNoisePresets = [defaultPreset, marblePreset];
|
|
40
|
+
const NeuroNoise = memo(function NeuroNoiseImpl({
|
|
41
|
+
// Own props
|
|
42
|
+
speed = defaultPreset.params.speed,
|
|
43
|
+
frame = defaultPreset.params.frame,
|
|
44
|
+
colorFront = defaultPreset.params.colorFront,
|
|
45
|
+
colorBack = defaultPreset.params.colorBack,
|
|
46
|
+
brightness = defaultPreset.params.brightness,
|
|
47
|
+
// Sizing props
|
|
48
|
+
fit = defaultPreset.params.fit,
|
|
49
|
+
scale = defaultPreset.params.scale,
|
|
50
|
+
rotation = defaultPreset.params.rotation,
|
|
51
|
+
originX = defaultPreset.params.originX,
|
|
52
|
+
originY = defaultPreset.params.originY,
|
|
53
|
+
offsetX = defaultPreset.params.offsetX,
|
|
54
|
+
offsetY = defaultPreset.params.offsetY,
|
|
55
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
56
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
57
|
+
...props
|
|
58
|
+
}) {
|
|
59
|
+
const uniforms = {
|
|
60
|
+
// Own uniforms
|
|
61
|
+
u_colorFront: getShaderColorFromString(colorFront),
|
|
62
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
63
|
+
u_brightness: brightness,
|
|
64
|
+
// Sizing uniforms
|
|
65
|
+
u_fit: ShaderFitOptions[fit],
|
|
66
|
+
u_scale: scale,
|
|
67
|
+
u_rotation: rotation,
|
|
68
|
+
u_offsetX: offsetX,
|
|
69
|
+
u_offsetY: offsetY,
|
|
70
|
+
u_originX: originX,
|
|
71
|
+
u_originY: originY,
|
|
72
|
+
u_worldWidth: worldWidth,
|
|
73
|
+
u_worldHeight: worldHeight
|
|
74
|
+
};
|
|
75
|
+
return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: neuroNoiseFragmentShader, uniforms });
|
|
76
|
+
}, colorPropsAreEqual);
|
|
77
|
+
export {
|
|
78
|
+
NeuroNoise,
|
|
79
|
+
defaultPreset,
|
|
80
|
+
neuroNoisePresets
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=neuro-noise.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/neuro-noise.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n defaultPatternSizing,\n getShaderColorFromString,\n neuroNoiseFragmentShader,\n ShaderFitOptions,\n type NeuroNoiseParams,\n type NeuroNoiseUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface NeuroNoiseProps extends ShaderComponentProps, NeuroNoiseParams {}\n\ntype NeuroNoisePreset = ShaderPreset<NeuroNoiseParams>;\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: NeuroNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\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 ...defaultPatternSizing,\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: React.FC<NeuroNoiseProps> = memo(function NeuroNoiseImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorFront = defaultPreset.params.colorFront,\n colorBack = defaultPreset.params.colorBack,\n brightness = defaultPreset.params.brightness,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: NeuroNoiseProps) {\n const uniforms = {\n // Own uniforms\n u_colorFront: getShaderColorFromString(colorFront),\n u_colorBack: getShaderColorFromString(colorBack),\n u_brightness: brightness,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies NeuroNoiseUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={neuroNoiseFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AA4EH;AAlEG,MAAM,gBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AACF;AAEA,MAAM,eAAiC;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AACF;AAEO,MAAM,oBAAwC,CAAC,eAAe,YAAY;AAE1E,MAAM,aAAwC,KAAK,SAAS,eAAe;AAAA;AAAA,EAEhF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,aAAa,cAAc,OAAO;AAAA,EAClC,YAAY,cAAc,OAAO;AAAA,EACjC,aAAa,cAAc,OAAO;AAAA;AAAA,EAGlC,MAAM,cAAc,OAAO;AAAA,EAC3B,QAAQ,cAAc,OAAO;AAAA,EAC7B,WAAW,cAAc,OAAO;AAAA,EAChC,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAoB;AAClB,QAAM,WAAW;AAAA;AAAA,IAEf,cAAc,yBAAyB,UAAU;AAAA,IACjD,aAAa,yBAAyB,SAAS;AAAA,IAC/C,cAAc;AAAA;AAAA,IAGd,OAAO,iBAAiB,GAAG;AAAA,IAC3B,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE,oBAAC,eAAa,GAAG,OAAO,OAAc,OAAc,gBAAgB,0BAA0B,UAAoB;AAEtH,GAAG,kBAAkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
softness?: number;
|
|
7
|
-
octaveCount?: number;
|
|
8
|
-
persistence?: number;
|
|
9
|
-
lacunarity?: number;
|
|
10
|
-
} & GlobalParams;
|
|
11
|
-
export type PerlinNoiseProps = Omit<ShaderMountProps, 'fragmentShader'> & PerlinNoiseParams;
|
|
12
|
-
type PerlinNoisePreset = {
|
|
13
|
-
name: string;
|
|
14
|
-
params: Required<PerlinNoiseParams>;
|
|
15
|
-
style?: React.CSSProperties;
|
|
16
|
-
};
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount';
|
|
2
|
+
import { type PerlinNoiseParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface PerlinNoiseProps extends ShaderComponentProps, PerlinNoiseParams {
|
|
4
|
+
}
|
|
5
|
+
type PerlinNoisePreset = ShaderPreset<PerlinNoiseParams>;
|
|
17
6
|
export declare const defaultPreset: PerlinNoisePreset;
|
|
18
7
|
export declare const nintendoWaterPreset: PerlinNoisePreset;
|
|
19
8
|
export declare const colonyPreset: PerlinNoisePreset;
|
|
@@ -21,5 +10,5 @@ export declare const phosphenesPreset: PerlinNoisePreset;
|
|
|
21
10
|
export declare const mossPreset: PerlinNoisePreset;
|
|
22
11
|
export declare const wormsPreset: PerlinNoisePreset;
|
|
23
12
|
export declare const perlinNoisePresets: PerlinNoisePreset[];
|
|
24
|
-
export declare const PerlinNoise:
|
|
13
|
+
export declare const PerlinNoise: React.FC<PerlinNoiseProps>;
|
|
25
14
|
export {};
|