@paper-design/shaders-react 0.0.35-backbuffer-experiment.2 → 0.0.35-backbuffer-experiment.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/color-props-are-equal.d.ts +6 -0
  2. package/dist/color-props-are-equal.js +34 -0
  3. package/dist/color-props-are-equal.js.map +7 -0
  4. package/dist/index.d.ts +59 -0
  5. package/dist/index.js +91 -0
  6. package/dist/index.js.map +7 -0
  7. package/dist/shader-mount.d.ts +26 -0
  8. package/dist/shader-mount.js +126 -0
  9. package/dist/shader-mount.js.map +7 -0
  10. package/dist/shaders/dithering.d.ts +15 -0
  11. package/dist/shaders/dithering.js +170 -0
  12. package/dist/shaders/dithering.js.map +7 -0
  13. package/dist/shaders/dot-grid.d.ts +10 -0
  14. package/dist/shaders/dot-grid.js +230 -0
  15. package/dist/shaders/dot-grid.js.map +7 -0
  16. package/dist/shaders/dot-orbit.d.ts +9 -0
  17. package/dist/shaders/dot-orbit.js +80 -0
  18. package/dist/shaders/dot-orbit.js.map +7 -0
  19. package/dist/shaders/god-rays.d.ts +13 -0
  20. package/dist/shaders/god-rays.js +167 -0
  21. package/dist/shaders/god-rays.js.map +7 -0
  22. package/dist/shaders/grain-gradient.d.ts +16 -0
  23. package/dist/shaders/grain-gradient.js +208 -0
  24. package/dist/shaders/grain-gradient.js.map +7 -0
  25. package/dist/shaders/liquid-metal.d.ts +12 -0
  26. package/dist/shaders/liquid-metal.js +156 -0
  27. package/dist/shaders/liquid-metal.js.map +7 -0
  28. package/dist/shaders/mesh-gradient.d.ts +11 -0
  29. package/dist/shaders/mesh-gradient.js +104 -0
  30. package/dist/shaders/mesh-gradient.js.map +7 -0
  31. package/dist/shaders/metaballs.d.ts +9 -0
  32. package/dist/shaders/metaballs.js +75 -0
  33. package/dist/shaders/metaballs.js.map +7 -0
  34. package/dist/shaders/neuro-noise.d.ts +9 -0
  35. package/dist/shaders/neuro-noise.js +76 -0
  36. package/dist/shaders/neuro-noise.js.map +7 -0
  37. package/dist/shaders/perlin-noise.d.ts +14 -0
  38. package/dist/shaders/perlin-noise.js +183 -0
  39. package/dist/shaders/perlin-noise.js.map +7 -0
  40. package/dist/shaders/pulsing-border.d.ts +11 -0
  41. package/dist/shaders/pulsing-border.js +153 -0
  42. package/dist/shaders/pulsing-border.js.map +7 -0
  43. package/dist/shaders/simplex-noise.d.ts +9 -0
  44. package/dist/shaders/simplex-noise.js +80 -0
  45. package/dist/shaders/simplex-noise.js.map +7 -0
  46. package/dist/shaders/smoke-ring.d.ts +12 -0
  47. package/dist/shaders/smoke-ring.js +134 -0
  48. package/dist/shaders/smoke-ring.js.map +7 -0
  49. package/dist/shaders/spiral.d.ts +15 -0
  50. package/dist/shaders/spiral.js +218 -0
  51. package/dist/shaders/spiral.js.map +7 -0
  52. package/dist/shaders/swirl.d.ts +12 -0
  53. package/dist/shaders/swirl.js +136 -0
  54. package/dist/shaders/swirl.js.map +7 -0
  55. package/dist/shaders/voronoi.d.ts +10 -0
  56. package/dist/shaders/voronoi.js +102 -0
  57. package/dist/shaders/voronoi.js.map +7 -0
  58. package/dist/shaders/warp.d.ts +19 -0
  59. package/dist/shaders/warp.js +294 -0
  60. package/dist/shaders/warp.js.map +7 -0
  61. package/dist/shaders/waves.d.ts +14 -0
  62. package/dist/shaders/waves.js +178 -0
  63. package/dist/shaders/waves.js.map +7 -0
  64. package/dist/use-merge-refs.d.ts +6 -0
  65. package/dist/use-merge-refs.js +48 -0
  66. package/dist/use-merge-refs.js.map +7 -0
  67. package/package.json +3 -3
