@paper-design/shaders-react 0.0.0-canary.7fc2fb35 → 0.0.0-canary.821d62d

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.
@@ -3,14 +3,14 @@ import { type ImageShaderPreset, type PaperTextureParams } from '@paper-design/s
3
3
  export interface PaperTextureProps extends ShaderComponentProps, PaperTextureParams {
4
4
  /** @deprecated use `fiberSize` instead */
5
5
  fiberScale?: number;
6
- /** @deprecated use `foldCount` instead */
6
+ /** @deprecated use `crumpleCount` instead */
7
7
  foldsNumber?: number;
8
8
  }
9
9
  type PaperTexturePreset = ImageShaderPreset<PaperTextureParams>;
10
10
  export declare const defaultPreset: PaperTexturePreset;
11
- export declare const gridPreset: PaperTexturePreset;
11
+ export declare const creasedPreset: PaperTexturePreset;
12
12
  export declare const spreadPreset: PaperTexturePreset;
13
- export declare const coloredPreset: PaperTexturePreset;
13
+ export declare const flatPreset: PaperTexturePreset;
14
14
  export declare const paperTexturePresets: PaperTexturePreset[];
15
15
  export declare const PaperTexture: React.FC<PaperTextureProps>;
16
16
  export {};
@@ -19,57 +19,65 @@ const defaultPreset = {
19
19
  params: {
20
20
  ...defaultObjectSizing,
21
21
  blending: 1,
22
- distortion: 0.5,
22
+ distortion: 0.75,
23
23
  fit: "contain",
24
24
  scale: 0.9,
25
25
  speed: 0,
26
26
  frame: 0,
27
+ colorBack: "#d3d2ab",
28
+ colorPaper: "#ffffffb5",
27
29
  colorShadow: "#b3b3b3",
28
- colorBack: "#ffffff",
29
- roughness: 0,
30
+ roughness: 0.4,
30
31
  roughnessSize: 0.25,
31
- fiber: 0.65,
32
+ roughnessRows: 0,
33
+ fiber: 0.4,
32
34
  fiberSize: 0.5,
33
- folds: 0.5,
34
- foldCount: 6,
35
- creases: 0,
36
- creaseSizeX: 0.6,
37
- creaseSizeY: 0.89,
38
- creaseOffsetX: 0,
39
- creaseOffsetY: 0,
40
- lightAngle: 300,
41
- drops: 0.7,
35
+ crumples: 0,
36
+ crumpleCount: 6,
37
+ wrinkles: 1,
38
+ wrinkleSize: 0.65,
39
+ folds: 0,
40
+ foldSizeX: 0.6,
41
+ foldSizeY: 0.44,
42
+ foldOffsetX: 0,
43
+ foldOffsetY: 0,
44
+ angle: 300,
45
+ drops: 1,
42
46
  seed: 234,
43
- background: true
47
+ clip: false
44
48
  }
45
49
  };
