@paper-design/shaders-react 0.0.32 → 0.0.34

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 (65) hide show
  1. package/README.md +1 -4
  2. package/dist/index.d.ts +42 -39
  3. package/dist/index.js +22 -19
  4. package/dist/index.js.map +2 -2
  5. package/dist/shader-mount.d.ts +4 -1
  6. package/dist/shader-mount.js +7 -1
  7. package/dist/shader-mount.js.map +2 -2
  8. package/dist/shaders/color-panels.d.ts +9 -0
  9. package/dist/shaders/color-panels.js +107 -0
  10. package/dist/shaders/color-panels.js.map +7 -0
  11. package/dist/shaders/dithering.d.ts +1 -1
  12. package/dist/shaders/dithering.js +45 -54
  13. package/dist/shaders/dithering.js.map +2 -2
  14. package/dist/shaders/dot-grid.d.ts +1 -1
  15. package/dist/shaders/dot-grid.js +30 -30
  16. package/dist/shaders/dot-grid.js.map +2 -2
  17. package/dist/shaders/dot-orbit.d.ts +1 -1
  18. package/dist/shaders/dot-orbit.js +7 -4
  19. package/dist/shaders/dot-orbit.js.map +2 -2
  20. package/dist/shaders/god-rays.d.ts +1 -1
  21. package/dist/shaders/god-rays.js +26 -19
  22. package/dist/shaders/god-rays.js.map +2 -2
  23. package/dist/shaders/grain-gradient.d.ts +1 -1
  24. package/dist/shaders/grain-gradient.js +30 -19
  25. package/dist/shaders/grain-gradient.js.map +2 -2
  26. package/dist/shaders/liquid-metal.d.ts +4 -1
  27. package/dist/shaders/liquid-metal.js +89 -20
  28. package/dist/shaders/liquid-metal.js.map +2 -2
  29. package/dist/shaders/mesh-gradient.d.ts +1 -1
  30. package/dist/shaders/mesh-gradient.js +5 -5
  31. package/dist/shaders/mesh-gradient.js.map +2 -2
  32. package/dist/shaders/metaballs.d.ts +1 -1
  33. package/dist/shaders/metaballs.js +6 -3
  34. package/dist/shaders/metaballs.js.map +2 -2
  35. package/dist/shaders/neuro-noise.d.ts +1 -1
  36. package/dist/shaders/neuro-noise.js +12 -18
  37. package/dist/shaders/neuro-noise.js.map +2 -2
  38. package/dist/shaders/perlin-noise.d.ts +1 -1
  39. package/dist/shaders/perlin-noise.js +18 -18
  40. package/dist/shaders/perlin-noise.js.map +2 -2
  41. package/dist/shaders/pulsing-border.d.ts +1 -1
  42. package/dist/shaders/pulsing-border.js +8 -8
  43. package/dist/shaders/pulsing-border.js.map +2 -2
  44. package/dist/shaders/simplex-noise.d.ts +1 -1
  45. package/dist/shaders/simplex-noise.js +3 -3
  46. package/dist/shaders/simplex-noise.js.map +2 -2
  47. package/dist/shaders/smoke-ring.d.ts +1 -1
  48. package/dist/shaders/smoke-ring.js +10 -10
  49. package/dist/shaders/smoke-ring.js.map +2 -2
  50. package/dist/shaders/spiral.d.ts +1 -1
  51. package/dist/shaders/spiral.js +20 -20
  52. package/dist/shaders/spiral.js.map +2 -2
  53. package/dist/shaders/swirl.d.ts +1 -1
  54. package/dist/shaders/swirl.js +12 -13
  55. package/dist/shaders/swirl.js.map +2 -2
  56. package/dist/shaders/voronoi.d.ts +1 -1
  57. package/dist/shaders/voronoi.js +14 -14
  58. package/dist/shaders/voronoi.js.map +2 -2
  59. package/dist/shaders/warp.d.ts +8 -8
  60. package/dist/shaders/warp.js +119 -115
  61. package/dist/shaders/warp.js.map +2 -2
  62. package/dist/shaders/waves.d.ts +1 -1
  63. package/dist/shaders/waves.js +18 -18
  64. package/dist/shaders/waves.js.map +2 -2
  65. package/package.json +2 -2
package/README.md CHANGED
@@ -6,11 +6,8 @@
6
6
  import { MeshGradient } from '@paper-design/shaders-react';
7
7
 
8
8
  <MeshGradient
9
- color1="#FFC0CB" // pink
10
- color2="#FFFF00" // yellow
11
- color3="#0000FF" // blue
12
- color4="#800080" // purple
13
9
  speed={0.25}
10
+ colors={["#FFC0CB", "#FFFF00", "#0000FF", "#800080"]}
14
11
  style={{ width: 500, height: 200 }}
15
12
  />;
16
13
 
package/dist/index.d.ts CHANGED
@@ -1,59 +1,62 @@
1
- export { ShaderMount } from './shader-mount';
2
- export type { ShaderMountProps, ShaderComponentProps } from './shader-mount';
3
- export { MeshGradient, meshGradientPresets } from './shaders/mesh-gradient';
4
- export type { MeshGradientProps } from './shaders/mesh-gradient';
1
+ export { ShaderMount } from './shader-mount.js';
2
+ export type { ShaderMountProps, ShaderComponentProps } from './shader-mount.js';
3
+ export { MeshGradient, meshGradientPresets } from './shaders/mesh-gradient.js';
4
+ export type { MeshGradientProps } from './shaders/mesh-gradient.js';
5
5
  export type { MeshGradientUniforms, MeshGradientParams } from '@paper-design/shaders';
6
- export { SmokeRing, smokeRingPresets } from './shaders/smoke-ring';
7
- export type { SmokeRingProps } from './shaders/smoke-ring';
6
+ export { SmokeRing, smokeRingPresets } from './shaders/smoke-ring.js';
7
+ export type { SmokeRingProps } from './shaders/smoke-ring.js';
8
8
  export type { SmokeRingUniforms, SmokeRingParams } from '@paper-design/shaders';
9
- export { NeuroNoise, neuroNoisePresets } from './shaders/neuro-noise';
10
- export type { NeuroNoiseProps } from './shaders/neuro-noise';
9
+ export { NeuroNoise, neuroNoisePresets } from './shaders/neuro-noise.js';
10
+ export type { NeuroNoiseProps } from './shaders/neuro-noise.js';
11
11
  export type { NeuroNoiseUniforms, NeuroNoiseParams } from '@paper-design/shaders';
12
- export { DotOrbit, dotOrbitPresets } from './shaders/dot-orbit';
13
- export type { DotOrbitProps } from './shaders/dot-orbit';
12
+ export { DotOrbit, dotOrbitPresets } from './shaders/dot-orbit.js';
13
+ export type { DotOrbitProps } from './shaders/dot-orbit.js';
14
14
  export type { DotOrbitUniforms, DotOrbitParams } from '@paper-design/shaders';