@@ -0,0 +1,76 @@
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: "#ffffff",
23
+ colorMid: "#bf9eff",
24
+ colorBack: "#000000",
25
+ brightness: 0.3,
26
+ contrast: 0.6
27
+ }
28
+ };
29
+ const neuroNoisePresets = [defaultPreset];
30
+ const NeuroNoise = memo(function NeuroNoiseImpl({
31
+ // Own props
32
+ speed = defaultPreset.params.speed,
33
+ frame = defaultPreset.params.frame,
34
+ colorFront = defaultPreset.params.colorFront,
35
+ colorMid = defaultPreset.params.colorMid,
36
+ colorBack = defaultPreset.params.colorBack,
37
+ brightness = defaultPreset.params.brightness,
38
+ contrast = defaultPreset.params.contrast,
39
+ // Sizing props
40
+ fit = defaultPreset.params.fit,
41
+ scale = defaultPreset.params.scale,
42
+ rotation = defaultPreset.params.rotation,
43
+ originX = defaultPreset.params.originX,
44
+ originY = defaultPreset.params.originY,
45
+ offsetX = defaultPreset.params.offsetX,
46
+ offsetY = defaultPreset.params.offsetY,
47
+ worldWidth = defaultPreset.params.worldWidth,
48
+ worldHeight = defaultPreset.params.worldHeight,
49
+ ...props
50
+ }) {
51
+ const uniforms = {
52
+ // Own uniforms
53
+ u_colorFront: getShaderColorFromString(colorFront),
54
+ u_colorMid: getShaderColorFromString(colorMid),
55
+ u_colorBack: getShaderColorFromString(colorBack),
56
+ u_brightness: brightness,
57
+ u_contrast: contrast,
58
+ // Sizing uniforms
59
+ u_fit: ShaderFitOptions[fit],
60
+ u_scale: scale,
61
+ u_rotation: rotation,
62
+ u_offsetX: offsetX,
63
+ u_offsetY: offsetY,
64
+ u_originX: originX,
65
+ u_originY: originY,
66
+ u_worldWidth: worldWidth,
67
+ u_worldHeight: worldHeight
68
+ };
69
+ return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: neuroNoiseFragmentShader, uniforms });
70
+ }, colorPropsAreEqual);
71
+ export {
72
+ NeuroNoise,
73
+ defaultPreset,
74
+ neuroNoisePresets
75
+ };
76
+ //# 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\nexport const defaultPreset: NeuroNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#ffffff',\n colorMid: '#bf9eff',\n colorBack: '#000000',\n brightness: 0.3,\n contrast: 0.6,\n },\n};\n\nexport const neuroNoisePresets: NeuroNoisePreset[] = [defaultPreset] 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 colorMid = defaultPreset.params.colorMid,\n colorBack = defaultPreset.params.colorBack,\n brightness = defaultPreset.params.brightness,\n contrast = defaultPreset.params.contrast,\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_colorMid: getShaderColorFromString(colorMid),\n u_colorBack: getShaderColorFromString(colorBack),\n u_brightness: brightness,\n u_contrast: contrast,\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;AAiEH;AA3DG,MAAM,gBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ;AACF;AAEO,MAAM,oBAAwC,CAAC,aAAa;AAE5D,MAAM,aAAwC,KAAK,SAAS,eAAe;AAAA;AAAA,EAEhF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,aAAa,cAAc,OAAO;AAAA,EAClC,WAAW,cAAc,OAAO;AAAA,EAChC,YAAY,cAAc,OAAO;AAAA,EACjC,aAAa,cAAc,OAAO;AAAA,EAClC,WAAW,cAAc,OAAO;AAAA;AAAA,EAGhC,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,YAAY,yBAAyB,QAAQ;AAAA,IAC7C,aAAa,yBAAyB,SAAS;AAAA,IAC/C,cAAc;AAAA,IACd,YAAY;AAAA;AAAA,IAGZ,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
+ }
@@ -0,0 +1,14 @@
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>;
6
+ export declare const defaultPreset: PerlinNoisePreset;
7
+ export declare const nintendoWaterPreset: PerlinNoisePreset;
8
+ export declare const colonyPreset: PerlinNoisePreset;
9
+ export declare const phosphenesPreset: PerlinNoisePreset;
10
+ export declare const mossPreset: PerlinNoisePreset;
11
+ export declare const wormsPreset: PerlinNoisePreset;
12
+ export declare const perlinNoisePresets: PerlinNoisePreset[];
13
+ export declare const PerlinNoise: React.FC<PerlinNoiseProps>;
14
+ export {};
@@ -0,0 +1,183 @@
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
+ perlinNoiseFragmentShader,
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: 0.5,
21
+ frame: 0,
22
+ colorBack: "#262626",
23
+ colorFront: "#d9d9d9",
24
+ proportion: 0.35,
25
+ softness: 0.1,
26
+ octaveCount: 2,
27
+ persistence: 1,
28
+ lacunarity: 1.5
29
+ }
30
+ };
31
+ const nintendoWaterPreset = {
32
+ name: "Nintendo Water",
33
+ params: {
34
+ ...defaultPatternSizing,
35
+ scale: 1 / 0.2,
36
+ speed: 0.4,
37
+ frame: 0,
38
+ colorBack: "#2d69d4",
39
+ colorFront: "#d1eefc",
40
+ proportion: 0.42,
41
+ softness: 0,
42
+ octaveCount: 2,
43
+ persistence: 0.55,
44
+ lacunarity: 1.8
45
+ }
46
+ };
47
+ const colonyPreset = {
48
+ name: "Colony",
49
+ params: {
50
+ ...defaultPatternSizing,
51
+ scale: 1 / 0.15,
52
+ speed: 0,
53
+ frame: 0,
54
+ colorBack: "#f4f0ae",
55
+ colorFront: "#0a1a5e",
56
+ octaveCount: 6,
57
+ persistence: 1,
58
+ lacunarity: 2.55,
59
+ proportion: 0.65,
60
+ softness: 0.35
61
+ }
62
+ };
63
+ const phosphenesPreset = {
64
+ name: "Phosphenes",
65
+ params: {
66
+ ...defaultPatternSizing,
67
+ scale: 1 / 0.03,
68
+ speed: 0.15,
69
+ frame: 0,
70
+ colorBack: "#ec7c8b",
71
+ colorFront: "#66cc99",
72
+ proportion: 0.45,
73
+ softness: 0.45,
74
+ octaveCount: 6,
75
+ persistence: 0.3,
76
+ lacunarity: 3
77
+ }
78
+ };
79
+ const mossPreset = {
80
+ name: "Moss",
81
+ params: {
82
+ ...defaultPatternSizing,
83
+ scale: 1 / 0.15,
84
+ speed: 0.02,
85
+ frame: 0,
86
+ colorBack: "#05ff4a",
87
+ colorFront: "#262626",
88
+ proportion: 0.65,
89
+ softness: 0.35,
90
+ octaveCount: 6,
91
+ persistence: 1,
92
+ lacunarity: 2.55
93
+ }
94
+ };
95
+ const wormsPreset = {
96
+ name: "Worms",
97
+ params: {
98
+ ...defaultPatternSizing,
99
+ scale: 1 / 2,
100
+ speed: 0,
101
+ frame: 0,
102
+ colorBack: "#ffffff",
103
+ colorFront: "#595959",
104
+ proportion: 0.5,
105
+ softness: 0,
106
+ octaveCount: 1,
107
+ persistence: 1,
108
+ lacunarity: 1.5
109
+ }
110
+ };
111
+ const perlinNoisePresets = [
112
+ defaultPreset,
113
+ nintendoWaterPreset,
114
+ colonyPreset,
115
+ phosphenesPreset,
116
+ mossPreset,
117
+ wormsPreset
118
+ ];
119
+ const PerlinNoise = memo(function PerlinNoiseImpl({
120
+ // Own props
121
+ speed = defaultPreset.params.speed,
122
+ frame = defaultPreset.params.frame,
123
+ colorFront = defaultPreset.params.colorFront,
124
+ colorBack = defaultPreset.params.colorBack,
125
+ proportion = defaultPreset.params.proportion,
126
+ softness = defaultPreset.params.softness,
127
+ octaveCount = defaultPreset.params.octaveCount,
128
+ persistence = defaultPreset.params.persistence,
129
+ lacunarity,
130
+ // Sizing props
131
+ fit = defaultPreset.params.fit,
132
+ worldWidth = defaultPreset.params.worldWidth,
133
+ worldHeight = defaultPreset.params.worldHeight,
134
+ scale = defaultPreset.params.scale,
135
+ rotation = defaultPreset.params.rotation,
136
+ originX = defaultPreset.params.originX,
137
+ originY = defaultPreset.params.originY,
138
+ offsetX = defaultPreset.params.offsetX,
139
+ offsetY = defaultPreset.params.offsetY,
140
+ ...props
141
+ }) {
142
+ const uniforms = {
143
+ // Own uniforms
144
+ u_colorBack: getShaderColorFromString(colorBack),
145
+ u_colorFront: getShaderColorFromString(colorFront),
146
+ u_proportion: proportion,
147
+ u_softness: softness ?? defaultPreset.params.softness,
148
+ u_octaveCount: octaveCount ?? defaultPreset.params.octaveCount,
149
+ u_persistence: persistence ?? defaultPreset.params.persistence,
150
+ u_lacunarity: lacunarity ?? defaultPreset.params.lacunarity,
151
+ // Sizing uniforms
152
+ u_fit: ShaderFitOptions[fit],
153
+ u_scale: scale,
154
+ u_rotation: rotation,
155
+ u_offsetX: offsetX,
156
+ u_offsetY: offsetY,
157
+ u_originX: originX,
158
+ u_originY: originY,
159
+ u_worldWidth: worldWidth,
160
+ u_worldHeight: worldHeight
161
+ };
162
+ return /* @__PURE__ */ jsx(
163
+ ShaderMount,
164
+ {
165
+ ...props,
166
+ speed,
167
+ frame,
168
+ fragmentShader: perlinNoiseFragmentShader,
169
+ uniforms
170
+ }
171
+ );
172
+ }, colorPropsAreEqual);
173
+ export {
174
+ PerlinNoise,
175
+ colonyPreset,
176
+ defaultPreset,
177
+ mossPreset,
178
+ nintendoWaterPreset,
179
+ perlinNoisePresets,
180
+ phosphenesPreset,
181
+ wormsPreset
182
+ };
183
+ //# sourceMappingURL=perlin-noise.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/perlin-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 perlinNoiseFragmentShader,\n ShaderFitOptions,\n type PerlinNoiseParams,\n type PerlinNoiseUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface PerlinNoiseProps extends ShaderComponentProps, PerlinNoiseParams {}\n\ntype PerlinNoisePreset = ShaderPreset<PerlinNoiseParams>;\n\nexport const defaultPreset: PerlinNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 0.5,\n frame: 0,\n colorBack: '#262626',\n colorFront: '#d9d9d9',\n proportion: 0.35,\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 ...defaultPatternSizing,\n scale: 1 / 0.2,\n speed: 0.4,\n frame: 0,\n colorBack: '#2d69d4',\n colorFront: '#d1eefc',\n proportion: 0.42,\n softness: 0,\n octaveCount: 2,\n persistence: 0.55,\n lacunarity: 1.8,\n },\n};\n\nexport const colonyPreset: PerlinNoisePreset = {\n name: 'Colony',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.15,\n speed: 0,\n frame: 0,\n colorBack: '#f4f0ae',\n colorFront: '#0a1a5e',\n octaveCount: 6,\n persistence: 1,\n lacunarity: 2.55,\n proportion: 0.65,\n softness: 0.35,\n },\n};\n\nexport const phosphenesPreset: PerlinNoisePreset = {\n name: 'Phosphenes',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.03,\n speed: 0.15,\n frame: 0,\n colorBack: '#ec7c8b',\n colorFront: '#66cc99',\n proportion: 0.45,\n softness: 0.45,\n octaveCount: 6,\n persistence: 0.3,\n lacunarity: 3,\n },\n};\n\nexport const mossPreset: PerlinNoisePreset = {\n name: 'Moss',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.15,\n speed: 0.02,\n frame: 0,\n colorBack: '#05ff4a',\n colorFront: '#262626',\n proportion: 0.65,\n softness: 0.35,\n octaveCount: 6,\n persistence: 1,\n lacunarity: 2.55,\n },\n};\n\nexport const wormsPreset: PerlinNoisePreset = {\n name: 'Worms',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 2,\n speed: 0,\n frame: 0,\n colorBack: '#ffffff',\n colorFront: '#595959',\n proportion: 0.5,\n softness: 0,\n octaveCount: 1,\n persistence: 1,\n lacunarity: 1.5,\n },\n};\n\nexport const perlinNoisePresets: PerlinNoisePreset[] = [\n defaultPreset,\n nintendoWaterPreset,\n colonyPreset,\n phosphenesPreset,\n mossPreset,\n wormsPreset,\n];\n\nexport const PerlinNoise: React.FC<PerlinNoiseProps> = memo(function PerlinNoiseImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorFront = defaultPreset.params.colorFront,\n colorBack = defaultPreset.params.colorBack,\n proportion = defaultPreset.params.proportion,\n softness = defaultPreset.params.softness,\n octaveCount = defaultPreset.params.octaveCount,\n persistence = defaultPreset.params.persistence,\n lacunarity,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\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 ...props\n}: PerlinNoiseProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorFront: getShaderColorFromString(colorFront),\n u_proportion: 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 // 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 PerlinNoiseUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={perlinNoiseFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,11 @@
1
+ import { type ShaderComponentProps } from '../shader-mount';
2
+ import { type PulsingBorderParams, type ShaderPreset } from '@paper-design/shaders';
3
+ export interface PulsingBorderProps extends ShaderComponentProps, PulsingBorderParams {
4
+ }
5
+ type PulsingBorderPreset = ShaderPreset<PulsingBorderParams>;
6
+ export declare const defaultPreset: PulsingBorderPreset;
7
+ export declare const circlePreset: PulsingBorderPreset;
8
+ export declare const innerBorderPreset: PulsingBorderPreset;
9
+ export declare const pulsingBorderPresets: PulsingBorderPreset[];
10
+ export declare const PulsingBorder: React.FC<PulsingBorderProps>;
11
+ export {};
@@ -0,0 +1,153 @@
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
+ getShaderNoiseTexture,
13
+ pulsingBorderFragmentShader,
14
+ ShaderFitOptions
15
+ } from "@paper-design/shaders";
16
+ import { jsx } from "react/jsx-runtime";
17
+ const defaultPreset = {
18
+ name: "Default",
19
+ params: {
20
+ ...defaultObjectSizing,
21
+ scale: 0.7,
22
+ speed: 1,
23
+ frame: 0,
24
+ colorBack: "#000000",
25
+ colors: ["#f2244f", "#4da6e6"],
26
+ roundness: 0.5,
27
+ thickness: 0.02,
28
+ softness: 0.5,
29
+ intensity: 2.4,
30
+ spotsPerColor: 4,
31
+ spotSize: 0.15,
32
+ pulse: 0,
33
+ smoke: 1,
34
+ smokeSize: 1.3
35
+ }
36
+ };
37
+ const circlePreset = {
38
+ name: "Circle",
39
+ params: {
40
+ ...defaultObjectSizing,
41
+ worldWidth: 200,
42
+ worldHeight: 200,
43
+ scale: 0.5,
44
+ speed: 1,
45
+ frame: 0,
46
+ colorBack: "#0f191f",
47
+ colors: ["#ffdd33", "#ff8c00", "#ff002b"],
48
+ roundness: 1,
49
+ thickness: 0.03,
50
+ softness: 0.2,
51
+ intensity: 2,
52
+ spotsPerColor: 4,
53
+ spotSize: 0.15,
54
+ pulse: 0,
55
+ smoke: 0,
56
+ smokeSize: 1
57
+ }
58
+ };
59
+ const innerBorderPreset = {
60
+ name: "Inner Border",
61
+ params: {
62
+ ...defaultObjectSizing,
63
+ speed: 1,
64
+ frame: 0,
65
+ colorBack: "#181821",
66
+ colors: ["#f5ad2b", "#2294d9", "#bf00ff"],
67
+ roundness: 0,
68
+ thickness: 0,
69
+ softness: 0.4,
70
+ intensity: 0,
71
+ spotsPerColor: 3,
72
+ spotSize: 0.18,
73
+ pulse: 0.04,
74
+ smoke: 0.75,
75
+ smokeSize: 0.92
76
+ }
77
+ };
78
+ const pulsingBorderPresets = [defaultPreset, circlePreset, innerBorderPreset];
79
+ const PulsingBorder = memo(function PulsingBorderImpl({
80
+ // Own props
81
+ speed = defaultPreset.params.speed,
82
+ frame = defaultPreset.params.frame,
83
+ colors = defaultPreset.params.colors,
84
+ colorBack = defaultPreset.params.colorBack,
85
+ roundness = defaultPreset.params.roundness,
86
+ thickness = defaultPreset.params.thickness,
87
+ softness = defaultPreset.params.softness,
88
+ intensity = defaultPreset.params.intensity,
89
+ spotsPerColor = defaultPreset.params.spotsPerColor,
90
+ spotSize = defaultPreset.params.spotSize,
91
+ pulse = defaultPreset.params.pulse,
92
+ smoke = defaultPreset.params.smoke,
93
+ smokeSize = defaultPreset.params.smokeSize,
94
+ // Sizing props
95
+ fit = defaultPreset.params.fit,
96
+ rotation = defaultPreset.params.rotation,
97
+ scale = defaultPreset.params.scale,
98
+ originX = defaultPreset.params.originX,
99
+ originY = defaultPreset.params.originY,
100
+ offsetX = defaultPreset.params.offsetX,
101
+ offsetY = defaultPreset.params.offsetY,
102
+ worldWidth = defaultPreset.params.worldWidth,
103
+ worldHeight = defaultPreset.params.worldHeight,
104
+ ...props
105
+ }) {
106
+ const noiseTexture = typeof window !== "undefined" && { u_noiseTexture: getShaderNoiseTexture(0) };
107
+ const pulseTexture = typeof window !== "undefined" && { u_pulseTexture: getShaderNoiseTexture(1) };
108
+ const uniforms = {
109
+ // Own uniforms
110
+ u_colorBack: getShaderColorFromString(colorBack),
111
+ u_colors: colors.map(getShaderColorFromString),
112
+ u_colorsCount: colors.length,
113
+ u_roundness: roundness,
114
+ u_thickness: thickness,
115
+ u_softness: softness,
116
+ u_intensity: intensity,
117
+ u_spotsPerColor: spotsPerColor,
118
+ u_spotSize: spotSize,
119
+ u_pulse: pulse,
120
+ u_smoke: smoke,
121
+ u_smokeSize: smokeSize,
122
+ ...pulseTexture,
123
+ ...noiseTexture,
124
+ // Sizing uniforms
125
+ u_fit: ShaderFitOptions[fit],
126
+ u_rotation: rotation,
127
+ u_scale: scale,
128
+ u_offsetX: offsetX,
129
+ u_offsetY: offsetY,
130
+ u_originX: originX,
131
+ u_originY: originY,
132
+ u_worldWidth: worldWidth,
133
+ u_worldHeight: worldHeight
134
+ };
135
+ return /* @__PURE__ */ jsx(
136
+ ShaderMount,
137
+ {
138
+ ...props,
139
+ speed,
140
+ frame,
141
+ fragmentShader: pulsingBorderFragmentShader,
142
+ uniforms
143
+ }
144
+ );
145
+ }, colorPropsAreEqual);
146
+ export {
147
+ PulsingBorder,
148
+ circlePreset,
149
+ defaultPreset,
150
+ innerBorderPreset,
151
+ pulsingBorderPresets
152
+ };
153
+ //# sourceMappingURL=pulsing-border.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/pulsing-border.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 getShaderNoiseTexture,\n pulsingBorderFragmentShader,\n ShaderFitOptions,\n type PulsingBorderParams,\n type PulsingBorderUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface PulsingBorderProps extends ShaderComponentProps, PulsingBorderParams {}\n\ntype PulsingBorderPreset = ShaderPreset<PulsingBorderParams>;\n\nexport const defaultPreset: PulsingBorderPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n scale: 0.7,\n speed: 1,\n frame: 0,\n colorBack: '#000000',\n colors: ['#f2244f', '#4da6e6'],\n roundness: 0.5,\n thickness: 0.02,\n softness: 0.5,\n intensity: 2.4,\n spotsPerColor: 4,\n spotSize: 0.15,\n pulse: 0,\n smoke: 1,\n smokeSize: 1.3,\n },\n};\n\nexport const circlePreset: PulsingBorderPreset = {\n name: 'Circle',\n params: {\n ...defaultObjectSizing,\n worldWidth: 200,\n worldHeight: 200,\n scale: 0.5,\n speed: 1,\n frame: 0,\n colorBack: '#0f191f',\n colors: ['#ffdd33', '#ff8c00', '#ff002b'],\n roundness: 1,\n thickness: 0.03,\n softness: 0.2,\n intensity: 2,\n spotsPerColor: 4,\n spotSize: 0.15,\n pulse: 0,\n smoke: 0,\n smokeSize: 1,\n },\n};\n\nexport const innerBorderPreset: PulsingBorderPreset = {\n name: 'Inner Border',\n params: {\n ...defaultObjectSizing,\n speed: 1.0,\n frame: 0,\n colorBack: '#181821',\n colors: ['#f5ad2b', '#2294d9', '#bf00ff'],\n roundness: 0,\n thickness: 0,\n softness: 0.4,\n intensity: 0,\n spotsPerColor: 3,\n spotSize: 0.18,\n pulse: 0.04,\n smoke: 0.75,\n smokeSize: 0.92,\n },\n};\n\nexport const pulsingBorderPresets: PulsingBorderPreset[] = [defaultPreset, circlePreset, innerBorderPreset];\n\nexport const PulsingBorder: React.FC<PulsingBorderProps> = memo(function PulsingBorderImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n colorBack = defaultPreset.params.colorBack,\n roundness = defaultPreset.params.roundness,\n thickness = defaultPreset.params.thickness,\n softness = defaultPreset.params.softness,\n intensity = defaultPreset.params.intensity,\n spotsPerColor = defaultPreset.params.spotsPerColor,\n spotSize = defaultPreset.params.spotSize,\n pulse = defaultPreset.params.pulse,\n smoke = defaultPreset.params.smoke,\n smokeSize = defaultPreset.params.smokeSize,\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}: PulsingBorderProps) {\n const noiseTexture = typeof window !== 'undefined' && { u_noiseTexture: getShaderNoiseTexture(0) };\n const pulseTexture = typeof window !== 'undefined' && { u_pulseTexture: getShaderNoiseTexture(1) };\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_roundness: roundness,\n u_thickness: thickness,\n u_softness: softness,\n u_intensity: intensity,\n u_spotsPerColor: spotsPerColor,\n u_spotSize: spotSize,\n u_pulse: pulse,\n u_smoke: smoke,\n u_smokeSize: smokeSize,\n ...pulseTexture,\n ...noiseTexture,\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 PulsingBorderUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={pulsingBorderFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,9 @@
1
+ import { type ShaderComponentProps } from '../shader-mount';
2
+ import { type SimplexNoiseParams, type ShaderPreset } from '@paper-design/shaders';
3
+ export interface SimplexNoiseProps extends ShaderComponentProps, SimplexNoiseParams {
4
+ }
5
+ type SimplexNoisePreset = ShaderPreset<SimplexNoiseParams>;
6
+ export declare const defaultPreset: SimplexNoisePreset;
7
+ export declare const simplexNoisePresets: SimplexNoisePreset[];
8
+ export declare const SimplexNoise: React.FC<SimplexNoiseProps>;
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";
8
+ import { colorPropsAreEqual } from "../color-props-are-equal";
9
+ import {
10
+ getShaderColorFromString,
11
+ simplexNoiseFragmentShader,
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: 1,
21
+ frame: 0,
22
+ colors: ["#40a0bf", "#bf4040", "#ffcc00"],
23
+ stepsPerColor: 3,
24
+ softness: 0
25
+ }
26
+ };
27
+ const simplexNoisePresets = [defaultPreset];
28
+ const SimplexNoise = memo(function SimplexNoiseImpl({
29
+ // Own props
30
+ speed = defaultPreset.params.speed,
31
+ frame = defaultPreset.params.frame,
32
+ colors = defaultPreset.params.colors,
33
+ stepsPerColor = defaultPreset.params.stepsPerColor,
34
+ softness = defaultPreset.params.softness,
35
+ // Sizing props
36
+ fit = defaultPreset.params.fit,
37
+ scale = defaultPreset.params.scale,
38
+ rotation = defaultPreset.params.rotation,
39
+ originX = defaultPreset.params.originX,
40
+ originY = defaultPreset.params.originY,
41
+ offsetX = defaultPreset.params.offsetX,
42
+ offsetY = defaultPreset.params.offsetY,
43
+ worldWidth = defaultPreset.params.worldWidth,
44
+ worldHeight = defaultPreset.params.worldHeight,
45
+ ...props
46
+ }) {
47
+ const uniforms = {
48
+ // Own uniforms
49
+ u_colors: colors.map(getShaderColorFromString),
50
+ u_colorsCount: colors.length,
51
+ u_stepsPerColor: stepsPerColor,
52
+ u_softness: softness,
53
+ // Sizing uniforms
54
+ u_fit: ShaderFitOptions[fit],
55
+ u_scale: scale,
56
+ u_rotation: rotation,
57
+ u_offsetX: offsetX,
58
+ u_offsetY: offsetY,
59
+ u_originX: originX,
60
+ u_originY: originY,
61
+ u_worldWidth: worldWidth,
62
+ u_worldHeight: worldHeight
63
+ };
64
+ return /* @__PURE__ */ jsx(
65
+ ShaderMount,
66
+ {
67
+ ...props,
68
+ speed,
69
+ frame,
70
+ fragmentShader: simplexNoiseFragmentShader,
71
+ uniforms
72
+ }
73
+ );
74
+ }, colorPropsAreEqual);
75
+ export {
76
+ SimplexNoise,
77
+ defaultPreset,
78
+ simplexNoisePresets
79
+ };
80
+ //# sourceMappingURL=simplex-noise.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/simplex-noise.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 simplexNoiseFragmentShader,\n ShaderFitOptions,\n type SimplexNoiseUniforms,\n type SimplexNoiseParams,\n type ShaderPreset,\n defaultPatternSizing,\n} from '@paper-design/shaders';\n\nexport interface SimplexNoiseProps extends ShaderComponentProps, SimplexNoiseParams {}\n\ntype SimplexNoisePreset = ShaderPreset<SimplexNoiseParams>;\n\nexport const defaultPreset: SimplexNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colors: ['#40a0bf', '#bf4040', '#ffcc00'],\n stepsPerColor: 3,\n softness: 0,\n },\n};\n\nexport const simplexNoisePresets: SimplexNoisePreset[] = [defaultPreset];\n\nexport const SimplexNoise: React.FC<SimplexNoiseProps> = memo(function SimplexNoiseImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n stepsPerColor = defaultPreset.params.stepsPerColor,\n softness = defaultPreset.params.softness,\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}: SimplexNoiseProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_stepsPerColor: stepsPerColor,\n u_softness: softness,\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 SimplexNoiseUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={simplexNoiseFragmentShader}\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;AA4DH;AAtDG,MAAM,gBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,SAAS;AAAA,IACxC,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,MAAM,sBAA4C,CAAC,aAAa;AAEhE,MAAM,eAA4C,KAAK,SAAS,iBAAiB;AAAA;AAAA,EAEtF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,SAAS,cAAc,OAAO;AAAA,EAC9B,gBAAgB,cAAc,OAAO;AAAA,EACrC,WAAW,cAAc,OAAO;AAAA;AAAA,EAGhC,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,GAAsB;AACpB,QAAM,WAAW;AAAA;AAAA,IAEf,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,iBAAiB;AAAA,IACjB,YAAY;AAAA;AAAA,IAGZ,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
+ }
@@ -0,0 +1,12 @@
1
+ import { type ShaderComponentProps } from '../shader-mount';
2
+ import { type ShaderPreset, type SmokeRingParams } from '@paper-design/shaders';
3
+ export interface SmokeRingProps extends ShaderComponentProps, SmokeRingParams {
4
+ }
5
+ type SmokeRingPreset = ShaderPreset<SmokeRingParams>;
6
+ export declare const defaultPreset: SmokeRingPreset;
7
+ export declare const poisonPreset: SmokeRingPreset;
8
+ export declare const linePreset: SmokeRingPreset;
9
+ export declare const cloudPreset: SmokeRingPreset;
10
+ export declare const smokeRingPresets: SmokeRingPreset[];
11
+ export declare const SmokeRing: React.FC<SmokeRingProps>;
12
+ export {};