@firecms/neat 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,10 +22,12 @@ export type NeatConfig = {
22
22
  colorBlending?: number;
23
23
  grainScale?: number;
24
24
  grainIntensity?: number;
25
+ grainSparsity?: number;
25
26
  grainSpeed?: number;
26
27
  wireframe?: boolean;
27
28
  backgroundColor?: string;
28
29
  backgroundAlpha?: number;
30
+ yOffset?: number;
29
31
  };
30
32
  export type NeatColor = {
31
33
  color: string;
@@ -52,6 +54,7 @@ export declare class NeatGradient implements NeatController {
52
54
  private _brightness;
53
55
  private _grainScale;
54
56
  private _grainIntensity;
57
+ private _grainSparsity;
55
58
  private _grainSpeed;
56
59
  private _colorBlending;
57
60
  private _colors;
@@ -61,12 +64,14 @@ export declare class NeatGradient implements NeatController {
61
64
  private requestRef;
62
65
  private sizeObserver;
63
66
  private sceneState;
67
+ private _yOffset;
64
68
  constructor(config: NeatConfig & {
65
69
  ref: HTMLCanvasElement;
66
70
  resolution?: number;
67
71
  seed?: number;
68
72
  });
69
73
  destroy(): void;
74
+ downloadAsPNG(filename?: string): void;
70
75
  set speed(speed: number);
71
76
  set horizontalPressure(horizontalPressure: number);
72
77
  set verticalPressure(verticalPressure: number);
@@ -81,11 +86,13 @@ export declare class NeatGradient implements NeatController {
81
86
  set colorBlending(colorBlending: number);
82
87
  set grainScale(grainScale: number);
83
88
  set grainIntensity(grainIntensity: number);
89
+ set grainSparsity(grainSparsity: number);
84
90
  set grainSpeed(grainSpeed: number);
85
91
  set wireframe(wireframe: boolean);
86
92
  set resolution(resolution: number);
87
93
  set backgroundColor(backgroundColor: string);
88
94
  set backgroundAlpha(backgroundAlpha: number);
95
+ set yOffset(yOffset: number);
89
96
  _initScene(resolution: number): SceneState;
90
97
  _buildMaterial(width: number, height: number): THREE.ShaderMaterial;
91
98
  }
@@ -19,6 +19,7 @@ export class NeatGradient {
19
19
  _brightness = -1;
20
20
  _grainScale = -1;
21
21
  _grainIntensity = -1;
22
+ _grainSparsity = -1;
22
23
  _grainSpeed = -1;
23
24
  _colorBlending = -1;
24
25
  _colors = [];
@@ -28,8 +29,9 @@ export class NeatGradient {
28
29
  requestRef = -1;
29
30
  sizeObserver;
30
31
  sceneState;
32
+ _yOffset = 0;
31
33
  constructor(config) {
32
- const { ref, speed = 4, horizontalPressure = 3, verticalPressure = 3, waveFrequencyX = 5, waveFrequencyY = 5, waveAmplitude = 3, colors, highlights = 4, shadows = 4, colorSaturation = 0, colorBrightness = 1, colorBlending = 5, grainScale = 2, grainIntensity = 0.55, grainSpeed = 0.1, wireframe = false, backgroundColor = "#FFFFFF", backgroundAlpha = 1.0, resolution = 1, seed } = config;
34
+ const { ref, speed = 4, horizontalPressure = 3, verticalPressure = 3, waveFrequencyX = 5, waveFrequencyY = 5, waveAmplitude = 3, colors, highlights = 4, shadows = 4, colorSaturation = 0, colorBrightness = 1, colorBlending = 5, grainScale = 2, grainIntensity = 0.55, grainSparsity = 0.0, grainSpeed = 0.1, wireframe = false, backgroundColor = "#FFFFFF", backgroundAlpha = 1.0, resolution = 1, seed, yOffset = 0 } = config;
33
35
  this._ref = ref;
34
36
  this.destroy = this.destroy.bind(this);
35
37
  this._initScene = this._initScene.bind(this);
@@ -43,6 +45,7 @@ export class NeatGradient {
43
45
  this.colorBlending = colorBlending;
44
46
  this.grainScale = grainScale;
45
47
  this.grainIntensity = grainIntensity;
48
+ this.grainSparsity = grainSparsity;
46
49
  this.grainSpeed = grainSpeed;
47
50
  this.colors = colors;
48
51
  this.shadows = shadows;
@@ -52,6 +55,7 @@ export class NeatGradient {
52
55
  this.wireframe = wireframe;
53
56
  this.backgroundColor = backgroundColor;
54
57
  this.backgroundAlpha = backgroundAlpha;
58
+ this.yOffset = yOffset;
55
59
  this.sceneState = this._initScene(resolution);
56
60
  let tick = seed !== undefined ? seed : getElapsedSecondsInLastHour();
57
61
  const render = () => {
@@ -111,10 +115,14 @@ export class NeatGradient {
111
115
  // @ts-ignore
112
116
  mesh.material.uniforms.u_grain_intensity = { value: this._grainIntensity };
113
117
  // @ts-ignore
118
+ mesh.material.uniforms.u_grain_sparsity = { value: this._grainSparsity };
119
+ // @ts-ignore
114
120
  mesh.material.uniforms.u_grain_speed = { value: this._grainSpeed };
115
121
  // @ts-ignore
116
122
  mesh.material.uniforms.u_grain_scale = { value: this._grainScale };
117
123
  // @ts-ignore
124
+ mesh.material.uniforms.u_y_offset = { value: this._yOffset };
125
+ // @ts-ignore
118
126
  mesh.material.wireframe = this._wireframe;
119
127
  });
120
128
  renderer.render(scene, camera);
@@ -140,6 +148,12 @@ export class NeatGradient {
140
148
  this.sizeObserver.disconnect();
141
149
  }
142
150
  }
151
+ downloadAsPNG(filename = "neat.png") {
152
+ console.log("Downloading as PNG", this._ref);
153
+ const dataURL = this._ref.toDataURL("image/png");
154
+ console.log("data", dataURL);
155
+ downloadURI(dataURL, filename);
156
+ }
143
157
  set speed(speed) {
144
158
  this._speed = speed / 20;
145
159
  }
@@ -182,6 +196,9 @@ export class NeatGradient {
182
196
  set grainIntensity(grainIntensity) {
183
197
  this._grainIntensity = grainIntensity;
184
198
  }
199
+ set grainSparsity(grainSparsity) {
200
+ this._grainSparsity = grainSparsity;
201
+ }
185
202
  set grainSpeed(grainSpeed) {
186
203
  this._grainSpeed = grainSpeed;
187
204
  }
@@ -197,11 +214,15 @@ export class NeatGradient {
197
214
  set backgroundAlpha(backgroundAlpha) {
198
215
  this._backgroundAlpha = backgroundAlpha;
199
216
  }
217
+ set yOffset(yOffset) {
218
+ this._yOffset = yOffset;
219
+ }
200
220
  _initScene(resolution) {
201
221
  const width = this._ref.width, height = this._ref.height;
202
222
  const renderer = new THREE.WebGLRenderer({
203
223
  // antialias: true,
204
224
  alpha: true,
225
+ preserveDrawingBuffer: true,
205
226
  canvas: this._ref
206
227
  });
207
228
  renderer.setClearColor(0xFF0000, .5);
@@ -253,6 +274,7 @@ export class NeatGradient {
253
274
  u_shadows: { value: this._shadows },
254
275
  u_highlights: { value: this._highlights },
255
276
  u_grain_intensity: { value: this._grainIntensity },
277
+ u_grain_sparsity: { value: this._grainSparsity },
256
278
  u_grain_scale: { value: this._grainScale },
257
279
  u_grain_speed: { value: this._grainSpeed },
258
280
  };
@@ -305,26 +327,31 @@ void main() {
305
327
  u_wave_frequency_y * position.y + u_time,
306
328
  u_time
307
329
  ));
308
-
330
+
309
331
  vec3 color;
310
332
 
311
333
  // float t = mod(u_base_color, 100.0);
312
334
  color = u_colors[0].color;
313
-
335
+
336
+ // Apply y_offset to the noise coordinates
314
337
  vec2 noise_cord = vUv * u_color_pressure;
315
-
338
+ // Apply the y-offset to shift the pattern vertically (1:1 pixel ratio)
339
+ // Scale the offset to match the UV coordinate space
340
+ float scaledOffset = u_y_offset / u_resolution.y;
341
+ noise_cord.y -= scaledOffset;
342
+
316
343
  const float minNoise = .0;
317
344
  const float maxNoise = .9;
318
-
345
+
319
346
  for (int i = 1; i < u_colors_count; i++) {
320
-
347
+
321
348
  if(u_colors[i].is_active == 1.0){
322
349
  float noiseFlow = (1. + float(i)) / 30.;
323
350
  float noiseSpeed = (1. + float(i)) * 0.11;
324
351
  float noiseSeed = 13. + float(i) * 7.;
325
-
352
+
326
353
  int reverseIndex = u_colors_count - i;
327
-
354
+
328
355
  float noise = snoise(
329
356
  vec3(
330
357
  noise_cord.x * u_color_pressure.x + u_time * noiseFlow * 2.,
@@ -332,25 +359,18 @@ void main() {
332
359
  u_time * noiseSpeed
333
360
  ) + noiseSeed
334
361
  ) - (.1 * float(i)) + (.5 * u_color_blending);
335
-
362
+
336
363
  noise = clamp(minNoise, maxNoise + float(i) * 0.02, noise);
337
364
  vec3 nextColor = u_colors[i].color;
338
365
  color = mix(color, nextColor, smoothstep(0.0, u_color_blending, noise));
339
-
340
- // vec3 colorOklab = oklab2rgb(color);
341
- // vec3 nextColorOklab = oklab2rgb(nextColor);
342
- // vec3 mixColor = mix(colorOklab, nextColorOklab, smoothstep(0.0, u_color_blending, noise));
343
- // color = rgb2oklab(mixColor);
344
-
345
366
  }
346
-
347
367
  }
348
-
368
+
349
369
  v_color = color;
350
-
370
+
351
371
  vec3 newPosition = position + normal * v_displacement_amount * u_wave_amplitude;
352
- gl_Position = projectionMatrix * modelViewMatrix * vec4( newPosition, 1.0 );
353
-
372
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0);
373
+
354
374
  v_new_position = gl_Position;
355
375
  }
356
376
  `;
@@ -365,7 +385,6 @@ float fbm(vec3 x) {
365
385
  float value = 0.0;
366
386
  float amplitude = 0.5;
367
387
  float frequency = 1.0;
368
-
369
388
  for (int i = 0; i < 4; i++) {
370
389
  value += amplitude * snoise(x * frequency);
371
390
  frequency *= 2.0;
@@ -373,35 +392,34 @@ float fbm(vec3 x) {
373
392
  }
374
393
  return value;
375
394
  }
376
-
377
- void main(){
395
+
396
+ void main() {
378
397
  vec3 color = v_color;
379
-
380
398
  color += pow(v_displacement_amount, 1.0) * u_highlights;
381
399
  color -= pow(1.0 - v_displacement_amount, 2.0) * u_shadows;
382
400
  color = saturation(color, 1.0 + u_saturation);
383
401
  color = color * u_brightness;
384
-
402
+
385
403
  // Generate grain using fbm
386
404
  vec2 noiseCoords = gl_FragCoord.xy / u_grain_scale;
387
-
388
- float grain = (u_grain_speed != 0.0)
389
- ? fbm(vec3(noiseCoords, u_time * u_grain_speed))
390
- : fbm(vec3(noiseCoords, 0.0));
405
+ float grain = (u_grain_speed != 0.0) ? fbm(vec3(noiseCoords, u_time * u_grain_speed)) : fbm(vec3(noiseCoords, 0.0));
391
406
 
392
407
  // Center the grain around zero
393
408
  grain = grain * 0.5 + 0.5;
394
409
  grain -= 0.5;
395
410
 
411
+ // Add sparsity control
412
+ grain = (grain > u_grain_sparsity) ? grain : 0.0;
413
+
396
414
  // Apply grain intensity
397
415
  grain *= u_grain_intensity;
398
416
 
399
417
  // Add grain to color
400
418
  color += vec3(grain);
401
-
402
- gl_FragColor = vec4(color,1.0);
419
+
420
+ gl_FragColor = vec4(color, 1.0);
403
421
  }
404
- `;
422
+ `;
405
423
  }
406
424
  const buildUniforms = () => `
407
425
  precision highp float;
@@ -413,6 +431,7 @@ struct Color {
413
431
  };
414
432
 
415
433
  uniform float u_grain_intensity;
434
+ uniform float u_grain_sparsity;
416
435
  uniform float u_grain_scale;
417
436
  uniform float u_grain_speed;
418
437
  uniform float u_time;
@@ -437,6 +456,8 @@ uniform int u_colors_count;
437
456
  uniform Color u_colors[5];
438
457
  uniform vec2 u_resolution;
439
458
 
459
+ uniform float u_y_offset;
460
+
440
461
  varying vec2 vUv;
441
462
  varying vec4 v_new_position;
442
463
  varying vec3 v_color;
@@ -745,4 +766,12 @@ function generateRandomString(length = 6) {
745
766
  }
746
767
  return result;
747
768
  }
769
+ function downloadURI(uri, name) {
770
+ const link = document.createElement("a");
771
+ link.download = name;
772
+ link.href = uri;
773
+ document.body.appendChild(link);
774
+ link.click();
775
+ document.body.removeChild(link);
776
+ }
748
777
  //# sourceMappingURL=NeatGradient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeatGradient.js","sourceRoot":"","sources":["../src/NeatGradient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AAEhC,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;AA6CvC,MAAM,OAAO,YAAY;IAEb,IAAI,CAAoB;IAExB,MAAM,GAAW,CAAC,CAAC,CAAC;IAEpB,mBAAmB,GAAW,CAAC,CAAC,CAAC;IACjC,iBAAiB,GAAW,CAAC,CAAC,CAAC;IAE/B,eAAe,GAAW,CAAC,CAAC,CAAC;IAC7B,eAAe,GAAW,CAAC,CAAC,CAAC;IAC7B,cAAc,GAAW,CAAC,CAAC,CAAC;IAE5B,QAAQ,GAAW,CAAC,CAAC,CAAC;IACtB,WAAW,GAAW,CAAC,CAAC,CAAC;IACzB,WAAW,GAAW,CAAC,CAAC,CAAC;IACzB,WAAW,GAAW,CAAC,CAAC,CAAC;IAEzB,WAAW,GAAW,CAAC,CAAC,CAAC;IACzB,eAAe,GAAW,CAAC,CAAC,CAAC;IAC7B,WAAW,GAAW,CAAC,CAAC,CAAC;IAEzB,cAAc,GAAW,CAAC,CAAC,CAAC;IAE5B,OAAO,GAAgB,EAAE,CAAC;IAC1B,UAAU,GAAY,KAAK,CAAC;IAE5B,gBAAgB,GAAW,SAAS,CAAC;IACrC,gBAAgB,GAAW,GAAG,CAAC;IAE/B,UAAU,GAAW,CAAC,CAAC,CAAC;IACxB,YAAY,CAAiB;IAC7B,UAAU,CAAa;IAE/B,YAAY,MAAmF;QAE3F,MAAM,EACF,GAAG,EACH,KAAK,GAAG,CAAC,EACT,kBAAkB,GAAG,CAAC,EACtB,gBAAgB,GAAG,CAAC,EACpB,cAAc,GAAG,CAAC,EAClB,cAAc,GAAG,CAAC,EAClB,aAAa,GAAG,CAAC,EACjB,MAAM,EACN,UAAU,GAAG,CAAC,EACd,OAAO,GAAG,CAAC,EACX,eAAe,GAAG,CAAC,EACnB,eAAe,GAAG,CAAC,EACnB,aAAa,GAAG,CAAC,EACjB,UAAU,GAAG,CAAC,EACd,cAAc,GAAG,IAAI,EACrB,UAAU,GAAG,GAAG,EAChB,SAAS,GAAG,KAAK,EACjB,eAAe,GAAG,SAAS,EAC3B,eAAe,GAAG,GAAG,EACrB,UAAU,GAAG,CAAC,EACd,IAAI,EACP,GAAG,MAAM,CAAC;QAGX,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAEhB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,GAAG,EAAE;YAEhB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5D,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjC,WAAW,CAAC,GAAG,CAAC,CAAC;aACpB;YAED,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EACzB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAE9B,MAAM,MAAM,GAAG;oBACX,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBACxB,IAAI,UAAU,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBACnC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACrC,OAAO,CAAC;4BACJ,SAAS,EAAE,KAAK,CAAC,OAAO;4BACxB,KAAK,EAAE,UAAU;4BACjB,SAAS,EAAE,KAAK,CAAC,SAAS;yBAC7B,CAAC,CAAC;oBACP,CAAC,CAAC;oBACF,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;wBACrE,SAAS,EAAE,KAAK;wBAChB,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;qBACnC,CAAC,CAAC;iBACN,CAAC;gBAEF,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACvC,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC3C,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;gBAClF,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACzH,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5E,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5E,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzE,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;gBAC9D,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;gBAChE,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzE,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBACpD,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;gBAChE,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5D,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClE,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClE,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClE,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC3E,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnE,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnE,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE;YAEjB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;YACnC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;YAEnC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACvD,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;YAC7C,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAG/B,MAAM,EAAE,CAAC;IACb,CAAC;IAED,OAAO;QACH,IAAI,IAAI,EAAE;YACN,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;SAClC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,kBAAkB,CAAC,kBAA0B;QAC7C,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,gBAAgB,CAAC,gBAAwB;QACzC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,cAAc,CAAC,cAAsB;QACrC,IAAI,CAAC,eAAe,GAAG,cAAc,GAAG,IAAI,CAAC;IACjD,CAAC;IAED,IAAI,cAAc,CAAC,cAAsB;QACrC,IAAI,CAAC,eAAe,GAAG,cAAc,GAAG,IAAI,CAAC;IACjD,CAAC;IAED,IAAI,aAAa,CAAC,aAAqB;QACnC,IAAI,CAAC,cAAc,GAAG,aAAa,GAAG,GAAG,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM,CAAC,MAAmB;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,UAAkB;QAC7B,IAAI,CAAC,WAAW,GAAG,UAAU,GAAG,GAAG,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,CAAC,OAAe;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,GAAG,CAAC;IAClC,CAAC;IAED,IAAI,eAAe,CAAC,eAAuB;QACvC,IAAI,CAAC,WAAW,GAAG,eAAe,GAAG,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,eAAe,CAAC,eAAuB;QACvC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;IACvC,CAAC;IAED,IAAI,aAAa,CAAC,aAAqB;QACnC,IAAI,CAAC,cAAc,GAAG,aAAa,GAAG,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,UAAU,CAAC,UAAkB;QAC7B,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACxD,CAAC;IAED,IAAI,cAAc,CAAC,cAAsB;QACrC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IAC1C,CAAC;IAED,IAAI,UAAU,CAAC,UAAkB;QAC7B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED,IAAI,SAAS,CAAC,SAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,IAAI,UAAU,CAAC,UAAkB;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,eAAe,CAAC,eAAuB;QACvC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC5C,CAAC;IAED,IAAI,eAAe,CAAC,eAAuB;QACvC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,UAAkB;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EACzB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAE9B,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC;YACrC,mBAAmB;YACnB,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI,CAAC,IAAI;SACpB,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEpD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,YAAY,EAAE,GAAG,GAAG,UAAU,EAAE,GAAG,GAAG,UAAU,CAAC,CAAC;QACnG,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5C,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;QAClC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEjB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1E,0GAA0G;QAC1G,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEpC,OAAO;YACH,QAAQ;YACR,MAAM;YACN,KAAK;YACL,MAAM;YACN,UAAU;SACb,CAAC;IACN,CAAC;IAED,cAAc,CAAC,KAAa,EAAE,MAAc;QAExC,MAAM,MAAM,GAAG;YACX,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC1B,SAAS,EAAE,KAAK,CAAC,OAAO;gBACxB,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBACnC,SAAS,EAAE,KAAK,CAAC,SAAS;aAC7B,CAAC,CAAC;YACH,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;gBACrE,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;aACnC,CAAC,CAAC;SACN,CAAC;QAEF,MAAM,QAAQ,GAAG;YACb,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACpB,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE;YAChG,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE;YACnD,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE;YACnD,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE;YAChD,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;YACzD,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;YAC3B,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9C,aAAa,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;YACrC,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;YACvC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;YACnC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;YACzC,iBAAiB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE;YAClD,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;YAC1C,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;SAC7C,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC;YACtC,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,GAAG,mBAAmB,EAAE,GAAG,iBAAiB,EAAE;YAC1F,cAAc,EAAE,aAAa,EAAE,GAAG,mBAAmB,EAAE,GAAG,UAAU,EAAE,GAAG,mBAAmB,EAAE;SACjG,CAAC,CAAC;QAEH,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,OAAO,QAAQ,CAAC;IACpB,CAAC;CAGJ;AAED,SAAS,YAAY,CAAC,MAAoB,EAAE,KAAa,EAAE,MAAc;IAErE,MAAM,iBAAiB,GAAG,OAAO,CAAC;IAClC,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,CAAC;IACpC,MAAM,eAAe,GACjB,YAAY,GAAG,iBAAiB;QAChC,WAAW,GAAG,YAAY,GAAG,GAAG,CAAC;IAErC,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAE7B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,eAAe,GAAG,WAAW,CAAC;IAEnD,MAAM,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,GAAG,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,YAAY,GAAG,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAErE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;IAClB,MAAM,GAAG,GAAG,IAAI,CAAC;IACjB,IAAI,MAAM,YAAY,KAAK,CAAC,kBAAkB,EAAE;QAC5C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,MAAM,CAAC,sBAAsB,EAAE,CAAC;KACnC;SAAM,IAAI,MAAM,YAAY,KAAK,CAAC,iBAAiB,EAAE;QAClD,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;QAC/B,MAAM,CAAC,sBAAsB,EAAE,CAAC;KACnC;AAEL,CAAC;AAGD,SAAS,iBAAiB;IACtB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DV,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB;IACxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CV,CAAC;AACF,CAAC;AAED,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCvB,CAAC;AAEN,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkNpB,CAAC;AAEN,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CjC,CAAC;AAGF,MAAM,aAAa,GAAG,CAAC,IAAuB,EAAE,EAAE;IAC9C,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;IAClB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACtC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;AAC5B,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,GAAsB,EAAE,EAAE;IAC3C,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACnE,IAAI,aAAa,EAAE;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE;gBACjC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,OAAO;aACV;SACJ;KACJ;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC,CAAA;AAED,SAAS,2BAA2B;IAChC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;IACjC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;AACpC,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB,CAAC;IAC5C,MAAM,UAAU,GAAG,gEAAgE,CAAC;IACpF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;KAC5C;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"NeatGradient.js","sourceRoot":"","sources":["../src/NeatGradient.ts"],"names":[],"mappings":"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"}