@paper-design/shaders-react 0.0.34 → 0.0.35-backbuffer-experiment.0

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 (71) hide show
  1. package/README.md +4 -1
  2. package/package.json +3 -3
  3. package/dist/color-props-are-equal.d.ts +0 -6
  4. package/dist/color-props-are-equal.js +0 -34
  5. package/dist/color-props-are-equal.js.map +0 -7
  6. package/dist/index.d.ts +0 -62
  7. package/dist/index.js +0 -94
  8. package/dist/index.js.map +0 -7
  9. package/dist/shader-mount.d.ts +0 -26
  10. package/dist/shader-mount.js +0 -126
  11. package/dist/shader-mount.js.map +0 -7
  12. package/dist/shaders/color-panels.d.ts +0 -9
  13. package/dist/shaders/color-panels.js +0 -107
  14. package/dist/shaders/color-panels.js.map +0 -7
  15. package/dist/shaders/dithering.d.ts +0 -15
  16. package/dist/shaders/dithering.js +0 -170
  17. package/dist/shaders/dithering.js.map +0 -7
  18. package/dist/shaders/dot-grid.d.ts +0 -10
  19. package/dist/shaders/dot-grid.js +0 -230
  20. package/dist/shaders/dot-grid.js.map +0 -7
  21. package/dist/shaders/dot-orbit.d.ts +0 -9
  22. package/dist/shaders/dot-orbit.js +0 -80
  23. package/dist/shaders/dot-orbit.js.map +0 -7
  24. package/dist/shaders/god-rays.d.ts +0 -13
  25. package/dist/shaders/god-rays.js +0 -167
  26. package/dist/shaders/god-rays.js.map +0 -7
  27. package/dist/shaders/grain-gradient.d.ts +0 -16
  28. package/dist/shaders/grain-gradient.js +0 -208
  29. package/dist/shaders/grain-gradient.js.map +0 -7
  30. package/dist/shaders/liquid-metal.d.ts +0 -12
  31. package/dist/shaders/liquid-metal.js +0 -156
  32. package/dist/shaders/liquid-metal.js.map +0 -7
  33. package/dist/shaders/mesh-gradient.d.ts +0 -11
  34. package/dist/shaders/mesh-gradient.js +0 -104
  35. package/dist/shaders/mesh-gradient.js.map +0 -7
  36. package/dist/shaders/metaballs.d.ts +0 -9
  37. package/dist/shaders/metaballs.js +0 -75
  38. package/dist/shaders/metaballs.js.map +0 -7
  39. package/dist/shaders/neuro-noise.d.ts +0 -9
  40. package/dist/shaders/neuro-noise.js +0 -76
  41. package/dist/shaders/neuro-noise.js.map +0 -7
  42. package/dist/shaders/perlin-noise.d.ts +0 -14
  43. package/dist/shaders/perlin-noise.js +0 -183
  44. package/dist/shaders/perlin-noise.js.map +0 -7
  45. package/dist/shaders/pulsing-border.d.ts +0 -11
  46. package/dist/shaders/pulsing-border.js +0 -153
  47. package/dist/shaders/pulsing-border.js.map +0 -7
  48. package/dist/shaders/simplex-noise.d.ts +0 -9
  49. package/dist/shaders/simplex-noise.js +0 -80
  50. package/dist/shaders/simplex-noise.js.map +0 -7
  51. package/dist/shaders/smoke-ring.d.ts +0 -12
  52. package/dist/shaders/smoke-ring.js +0 -134
  53. package/dist/shaders/smoke-ring.js.map +0 -7
  54. package/dist/shaders/spiral.d.ts +0 -15
  55. package/dist/shaders/spiral.js +0 -218
  56. package/dist/shaders/spiral.js.map +0 -7
  57. package/dist/shaders/swirl.d.ts +0 -12
  58. package/dist/shaders/swirl.js +0 -136
  59. package/dist/shaders/swirl.js.map +0 -7
  60. package/dist/shaders/voronoi.d.ts +0 -10
  61. package/dist/shaders/voronoi.js +0 -102
  62. package/dist/shaders/voronoi.js.map +0 -7
  63. package/dist/shaders/warp.d.ts +0 -19
  64. package/dist/shaders/warp.js +0 -294
  65. package/dist/shaders/warp.js.map +0 -7
  66. package/dist/shaders/waves.d.ts +0 -14
  67. package/dist/shaders/waves.js +0 -178
  68. package/dist/shaders/waves.js.map +0 -7
  69. package/dist/use-merge-refs.d.ts +0 -6
  70. package/dist/use-merge-refs.js +0 -48
  71. package/dist/use-merge-refs.js.map +0 -7
