@firecms/neat 0.8.0 → 0.9.1

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.
@@ -36,6 +36,7 @@ export declare class NeatGradient implements NeatController {
36
36
  private _grainSparsity;
37
37
  private _grainSpeed;
38
38
  private _colorBlending;
39
+ private _resolution;
39
40
  private _colors;
40
41
  private _wireframe;
41
42
  private _backgroundColor;
@@ -55,6 +56,7 @@ export declare class NeatGradient implements NeatController {
55
56
  private _textureColorBlending;
56
57
  private _textureSeed;
57
58
  private _textureEase;
59
+ private _transparentTextureVoid;
58
60
  private _domainWarpEnabled;
59
61
  private _domainWarpIntensity;
60
62
  private _domainWarpScale;
@@ -71,6 +73,31 @@ export declare class NeatGradient implements NeatController {
71
73
  private _bloomIntensity;
72
74
  private _bloomThreshold;
73
75
  private _chromaticAberration;
76
+ private _silhouetteFade;
77
+ private _cylinderFade;
78
+ private _ribbonFade;
79
+ private _flatShading;
80
+ private _shapeType;
81
+ private _shapeRotationX;
82
+ private _shapeRotationY;
83
+ private _shapeRotationZ;
84
+ private _shapeAutoRotateSpeedX;
85
+ private _shapeAutoRotateSpeedY;
86
+ private _sphereRadius;
87
+ private _torusRadius;
88
+ private _torusTube;
89
+ private _cylinderRadius;
90
+ private _cylinderHeight;
91
+ private _planeBend;
92
+ private _planeTwist;
93
+ private _cameraLock;
94
+ private _cameraX;
95
+ private _cameraY;
96
+ private _cameraZ;
97
+ private _cameraRotationX;
98
+ private _cameraRotationY;
99
+ private _cameraRotationZ;
100
+ private _cameraZoom;
74
101
  private _proceduralTexture;
75
102
  private _proceduralBackgroundColor;
76
103
  private _textureShapeTriangles;
@@ -86,12 +113,21 @@ export declare class NeatGradient implements NeatController {
86
113
  private _yOffsetWaveMultiplier;
87
114
  private _yOffsetColorMultiplier;
88
115
  private _yOffsetFlowMultiplier;
116
+ private _sourceCanvas;
117
+ private _sourceCtx;
118
+ private _maskedCanvas;
119
+ private _maskedCtx;
89
120
  private _resizeTimeoutId;
90
121
  private _textureNeedsUpdate;
91
122
  private _linkCheckCounter;
92
123
  private _colorsChanged;
93
124
  private _uniformsDirty;
94
125
  private _textureDirty;
126
+ private _yOffsetDirty;
127
+ private _modelViewMatrix;
128
+ private _isVisible;
129
+ private _visibilityObserver;
130
+ private _visibilityHandler;
95
131
  constructor(config: NeatConfig & {
96
132
  ref: HTMLCanvasElement;
97
133
  resolution?: number;
@@ -99,26 +135,67 @@ export declare class NeatGradient implements NeatController {
99
135
  });
100
136
  destroy(): void;
101
137
  downloadAsPNG(filename?: string): void;
138
+ /**
139
+ * Records the canvas animation as a video with a NEAT watermark overlay.
140
+ * @param options.durationMs Recording duration in milliseconds (default 5000).
141
+ * @param options.filename Output file name (default "neat.firecms.co").
142
+ * @param options.width Output video width in pixels (default: current canvas width).
143
+ * @param options.height Output video height in pixels (default: current canvas height).
144
+ * @param options.format Preferred format: 'mp4' or 'webm' (default: best available).
145
+ * @param options.onProgress Callback with progress 0-1.
146
+ * @param options.onComplete Callback when recording finishes.
147
+ * @returns A stop function to end recording early.
148
+ */
149
+ recordVideo(options?: {
150
+ durationMs?: number;
151
+ filename?: string;
152
+ width?: number;
153
+ height?: number;
154
+ format?: 'mp4' | 'webm';
155
+ onProgress?: (progress: number) => void;
156
+ onComplete?: () => void;
157
+ }): () => void;
158
+ get speed(): number;
102
159
  set speed(speed: number);
160
+ get horizontalPressure(): number;
103
161
  set horizontalPressure(horizontalPressure: number);
162
+ get verticalPressure(): number;
104
163
  set verticalPressure(verticalPressure: number);
164
+ get waveFrequencyX(): number;
105
165
  set waveFrequencyX(waveFrequencyX: number);
166
+ get waveFrequencyY(): number;
106
167
  set waveFrequencyY(waveFrequencyY: number);
168
+ get waveAmplitude(): number;
107
169
  set waveAmplitude(waveAmplitude: number);
170
+ get colors(): NeatColor[];
108
171
  set colors(colors: NeatColor[]);
172
+ get highlights(): number;
109
173
  set highlights(highlights: number);
174
+ get shadows(): number;
110
175
  set shadows(shadows: number);
176
+ get colorSaturation(): number;
111
177
  set colorSaturation(colorSaturation: number);
178
+ get colorBrightness(): number;
112
179
  set colorBrightness(colorBrightness: number);
180
+ get colorBlending(): number;
113
181
  set colorBlending(colorBlending: number);
182
+ get grainScale(): number;
114
183
  set grainScale(grainScale: number);
184
+ get grainIntensity(): number;
115
185
  set grainIntensity(grainIntensity: number);
186
+ get grainSparsity(): number;
116
187
  set grainSparsity(grainSparsity: number);
188
+ get grainSpeed(): number;
117
189
  set grainSpeed(grainSpeed: number);
190
+ get wireframe(): boolean;
118
191
  set wireframe(wireframe: boolean);
192
+ get resolution(): number;
119
193
  set resolution(resolution: number);
194
+ get backgroundColor(): string;
120
195
  set backgroundColor(backgroundColor: string);
196
+ get backgroundAlpha(): number;
121
197
  set backgroundAlpha(backgroundAlpha: number);
198
+ get yOffset(): number;
122
199
  set yOffset(yOffset: number);
123
200
  get yOffsetWaveMultiplier(): number;
124
201
  set yOffsetWaveMultiplier(value: number);
@@ -126,42 +203,127 @@ export declare class NeatGradient implements NeatController {
126
203
  set yOffsetColorMultiplier(value: number);
127
204
  get yOffsetFlowMultiplier(): number;
128
205
  set yOffsetFlowMultiplier(value: number);
206
+ get flowDistortionA(): number;
129
207
  set flowDistortionA(value: number);
208
+ get flowDistortionB(): number;
130
209
  set flowDistortionB(value: number);
210
+ get flowScale(): number;
131
211
  set flowScale(value: number);
212
+ get flowEase(): number;
132
213
  set flowEase(value: number);
133
214
  set flowEnabled(value: boolean);
134
215
  get flowEnabled(): boolean;
216
+ get enableProceduralTexture(): boolean;
135
217
  set enableProceduralTexture(value: boolean);
218
+ get textureVoidLikelihood(): number;
136
219
  set textureVoidLikelihood(value: number);
220
+ get textureVoidWidthMin(): number;
137
221
  set textureVoidWidthMin(value: number);
222
+ get textureVoidWidthMax(): number;
138
223
  set textureVoidWidthMax(value: number);
224
+ get textureBandDensity(): number;
139
225
  set textureBandDensity(value: number);
226
+ get textureColorBlending(): number;
140
227
  set textureColorBlending(value: number);
228
+ get textureSeed(): number;
141
229
  set textureSeed(value: number);
142
230
  get textureEase(): number;
143
231
  set textureEase(value: number);
232
+ get transparentTextureVoid(): boolean;
233
+ set transparentTextureVoid(value: boolean);
234
+ get proceduralBackgroundColor(): string;
144
235
  set proceduralBackgroundColor(value: string);
236
+ get textureShapeTriangles(): number;
145
237
  set textureShapeTriangles(value: number);
238
+ get textureShapeCircles(): number;
146
239
  set textureShapeCircles(value: number);
240
+ get textureShapeBars(): number;
147
241
  set textureShapeBars(value: number);
242
+ get textureShapeSquiggles(): number;
148
243
  set textureShapeSquiggles(value: number);
244
+ _updateGeometry(): void;
149
245
  _hexToRgb(hex: string): [number, number, number];
150
246
  _initScene(resolution: number): WebGLState;
151
247
  _createProceduralTexture(gl: WebGLRenderingContext | WebGL2RenderingContext): WebGLTexture | null;
248
+ get silhouetteFade(): number;
249
+ set silhouetteFade(value: number);
250
+ get cylinderFade(): number;
251
+ set cylinderFade(value: number);
252
+ get ribbonFade(): number;
253
+ set ribbonFade(value: number);
254
+ get flatShading(): boolean;
255
+ set flatShading(value: boolean);
256
+ get domainWarpEnabled(): boolean;
152
257
  set domainWarpEnabled(enabled: boolean);
258
+ get domainWarpIntensity(): number;
153
259
  set domainWarpIntensity(intensity: number);
260
+ get domainWarpScale(): number;
154
261
  set domainWarpScale(scale: number);
262
+ get vignetteIntensity(): number;
155
263
  set vignetteIntensity(intensity: number);
264
+ get vignetteRadius(): number;
156
265
  set vignetteRadius(radius: number);
266
+ get fresnelEnabled(): boolean;
157
267
  set fresnelEnabled(enabled: boolean);
268
+ get fresnelPower(): number;
158
269
  set fresnelPower(power: number);
270
+ get fresnelIntensity(): number;
159
271
  set fresnelIntensity(intensity: number);
272
+ get fresnelColor(): string;
160
273
  set fresnelColor(fresnelColor: string);
274
+ get iridescenceEnabled(): boolean;
161
275
  set iridescenceEnabled(enabled: boolean);
276
+ get iridescenceIntensity(): number;
162
277
  set iridescenceIntensity(intensity: number);
278
+ get iridescenceSpeed(): number;
163
279
  set iridescenceSpeed(speed: number);
280
+ get bloomIntensity(): number;
164
281
  set bloomIntensity(intensity: number);
282
+ get bloomThreshold(): number;
165
283
  set bloomThreshold(threshold: number);
284
+ get chromaticAberration(): number;
166
285
  set chromaticAberration(aberration: number);
286
+ get shapeType(): 'plane' | 'sphere' | 'torus' | 'cylinder' | 'ribbon';
287
+ set shapeType(val: 'plane' | 'sphere' | 'torus' | 'cylinder' | 'ribbon');
288
+ get shapeRotationX(): number;
289
+ set shapeRotationX(val: number);
290
+ get shapeRotationY(): number;
291
+ set shapeRotationY(val: number);
292
+ get shapeRotationZ(): number;
293
+ set shapeRotationZ(val: number);
294
+ get shapeAutoRotateSpeedX(): number;
295
+ set shapeAutoRotateSpeedX(val: number);
296
+ get shapeAutoRotateSpeedY(): number;
297
+ set shapeAutoRotateSpeedY(val: number);
298
+ get sphereRadius(): number;
299
+ set sphereRadius(val: number);
300
+ get torusRadius(): number;
301
+ set torusRadius(val: number);
302
+ get torusTube(): number;
303
+ set torusTube(val: number);
304
+ get cylinderRadius(): number;
305
+ set cylinderRadius(val: number);
306
+ get cylinderHeight(): number;
307
+ set cylinderHeight(val: number);
308
+ get planeBend(): number;
309
+ set planeBend(val: number);
310
+ get planeTwist(): number;
311
+ set planeTwist(val: number);
312
+ get cameraLock(): boolean;
313
+ set cameraLock(val: boolean);
314
+ get cameraX(): number;
315
+ set cameraX(val: number);
316
+ get cameraY(): number;
317
+ set cameraY(val: number);
318
+ get cameraZ(): number;
319
+ set cameraZ(val: number);
320
+ get cameraRotationX(): number;
321
+ set cameraRotationX(val: number);
322
+ get cameraRotationY(): number;
323
+ set cameraRotationY(val: number);
324
+ get cameraRotationZ(): number;
325
+ set cameraRotationZ(val: number);
326
+ get cameraZoom(): number;
327
+ set cameraZoom(val: number);
328
+ _updateCameraFrustum(): void;
167
329
  }