@paper-design/shaders-react 0.0.28 → 0.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/color-props-are-equal.d.ts +6 -0
  2. package/dist/color-props-are-equal.js +34 -0
  3. package/dist/color-props-are-equal.js.map +7 -0
  4. package/dist/index.d.ts +46 -41
  5. package/dist/index.js +90 -2
  6. package/dist/index.js.map +4 -4
  7. package/dist/shader-mount.d.ts +15 -13
  8. package/dist/shader-mount.js +120 -0
  9. package/dist/shader-mount.js.map +7 -0
  10. package/dist/shaders/dithering.d.ts +15 -0
  11. package/dist/shaders/dithering.js +179 -0
  12. package/dist/shaders/dithering.js.map +7 -0
  13. package/dist/shaders/dot-grid.d.ts +6 -20
  14. package/dist/shaders/dot-grid.js +230 -0
  15. package/dist/shaders/dot-grid.js.map +7 -0
  16. package/dist/shaders/dot-orbit.d.ts +6 -18
  17. package/dist/shaders/dot-orbit.js +77 -0
  18. package/dist/shaders/dot-orbit.js.map +7 -0
  19. package/dist/shaders/god-rays.d.ts +6 -22
  20. package/dist/shaders/god-rays.js +160 -0
  21. package/dist/shaders/god-rays.js.map +7 -0
  22. package/dist/shaders/grain-gradient.d.ts +16 -0
  23. package/dist/shaders/grain-gradient.js +197 -0
  24. package/dist/shaders/grain-gradient.js.map +7 -0
  25. package/dist/shaders/liquid-metal.d.ts +9 -0
  26. package/dist/shaders/liquid-metal.js +87 -0
  27. package/dist/shaders/liquid-metal.js.map +7 -0
  28. package/dist/shaders/mesh-gradient.d.ts +7 -15
  29. package/dist/shaders/mesh-gradient.js +104 -0
  30. package/dist/shaders/mesh-gradient.js.map +7 -0
  31. package/dist/shaders/metaballs.d.ts +6 -16
  32. package/dist/shaders/metaballs.js +72 -0
  33. package/dist/shaders/metaballs.js.map +7 -0
  34. package/dist/shaders/neuro-noise.d.ts +6 -14
  35. package/dist/shaders/neuro-noise.js +82 -0
  36. package/dist/shaders/neuro-noise.js.map +7 -0
  37. package/dist/shaders/perlin-noise.d.ts +6 -17
  38. package/dist/shaders/perlin-noise.js +183 -0
  39. package/dist/shaders/perlin-noise.js.map +7 -0
  40. package/dist/shaders/pulsing-border.d.ts +11 -0
  41. package/dist/shaders/pulsing-border.js +153 -0
  42. package/dist/shaders/pulsing-border.js.map +7 -0
  43. package/dist/shaders/simplex-noise.d.ts +9 -0
  44. package/dist/shaders/simplex-noise.js +80 -0
  45. package/dist/shaders/simplex-noise.js.map +7 -0
  46. package/dist/shaders/smoke-ring.d.ts +8 -18
  47. package/dist/shaders/smoke-ring.js +134 -0
  48. package/dist/shaders/smoke-ring.js.map +7 -0
  49. package/dist/shaders/spiral.d.ts +6 -23
  50. package/dist/shaders/spiral.js +218 -0
  51. package/dist/shaders/spiral.js.map +7 -0
  52. package/dist/shaders/swirl.d.ts +12 -0
  53. package/dist/shaders/swirl.js +137 -0
  54. package/dist/shaders/swirl.js.map +7 -0
  55. package/dist/shaders/voronoi.d.ts +7 -28
  56. package/dist/shaders/voronoi.js +102 -0
  57. package/dist/shaders/voronoi.js.map +7 -0
  58. package/dist/shaders/warp.d.ts +6 -23
  59. package/dist/shaders/warp.js +290 -0
  60. package/dist/shaders/warp.js.map +7 -0
  61. package/dist/shaders/waves.d.ts +6 -19
  62. package/dist/shaders/waves.js +178 -0
  63. package/dist/shaders/waves.js.map +7 -0
  64. package/dist/use-merge-refs.js +48 -0
  65. package/dist/use-merge-refs.js.map +7 -0
  66. package/package.json +13 -4
  67. package/dist/shaders/stepped-simplex-noise.d.ts +0 -20
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/dot-grid.tsx"],
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n getShaderColorFromString,\n dotGridFragmentShader,\n DotGridShapes,\n ShaderFitOptions,\n type DotGridParams,\n type DotGridUniforms,\n type ShaderPreset,\n defaultPatternSizing,\n} from '@paper-design/shaders';\n\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 interface DotGridProps extends ShaderComponentProps, DotGridParams {}\n\ntype DotGridPreset = ShaderPreset<DotGridParams>;\n\nexport const defaultPreset: DotGridPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n colorBack: 'hsla(0, 0%, 0%, 1)',\n colorFill: 'hsla(0, 0%, 100%, 1)',\n colorStroke: 'hsla(40, 100%, 50%, 1)',\n dotSize: 2,\n gridSpacingX: 50,\n gridSpacingY: 50,\n strokeWidth: 0,\n sizeRange: 0,\n opacityRange: 0,\n shape: 'circle',\n },\n};\n\nexport const macrodataPreset: DotGridPreset = {\n name: 'Macrodata',\n params: {\n ...defaultPatternSizing,\n colorBack: 'hsla(211, 37%, 13%, 1)',\n colorFill: 'hsla(218, 100%, 67%, 1)',\n colorStroke: 'hsla(0, 0%, 0%, 1)',\n dotSize: 3,\n gridSpacingX: 25,\n gridSpacingY: 25,\n strokeWidth: 0,\n sizeRange: 0.25,\n opacityRange: 0.9,\n shape: 'circle',\n },\n};\n\nconst trianglesPreset: DotGridPreset = {\n name: 'Triangles',\n params: {\n ...defaultPatternSizing,\n colorBack: 'hsla(0, 0%, 100%, 1)',\n colorFill: 'hsla(0, 0%, 100%, 1)',\n colorStroke: 'hsla(0, 0%, 0%, .5)',\n dotSize: 5,\n gridSpacingX: 32,\n gridSpacingY: 32,\n strokeWidth: 1,\n sizeRange: 0,\n opacityRange: 0,\n shape: 'triangle',\n },\n};\n\nconst bubblesPreset: DotGridPreset = {\n name: 'Bubbles',\n params: {\n ...defaultPatternSizing,\n colorBack: 'hsla(234, 100%, 31%, .5)',\n colorFill: 'hsla(100, 30%, 100%, 1)',\n colorStroke: 'hsla(0, 100%, 0%, 1)',\n dotSize: 28,\n gridSpacingX: 60,\n gridSpacingY: 60,\n strokeWidth: 12,\n sizeRange: 0.7,\n opacityRange: 1.3,\n shape: 'circle',\n },\n};\n\nconst treeLinePreset: DotGridPreset = {\n name: 'Tree line',\n params: {\n ...defaultPatternSizing,\n colorBack: 'hsla(100, 100%, 36%, .05)',\n colorFill: 'hsla(150, 80%, 10%, 1)',\n colorStroke: 'hsla(0, 0%, 0%, 1)',\n dotSize: 8,\n gridSpacingX: 20,\n gridSpacingY: 90,\n strokeWidth: 0,\n sizeRange: 1,\n opacityRange: 0.6,\n shape: 'circle',\n },\n};\n\nconst diamondsPreset: DotGridPreset = {\n name: 'Diamonds',\n params: {\n ...defaultPatternSizing,\n colorBack: 'hsla(0, 0%, 0%, 0)',\n colorFill: 'hsla(0, 100%, 50%, 1)',\n colorStroke: 'hsla(0, 0%, 0%, 1)',\n dotSize: 15,\n gridSpacingX: 30,\n gridSpacingY: 30,\n strokeWidth: 0,\n sizeRange: 0,\n opacityRange: 2,\n shape: 'diamond',\n },\n};\n\nconst wallpaperPreset: DotGridPreset = {\n name: 'Wallpaper',\n params: {\n ...defaultPatternSizing,\n colorBack: 'hsla(154, 33%, 19%, 1)',\n colorFill: 'hsla(0, 0%, 0%, 0)',\n colorStroke: 'hsla(36, 48%, 58%, 1)',\n dotSize: 9,\n gridSpacingX: 32,\n gridSpacingY: 32,\n strokeWidth: 1,\n sizeRange: 0,\n opacityRange: 0,\n shape: 'diamond',\n },\n};\n\nconst matrixPreset: DotGridPreset = {\n name: 'Enter the Matrix',\n params: {\n ...defaultPatternSizing,\n colorBack: 'hsla(0, 100%, 0%, 1)',\n colorFill: 'hsla(182, 100%, 64%, 1)',\n colorStroke: 'hsla(0, 100%, 100%, 0)',\n dotSize: 2,\n gridSpacingX: 10,\n gridSpacingY: 10,\n strokeWidth: 0.5,\n sizeRange: 0.25,\n opacityRange: 1,\n shape: 'triangle',\n },\n};\n\nconst waveformPreset: DotGridPreset = {\n name: 'Waveform',\n params: {\n ...defaultPatternSizing,\n colorBack: 'hsla(0, 100%, 100%, 1)',\n colorFill: 'hsla(227, 93%, 38%, 1)',\n colorStroke: 'hsla(0, 0%, 0%, 0)',\n dotSize: 100,\n gridSpacingX: 2,\n gridSpacingY: 215,\n strokeWidth: 0,\n sizeRange: 1,\n opacityRange: 0,\n shape: 'square',\n },\n};\n\nexport const dotGridPresets: DotGridPreset[] = [\n defaultPreset,\n macrodataPreset,\n trianglesPreset,\n bubblesPreset,\n treeLinePreset,\n diamondsPreset,\n wallpaperPreset,\n matrixPreset,\n waveformPreset,\n];\n\nexport const DotGrid: React.FC<DotGridProps> = memo(function DotGridImpl({\n // Own props\n colorBack = defaultPreset.params.colorBack,\n colorFill = defaultPreset.params.colorFill,\n colorStroke = defaultPreset.params.colorStroke,\n dotSize = defaultPreset.params.dotSize,\n gridSpacingX = defaultPreset.params.gridSpacingX,\n gridSpacingY = defaultPreset.params.gridSpacingY,\n strokeWidth = defaultPreset.params.strokeWidth,\n sizeRange = defaultPreset.params.sizeRange,\n opacityRange = defaultPreset.params.opacityRange,\n shape = defaultPreset.params.shape,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n\n // Other props\n maxPixelCount = 6016 * 3384, // Higher max resolution for this shader\n ...props\n}: DotGridProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorFill: getShaderColorFromString(colorFill),\n u_colorStroke: getShaderColorFromString(colorStroke),\n u_dotSize: dotSize,\n u_gridSpacingX: gridSpacingX,\n u_gridSpacingY: gridSpacingY,\n u_strokeWidth: strokeWidth,\n u_sizeRange: sizeRange,\n u_opacityRange: opacityRange,\n u_shape: DotGridShapes[shape],\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies DotGridUniforms;\n\n return (\n <ShaderMount {...props} maxPixelCount={maxPixelCount} fragmentShader={dotGridFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,21 +1,9 @@
1
- import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
- export type DotOrbitParams = {
3
- scale?: number;
4
- color1?: string;
5
- color2?: string;
6
- color3?: string;
7
- color4?: string;
8
- dotSize?: number;
9
- dotSizeRange?: number;
10
- spreading?: number;
11
- } & GlobalParams;
12
- export type DotOrbitProps = Omit<ShaderMountProps, 'fragmentShader'> & DotOrbitParams;
13
- type DotOrbitPreset = {
14
- name: string;
15
- params: Required<DotOrbitParams>;
16
- style?: React.CSSProperties;
17
- };
1
+ import { type ShaderComponentProps } from '../shader-mount';
2
+ import { type DotOrbitParams, type ShaderPreset } from '@paper-design/shaders';
3
+ export interface DotOrbitProps extends ShaderComponentProps, DotOrbitParams {
4
+ }
5
+ type DotOrbitPreset = ShaderPreset<DotOrbitParams>;
18
6
  export declare const defaultPreset: DotOrbitPreset;
19
7
  export declare const dotOrbitPresets: DotOrbitPreset[];
20
- export declare const DotOrbit: ({ scale, color1, color2, color3, color4, dotSize, dotSizeRange, spreading, ...props }: DotOrbitProps) => React.ReactElement;
8
+ export declare const DotOrbit: React.FC<DotOrbitProps>;
21
9
  export {};
@@ -0,0 +1,77 @@
1
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * *
2
+ * Paper Shaders *
3
+ * https://github.com/paper-design/shaders *
4
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5
+
6
+ import { memo } from "react";
7
+ import { ShaderMount } from "../shader-mount";
8
+ import { colorPropsAreEqual } from "../color-props-are-equal";
9
+ import {
10
+ getShaderColorFromString,
11
+ dotOrbitFragmentShader,
12
+ ShaderFitOptions,
13
+ defaultPatternSizing
14
+ } from "@paper-design/shaders";
15
+ import { jsx } from "react/jsx-runtime";
16
+ const defaultPreset = {
17
+ name: "Default",
18
+ params: {
19
+ ...defaultPatternSizing,
20
+ speed: 2,
21
+ frame: 0,
22
+ colors: ["hsla(200, 100%, 20%, 1)", "hsla(290, 100%, 70%, 1)"],
23
+ dotSize: 1,
24
+ dotSizeRange: 0,
25
+ spreading: 1,
26
+ stepsPerColor: 1
27
+ }
28
+ };
29
+ const dotOrbitPresets = [defaultPreset];
30
+ const DotOrbit = memo(function DotOrbitImpl({
31
+ // Own props
32
+ speed = defaultPreset.params.speed,
33
+ frame = defaultPreset.params.frame,
34
+ colors = defaultPreset.params.colors,
35
+ dotSize = defaultPreset.params.dotSize,
36
+ dotSizeRange = defaultPreset.params.dotSizeRange,
37
+ spreading = defaultPreset.params.spreading,
38
+ stepsPerColor = defaultPreset.params.stepsPerColor,
39
+ // Sizing props
40
+ fit = defaultPreset.params.fit,
41
+ scale = defaultPreset.params.scale,
42
+ rotation = defaultPreset.params.rotation,
43
+ originX = defaultPreset.params.originX,
44
+ originY = defaultPreset.params.originY,
45
+ offsetX = defaultPreset.params.offsetX,
46
+ offsetY = defaultPreset.params.offsetY,
47
+ worldWidth = defaultPreset.params.worldWidth,
48
+ worldHeight = defaultPreset.params.worldHeight,
49
+ ...props
50
+ }) {
51
+ const uniforms = {
52
+ // Own uniforms
53
+ u_colors: colors.map(getShaderColorFromString),
54
+ u_colorsCount: colors.length,
55
+ u_dotSize: dotSize,
56
+ u_dotSizeRange: dotSizeRange,
57
+ u_spreading: spreading,
58
+ u_stepsPerColor: stepsPerColor,
59
+ // Sizing uniforms
60
+ u_fit: ShaderFitOptions[fit],
61
+ u_scale: scale,
62
+ u_rotation: rotation,
63
+ u_offsetX: offsetX,
64
+ u_offsetY: offsetY,
65
+ u_originX: originX,
66
+ u_originY: originY,
67
+ u_worldWidth: worldWidth,
68
+ u_worldHeight: worldHeight
69
+ };
70
+ return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: dotOrbitFragmentShader, uniforms });
71
+ }, colorPropsAreEqual);
72
+ export {
73
+ DotOrbit,
74
+ defaultPreset,
75
+ dotOrbitPresets
76
+ };
77
+ //# sourceMappingURL=dot-orbit.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/dot-orbit.tsx"],
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n getShaderColorFromString,\n dotOrbitFragmentShader,\n ShaderFitOptions,\n type DotOrbitParams,\n type DotOrbitUniforms,\n type ShaderPreset,\n defaultPatternSizing,\n} from '@paper-design/shaders';\n\nexport interface DotOrbitProps extends ShaderComponentProps, DotOrbitParams {}\n\ntype DotOrbitPreset = ShaderPreset<DotOrbitParams>;\n\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: DotOrbitPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 2,\n frame: 0,\n colors: ['hsla(200, 100%, 20%, 1)', 'hsla(290, 100%, 70%, 1)'],\n dotSize: 1,\n dotSizeRange: 0,\n spreading: 1,\n stepsPerColor: 1,\n },\n};\n\nexport const dotOrbitPresets: DotOrbitPreset[] = [defaultPreset];\n\nexport const DotOrbit: React.FC<DotOrbitProps> = memo(function DotOrbitImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n dotSize = defaultPreset.params.dotSize,\n dotSizeRange = defaultPreset.params.dotSizeRange,\n spreading = defaultPreset.params.spreading,\n stepsPerColor = defaultPreset.params.stepsPerColor,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: DotOrbitProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_dotSize: dotSize,\n u_dotSizeRange: dotSizeRange,\n u_spreading: spreading,\n u_stepsPerColor: stepsPerColor,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies DotOrbitUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={dotOrbitFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,OACK;AAsEH;AA5DG,MAAM,gBAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,2BAA2B,yBAAyB;AAAA,IAC7D,SAAS;AAAA,IACT,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,EACjB;AACF;AAEO,MAAM,kBAAoC,CAAC,aAAa;AAExD,MAAM,WAAoC,KAAK,SAAS,aAAa;AAAA;AAAA,EAE1E,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,SAAS,cAAc,OAAO;AAAA,EAC9B,UAAU,cAAc,OAAO;AAAA,EAC/B,eAAe,cAAc,OAAO;AAAA,EACpC,YAAY,cAAc,OAAO;AAAA,EACjC,gBAAgB,cAAc,OAAO;AAAA;AAAA,EAGrC,MAAM,cAAc,OAAO;AAAA,EAC3B,QAAQ,cAAc,OAAO;AAAA,EAC7B,WAAW,cAAc,OAAO;AAAA,EAChC,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAkB;AAChB,QAAM,WAAW;AAAA;AAAA,IAEf,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,IAGjB,OAAO,iBAAiB,GAAG;AAAA,IAC3B,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE,oBAAC,eAAa,GAAG,OAAO,OAAc,OAAc,gBAAgB,wBAAwB,UAAoB;AAEpH,GAAG,kBAAkB;",
6
+ "names": []
7
+ }
@@ -1,29 +1,13 @@
1
- import { type GlobalParams, type ShaderMountProps } from '../shader-mount';
2
- export type GodRaysParams = {
3
- colorBack?: string;
4
- color1?: string;
5
- color2?: string;
6
- color3?: string;
7
- offsetX?: number;
8
- offsetY?: number;
9
- frequency?: number;
10
- spotty?: number;
11
- midIntensity?: number;
12
- midSize?: number;
13
- density?: number;
14
- blending?: number;
15
- } & GlobalParams;
16
- export type GodRaysProps = Omit<ShaderMountProps, 'fragmentShader'> & GodRaysParams;
17
- type GodRaysPreset = {
18
- name: string;
19
- params: Required<GodRaysParams>;
20
- style?: React.CSSProperties;
21
- };
1
+ import { type ShaderComponentProps } from '../shader-mount';
2
+ import { type GodRaysParams, type ShaderPreset } from '@paper-design/shaders';
3
+ export interface GodRaysProps extends ShaderComponentProps, GodRaysParams {
4
+ }
5
+ type GodRaysPreset = ShaderPreset<GodRaysParams>;
22
6
  export declare const defaultPreset: GodRaysPreset;
23
7
  export declare const auroraPreset: GodRaysPreset;
24
8
  export declare const warpPreset: GodRaysPreset;
25
9
  export declare const linearPreset: GodRaysPreset;
26
10
  export declare const etherPreset: GodRaysPreset;
27
11
  export declare const godRaysPresets: GodRaysPreset[];
28
- export declare const GodRays: ({ colorBack, color1, color2, color3, offsetX, offsetY, frequency, spotty, midIntensity, midSize, density, blending, ...props }: GodRaysProps) => React.ReactElement;
12
+ export declare const GodRays: React.FC<GodRaysProps>;
29
13
  export {};
@@ -0,0 +1,160 @@
1
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * *
2
+ * Paper Shaders *
3
+ * https://github.com/paper-design/shaders *
4
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5
+
6
+ import { memo } from "react";
7
+ import { ShaderMount } from "../shader-mount";
8
+ import { colorPropsAreEqual } from "../color-props-are-equal";
9
+ import {
10
+ defaultObjectSizing,
11
+ getShaderColorFromString,
12
+ godRaysFragmentShader,
13
+ ShaderFitOptions
14
+ } from "@paper-design/shaders";
15
+ import { jsx } from "react/jsx-runtime";
16
+ const defaultPreset = {
17
+ name: "Default",
18
+ params: {
19
+ ...defaultObjectSizing,
20
+ offsetX: -0.4,
21
+ offsetY: -0.4,
22
+ colorBack: "hsla(215, 100%, 11%, 1)",
23
+ colors: ["hsla(45, 100%, 70%, 1)", "hsla(10, 100%, 80%, 1)", "hsla(178, 100%, 83%, 1)"],
24
+ frequency: 6,
25
+ spotty: 0.28,
26
+ midIntensity: 1,
27
+ midSize: 3,
28
+ density: 0.3,
29
+ blending: 0,
30
+ speed: 1,
31
+ frame: 0
32
+ }
33
+ };
34
+ const auroraPreset = {
35
+ name: "Aurora",
36
+ params: {
37
+ ...defaultObjectSizing,
38
+ offsetY: 1,
39
+ colorBack: "hsla(0, 0%, 25%, 1)",
40
+ colors: ["hsla(239, 100%, 70%, 1)", "hsla(150, 100%, 70%, 1)", "hsla(200, 100%, 70%, 1)"],
41
+ frequency: 2.4,
42
+ spotty: 0.9,
43
+ midIntensity: 0.8,
44
+ midSize: 2.1,
45
+ density: 0.5,
46
+ blending: 1,
47
+ speed: 0.5,
48
+ frame: 0
49
+ }
50
+ };
51
+ const warpPreset = {
52
+ name: "Warp",
53
+ params: {
54
+ ...defaultObjectSizing,
55
+ colorBack: "hsla(0, 0%, 0%, 1)",
56
+ colors: ["hsla(317, 100%, 50%, 1)", "hsla(25, 100%, 50%, 1)", "hsla(0, 0%, 100%, 1)"],
57
+ frequency: 1.2,
58
+ spotty: 0.15,
59
+ midIntensity: 0,
60
+ midSize: 0,
61
+ density: 0.79,
62
+ blending: 0.4,
63
+ speed: 2,
64
+ frame: 0
65
+ }
66
+ };
67
+ const linearPreset = {
68
+ name: "Linear",
69
+ params: {
70
+ ...defaultObjectSizing,
71
+ offsetX: 0.2,
72
+ offsetY: -0.7,
73
+ colorBack: "hsla(0, 0%, 0%, 1)",
74
+ colors: ["hsl(0 0% 100% / 12%)", "hsl(0 0% 100% / 24%)", "hsl(0 0% 100% / 16%)"],
75
+ frequency: 1.2,
76
+ spotty: 0.25,
77
+ midSize: 1.1,
78
+ midIntensity: 0.75,
79
+ density: 0.79,
80
+ blending: 1,
81
+ speed: 0.5,
82
+ frame: 0
83
+ }
84
+ };
85
+ const etherPreset = {
86
+ name: "Ether",
87
+ params: {
88
+ ...defaultObjectSizing,
89
+ offsetX: -0.6,
90
+ colorBack: "hsl(226.7 50% 7.1% / 100%)",
91
+ colors: ["hsl(215 100% 53.9% / 65.1%)", "hsl(214.4 85.9% 86.1% / 74.9%)", "hsl(225 31.4% 20% / 100%)"],
92
+ frequency: 0.3,
93
+ spotty: 0.77,
94
+ midSize: 1.1,
95
+ midIntensity: 0.5,
96
+ density: 0.6,
97
+ blending: 0.6,
98
+ speed: 1,
99
+ frame: 0
100
+ }
101
+ };
102
+ const godRaysPresets = [defaultPreset, auroraPreset, warpPreset, linearPreset, etherPreset];
103
+ const GodRays = memo(function GodRaysImpl({
104
+ // Own props
105
+ speed = defaultPreset.params.speed,
106
+ frame = defaultPreset.params.frame,
107
+ colorBack = defaultPreset.params.colorBack,
108
+ colors = defaultPreset.params.colors,
109
+ frequency = defaultPreset.params.frequency,
110
+ spotty = defaultPreset.params.spotty,
111
+ midIntensity = defaultPreset.params.midIntensity,
112
+ midSize = defaultPreset.params.midSize,
113
+ density = defaultPreset.params.density,
114
+ blending = defaultPreset.params.blending,
115
+ // Sizing props
116
+ fit = defaultPreset.params.fit,
117
+ scale = defaultPreset.params.scale,
118
+ rotation = defaultPreset.params.rotation,
119
+ originX = defaultPreset.params.originX,
120
+ originY = defaultPreset.params.originY,
121
+ offsetX = defaultPreset.params.offsetX,
122
+ offsetY = defaultPreset.params.offsetY,
123
+ worldWidth = defaultPreset.params.worldWidth,
124
+ worldHeight = defaultPreset.params.worldHeight,
125
+ ...props
126
+ }) {
127
+ const uniforms = {
128
+ // Own uniforms
129
+ u_colorBack: getShaderColorFromString(colorBack),
130
+ u_colors: colors.map(getShaderColorFromString),
131
+ u_colorsCount: colors.length,
132
+ u_frequency: frequency,
133
+ u_spotty: spotty,
134
+ u_midIntensity: midIntensity,
135
+ u_midSize: midSize,
136
+ u_density: density,
137
+ u_blending: blending,
138
+ // Sizing uniforms
139
+ u_fit: ShaderFitOptions[fit],
140
+ u_scale: scale,
141
+ u_rotation: rotation,
142
+ u_offsetX: offsetX,
143
+ u_offsetY: offsetY,
144
+ u_originX: originX,
145
+ u_originY: originY,
146
+ u_worldWidth: worldWidth,
147
+ u_worldHeight: worldHeight
148
+ };
149
+ return /* @__PURE__ */ jsx(ShaderMount, { ...props, speed, frame, fragmentShader: godRaysFragmentShader, uniforms });
150
+ }, colorPropsAreEqual);
151
+ export {
152
+ GodRays,
153
+ auroraPreset,
154
+ defaultPreset,
155
+ etherPreset,
156
+ godRaysPresets,
157
+ linearPreset,
158
+ warpPreset
159
+ };
160
+ //# sourceMappingURL=god-rays.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/god-rays.tsx"],
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n godRaysFragmentShader,\n ShaderFitOptions,\n type GodRaysParams,\n type GodRaysUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface GodRaysProps extends ShaderComponentProps, GodRaysParams {}\n\ntype GodRaysPreset = ShaderPreset<GodRaysParams>;\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 highmidIntensity bug)\n\nexport const defaultPreset: GodRaysPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n offsetX: -0.4,\n offsetY: -0.4,\n colorBack: 'hsla(215, 100%, 11%, 1)',\n colors: ['hsla(45, 100%, 70%, 1)', 'hsla(10, 100%, 80%, 1)', 'hsla(178, 100%, 83%, 1)'],\n frequency: 6,\n spotty: 0.28,\n midIntensity: 1,\n midSize: 3,\n density: 0.3,\n blending: 0,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const auroraPreset: GodRaysPreset = {\n name: 'Aurora',\n params: {\n ...defaultObjectSizing,\n offsetY: 1,\n colorBack: 'hsla(0, 0%, 25%, 1)',\n colors: ['hsla(239, 100%, 70%, 1)', 'hsla(150, 100%, 70%, 1)', 'hsla(200, 100%, 70%, 1)'],\n frequency: 2.4,\n spotty: 0.9,\n midIntensity: 0.8,\n midSize: 2.1,\n density: 0.5,\n blending: 1,\n speed: 0.5,\n frame: 0,\n },\n};\n\nexport const warpPreset: GodRaysPreset = {\n name: 'Warp',\n params: {\n ...defaultObjectSizing,\n colorBack: 'hsla(0, 0%, 0%, 1)',\n colors: ['hsla(317, 100%, 50%, 1)', 'hsla(25, 100%, 50%, 1)', 'hsla(0, 0%, 100%, 1)'],\n frequency: 1.2,\n spotty: 0.15,\n midIntensity: 0,\n midSize: 0,\n density: 0.79,\n blending: 0.4,\n speed: 2,\n frame: 0,\n },\n};\n\nexport const linearPreset: GodRaysPreset = {\n name: 'Linear',\n params: {\n ...defaultObjectSizing,\n offsetX: 0.2,\n offsetY: -0.7,\n colorBack: 'hsla(0, 0%, 0%, 1)',\n colors: ['hsl(0 0% 100% / 12%)', 'hsl(0 0% 100% / 24%)', 'hsl(0 0% 100% / 16%)'],\n frequency: 1.2,\n spotty: 0.25,\n midSize: 1.1,\n midIntensity: 0.75,\n density: 0.79,\n blending: 1,\n speed: 0.5,\n frame: 0,\n },\n};\n\nexport const etherPreset: GodRaysPreset = {\n name: 'Ether',\n params: {\n ...defaultObjectSizing,\n offsetX: -0.6,\n colorBack: 'hsl(226.7 50% 7.1% / 100%)',\n colors: ['hsl(215 100% 53.9% / 65.1%)', 'hsl(214.4 85.9% 86.1% / 74.9%)', 'hsl(225 31.4% 20% / 100%)'],\n frequency: 0.3,\n spotty: 0.77,\n midSize: 1.1,\n midIntensity: 0.5,\n density: 0.6,\n blending: 0.6,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const godRaysPresets: GodRaysPreset[] = [defaultPreset, auroraPreset, warpPreset, linearPreset, etherPreset];\n\nexport const GodRays: React.FC<GodRaysProps> = memo(function GodRaysImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colors = defaultPreset.params.colors,\n frequency = defaultPreset.params.frequency,\n spotty = defaultPreset.params.spotty,\n midIntensity = defaultPreset.params.midIntensity,\n midSize = defaultPreset.params.midSize,\n density = defaultPreset.params.density,\n blending = defaultPreset.params.blending,\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}: GodRaysProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_frequency: frequency,\n u_spotty: spotty,\n u_midIntensity: midIntensity,\n u_midSize: midSize,\n u_density: density,\n u_blending: blending,\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 GodRaysUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={godRaysFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,16 @@
1
+ import { type ShaderComponentProps } from '../shader-mount';
2
+ import { type GrainGradientParams, type ShaderPreset } from '@paper-design/shaders';
3
+ export interface GrainGradientProps extends ShaderComponentProps, GrainGradientParams {
4
+ }
5
+ type GrainGradientPreset = ShaderPreset<GrainGradientParams>;
6
+ export declare const defaultPreset: GrainGradientPreset;
7
+ export declare const dotsPreset: GrainGradientPreset;
8
+ export declare const truchetPreset: GrainGradientPreset;
9
+ export declare const cornersPreset: GrainGradientPreset;
10
+ export declare const ripplePreset: GrainGradientPreset;
11
+ export declare const blobPreset: GrainGradientPreset;
12
+ export declare const spherePreset: GrainGradientPreset;
13
+ export declare const moonPreset: GrainGradientPreset;
14
+ export declare const grainGradientPresets: GrainGradientPreset[];
15
+ export declare const GrainGradient: React.FC<GrainGradientProps>;
16
+ export {};
@@ -0,0 +1,197 @@
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 {
9
+ getShaderColorFromString,
10
+ grainGradientFragmentShader,
11
+ ShaderFitOptions,
12
+ defaultPatternSizing,
13
+ defaultObjectSizing
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: ["hsla(210, 100%, 3%, 1)", "hsla(32, 89%, 40%, 1)", "hsla(46, 60%, 60%, 1)", "hsla(39, 28%, 81%, 1)"],
23
+ softness: 0.7,
24
+ intensity: 0.15,
25
+ noise: 0.5,
26
+ shape: 1
27
+ }
28
+ };
29
+ const dotsPreset = {
30
+ name: "Dots",
31
+ params: {
32
+ ...defaultPatternSizing,
33
+ scale: 0.6,
34
+ speed: 1,
35
+ frame: 0,
36
+ colors: ["hsla(0, 100%, 2%, 1)", "hsla(0, 100%, 22%, 1)", "hsla(210, 100%, 50%, 1)", "hsla(48, 52%, 90%, 1)"],
37
+ softness: 0.75,
38
+ intensity: 0.15,
39
+ noise: 0.7,
40
+ shape: 2
41
+ }
42
+ };
43
+ const truchetPreset = {
44
+ name: "Truchet",
45
+ params: {
46
+ ...defaultPatternSizing,
47
+ speed: 1,
48
+ frame: 0,
49
+ colors: ["hsla(0, 100%, 2%, 1)", "hsla(24, 100%, 22%, 1)", "hsla(35, 85%, 69%, 1)", "hsla(100, 52%, 45%, 1)"],
50
+ softness: 0,
51
+ intensity: 0.2,
52
+ noise: 1,
53
+ shape: 3
54
+ }
55
+ };
56
+ const cornersPreset = {
57
+ name: "Corners",
58
+ params: {
59
+ ...defaultObjectSizing,
60
+ speed: 1,
61
+ frame: 0,
62
+ colors: ["hsla(210, 80%, 6%, 1)", "hsla(200, 100%, 40%, 1)", "hsla(170, 100%, 50%, 1)", "hsla(50, 100%, 50%, 1)"],
63
+ softness: 0.4,
64
+ intensity: 0.35,
65
+ noise: 0.35,
66
+ shape: 4
67
+ }
68
+ };
69
+ const ripplePreset = {
70
+ name: "Ripple",
71
+ params: {
72
+ ...defaultObjectSizing,
73
+ scale: 0.5,
74
+ speed: 1,
75
+ frame: 0,
76
+ colors: ["hsla(30, 100%, 4%, 1)", "hsla(25, 100%, 22%, 1)", "hsla(140, 70%, 70%, 1)", "hsla(4305, 64%, 11%, 1)"],
77
+ softness: 0.5,
78
+ intensity: 0.5,
79
+ noise: 0.5,
80
+ shape: 5
81
+ }
82
+ };
83
+ const blobPreset = {
84
+ name: "Blob",
85
+ params: {
86
+ ...defaultObjectSizing,
87
+ scale: 1.3,
88
+ speed: 1,
89
+ frame: 0,
90
+ colors: ["hsla(240, 30%, 8%, 1)", "hsla(200, 30%, 35%, 1)", "hsla(50, 30%, 55%, 1)", "hsla(90, 25%, 45%, 1)"],
91
+ softness: 0,
92
+ intensity: 0.15,
93
+ noise: 0.5,
94
+ shape: 6
95
+ }
96
+ };
97
+ const spherePreset = {
98
+ name: "Sphere",
99
+ params: {
100
+ ...defaultObjectSizing,
101
+ speed: 1,
102
+ frame: 0,
103
+ colors: ["hsla(230, 100%, 5%, 1)", "hsla(210, 100%, 35%, 1)", "hsla(180, 95%, 60%, 1)", "hsla(130, 80%, 45%, 1)"],
104
+ softness: 1,
105
+ intensity: 0.15,
106
+ noise: 0.5,
107
+ shape: 7
108
+ }
109
+ };
110
+ const moonPreset = {
111
+ name: "Moon",
112
+ params: {
113
+ ...defaultObjectSizing,
114
+ scale: 0.6,
115
+ speed: 1,
116
+ frame: 0,
117
+ colors: ["hsla(0, 0%, 0%, 1)", "hsla(0, 0%, 0%, 1)", "hsla(240, 8%, 17%, 1)", "hsla(40, 100%, 90%, 1)"],
118
+ softness: 1,
119
+ intensity: 0.56,
120
+ noise: 1,
121
+ shape: 7
122
+ }
123
+ };
124
+ const grainGradientPresets = [
125
+ cornersPreset,
126
+ defaultPreset,
127
+ dotsPreset,
128
+ truchetPreset,
129
+ ripplePreset,
130
+ blobPreset,
131
+ spherePreset,
132
+ moonPreset
133
+ ];
134
+ const GrainGradient = memo(function GrainGradientImpl({
135
+ // Own props
136
+ speed = defaultPreset.params.speed,
137
+ frame = defaultPreset.params.frame,
138
+ colors = defaultPreset.params.colors,
139
+ softness = defaultPreset.params.softness,
140
+ intensity = defaultPreset.params.intensity,
141
+ noise = defaultPreset.params.noise,
142
+ shape = defaultPreset.params.shape,
143
+ // Sizing props
144
+ fit = defaultPreset.params.fit,
145
+ scale = defaultPreset.params.scale,
146
+ rotation = defaultPreset.params.rotation,
147
+ originX = defaultPreset.params.originX,
148
+ originY = defaultPreset.params.originY,
149
+ offsetX = defaultPreset.params.offsetX,
150
+ offsetY = defaultPreset.params.offsetY,
151
+ worldWidth = defaultPreset.params.worldWidth,
152
+ worldHeight = defaultPreset.params.worldHeight,
153
+ ...props
154
+ }) {
155
+ const uniforms = {
156
+ // Own uniforms
157
+ u_colors: colors.map(getShaderColorFromString),
158
+ u_colorsCount: colors.length,
159
+ u_softness: softness,
160
+ u_intensity: intensity,
161
+ u_noise: noise,
162
+ u_shape: shape,
163
+ // Sizing uniforms
164
+ u_fit: ShaderFitOptions[fit],
165
+ u_scale: scale,
166
+ u_rotation: rotation,
167
+ u_offsetX: offsetX,
168
+ u_offsetY: offsetY,
169
+ u_originX: originX,
170
+ u_originY: originY,
171
+ u_worldWidth: worldWidth,
172
+ u_worldHeight: worldHeight
173
+ };
174
+ return /* @__PURE__ */ jsx(
175
+ ShaderMount,
176
+ {
177
+ ...props,
178
+ speed,
179
+ frame,
180
+ fragmentShader: grainGradientFragmentShader,
181
+ uniforms
182
+ }
183
+ );
184
+ });
185
+ export {
186
+ GrainGradient,
187
+ blobPreset,
188
+ cornersPreset,
189
+ defaultPreset,
190
+ dotsPreset,
191
+ grainGradientPresets,
192
+ moonPreset,
193
+ ripplePreset,
194
+ spherePreset,
195
+ truchetPreset
196
+ };
197
+ //# sourceMappingURL=grain-gradient.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/grain-gradient.tsx"],
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport {\n getShaderColorFromString,\n grainGradientFragmentShader,\n ShaderFitOptions,\n type GrainGradientUniforms,\n type GrainGradientParams,\n type ShaderPreset,\n defaultPatternSizing,\n defaultObjectSizing,\n} from '@paper-design/shaders';\n\nexport interface GrainGradientProps extends ShaderComponentProps, GrainGradientParams {}\n\ntype GrainGradientPreset = ShaderPreset<GrainGradientParams>;\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: GrainGradientPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colors: ['hsla(210, 100%, 3%, 1)', 'hsla(32, 89%, 40%, 1)', 'hsla(46, 60%, 60%, 1)', 'hsla(39, 28%, 81%, 1)'],\n softness: 0.7,\n intensity: 0.15,\n noise: 0.5,\n shape: 1,\n },\n};\n\nexport const dotsPreset: GrainGradientPreset = {\n name: 'Dots',\n params: {\n ...defaultPatternSizing,\n scale: 0.6,\n speed: 1,\n frame: 0,\n colors: ['hsla(0, 100%, 2%, 1)', 'hsla(0, 100%, 22%, 1)', 'hsla(210, 100%, 50%, 1)', 'hsla(48, 52%, 90%, 1)'],\n softness: 0.75,\n intensity: 0.15,\n noise: 0.7,\n shape: 2,\n },\n};\n\nexport const truchetPreset: GrainGradientPreset = {\n name: 'Truchet',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colors: ['hsla(0, 100%, 2%, 1)', 'hsla(24, 100%, 22%, 1)', 'hsla(35, 85%, 69%, 1)', 'hsla(100, 52%, 45%, 1)'],\n softness: 0,\n intensity: 0.2,\n noise: 1,\n shape: 3,\n },\n};\n\nexport const cornersPreset: GrainGradientPreset = {\n name: 'Corners',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colors: ['hsla(210, 80%, 6%, 1)', 'hsla(200, 100%, 40%, 1)', 'hsla(170, 100%, 50%, 1)', 'hsla(50, 100%, 50%, 1)'],\n softness: 0.4,\n intensity: 0.35,\n noise: 0.35,\n shape: 4,\n },\n};\n\nexport const ripplePreset: GrainGradientPreset = {\n name: 'Ripple',\n params: {\n ...defaultObjectSizing,\n scale: 0.5,\n speed: 1,\n frame: 0,\n colors: ['hsla(30, 100%, 4%, 1)', 'hsla(25, 100%, 22%, 1)', 'hsla(140, 70%, 70%, 1)', 'hsla(4305, 64%, 11%, 1)'],\n softness: 0.5,\n intensity: 0.5,\n noise: 0.5,\n shape: 5,\n },\n};\n\nexport const blobPreset: GrainGradientPreset = {\n name: 'Blob',\n params: {\n ...defaultObjectSizing,\n scale: 1.3,\n speed: 1,\n frame: 0,\n colors: ['hsla(240, 30%, 8%, 1)', 'hsla(200, 30%, 35%, 1)', 'hsla(50, 30%, 55%, 1)', 'hsla(90, 25%, 45%, 1)'],\n softness: 0,\n intensity: 0.15,\n noise: 0.5,\n shape: 6,\n },\n};\n\nexport const spherePreset: GrainGradientPreset = {\n name: 'Sphere',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colors: ['hsla(230, 100%, 5%, 1)', 'hsla(210, 100%, 35%, 1)', 'hsla(180, 95%, 60%, 1)', 'hsla(130, 80%, 45%, 1)'],\n softness: 1,\n intensity: 0.15,\n noise: 0.5,\n shape: 7,\n },\n};\n\nexport const moonPreset: GrainGradientPreset = {\n name: 'Moon',\n params: {\n ...defaultObjectSizing,\n scale: 0.6,\n speed: 1,\n frame: 0,\n colors: ['hsla(0, 0%, 0%, 1)', 'hsla(0, 0%, 0%, 1)', 'hsla(240, 8%, 17%, 1)', 'hsla(40, 100%, 90%, 1)'],\n softness: 1,\n intensity: 0.56,\n noise: 1,\n shape: 7,\n },\n};\n\nexport const grainGradientPresets: GrainGradientPreset[] = [\n cornersPreset,\n defaultPreset,\n dotsPreset,\n truchetPreset,\n ripplePreset,\n blobPreset,\n spherePreset,\n moonPreset,\n];\n\nexport const GrainGradient: React.FC<GrainGradientProps> = memo(function GrainGradientImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n softness = defaultPreset.params.softness,\n intensity = defaultPreset.params.intensity,\n noise = defaultPreset.params.noise,\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}) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_softness: softness,\n u_intensity: intensity,\n u_noise: noise,\n u_shape: shape,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies GrainGradientUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={grainGradientFragmentShader}\n uniforms={uniforms}\n />\n );\n});\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,9 @@
1
+ import { type ShaderComponentProps } from '../shader-mount';
2
+ import { type LiquidMetalParams, type ShaderPreset } from '@paper-design/shaders';
3
+ export interface LiquidMetalProps extends ShaderComponentProps, LiquidMetalParams {
4
+ }
5
+ type LiquidMetalPreset = ShaderPreset<LiquidMetalParams>;
6
+ export declare const defaultPreset: LiquidMetalPreset;
7
+ export declare const liquidMetalPresets: LiquidMetalPreset[];
8
+ export declare const LiquidMetal: React.FC<LiquidMetalProps>;
9
+ export {};