@paper-design/shaders-react 0.0.36 → 0.0.38
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 +62 -0
- package/dist/index.js +94 -0
- package/dist/index.js.map +7 -0
- package/dist/shader-mount.d.ts +26 -0
- package/dist/shader-mount.js +126 -0
- package/dist/shader-mount.js.map +7 -0
- package/dist/shaders/color-panels.d.ts +9 -0
- package/dist/shaders/color-panels.js +101 -0
- package/dist/shaders/color-panels.js.map +7 -0
- package/dist/shaders/dithering.d.ts +15 -0
- package/dist/shaders/dithering.js +170 -0
- package/dist/shaders/dithering.js.map +7 -0
- package/dist/shaders/dot-grid.d.ts +10 -0
- package/dist/shaders/dot-grid.js +230 -0
- package/dist/shaders/dot-grid.js.map +7 -0
- package/dist/shaders/dot-orbit.d.ts +9 -0
- package/dist/shaders/dot-orbit.js +80 -0
- package/dist/shaders/dot-orbit.js.map +7 -0
- package/dist/shaders/god-rays.d.ts +13 -0
- package/dist/shaders/god-rays.js +167 -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 +208 -0
- package/dist/shaders/grain-gradient.js.map +7 -0
- package/dist/shaders/liquid-metal.d.ts +12 -0
- package/dist/shaders/liquid-metal.js +156 -0
- package/dist/shaders/liquid-metal.js.map +7 -0
- package/dist/shaders/mesh-gradient.d.ts +11 -0
- package/dist/shaders/mesh-gradient.js +104 -0
- package/dist/shaders/mesh-gradient.js.map +7 -0
- package/dist/shaders/metaballs.d.ts +9 -0
- package/dist/shaders/metaballs.js +75 -0
- package/dist/shaders/metaballs.js.map +7 -0
- package/dist/shaders/neuro-noise.d.ts +9 -0
- package/dist/shaders/neuro-noise.js +76 -0
- package/dist/shaders/neuro-noise.js.map +7 -0
- package/dist/shaders/perlin-noise.d.ts +14 -0
- 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 +12 -0
- package/dist/shaders/smoke-ring.js +134 -0
- package/dist/shaders/smoke-ring.js.map +7 -0
- package/dist/shaders/spiral.d.ts +15 -0
- 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 +136 -0
- package/dist/shaders/swirl.js.map +7 -0
- package/dist/shaders/voronoi.d.ts +10 -0
- package/dist/shaders/voronoi.js +102 -0
- package/dist/shaders/voronoi.js.map +7 -0
- package/dist/shaders/warp.d.ts +19 -0
- package/dist/shaders/warp.js +294 -0
- package/dist/shaders/warp.js.map +7 -0
- package/dist/shaders/waves.d.ts +14 -0
- package/dist/shaders/waves.js +178 -0
- package/dist/shaders/waves.js.map +7 -0
- package/dist/use-merge-refs.d.ts +6 -0
- package/dist/use-merge-refs.js +48 -0
- package/dist/use-merge-refs.js.map +7 -0
- package/package.json +3 -3
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
|
+
import {
|
|
9
|
+
getShaderColorFromString,
|
|
10
|
+
ditheringFragmentShader,
|
|
11
|
+
ShaderFitOptions,
|
|
12
|
+
defaultPatternSizing,
|
|
13
|
+
defaultObjectSizing,
|
|
14
|
+
DitheringTypes
|
|
15
|
+
} from "@paper-design/shaders";
|
|
16
|
+
import { DitheringShapes } from "@paper-design/shaders";
|
|
17
|
+
import { jsx } from "react/jsx-runtime";
|
|
18
|
+
const defaultPreset = {
|
|
19
|
+
name: "Default",
|
|
20
|
+
params: {
|
|
21
|
+
...defaultPatternSizing,
|
|
22
|
+
speed: 1,
|
|
23
|
+
frame: 0,
|
|
24
|
+
colorBack: "#252531",
|
|
25
|
+
colorFront: "#b59f82",
|
|
26
|
+
shape: "simplex",
|
|
27
|
+
type: "4x4",
|
|
28
|
+
pxSize: 2
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const warpPreset = {
|
|
32
|
+
name: "Warp",
|
|
33
|
+
params: {
|
|
34
|
+
...defaultPatternSizing,
|
|
35
|
+
speed: 1,
|
|
36
|
+
frame: 0,
|
|
37
|
+
colorBack: "#2f6e83",
|
|
38
|
+
colorFront: "#dceae8",
|
|
39
|
+
shape: "warp",
|
|
40
|
+
type: "4x4",
|
|
41
|
+
pxSize: 2
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const sinePreset = {
|
|
45
|
+
name: "Sine Wave",
|
|
46
|
+
params: {
|
|
47
|
+
...defaultPatternSizing,
|
|
48
|
+
speed: 1,
|
|
49
|
+
frame: 0,
|
|
50
|
+
colorBack: "#730d54",
|
|
51
|
+
colorFront: "#00becc",
|
|
52
|
+
shape: "wave",
|
|
53
|
+
type: "4x4",
|
|
54
|
+
pxSize: 11
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const bugsPreset = {
|
|
58
|
+
name: "Bugs",
|
|
59
|
+
params: {
|
|
60
|
+
...defaultPatternSizing,
|
|
61
|
+
speed: 1,
|
|
62
|
+
frame: 0,
|
|
63
|
+
colorBack: "#000000",
|
|
64
|
+
colorFront: "#008000",
|
|
65
|
+
shape: "dots",
|
|
66
|
+
type: "random",
|
|
67
|
+
pxSize: 9
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const ripplePreset = {
|
|
71
|
+
name: "Ripple",
|
|
72
|
+
params: {
|
|
73
|
+
...defaultObjectSizing,
|
|
74
|
+
speed: 1,
|
|
75
|
+
frame: 0,
|
|
76
|
+
colorBack: "#603520",
|
|
77
|
+
colorFront: "#c67953",
|
|
78
|
+
shape: "ripple",
|
|
79
|
+
type: "2x2",
|
|
80
|
+
pxSize: 3
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const swirlPreset = {
|
|
84
|
+
name: "Swirl",
|
|
85
|
+
params: {
|
|
86
|
+
...defaultObjectSizing,
|
|
87
|
+
speed: 1,
|
|
88
|
+
frame: 0,
|
|
89
|
+
colorBack: "#000000",
|
|
90
|
+
colorFront: "#263740",
|
|
91
|
+
shape: "swirl",
|
|
92
|
+
type: "8x8",
|
|
93
|
+
pxSize: 2
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
const spherePreset = {
|
|
97
|
+
name: "Sphere",
|
|
98
|
+
params: {
|
|
99
|
+
...defaultObjectSizing,
|
|
100
|
+
speed: 1,
|
|
101
|
+
frame: 0,
|
|
102
|
+
colorBack: "#301c2a",
|
|
103
|
+
colorFront: "#366341",
|
|
104
|
+
shape: "sphere",
|
|
105
|
+
type: "4x4",
|
|
106
|
+
pxSize: 2.5
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
const ditheringPresets = [
|
|
110
|
+
defaultPreset,
|
|
111
|
+
spherePreset,
|
|
112
|
+
sinePreset,
|
|
113
|
+
warpPreset,
|
|
114
|
+
ripplePreset,
|
|
115
|
+
bugsPreset,
|
|
116
|
+
swirlPreset
|
|
117
|
+
];
|
|
118
|
+
const Dithering = memo(function DitheringImpl({
|
|
119
|
+
// Own props
|
|
120
|
+
speed = defaultPreset.params.speed,
|
|
121
|
+
frame = defaultPreset.params.frame,
|
|
122
|
+
colorBack = defaultPreset.params.colorBack,
|
|
123
|
+
colorFront = defaultPreset.params.colorFront,
|
|
124
|
+
shape = defaultPreset.params.shape,
|
|
125
|
+
type = defaultPreset.params.type,
|
|
126
|
+
pxSize = defaultPreset.params.pxSize,
|
|
127
|
+
// Sizing props
|
|
128
|
+
fit = defaultPreset.params.fit,
|
|
129
|
+
scale = defaultPreset.params.scale,
|
|
130
|
+
rotation = defaultPreset.params.rotation,
|
|
131
|
+
originX = defaultPreset.params.originX,
|
|
132
|
+
originY = defaultPreset.params.originY,
|
|
133
|
+
offsetX = defaultPreset.params.offsetX,
|
|
134
|
+
offsetY = defaultPreset.params.offsetY,
|
|
135
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
136
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
137
|
+
...props
|
|
138
|
+
}) {
|
|
139
|
+
const uniforms = {
|
|
140
|
+
// Own uniforms
|
|
141
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
142
|
+
u_colorFront: getShaderColorFromString(colorFront),
|
|
143
|
+
u_shape: DitheringShapes[shape],
|
|
144
|
+
u_type: DitheringTypes[type],
|
|
145
|
+
u_pxSize: pxSize,
|
|
146
|
+
// Sizing uniforms
|
|
147
|
+
u_fit: ShaderFitOptions[fit],
|
|
148
|
+
u_scale: scale,
|
|
149
|
+
u_rotation: rotation,
|
|
150
|
+
u_offsetX: offsetX,
|
|
151
|
+
u_offsetY: offsetY,
|
|
152
|
+
u_originX: originX,
|
|
153
|
+
u_originY: originY,
|
|
154
|
+
u_worldWidth: worldWidth,
|
|
155
|
+
u_worldHeight: worldHeight
|
|
156
|
+
};
|
|
157
|
+
return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: ditheringFragmentShader, uniforms });
|
|
158
|
+
});
|
|
159
|
+
export {
|
|
160
|
+
Dithering,
|
|
161
|
+
bugsPreset,
|
|
162
|
+
defaultPreset,
|
|
163
|
+
ditheringPresets,
|
|
164
|
+
ripplePreset,
|
|
165
|
+
sinePreset,
|
|
166
|
+
spherePreset,
|
|
167
|
+
swirlPreset,
|
|
168
|
+
warpPreset
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=dithering.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/dithering.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport {\n getShaderColorFromString,\n ditheringFragmentShader,\n ShaderFitOptions,\n type DitheringUniforms,\n type DitheringParams,\n type ShaderPreset,\n defaultPatternSizing,\n defaultObjectSizing,\n DitheringTypes,\n} from '@paper-design/shaders';\nimport { DitheringShapes } from '@paper-design/shaders';\n\nexport interface DitheringProps extends ShaderComponentProps, DitheringParams {}\n\ntype DitheringPreset = ShaderPreset<DitheringParams>;\n\nexport const defaultPreset: DitheringPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorBack: '#252531',\n colorFront: '#b59f82',\n shape: 'simplex',\n type: '4x4',\n pxSize: 2,\n },\n};\n\nexport const warpPreset: DitheringPreset = {\n name: 'Warp',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorBack: '#2f6e83',\n colorFront: '#dceae8',\n shape: 'warp',\n type: '4x4',\n pxSize: 2,\n },\n} as const;\n\nexport const sinePreset: DitheringPreset = {\n name: 'Sine Wave',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorBack: '#730d54',\n colorFront: '#00becc',\n shape: 'wave',\n type: '4x4',\n pxSize: 11,\n },\n} as const;\n\nexport const bugsPreset: DitheringPreset = {\n name: 'Bugs',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorBack: '#000000',\n colorFront: '#008000',\n shape: 'dots',\n type: 'random',\n pxSize: 9,\n },\n} as const;\n\nexport const ripplePreset: DitheringPreset = {\n name: 'Ripple',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#603520',\n colorFront: '#c67953',\n shape: 'ripple',\n type: '2x2',\n pxSize: 3,\n },\n} as const;\n\nexport const swirlPreset: DitheringPreset = {\n name: 'Swirl',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#000000',\n colorFront: '#263740',\n shape: 'swirl',\n type: '8x8',\n pxSize: 2,\n },\n} as const;\n\nexport const spherePreset: DitheringPreset = {\n name: 'Sphere',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#301c2a',\n colorFront: '#366341',\n shape: 'sphere',\n type: '4x4',\n pxSize: 2.5,\n },\n} as const;\n\nexport const ditheringPresets: DitheringPreset[] = [\n defaultPreset,\n spherePreset,\n sinePreset,\n warpPreset,\n ripplePreset,\n bugsPreset,\n swirlPreset,\n];\n\nexport const Dithering: React.FC<DitheringProps> = memo(function DitheringImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colorFront = defaultPreset.params.colorFront,\n shape = defaultPreset.params.shape,\n type = defaultPreset.params.type,\n pxSize = defaultPreset.params.pxSize,\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}) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorFront: getShaderColorFromString(colorFront),\n u_shape: DitheringShapes[shape],\n u_type: DitheringTypes[type],\n u_pxSize: pxSize,\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 DitheringUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={ditheringFragmentShader} uniforms={uniforms} />\n );\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount.js';
|
|
2
|
+
import { type DotGridParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface DotGridProps extends ShaderComponentProps, DotGridParams {
|
|
4
|
+
}
|
|
5
|
+
type DotGridPreset = ShaderPreset<DotGridParams>;
|
|
6
|
+
export declare const defaultPreset: DotGridPreset;
|
|
7
|
+
export declare const macrodataPreset: DotGridPreset;
|
|
8
|
+
export declare const dotGridPresets: DotGridPreset[];
|
|
9
|
+
export declare const DotGrid: React.FC<DotGridProps>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal.js";
|
|
9
|
+
import {
|
|
10
|
+
getShaderColorFromString,
|
|
11
|
+
dotGridFragmentShader,
|
|
12
|
+
DotGridShapes,
|
|
13
|
+
ShaderFitOptions,
|
|
14
|
+
defaultPatternSizing
|
|
15
|
+
} from "@paper-design/shaders";
|
|
16
|
+
import { jsx } from "react/jsx-runtime";
|
|
17
|
+
const defaultPreset = {
|
|
18
|
+
name: "Default",
|
|
19
|
+
params: {
|
|
20
|
+
...defaultPatternSizing,
|
|
21
|
+
colorBack: "#000000",
|
|
22
|
+
colorFill: "#ffffff",
|
|
23
|
+
colorStroke: "#dd5500",
|
|
24
|
+
size: 2,
|
|
25
|
+
gapX: 50,
|
|
26
|
+
gapY: 50,
|
|
27
|
+
strokeWidth: 0,
|
|
28
|
+
sizeRange: 0,
|
|
29
|
+
opacityRange: 0,
|
|
30
|
+
shape: "circle"
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const macrodataPreset = {
|
|
34
|
+
name: "Macrodata",
|
|
35
|
+
params: {
|
|
36
|
+
...defaultPatternSizing,
|
|
37
|
+
colorBack: "#15212d",
|
|
38
|
+
colorFill: "#5794ff",
|
|
39
|
+
colorStroke: "#0000ff",
|
|
40
|
+
size: 3,
|
|
41
|
+
gapX: 25,
|
|
42
|
+
gapY: 25,
|
|
43
|
+
strokeWidth: 0,
|
|
44
|
+
sizeRange: 0.25,
|
|
45
|
+
opacityRange: 0.9,
|
|
46
|
+
shape: "circle"
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const trianglesPreset = {
|
|
50
|
+
name: "Triangles",
|
|
51
|
+
params: {
|
|
52
|
+
...defaultPatternSizing,
|
|
53
|
+
colorBack: "#ffffff",
|
|
54
|
+
colorFill: "#ffffff",
|
|
55
|
+
colorStroke: "#808080",
|
|
56
|
+
size: 5,
|
|
57
|
+
gapX: 32,
|
|
58
|
+
gapY: 32,
|
|
59
|
+
strokeWidth: 1,
|
|
60
|
+
sizeRange: 0,
|
|
61
|
+
opacityRange: 0,
|
|
62
|
+
shape: "triangle"
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const bubblesPreset = {
|
|
66
|
+
name: "Bubbles",
|
|
67
|
+
params: {
|
|
68
|
+
...defaultPatternSizing,
|
|
69
|
+
colorBack: "#002c9e80",
|
|
70
|
+
colorFill: "#ffffff",
|
|
71
|
+
colorStroke: "#000000",
|
|
72
|
+
size: 15,
|
|
73
|
+
gapX: 60,
|
|
74
|
+
gapY: 60,
|
|
75
|
+
strokeWidth: 12,
|
|
76
|
+
sizeRange: 0.7,
|
|
77
|
+
opacityRange: 1.3,
|
|
78
|
+
shape: "circle"
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
const treeLinePreset = {
|
|
82
|
+
name: "Tree line",
|
|
83
|
+
params: {
|
|
84
|
+
...defaultPatternSizing,
|
|
85
|
+
colorBack: "#f4fce7",
|
|
86
|
+
colorFill: "#052e19",
|
|
87
|
+
colorStroke: "#000000",
|
|
88
|
+
size: 8,
|
|
89
|
+
gapX: 20,
|
|
90
|
+
gapY: 90,
|
|
91
|
+
strokeWidth: 0,
|
|
92
|
+
sizeRange: 1,
|
|
93
|
+
opacityRange: 0.6,
|
|
94
|
+
shape: "circle"
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
const diamondsPreset = {
|
|
98
|
+
name: "Diamonds",
|
|
99
|
+
params: {
|
|
100
|
+
...defaultPatternSizing,
|
|
101
|
+
colorBack: "#ffffff",
|
|
102
|
+
colorFill: "#ff0000",
|
|
103
|
+
colorStroke: "#000000",
|
|
104
|
+
size: 15,
|
|
105
|
+
gapX: 30,
|
|
106
|
+
gapY: 30,
|
|
107
|
+
strokeWidth: 0,
|
|
108
|
+
sizeRange: 0,
|
|
109
|
+
opacityRange: 2,
|
|
110
|
+
shape: "diamond"
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const wallpaperPreset = {
|
|
114
|
+
name: "Wallpaper",
|
|
115
|
+
params: {
|
|
116
|
+
...defaultPatternSizing,
|
|
117
|
+
colorBack: "#204030",
|
|
118
|
+
colorFill: "#000000",
|
|
119
|
+
colorStroke: "#bd955b",
|
|
120
|
+
size: 9,
|
|
121
|
+
gapX: 32,
|
|
122
|
+
gapY: 32,
|
|
123
|
+
strokeWidth: 1,
|
|
124
|
+
sizeRange: 0,
|
|
125
|
+
opacityRange: 0,
|
|
126
|
+
shape: "diamond"
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
const matrixPreset = {
|
|
130
|
+
name: "Enter the Matrix",
|
|
131
|
+
params: {
|
|
132
|
+
...defaultPatternSizing,
|
|
133
|
+
colorBack: "#000000",
|
|
134
|
+
colorFill: "#47ffea",
|
|
135
|
+
colorStroke: "#000000",
|
|
136
|
+
size: 2,
|
|
137
|
+
gapX: 10,
|
|
138
|
+
gapY: 10,
|
|
139
|
+
strokeWidth: 0.5,
|
|
140
|
+
sizeRange: 0.25,
|
|
141
|
+
opacityRange: 1,
|
|
142
|
+
shape: "triangle"
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
const waveformPreset = {
|
|
146
|
+
name: "Waveform",
|
|
147
|
+
params: {
|
|
148
|
+
...defaultPatternSizing,
|
|
149
|
+
colorBack: "#ffffff",
|
|
150
|
+
colorFill: "#0934b8",
|
|
151
|
+
colorStroke: "#000000",
|
|
152
|
+
size: 100,
|
|
153
|
+
gapX: 2,
|
|
154
|
+
gapY: 215,
|
|
155
|
+
strokeWidth: 0,
|
|
156
|
+
sizeRange: 1,
|
|
157
|
+
opacityRange: 0,
|
|
158
|
+
shape: "square"
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const dotGridPresets = [
|
|
162
|
+
defaultPreset,
|
|
163
|
+
macrodataPreset,
|
|
164
|
+
trianglesPreset,
|
|
165
|
+
bubblesPreset,
|
|
166
|
+
treeLinePreset,
|
|
167
|
+
diamondsPreset,
|
|
168
|
+
wallpaperPreset,
|
|
169
|
+
matrixPreset,
|
|
170
|
+
waveformPreset
|
|
171
|
+
];
|
|
172
|
+
const DotGrid = memo(function DotGridImpl({
|
|
173
|
+
// Own props
|
|
174
|
+
colorBack = defaultPreset.params.colorBack,
|
|
175
|
+
colorFill = defaultPreset.params.colorFill,
|
|
176
|
+
colorStroke = defaultPreset.params.colorStroke,
|
|
177
|
+
size = defaultPreset.params.size,
|
|
178
|
+
gapX = defaultPreset.params.gapX,
|
|
179
|
+
gapY = defaultPreset.params.gapY,
|
|
180
|
+
strokeWidth = defaultPreset.params.strokeWidth,
|
|
181
|
+
sizeRange = defaultPreset.params.sizeRange,
|
|
182
|
+
opacityRange = defaultPreset.params.opacityRange,
|
|
183
|
+
shape = defaultPreset.params.shape,
|
|
184
|
+
// Sizing props
|
|
185
|
+
fit = defaultPreset.params.fit,
|
|
186
|
+
scale = defaultPreset.params.scale,
|
|
187
|
+
rotation = defaultPreset.params.rotation,
|
|
188
|
+
originX = defaultPreset.params.originX,
|
|
189
|
+
originY = defaultPreset.params.originY,
|
|
190
|
+
offsetX = defaultPreset.params.offsetX,
|
|
191
|
+
offsetY = defaultPreset.params.offsetY,
|
|
192
|
+
worldWidth = defaultPreset.params.worldWidth,
|
|
193
|
+
worldHeight = defaultPreset.params.worldHeight,
|
|
194
|
+
// Other props
|
|
195
|
+
maxPixelCount = 6016 * 3384,
|
|
196
|
+
// Higher max resolution for this shader
|
|
197
|
+
...props
|
|
198
|
+
}) {
|
|
199
|
+
const uniforms = {
|
|
200
|
+
// Own uniforms
|
|
201
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
202
|
+
u_colorFill: getShaderColorFromString(colorFill),
|
|
203
|
+
u_colorStroke: getShaderColorFromString(colorStroke),
|
|
204
|
+
u_dotSize: size,
|
|
205
|
+
u_gapX: gapX,
|
|
206
|
+
u_gapY: gapY,
|
|
207
|
+
u_strokeWidth: strokeWidth,
|
|
208
|
+
u_sizeRange: sizeRange,
|
|
209
|
+
u_opacityRange: opacityRange,
|
|
210
|
+
u_shape: DotGridShapes[shape],
|
|
211
|
+
// Sizing uniforms
|
|
212
|
+
u_fit: ShaderFitOptions[fit],
|
|
213
|
+
u_scale: scale,
|
|
214
|
+
u_rotation: rotation,
|
|
215
|
+
u_offsetX: offsetX,
|
|
216
|
+
u_offsetY: offsetY,
|
|
217
|
+
u_originX: originX,
|
|
218
|
+
u_originY: originY,
|
|
219
|
+
u_worldWidth: worldWidth,
|
|
220
|
+
u_worldHeight: worldHeight
|
|
221
|
+
};
|
|
222
|
+
return /* @__PURE__ */ jsx(ShaderMount, { ...props, maxPixelCount, fragmentShader: dotGridFragmentShader, uniforms });
|
|
223
|
+
}, colorPropsAreEqual);
|
|
224
|
+
export {
|
|
225
|
+
DotGrid,
|
|
226
|
+
defaultPreset,
|
|
227
|
+
dotGridPresets,
|
|
228
|
+
macrodataPreset
|
|
229
|
+
};
|
|
230
|
+
//# sourceMappingURL=dot-grid.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/dot-grid.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n getShaderColorFromString,\n dotGridFragmentShader,\n DotGridShapes,\n ShaderFitOptions,\n type DotGridParams,\n type DotGridUniforms,\n type ShaderPreset,\n defaultPatternSizing,\n} from '@paper-design/shaders';\n\nexport interface DotGridProps extends ShaderComponentProps, DotGridParams {}\n\ntype DotGridPreset = ShaderPreset<DotGridParams>;\n\nexport const defaultPreset: DotGridPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n colorBack: '#000000',\n colorFill: '#ffffff',\n colorStroke: '#dd5500',\n size: 2,\n gapX: 50,\n gapY: 50,\n strokeWidth: 0,\n sizeRange: 0,\n opacityRange: 0,\n shape: 'circle',\n },\n};\n\nexport const macrodataPreset: DotGridPreset = {\n name: 'Macrodata',\n params: {\n ...defaultPatternSizing,\n colorBack: '#15212d',\n colorFill: '#5794ff',\n colorStroke: '#0000ff',\n size: 3,\n gapX: 25,\n gapY: 25,\n strokeWidth: 0,\n sizeRange: 0.25,\n opacityRange: 0.9,\n shape: 'circle',\n },\n};\n\nconst trianglesPreset: DotGridPreset = {\n name: 'Triangles',\n params: {\n ...defaultPatternSizing,\n colorBack: '#ffffff',\n colorFill: '#ffffff',\n colorStroke: '#808080',\n size: 5,\n gapX: 32,\n gapY: 32,\n strokeWidth: 1,\n sizeRange: 0,\n opacityRange: 0,\n shape: 'triangle',\n },\n};\n\nconst bubblesPreset: DotGridPreset = {\n name: 'Bubbles',\n params: {\n ...defaultPatternSizing,\n colorBack: '#002c9e80',\n colorFill: '#ffffff',\n colorStroke: '#000000',\n size: 15,\n gapX: 60,\n gapY: 60,\n strokeWidth: 12,\n sizeRange: 0.7,\n opacityRange: 1.3,\n shape: 'circle',\n },\n};\n\nconst treeLinePreset: DotGridPreset = {\n name: 'Tree line',\n params: {\n ...defaultPatternSizing,\n colorBack: '#f4fce7',\n colorFill: '#052e19',\n colorStroke: '#000000',\n size: 8,\n gapX: 20,\n gapY: 90,\n strokeWidth: 0,\n sizeRange: 1,\n opacityRange: 0.6,\n shape: 'circle',\n },\n};\n\nconst diamondsPreset: DotGridPreset = {\n name: 'Diamonds',\n params: {\n ...defaultPatternSizing,\n colorBack: '#ffffff',\n colorFill: '#ff0000',\n colorStroke: '#000000',\n size: 15,\n gapX: 30,\n gapY: 30,\n strokeWidth: 0,\n sizeRange: 0,\n opacityRange: 2,\n shape: 'diamond',\n },\n};\n\nconst wallpaperPreset: DotGridPreset = {\n name: 'Wallpaper',\n params: {\n ...defaultPatternSizing,\n colorBack: '#204030',\n colorFill: '#000000',\n colorStroke: '#bd955b',\n size: 9,\n gapX: 32,\n gapY: 32,\n strokeWidth: 1,\n sizeRange: 0,\n opacityRange: 0,\n shape: 'diamond',\n },\n};\n\nconst matrixPreset: DotGridPreset = {\n name: 'Enter the Matrix',\n params: {\n ...defaultPatternSizing,\n colorBack: '#000000',\n colorFill: '#47ffea',\n colorStroke: '#000000',\n size: 2,\n gapX: 10,\n gapY: 10,\n strokeWidth: 0.5,\n sizeRange: 0.25,\n opacityRange: 1,\n shape: 'triangle',\n },\n};\n\nconst waveformPreset: DotGridPreset = {\n name: 'Waveform',\n params: {\n ...defaultPatternSizing,\n colorBack: '#ffffff',\n colorFill: '#0934b8',\n colorStroke: '#000000',\n size: 100,\n gapX: 2,\n gapY: 215,\n strokeWidth: 0,\n sizeRange: 1,\n opacityRange: 0,\n shape: 'square',\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: React.FC<DotGridProps> = memo(function DotGridImpl({\n // Own props\n colorBack = defaultPreset.params.colorBack,\n colorFill = defaultPreset.params.colorFill,\n colorStroke = defaultPreset.params.colorStroke,\n size = defaultPreset.params.size,\n gapX = defaultPreset.params.gapX,\n gapY = defaultPreset.params.gapY,\n strokeWidth = defaultPreset.params.strokeWidth,\n sizeRange = defaultPreset.params.sizeRange,\n opacityRange = defaultPreset.params.opacityRange,\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\n // Other props\n maxPixelCount = 6016 * 3384, // Higher max resolution for this shader\n ...props\n}: DotGridProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorFill: getShaderColorFromString(colorFill),\n u_colorStroke: getShaderColorFromString(colorStroke),\n u_dotSize: size,\n u_gapX: gapX,\n u_gapY: gapY,\n u_strokeWidth: strokeWidth,\n u_sizeRange: sizeRange,\n u_opacityRange: opacityRange,\n u_shape: DotGridShapes[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 DotGridUniforms;\n\n return (\n <ShaderMount {...props} maxPixelCount={maxPixelCount} fragmentShader={dotGridFragmentShader} 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,EAIA;AAAA,OACK;AAiOH;AA3NG,MAAM,gBAA+B;AAAA,EAC1C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,IACX,cAAc;AAAA,IACd,OAAO;AAAA,EACT;AACF;AAEO,MAAM,kBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,IACX,cAAc;AAAA,IACd,OAAO;AAAA,EACT;AACF;AAEA,MAAM,kBAAiC;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,IACX,cAAc;AAAA,IACd,OAAO;AAAA,EACT;AACF;AAEA,MAAM,gBAA+B;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,IACX,cAAc;AAAA,IACd,OAAO;AAAA,EACT;AACF;AAEA,MAAM,iBAAgC;AAAA,EACpC,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,IACX,cAAc;AAAA,IACd,OAAO;AAAA,EACT;AACF;AAEA,MAAM,iBAAgC;AAAA,EACpC,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,IACX,cAAc;AAAA,IACd,OAAO;AAAA,EACT;AACF;AAEA,MAAM,kBAAiC;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,IACX,cAAc;AAAA,IACd,OAAO;AAAA,EACT;AACF;AAEA,MAAM,eAA8B;AAAA,EAClC,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,IACX,cAAc;AAAA,IACd,OAAO;AAAA,EACT;AACF;AAEA,MAAM,iBAAgC;AAAA,EACpC,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,IACX,cAAc;AAAA,IACd,OAAO;AAAA,EACT;AACF;AAEO,MAAM,iBAAkC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,UAAkC,KAAK,SAAS,YAAY;AAAA;AAAA,EAEvE,YAAY,cAAc,OAAO;AAAA,EACjC,YAAY,cAAc,OAAO;AAAA,EACjC,cAAc,cAAc,OAAO;AAAA,EACnC,OAAO,cAAc,OAAO;AAAA,EAC5B,OAAO,cAAc,OAAO;AAAA,EAC5B,OAAO,cAAc,OAAO;AAAA,EAC5B,cAAc,cAAc,OAAO;AAAA,EACnC,YAAY,cAAc,OAAO;AAAA,EACjC,eAAe,cAAc,OAAO;AAAA,EACpC,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;AAAA,EAGnC,gBAAgB,OAAO;AAAA;AAAA,EACvB,GAAG;AACL,GAAiB;AACf,QAAM,WAAW;AAAA;AAAA,IAEf,aAAa,yBAAyB,SAAS;AAAA,IAC/C,aAAa,yBAAyB,SAAS;AAAA,IAC/C,eAAe,yBAAyB,WAAW;AAAA,IACnD,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,SAAS,cAAc,KAAK;AAAA;AAAA,IAG5B,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,eAA8B,gBAAgB,uBAAuB,UAAoB;AAErH,GAAG,kBAAkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount.js';
|
|
2
|
+
import { type DotOrbitParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface DotOrbitProps extends ShaderComponentProps, DotOrbitParams {
|
|
4
|
+
}
|
|
5
|
+
type DotOrbitPreset = ShaderPreset<DotOrbitParams>;
|
|
6
|
+
export declare const defaultPreset: DotOrbitPreset;
|
|
7
|
+
export declare const dotOrbitPresets: DotOrbitPreset[];
|
|
8
|
+
export declare const DotOrbit: React.FC<DotOrbitProps>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
2
|
+
* Paper Shaders *
|
|
3
|
+
* https://github.com/paper-design/shaders *
|
|
4
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
|
+
|
|
6
|
+
import { memo } from "react";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal.js";
|
|
9
|
+
import {
|
|
10
|
+
getShaderColorFromString,
|
|
11
|
+
dotOrbitFragmentShader,
|
|
12
|
+
ShaderFitOptions,
|
|
13
|
+
defaultPatternSizing
|
|
14
|
+
} from "@paper-design/shaders";
|
|
15
|
+
import { jsx } from "react/jsx-runtime";
|
|
16
|
+
const defaultPreset = {
|
|
17
|
+
name: "Default",
|
|
18
|
+
params: {
|
|
19
|
+
...defaultPatternSizing,
|
|
20
|
+
speed: 2,
|
|
21
|
+
frame: 0,
|
|
22
|
+
colorBack: "#03001f",
|
|
23
|
+
colors: ["#661400", "#ccbb00", "#cc0088"],
|
|
24
|
+
size: 0.9,
|
|
25
|
+
sizeRange: 0,
|
|
26
|
+
spreading: 1,
|
|
27
|
+
stepsPerColor: 2
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const dotOrbitPresets = [defaultPreset];
|
|
31
|
+
const DotOrbit = memo(function DotOrbitImpl({
|
|
32
|
+
// Own props
|
|
33
|
+
speed = defaultPreset.params.speed,
|
|
34
|
+
frame = defaultPreset.params.frame,
|
|
35
|
+
colorBack = defaultPreset.params.colorBack,
|
|
36
|
+
colors = defaultPreset.params.colors,
|
|
37
|
+
size = defaultPreset.params.size,
|
|
38
|
+
sizeRange = defaultPreset.params.sizeRange,
|
|
39
|
+
spreading = defaultPreset.params.spreading,
|
|
40
|
+
stepsPerColor = defaultPreset.params.stepsPerColor,
|
|
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_colorBack: getShaderColorFromString(colorBack),
|
|
56
|
+
u_colors: colors.map(getShaderColorFromString),
|
|
57
|
+
u_colorsCount: colors.length,
|
|
58
|
+
u_size: size,
|
|
59
|
+
u_sizeRange: sizeRange,
|
|
60
|
+
u_spreading: spreading,
|
|
61
|
+
u_stepsPerColor: stepsPerColor,
|
|
62
|
+
// Sizing uniforms
|
|
63
|
+
u_fit: ShaderFitOptions[fit],
|
|
64
|
+
u_scale: scale,
|
|
65
|
+
u_rotation: rotation,
|
|
66
|
+
u_offsetX: offsetX,
|
|
67
|
+
u_offsetY: offsetY,
|
|
68
|
+
u_originX: originX,
|
|
69
|
+
u_originY: originY,
|
|
70
|
+
u_worldWidth: worldWidth,
|
|
71
|
+
u_worldHeight: worldHeight
|
|
72
|
+
};
|
|
73
|
+
return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: dotOrbitFragmentShader, uniforms });
|
|
74
|
+
}, colorPropsAreEqual);
|
|
75
|
+
export {
|
|
76
|
+
DotOrbit,
|
|
77
|
+
defaultPreset,
|
|
78
|
+
dotOrbitPresets
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=dot-orbit.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/shaders/dot-orbit.tsx"],
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n getShaderColorFromString,\n dotOrbitFragmentShader,\n ShaderFitOptions,\n type DotOrbitParams,\n type DotOrbitUniforms,\n type ShaderPreset,\n defaultPatternSizing,\n} from '@paper-design/shaders';\n\nexport interface DotOrbitProps extends ShaderComponentProps, DotOrbitParams {}\n\ntype DotOrbitPreset = ShaderPreset<DotOrbitParams>;\n\nexport const defaultPreset: DotOrbitPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 2,\n frame: 0,\n colorBack: '#03001f',\n colors: ['#661400', '#ccbb00', '#cc0088'],\n size: 0.9,\n sizeRange: 0,\n spreading: 1,\n stepsPerColor: 2,\n },\n};\n\nexport const dotOrbitPresets: DotOrbitPreset[] = [defaultPreset];\n\nexport const DotOrbit: React.FC<DotOrbitProps> = memo(function DotOrbitImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colors = defaultPreset.params.colors,\n size = defaultPreset.params.size,\n sizeRange = defaultPreset.params.sizeRange,\n spreading = defaultPreset.params.spreading,\n stepsPerColor = defaultPreset.params.stepsPerColor,\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}: DotOrbitProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_size: size,\n u_sizeRange: sizeRange,\n u_spreading: spreading,\n u_stepsPerColor: stepsPerColor,\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 DotOrbitUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={dotOrbitFragmentShader} 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,EAIA;AAAA,OACK;AAqEH;AA/DG,MAAM,gBAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,QAAQ,CAAC,WAAW,WAAW,SAAS;AAAA,IACxC,MAAM;AAAA,IACN,WAAW;AAAA,IACX,WAAW;AAAA,IACX,eAAe;AAAA,EACjB;AACF;AAEO,MAAM,kBAAoC,CAAC,aAAa;AAExD,MAAM,WAAoC,KAAK,SAAS,aAAa;AAAA;AAAA,EAE1E,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,YAAY,cAAc,OAAO;AAAA,EACjC,SAAS,cAAc,OAAO;AAAA,EAC9B,OAAO,cAAc,OAAO;AAAA,EAC5B,YAAY,cAAc,OAAO;AAAA,EACjC,YAAY,cAAc,OAAO;AAAA,EACjC,gBAAgB,cAAc,OAAO;AAAA;AAAA,EAGrC,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,GAAkB;AAChB,QAAM,WAAW;AAAA;AAAA,IAEf,aAAa,yBAAyB,SAAS;AAAA,IAC/C,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,IAGjB,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,wBAAwB,UAAoB;AAEpH,GAAG,kBAAkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount.js';
|
|
2
|
+
import { type GodRaysParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
|
+
export interface GodRaysProps extends ShaderComponentProps, GodRaysParams {
|
|
4
|
+
}
|
|
5
|
+
type GodRaysPreset = ShaderPreset<GodRaysParams>;
|
|
6
|
+
export declare const defaultPreset: GodRaysPreset;
|
|
7
|
+
export declare const auroraPreset: GodRaysPreset;
|
|
8
|
+
export declare const warpPreset: GodRaysPreset;
|
|
9
|
+
export declare const linearPreset: GodRaysPreset;
|
|
10
|
+
export declare const etherPreset: GodRaysPreset;
|
|
11
|
+
export declare const godRaysPresets: GodRaysPreset[];
|
|
12
|
+
export declare const GodRays: React.FC<GodRaysProps>;
|
|
13
|
+
export {};
|