15
- export { DotGrid, dotGridPresets } from './shaders/dot-grid';
16
- export type { DotGridProps } from './shaders/dot-grid';
17
- export type { DotGridUniforms, DotGridParams, DotGridShape } from '@paper-design/shaders';
18
- export { SimplexNoise, simplexNoisePresets } from './shaders/simplex-noise';
19
- export type { SimplexNoiseProps } from './shaders/simplex-noise';
15
+ export { DotGrid, dotGridPresets } from './shaders/dot-grid.js';
16
+ export type { DotGridProps } from './shaders/dot-grid.js';
17
+ export type { DotGridUniforms, DotGridParams } from '@paper-design/shaders';
18
+ export { SimplexNoise, simplexNoisePresets } from './shaders/simplex-noise.js';
19
+ export type { SimplexNoiseProps } from './shaders/simplex-noise.js';
20
20
  export type { SimplexNoiseUniforms, SimplexNoiseParams } from '@paper-design/shaders';
21
- export { Metaballs, metaballsPresets } from './shaders/metaballs';
22
- export type { MetaballsProps } from './shaders/metaballs';
21
+ export { Metaballs, metaballsPresets } from './shaders/metaballs.js';
22
+ export type { MetaballsProps } from './shaders/metaballs.js';
23
23
  export type { MetaballsUniforms, MetaballsParams } from '@paper-design/shaders';
24
- export { Waves, wavesPresets } from './shaders/waves';
25
- export type { WavesProps } from './shaders/waves';
24
+ export { Waves, wavesPresets } from './shaders/waves.js';
25
+ export type { WavesProps } from './shaders/waves.js';
26
26
  export type { WavesUniforms, WavesParams } from '@paper-design/shaders';
27
- export { PerlinNoise, perlinNoisePresets } from './shaders/perlin-noise';
28
- export type { PerlinNoiseProps } from './shaders/perlin-noise';
27
+ export { PerlinNoise, perlinNoisePresets } from './shaders/perlin-noise.js';
28
+ export type { PerlinNoiseProps } from './shaders/perlin-noise.js';
29
29
  export type { PerlinNoiseUniforms, PerlinNoiseParams } from '@paper-design/shaders';
30
- export { Voronoi, voronoiPresets } from './shaders/voronoi';
31
- export type { VoronoiProps } from './shaders/voronoi';
30
+ export { Voronoi, voronoiPresets } from './shaders/voronoi.js';
31
+ export type { VoronoiProps } from './shaders/voronoi.js';
32
32
  export type { VoronoiUniforms, VoronoiParams } from '@paper-design/shaders';
33
- export { Warp, warpPresets } from './shaders/warp';
34
- export type { WarpProps } from './shaders/warp';
33
+ export { Warp, warpPresets } from './shaders/warp.js';
34
+ export type { WarpProps } from './shaders/warp.js';
35
35
  export type { WarpUniforms, WarpParams, WarpPattern } from '@paper-design/shaders';
36
- export { GodRays, godRaysPresets } from './shaders/god-rays';
37
- export type { GodRaysProps } from './shaders/god-rays';
36
+ export { GodRays, godRaysPresets } from './shaders/god-rays.js';
37
+ export type { GodRaysProps } from './shaders/god-rays.js';
38
38
  export type { GodRaysUniforms, GodRaysParams } from '@paper-design/shaders';
39
- export { Spiral, spiralPresets } from './shaders/spiral';
40
- export type { SpiralProps } from './shaders/spiral';
39
+ export { Spiral, spiralPresets } from './shaders/spiral.js';
40
+ export type { SpiralProps } from './shaders/spiral.js';
41
41
  export type { SpiralUniforms, SpiralParams } from '@paper-design/shaders';
42
- export { Swirl, swirlPresets } from './shaders/swirl';
43
- export type { SwirlProps } from './shaders/swirl';
42
+ export { Swirl, swirlPresets } from './shaders/swirl.js';
43
+ export type { SwirlProps } from './shaders/swirl.js';
44
44
  export type { SwirlUniforms, SwirlParams } from '@paper-design/shaders';
45
- export { Dithering, ditheringPresets } from './shaders/dithering';
46
- export type { DitheringProps } from './shaders/dithering';
45
+ export { Dithering, ditheringPresets } from './shaders/dithering.js';
46
+ export type { DitheringProps } from './shaders/dithering.js';
47
47
  export type { DitheringUniforms, DitheringParams } from '@paper-design/shaders';
48
- export { GrainGradient, grainGradientPresets } from './shaders/grain-gradient';
49
- export type { GrainGradientProps } from './shaders/grain-gradient';
48
+ export { GrainGradient, grainGradientPresets } from './shaders/grain-gradient.js';
49
+ export type { GrainGradientProps } from './shaders/grain-gradient.js';
50
50
  export type { GrainGradientUniforms, GrainGradientParams } from '@paper-design/shaders';
51
- export { LiquidMetal, liquidMetalPresets } from './shaders/liquid-metal';
52
- export type { LiquidMetalProps } from './shaders/liquid-metal';
51
+ export { LiquidMetal, liquidMetalPresets } from './shaders/liquid-metal.js';
52
+ export type { LiquidMetalProps } from './shaders/liquid-metal.js';
53
53
  export type { LiquidMetalUniforms, LiquidMetalParams } from '@paper-design/shaders';
54
- export { PulsingBorder, pulsingBorderPresets } from './shaders/pulsing-border';
55
- export type { PulsingBorderProps } from './shaders/pulsing-border';
54
+ export { PulsingBorder, pulsingBorderPresets } from './shaders/pulsing-border.js';
55
+ export type { PulsingBorderProps } from './shaders/pulsing-border.js';
56
56
  export type { PulsingBorderUniforms, PulsingBorderParams } from '@paper-design/shaders';
57
+ export { ColorPanels, colorPanelsPresets } from './shaders/color-panels.js';
58
+ export type { ColorPanelsProps } from './shaders/color-panels.js';
59
+ export type { ColorPanelsUniforms, ColorPanelsParams } from '@paper-design/shaders';
57
60
  export { isPaperShaderElement, getShaderColorFromString } from '@paper-design/shaders';
58
61
  export type { ShaderFit, ShaderSizingParams, ShaderSizingUniforms } from '@paper-design/shaders';
59
62
  export { dotOrbitMeta, godRaysMeta, grainGradientMeta, meshGradientMeta, metaballsMeta, pulsingBorderMeta, simplexNoiseMeta, smokeRingMeta, swirlMeta, voronoiMeta, warpMeta, } from '@paper-design/shaders';
package/dist/index.js CHANGED
@@ -3,25 +3,26 @@
3
3
  * https://github.com/paper-design/shaders *
4
4
  * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5
5
 