@@ -1,153 +0,0 @@
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
- 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
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/shaders/pulsing-border.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 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
- }
@@ -1,9 +0,0 @@
1
- import { type ShaderComponentProps } from '../shader-mount.js';
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 {};
@@ -1,80 +0,0 @@
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
- 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
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/shaders/simplex-noise.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 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
- }
@@ -1,12 +0,0 @@
1
- import { type ShaderComponentProps } from '../shader-mount.js';
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 {};
@@ -1,134 +0,0 @@
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
- defaultObjectSizing,
11
- getShaderColorFromString,
12
- getShaderNoiseTexture,
13
- smokeRingFragmentShader,
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
- speed: 0.4,
22
- frame: 0,
23
- colorBack: "#ffffff",
24
- colors: ["#136c5e", "#0f0224"],
25
- noiseScale: 5,
26
- noiseIterations: 10,
27
- radius: 0.5,
28
- thickness: 0.25,
29
- innerShape: 1.2
30
- }
31
- };
32
- const poisonPreset = {
33
- name: "Poison",
34
- params: {
35
- ...defaultObjectSizing,
36
- speed: 1,
37
- frame: 0,
38
- colorBack: "#000000",
39
- colors: ["#d4ff00", "#0c7f08"],
40
- noiseScale: 2.2,
41
- noiseIterations: 10,
42
- radius: 0.4,
43
- thickness: 0.2,
44
- innerShape: 0.6
45
- }
46
- };
47
- const linePreset = {
48
- name: "Line",
49
- params: {
50
- ...defaultObjectSizing,
51
- frame: 0,
52
- colorBack: "#000000",
53
- colors: ["#1fe8ff", "#4540a4"],
54
- noiseScale: 1.1,
55
- noiseIterations: 2,
56
- radius: 0.38,
57
- thickness: 0.01,
58
- innerShape: 0.88,
59
- speed: 4
60
- }
61
- };
62
- const cloudPreset = {
63
- name: "Cloud",
64
- params: {
65
- ...defaultObjectSizing,
66
- frame: 0,
67
- colorBack: "#3b9bff",
68
- colors: ["#ffffff"],
69
- noiseScale: 1.5,
70
- noiseIterations: 10,
71
- radius: 0.5,
72
- thickness: 0.65,
73
- innerShape: 0.9,
74
- speed: 0.5
75
- }
76
- };
77
- const smokeRingPresets = [defaultPreset, linePreset, poisonPreset, cloudPreset];
78
- const SmokeRing = memo(function SmokeRingImpl({
79
- // Own props
80
- speed = defaultPreset.params.speed,
81
- frame = defaultPreset.params.frame,
82
- colorBack = defaultPreset.params.colorBack,
83
- colors = defaultPreset.params.colors,
84
- noiseScale = defaultPreset.params.noiseScale,
85
- thickness = defaultPreset.params.thickness,
86
- radius = defaultPreset.params.radius,
87
- innerShape = defaultPreset.params.innerShape,
88
- noiseIterations = defaultPreset.params.noiseIterations,
89
- // Sizing props
90
- fit = defaultPreset.params.fit,
91
- scale = defaultPreset.params.scale,
92
- rotation = defaultPreset.params.rotation,
93
- originX = defaultPreset.params.originX,
94
- originY = defaultPreset.params.originY,
95
- offsetX = defaultPreset.params.offsetX,
96
- offsetY = defaultPreset.params.offsetY,
97
- worldWidth = defaultPreset.params.worldWidth,
98
- worldHeight = defaultPreset.params.worldHeight,
99
- ...props
100
- }) {
101
- const noiseTexture = typeof window !== "undefined" && { u_noiseTexture: getShaderNoiseTexture() };
102
- const uniforms = {
103
- // Own uniforms
104
- u_colorBack: getShaderColorFromString(colorBack),
105
- u_colors: colors.map(getShaderColorFromString),
106
- u_colorsCount: colors.length,
107
- u_noiseScale: noiseScale,
108
- u_thickness: thickness,
109
- u_radius: radius,
110
- u_innerShape: innerShape,
111
- u_noiseIterations: noiseIterations,
112
- ...noiseTexture,
113
- // Sizing uniforms
114
- u_fit: ShaderFitOptions[fit],
115
- u_scale: scale,
116
- u_rotation: rotation,
117
- u_offsetX: offsetX,
118
- u_offsetY: offsetY,
119
- u_originX: originX,
120
- u_originY: originY,
121
- u_worldWidth: worldWidth,
122
- u_worldHeight: worldHeight
123
- };
124
- return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: smokeRingFragmentShader, uniforms });
125
- }, colorPropsAreEqual);
126
- export {
127
- SmokeRing,
128
- cloudPreset,
129
- defaultPreset,
130
- linePreset,
131
- poisonPreset,
132
- smokeRingPresets
133
- };
134
- //# sourceMappingURL=smoke-ring.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/shaders/smoke-ring.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 defaultObjectSizing,\n getShaderColorFromString,\n getShaderNoiseTexture,\n smokeRingFragmentShader,\n ShaderFitOptions,\n type ShaderPreset,\n type SmokeRingParams,\n type SmokeRingUniforms,\n} from '@paper-design/shaders';\n\nexport interface SmokeRingProps extends ShaderComponentProps, SmokeRingParams {}\n\ntype SmokeRingPreset = ShaderPreset<SmokeRingParams>;\n\nexport const defaultPreset: SmokeRingPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n speed: 0.4,\n frame: 0,\n colorBack: '#ffffff',\n colors: ['#136c5e', '#0f0224'],\n noiseScale: 5,\n noiseIterations: 10,\n radius: 0.5,\n thickness: 0.25,\n innerShape: 1.2,\n },\n};\n\nexport const poisonPreset: SmokeRingPreset = {\n name: 'Poison',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#000000',\n colors: ['#d4ff00', '#0c7f08'],\n noiseScale: 2.2,\n noiseIterations: 10,\n radius: 0.4,\n thickness: 0.2,\n innerShape: 0.6,\n },\n};\n\nexport const linePreset: SmokeRingPreset = {\n name: 'Line',\n params: {\n ...defaultObjectSizing,\n frame: 0,\n colorBack: '#000000',\n colors: ['#1fe8ff', '#4540a4'],\n noiseScale: 1.1,\n noiseIterations: 2,\n radius: 0.38,\n thickness: 0.01,\n innerShape: 0.88,\n speed: 4,\n },\n};\n\nexport const cloudPreset: SmokeRingPreset = {\n name: 'Cloud',\n params: {\n ...defaultObjectSizing,\n frame: 0,\n colorBack: '#3b9bff',\n colors: ['#ffffff'],\n noiseScale: 1.5,\n noiseIterations: 10,\n radius: 0.5,\n thickness: 0.65,\n innerShape: 0.9,\n speed: 0.5,\n },\n};\n\nexport const smokeRingPresets: SmokeRingPreset[] = [defaultPreset, linePreset, poisonPreset, cloudPreset];\n\nexport const SmokeRing: React.FC<SmokeRingProps> = memo(function SmokeRingImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colors = defaultPreset.params.colors,\n noiseScale = defaultPreset.params.noiseScale,\n thickness = defaultPreset.params.thickness,\n radius = defaultPreset.params.radius,\n innerShape = defaultPreset.params.innerShape,\n noiseIterations = defaultPreset.params.noiseIterations,\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}: SmokeRingProps) {\n const noiseTexture = typeof window !== 'undefined' && { u_noiseTexture: getShaderNoiseTexture() };\n\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_noiseScale: noiseScale,\n u_thickness: thickness,\n u_radius: radius,\n u_innerShape: innerShape,\n u_noiseIterations: noiseIterations,\n ...noiseTexture,\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 SmokeRingUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={smokeRingFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,15 +0,0 @@
1
- import { type ShaderComponentProps } from '../shader-mount.js';
2
- import { type ShaderPreset, type SpiralParams } from '@paper-design/shaders';
3
- export interface SpiralProps extends ShaderComponentProps, SpiralParams {
4
- }
5
- type SpiralPreset = ShaderPreset<SpiralParams>;
6
- export declare const defaultPreset: SpiralPreset;
7
- export declare const noisyPreset: SpiralPreset;
8
- export declare const dropletPreset: SpiralPreset;
9
- export declare const sandPreset: SpiralPreset;
10
- export declare const swirlPreset: SpiralPreset;
11
- export declare const hookPreset: SpiralPreset;
12
- export declare const vinylPreset: SpiralPreset;
13
- export declare const spiralPresets: SpiralPreset[];
14
- export declare const Spiral: React.FC<SpiralProps>;
15
- export {};
@@ -1,218 +0,0 @@
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
- defaultPatternSizing,
11
- getShaderColorFromString,
12
- ShaderFitOptions,
13
- spiralFragmentShader
14
- } from "@paper-design/shaders";
15
- import { jsx } from "react/jsx-runtime";
16
- const defaultPreset = {
17
- name: "Default",
18
- params: {
19
- ...defaultPatternSizing,
20
- colorBack: "#fafafa",
21
- colorFront: "#808080",
22
- density: 0,
23
- distortion: 0,
24
- strokeWidth: 0.5,
25
- strokeTaper: 0,
26
- strokeCap: 0,
27
- noiseFrequency: 0,
28
- noisePower: 0,
29
- softness: 0.01,
30
- speed: 1,
31
- frame: 0
32
- }
33
- };
34
- const noisyPreset = {
35
- name: "Noisy",
36
- params: {
37
- ...defaultPatternSizing,
38
- colorBack: "#a1ef2a",
39
- colorFront: "#288918",
40
- scale: 1.3,
41
- density: 0.5,
42
- distortion: 0,
43
- strokeWidth: 0.5,
44
- strokeTaper: 0,
45
- strokeCap: 0.5,
46
- noiseFrequency: 0.1,
47
- noisePower: 1,
48
- softness: 0,
49
- speed: 1,
50
- frame: 0
51
- }
52
- };
53
- const dropletPreset = {
54
- name: "Droplet",
55
- params: {
56
- ...defaultPatternSizing,
57
- colorBack: "#effafe",
58
- colorFront: "#bf40a0",
59
- scale: 0.65,
60
- density: 0,
61
- distortion: 0,
62
- strokeWidth: 0.05,
63
- strokeTaper: 0,
64
- strokeCap: 1,
65
- noiseFrequency: 0,
66
- noisePower: 0,
67
- softness: 0,
68
- speed: 1,
69
- frame: 0
70
- }
71
- };
72
- const sandPreset = {
73
- name: "Sand",
74
- params: {
75
- ...defaultPatternSizing,
76
- colorBack: "#dedede",
77
- colorFront: "#a09560",
78
- scale: 3,
79
- density: 0,
80
- distortion: 0,
81
- strokeWidth: 0.15,
82
- strokeTaper: 0,
83
- strokeCap: 0,
84
- noiseFrequency: 30,
85
- noisePower: 1,
86
- softness: 0.2,
87
- speed: 0,
88
- frame: 0
89
- }
90
- };
91
- const swirlPreset = {
92
- name: "Swirl",
93
- params: {
94
- ...defaultPatternSizing,
95
- colorBack: "#b3e6d9",
96
- colorFront: "#1a2b4d",
97
- scale: 4,
98
- density: 0.8,
99
- distortion: 0,
100
- strokeWidth: 0.5,
101
- strokeTaper: 0,
102
- strokeCap: 0,
103
- noiseFrequency: 0,
104
- noisePower: 0,
105
- softness: 0.5,
106
- speed: 1,
107
- frame: 0
108
- }
109
- };
110
- const hookPreset = {
111
- name: "Hook",
112
- params: {
113
- ...defaultPatternSizing,
114
- colorBack: "#85c2e0",
115
- colorFront: "#000000",
116
- scale: 0.8,
117
- density: 0,
118
- distortion: 0,
119
- strokeWidth: 0.5,
120
- strokeTaper: 0.5,
121
- strokeCap: 0,
122
- noiseFrequency: 0,
123
- noisePower: 0,
124
- softness: 0.02,
125
- speed: 3,
126
- frame: 0
127
- }
128
- };
129
- const vinylPreset = {
130
- name: "Vinyl",
131
- params: {
132
- ...defaultPatternSizing,
133
- colorBack: "#c2babb",
134
- colorFront: "#262626",
135
- density: 0,
136
- distortion: 0.3,
137
- strokeWidth: 0.95,
138
- strokeTaper: 0,
139
- strokeCap: 1,
140
- noiseFrequency: 0,
141
- noisePower: 0,
142
- softness: 0.11,
143
- speed: 1,
144
- frame: 0
145
- }
146
- };
147
- const spiralPresets = [
148
- defaultPreset,
149
- noisyPreset,
150
- dropletPreset,
151
- swirlPreset,
152
- sandPreset,
153
- hookPreset,
154
- vinylPreset
155
- ];
156
- const Spiral = memo(function SpiralImpl({
157
- // Own props
158
- speed = defaultPreset.params.speed,
159
- frame = defaultPreset.params.frame,
160
- colorBack = defaultPreset.params.colorBack,
161
- colorFront = defaultPreset.params.colorFront,
162
- density = defaultPreset.params.density,
163
- distortion = defaultPreset.params.distortion,
164
- strokeWidth = defaultPreset.params.strokeWidth,
165
- strokeTaper = defaultPreset.params.strokeTaper,
166
- strokeCap = defaultPreset.params.strokeCap,
167
- noiseFrequency = defaultPreset.params.noiseFrequency,
168
- noisePower = defaultPreset.params.noisePower,
169
- softness = defaultPreset.params.softness,
170
- // Sizing props
171
- fit = defaultPreset.params.fit,
172
- rotation = defaultPreset.params.rotation,
173
- scale = defaultPreset.params.scale,
174
- originX = defaultPreset.params.originX,
175
- originY = defaultPreset.params.originY,
176
- offsetX = defaultPreset.params.offsetX,
177
- offsetY = defaultPreset.params.offsetY,
178
- worldWidth = defaultPreset.params.worldWidth,
179
- worldHeight = defaultPreset.params.worldHeight,
180
- ...props
181
- }) {
182
- const uniforms = {
183
- // Own uniforms
184
- u_colorBack: getShaderColorFromString(colorBack),
185
- u_colorFront: getShaderColorFromString(colorFront),
186
- u_density: density,
187
- u_distortion: distortion,
188
- u_strokeWidth: strokeWidth,
189
- u_strokeTaper: strokeTaper,
190
- u_strokeCap: strokeCap,
191
- u_noiseFrequency: noiseFrequency,
192
- u_noisePower: noisePower,
193
- u_softness: softness,
194
- // Sizing uniforms
195
- u_fit: ShaderFitOptions[fit],
196
- u_scale: scale,
197
- u_rotation: rotation,
198
- u_offsetX: offsetX,
199
- u_offsetY: offsetY,
200
- u_originX: originX,
201
- u_originY: originY,
202
- u_worldWidth: worldWidth,
203
- u_worldHeight: worldHeight
204
- };
205
- return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: spiralFragmentShader, uniforms });
206
- }, colorPropsAreEqual);
207
- export {
208
- Spiral,
209
- defaultPreset,
210
- dropletPreset,
211
- hookPreset,
212
- noisyPreset,
213
- sandPreset,
214
- spiralPresets,
215
- swirlPreset,
216
- vinylPreset
217
- };
218
- //# sourceMappingURL=spiral.js.map