46
- const gridPreset = {
47
- name: "Grid",
50
+ const creasedPreset = {
51
+ name: "Creased",
48
52
  params: {
49
53
  ...defaultObjectSizing,
50
54
  blending: 1,
51
- distortion: 0.5,
55
+ distortion: -0.5,
52
56
  fit: "contain",
53
57
  scale: 0.9,
54
58
  speed: 0,
55
59
  frame: 0,
56
- colorShadow: "#605b52",
57
- colorBack: "#ffffff",
58
- roughness: 0.16,
60
+ colorBack: "#d3d2ab",
61
+ colorPaper: "#ffffff",
62
+ colorShadow: "#b3b3b3",
63
+ roughness: 0.4,
59
64
  roughnessSize: 0.25,
60
- fiber: 0.32,
65
+ roughnessRows: 0,
66
+ fiber: 0.4,
61
67
  fiberSize: 0.5,
68
+ crumples: 1,
69
+ crumpleCount: 7,
70
+ wrinkles: 0,
71
+ wrinkleSize: 0.65,
62
72
  folds: 0,
63
- foldCount: 12,
64
- creases: 0.25,
65
- creaseSizeX: 0.6,
66
- creaseSizeY: 0.89,
67
- creaseOffsetX: 0.59,
68
- creaseOffsetY: 1,
69
- lightAngle: 140,
73
+ foldSizeX: 0.6,
74
+ foldSizeY: 0.89,
75
+ foldOffsetX: 0.59,
76
+ foldOffsetY: 1,
77
+ angle: 236,
70
78
  drops: 0,
71
- seed: 613,
72
- background: true
79
+ seed: 185,
80
+ clip: false
73
81
  }
74
82
  };
75
83
  const spreadPreset = {
@@ -77,92 +85,104 @@ const spreadPreset = {
77
85
  params: {
78
86
  ...defaultObjectSizing,
79
87
  blending: 1,
80
- distortion: 0.38,
88
+ distortion: -0.3,
81
89
  fit: "contain",
82
90
  scale: 0.9,
83
91
  speed: 0,
84
92
  frame: 0,
85
- colorShadow: "#c2c2c2",
86
- colorBack: "#ffffff",
87
- roughness: 0.16,
93
+ colorBack: "#ffffff00",
94
+ colorPaper: "#ffffffb5",
95
+ colorShadow: "#b3b3b3",
96
+ roughness: 0.15,
88
97
  roughnessSize: 0.25,
89
- fiber: 0.62,
90
- fiberSize: 0.58,
91
- folds: 0.25,
92
- foldCount: 9,
93
- creases: 0.55,
94
- creaseSizeX: 0,
95
- creaseSizeY: 0.89,
96
- creaseOffsetX: 0,
97
- creaseOffsetY: 0,
98
- lightAngle: 88,
98
+ roughnessRows: 0,
99
+ fiber: 0.5,
100
+ fiberSize: 0.5,
101
+ crumples: 0,
102
+ crumpleCount: 9,
103
+ wrinkles: 0,
104
+ wrinkleSize: 0.65,
105
+ folds: 1,
106
+ foldSizeX: 0.4,
107
+ foldSizeY: 0.89,
108
+ foldOffsetX: 0,
109
+ foldOffsetY: 0,
110
+ angle: 236,
99
111
  drops: 0,
100
- seed: 563,
101
- background: false
112
+ seed: 613,
113
+ clip: true
102
114
  }
103
115
  };
104
- const coloredPreset = {
105
- name: "Colored",
116
+ const flatPreset = {
117
+ name: "Flat",
106
118
  params: {
107
119
  ...defaultObjectSizing,
108
120
  blending: 1,
109
- distortion: 0.5,
121
+ distortion: 0,
110
122
  fit: "contain",
111
123
  scale: 0.9,
112
124
  speed: 0,
113
125
  frame: 0,
114
- colorShadow: "#7654c9",
115
- colorBack: "#f5b689",
116
- roughness: 0,
117
- roughnessSize: 0.08,
118
- fiber: 0.52,
126
+ colorBack: "#d4cdab",
127
+ colorPaper: "#ffffffa8",
128
+ colorShadow: "#b3b3b3",
129
+ roughness: 1,
130
+ roughnessSize: 0.5,
131
+ roughnessRows: 0.6,
132
+ fiber: 0.7,
119
133
  fiberSize: 1,
134
+ crumples: 0,
135
+ crumpleCount: 6,
136
+ wrinkles: 0,
137
+ wrinkleSize: 0,
120
138
  folds: 0,
121
- foldCount: 12,
122
- creases: 0.43,
123
- creaseSizeX: 1,
124
- creaseSizeY: 0.89,
125
- creaseOffsetX: 0.62,
126
- creaseOffsetY: 0,
127
- lightAngle: 316,
128
- drops: 1,
129
- seed: 476,
130
- background: true
139
+ foldSizeX: 0,
140
+ foldSizeY: 0.44,
141
+ foldOffsetX: 0,
142
+ foldOffsetY: 0,
143
+ angle: 0,
144
+ drops: 0.5,
145
+ seed: 455,
146
+ clip: false
131
147
  }
132
148
  };
133
149
  const paperTexturePresets = [
134
150
  defaultPreset,
135
151
  spreadPreset,
136
- gridPreset,
137
- coloredPreset
152
+ creasedPreset,
153
+ flatPreset
138
154
  ];
139
155
  const PaperTexture = memo(function PaperTextureImpl({
140
156
  // Own props
141
157
  speed = defaultPreset.params.speed,
142
158
  frame = defaultPreset.params.frame,
143
- colorShadow = defaultPreset.params.colorShadow,
144
159
  colorBack = defaultPreset.params.colorBack,
160
+ colorPaper = defaultPreset.params.colorPaper,
161
+ colorShadow = defaultPreset.params.colorShadow,
145
162
  image = "",
146
163
  roughness = defaultPreset.params.roughness,
147
164
  roughnessSize = defaultPreset.params.roughnessSize,
165
+ roughnessRows = defaultPreset.params.roughnessRows,
148
166
  fiber = defaultPreset.params.fiber,
167
+ crumples = defaultPreset.params.crumples,
168
+ wrinkles = defaultPreset.params.wrinkles,
169
+ wrinkleSize = defaultPreset.params.wrinkleSize,
149
170
  folds = defaultPreset.params.folds,
150
- creases = defaultPreset.params.creases,
151
- creaseSizeX = defaultPreset.params.creaseSizeX,
152
- creaseSizeY = defaultPreset.params.creaseSizeY,
153
- creaseOffsetX = defaultPreset.params.creaseOffsetX,
154
- creaseOffsetY = defaultPreset.params.creaseOffsetY,
155
- lightAngle = defaultPreset.params.lightAngle,
171
+ foldSizeX = defaultPreset.params.foldSizeX,
172
+ foldSizeY = defaultPreset.params.foldSizeY,
173
+ foldOffsetX = defaultPreset.params.foldOffsetX,
174
+ foldOffsetY = defaultPreset.params.foldOffsetY,
175
+ angle = defaultPreset.params.angle,
156
176
  drops = defaultPreset.params.drops,
157
177
  seed = defaultPreset.params.seed,
158
178
  blending = defaultPreset.params.blending,
159
179
  distortion = defaultPreset.params.distortion,
160
- background = defaultPreset.params.background,
180
+ clip = defaultPreset.params.clip,
161
181
  // Reworked props
162
182
  fiberScale,
163
183
  fiberSize = fiberScale === void 0 ? defaultPreset.params.fiberSize : 0.2 / fiberScale,
164
184
  foldsNumber,
165
- foldCount = foldsNumber === void 0 ? defaultPreset.params.foldCount : foldsNumber,
185
+ crumpleCount = foldsNumber === void 0 ? defaultPreset.params.crumpleCount : foldsNumber,
166
186
  // Sizing props
167
187
  fit = defaultPreset.params.fit,
168
188
  scale = defaultPreset.params.scale,
@@ -180,25 +200,29 @@ const PaperTexture = memo(function PaperTextureImpl({
180
200
  // Own uniforms
181
201
  u_image: image,
182
202
  u_isImage: Boolean(image),
183
- u_colorShadow: getShaderColorFromString(colorShadow),
184
203
  u_colorBack: getShaderColorFromString(colorBack),
204
+ u_colorPaper: getShaderColorFromString(colorPaper),
205
+ u_colorShadow: getShaderColorFromString(colorShadow),
185
206
  u_roughness: roughness,
186
207
  u_roughnessSize: roughnessSize,
208
+ u_roughnessRows: roughnessRows,
187
209
  u_fiber: fiber,
188
210
  u_fiberSize: fiberSize,
189
- u_foldCount: foldCount,
190
- u_creaseSizeX: creaseSizeX,
191
- u_creaseSizeY: creaseSizeY,
192
- u_creaseOffsetX: creaseOffsetX,
193
- u_creaseOffsetY: creaseOffsetY,
194
- u_lightAngle: lightAngle,
211
+ u_crumpleCount: crumpleCount,
212
+ u_foldSizeX: foldSizeX,
213
+ u_foldSizeY: foldSizeY,
214
+ u_foldOffsetX: foldOffsetX,
215
+ u_foldOffsetY: foldOffsetY,
216
+ u_angle: angle,
217
+ u_crumples: crumples,
218
+ u_wrinkles: wrinkles,
219
+ u_wrinkleSize: wrinkleSize,
195
220
  u_folds: folds,
196
- u_creases: creases,
197
221
  u_drops: drops,
198
222
  u_seed: seed,
199
223
  u_blending: blending,
200
224
  u_distortion: distortion,
201
- u_background: background,
225
+ u_clip: clip,
202
226
  ...noiseTexture,
203
227
  // Sizing uniforms
204
228
  u_fit: ShaderFitOptions[fit],
@@ -225,9 +249,9 @@ const PaperTexture = memo(function PaperTextureImpl({
225
249
  }, colorPropsAreEqual);
226
250
  export {
227
251
  PaperTexture,
228
- coloredPreset,
252
+ creasedPreset,
229
253
  defaultPreset,
230
- gridPreset,
254
+ flatPreset,
231
255
  paperTexturePresets,
232
256
  spreadPreset
233
257
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/shaders/paper-texture.tsx"],
4
- "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n getShaderNoiseTexture,\n paperTextureFragmentShader,\n ShaderFitOptions,\n type ImageShaderPreset,\n type PaperTextureParams,\n type PaperTextureUniforms,\n} from '@paper-design/shaders';\n\nexport interface PaperTextureProps extends ShaderComponentProps, PaperTextureParams {\n /** @deprecated use `fiberSize` instead */\n fiberScale?: number;\n /** @deprecated use `foldCount` instead */\n foldsNumber?: number;\n}\n\ntype PaperTexturePreset = ImageShaderPreset<PaperTextureParams>;\n\nexport const defaultPreset: PaperTexturePreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n blending: 1,\n distortion: 0.5,\n fit: 'contain',\n scale: 0.9,\n speed: 0,\n frame: 0,\n colorShadow: '#b3b3b3',\n colorBack: '#ffffff',\n roughness: 0,\n roughnessSize: 0.25,\n fiber: 0.65,\n fiberSize: 0.5,\n folds: 0.5,\n foldCount: 6,\n creases: 0,\n creaseSizeX: 0.6,\n creaseSizeY: 0.89,\n creaseOffsetX: 0,\n creaseOffsetY: 0,\n lightAngle: 300,\n drops: 0.7,\n seed: 234,\n background: true,\n },\n};\n\nexport const gridPreset: PaperTexturePreset = {\n name: 'Grid',\n params: {\n ...defaultObjectSizing,\n blending: 1,\n distortion: 0.5,\n fit: 'contain',\n scale: 0.9,\n speed: 0,\n frame: 0,\n colorShadow: '#605b52',\n colorBack: '#ffffff',\n roughness: 0.16,\n roughnessSize: 0.25,\n fiber: 0.32,\n fiberSize: 0.5,\n folds: 0,\n foldCount: 12,\n creases: 0.25,\n creaseSizeX: 0.6,\n creaseSizeY: 0.89,\n creaseOffsetX: 0.59,\n creaseOffsetY: 1,\n lightAngle: 140,\n drops: 0,\n seed: 613,\n background: true,\n },\n};\n\nexport const spreadPreset: PaperTexturePreset = {\n name: 'Spread',\n params: {\n ...defaultObjectSizing,\n blending: 1,\n distortion: 0.38,\n fit: 'contain',\n scale: 0.9,\n speed: 0,\n frame: 0,\n colorShadow: '#c2c2c2',\n colorBack: '#ffffff',\n roughness: 0.16,\n roughnessSize: 0.25,\n fiber: 0.62,\n fiberSize: 0.58,\n folds: 0.25,\n foldCount: 9,\n creases: 0.55,\n creaseSizeX: 0,\n creaseSizeY: 0.89,\n creaseOffsetX: 0,\n creaseOffsetY: 0,\n lightAngle: 88,\n drops: 0,\n seed: 563,\n background: false,\n },\n};\n\nexport const coloredPreset: PaperTexturePreset = {\n name: 'Colored',\n params: {\n ...defaultObjectSizing,\n blending: 1,\n distortion: 0.5,\n fit: 'contain',\n scale: 0.9,\n speed: 0,\n frame: 0,\n colorShadow: '#7654c9',\n colorBack: '#f5b689',\n roughness: 0,\n roughnessSize: 0.08,\n fiber: 0.52,\n fiberSize: 1,\n folds: 0,\n foldCount: 12,\n creases: 0.43,\n creaseSizeX: 1,\n creaseSizeY: 0.89,\n creaseOffsetX: 0.62,\n creaseOffsetY: 0,\n lightAngle: 316,\n drops: 1,\n seed: 476,\n background: true,\n },\n};\n\nexport const paperTexturePresets: PaperTexturePreset[] = [\n defaultPreset,\n spreadPreset,\n gridPreset,\n coloredPreset,\n] as const;\n\nexport const PaperTexture: React.FC<PaperTextureProps> = memo(function PaperTextureImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorShadow = defaultPreset.params.colorShadow,\n colorBack = defaultPreset.params.colorBack,\n image = '',\n roughness = defaultPreset.params.roughness,\n roughnessSize = defaultPreset.params.roughnessSize,\n fiber = defaultPreset.params.fiber,\n folds = defaultPreset.params.folds,\n creases = defaultPreset.params.creases,\n creaseSizeX = defaultPreset.params.creaseSizeX,\n creaseSizeY = defaultPreset.params.creaseSizeY,\n creaseOffsetX = defaultPreset.params.creaseOffsetX,\n creaseOffsetY = defaultPreset.params.creaseOffsetY,\n lightAngle = defaultPreset.params.lightAngle,\n drops = defaultPreset.params.drops,\n seed = defaultPreset.params.seed,\n blending = defaultPreset.params.blending,\n distortion = defaultPreset.params.distortion,\n background = defaultPreset.params.background,\n\n // Reworked props\n fiberScale,\n fiberSize = fiberScale === undefined ? defaultPreset.params.fiberSize : 0.2 / fiberScale,\n foldsNumber,\n foldCount = foldsNumber === undefined ? defaultPreset.params.foldCount : foldsNumber,\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}: PaperTextureProps) {\n const noiseTexture = typeof window !== 'undefined' && { u_noiseTexture: getShaderNoiseTexture() };\n\n const uniforms = {\n // Own uniforms\n u_image: image,\n u_isImage: Boolean(image),\n u_colorShadow: getShaderColorFromString(colorShadow),\n u_colorBack: getShaderColorFromString(colorBack),\n u_roughness: roughness,\n u_roughnessSize: roughnessSize,\n u_fiber: fiber,\n u_fiberSize: fiberSize,\n u_foldCount: foldCount,\n u_creaseSizeX: creaseSizeX,\n u_creaseSizeY: creaseSizeY,\n u_creaseOffsetX: creaseOffsetX,\n u_creaseOffsetY: creaseOffsetY,\n u_lightAngle: lightAngle,\n u_folds: folds,\n u_creases: creases,\n u_drops: drops,\n u_seed: seed,\n u_blending: blending,\n u_distortion: distortion,\n u_background: background,\n ...noiseTexture,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies PaperTextureUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={paperTextureFragmentShader}\n mipmaps={['u_image']}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n getShaderNoiseTexture,\n paperTextureFragmentShader,\n ShaderFitOptions,\n type ImageShaderPreset,\n type PaperTextureParams,\n type PaperTextureUniforms,\n} from '@paper-design/shaders';\n\nexport interface PaperTextureProps extends ShaderComponentProps, PaperTextureParams {\n /** @deprecated use `fiberSize` instead */\n fiberScale?: number;\n /** @deprecated use `crumpleCount` instead */\n foldsNumber?: number;\n}\n\ntype PaperTexturePreset = ImageShaderPreset<PaperTextureParams>;\n\nexport const defaultPreset: PaperTexturePreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n blending: 1,\n distortion: 0.75,\n fit: 'contain',\n scale: 0.9,\n speed: 0,\n frame: 0,\n colorBack: '#d3d2ab',\n colorPaper: '#ffffffb5',\n colorShadow: '#b3b3b3',\n roughness: 0.4,\n roughnessSize: 0.25,\n roughnessRows: 0,\n fiber: 0.4,\n fiberSize: 0.5,\n crumples: 0,\n crumpleCount: 6,\n wrinkles: 1,\n wrinkleSize: 0.65,\n folds: 0,\n foldSizeX: 0.6,\n foldSizeY: 0.44,\n foldOffsetX: 0,\n foldOffsetY: 0,\n angle: 300,\n drops: 1,\n seed: 234,\n clip: false,\n },\n};\n\nexport const creasedPreset: PaperTexturePreset = {\n name: 'Creased',\n params: {\n ...defaultObjectSizing,\n blending: 1,\n distortion: -0.5,\n fit: 'contain',\n scale: 0.9,\n speed: 0,\n frame: 0,\n colorBack: '#d3d2ab',\n colorPaper: '#ffffff',\n colorShadow: '#b3b3b3',\n roughness: 0.4,\n roughnessSize: 0.25,\n roughnessRows: 0,\n fiber: 0.4,\n fiberSize: 0.5,\n crumples: 1,\n crumpleCount: 7,\n wrinkles: 0,\n wrinkleSize: 0.65,\n folds: 0,\n foldSizeX: 0.6,\n foldSizeY: 0.89,\n foldOffsetX: 0.59,\n foldOffsetY: 1,\n angle: 236,\n drops: 0,\n seed: 185,\n clip: false,\n },\n};\n\nexport const spreadPreset: PaperTexturePreset = {\n name: 'Spread',\n params: {\n ...defaultObjectSizing,\n blending: 1,\n distortion: -0.3,\n fit: 'contain',\n scale: 0.9,\n speed: 0,\n frame: 0,\n colorBack: '#ffffff00',\n colorPaper: '#ffffffb5',\n colorShadow: '#b3b3b3',\n roughness: 0.15,\n roughnessSize: 0.25,\n roughnessRows: 0,\n fiber: 0.5,\n fiberSize: 0.5,\n crumples: 0,\n crumpleCount: 9,\n wrinkles: 0,\n wrinkleSize: 0.65,\n folds: 1,\n foldSizeX: 0.4,\n foldSizeY: 0.89,\n foldOffsetX: 0,\n foldOffsetY: 0,\n angle: 236,\n drops: 0,\n seed: 613,\n clip: true,\n },\n};\n\nexport const flatPreset: PaperTexturePreset = {\n name: 'Flat',\n params: {\n ...defaultObjectSizing,\n blending: 1,\n distortion: 0,\n fit: 'contain',\n scale: 0.9,\n speed: 0,\n frame: 0,\n colorBack: '#d4cdab',\n colorPaper: '#ffffffa8',\n colorShadow: '#b3b3b3',\n roughness: 1,\n roughnessSize: 0.5,\n roughnessRows: 0.6,\n fiber: 0.7,\n fiberSize: 1,\n crumples: 0,\n crumpleCount: 6,\n wrinkles: 0,\n wrinkleSize: 0,\n folds: 0,\n foldSizeX: 0,\n foldSizeY: 0.44,\n foldOffsetX: 0,\n foldOffsetY: 0,\n angle: 0,\n drops: 0.5,\n seed: 455,\n clip: false,\n },\n};\n\nexport const paperTexturePresets: PaperTexturePreset[] = [\n defaultPreset,\n spreadPreset,\n creasedPreset,\n flatPreset,\n] as const;\n\nexport const PaperTexture: React.FC<PaperTextureProps> = memo(function PaperTextureImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colorPaper = defaultPreset.params.colorPaper,\n colorShadow = defaultPreset.params.colorShadow,\n image = '',\n roughness = defaultPreset.params.roughness,\n roughnessSize = defaultPreset.params.roughnessSize,\n roughnessRows = defaultPreset.params.roughnessRows,\n fiber = defaultPreset.params.fiber,\n crumples = defaultPreset.params.crumples,\n wrinkles = defaultPreset.params.wrinkles,\n wrinkleSize = defaultPreset.params.wrinkleSize,\n folds = defaultPreset.params.folds,\n foldSizeX = defaultPreset.params.foldSizeX,\n foldSizeY = defaultPreset.params.foldSizeY,\n foldOffsetX = defaultPreset.params.foldOffsetX,\n foldOffsetY = defaultPreset.params.foldOffsetY,\n angle = defaultPreset.params.angle,\n drops = defaultPreset.params.drops,\n seed = defaultPreset.params.seed,\n blending = defaultPreset.params.blending,\n distortion = defaultPreset.params.distortion,\n clip = defaultPreset.params.clip,\n\n // Reworked props\n fiberScale,\n fiberSize = fiberScale === undefined ? defaultPreset.params.fiberSize : 0.2 / fiberScale,\n foldsNumber,\n crumpleCount = foldsNumber === undefined ? defaultPreset.params.crumpleCount : foldsNumber,\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}: PaperTextureProps) {\n const noiseTexture = typeof window !== 'undefined' && { u_noiseTexture: getShaderNoiseTexture() };\n\n const uniforms = {\n // Own uniforms\n u_image: image,\n u_isImage: Boolean(image),\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorPaper: getShaderColorFromString(colorPaper),\n u_colorShadow: getShaderColorFromString(colorShadow),\n u_roughness: roughness,\n u_roughnessSize: roughnessSize,\n u_roughnessRows: roughnessRows,\n u_fiber: fiber,\n u_fiberSize: fiberSize,\n u_crumpleCount: crumpleCount,\n u_foldSizeX: foldSizeX,\n u_foldSizeY: foldSizeY,\n u_foldOffsetX: foldOffsetX,\n u_foldOffsetY: foldOffsetY,\n u_angle: angle,\n u_crumples: crumples,\n u_wrinkles: wrinkles,\n u_wrinkleSize: wrinkleSize,\n u_folds: folds,\n u_drops: drops,\n u_seed: seed,\n u_blending: blending,\n u_distortion: distortion,\n u_clip: clip,\n ...noiseTexture,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies PaperTextureUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={paperTextureFragmentShader}\n mipmaps={['u_image']}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paper-design/shaders-react",
3
- "version": "0.0.0-canary.7fc2fb35",
3
+ "version": "0.0.0-canary.821d62d",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -26,7 +26,7 @@
26
26
  "type-check": "tsc --project tsconfig.json"
27
27
  },
28
28
  "dependencies": {
29
- "@paper-design/shaders": "0.0.0-canary.7fc2fb35"
29
+ "@paper-design/shaders": "0.0.0-canary.821d62d"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/react": "19.1.0"