6
- import { ShaderMount } from "./shader-mount";
7
- import { MeshGradient, meshGradientPresets } from "./shaders/mesh-gradient";
8
- import { SmokeRing, smokeRingPresets } from "./shaders/smoke-ring";
9
- import { NeuroNoise, neuroNoisePresets } from "./shaders/neuro-noise";
10
- import { DotOrbit, dotOrbitPresets } from "./shaders/dot-orbit";
11
- import { DotGrid, dotGridPresets } from "./shaders/dot-grid";
12
- import { SimplexNoise, simplexNoisePresets } from "./shaders/simplex-noise";
13
- import { Metaballs, metaballsPresets } from "./shaders/metaballs";
14
- import { Waves, wavesPresets } from "./shaders/waves";
15
- import { PerlinNoise, perlinNoisePresets } from "./shaders/perlin-noise";
16
- import { Voronoi, voronoiPresets } from "./shaders/voronoi";
17
- import { Warp, warpPresets } from "./shaders/warp";
18
- import { GodRays, godRaysPresets } from "./shaders/god-rays";
19
- import { Spiral, spiralPresets } from "./shaders/spiral";
20
- import { Swirl, swirlPresets } from "./shaders/swirl";
21
- import { Dithering, ditheringPresets } from "./shaders/dithering";
22
- import { GrainGradient, grainGradientPresets } from "./shaders/grain-gradient";
23
- import { LiquidMetal, liquidMetalPresets } from "./shaders/liquid-metal";
24
- import { PulsingBorder, pulsingBorderPresets } from "./shaders/pulsing-border";
6
+ import { ShaderMount } from "./shader-mount.js";
7
+ import { MeshGradient, meshGradientPresets } from "./shaders/mesh-gradient.js";
8
+ import { SmokeRing, smokeRingPresets } from "./shaders/smoke-ring.js";
9
+ import { NeuroNoise, neuroNoisePresets } from "./shaders/neuro-noise.js";
10
+ import { DotOrbit, dotOrbitPresets } from "./shaders/dot-orbit.js";
11
+ import { DotGrid, dotGridPresets } from "./shaders/dot-grid.js";
12
+ import { SimplexNoise, simplexNoisePresets } from "./shaders/simplex-noise.js";
13
+ import { Metaballs, metaballsPresets } from "./shaders/metaballs.js";
14
+ import { Waves, wavesPresets } from "./shaders/waves.js";
15
+ import { PerlinNoise, perlinNoisePresets } from "./shaders/perlin-noise.js";
16
+ import { Voronoi, voronoiPresets } from "./shaders/voronoi.js";
17
+ import { Warp, warpPresets } from "./shaders/warp.js";
18
+ import { GodRays, godRaysPresets } from "./shaders/god-rays.js";
19
+ import { Spiral, spiralPresets } from "./shaders/spiral.js";
20
+ import { Swirl, swirlPresets } from "./shaders/swirl.js";
21
+ import { Dithering, ditheringPresets } from "./shaders/dithering.js";
22
+ import { GrainGradient, grainGradientPresets } from "./shaders/grain-gradient.js";
23
+ import { LiquidMetal, liquidMetalPresets } from "./shaders/liquid-metal.js";
24
+ import { PulsingBorder, pulsingBorderPresets } from "./shaders/pulsing-border.js";
25
+ import { ColorPanels, colorPanelsPresets } from "./shaders/color-panels.js";
25
26
  import { isPaperShaderElement, getShaderColorFromString } from "@paper-design/shaders";
