@paper-design/shaders-react 0.0.33 → 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 (67) hide show
  1. package/package.json +3 -3
  2. package/dist/color-props-are-equal.d.ts +0 -6
  3. package/dist/color-props-are-equal.js +0 -34
  4. package/dist/color-props-are-equal.js.map +0 -7
  5. package/dist/index.d.ts +0 -59
  6. package/dist/index.js +0 -91
  7. package/dist/index.js.map +0 -7
  8. package/dist/shader-mount.d.ts +0 -23
  9. package/dist/shader-mount.js +0 -126
  10. package/dist/shader-mount.js.map +0 -7
  11. package/dist/shaders/dithering.d.ts +0 -15
  12. package/dist/shaders/dithering.js +0 -170
  13. package/dist/shaders/dithering.js.map +0 -7
  14. package/dist/shaders/dot-grid.d.ts +0 -10
  15. package/dist/shaders/dot-grid.js +0 -230
  16. package/dist/shaders/dot-grid.js.map +0 -7
  17. package/dist/shaders/dot-orbit.d.ts +0 -9
  18. package/dist/shaders/dot-orbit.js +0 -77
  19. package/dist/shaders/dot-orbit.js.map +0 -7
  20. package/dist/shaders/god-rays.d.ts +0 -13
  21. package/dist/shaders/god-rays.js +0 -160
  22. package/dist/shaders/god-rays.js.map +0 -7
  23. package/dist/shaders/grain-gradient.d.ts +0 -16
  24. package/dist/shaders/grain-gradient.js +0 -198
  25. package/dist/shaders/grain-gradient.js.map +0 -7
  26. package/dist/shaders/liquid-metal.d.ts +0 -9
  27. package/dist/shaders/liquid-metal.js +0 -87
  28. package/dist/shaders/liquid-metal.js.map +0 -7
  29. package/dist/shaders/mesh-gradient.d.ts +0 -11
  30. package/dist/shaders/mesh-gradient.js +0 -104
  31. package/dist/shaders/mesh-gradient.js.map +0 -7
  32. package/dist/shaders/metaballs.d.ts +0 -9
  33. package/dist/shaders/metaballs.js +0 -72
  34. package/dist/shaders/metaballs.js.map +0 -7
  35. package/dist/shaders/neuro-noise.d.ts +0 -9
  36. package/dist/shaders/neuro-noise.js +0 -82
  37. package/dist/shaders/neuro-noise.js.map +0 -7
  38. package/dist/shaders/perlin-noise.d.ts +0 -14
  39. package/dist/shaders/perlin-noise.js +0 -183
  40. package/dist/shaders/perlin-noise.js.map +0 -7
  41. package/dist/shaders/pulsing-border.d.ts +0 -11
  42. package/dist/shaders/pulsing-border.js +0 -153
  43. package/dist/shaders/pulsing-border.js.map +0 -7
  44. package/dist/shaders/simplex-noise.d.ts +0 -9
  45. package/dist/shaders/simplex-noise.js +0 -80
  46. package/dist/shaders/simplex-noise.js.map +0 -7
  47. package/dist/shaders/smoke-ring.d.ts +0 -12
  48. package/dist/shaders/smoke-ring.js +0 -134
  49. package/dist/shaders/smoke-ring.js.map +0 -7
  50. package/dist/shaders/spiral.d.ts +0 -15
  51. package/dist/shaders/spiral.js +0 -218
  52. package/dist/shaders/spiral.js.map +0 -7
  53. package/dist/shaders/swirl.d.ts +0 -12
  54. package/dist/shaders/swirl.js +0 -130
  55. package/dist/shaders/swirl.js.map +0 -7
  56. package/dist/shaders/voronoi.d.ts +0 -10
  57. package/dist/shaders/voronoi.js +0 -102
  58. package/dist/shaders/voronoi.js.map +0 -7
  59. package/dist/shaders/warp.d.ts +0 -19
  60. package/dist/shaders/warp.js +0 -294
  61. package/dist/shaders/warp.js.map +0 -7
  62. package/dist/shaders/waves.d.ts +0 -14
  63. package/dist/shaders/waves.js +0 -178
  64. package/dist/shaders/waves.js.map +0 -7
  65. package/dist/use-merge-refs.d.ts +0 -6
  66. package/dist/use-merge-refs.js +0 -48
  67. package/dist/use-merge-refs.js.map +0 -7