26
27
  import {
27
28
  dotOrbitMeta,
@@ -37,6 +38,7 @@ import {
37
38
  warpMeta
38
39
  } from "@paper-design/shaders";
39
40
  export {
41
+ ColorPanels,
40
42
  Dithering,
41
43
  DotGrid,
42
44
  DotOrbit,
@@ -56,6 +58,7 @@ export {
56
58
  Voronoi,
57
59
  Warp,
58
60
  Waves,
61
+ colorPanelsPresets,
59
62
  ditheringPresets,
60
63
  dotGridPresets,
61
64
  dotOrbitMeta,
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["export { ShaderMount } from './shader-mount';\nexport type { ShaderMountProps, ShaderComponentProps } from './shader-mount';\n\nexport { MeshGradient, meshGradientPresets } from './shaders/mesh-gradient';\nexport type { MeshGradientProps } from './shaders/mesh-gradient';\nexport type { MeshGradientUniforms, MeshGradientParams } from '@paper-design/shaders';\n\nexport { SmokeRing, smokeRingPresets } from './shaders/smoke-ring';\nexport type { SmokeRingProps } from './shaders/smoke-ring';\nexport type { SmokeRingUniforms, SmokeRingParams } from '@paper-design/shaders';\n\nexport { NeuroNoise, neuroNoisePresets } from './shaders/neuro-noise';\nexport type { NeuroNoiseProps } from './shaders/neuro-noise';\nexport type { NeuroNoiseUniforms, NeuroNoiseParams } from '@paper-design/shaders';\n\nexport { DotOrbit, dotOrbitPresets } from './shaders/dot-orbit';\nexport type { DotOrbitProps } from './shaders/dot-orbit';\nexport type { DotOrbitUniforms, DotOrbitParams } from '@paper-design/shaders';\n\nexport { DotGrid, dotGridPresets } from './shaders/dot-grid';\nexport type { DotGridProps } from './shaders/dot-grid';\nexport type { DotGridUniforms, DotGridParams, DotGridShape } from '@paper-design/shaders';\n\nexport { SimplexNoise, simplexNoisePresets } from './shaders/simplex-noise';\nexport type { SimplexNoiseProps } from './shaders/simplex-noise';\nexport type { SimplexNoiseUniforms, SimplexNoiseParams } from '@paper-design/shaders';\n\nexport { Metaballs, metaballsPresets } from './shaders/metaballs';\nexport type { MetaballsProps } from './shaders/metaballs';\nexport type { MetaballsUniforms, MetaballsParams } from '@paper-design/shaders';\n\nexport { Waves, wavesPresets } from './shaders/waves';\nexport type { WavesProps } from './shaders/waves';\nexport type { WavesUniforms, WavesParams } from '@paper-design/shaders';\n\nexport { PerlinNoise, perlinNoisePresets } from './shaders/perlin-noise';\nexport type { PerlinNoiseProps } from './shaders/perlin-noise';\nexport type { PerlinNoiseUniforms, PerlinNoiseParams } from '@paper-design/shaders';\n\nexport { Voronoi, voronoiPresets } from './shaders/voronoi';\nexport type { VoronoiProps } from './shaders/voronoi';\nexport type { VoronoiUniforms, VoronoiParams } from '@paper-design/shaders';\n\nexport { Warp, warpPresets } from './shaders/warp';\nexport type { WarpProps } from './shaders/warp';\nexport type { WarpUniforms, WarpParams, WarpPattern } from '@paper-design/shaders';\n\nexport { GodRays, godRaysPresets } from './shaders/god-rays';\nexport type { GodRaysProps } from './shaders/god-rays';\nexport type { GodRaysUniforms, GodRaysParams } from '@paper-design/shaders';\n\nexport { Spiral, spiralPresets } from './shaders/spiral';\nexport type { SpiralProps } from './shaders/spiral';\nexport type { SpiralUniforms, SpiralParams } from '@paper-design/shaders';\n\nexport { Swirl, swirlPresets } from './shaders/swirl';\nexport type { SwirlProps } from './shaders/swirl';\nexport type { SwirlUniforms, SwirlParams } from '@paper-design/shaders';\n\nexport { Dithering, ditheringPresets } from './shaders/dithering';\nexport type { DitheringProps } from './shaders/dithering';\nexport type { DitheringUniforms, DitheringParams } from '@paper-design/shaders';\n\nexport { GrainGradient, grainGradientPresets } from './shaders/grain-gradient';\nexport type { GrainGradientProps } from './shaders/grain-gradient';\nexport type { GrainGradientUniforms, GrainGradientParams } from '@paper-design/shaders';\n\nexport { LiquidMetal, liquidMetalPresets } from './shaders/liquid-metal';\nexport type { LiquidMetalProps } from './shaders/liquid-metal';\nexport type { LiquidMetalUniforms, LiquidMetalParams } from '@paper-design/shaders';\n\nexport { PulsingBorder, pulsingBorderPresets } from './shaders/pulsing-border';\nexport type { PulsingBorderProps } from './shaders/pulsing-border';\nexport type { PulsingBorderUniforms, PulsingBorderParams } from '@paper-design/shaders';\n\nexport { isPaperShaderElement, getShaderColorFromString } from '@paper-design/shaders';\nexport type { ShaderFit, ShaderSizingParams, ShaderSizingUniforms } from '@paper-design/shaders';\n\nexport {\n dotOrbitMeta,\n godRaysMeta,\n grainGradientMeta,\n meshGradientMeta,\n metaballsMeta,\n pulsingBorderMeta,\n simplexNoiseMeta,\n smokeRingMeta,\n swirlMeta,\n voronoiMeta,\n warpMeta,\n} from '@paper-design/shaders';\n"],
5
- "mappings": ";;;;;AAAA,SAAS,mBAAmB;AAG5B,SAAS,cAAc,2BAA2B;AAIlD,SAAS,WAAW,wBAAwB;AAI5C,SAAS,YAAY,yBAAyB;AAI9C,SAAS,UAAU,uBAAuB;AAI1C,SAAS,SAAS,sBAAsB;AAIxC,SAAS,cAAc,2BAA2B;AAIlD,SAAS,WAAW,wBAAwB;AAI5C,SAAS,OAAO,oBAAoB;AAIpC,SAAS,aAAa,0BAA0B;AAIhD,SAAS,SAAS,sBAAsB;AAIxC,SAAS,MAAM,mBAAmB;AAIlC,SAAS,SAAS,sBAAsB;AAIxC,SAAS,QAAQ,qBAAqB;AAItC,SAAS,OAAO,oBAAoB;AAIpC,SAAS,WAAW,wBAAwB;AAI5C,SAAS,eAAe,4BAA4B;AAIpD,SAAS,aAAa,0BAA0B;AAIhD,SAAS,eAAe,4BAA4B;AAIpD,SAAS,sBAAsB,gCAAgC;AAG/D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
4
+ "sourcesContent": ["export { ShaderMount } from './shader-mount.js';\nexport type { ShaderMountProps, ShaderComponentProps } from './shader-mount.js';\n\nexport { MeshGradient, meshGradientPresets } from './shaders/mesh-gradient.js';\nexport type { MeshGradientProps } from './shaders/mesh-gradient.js';\nexport type { MeshGradientUniforms, MeshGradientParams } from '@paper-design/shaders';\n\nexport { SmokeRing, smokeRingPresets } from './shaders/smoke-ring.js';\nexport type { SmokeRingProps } from './shaders/smoke-ring.js';\nexport type { SmokeRingUniforms, SmokeRingParams } from '@paper-design/shaders';\n\nexport { NeuroNoise, neuroNoisePresets } from './shaders/neuro-noise.js';\nexport type { NeuroNoiseProps } from './shaders/neuro-noise.js';\nexport type { NeuroNoiseUniforms, NeuroNoiseParams } from '@paper-design/shaders';\n\nexport { DotOrbit, dotOrbitPresets } from './shaders/dot-orbit.js';\nexport type { DotOrbitProps } from './shaders/dot-orbit.js';\nexport type { DotOrbitUniforms, DotOrbitParams } from '@paper-design/shaders';\n\nexport { DotGrid, dotGridPresets } from './shaders/dot-grid.js';\nexport type { DotGridProps } from './shaders/dot-grid.js';\nexport type { DotGridUniforms, DotGridParams } from '@paper-design/shaders';\n\nexport { SimplexNoise, simplexNoisePresets } from './shaders/simplex-noise.js';\nexport type { SimplexNoiseProps } from './shaders/simplex-noise.js';\nexport type { SimplexNoiseUniforms, SimplexNoiseParams } from '@paper-design/shaders';\n\nexport { Metaballs, metaballsPresets } from './shaders/metaballs.js';\nexport type { MetaballsProps } from './shaders/metaballs.js';\nexport type { MetaballsUniforms, MetaballsParams } from '@paper-design/shaders';\n\nexport { Waves, wavesPresets } from './shaders/waves.js';\nexport type { WavesProps } from './shaders/waves.js';\nexport type { WavesUniforms, WavesParams } from '@paper-design/shaders';\n\nexport { PerlinNoise, perlinNoisePresets } from './shaders/perlin-noise.js';\nexport type { PerlinNoiseProps } from './shaders/perlin-noise.js';\nexport type { PerlinNoiseUniforms, PerlinNoiseParams } from '@paper-design/shaders';\n\nexport { Voronoi, voronoiPresets } from './shaders/voronoi.js';\nexport type { VoronoiProps } from './shaders/voronoi.js';\nexport type { VoronoiUniforms, VoronoiParams } from '@paper-design/shaders';\n\nexport { Warp, warpPresets } from './shaders/warp.js';\nexport type { WarpProps } from './shaders/warp.js';\nexport type { WarpUniforms, WarpParams, WarpPattern } from '@paper-design/shaders';\n\nexport { GodRays, godRaysPresets } from './shaders/god-rays.js';\nexport type { GodRaysProps } from './shaders/god-rays.js';\nexport type { GodRaysUniforms, GodRaysParams } from '@paper-design/shaders';\n\nexport { Spiral, spiralPresets } from './shaders/spiral.js';\nexport type { SpiralProps } from './shaders/spiral.js';\nexport type { SpiralUniforms, SpiralParams } from '@paper-design/shaders';\n\nexport { Swirl, swirlPresets } from './shaders/swirl.js';\nexport type { SwirlProps } from './shaders/swirl.js';\nexport type { SwirlUniforms, SwirlParams } from '@paper-design/shaders';\n\nexport { Dithering, ditheringPresets } from './shaders/dithering.js';\nexport type { DitheringProps } from './shaders/dithering.js';\nexport type { DitheringUniforms, DitheringParams } from '@paper-design/shaders';\n\nexport { GrainGradient, grainGradientPresets } from './shaders/grain-gradient.js';\nexport type { GrainGradientProps } from './shaders/grain-gradient.js';\nexport type { GrainGradientUniforms, GrainGradientParams } from '@paper-design/shaders';\n\nexport { LiquidMetal, liquidMetalPresets } from './shaders/liquid-metal.js';\nexport type { LiquidMetalProps } from './shaders/liquid-metal.js';\nexport type { LiquidMetalUniforms, LiquidMetalParams } from '@paper-design/shaders';\n\nexport { PulsingBorder, pulsingBorderPresets } from './shaders/pulsing-border.js';\nexport type { PulsingBorderProps } from './shaders/pulsing-border.js';\nexport type { PulsingBorderUniforms, PulsingBorderParams } from '@paper-design/shaders';\n\nexport { ColorPanels, colorPanelsPresets } from './shaders/color-panels.js';\nexport type { ColorPanelsProps } from './shaders/color-panels.js';\nexport type { ColorPanelsUniforms, ColorPanelsParams } from '@paper-design/shaders';\n\nexport { isPaperShaderElement, getShaderColorFromString } from '@paper-design/shaders';\nexport type { ShaderFit, ShaderSizingParams, ShaderSizingUniforms } from '@paper-design/shaders';\n\nexport {\n dotOrbitMeta,\n godRaysMeta,\n grainGradientMeta,\n meshGradientMeta,\n metaballsMeta,\n pulsingBorderMeta,\n simplexNoiseMeta,\n smokeRingMeta,\n swirlMeta,\n voronoiMeta,\n warpMeta,\n} from '@paper-design/shaders';\n"],
5
+ "mappings": ";;;;;AAAA,SAAS,mBAAmB;AAG5B,SAAS,cAAc,2BAA2B;AAIlD,SAAS,WAAW,wBAAwB;AAI5C,SAAS,YAAY,yBAAyB;AAI9C,SAAS,UAAU,uBAAuB;AAI1C,SAAS,SAAS,sBAAsB;AAIxC,SAAS,cAAc,2BAA2B;AAIlD,SAAS,WAAW,wBAAwB;AAI5C,SAAS,OAAO,oBAAoB;AAIpC,SAAS,aAAa,0BAA0B;AAIhD,SAAS,SAAS,sBAAsB;AAIxC,SAAS,MAAM,mBAAmB;AAIlC,SAAS,SAAS,sBAAsB;AAIxC,SAAS,QAAQ,qBAAqB;AAItC,SAAS,OAAO,oBAAoB;AAIpC,SAAS,WAAW,wBAAwB;AAI5C,SAAS,eAAe,4BAA4B;AAIpD,SAAS,aAAa,0BAA0B;AAIhD,SAAS,eAAe,4BAA4B;AAIpD,SAAS,aAAa,0BAA0B;AAIhD,SAAS,sBAAsB,gCAAgC;AAG/D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,7 @@
1
- import { type ShaderMotionParams } from '@paper-design/shaders';
1
+ import { ShaderMount as ShaderMountVanilla, type ShaderMotionParams } from '@paper-design/shaders';
2
+ export interface ShaderMountRef extends HTMLDivElement {
3
+ paperShaderMount?: ShaderMountVanilla;
4
+ }
2
5
  /** React Shader Mount can also accept strings as uniform values, which will assumed to be URLs and loaded as images */
3
6
  interface ShaderMountUniformsReact {
4
7
  [key: string]: string | boolean | number | number[] | number[][] | HTMLImageElement;
@@ -8,7 +8,7 @@ import { useEffect, useRef, forwardRef, useState } from "react";
8
8
  import {
9
9
  ShaderMount as ShaderMountVanilla
10
10
  } from "@paper-design/shaders";
11
- import { useMergeRefs } from "./use-merge-refs";
11
+ import { useMergeRefs } from "./use-merge-refs.js";
12
12
  import { jsx } from "react/jsx-runtime";
13
13
  async function processUniforms(uniformsProp) {
14
14
  const processedUniforms = {};
@@ -107,6 +107,12 @@ const ShaderMount = forwardRef(
107
107
  useEffect(() => {
108
108
  shaderMountRef.current?.setSpeed(speed);
109
109
  }, [speed, isInitialized]);
110
+ useEffect(() => {
111
+ shaderMountRef.current?.setMaxPixelCount(maxPixelCount);
112
+ }, [maxPixelCount, isInitialized]);
113
+ useEffect(() => {
114
+ shaderMountRef.current?.setMinPixelRatio(minPixelRatio);
115
+ }, [minPixelRatio, isInitialized]);
110
116
  useEffect(() => {
111
117
  shaderMountRef.current?.setFrame(frame);
112
118
  }, [frame, isInitialized]);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/shader-mount.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport { useEffect, useRef, forwardRef, useState } from 'react';\nimport {\n ShaderMount as ShaderMountVanilla,\n type ShaderMotionParams,\n type ShaderMountUniforms,\n} from '@paper-design/shaders';\nimport { useMergeRefs } from './use-merge-refs';\n\n/** React Shader Mount can also accept strings as uniform values, which will assumed to be URLs and loaded as images */\ninterface ShaderMountUniformsReact {\n [key: string]: string | boolean | number | number[] | number[][] | HTMLImageElement;\n}\n\nexport interface ShaderMountProps extends Omit<React.ComponentProps<'div'>, 'color'>, ShaderMotionParams {\n fragmentShader: string;\n uniforms: ShaderMountUniformsReact;\n minPixelRatio?: number;\n maxPixelCount?: number;\n webGlContextAttributes?: WebGLContextAttributes;\n}\n\nexport interface ShaderComponentProps extends Omit<React.ComponentProps<'div'>, 'color'> {\n minPixelRatio?: number;\n maxPixelCount?: number;\n webGlContextAttributes?: WebGLContextAttributes;\n}\n\n/** Parse the provided uniforms, turning URL strings into loaded images */\nasync function processUniforms(uniformsProp: ShaderMountUniformsReact): Promise<ShaderMountUniforms> {\n const processedUniforms = {} as ShaderMountUniforms;\n const imageLoadPromises: Promise<void>[] = [];\n\n const isValidUrl = (url: string): boolean => {\n try {\n // Handle absolute paths\n if (url.startsWith('/')) return true;\n // Check if it's a valid URL\n new URL(url);\n return true;\n } catch {\n return false;\n }\n };\n\n const isExternalUrl = (url: string): boolean => {\n try {\n if (url.startsWith('/')) return false;\n const urlObject = new URL(url, window.location.origin);\n return urlObject.origin !== window.location.origin;\n } catch {\n return false;\n }\n };\n\n Object.entries(uniformsProp).forEach(([key, value]) => {\n if (typeof value === 'string') {\n // Make sure the provided string is a valid URL or just skip trying to set this uniform entirely\n if (!isValidUrl(value)) {\n console.warn(`Uniform \"${key}\" has invalid URL \"${value}\". Skipping image loading.`);\n return;\n }\n\n const imagePromise = new Promise<void>((resolve, reject) => {\n const img = new Image();\n if (isExternalUrl(value)) {\n img.crossOrigin = 'anonymous';\n }\n img.onload = () => {\n processedUniforms[key] = img;\n resolve();\n };\n img.onerror = () => {\n console.error(`Could not set uniforms. Failed to load image at ${value}`);\n reject();\n };\n img.src = value;\n });\n imageLoadPromises.push(imagePromise);\n } else {\n processedUniforms[key] = value;\n }\n });\n\n await Promise.all(imageLoadPromises);\n return processedUniforms;\n}\n\n/**\n * A React component that mounts a shader and updates its uniforms as the component's props change\n * If you pass a string as a uniform value, it will be assumed to be a URL and attempted to be loaded as an image\n */\nexport const ShaderMount: React.FC<ShaderMountProps> = forwardRef<HTMLDivElement, ShaderMountProps>(\n function ShaderMountImpl(\n {\n fragmentShader,\n uniforms: uniformsProp,\n webGlContextAttributes,\n speed = 0,\n frame = 0,\n minPixelRatio,\n maxPixelCount,\n ...divProps\n },\n forwardedRef\n ) {\n const [isInitialized, setIsInitialized] = useState(false);\n const divRef = useRef<HTMLDivElement>(null);\n const shaderMountRef: React.RefObject<ShaderMountVanilla | null> = useRef<ShaderMountVanilla>(null);\n\n // Initialize the ShaderMountVanilla\n useEffect(() => {\n const initShader = async () => {\n const uniforms = await processUniforms(uniformsProp);\n\n if (divRef.current && !shaderMountRef.current) {\n shaderMountRef.current = new ShaderMountVanilla(\n divRef.current,\n fragmentShader,\n uniforms,\n webGlContextAttributes,\n speed,\n frame,\n minPixelRatio,\n maxPixelCount\n );\n\n setIsInitialized(true);\n }\n };\n\n initShader();\n\n return () => {\n shaderMountRef.current?.dispose();\n shaderMountRef.current = null;\n };\n }, [fragmentShader, webGlContextAttributes]);\n\n // Uniforms\n useEffect(() => {\n const updateUniforms = async () => {\n const uniforms = await processUniforms(uniformsProp);\n shaderMountRef.current?.setUniforms(uniforms);\n };\n\n updateUniforms();\n }, [uniformsProp, isInitialized]);\n\n // Speed\n useEffect(() => {\n shaderMountRef.current?.setSpeed(speed);\n }, [speed, isInitialized]);\n\n // Frame\n useEffect(() => {\n shaderMountRef.current?.setFrame(frame);\n }, [frame, isInitialized]);\n\n return <div ref={useMergeRefs([divRef, forwardedRef])} {...divProps} />;\n }\n);\n\nShaderMount.displayName = 'ShaderMount';\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["'use client';\n\nimport { useEffect, useRef, forwardRef, useState } from 'react';\nimport {\n ShaderMount as ShaderMountVanilla,\n type ShaderMotionParams,\n type ShaderMountUniforms,\n} from '@paper-design/shaders';\nimport { useMergeRefs } from './use-merge-refs.js';\n\nexport interface ShaderMountRef extends HTMLDivElement {\n paperShaderMount?: ShaderMountVanilla;\n}\n\n/** React Shader Mount can also accept strings as uniform values, which will assumed to be URLs and loaded as images */\ninterface ShaderMountUniformsReact {\n [key: string]: string | boolean | number | number[] | number[][] | HTMLImageElement;\n}\n\nexport interface ShaderMountProps extends Omit<React.ComponentProps<'div'>, 'color'>, ShaderMotionParams {\n fragmentShader: string;\n uniforms: ShaderMountUniformsReact;\n minPixelRatio?: number;\n maxPixelCount?: number;\n webGlContextAttributes?: WebGLContextAttributes;\n}\n\nexport interface ShaderComponentProps extends Omit<React.ComponentProps<'div'>, 'color'> {\n minPixelRatio?: number;\n maxPixelCount?: number;\n webGlContextAttributes?: WebGLContextAttributes;\n}\n\n/** Parse the provided uniforms, turning URL strings into loaded images */\nasync function processUniforms(uniformsProp: ShaderMountUniformsReact): Promise<ShaderMountUniforms> {\n const processedUniforms = {} as ShaderMountUniforms;\n const imageLoadPromises: Promise<void>[] = [];\n\n const isValidUrl = (url: string): boolean => {\n try {\n // Handle absolute paths\n if (url.startsWith('/')) return true;\n // Check if it's a valid URL\n new URL(url);\n return true;\n } catch {\n return false;\n }\n };\n\n const isExternalUrl = (url: string): boolean => {\n try {\n if (url.startsWith('/')) return false;\n const urlObject = new URL(url, window.location.origin);\n return urlObject.origin !== window.location.origin;\n } catch {\n return false;\n }\n };\n\n Object.entries(uniformsProp).forEach(([key, value]) => {\n if (typeof value === 'string') {\n // Make sure the provided string is a valid URL or just skip trying to set this uniform entirely\n if (!isValidUrl(value)) {\n console.warn(`Uniform \"${key}\" has invalid URL \"${value}\". Skipping image loading.`);\n return;\n }\n\n const imagePromise = new Promise<void>((resolve, reject) => {\n const img = new Image();\n if (isExternalUrl(value)) {\n img.crossOrigin = 'anonymous';\n }\n img.onload = () => {\n processedUniforms[key] = img;\n resolve();\n };\n img.onerror = () => {\n console.error(`Could not set uniforms. Failed to load image at ${value}`);\n reject();\n };\n img.src = value;\n });\n imageLoadPromises.push(imagePromise);\n } else {\n processedUniforms[key] = value;\n }\n });\n\n await Promise.all(imageLoadPromises);\n return processedUniforms;\n}\n\n/**\n * A React component that mounts a shader and updates its uniforms as the component's props change\n * If you pass a string as a uniform value, it will be assumed to be a URL and attempted to be loaded as an image\n */\nexport const ShaderMount: React.FC<ShaderMountProps> = forwardRef<ShaderMountRef, ShaderMountProps>(\n function ShaderMountImpl(\n {\n fragmentShader,\n uniforms: uniformsProp,\n webGlContextAttributes,\n speed = 0,\n frame = 0,\n minPixelRatio,\n maxPixelCount,\n ...divProps\n },\n forwardedRef\n ) {\n const [isInitialized, setIsInitialized] = useState(false);\n const divRef = useRef<HTMLDivElement>(null);\n const shaderMountRef: React.RefObject<ShaderMountVanilla | null> = useRef<ShaderMountVanilla>(null);\n\n // Initialize the ShaderMountVanilla\n useEffect(() => {\n const initShader = async () => {\n const uniforms = await processUniforms(uniformsProp);\n\n if (divRef.current && !shaderMountRef.current) {\n shaderMountRef.current = new ShaderMountVanilla(\n divRef.current,\n fragmentShader,\n uniforms,\n webGlContextAttributes,\n speed,\n frame,\n minPixelRatio,\n maxPixelCount\n );\n\n setIsInitialized(true);\n }\n };\n\n initShader();\n\n return () => {\n shaderMountRef.current?.dispose();\n shaderMountRef.current = null;\n };\n }, [fragmentShader, webGlContextAttributes]);\n\n // Uniforms\n useEffect(() => {\n const updateUniforms = async () => {\n const uniforms = await processUniforms(uniformsProp);\n shaderMountRef.current?.setUniforms(uniforms);\n };\n\n updateUniforms();\n }, [uniformsProp, isInitialized]);\n\n // Speed\n useEffect(() => {\n shaderMountRef.current?.setSpeed(speed);\n }, [speed, isInitialized]);\n\n // Max Pixel Count\n useEffect(() => {\n shaderMountRef.current?.setMaxPixelCount(maxPixelCount);\n }, [maxPixelCount, isInitialized]);\n\n // Min Pixel Ratio\n useEffect(() => {\n shaderMountRef.current?.setMinPixelRatio(minPixelRatio);\n }, [minPixelRatio, isInitialized]);\n\n // Frame\n useEffect(() => {\n shaderMountRef.current?.setFrame(frame);\n }, [frame, isInitialized]);\n\n return <div ref={useMergeRefs([divRef, forwardedRef])} {...divProps} />;\n }\n);\n\nShaderMount.displayName = 'ShaderMount';\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,9 @@
1
+ import { type ShaderComponentProps } from '../shader-mount.js';
2
+ import { type ColorPanelsParams, type ShaderPreset } from '@paper-design/shaders';
3
+ export interface ColorPanelsProps extends ShaderComponentProps, ColorPanelsParams {
4
+ }
5
+ type ColorPanelsPreset = ShaderPreset<ColorPanelsParams>;
6
+ export declare const defaultPreset: ColorPanelsPreset;
7
+ export declare const colorPanelsPresets: ColorPanelsPreset[];
8
+ export declare const ColorPanels: React.FC<ColorPanelsProps>;
9
+ export {};
@@ -0,0 +1,107 @@
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
+ colorPanelsFragmentShader,
12
+ ShaderFitOptions,
13
+ defaultObjectSizing
14
+ } from "@paper-design/shaders";
15
+ import { jsx } from "react/jsx-runtime";
16
+ const defaultPreset = {
17
+ name: "Default",
18
+ params: {
19
+ ...defaultObjectSizing,
20
+ speed: 1,
21
+ frame: 0,
22
+ colors: [
23
+ "hsla(15, 100%, 50%, 1)",
24
+ "hsla(170, 100%, 50%, 1)",
25
+ "hsla(260, 100%, 50%, 1)",
26
+ "hsla(65, 100%, 50%, 1)",
27
+ "hsla(280, 100%, 50%, 1)"
28
+ ],
29
+ colorBack: "hsla(0, 0%, 3%, 1)",
30
+ angle1: 0.1,
31
+ angle2: 0.1,
32
+ length: 1,
33
+ blur: 0.25,
34
+ fadeIn: 0.85,
35
+ fadeOut: 0.3,
36
+ gradient: 0,
37
+ density: 2
38
+ }
39
+ };
40
+ const colorPanelsPresets = [defaultPreset];
41
+ const ColorPanels = memo(function ColorPanelsImpl({
42
+ // Own props
43
+ speed = defaultPreset.params.speed,
44
+ frame = defaultPreset.params.frame,
45
+ colors = defaultPreset.params.colors,
46
+ colorBack = defaultPreset.params.colorBack,
47
+ angle1 = defaultPreset.params.angle1,
48
+ angle2 = defaultPreset.params.angle2,
49
+ length = defaultPreset.params.length,
50
+ blur = defaultPreset.params.blur,
51
+ fadeIn = defaultPreset.params.fadeIn,
52
+ fadeOut = defaultPreset.params.fadeOut,
53
+ density = defaultPreset.params.density,
54
+ gradient = defaultPreset.params.gradient,
55
+ // Sizing props
56
+ fit = defaultPreset.params.fit,
57
+ scale = defaultPreset.params.scale,
58
+ rotation = defaultPreset.params.rotation,
59
+ originX = defaultPreset.params.originX,
60
+ originY = defaultPreset.params.originY,
61
+ offsetX = defaultPreset.params.offsetX,
62
+ offsetY = defaultPreset.params.offsetY,
63
+ worldWidth = defaultPreset.params.worldWidth,
64
+ worldHeight = defaultPreset.params.worldHeight,
65
+ ...props
66
+ }) {
67
+ const uniforms = {
68
+ // Own uniforms
69
+ u_colors: colors.map(getShaderColorFromString),
70
+ u_colorsCount: colors.length,
71
+ u_colorBack: getShaderColorFromString(colorBack),
72
+ u_angle1: angle1,
73
+ u_angle2: angle2,
74
+ u_length: length,
75
+ u_blur: blur,
76
+ u_fadeIn: fadeIn,
77
+ u_fadeOut: fadeOut,
78
+ u_density: density,
79
+ u_gradient: gradient,
80
+ // Sizing uniforms
81
+ u_fit: ShaderFitOptions[fit],
82
+ u_scale: scale,
83
+ u_rotation: rotation,
84
+ u_offsetX: offsetX,
85
+ u_offsetY: offsetY,
86
+ u_originX: originX,
87
+ u_originY: originY,
88
+ u_worldWidth: worldWidth,
89
+ u_worldHeight: worldHeight
90
+ };
91
+ return /* @__PURE__ */ jsx(
92
+ ShaderMount,
93
+ {
94
+ ...props,
95
+ speed,
96
+ frame,
97
+ fragmentShader: colorPanelsFragmentShader,
98
+ uniforms
99
+ }
100
+ );
101
+ }, colorPropsAreEqual);
102
+ export {
103
+ ColorPanels,
104
+ colorPanelsPresets,
105
+ defaultPreset
106
+ };
107
+ //# sourceMappingURL=color-panels.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/color-panels.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 colorPanelsFragmentShader,\n ShaderFitOptions,\n type ColorPanelsUniforms,\n type ColorPanelsParams,\n type ShaderPreset,\n defaultObjectSizing,\n} from '@paper-design/shaders';\n\nexport interface ColorPanelsProps extends ShaderComponentProps, ColorPanelsParams {}\n\ntype ColorPanelsPreset = ShaderPreset<ColorPanelsParams>;\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: ColorPanelsPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colors: [\n 'hsla(15, 100%, 50%, 1)',\n 'hsla(170, 100%, 50%, 1)',\n 'hsla(260, 100%, 50%, 1)',\n 'hsla(65, 100%, 50%, 1)',\n 'hsla(280, 100%, 50%, 1)',\n ],\n colorBack: 'hsla(0, 0%, 3%, 1)',\n angle1: 0.1,\n angle2: 0.1,\n length: 1,\n blur: 0.25,\n fadeIn: 0.85,\n fadeOut: 0.3,\n gradient: 0,\n density: 2,\n },\n};\n\nexport const colorPanelsPresets: ColorPanelsPreset[] = [defaultPreset];\n\nexport const ColorPanels: React.FC<ColorPanelsProps> = memo(function ColorPanelsImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n colorBack = defaultPreset.params.colorBack,\n angle1 = defaultPreset.params.angle1,\n angle2 = defaultPreset.params.angle2,\n length = defaultPreset.params.length,\n blur = defaultPreset.params.blur,\n fadeIn = defaultPreset.params.fadeIn,\n fadeOut = defaultPreset.params.fadeOut,\n density = defaultPreset.params.density,\n gradient = defaultPreset.params.gradient,\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}: ColorPanelsProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_colorBack: getShaderColorFromString(colorBack),\n u_angle1: angle1,\n u_angle2: angle2,\n u_length: length,\n u_blur: blur,\n u_fadeIn: fadeIn,\n u_fadeOut: fadeOut,\n u_density: density,\n u_gradient: gradient,\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 ColorPanelsUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={colorPanelsFragmentShader}\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;AA2FH;AAjFG,MAAM,gBAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,MAAM,qBAA0C,CAAC,aAAa;AAE9D,MAAM,cAA0C,KAAK,SAAS,gBAAgB;AAAA;AAAA,EAEnF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,SAAS,cAAc,OAAO;AAAA,EAC9B,YAAY,cAAc,OAAO;AAAA,EACjC,SAAS,cAAc,OAAO;AAAA,EAC9B,SAAS,cAAc,OAAO;AAAA,EAC9B,SAAS,cAAc,OAAO;AAAA,EAC9B,OAAO,cAAc,OAAO;AAAA,EAC5B,SAAS,cAAc,OAAO;AAAA,EAC9B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,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,GAAqB;AACnB,QAAM,WAAW;AAAA;AAAA,IAEf,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,aAAa,yBAAyB,SAAS;AAAA,IAC/C,UAAU;AAAA,IACV,UAAU;AAAA,IACV,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,WAAW;AAAA,IACX,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,4 +1,4 @@
1
- import { type ShaderComponentProps } from '../shader-mount';
1
+ import { type ShaderComponentProps } from '../shader-mount.js';
2
2
  import { type DitheringParams, type ShaderPreset } from '@paper-design/shaders';
3
3
  export interface DitheringProps extends ShaderComponentProps, DitheringParams {
4
4
  }
@@ -4,14 +4,16 @@
4
4
  * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5
5
 
6
6
  import { memo } from "react";
7
- import { ShaderMount } from "../shader-mount";
7
+ import { ShaderMount } from "../shader-mount.js";
8
8
  import {
9
9
  getShaderColorFromString,
10
10
  ditheringFragmentShader,
11
11
  ShaderFitOptions,
12
12
  defaultPatternSizing,
13
- defaultObjectSizing
13
+ defaultObjectSizing,
14
+ DitheringTypes
14
15
  } from "@paper-design/shaders";
16
+ import { DitheringShapes } from "@paper-design/shaders";
15
17
  import { jsx } from "react/jsx-runtime";
16
18
  const defaultPreset = {
17
19
  name: "Default",
@@ -19,12 +21,11 @@ const defaultPreset = {
19
21
  ...defaultPatternSizing,
20
22
  speed: 1,
21
23
  frame: 0,
22
- color1: "hsla(240, 14%, 17%, 1)",
23
- color2: "hsla(34, 26%, 61%, 1)",
24
- shape: 1,
25
- type: 3,
26
- pxSize: 2,
27
- pxRounded: true
24
+ colorBack: "#252531",
25
+ colorFront: "#b59f82",
26
+ shape: "simplex",
27
+ type: "4x4",
28
+ pxSize: 2
28
29
  }
29
30
  };
30
31
  const warpPreset = {
@@ -33,12 +34,11 @@ const warpPreset = {
33
34
  ...defaultPatternSizing,
34
35
  speed: 1,
35
36
  frame: 0,
36
- color1: "hsla(195, 47%, 35%, 1)",
37
- color2: "hsla(171, 26%, 89%, 1)",
38
- shape: 2,
39
- type: 3,
40
- pxSize: 2,
41
- pxRounded: true
37
+ colorBack: "#2f6e83",
38
+ colorFront: "#dceae8",
39
+ shape: "warp",
40
+ type: "4x4",
41
+ pxSize: 2
42
42
  }
43
43
  };
44
44
  const sinePreset = {
@@ -47,12 +47,11 @@ const sinePreset = {
47
47
  ...defaultPatternSizing,
48
48
  speed: 1,
49
49
  frame: 0,
50
- color1: "hsla(318, 80%, 25%, 1)",
51
- color2: "hsla(184, 100%, 40%, 1)",
52
- shape: 4,
53
- type: 4,
54
- pxSize: 11,
55
- pxRounded: true
50
+ colorBack: "#730d54",
51
+ colorFront: "#00becc",
52
+ shape: "wave",
53
+ type: "4x4",
54
+ pxSize: 11
56
55
  }
57
56
  };
58
57
  const bugsPreset = {
@@ -61,12 +60,11 @@ const bugsPreset = {
61
60
  ...defaultPatternSizing,
62
61
  speed: 1,
63
62
  frame: 0,
64
- color1: "hsla(0, 0%, 0%, 1)",
65
- color2: "hsla(120, 100%, 25%, 1)",
66
- shape: 3,
67
- type: 1,
68
- pxSize: 9,
69
- pxRounded: true
63
+ colorBack: "#000000",
64
+ colorFront: "#008000",
65
+ shape: "dots",
66
+ type: "random",
67
+ pxSize: 9
70
68
  }
71
69
  };
72
70
  const ripplePreset = {
@@ -75,12 +73,11 @@ const ripplePreset = {
75
73
  ...defaultObjectSizing,
76
74
  speed: 1,
77
75
  frame: 0,
78
- color1: "hsla(20, 50%, 25%, 1)",
79
- color2: "hsla(20, 50%, 55%, 1)",
80
- shape: 5,
81
- type: 2,
82
- pxSize: 3,
83
- pxRounded: false
76
+ colorBack: "#603520",
77
+ colorFront: "#c67953",
78
+ shape: "ripple",
79
+ type: "2x2",
80
+ pxSize: 3
84
81
  }
85
82
  };
86
83
  const swirlPreset = {
@@ -89,28 +86,24 @@ const swirlPreset = {
89
86
  ...defaultObjectSizing,
90
87
  speed: 1,
91
88
  frame: 0,
92
- color1: "hsla(0, 0%, 0%, 1)",
93
- color2: "hsla(200, 26%, 20%, 1)",
94
- shape: 6,
95
- type: 4,
96
- pxSize: 2,
97
- pxRounded: false
89
+ colorBack: "#000000",
90
+ colorFront: "#263740",
91
+ shape: "swirl",
92
+ type: "8x8",
93
+ pxSize: 2
98
94
  }
99
95
  };
100
96
  const spherePreset = {
101
97
  name: "Sphere",
102
98
  params: {
103
99
  ...defaultObjectSizing,
104
- offsetX: -0.5,
105
- offsetY: 0.23,
106
100
  speed: 1,
107
101
  frame: 0,
108
- color1: "hsla(320, 26%, 15%, 1)",
109
- color2: "hsla(135, 30%, 30%, 1)",
110
- shape: 7,
111
- type: 3,
112
- pxSize: 2.5,
113
- pxRounded: true
102
+ colorBack: "#301c2a",
103
+ colorFront: "#366341",
104
+ shape: "sphere",
105
+ type: "4x4",
106
+ pxSize: 2.5
114
107
  }
115
108
  };
116
109
  const ditheringPresets = [
@@ -126,12 +119,11 @@ const Dithering = memo(function DitheringImpl({
126
119
  // Own props
127
120
  speed = defaultPreset.params.speed,
128
121
  frame = defaultPreset.params.frame,
129
- color1 = defaultPreset.params.color1,
130
- color2 = defaultPreset.params.color2,
122
+ colorBack = defaultPreset.params.colorBack,
123
+ colorFront = defaultPreset.params.colorFront,
131
124
  shape = defaultPreset.params.shape,
132
125
  type = defaultPreset.params.type,
133
126
  pxSize = defaultPreset.params.pxSize,
134
- pxRounded = defaultPreset.params.pxRounded,
135
127
  // Sizing props
136
128
  fit = defaultPreset.params.fit,
137
129
  scale = defaultPreset.params.scale,
@@ -146,12 +138,11 @@ const Dithering = memo(function DitheringImpl({
146
138
  }) {
147
139
  const uniforms = {
148
140
  // Own uniforms
149
- u_color1: getShaderColorFromString(color1),
150
- u_color2: getShaderColorFromString(color2),
151
- u_shape: shape,
152
- u_type: type,
141
+ u_colorBack: getShaderColorFromString(colorBack),
142
+ u_colorFront: getShaderColorFromString(colorFront),
143
+ u_shape: DitheringShapes[shape],
144
+ u_type: DitheringTypes[type],
153
145
  u_pxSize: pxSize,
154
- u_pxRounded: pxRounded,
155
146
  // Sizing uniforms
156
147
  u_fit: ShaderFitOptions[fit],
157
148
  u_scale: scale,