@@ -1,294 +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";
8
- import { colorPropsAreEqual } from "../color-props-are-equal";
9
- import {
10
- defaultPatternSizing,
11
- getShaderColorFromString,
12
- warpFragmentShader,
13
- ShaderFitOptions,
14
- WarpPatterns
15
- } from "@paper-design/shaders";
16
- import { jsx } from "react/jsx-runtime";
17
- const defaultPreset = {
18
- name: "Default",
19
- params: {
20
- ...defaultPatternSizing,
21
- rotation: 0,
22
- speed: 1,
23
- frame: 0,
24
- colors: ["#262626", "#7accf2", "#ffffff"],
25
- proportion: 0.35,
26
- softness: 1,
27
- distortion: 0.25,
28
- swirl: 0.8,
29
- swirlIterations: 10,
30
- shapeScale: 0.1,
31
- shape: "checks"
32
- }
33
- };
34
- const presetAbyss = {
35
- name: "The Abyss",
36
- params: {
37
- ...defaultPatternSizing,
38
- scale: 3,
39
- rotation: 2,
40
- speed: 0.6,
41
- frame: 0,
42
- colors: ["#15122e", "#7b89f2", "#ffffff"],
43
- proportion: 0,
44
- softness: 1,
45
- distortion: 0.09,
46
- swirl: 0.48,
47
- swirlIterations: 5,
48
- shapeScale: 0.85,
49
- shape: "edge"
50
- }
51
- };
52
- const presetCauldron = {
53
- name: "Cauldron Pot",
54
- params: {
55
- ...defaultPatternSizing,
56
- scale: 0.9,
57
- rotation: 160,
58
- speed: 20,
59
- frame: 0,
60
- colors: ["#a7e58b", "#324472", "#0a180d"],
61
- proportion: 0.64,
62
- softness: 1.5,
63
- distortion: 0.2,
64
- swirl: 0.86,
65
- swirlIterations: 7,
66
- shapeScale: 0.6,
67
- shape: "edge"
68
- }
69
- };
70
- const presetFilteredLight = {
71
- name: "Filtered Light",
72
- params: {
73
- ...defaultPatternSizing,
74
- scale: 0.3,
75
- rotation: 45,
76
- speed: 3.2,
77
- frame: 0,
78
- colors: ["#171714", "#d4d8be", "#f9f9e0"],
79
- proportion: 0.4,
80
- softness: 1,
81
- distortion: 0.09,
82
- swirl: 0.1,
83
- swirlIterations: 0,
84
- shapeScale: 0.1,
85
- shape: "stripes"
86
- }
87
- };
88
- const presetIceberg = {
89
- name: "Iceberg",
90
- params: {
91
- ...defaultPatternSizing,
92
- scale: 0.8,
93
- rotation: 190,
94
- offsetX: 0.3,
95
- speed: 0.5,
96
- frame: 0,
97
- colors: ["#ffffff", "#324771", "#0a180d"],
98
- proportion: 0.3,
99
- softness: 1.2,
100
- distortion: 0.2,
101
- swirl: 0.86,
102
- swirlIterations: 7,
103
- shapeScale: 0,
104
- shape: "checks"
105
- }
106
- };
107
- const presetInk = {
108
- name: "Live Ink",
109
- params: {
110
- ...defaultPatternSizing,
111
- scale: 1.2,
112
- rotation: 44,
113
- offsetY: -0.3,
114
- speed: 10,
115
- frame: 0,
116
- colors: ["#111314", "#9faeab", "#f3fee7"],
117
- proportion: 0.35,
118
- softness: 0,
119
- distortion: 0.25,
120
- swirl: 0.8,
121
- swirlIterations: 10,
122
- shapeScale: 0.28,
123
- shape: "checks"
124
- }
125
- };
126
- const presetKelp = {
127
- name: "Kelp",
128
- params: {
129
- ...defaultPatternSizing,
130
- scale: 0.88,
131
- rotation: 50,
132
- speed: 80,
133
- frame: 0,
134
- colors: ["#dbff8f", "#404f3e", "#091316"],
135
- proportion: 0.93,
136
- softness: 0.05,
137
- distortion: 0,
138
- swirl: 0.15,
139
- swirlIterations: 0,
140
- shapeScale: 0.74,
141
- shape: "stripes"
142
- }
143
- };
144
- const presetNectar = {
145
- name: "Nectar",
146
- params: {
147
- ...defaultPatternSizing,
148
- scale: 2,
149
- offsetY: 0.6,
150
- rotation: 0,
151
- speed: 30,
152
- frame: 0,
153
- colors: ["#151310", "#d3a86b", "#f0edea"],
154
- proportion: 0.24,
155
- softness: 1,
156
- distortion: 0.21,
157
- swirl: 0.57,
158
- swirlIterations: 10,
159
- shapeScale: 0.75,
160
- shape: "edge"
161
- }
162
- };
163
- const presetPassion = {
164
- name: "Passion",
165
- params: {
166
- ...defaultPatternSizing,
167
- scale: 2.5,
168
- rotation: 1.35,
169
- speed: 15,
170
- frame: 0,
171
- colors: ["#3b1515", "#954751", "#ffc085"],
172
- proportion: 0.5,
173
- softness: 1,
174
- distortion: 0.09,
175
- swirl: 0.9,
176
- swirlIterations: 6,
177
- shapeScale: 0.25,
178
- shape: "checks"
179
- }
180
- };
181
- const presetPhantom = {
182
- name: "Phantom",
183
- params: {
184
- ...defaultPatternSizing,
185
- scale: 1.2,
186
- rotation: 180,
187
- offsetY: -0.2,
188
- speed: 30,
189
- frame: 0,
190
- colors: ["#12112c", "#7b89f2", "#d7dcfb"],
191
- proportion: 0.5,
192
- softness: 1,
193
- distortion: 0.2,
194
- swirl: 0.3,
195
- swirlIterations: 7,
196
- shapeScale: 0.1,
197
- shape: "checks"
198
- }
199
- };
200
- const presetSilk = {
201
- name: "Silk",
202
- params: {
203
- ...defaultPatternSizing,
204
- scale: 2,
205
- rotation: 0,
206
- speed: 5,
207
- frame: 0,
208
- colors: ["#141111", "#665551", "#baaea9"],
209
- proportion: 0,
210
- softness: 1,
211
- distortion: 0.3,
212
- swirl: 0.6,
213
- swirlIterations: 11,
214
- shapeScale: 0.25,
215
- shape: "stripes"
216
- }
217
- };
218
- const warpPresets = [
219
- defaultPreset,
220
- presetAbyss,
221
- presetCauldron,
222
- presetFilteredLight,
223
- presetIceberg,
224
- presetInk,
225
- presetKelp,
226
- presetNectar,
227
- presetPassion,
228
- presetPhantom,
229
- presetSilk
230
- ];
231
- const Warp = memo(function WarpImpl({
232
- // Own props
233
- speed = defaultPreset.params.speed,
234
- frame = defaultPreset.params.frame,
235
- colors = defaultPreset.params.colors,
236
- proportion = defaultPreset.params.proportion,
237
- softness = defaultPreset.params.softness,
238
- distortion = defaultPreset.params.distortion,
239
- swirl = defaultPreset.params.swirl,
240
- swirlIterations = defaultPreset.params.swirlIterations,
241
- shapeScale = defaultPreset.params.shapeScale,
242
- shape = defaultPreset.params.shape,
243
- // Sizing props
244
- fit = defaultPreset.params.fit,
245
- scale = defaultPreset.params.scale,
246
- rotation = defaultPreset.params.rotation,
247
- originX = defaultPreset.params.originX,
248
- originY = defaultPreset.params.originY,
249
- offsetX = defaultPreset.params.offsetX,
250
- offsetY = defaultPreset.params.offsetY,
251
- worldWidth = defaultPreset.params.worldWidth,
252
- worldHeight = defaultPreset.params.worldHeight,
253
- ...props
254
- }) {
255
- const uniforms = {
256
- // Own uniforms
257
- u_colors: colors.map(getShaderColorFromString),
258
- u_colorsCount: colors.length,
259
- u_proportion: proportion,
260
- u_softness: softness,
261
- u_distortion: distortion,
262
- u_swirl: swirl,
263
- u_swirlIterations: swirlIterations,
264
- u_shapeScale: shapeScale,
265
- u_shape: WarpPatterns[shape],
266
- // Sizing uniforms
267
- u_scale: scale,
268
- u_rotation: rotation,
269
- u_fit: ShaderFitOptions[fit],
270
- u_offsetX: offsetX,
271
- u_offsetY: offsetY,
272
- u_originX: originX,
273
- u_originY: originY,
274
- u_worldWidth: worldWidth,
275
- u_worldHeight: worldHeight
276
- };
277
- return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: warpFragmentShader, uniforms });
278
- }, colorPropsAreEqual);
279
- export {
280
- Warp,
281
- defaultPreset,
282
- presetAbyss,
283
- presetCauldron,
284
- presetFilteredLight,
285
- presetIceberg,
286
- presetInk,
287
- presetKelp,
288
- presetNectar,
289
- presetPassion,
290
- presetPhantom,
291
- presetSilk,
292
- warpPresets
293
- };
294
- //# sourceMappingURL=warp.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/shaders/warp.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 warpFragmentShader,\n ShaderFitOptions,\n type WarpParams,\n type WarpUniforms,\n type ShaderPreset,\n WarpPatterns,\n} from '@paper-design/shaders';\n\nexport interface WarpProps extends ShaderComponentProps, WarpParams {}\n\ntype WarpPreset = ShaderPreset<WarpParams>;\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: WarpPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n rotation: 0,\n speed: 1,\n frame: 0,\n colors: ['#262626', '#7accf2', '#ffffff'],\n proportion: 0.35,\n softness: 1,\n distortion: 0.25,\n swirl: 0.8,\n swirlIterations: 10,\n shapeScale: 0.1,\n shape: 'checks',\n },\n};\n\nexport const presetAbyss: WarpPreset = {\n name: 'The Abyss',\n params: {\n ...defaultPatternSizing,\n scale: 3,\n rotation: 2,\n speed: 0.6,\n frame: 0,\n colors: ['#15122e', '#7b89f2', '#ffffff'],\n proportion: 0,\n softness: 1,\n distortion: 0.09,\n swirl: 0.48,\n swirlIterations: 5,\n shapeScale: 0.85,\n shape: 'edge',\n },\n};\n\nexport const presetCauldron: WarpPreset = {\n name: 'Cauldron Pot',\n params: {\n ...defaultPatternSizing,\n scale: 0.9,\n rotation: 160,\n speed: 20,\n frame: 0,\n colors: ['#a7e58b', '#324472', '#0a180d'],\n proportion: 0.64,\n softness: 1.5,\n distortion: 0.2,\n swirl: 0.86,\n swirlIterations: 7,\n shapeScale: 0.6,\n shape: 'edge',\n },\n};\n\nexport const presetFilteredLight: WarpPreset = {\n name: 'Filtered Light',\n params: {\n ...defaultPatternSizing,\n scale: 0.3,\n rotation: 45,\n speed: 3.2,\n frame: 0,\n colors: ['#171714', '#d4d8be', '#f9f9e0'],\n proportion: 0.4,\n softness: 1,\n distortion: 0.09,\n swirl: 0.1,\n swirlIterations: 0,\n shapeScale: 0.1,\n shape: 'stripes',\n },\n};\n\nexport const presetIceberg: WarpPreset = {\n name: 'Iceberg',\n params: {\n ...defaultPatternSizing,\n scale: 0.8,\n rotation: 190,\n offsetX: 0.3,\n speed: 0.5,\n frame: 0,\n colors: ['#ffffff', '#324771', '#0a180d'],\n proportion: 0.3,\n softness: 1.2,\n distortion: 0.2,\n swirl: 0.86,\n swirlIterations: 7,\n shapeScale: 0,\n shape: 'checks',\n },\n};\n\nexport const presetInk: WarpPreset = {\n name: 'Live Ink',\n params: {\n ...defaultPatternSizing,\n scale: 1.2,\n rotation: 44,\n offsetY: -0.3,\n speed: 10,\n frame: 0,\n colors: ['#111314', '#9faeab', '#f3fee7'],\n proportion: 0.35,\n softness: 0,\n distortion: 0.25,\n swirl: 0.8,\n swirlIterations: 10,\n shapeScale: 0.28,\n shape: 'checks',\n },\n};\n\nexport const presetKelp: WarpPreset = {\n name: 'Kelp',\n params: {\n ...defaultPatternSizing,\n scale: 0.88,\n rotation: 50,\n speed: 80,\n frame: 0,\n colors: ['#dbff8f', '#404f3e', '#091316'],\n proportion: 0.93,\n softness: 0.05,\n distortion: 0,\n swirl: 0.15,\n swirlIterations: 0,\n shapeScale: 0.74,\n shape: 'stripes',\n },\n};\n\nexport const presetNectar: WarpPreset = {\n name: 'Nectar',\n params: {\n ...defaultPatternSizing,\n scale: 2,\n offsetY: 0.6,\n rotation: 0,\n speed: 30,\n frame: 0,\n colors: ['#151310', '#d3a86b', '#f0edea'],\n proportion: 0.24,\n softness: 1,\n distortion: 0.21,\n swirl: 0.57,\n swirlIterations: 10,\n shapeScale: 0.75,\n shape: 'edge',\n },\n};\n\nexport const presetPassion: WarpPreset = {\n name: 'Passion',\n params: {\n ...defaultPatternSizing,\n scale: 2.5,\n rotation: 1.35,\n speed: 15,\n frame: 0,\n colors: ['#3b1515', '#954751', '#ffc085'],\n proportion: 0.5,\n softness: 1,\n distortion: 0.09,\n swirl: 0.9,\n swirlIterations: 6,\n shapeScale: 0.25,\n shape: 'checks',\n },\n};\n\nexport const presetPhantom: WarpPreset = {\n name: 'Phantom',\n params: {\n ...defaultPatternSizing,\n scale: 1.2,\n rotation: 180,\n offsetY: -0.2,\n speed: 30,\n frame: 0,\n colors: ['#12112c', '#7b89f2', '#d7dcfb'],\n proportion: 0.5,\n softness: 1,\n distortion: 0.2,\n swirl: 0.3,\n swirlIterations: 7,\n shapeScale: 0.1,\n shape: 'checks',\n },\n};\n\nexport const presetSilk: WarpPreset = {\n name: 'Silk',\n params: {\n ...defaultPatternSizing,\n scale: 2,\n rotation: 0,\n speed: 5,\n frame: 0,\n colors: ['#141111', '#665551', '#baaea9'],\n proportion: 0,\n softness: 1,\n distortion: 0.3,\n swirl: 0.6,\n swirlIterations: 11,\n shapeScale: 0.25,\n shape: 'stripes',\n },\n};\n\nexport const warpPresets: WarpPreset[] = [\n defaultPreset,\n presetAbyss,\n presetCauldron,\n presetFilteredLight,\n presetIceberg,\n presetInk,\n presetKelp,\n presetNectar,\n presetPassion,\n presetPhantom,\n presetSilk,\n];\n\nexport const Warp: React.FC<WarpProps> = memo(function WarpImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n proportion = defaultPreset.params.proportion,\n softness = defaultPreset.params.softness,\n distortion = defaultPreset.params.distortion,\n swirl = defaultPreset.params.swirl,\n swirlIterations = defaultPreset.params.swirlIterations,\n shapeScale = defaultPreset.params.shapeScale,\n shape = defaultPreset.params.shape,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: WarpProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_proportion: proportion,\n u_softness: softness,\n u_distortion: distortion,\n u_swirl: swirl,\n u_swirlIterations: swirlIterations,\n u_shapeScale: shapeScale,\n u_shape: WarpPatterns[shape],\n\n // Sizing uniforms\n u_scale: scale,\n u_rotation: rotation,\n u_fit: ShaderFitOptions[fit],\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 WarpUniforms;\n\n return <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={warpFragmentShader} uniforms={uniforms} />;\n}, colorPropsAreEqual);\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,14 +0,0 @@
1
- import { type ShaderComponentProps } from '../shader-mount';
2
- import { type WavesParams, type ShaderPreset } from '@paper-design/shaders';
3
- export interface WavesProps extends ShaderComponentProps, WavesParams {
4
- }
5
- type WavesPreset = ShaderPreset<WavesParams>;
6
- export declare const defaultPreset: WavesPreset;
7
- export declare const spikesPreset: WavesPreset;
8
- export declare const groovyPreset: WavesPreset;
9
- export declare const tangledUpPreset: WavesPreset;
10
- export declare const zigZagPreset: WavesPreset;
11
- export declare const waveRidePreset: WavesPreset;
12
- export declare const wavesPresets: WavesPreset[];
13
- export declare const Waves: React.FC<WavesProps>;
14
- export {};
@@ -1,178 +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";
8
- import { colorPropsAreEqual } from "../color-props-are-equal";
9
- import {
10
- defaultPatternSizing,
11
- getShaderColorFromString,
12
- wavesFragmentShader,
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
- scale: 1.6,
21
- rotation: 0,
22
- color1: "#ffffff",
23
- color2: "#102c70",
24
- shape: 0,
25
- frequency: 0.5,
26
- amplitude: 0.6,
27
- spacing: 0.65,
28
- proportion: 0.15,
29
- softness: 0
30
- }
31
- };
32
- const spikesPreset = {
33
- name: "Spikes",
34
- params: {
35
- ...defaultPatternSizing,
36
- scale: 1 / 2.3,
37
- rotation: 0,
38
- color1: "#fdffe6",
39
- color2: "#34123b",
40
- shape: 0,
41
- frequency: 0.5,
42
- amplitude: 0.9,
43
- spacing: 0.37,
44
- proportion: 0.93,
45
- softness: 0.15
46
- }
47
- };
48
- const groovyPreset = {
49
- name: "Groovy",
50
- params: {
51
- ...defaultPatternSizing,
52
- scale: 1 / 0.5,
53
- rotation: 1,
54
- color1: "#fcfcee",
55
- color2: "#ff896b",
56
- shape: 2.37,
57
- frequency: 0.2,
58
- amplitude: 0.67,
59
- spacing: 1.17,
60
- proportion: 0.57,
61
- softness: 0
62
- }
63
- };
64
- const tangledUpPreset = {
65
- name: "Tangled up",
66
- params: {
67
- ...defaultPatternSizing,
68
- scale: 1 / 3.04,
69
- rotation: 1,
70
- color1: "#133a41",
71
- color2: "#c2d8b6",
72
- shape: 3,
73
- frequency: 0.44,
74
- amplitude: 0.57,
75
- spacing: 1.05,
76
- proportion: 0.97,
77
- softness: 0
78
- }
79
- };
80
- const zigZagPreset = {
81
- name: "Zig zag",
82
- params: {
83
- ...defaultPatternSizing,
84
- scale: 1 / 2.7,
85
- rotation: 1,
86
- color1: "#000000",
87
- color2: "#e6e6e6",
88
- shape: 0,
89
- frequency: 0.6,
90
- amplitude: 0.8,
91
- spacing: 0.5,
92
- proportion: 1,
93
- softness: 0.5
94
- }
95
- };
96
- const waveRidePreset = {
97
- name: "Ride the wave",
98
- params: {
99
- ...defaultPatternSizing,
100
- scale: 1 / 0.84,
101
- rotation: 0,
102
- color1: "#fdffe6",
103
- color2: "#1f1f1f",
104
- shape: 2.23,
105
- frequency: 0.1,
106
- amplitude: 0.6,
107
- spacing: 0.41,
108
- proportion: 0.99,
109
- softness: 0
110
- }
111
- };
112
- const wavesPresets = [
113
- defaultPreset,
114
- spikesPreset,
115
- groovyPreset,
116
- tangledUpPreset,
117
- zigZagPreset,
118
- waveRidePreset
119
- ];
120
- const Waves = memo(function WavesImpl({
121
- // Own props
122
- color1 = defaultPreset.params.color1,
123
- color2 = defaultPreset.params.color2,
124
- shape = defaultPreset.params.shape,
125
- frequency = defaultPreset.params.frequency,
126
- amplitude = defaultPreset.params.amplitude,
127
- spacing = defaultPreset.params.spacing,
128
- proportion = defaultPreset.params.proportion,
129
- softness = defaultPreset.params.softness,
130
- // Sizing props
131
- fit = defaultPreset.params.fit,
132
- scale = defaultPreset.params.scale,
133
- rotation = defaultPreset.params.rotation,
134
- offsetX = defaultPreset.params.offsetX,
135
- offsetY = defaultPreset.params.offsetY,
136
- originX = defaultPreset.params.originX,
137
- originY = defaultPreset.params.originY,
138
- worldWidth = defaultPreset.params.worldWidth,
139
- worldHeight = defaultPreset.params.worldHeight,
140
- // Other props
141
- maxPixelCount = 6016 * 3384,
142
- // Higher max resolution for this shader
143
- ...props
144
- }) {
145
- const uniforms = {
146
- // Own uniforms
147
- u_color1: getShaderColorFromString(color1),
148
- u_color2: getShaderColorFromString(color2),
149
- u_shape: shape,
150
- u_frequency: frequency,
151
- u_amplitude: amplitude,
152
- u_spacing: spacing,
153
- u_proportion: proportion,
154
- u_softness: softness,
155
- // Sizing uniforms
156
- u_fit: ShaderFitOptions[fit],
157
- u_scale: scale,
158
- u_rotation: rotation,
159
- u_offsetX: offsetX,
160
- u_offsetY: offsetY,
161
- u_originX: originX,
162
- u_originY: originY,
163
- u_worldWidth: worldWidth,
164
- u_worldHeight: worldHeight
165
- };
166
- return /* @__PURE__ */ jsx(ShaderMount, { ...props, fragmentShader: wavesFragmentShader, uniforms });
167
- }, colorPropsAreEqual);
168
- export {
169
- Waves,
170
- defaultPreset,
171
- groovyPreset,
172
- spikesPreset,
173
- tangledUpPreset,
174
- waveRidePreset,
175
- wavesPresets,
176
- zigZagPreset
177
- };
178
- //# sourceMappingURL=waves.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/shaders/waves.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 wavesFragmentShader,\n ShaderFitOptions,\n type WavesParams,\n type WavesUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface WavesProps extends ShaderComponentProps, WavesParams {}\n\ntype WavesPreset = ShaderPreset<WavesParams>;\n\n// Due to Leva controls limitation:\n// 1) keep default colors in HSLA format to keep alpha channel\n// 2) don't use decimal values on HSL values (to avoid button highlight bug)\n\nexport const defaultPreset: WavesPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n scale: 1.6,\n rotation: 0,\n color1: '#ffffff',\n color2: '#102c70',\n shape: 0,\n frequency: 0.5,\n amplitude: 0.6,\n spacing: 0.65,\n proportion: 0.15,\n softness: 0,\n },\n};\n\nexport const spikesPreset: WavesPreset = {\n name: 'Spikes',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 2.3,\n rotation: 0,\n color1: '#fdffe6',\n color2: '#34123b',\n shape: 0,\n frequency: 0.5,\n amplitude: 0.9,\n spacing: 0.37,\n proportion: 0.93,\n softness: 0.15,\n },\n};\n\nexport const groovyPreset: WavesPreset = {\n name: 'Groovy',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.5,\n rotation: 1,\n color1: '#fcfcee',\n color2: '#ff896b',\n shape: 2.37,\n frequency: 0.2,\n amplitude: 0.67,\n spacing: 1.17,\n proportion: 0.57,\n softness: 0,\n },\n};\n\nexport const tangledUpPreset: WavesPreset = {\n name: 'Tangled up',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 3.04,\n rotation: 1,\n color1: '#133a41',\n color2: '#c2d8b6',\n shape: 3,\n frequency: 0.44,\n amplitude: 0.57,\n spacing: 1.05,\n proportion: 0.97,\n softness: 0,\n },\n};\n\nexport const zigZagPreset: WavesPreset = {\n name: 'Zig zag',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 2.7,\n rotation: 1,\n color1: '#000000',\n color2: '#e6e6e6',\n shape: 0,\n frequency: 0.6,\n amplitude: 0.8,\n spacing: 0.5,\n proportion: 1,\n softness: 0.5,\n },\n};\n\nexport const waveRidePreset: WavesPreset = {\n name: 'Ride the wave',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.84,\n rotation: 0,\n color1: '#fdffe6',\n color2: '#1f1f1f',\n shape: 2.23,\n frequency: 0.1,\n amplitude: 0.6,\n spacing: 0.41,\n proportion: 0.99,\n softness: 0,\n },\n};\n\nexport const wavesPresets: WavesPreset[] = [\n defaultPreset,\n spikesPreset,\n groovyPreset,\n tangledUpPreset,\n zigZagPreset,\n waveRidePreset,\n];\n\nexport const Waves: React.FC<WavesProps> = memo(function WavesImpl({\n // Own props\n color1 = defaultPreset.params.color1,\n color2 = defaultPreset.params.color2,\n shape = defaultPreset.params.shape,\n frequency = defaultPreset.params.frequency,\n amplitude = defaultPreset.params.amplitude,\n spacing = defaultPreset.params.spacing,\n proportion = defaultPreset.params.proportion,\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 offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\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}: WavesProps) {\n const uniforms = {\n // Own uniforms\n u_color1: getShaderColorFromString(color1),\n u_color2: getShaderColorFromString(color2),\n u_shape: shape,\n u_frequency: frequency,\n u_amplitude: amplitude,\n u_spacing: spacing,\n u_proportion: proportion,\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 WavesUniforms;\n\n return <ShaderMount {...props} fragmentShader={wavesFragmentShader} uniforms={uniforms} />;\n}, colorPropsAreEqual);\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,6 +0,0 @@
1
- import * as React from 'react';
2
- /**
3
- * Merges an array of refs into a single memoized callback ref or `null`.
4
- * @see https://floating-ui.com/docs/react-utils#usemergerefs
5
- */
6
- export declare function useMergeRefs<Instance>(refs: Array<React.Ref<Instance> | undefined>): null | React.Ref<Instance>;
@@ -1,48 +0,0 @@
1
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * *
2
- * Paper Shaders *
3
- * https://github.com/paper-design/shaders *
4
- * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5
-
6
- import * as React from "react";
7
- function useMergeRefs(refs) {
8
- const cleanupRef = React.useRef(void 0);
9
- const refEffect = React.useCallback((instance) => {
10
- const cleanups = refs.map((ref) => {
11
- if (ref == null) {
12
- return;
13
- }
14
- if (typeof ref === "function") {
15
- const refCallback = ref;
16
- const refCleanup = refCallback(instance);
17
- return typeof refCleanup === "function" ? refCleanup : () => {
18
- refCallback(null);
19
- };
20
- }
21
- ref.current = instance;
22
- return () => {
23
- ref.current = null;
24
- };
25
- });
26
- return () => {
27
- cleanups.forEach((refCleanup) => refCleanup?.());
28
- };
29
- }, refs);
30
- return React.useMemo(() => {
31
- if (refs.every((ref) => ref == null)) {
32
- return null;
33
- }
34
- return (value) => {
35
- if (cleanupRef.current) {
36
- cleanupRef.current();
37
- cleanupRef.current = void 0;
38
- }
39
- if (value != null) {
40
- cleanupRef.current = refEffect(value);
41
- }
42
- };
43
- }, refs);
44
- }
45
- export {
46
- useMergeRefs
47
- };
48
- //# sourceMappingURL=use-merge-refs.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/use-merge-refs.ts"],
4
- "sourcesContent": ["import * as React from 'react';\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/react-utils#usemergerefs\n */\nexport function useMergeRefs<Instance>(refs: Array<React.Ref<Instance> | undefined>): null | React.Ref<Instance> {\n const cleanupRef = React.useRef<void | (() => void)>(undefined);\n\n const refEffect = React.useCallback((instance: Instance | null) => {\n const cleanups = refs.map((ref) => {\n if (ref == null) {\n return;\n }\n\n if (typeof ref === 'function') {\n const refCallback = ref;\n const refCleanup: void | (() => void) = refCallback(instance);\n return typeof refCleanup === 'function'\n ? refCleanup\n : () => {\n refCallback(null);\n };\n }\n\n (ref as React.RefObject<Instance | null>).current = instance;\n return () => {\n (ref as React.RefObject<Instance | null>).current = null;\n };\n });\n\n return () => {\n cleanups.forEach((refCleanup) => refCleanup?.());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n\n return React.useMemo(() => {\n if (refs.every((ref) => ref == null)) {\n return null;\n }\n\n return (value) => {\n if (cleanupRef.current) {\n cleanupRef.current();\n (cleanupRef as React.RefObject<void | (() => void)>).current = undefined;\n }\n\n if (value != null) {\n (cleanupRef as React.RefObject<void | (() => void)>).current = refEffect(value);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n"],
5
- "mappings": ";;;;;AAAA,YAAY,WAAW;AAMhB,SAAS,aAAuB,MAA0E;AAC/G,QAAM,aAAa,MAAM,OAA4B,MAAS;AAE9D,QAAM,YAAY,MAAM,YAAY,CAAC,aAA8B;AACjE,UAAM,WAAW,KAAK,IAAI,CAAC,QAAQ;AACjC,UAAI,OAAO,MAAM;AACf;AAAA,MACF;AAEA,UAAI,OAAO,QAAQ,YAAY;AAC7B,cAAM,cAAc;AACpB,cAAM,aAAkC,YAAY,QAAQ;AAC5D,eAAO,OAAO,eAAe,aACzB,aACA,MAAM;AACJ,sBAAY,IAAI;AAAA,QAClB;AAAA,MACN;AAEA,MAAC,IAAyC,UAAU;AACpD,aAAO,MAAM;AACX,QAAC,IAAyC,UAAU;AAAA,MACtD;AAAA,IACF,CAAC;AAED,WAAO,MAAM;AACX,eAAS,QAAQ,CAAC,eAAe,aAAa,CAAC;AAAA,IACjD;AAAA,EAEF,GAAG,IAAI;AAEP,SAAO,MAAM,QAAQ,MAAM;AACzB,QAAI,KAAK,MAAM,CAAC,QAAQ,OAAO,IAAI,GAAG;AACpC,aAAO;AAAA,IACT;AAEA,WAAO,CAAC,UAAU;AAChB,UAAI,WAAW,SAAS;AACtB,mBAAW,QAAQ;AACnB,QAAC,WAAoD,UAAU;AAAA,MACjE;AAEA,UAAI,SAAS,MAAM;AACjB,QAAC,WAAoD,UAAU,UAAU,KAAK;AAAA,MAChF;AAAA,IACF;AAAA,EAEF,GAAG,IAAI;AACT;",
6
- "names": []
7
- }