@clypra/engine 1.2.1 → 1.3.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.
- package/dist/index.cjs +1056 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1391 -10
- package/dist/index.d.ts +1391 -10
- package/dist/index.js +1027 -25
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.d.cts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
1
3
|
declare const SCENE_VERSION: 1;
|
|
2
4
|
/** Default canvas width in pixels. */
|
|
3
5
|
declare const DEFAULT_CANVAS_WIDTH: 800;
|
|
@@ -209,12 +211,100 @@ interface EffectIndexItem {
|
|
|
209
211
|
description?: string;
|
|
210
212
|
tags?: string[];
|
|
211
213
|
isPremium?: boolean;
|
|
212
|
-
previewType?:
|
|
214
|
+
previewType?: "static" | "video" | "lottie";
|
|
213
215
|
thumbnailUrl?: string;
|
|
214
216
|
thumbnail?: string;
|
|
215
217
|
previewUrl?: string;
|
|
216
218
|
durationMs?: number;
|
|
217
219
|
}
|
|
220
|
+
interface EffectFill {
|
|
221
|
+
type: "solid" | "linear" | "radial" | "pattern" | "none";
|
|
222
|
+
color?: string;
|
|
223
|
+
gradient?: {
|
|
224
|
+
angle: number;
|
|
225
|
+
stops: Array<{
|
|
226
|
+
color: string;
|
|
227
|
+
offset: number;
|
|
228
|
+
}>;
|
|
229
|
+
};
|
|
230
|
+
patternType?: string;
|
|
231
|
+
perCharFillEnabled?: boolean;
|
|
232
|
+
charFillColors?: string[];
|
|
233
|
+
}
|
|
234
|
+
interface EffectStroke {
|
|
235
|
+
color: string;
|
|
236
|
+
width: number;
|
|
237
|
+
position?: "outside" | "center" | "inside";
|
|
238
|
+
opacity?: number;
|
|
239
|
+
lineJoin?: "round" | "miter" | "bevel";
|
|
240
|
+
blur?: number;
|
|
241
|
+
type?: "solid" | "gradient";
|
|
242
|
+
colorSecondary?: string;
|
|
243
|
+
widthSecondary?: number;
|
|
244
|
+
fadeRange?: [number, number];
|
|
245
|
+
}
|
|
246
|
+
interface EffectShadow {
|
|
247
|
+
type?: "drop" | "inner";
|
|
248
|
+
color: string;
|
|
249
|
+
blur: number;
|
|
250
|
+
offset?: {
|
|
251
|
+
x: number;
|
|
252
|
+
y: number;
|
|
253
|
+
};
|
|
254
|
+
offsetX?: number;
|
|
255
|
+
offsetY?: number;
|
|
256
|
+
opacity?: number;
|
|
257
|
+
}
|
|
258
|
+
interface EffectBevel {
|
|
259
|
+
depth: number;
|
|
260
|
+
highlight?: string;
|
|
261
|
+
highlightColor?: string;
|
|
262
|
+
shadow?: string;
|
|
263
|
+
shadowColor?: string;
|
|
264
|
+
direction?: "bottom-right" | "bottom" | "right";
|
|
265
|
+
coreColor?: string;
|
|
266
|
+
edgeColor?: string;
|
|
267
|
+
edgeWidth?: number;
|
|
268
|
+
blur?: number;
|
|
269
|
+
blurColor?: string;
|
|
270
|
+
perspectiveEnabled?: boolean;
|
|
271
|
+
vanishingPointX?: number;
|
|
272
|
+
vanishingPointY?: number;
|
|
273
|
+
focalLength?: number;
|
|
274
|
+
}
|
|
275
|
+
interface EffectGlow {
|
|
276
|
+
color: string;
|
|
277
|
+
blur: number;
|
|
278
|
+
opacity: number;
|
|
279
|
+
type?: "outer" | "inner";
|
|
280
|
+
strength?: number;
|
|
281
|
+
spread?: number;
|
|
282
|
+
}
|
|
283
|
+
interface EffectPanel {
|
|
284
|
+
color: string;
|
|
285
|
+
opacity: number;
|
|
286
|
+
radius: number;
|
|
287
|
+
padding?: {
|
|
288
|
+
x: number;
|
|
289
|
+
y: number;
|
|
290
|
+
};
|
|
291
|
+
paddingX?: number;
|
|
292
|
+
paddingY?: number;
|
|
293
|
+
stroke?: {
|
|
294
|
+
color: string;
|
|
295
|
+
width: number;
|
|
296
|
+
} | null;
|
|
297
|
+
}
|
|
298
|
+
interface EffectStack {
|
|
299
|
+
count: number;
|
|
300
|
+
offsetX: number;
|
|
301
|
+
offsetY: number;
|
|
302
|
+
opacityDecay: number;
|
|
303
|
+
color1?: string;
|
|
304
|
+
color2?: string;
|
|
305
|
+
color3?: string;
|
|
306
|
+
color4?: string;
|
|
307
|
+
}
|
|
218
308
|
interface EffectFullDefinition extends EffectIndexItem {
|
|
219
309
|
version?: string;
|
|
220
310
|
description: string;
|
|
@@ -226,13 +316,13 @@ interface EffectFullDefinition extends EffectIndexItem {
|
|
|
226
316
|
letterSpacing: number;
|
|
227
317
|
lineHeight: number;
|
|
228
318
|
};
|
|
229
|
-
fills:
|
|
230
|
-
strokes:
|
|
231
|
-
shadows:
|
|
232
|
-
bevel?:
|
|
233
|
-
glow?:
|
|
234
|
-
glows?:
|
|
235
|
-
panel?:
|
|
319
|
+
fills: EffectFill[];
|
|
320
|
+
strokes: EffectStroke[];
|
|
321
|
+
shadows: EffectShadow[];
|
|
322
|
+
bevel?: EffectBevel;
|
|
323
|
+
glow?: EffectGlow;
|
|
324
|
+
glows?: EffectGlow[];
|
|
325
|
+
panel?: EffectPanel;
|
|
236
326
|
glitch?: any;
|
|
237
327
|
animation?: {
|
|
238
328
|
type: "none" | "typewriter" | "wave" | "fade" | "glitch";
|
|
@@ -241,7 +331,7 @@ interface EffectFullDefinition extends EffectIndexItem {
|
|
|
241
331
|
frequency?: number;
|
|
242
332
|
};
|
|
243
333
|
background?: any;
|
|
244
|
-
stack?:
|
|
334
|
+
stack?: EffectStack;
|
|
245
335
|
}
|
|
246
336
|
interface TextEffectDefinition extends EffectFullDefinition {
|
|
247
337
|
text?: string;
|
|
@@ -293,6 +383,1039 @@ interface EvaluatedTextLayer {
|
|
|
293
383
|
readonly styleId?: string;
|
|
294
384
|
}
|
|
295
385
|
|
|
386
|
+
/**
|
|
387
|
+
* Runtime validation schemas for text effect definitions
|
|
388
|
+
* Uses Zod for runtime type safety and validation
|
|
389
|
+
*/
|
|
390
|
+
|
|
391
|
+
declare const GradientStopSchema: z.ZodObject<{
|
|
392
|
+
color: z.ZodString;
|
|
393
|
+
offset: z.ZodNumber;
|
|
394
|
+
}, z.core.$strip>;
|
|
395
|
+
declare const EffectFillSchema: z.ZodObject<{
|
|
396
|
+
type: z.ZodEnum<{
|
|
397
|
+
linear: "linear";
|
|
398
|
+
solid: "solid";
|
|
399
|
+
radial: "radial";
|
|
400
|
+
pattern: "pattern";
|
|
401
|
+
none: "none";
|
|
402
|
+
}>;
|
|
403
|
+
color: z.ZodOptional<z.ZodString>;
|
|
404
|
+
gradient: z.ZodOptional<z.ZodObject<{
|
|
405
|
+
angle: z.ZodNumber;
|
|
406
|
+
stops: z.ZodArray<z.ZodObject<{
|
|
407
|
+
color: z.ZodString;
|
|
408
|
+
offset: z.ZodNumber;
|
|
409
|
+
}, z.core.$strip>>;
|
|
410
|
+
}, z.core.$strip>>;
|
|
411
|
+
patternType: z.ZodOptional<z.ZodString>;
|
|
412
|
+
perCharFillEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
413
|
+
charFillColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
414
|
+
}, z.core.$strip>;
|
|
415
|
+
declare const EffectStrokeSchema: z.ZodObject<{
|
|
416
|
+
color: z.ZodString;
|
|
417
|
+
width: z.ZodNumber;
|
|
418
|
+
position: z.ZodOptional<z.ZodEnum<{
|
|
419
|
+
center: "center";
|
|
420
|
+
outside: "outside";
|
|
421
|
+
inside: "inside";
|
|
422
|
+
}>>;
|
|
423
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
424
|
+
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
425
|
+
round: "round";
|
|
426
|
+
miter: "miter";
|
|
427
|
+
bevel: "bevel";
|
|
428
|
+
}>>;
|
|
429
|
+
blur: z.ZodOptional<z.ZodNumber>;
|
|
430
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
431
|
+
solid: "solid";
|
|
432
|
+
gradient: "gradient";
|
|
433
|
+
}>>;
|
|
434
|
+
colorSecondary: z.ZodOptional<z.ZodString>;
|
|
435
|
+
widthSecondary: z.ZodOptional<z.ZodNumber>;
|
|
436
|
+
fadeRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
437
|
+
}, z.core.$strip>;
|
|
438
|
+
declare const EffectShadowSchema: z.ZodObject<{
|
|
439
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
440
|
+
inner: "inner";
|
|
441
|
+
drop: "drop";
|
|
442
|
+
}>>;
|
|
443
|
+
color: z.ZodString;
|
|
444
|
+
blur: z.ZodNumber;
|
|
445
|
+
offset: z.ZodOptional<z.ZodObject<{
|
|
446
|
+
x: z.ZodNumber;
|
|
447
|
+
y: z.ZodNumber;
|
|
448
|
+
}, z.core.$strip>>;
|
|
449
|
+
offsetX: z.ZodOptional<z.ZodNumber>;
|
|
450
|
+
offsetY: z.ZodOptional<z.ZodNumber>;
|
|
451
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
452
|
+
}, z.core.$strip>;
|
|
453
|
+
declare const EffectBevelSchema: z.ZodObject<{
|
|
454
|
+
depth: z.ZodNumber;
|
|
455
|
+
highlight: z.ZodOptional<z.ZodString>;
|
|
456
|
+
highlightColor: z.ZodOptional<z.ZodString>;
|
|
457
|
+
shadow: z.ZodOptional<z.ZodString>;
|
|
458
|
+
shadowColor: z.ZodOptional<z.ZodString>;
|
|
459
|
+
direction: z.ZodOptional<z.ZodEnum<{
|
|
460
|
+
right: "right";
|
|
461
|
+
bottom: "bottom";
|
|
462
|
+
"bottom-right": "bottom-right";
|
|
463
|
+
}>>;
|
|
464
|
+
coreColor: z.ZodOptional<z.ZodString>;
|
|
465
|
+
edgeColor: z.ZodOptional<z.ZodString>;
|
|
466
|
+
edgeWidth: z.ZodOptional<z.ZodNumber>;
|
|
467
|
+
blur: z.ZodOptional<z.ZodNumber>;
|
|
468
|
+
blurColor: z.ZodOptional<z.ZodString>;
|
|
469
|
+
perspectiveEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
470
|
+
vanishingPointX: z.ZodOptional<z.ZodNumber>;
|
|
471
|
+
vanishingPointY: z.ZodOptional<z.ZodNumber>;
|
|
472
|
+
focalLength: z.ZodOptional<z.ZodNumber>;
|
|
473
|
+
}, z.core.$strip>;
|
|
474
|
+
declare const EffectGlowSchema: z.ZodObject<{
|
|
475
|
+
color: z.ZodString;
|
|
476
|
+
blur: z.ZodNumber;
|
|
477
|
+
opacity: z.ZodNumber;
|
|
478
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
479
|
+
outer: "outer";
|
|
480
|
+
inner: "inner";
|
|
481
|
+
}>>;
|
|
482
|
+
strength: z.ZodOptional<z.ZodNumber>;
|
|
483
|
+
spread: z.ZodOptional<z.ZodNumber>;
|
|
484
|
+
}, z.core.$strip>;
|
|
485
|
+
declare const EffectPanelSchema: z.ZodObject<{
|
|
486
|
+
color: z.ZodString;
|
|
487
|
+
opacity: z.ZodNumber;
|
|
488
|
+
radius: z.ZodNumber;
|
|
489
|
+
padding: z.ZodOptional<z.ZodObject<{
|
|
490
|
+
x: z.ZodNumber;
|
|
491
|
+
y: z.ZodNumber;
|
|
492
|
+
}, z.core.$strip>>;
|
|
493
|
+
paddingX: z.ZodOptional<z.ZodNumber>;
|
|
494
|
+
paddingY: z.ZodOptional<z.ZodNumber>;
|
|
495
|
+
stroke: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
496
|
+
color: z.ZodString;
|
|
497
|
+
width: z.ZodNumber;
|
|
498
|
+
}, z.core.$strip>>>;
|
|
499
|
+
}, z.core.$strip>;
|
|
500
|
+
declare const EffectStackSchema: z.ZodObject<{
|
|
501
|
+
count: z.ZodNumber;
|
|
502
|
+
offsetX: z.ZodNumber;
|
|
503
|
+
offsetY: z.ZodNumber;
|
|
504
|
+
opacityDecay: z.ZodNumber;
|
|
505
|
+
color1: z.ZodOptional<z.ZodString>;
|
|
506
|
+
color2: z.ZodOptional<z.ZodString>;
|
|
507
|
+
color3: z.ZodOptional<z.ZodString>;
|
|
508
|
+
color4: z.ZodOptional<z.ZodString>;
|
|
509
|
+
}, z.core.$strip>;
|
|
510
|
+
declare const FontSchema: z.ZodObject<{
|
|
511
|
+
family: z.ZodString;
|
|
512
|
+
weight: z.ZodNumber;
|
|
513
|
+
style: z.ZodEnum<{
|
|
514
|
+
normal: "normal";
|
|
515
|
+
italic: "italic";
|
|
516
|
+
}>;
|
|
517
|
+
letterSpacing: z.ZodNumber;
|
|
518
|
+
lineHeight: z.ZodNumber;
|
|
519
|
+
}, z.core.$strip>;
|
|
520
|
+
declare const AnimationSchema: z.ZodObject<{
|
|
521
|
+
type: z.ZodEnum<{
|
|
522
|
+
none: "none";
|
|
523
|
+
typewriter: "typewriter";
|
|
524
|
+
wave: "wave";
|
|
525
|
+
fade: "fade";
|
|
526
|
+
glitch: "glitch";
|
|
527
|
+
}>;
|
|
528
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
529
|
+
amplitude: z.ZodOptional<z.ZodNumber>;
|
|
530
|
+
frequency: z.ZodOptional<z.ZodNumber>;
|
|
531
|
+
}, z.core.$strip>;
|
|
532
|
+
declare const EffectIndexItemSchema: z.ZodObject<{
|
|
533
|
+
id: z.ZodString;
|
|
534
|
+
name: z.ZodString;
|
|
535
|
+
category: z.ZodString;
|
|
536
|
+
description: z.ZodOptional<z.ZodString>;
|
|
537
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
538
|
+
isPremium: z.ZodOptional<z.ZodBoolean>;
|
|
539
|
+
previewType: z.ZodOptional<z.ZodEnum<{
|
|
540
|
+
static: "static";
|
|
541
|
+
video: "video";
|
|
542
|
+
lottie: "lottie";
|
|
543
|
+
}>>;
|
|
544
|
+
thumbnailUrl: z.ZodOptional<z.ZodString>;
|
|
545
|
+
thumbnail: z.ZodOptional<z.ZodString>;
|
|
546
|
+
previewUrl: z.ZodOptional<z.ZodString>;
|
|
547
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
548
|
+
}, z.core.$strip>;
|
|
549
|
+
declare const EffectFullDefinitionSchema: z.ZodObject<{
|
|
550
|
+
id: z.ZodString;
|
|
551
|
+
name: z.ZodString;
|
|
552
|
+
category: z.ZodString;
|
|
553
|
+
isPremium: z.ZodOptional<z.ZodBoolean>;
|
|
554
|
+
previewType: z.ZodOptional<z.ZodEnum<{
|
|
555
|
+
static: "static";
|
|
556
|
+
video: "video";
|
|
557
|
+
lottie: "lottie";
|
|
558
|
+
}>>;
|
|
559
|
+
thumbnailUrl: z.ZodOptional<z.ZodString>;
|
|
560
|
+
thumbnail: z.ZodOptional<z.ZodString>;
|
|
561
|
+
previewUrl: z.ZodOptional<z.ZodString>;
|
|
562
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
563
|
+
version: z.ZodOptional<z.ZodString>;
|
|
564
|
+
description: z.ZodString;
|
|
565
|
+
tags: z.ZodArray<z.ZodString>;
|
|
566
|
+
font: z.ZodObject<{
|
|
567
|
+
family: z.ZodString;
|
|
568
|
+
weight: z.ZodNumber;
|
|
569
|
+
style: z.ZodEnum<{
|
|
570
|
+
normal: "normal";
|
|
571
|
+
italic: "italic";
|
|
572
|
+
}>;
|
|
573
|
+
letterSpacing: z.ZodNumber;
|
|
574
|
+
lineHeight: z.ZodNumber;
|
|
575
|
+
}, z.core.$strip>;
|
|
576
|
+
fills: z.ZodArray<z.ZodObject<{
|
|
577
|
+
type: z.ZodEnum<{
|
|
578
|
+
linear: "linear";
|
|
579
|
+
solid: "solid";
|
|
580
|
+
radial: "radial";
|
|
581
|
+
pattern: "pattern";
|
|
582
|
+
none: "none";
|
|
583
|
+
}>;
|
|
584
|
+
color: z.ZodOptional<z.ZodString>;
|
|
585
|
+
gradient: z.ZodOptional<z.ZodObject<{
|
|
586
|
+
angle: z.ZodNumber;
|
|
587
|
+
stops: z.ZodArray<z.ZodObject<{
|
|
588
|
+
color: z.ZodString;
|
|
589
|
+
offset: z.ZodNumber;
|
|
590
|
+
}, z.core.$strip>>;
|
|
591
|
+
}, z.core.$strip>>;
|
|
592
|
+
patternType: z.ZodOptional<z.ZodString>;
|
|
593
|
+
perCharFillEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
594
|
+
charFillColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
595
|
+
}, z.core.$strip>>;
|
|
596
|
+
strokes: z.ZodArray<z.ZodObject<{
|
|
597
|
+
color: z.ZodString;
|
|
598
|
+
width: z.ZodNumber;
|
|
599
|
+
position: z.ZodOptional<z.ZodEnum<{
|
|
600
|
+
center: "center";
|
|
601
|
+
outside: "outside";
|
|
602
|
+
inside: "inside";
|
|
603
|
+
}>>;
|
|
604
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
605
|
+
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
606
|
+
round: "round";
|
|
607
|
+
miter: "miter";
|
|
608
|
+
bevel: "bevel";
|
|
609
|
+
}>>;
|
|
610
|
+
blur: z.ZodOptional<z.ZodNumber>;
|
|
611
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
612
|
+
solid: "solid";
|
|
613
|
+
gradient: "gradient";
|
|
614
|
+
}>>;
|
|
615
|
+
colorSecondary: z.ZodOptional<z.ZodString>;
|
|
616
|
+
widthSecondary: z.ZodOptional<z.ZodNumber>;
|
|
617
|
+
fadeRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
618
|
+
}, z.core.$strip>>;
|
|
619
|
+
shadows: z.ZodArray<z.ZodObject<{
|
|
620
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
621
|
+
inner: "inner";
|
|
622
|
+
drop: "drop";
|
|
623
|
+
}>>;
|
|
624
|
+
color: z.ZodString;
|
|
625
|
+
blur: z.ZodNumber;
|
|
626
|
+
offset: z.ZodOptional<z.ZodObject<{
|
|
627
|
+
x: z.ZodNumber;
|
|
628
|
+
y: z.ZodNumber;
|
|
629
|
+
}, z.core.$strip>>;
|
|
630
|
+
offsetX: z.ZodOptional<z.ZodNumber>;
|
|
631
|
+
offsetY: z.ZodOptional<z.ZodNumber>;
|
|
632
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
633
|
+
}, z.core.$strip>>;
|
|
634
|
+
bevel: z.ZodOptional<z.ZodObject<{
|
|
635
|
+
depth: z.ZodNumber;
|
|
636
|
+
highlight: z.ZodOptional<z.ZodString>;
|
|
637
|
+
highlightColor: z.ZodOptional<z.ZodString>;
|
|
638
|
+
shadow: z.ZodOptional<z.ZodString>;
|
|
639
|
+
shadowColor: z.ZodOptional<z.ZodString>;
|
|
640
|
+
direction: z.ZodOptional<z.ZodEnum<{
|
|
641
|
+
right: "right";
|
|
642
|
+
bottom: "bottom";
|
|
643
|
+
"bottom-right": "bottom-right";
|
|
644
|
+
}>>;
|
|
645
|
+
coreColor: z.ZodOptional<z.ZodString>;
|
|
646
|
+
edgeColor: z.ZodOptional<z.ZodString>;
|
|
647
|
+
edgeWidth: z.ZodOptional<z.ZodNumber>;
|
|
648
|
+
blur: z.ZodOptional<z.ZodNumber>;
|
|
649
|
+
blurColor: z.ZodOptional<z.ZodString>;
|
|
650
|
+
perspectiveEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
651
|
+
vanishingPointX: z.ZodOptional<z.ZodNumber>;
|
|
652
|
+
vanishingPointY: z.ZodOptional<z.ZodNumber>;
|
|
653
|
+
focalLength: z.ZodOptional<z.ZodNumber>;
|
|
654
|
+
}, z.core.$strip>>;
|
|
655
|
+
glow: z.ZodOptional<z.ZodObject<{
|
|
656
|
+
color: z.ZodString;
|
|
657
|
+
blur: z.ZodNumber;
|
|
658
|
+
opacity: z.ZodNumber;
|
|
659
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
660
|
+
outer: "outer";
|
|
661
|
+
inner: "inner";
|
|
662
|
+
}>>;
|
|
663
|
+
strength: z.ZodOptional<z.ZodNumber>;
|
|
664
|
+
spread: z.ZodOptional<z.ZodNumber>;
|
|
665
|
+
}, z.core.$strip>>;
|
|
666
|
+
glows: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
667
|
+
color: z.ZodString;
|
|
668
|
+
blur: z.ZodNumber;
|
|
669
|
+
opacity: z.ZodNumber;
|
|
670
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
671
|
+
outer: "outer";
|
|
672
|
+
inner: "inner";
|
|
673
|
+
}>>;
|
|
674
|
+
strength: z.ZodOptional<z.ZodNumber>;
|
|
675
|
+
spread: z.ZodOptional<z.ZodNumber>;
|
|
676
|
+
}, z.core.$strip>>>;
|
|
677
|
+
panel: z.ZodOptional<z.ZodObject<{
|
|
678
|
+
color: z.ZodString;
|
|
679
|
+
opacity: z.ZodNumber;
|
|
680
|
+
radius: z.ZodNumber;
|
|
681
|
+
padding: z.ZodOptional<z.ZodObject<{
|
|
682
|
+
x: z.ZodNumber;
|
|
683
|
+
y: z.ZodNumber;
|
|
684
|
+
}, z.core.$strip>>;
|
|
685
|
+
paddingX: z.ZodOptional<z.ZodNumber>;
|
|
686
|
+
paddingY: z.ZodOptional<z.ZodNumber>;
|
|
687
|
+
stroke: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
688
|
+
color: z.ZodString;
|
|
689
|
+
width: z.ZodNumber;
|
|
690
|
+
}, z.core.$strip>>>;
|
|
691
|
+
}, z.core.$strip>>;
|
|
692
|
+
glitch: z.ZodOptional<z.ZodAny>;
|
|
693
|
+
animation: z.ZodOptional<z.ZodObject<{
|
|
694
|
+
type: z.ZodEnum<{
|
|
695
|
+
none: "none";
|
|
696
|
+
typewriter: "typewriter";
|
|
697
|
+
wave: "wave";
|
|
698
|
+
fade: "fade";
|
|
699
|
+
glitch: "glitch";
|
|
700
|
+
}>;
|
|
701
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
702
|
+
amplitude: z.ZodOptional<z.ZodNumber>;
|
|
703
|
+
frequency: z.ZodOptional<z.ZodNumber>;
|
|
704
|
+
}, z.core.$strip>>;
|
|
705
|
+
background: z.ZodOptional<z.ZodAny>;
|
|
706
|
+
stack: z.ZodOptional<z.ZodObject<{
|
|
707
|
+
count: z.ZodNumber;
|
|
708
|
+
offsetX: z.ZodNumber;
|
|
709
|
+
offsetY: z.ZodNumber;
|
|
710
|
+
opacityDecay: z.ZodNumber;
|
|
711
|
+
color1: z.ZodOptional<z.ZodString>;
|
|
712
|
+
color2: z.ZodOptional<z.ZodString>;
|
|
713
|
+
color3: z.ZodOptional<z.ZodString>;
|
|
714
|
+
color4: z.ZodOptional<z.ZodString>;
|
|
715
|
+
}, z.core.$strip>>;
|
|
716
|
+
}, z.core.$strip>;
|
|
717
|
+
declare const TextEffectDefinitionSchema: z.ZodObject<{
|
|
718
|
+
id: z.ZodString;
|
|
719
|
+
name: z.ZodString;
|
|
720
|
+
category: z.ZodString;
|
|
721
|
+
isPremium: z.ZodOptional<z.ZodBoolean>;
|
|
722
|
+
previewType: z.ZodOptional<z.ZodEnum<{
|
|
723
|
+
static: "static";
|
|
724
|
+
video: "video";
|
|
725
|
+
lottie: "lottie";
|
|
726
|
+
}>>;
|
|
727
|
+
thumbnailUrl: z.ZodOptional<z.ZodString>;
|
|
728
|
+
thumbnail: z.ZodOptional<z.ZodString>;
|
|
729
|
+
previewUrl: z.ZodOptional<z.ZodString>;
|
|
730
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
731
|
+
version: z.ZodOptional<z.ZodString>;
|
|
732
|
+
description: z.ZodString;
|
|
733
|
+
tags: z.ZodArray<z.ZodString>;
|
|
734
|
+
font: z.ZodObject<{
|
|
735
|
+
family: z.ZodString;
|
|
736
|
+
weight: z.ZodNumber;
|
|
737
|
+
style: z.ZodEnum<{
|
|
738
|
+
normal: "normal";
|
|
739
|
+
italic: "italic";
|
|
740
|
+
}>;
|
|
741
|
+
letterSpacing: z.ZodNumber;
|
|
742
|
+
lineHeight: z.ZodNumber;
|
|
743
|
+
}, z.core.$strip>;
|
|
744
|
+
fills: z.ZodArray<z.ZodObject<{
|
|
745
|
+
type: z.ZodEnum<{
|
|
746
|
+
linear: "linear";
|
|
747
|
+
solid: "solid";
|
|
748
|
+
radial: "radial";
|
|
749
|
+
pattern: "pattern";
|
|
750
|
+
none: "none";
|
|
751
|
+
}>;
|
|
752
|
+
color: z.ZodOptional<z.ZodString>;
|
|
753
|
+
gradient: z.ZodOptional<z.ZodObject<{
|
|
754
|
+
angle: z.ZodNumber;
|
|
755
|
+
stops: z.ZodArray<z.ZodObject<{
|
|
756
|
+
color: z.ZodString;
|
|
757
|
+
offset: z.ZodNumber;
|
|
758
|
+
}, z.core.$strip>>;
|
|
759
|
+
}, z.core.$strip>>;
|
|
760
|
+
patternType: z.ZodOptional<z.ZodString>;
|
|
761
|
+
perCharFillEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
762
|
+
charFillColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
763
|
+
}, z.core.$strip>>;
|
|
764
|
+
strokes: z.ZodArray<z.ZodObject<{
|
|
765
|
+
color: z.ZodString;
|
|
766
|
+
width: z.ZodNumber;
|
|
767
|
+
position: z.ZodOptional<z.ZodEnum<{
|
|
768
|
+
center: "center";
|
|
769
|
+
outside: "outside";
|
|
770
|
+
inside: "inside";
|
|
771
|
+
}>>;
|
|
772
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
773
|
+
lineJoin: z.ZodOptional<z.ZodEnum<{
|
|
774
|
+
round: "round";
|
|
775
|
+
miter: "miter";
|
|
776
|
+
bevel: "bevel";
|
|
777
|
+
}>>;
|
|
778
|
+
blur: z.ZodOptional<z.ZodNumber>;
|
|
779
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
780
|
+
solid: "solid";
|
|
781
|
+
gradient: "gradient";
|
|
782
|
+
}>>;
|
|
783
|
+
colorSecondary: z.ZodOptional<z.ZodString>;
|
|
784
|
+
widthSecondary: z.ZodOptional<z.ZodNumber>;
|
|
785
|
+
fadeRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
786
|
+
}, z.core.$strip>>;
|
|
787
|
+
shadows: z.ZodArray<z.ZodObject<{
|
|
788
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
789
|
+
inner: "inner";
|
|
790
|
+
drop: "drop";
|
|
791
|
+
}>>;
|
|
792
|
+
color: z.ZodString;
|
|
793
|
+
blur: z.ZodNumber;
|
|
794
|
+
offset: z.ZodOptional<z.ZodObject<{
|
|
795
|
+
x: z.ZodNumber;
|
|
796
|
+
y: z.ZodNumber;
|
|
797
|
+
}, z.core.$strip>>;
|
|
798
|
+
offsetX: z.ZodOptional<z.ZodNumber>;
|
|
799
|
+
offsetY: z.ZodOptional<z.ZodNumber>;
|
|
800
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
801
|
+
}, z.core.$strip>>;
|
|
802
|
+
bevel: z.ZodOptional<z.ZodObject<{
|
|
803
|
+
depth: z.ZodNumber;
|
|
804
|
+
highlight: z.ZodOptional<z.ZodString>;
|
|
805
|
+
highlightColor: z.ZodOptional<z.ZodString>;
|
|
806
|
+
shadow: z.ZodOptional<z.ZodString>;
|
|
807
|
+
shadowColor: z.ZodOptional<z.ZodString>;
|
|
808
|
+
direction: z.ZodOptional<z.ZodEnum<{
|
|
809
|
+
right: "right";
|
|
810
|
+
bottom: "bottom";
|
|
811
|
+
"bottom-right": "bottom-right";
|
|
812
|
+
}>>;
|
|
813
|
+
coreColor: z.ZodOptional<z.ZodString>;
|
|
814
|
+
edgeColor: z.ZodOptional<z.ZodString>;
|
|
815
|
+
edgeWidth: z.ZodOptional<z.ZodNumber>;
|
|
816
|
+
blur: z.ZodOptional<z.ZodNumber>;
|
|
817
|
+
blurColor: z.ZodOptional<z.ZodString>;
|
|
818
|
+
perspectiveEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
819
|
+
vanishingPointX: z.ZodOptional<z.ZodNumber>;
|
|
820
|
+
vanishingPointY: z.ZodOptional<z.ZodNumber>;
|
|
821
|
+
focalLength: z.ZodOptional<z.ZodNumber>;
|
|
822
|
+
}, z.core.$strip>>;
|
|
823
|
+
glow: z.ZodOptional<z.ZodObject<{
|
|
824
|
+
color: z.ZodString;
|
|
825
|
+
blur: z.ZodNumber;
|
|
826
|
+
opacity: z.ZodNumber;
|
|
827
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
828
|
+
outer: "outer";
|
|
829
|
+
inner: "inner";
|
|
830
|
+
}>>;
|
|
831
|
+
strength: z.ZodOptional<z.ZodNumber>;
|
|
832
|
+
spread: z.ZodOptional<z.ZodNumber>;
|
|
833
|
+
}, z.core.$strip>>;
|
|
834
|
+
glows: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
835
|
+
color: z.ZodString;
|
|
836
|
+
blur: z.ZodNumber;
|
|
837
|
+
opacity: z.ZodNumber;
|
|
838
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
839
|
+
outer: "outer";
|
|
840
|
+
inner: "inner";
|
|
841
|
+
}>>;
|
|
842
|
+
strength: z.ZodOptional<z.ZodNumber>;
|
|
843
|
+
spread: z.ZodOptional<z.ZodNumber>;
|
|
844
|
+
}, z.core.$strip>>>;
|
|
845
|
+
panel: z.ZodOptional<z.ZodObject<{
|
|
846
|
+
color: z.ZodString;
|
|
847
|
+
opacity: z.ZodNumber;
|
|
848
|
+
radius: z.ZodNumber;
|
|
849
|
+
padding: z.ZodOptional<z.ZodObject<{
|
|
850
|
+
x: z.ZodNumber;
|
|
851
|
+
y: z.ZodNumber;
|
|
852
|
+
}, z.core.$strip>>;
|
|
853
|
+
paddingX: z.ZodOptional<z.ZodNumber>;
|
|
854
|
+
paddingY: z.ZodOptional<z.ZodNumber>;
|
|
855
|
+
stroke: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
856
|
+
color: z.ZodString;
|
|
857
|
+
width: z.ZodNumber;
|
|
858
|
+
}, z.core.$strip>>>;
|
|
859
|
+
}, z.core.$strip>>;
|
|
860
|
+
glitch: z.ZodOptional<z.ZodAny>;
|
|
861
|
+
animation: z.ZodOptional<z.ZodObject<{
|
|
862
|
+
type: z.ZodEnum<{
|
|
863
|
+
none: "none";
|
|
864
|
+
typewriter: "typewriter";
|
|
865
|
+
wave: "wave";
|
|
866
|
+
fade: "fade";
|
|
867
|
+
glitch: "glitch";
|
|
868
|
+
}>;
|
|
869
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
870
|
+
amplitude: z.ZodOptional<z.ZodNumber>;
|
|
871
|
+
frequency: z.ZodOptional<z.ZodNumber>;
|
|
872
|
+
}, z.core.$strip>>;
|
|
873
|
+
background: z.ZodOptional<z.ZodAny>;
|
|
874
|
+
stack: z.ZodOptional<z.ZodObject<{
|
|
875
|
+
count: z.ZodNumber;
|
|
876
|
+
offsetX: z.ZodNumber;
|
|
877
|
+
offsetY: z.ZodNumber;
|
|
878
|
+
opacityDecay: z.ZodNumber;
|
|
879
|
+
color1: z.ZodOptional<z.ZodString>;
|
|
880
|
+
color2: z.ZodOptional<z.ZodString>;
|
|
881
|
+
color3: z.ZodOptional<z.ZodString>;
|
|
882
|
+
color4: z.ZodOptional<z.ZodString>;
|
|
883
|
+
}, z.core.$strip>>;
|
|
884
|
+
text: z.ZodOptional<z.ZodString>;
|
|
885
|
+
}, z.core.$strip>;
|
|
886
|
+
/**
|
|
887
|
+
* Validates an effect definition with detailed error reporting
|
|
888
|
+
* @param data - The effect definition to validate
|
|
889
|
+
* @returns Validation result with success/error details
|
|
890
|
+
*/
|
|
891
|
+
declare function validateEffectDefinition(data: unknown): z.ZodSafeParseResult<{
|
|
892
|
+
id: string;
|
|
893
|
+
name: string;
|
|
894
|
+
category: string;
|
|
895
|
+
description: string;
|
|
896
|
+
tags: string[];
|
|
897
|
+
font: {
|
|
898
|
+
family: string;
|
|
899
|
+
weight: number;
|
|
900
|
+
style: "normal" | "italic";
|
|
901
|
+
letterSpacing: number;
|
|
902
|
+
lineHeight: number;
|
|
903
|
+
};
|
|
904
|
+
fills: {
|
|
905
|
+
type: "linear" | "solid" | "radial" | "pattern" | "none";
|
|
906
|
+
color?: string;
|
|
907
|
+
gradient?: {
|
|
908
|
+
angle: number;
|
|
909
|
+
stops: {
|
|
910
|
+
color: string;
|
|
911
|
+
offset: number;
|
|
912
|
+
}[];
|
|
913
|
+
};
|
|
914
|
+
patternType?: string;
|
|
915
|
+
perCharFillEnabled?: boolean;
|
|
916
|
+
charFillColors?: string[];
|
|
917
|
+
}[];
|
|
918
|
+
strokes: {
|
|
919
|
+
color: string;
|
|
920
|
+
width: number;
|
|
921
|
+
position?: "center" | "outside" | "inside";
|
|
922
|
+
opacity?: number;
|
|
923
|
+
lineJoin?: "round" | "miter" | "bevel";
|
|
924
|
+
blur?: number;
|
|
925
|
+
type?: "solid" | "gradient";
|
|
926
|
+
colorSecondary?: string;
|
|
927
|
+
widthSecondary?: number;
|
|
928
|
+
fadeRange?: [number?, number?, ...unknown[]];
|
|
929
|
+
}[];
|
|
930
|
+
shadows: {
|
|
931
|
+
color: string;
|
|
932
|
+
blur: number;
|
|
933
|
+
type?: "inner" | "drop";
|
|
934
|
+
offset?: {
|
|
935
|
+
x: number;
|
|
936
|
+
y: number;
|
|
937
|
+
};
|
|
938
|
+
offsetX?: number;
|
|
939
|
+
offsetY?: number;
|
|
940
|
+
opacity?: number;
|
|
941
|
+
}[];
|
|
942
|
+
isPremium?: boolean;
|
|
943
|
+
previewType?: "static" | "video" | "lottie";
|
|
944
|
+
thumbnailUrl?: string;
|
|
945
|
+
thumbnail?: string;
|
|
946
|
+
previewUrl?: string;
|
|
947
|
+
durationMs?: number;
|
|
948
|
+
version?: string;
|
|
949
|
+
bevel?: {
|
|
950
|
+
depth: number;
|
|
951
|
+
highlight?: string;
|
|
952
|
+
highlightColor?: string;
|
|
953
|
+
shadow?: string;
|
|
954
|
+
shadowColor?: string;
|
|
955
|
+
direction?: "right" | "bottom" | "bottom-right";
|
|
956
|
+
coreColor?: string;
|
|
957
|
+
edgeColor?: string;
|
|
958
|
+
edgeWidth?: number;
|
|
959
|
+
blur?: number;
|
|
960
|
+
blurColor?: string;
|
|
961
|
+
perspectiveEnabled?: boolean;
|
|
962
|
+
vanishingPointX?: number;
|
|
963
|
+
vanishingPointY?: number;
|
|
964
|
+
focalLength?: number;
|
|
965
|
+
};
|
|
966
|
+
glow?: {
|
|
967
|
+
color: string;
|
|
968
|
+
blur: number;
|
|
969
|
+
opacity: number;
|
|
970
|
+
type?: "outer" | "inner";
|
|
971
|
+
strength?: number;
|
|
972
|
+
spread?: number;
|
|
973
|
+
};
|
|
974
|
+
glows?: {
|
|
975
|
+
color: string;
|
|
976
|
+
blur: number;
|
|
977
|
+
opacity: number;
|
|
978
|
+
type?: "outer" | "inner";
|
|
979
|
+
strength?: number;
|
|
980
|
+
spread?: number;
|
|
981
|
+
}[];
|
|
982
|
+
panel?: {
|
|
983
|
+
color: string;
|
|
984
|
+
opacity: number;
|
|
985
|
+
radius: number;
|
|
986
|
+
padding?: {
|
|
987
|
+
x: number;
|
|
988
|
+
y: number;
|
|
989
|
+
};
|
|
990
|
+
paddingX?: number;
|
|
991
|
+
paddingY?: number;
|
|
992
|
+
stroke?: {
|
|
993
|
+
color: string;
|
|
994
|
+
width: number;
|
|
995
|
+
};
|
|
996
|
+
};
|
|
997
|
+
glitch?: any;
|
|
998
|
+
animation?: {
|
|
999
|
+
type: "none" | "typewriter" | "wave" | "fade" | "glitch";
|
|
1000
|
+
speed?: number;
|
|
1001
|
+
amplitude?: number;
|
|
1002
|
+
frequency?: number;
|
|
1003
|
+
};
|
|
1004
|
+
background?: any;
|
|
1005
|
+
stack?: {
|
|
1006
|
+
count: number;
|
|
1007
|
+
offsetX: number;
|
|
1008
|
+
offsetY: number;
|
|
1009
|
+
opacityDecay: number;
|
|
1010
|
+
color1?: string;
|
|
1011
|
+
color2?: string;
|
|
1012
|
+
color3?: string;
|
|
1013
|
+
color4?: string;
|
|
1014
|
+
};
|
|
1015
|
+
}>;
|
|
1016
|
+
/**
|
|
1017
|
+
* Validates an effect definition and throws on error
|
|
1018
|
+
* @param data - The effect definition to validate
|
|
1019
|
+
* @returns The validated effect definition
|
|
1020
|
+
* @throws {z.ZodError} If validation fails
|
|
1021
|
+
*/
|
|
1022
|
+
declare function validateEffectDefinitionStrict(data: unknown): {
|
|
1023
|
+
id: string;
|
|
1024
|
+
name: string;
|
|
1025
|
+
category: string;
|
|
1026
|
+
description: string;
|
|
1027
|
+
tags: string[];
|
|
1028
|
+
font: {
|
|
1029
|
+
family: string;
|
|
1030
|
+
weight: number;
|
|
1031
|
+
style: "normal" | "italic";
|
|
1032
|
+
letterSpacing: number;
|
|
1033
|
+
lineHeight: number;
|
|
1034
|
+
};
|
|
1035
|
+
fills: {
|
|
1036
|
+
type: "linear" | "solid" | "radial" | "pattern" | "none";
|
|
1037
|
+
color?: string;
|
|
1038
|
+
gradient?: {
|
|
1039
|
+
angle: number;
|
|
1040
|
+
stops: {
|
|
1041
|
+
color: string;
|
|
1042
|
+
offset: number;
|
|
1043
|
+
}[];
|
|
1044
|
+
};
|
|
1045
|
+
patternType?: string;
|
|
1046
|
+
perCharFillEnabled?: boolean;
|
|
1047
|
+
charFillColors?: string[];
|
|
1048
|
+
}[];
|
|
1049
|
+
strokes: {
|
|
1050
|
+
color: string;
|
|
1051
|
+
width: number;
|
|
1052
|
+
position?: "center" | "outside" | "inside";
|
|
1053
|
+
opacity?: number;
|
|
1054
|
+
lineJoin?: "round" | "miter" | "bevel";
|
|
1055
|
+
blur?: number;
|
|
1056
|
+
type?: "solid" | "gradient";
|
|
1057
|
+
colorSecondary?: string;
|
|
1058
|
+
widthSecondary?: number;
|
|
1059
|
+
fadeRange?: [number?, number?, ...unknown[]];
|
|
1060
|
+
}[];
|
|
1061
|
+
shadows: {
|
|
1062
|
+
color: string;
|
|
1063
|
+
blur: number;
|
|
1064
|
+
type?: "inner" | "drop";
|
|
1065
|
+
offset?: {
|
|
1066
|
+
x: number;
|
|
1067
|
+
y: number;
|
|
1068
|
+
};
|
|
1069
|
+
offsetX?: number;
|
|
1070
|
+
offsetY?: number;
|
|
1071
|
+
opacity?: number;
|
|
1072
|
+
}[];
|
|
1073
|
+
isPremium?: boolean;
|
|
1074
|
+
previewType?: "static" | "video" | "lottie";
|
|
1075
|
+
thumbnailUrl?: string;
|
|
1076
|
+
thumbnail?: string;
|
|
1077
|
+
previewUrl?: string;
|
|
1078
|
+
durationMs?: number;
|
|
1079
|
+
version?: string;
|
|
1080
|
+
bevel?: {
|
|
1081
|
+
depth: number;
|
|
1082
|
+
highlight?: string;
|
|
1083
|
+
highlightColor?: string;
|
|
1084
|
+
shadow?: string;
|
|
1085
|
+
shadowColor?: string;
|
|
1086
|
+
direction?: "right" | "bottom" | "bottom-right";
|
|
1087
|
+
coreColor?: string;
|
|
1088
|
+
edgeColor?: string;
|
|
1089
|
+
edgeWidth?: number;
|
|
1090
|
+
blur?: number;
|
|
1091
|
+
blurColor?: string;
|
|
1092
|
+
perspectiveEnabled?: boolean;
|
|
1093
|
+
vanishingPointX?: number;
|
|
1094
|
+
vanishingPointY?: number;
|
|
1095
|
+
focalLength?: number;
|
|
1096
|
+
};
|
|
1097
|
+
glow?: {
|
|
1098
|
+
color: string;
|
|
1099
|
+
blur: number;
|
|
1100
|
+
opacity: number;
|
|
1101
|
+
type?: "outer" | "inner";
|
|
1102
|
+
strength?: number;
|
|
1103
|
+
spread?: number;
|
|
1104
|
+
};
|
|
1105
|
+
glows?: {
|
|
1106
|
+
color: string;
|
|
1107
|
+
blur: number;
|
|
1108
|
+
opacity: number;
|
|
1109
|
+
type?: "outer" | "inner";
|
|
1110
|
+
strength?: number;
|
|
1111
|
+
spread?: number;
|
|
1112
|
+
}[];
|
|
1113
|
+
panel?: {
|
|
1114
|
+
color: string;
|
|
1115
|
+
opacity: number;
|
|
1116
|
+
radius: number;
|
|
1117
|
+
padding?: {
|
|
1118
|
+
x: number;
|
|
1119
|
+
y: number;
|
|
1120
|
+
};
|
|
1121
|
+
paddingX?: number;
|
|
1122
|
+
paddingY?: number;
|
|
1123
|
+
stroke?: {
|
|
1124
|
+
color: string;
|
|
1125
|
+
width: number;
|
|
1126
|
+
};
|
|
1127
|
+
};
|
|
1128
|
+
glitch?: any;
|
|
1129
|
+
animation?: {
|
|
1130
|
+
type: "none" | "typewriter" | "wave" | "fade" | "glitch";
|
|
1131
|
+
speed?: number;
|
|
1132
|
+
amplitude?: number;
|
|
1133
|
+
frequency?: number;
|
|
1134
|
+
};
|
|
1135
|
+
background?: any;
|
|
1136
|
+
stack?: {
|
|
1137
|
+
count: number;
|
|
1138
|
+
offsetX: number;
|
|
1139
|
+
offsetY: number;
|
|
1140
|
+
opacityDecay: number;
|
|
1141
|
+
color1?: string;
|
|
1142
|
+
color2?: string;
|
|
1143
|
+
color3?: string;
|
|
1144
|
+
color4?: string;
|
|
1145
|
+
};
|
|
1146
|
+
};
|
|
1147
|
+
/**
|
|
1148
|
+
* Validates a text effect definition with detailed error reporting
|
|
1149
|
+
* @param data - The text effect definition to validate
|
|
1150
|
+
* @returns Validation result with success/error details
|
|
1151
|
+
*/
|
|
1152
|
+
declare function validateTextEffectDefinition(data: unknown): z.ZodSafeParseResult<{
|
|
1153
|
+
id: string;
|
|
1154
|
+
name: string;
|
|
1155
|
+
category: string;
|
|
1156
|
+
description: string;
|
|
1157
|
+
tags: string[];
|
|
1158
|
+
font: {
|
|
1159
|
+
family: string;
|
|
1160
|
+
weight: number;
|
|
1161
|
+
style: "normal" | "italic";
|
|
1162
|
+
letterSpacing: number;
|
|
1163
|
+
lineHeight: number;
|
|
1164
|
+
};
|
|
1165
|
+
fills: {
|
|
1166
|
+
type: "linear" | "solid" | "radial" | "pattern" | "none";
|
|
1167
|
+
color?: string;
|
|
1168
|
+
gradient?: {
|
|
1169
|
+
angle: number;
|
|
1170
|
+
stops: {
|
|
1171
|
+
color: string;
|
|
1172
|
+
offset: number;
|
|
1173
|
+
}[];
|
|
1174
|
+
};
|
|
1175
|
+
patternType?: string;
|
|
1176
|
+
perCharFillEnabled?: boolean;
|
|
1177
|
+
charFillColors?: string[];
|
|
1178
|
+
}[];
|
|
1179
|
+
strokes: {
|
|
1180
|
+
color: string;
|
|
1181
|
+
width: number;
|
|
1182
|
+
position?: "center" | "outside" | "inside";
|
|
1183
|
+
opacity?: number;
|
|
1184
|
+
lineJoin?: "round" | "miter" | "bevel";
|
|
1185
|
+
blur?: number;
|
|
1186
|
+
type?: "solid" | "gradient";
|
|
1187
|
+
colorSecondary?: string;
|
|
1188
|
+
widthSecondary?: number;
|
|
1189
|
+
fadeRange?: [number?, number?, ...unknown[]];
|
|
1190
|
+
}[];
|
|
1191
|
+
shadows: {
|
|
1192
|
+
color: string;
|
|
1193
|
+
blur: number;
|
|
1194
|
+
type?: "inner" | "drop";
|
|
1195
|
+
offset?: {
|
|
1196
|
+
x: number;
|
|
1197
|
+
y: number;
|
|
1198
|
+
};
|
|
1199
|
+
offsetX?: number;
|
|
1200
|
+
offsetY?: number;
|
|
1201
|
+
opacity?: number;
|
|
1202
|
+
}[];
|
|
1203
|
+
isPremium?: boolean;
|
|
1204
|
+
previewType?: "static" | "video" | "lottie";
|
|
1205
|
+
thumbnailUrl?: string;
|
|
1206
|
+
thumbnail?: string;
|
|
1207
|
+
previewUrl?: string;
|
|
1208
|
+
durationMs?: number;
|
|
1209
|
+
version?: string;
|
|
1210
|
+
bevel?: {
|
|
1211
|
+
depth: number;
|
|
1212
|
+
highlight?: string;
|
|
1213
|
+
highlightColor?: string;
|
|
1214
|
+
shadow?: string;
|
|
1215
|
+
shadowColor?: string;
|
|
1216
|
+
direction?: "right" | "bottom" | "bottom-right";
|
|
1217
|
+
coreColor?: string;
|
|
1218
|
+
edgeColor?: string;
|
|
1219
|
+
edgeWidth?: number;
|
|
1220
|
+
blur?: number;
|
|
1221
|
+
blurColor?: string;
|
|
1222
|
+
perspectiveEnabled?: boolean;
|
|
1223
|
+
vanishingPointX?: number;
|
|
1224
|
+
vanishingPointY?: number;
|
|
1225
|
+
focalLength?: number;
|
|
1226
|
+
};
|
|
1227
|
+
glow?: {
|
|
1228
|
+
color: string;
|
|
1229
|
+
blur: number;
|
|
1230
|
+
opacity: number;
|
|
1231
|
+
type?: "outer" | "inner";
|
|
1232
|
+
strength?: number;
|
|
1233
|
+
spread?: number;
|
|
1234
|
+
};
|
|
1235
|
+
glows?: {
|
|
1236
|
+
color: string;
|
|
1237
|
+
blur: number;
|
|
1238
|
+
opacity: number;
|
|
1239
|
+
type?: "outer" | "inner";
|
|
1240
|
+
strength?: number;
|
|
1241
|
+
spread?: number;
|
|
1242
|
+
}[];
|
|
1243
|
+
panel?: {
|
|
1244
|
+
color: string;
|
|
1245
|
+
opacity: number;
|
|
1246
|
+
radius: number;
|
|
1247
|
+
padding?: {
|
|
1248
|
+
x: number;
|
|
1249
|
+
y: number;
|
|
1250
|
+
};
|
|
1251
|
+
paddingX?: number;
|
|
1252
|
+
paddingY?: number;
|
|
1253
|
+
stroke?: {
|
|
1254
|
+
color: string;
|
|
1255
|
+
width: number;
|
|
1256
|
+
};
|
|
1257
|
+
};
|
|
1258
|
+
glitch?: any;
|
|
1259
|
+
animation?: {
|
|
1260
|
+
type: "none" | "typewriter" | "wave" | "fade" | "glitch";
|
|
1261
|
+
speed?: number;
|
|
1262
|
+
amplitude?: number;
|
|
1263
|
+
frequency?: number;
|
|
1264
|
+
};
|
|
1265
|
+
background?: any;
|
|
1266
|
+
stack?: {
|
|
1267
|
+
count: number;
|
|
1268
|
+
offsetX: number;
|
|
1269
|
+
offsetY: number;
|
|
1270
|
+
opacityDecay: number;
|
|
1271
|
+
color1?: string;
|
|
1272
|
+
color2?: string;
|
|
1273
|
+
color3?: string;
|
|
1274
|
+
color4?: string;
|
|
1275
|
+
};
|
|
1276
|
+
text?: string;
|
|
1277
|
+
}>;
|
|
1278
|
+
/**
|
|
1279
|
+
* Validates a text effect definition and throws on error
|
|
1280
|
+
* @param data - The text effect definition to validate
|
|
1281
|
+
* @returns The validated text effect definition
|
|
1282
|
+
* @throws {z.ZodError} If validation fails
|
|
1283
|
+
*/
|
|
1284
|
+
declare function validateTextEffectDefinitionStrict(data: unknown): {
|
|
1285
|
+
id: string;
|
|
1286
|
+
name: string;
|
|
1287
|
+
category: string;
|
|
1288
|
+
description: string;
|
|
1289
|
+
tags: string[];
|
|
1290
|
+
font: {
|
|
1291
|
+
family: string;
|
|
1292
|
+
weight: number;
|
|
1293
|
+
style: "normal" | "italic";
|
|
1294
|
+
letterSpacing: number;
|
|
1295
|
+
lineHeight: number;
|
|
1296
|
+
};
|
|
1297
|
+
fills: {
|
|
1298
|
+
type: "linear" | "solid" | "radial" | "pattern" | "none";
|
|
1299
|
+
color?: string;
|
|
1300
|
+
gradient?: {
|
|
1301
|
+
angle: number;
|
|
1302
|
+
stops: {
|
|
1303
|
+
color: string;
|
|
1304
|
+
offset: number;
|
|
1305
|
+
}[];
|
|
1306
|
+
};
|
|
1307
|
+
patternType?: string;
|
|
1308
|
+
perCharFillEnabled?: boolean;
|
|
1309
|
+
charFillColors?: string[];
|
|
1310
|
+
}[];
|
|
1311
|
+
strokes: {
|
|
1312
|
+
color: string;
|
|
1313
|
+
width: number;
|
|
1314
|
+
position?: "center" | "outside" | "inside";
|
|
1315
|
+
opacity?: number;
|
|
1316
|
+
lineJoin?: "round" | "miter" | "bevel";
|
|
1317
|
+
blur?: number;
|
|
1318
|
+
type?: "solid" | "gradient";
|
|
1319
|
+
colorSecondary?: string;
|
|
1320
|
+
widthSecondary?: number;
|
|
1321
|
+
fadeRange?: [number?, number?, ...unknown[]];
|
|
1322
|
+
}[];
|
|
1323
|
+
shadows: {
|
|
1324
|
+
color: string;
|
|
1325
|
+
blur: number;
|
|
1326
|
+
type?: "inner" | "drop";
|
|
1327
|
+
offset?: {
|
|
1328
|
+
x: number;
|
|
1329
|
+
y: number;
|
|
1330
|
+
};
|
|
1331
|
+
offsetX?: number;
|
|
1332
|
+
offsetY?: number;
|
|
1333
|
+
opacity?: number;
|
|
1334
|
+
}[];
|
|
1335
|
+
isPremium?: boolean;
|
|
1336
|
+
previewType?: "static" | "video" | "lottie";
|
|
1337
|
+
thumbnailUrl?: string;
|
|
1338
|
+
thumbnail?: string;
|
|
1339
|
+
previewUrl?: string;
|
|
1340
|
+
durationMs?: number;
|
|
1341
|
+
version?: string;
|
|
1342
|
+
bevel?: {
|
|
1343
|
+
depth: number;
|
|
1344
|
+
highlight?: string;
|
|
1345
|
+
highlightColor?: string;
|
|
1346
|
+
shadow?: string;
|
|
1347
|
+
shadowColor?: string;
|
|
1348
|
+
direction?: "right" | "bottom" | "bottom-right";
|
|
1349
|
+
coreColor?: string;
|
|
1350
|
+
edgeColor?: string;
|
|
1351
|
+
edgeWidth?: number;
|
|
1352
|
+
blur?: number;
|
|
1353
|
+
blurColor?: string;
|
|
1354
|
+
perspectiveEnabled?: boolean;
|
|
1355
|
+
vanishingPointX?: number;
|
|
1356
|
+
vanishingPointY?: number;
|
|
1357
|
+
focalLength?: number;
|
|
1358
|
+
};
|
|
1359
|
+
glow?: {
|
|
1360
|
+
color: string;
|
|
1361
|
+
blur: number;
|
|
1362
|
+
opacity: number;
|
|
1363
|
+
type?: "outer" | "inner";
|
|
1364
|
+
strength?: number;
|
|
1365
|
+
spread?: number;
|
|
1366
|
+
};
|
|
1367
|
+
glows?: {
|
|
1368
|
+
color: string;
|
|
1369
|
+
blur: number;
|
|
1370
|
+
opacity: number;
|
|
1371
|
+
type?: "outer" | "inner";
|
|
1372
|
+
strength?: number;
|
|
1373
|
+
spread?: number;
|
|
1374
|
+
}[];
|
|
1375
|
+
panel?: {
|
|
1376
|
+
color: string;
|
|
1377
|
+
opacity: number;
|
|
1378
|
+
radius: number;
|
|
1379
|
+
padding?: {
|
|
1380
|
+
x: number;
|
|
1381
|
+
y: number;
|
|
1382
|
+
};
|
|
1383
|
+
paddingX?: number;
|
|
1384
|
+
paddingY?: number;
|
|
1385
|
+
stroke?: {
|
|
1386
|
+
color: string;
|
|
1387
|
+
width: number;
|
|
1388
|
+
};
|
|
1389
|
+
};
|
|
1390
|
+
glitch?: any;
|
|
1391
|
+
animation?: {
|
|
1392
|
+
type: "none" | "typewriter" | "wave" | "fade" | "glitch";
|
|
1393
|
+
speed?: number;
|
|
1394
|
+
amplitude?: number;
|
|
1395
|
+
frequency?: number;
|
|
1396
|
+
};
|
|
1397
|
+
background?: any;
|
|
1398
|
+
stack?: {
|
|
1399
|
+
count: number;
|
|
1400
|
+
offsetX: number;
|
|
1401
|
+
offsetY: number;
|
|
1402
|
+
opacityDecay: number;
|
|
1403
|
+
color1?: string;
|
|
1404
|
+
color2?: string;
|
|
1405
|
+
color3?: string;
|
|
1406
|
+
color4?: string;
|
|
1407
|
+
};
|
|
1408
|
+
text?: string;
|
|
1409
|
+
};
|
|
1410
|
+
/**
|
|
1411
|
+
* Formats Zod validation errors into human-readable messages
|
|
1412
|
+
* @param error - The Zod error object
|
|
1413
|
+
* @returns Array of formatted error messages
|
|
1414
|
+
*/
|
|
1415
|
+
declare function formatValidationErrors(error: z.ZodError): string[];
|
|
1416
|
+
type ValidatedEffectDefinition = z.infer<typeof EffectFullDefinitionSchema>;
|
|
1417
|
+
type ValidatedTextEffectDefinition = z.infer<typeof TextEffectDefinitionSchema>;
|
|
1418
|
+
|
|
296
1419
|
declare function renderTextEffectCore(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, cfg: TextEffectConfig): void;
|
|
297
1420
|
declare class TextEffectRenderer {
|
|
298
1421
|
static draw(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, cfg: TextEffectConfig, _time?: number): void;
|
|
@@ -1042,6 +2165,264 @@ declare function updateKeyframe(doc: SceneDocument, trackIndex: number, keyframe
|
|
|
1042
2165
|
declare function removeKeyframe(doc: SceneDocument, trackIndex: number, keyframeIndex: number): SceneDocument;
|
|
1043
2166
|
declare function duplicateTrackAtPlayhead(doc: SceneDocument, trackIndex: number, previewTime: number): SceneDocument;
|
|
1044
2167
|
|
|
2168
|
+
/**
|
|
2169
|
+
* Updates text properties on a SceneDocument and its cached legacy config.
|
|
2170
|
+
*/
|
|
2171
|
+
declare function updateSceneText(doc: SceneDocument, patch: Partial<{
|
|
2172
|
+
content: string;
|
|
2173
|
+
fontFamily: string;
|
|
2174
|
+
fontWeight: number;
|
|
2175
|
+
fontStyle: "normal" | "italic";
|
|
2176
|
+
fontSize: number;
|
|
2177
|
+
letterSpacing: number;
|
|
2178
|
+
lineHeight: number;
|
|
2179
|
+
textPosX: "left" | "center" | "right";
|
|
2180
|
+
textPosY: "top" | "middle" | "bottom";
|
|
2181
|
+
wrapText: boolean;
|
|
2182
|
+
autoFitText: boolean;
|
|
2183
|
+
perCharFillEnabled: boolean;
|
|
2184
|
+
charFillColors: string[];
|
|
2185
|
+
}>): SceneDocument;
|
|
2186
|
+
/**
|
|
2187
|
+
* Updates or creates the Background Panel (bounding plate) in a SceneDocument.
|
|
2188
|
+
*/
|
|
2189
|
+
declare function updateScenePanel(doc: SceneDocument, patch: Partial<{
|
|
2190
|
+
enabled: boolean;
|
|
2191
|
+
color: string;
|
|
2192
|
+
opacity: number;
|
|
2193
|
+
radius: number;
|
|
2194
|
+
paddingX: number;
|
|
2195
|
+
paddingY: number;
|
|
2196
|
+
strokeEnabled: boolean;
|
|
2197
|
+
strokeColor: string;
|
|
2198
|
+
strokeWidth: number;
|
|
2199
|
+
}>): SceneDocument;
|
|
2200
|
+
/**
|
|
2201
|
+
* Updates or creates the Stroke (outline styling) in a SceneDocument.
|
|
2202
|
+
*/
|
|
2203
|
+
declare function updateSceneStroke(doc: SceneDocument, patch: Partial<{
|
|
2204
|
+
enabled: boolean;
|
|
2205
|
+
strokeColor: string;
|
|
2206
|
+
strokeWidth: number;
|
|
2207
|
+
strokePosition: "outside" | "center" | "inside";
|
|
2208
|
+
strokeOpacity: number;
|
|
2209
|
+
strokeLineJoin: "round" | "miter" | "bevel";
|
|
2210
|
+
strokeBlur: number;
|
|
2211
|
+
strokeType: "single" | "double" | "neon";
|
|
2212
|
+
strokeColorSecondary: string;
|
|
2213
|
+
strokeWidthSecondary: number;
|
|
2214
|
+
strokeFadeRange: number;
|
|
2215
|
+
}>): SceneDocument;
|
|
2216
|
+
/**
|
|
2217
|
+
* Updates or creates the Shadow in a SceneDocument.
|
|
2218
|
+
*/
|
|
2219
|
+
declare function updateSceneShadow(doc: SceneDocument, patch: Partial<{
|
|
2220
|
+
enabled: boolean;
|
|
2221
|
+
shadowColor: string;
|
|
2222
|
+
shadowBlur: number;
|
|
2223
|
+
shadowOffsetX: number;
|
|
2224
|
+
shadowOffsetY: number;
|
|
2225
|
+
shadowOpacity: number;
|
|
2226
|
+
shadowType: "drop" | "inner";
|
|
2227
|
+
}>): SceneDocument;
|
|
2228
|
+
/**
|
|
2229
|
+
* Updates or creates the 3D Bevel/Extrusion in a SceneDocument.
|
|
2230
|
+
*/
|
|
2231
|
+
declare function updateSceneBevel(doc: SceneDocument, patch: Partial<{
|
|
2232
|
+
enabled: boolean;
|
|
2233
|
+
bevelDepth: number;
|
|
2234
|
+
bevelHighlight: string;
|
|
2235
|
+
bevelShadow: string;
|
|
2236
|
+
bevelDirection: "bottom-right" | "bottom" | "right";
|
|
2237
|
+
bevelCoreColor: string;
|
|
2238
|
+
bevelEdgeColor: string;
|
|
2239
|
+
bevelEdgeWidth: number;
|
|
2240
|
+
bevelBlur: number;
|
|
2241
|
+
bevelBlurColor: string;
|
|
2242
|
+
bevelPerspectiveEnabled: boolean;
|
|
2243
|
+
bevelVanishingPointX: number;
|
|
2244
|
+
bevelVanishingPointY: number;
|
|
2245
|
+
bevelFocalLength: number;
|
|
2246
|
+
}>): SceneDocument;
|
|
2247
|
+
/**
|
|
2248
|
+
* Updates or creates the Stack Extrusion (multi-layer overlaps) in a SceneDocument.
|
|
2249
|
+
*/
|
|
2250
|
+
declare function updateSceneStack(doc: SceneDocument, patch: Partial<{
|
|
2251
|
+
enabled: boolean;
|
|
2252
|
+
stackCount: number;
|
|
2253
|
+
stackOffsetX: number;
|
|
2254
|
+
stackOffsetY: number;
|
|
2255
|
+
stackOpacityDecay: number;
|
|
2256
|
+
stackColor1: string;
|
|
2257
|
+
stackColor2: string;
|
|
2258
|
+
stackColor3: string;
|
|
2259
|
+
stackColor4: string;
|
|
2260
|
+
}>): SceneDocument;
|
|
2261
|
+
/**
|
|
2262
|
+
* Updates or creates the Fill layer in a SceneDocument.
|
|
2263
|
+
*/
|
|
2264
|
+
declare function updateSceneFill(doc: SceneDocument, patch: Partial<{
|
|
2265
|
+
fillType: "solid" | "linear" | "radial" | "pattern" | "none";
|
|
2266
|
+
fillColor: string;
|
|
2267
|
+
fillGradientAngle: number;
|
|
2268
|
+
fillGradientStops: GradientStop[];
|
|
2269
|
+
patternType: "chalk" | "noise" | "grunge" | "carbon" | "stripes" | "film" | "brushed" | "marble" | "halftone" | "paper";
|
|
2270
|
+
perCharFillEnabled: boolean;
|
|
2271
|
+
charFillColors: string[];
|
|
2272
|
+
}>): SceneDocument;
|
|
2273
|
+
/**
|
|
2274
|
+
* Updates a specific Glow layer in a SceneDocument by index.
|
|
2275
|
+
* If the index is out of bounds, appends new default glow layers until reached.
|
|
2276
|
+
*/
|
|
2277
|
+
declare function updateSceneGlow(doc: SceneDocument, index: number, patch: Partial<GlowLayer>): SceneDocument;
|
|
2278
|
+
/**
|
|
2279
|
+
* Updates Canvas dimensions on a SceneDocument.
|
|
2280
|
+
*/
|
|
2281
|
+
declare function updateSceneCanvas(doc: SceneDocument, patch: Partial<{
|
|
2282
|
+
width: number;
|
|
2283
|
+
height: number;
|
|
2284
|
+
background: string;
|
|
2285
|
+
}>): SceneDocument;
|
|
2286
|
+
/**
|
|
2287
|
+
* Updates Custom/Procedural Engine parameters (like Ink Brush) on a SceneDocument.
|
|
2288
|
+
*/
|
|
2289
|
+
declare function updateSceneCustomEngine(doc: SceneDocument, patch: Partial<{
|
|
2290
|
+
customRenderer: string;
|
|
2291
|
+
inkColor: string;
|
|
2292
|
+
bristleDensity: number;
|
|
2293
|
+
bristleSkipRate: number;
|
|
2294
|
+
dripRate: number;
|
|
2295
|
+
dripMaxLength: number;
|
|
2296
|
+
grainDensity: number;
|
|
2297
|
+
skewX: number;
|
|
2298
|
+
}>): SceneDocument;
|
|
2299
|
+
/**
|
|
2300
|
+
* Fluent API builder class designed to easily construct, update, and export
|
|
2301
|
+
* text effects programmatically.
|
|
2302
|
+
*/
|
|
2303
|
+
declare class TextEffectBuilder {
|
|
2304
|
+
private config;
|
|
2305
|
+
constructor(initialConfig?: Partial<TextEffectConfig>);
|
|
2306
|
+
/** Load builder from an existing TextEffectConfig object */
|
|
2307
|
+
static fromConfig(config: TextEffectConfig): TextEffectBuilder;
|
|
2308
|
+
/** Load builder from an existing SceneDocument */
|
|
2309
|
+
static fromScene(scene: SceneDocument): TextEffectBuilder;
|
|
2310
|
+
/**
|
|
2311
|
+
* Load builder from a downloaded TextEffectDefinition.
|
|
2312
|
+
* Resolves the styling definition structure to a flat engine config.
|
|
2313
|
+
*/
|
|
2314
|
+
static fromDefinition(effect: TextEffectDefinition, text?: string, fontSize?: number, canvasWidth?: number, canvasHeight?: number): TextEffectBuilder;
|
|
2315
|
+
/** Set text string content */
|
|
2316
|
+
setText(text: string): this;
|
|
2317
|
+
/** Configure Font and alignment settings */
|
|
2318
|
+
setFont(font: Partial<{
|
|
2319
|
+
family: string;
|
|
2320
|
+
weight: number;
|
|
2321
|
+
style: "normal" | "italic";
|
|
2322
|
+
size: number;
|
|
2323
|
+
letterSpacing: number;
|
|
2324
|
+
lineHeight: number;
|
|
2325
|
+
}>): this;
|
|
2326
|
+
/** Configure Background Panel (bounding plate) */
|
|
2327
|
+
setPanel(panel: Partial<{
|
|
2328
|
+
enabled: boolean;
|
|
2329
|
+
color: string;
|
|
2330
|
+
opacity: number;
|
|
2331
|
+
radius: number;
|
|
2332
|
+
paddingX: number;
|
|
2333
|
+
paddingY: number;
|
|
2334
|
+
strokeEnabled: boolean;
|
|
2335
|
+
strokeColor: string;
|
|
2336
|
+
strokeWidth: number;
|
|
2337
|
+
}>): this;
|
|
2338
|
+
/** Configure outline / stroke styling */
|
|
2339
|
+
setStroke(stroke: Partial<{
|
|
2340
|
+
enabled: boolean;
|
|
2341
|
+
color: string;
|
|
2342
|
+
width: number;
|
|
2343
|
+
position: "outside" | "center" | "inside";
|
|
2344
|
+
opacity: number;
|
|
2345
|
+
lineJoin: "round" | "miter" | "bevel";
|
|
2346
|
+
blur: number;
|
|
2347
|
+
type: "single" | "double" | "neon";
|
|
2348
|
+
colorSecondary: string;
|
|
2349
|
+
widthSecondary: number;
|
|
2350
|
+
fadeRange: number;
|
|
2351
|
+
}>): this;
|
|
2352
|
+
/** Configure drop shadow / inner shadow styling */
|
|
2353
|
+
setShadow(shadow: Partial<{
|
|
2354
|
+
enabled: boolean;
|
|
2355
|
+
color: string;
|
|
2356
|
+
blur: number;
|
|
2357
|
+
offsetX: number;
|
|
2358
|
+
offsetY: number;
|
|
2359
|
+
opacity: number;
|
|
2360
|
+
type: "drop" | "inner";
|
|
2361
|
+
}>): this;
|
|
2362
|
+
/** Configure a specific glow layer by index */
|
|
2363
|
+
setGlow(index: number, glow: Partial<GlowLayer>): this;
|
|
2364
|
+
/** Configure solid color fill */
|
|
2365
|
+
setFillColor(color: string): this;
|
|
2366
|
+
/** Configure linear gradient fill */
|
|
2367
|
+
setFillGradient(angle: number, stops: GradientStop[]): this;
|
|
2368
|
+
/** Configure texture pattern fill */
|
|
2369
|
+
setFillPattern(patternType: NonNullable<TextEffectConfig["patternType"]>): this;
|
|
2370
|
+
/** Configure per-character solid color fill overrides */
|
|
2371
|
+
setPerCharFill(enabled: boolean, colors: string[]): this;
|
|
2372
|
+
/** Configure 3D extrusion/bevel settings */
|
|
2373
|
+
setBevel(bevel: Partial<{
|
|
2374
|
+
enabled: boolean;
|
|
2375
|
+
depth: number;
|
|
2376
|
+
highlight: string;
|
|
2377
|
+
bevelShadow: string;
|
|
2378
|
+
direction: "bottom-right" | "bottom" | "right";
|
|
2379
|
+
coreColor: string;
|
|
2380
|
+
edgeColor: string;
|
|
2381
|
+
edgeWidth: number;
|
|
2382
|
+
blur: number;
|
|
2383
|
+
blurColor: string;
|
|
2384
|
+
perspectiveEnabled: boolean;
|
|
2385
|
+
vanishingPointX: number;
|
|
2386
|
+
vanishingPointY: number;
|
|
2387
|
+
focalLength: number;
|
|
2388
|
+
}>): this;
|
|
2389
|
+
/** Configure multi-stack duplicate extrusion */
|
|
2390
|
+
setStack(stack: Partial<{
|
|
2391
|
+
enabled: boolean;
|
|
2392
|
+
count: number;
|
|
2393
|
+
offsetX: number;
|
|
2394
|
+
offsetY: number;
|
|
2395
|
+
opacityDecay: number;
|
|
2396
|
+
color1: string;
|
|
2397
|
+
color2: string;
|
|
2398
|
+
color3: string;
|
|
2399
|
+
color4: string;
|
|
2400
|
+
}>): this;
|
|
2401
|
+
/** Configure canvas viewport size, alignment positioning, and wrapping behavior */
|
|
2402
|
+
setCanvas(canvas: Partial<{
|
|
2403
|
+
width: number;
|
|
2404
|
+
height: number;
|
|
2405
|
+
posX: "left" | "center" | "right";
|
|
2406
|
+
posY: "top" | "middle" | "bottom";
|
|
2407
|
+
wrapText: boolean;
|
|
2408
|
+
autoFitText: boolean;
|
|
2409
|
+
}>): this;
|
|
2410
|
+
/** Configure procedural InkBrushEngine variables (when customRenderer = InkBrushEngine) */
|
|
2411
|
+
setInkBrush(ink: Partial<{
|
|
2412
|
+
inkColor: string;
|
|
2413
|
+
bristleDensity: number;
|
|
2414
|
+
bristleSkipRate: number;
|
|
2415
|
+
dripRate: number;
|
|
2416
|
+
dripMaxLength: number;
|
|
2417
|
+
grainDensity: number;
|
|
2418
|
+
skewX: number;
|
|
2419
|
+
}>): this;
|
|
2420
|
+
/** Build and return a copy of the updated TextEffectConfig */
|
|
2421
|
+
buildConfig(): TextEffectConfig;
|
|
2422
|
+
/** Build and return a SceneDocument prepared for rendering with evaluateScene */
|
|
2423
|
+
buildScene(): SceneDocument;
|
|
2424
|
+
}
|
|
2425
|
+
|
|
1045
2426
|
/**
|
|
1046
2427
|
* Platform Capability Detection
|
|
1047
2428
|
*
|
|
@@ -1183,4 +2564,4 @@ declare class InkBrushEngine {
|
|
|
1183
2564
|
drawFrame(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D): void;
|
|
1184
2565
|
}
|
|
1185
2566
|
|
|
1186
|
-
export { type AnimBuildOpts, type AnimKeyframe, type AnimTrack, type AnimTrackDef, type AnimatableParamDef, type AnimationCategory, type BatchInjection, COMPOSITION_PRESETS, CUSTOM_ENGINE_IDS, CanvasDevice, type CompositionPreset, type CompositorFromScene, type CompositorSettings, type CustomEngineId, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_DURATION, DEFAULT_FONT_SIZE, DEFAULT_FPS, DEFAULT_TEXT_STYLE, type DotLottieManifest, type DrawPerCharTextOptions, EMPHASIS_PRESETS, ENGINE_ID_TO_LEGACY, ENTRANCE_PRESETS, EXIT_PRESETS, type EasingControlPoint, type EffectFullDefinition, type EffectIndexItem, type EffectLayer, type EffectLayerType, type EvaluateOptions, type EvaluatedTextLayer, FONT_WEIGHT_OPTIONS, type FillType, type FontDescriptor, type FontLoadResult, FontLoader, type FontVariant, type GifExportOptions, type GifFrame, type GlowLayer, type GradientDir, type GradientStop, InkBrushEngine, type Keyframe, LEGACY_RENDERER_MAP, LOOP_PRESETS, LOTTIE_ANIM_PRESETS, LOTTIE_TEMPLATE_PRESETS, type LayerTarget, type LottieAnimPreset, type LottieFileInfo, type LottieFontEntry, type LottieFontUsage, type LottieGradientStop, type LottieKeyframe, type LottiePropertyPath, type LottieTemplatePreset, type ParsedTextLayer, type PngSequenceFrame, type PngSequenceOptions, type Preset, SCENE_VERSION, SUPPORTED_FONT_FAMILIES, type SceneCanvas, type SceneDocument, type SceneText, type StyleRecipe, TEMPLATE_CATEGORIES, type TemplatePresetCategory, type TextAlign, type TextCustomization, type TextEffectConfig, type TextEffectDefinition, TextEffectRenderer, type TextLayerConfig, type TextLayerStyle, type TextLayoutBounds, type TextLayoutResult, type TextStyleOverride, type Timeline, WEBM_EXPORT_MAX_FRAMES, WebGLCompositor, type WebMExportOptions, _buildConfig, _resetPlatformCache, addImageLayer, addKeyframeAtTime, addOrUpdateKeyframe, addShapeLayer, addSolidLayer, addTextLayer, addTrack, addVectorShape, advanceSceneTime, alignToLottieJ, applyFillColorToAll, applyLetterSpacing, applyMaskReveal, applyRecipeToScene, applyStyleToLottie, applyStyleToLottieLayer, applyTimelineAtTime, bakeAnimationIntoLayer, blendConfigs, blendScenes, buildDotLottie, buildFontEntries, buildLottieFontName, buildPngSequenceZip, builtInPresets, builtInRecipes, captureLottieFrames, checkFontVariant, clearAnimationFromLayer, clearFontCache, clearRecipeCache, cloneSceneWithNewIds, computeAutoFitFontSize, computeFitZoom, computeTextLayout, countTextGlyphs, createBlankLottie, createCanvas, createDefaultRevealTrack, createEmptyScene, createPulseOpacityTrack, defaultConfig, deleteKeyframe, disposeSharedCompositor, downloadDotLottie, downloadLottieJson, downloadPngSequenceZip, downloadSceneWebM, drawPerCharText, drawRoundedRect, duplicateTrackAtPlayhead, ease, enableKeyframing, encodeGif, ensureDefaultTimeline, ensureFontInLottie, ensureFontsLoaded, evaluateConfig, evaluateScene, findTrackIndex, getAnimPreset, getAnimatableParamDef, getAnimatableParamsForLayer, getDefaultText, getFontLoader, getLayerById, getPresetScene, getSceneTime, getSupportedWebMMimeType, getTemplatePreset, getTemplatesByCategory, getWebMFrameCount, hexToLottieColor, hexToLottieRgb, initializeFontSystem, injectBatch, injectColor, injectFontVariantRules, injectGlobalTextStyle, injectSolidColor, injectText, injectTextStyle, isWebMExportSupported, layerToTextEffectConfig, loadLottieFonts, lottieColorToHex, lottieJToAlign, measureTextFits, mergeSceneIntoConfig, moveKeyframe, newLayerId, parseHistorySnapshot, parseLottieJson, preloadGoogleFont, presetToRecipe, pruneTracksForLayer, rainbowCharFillColors, readLayerScalar, readStyleFromLottieLayer, reindexLayers, releaseCanvas, removeKeyframe, removeTrack, renderPngSequence, renderSceneWebM, renderTextEffectCore, resetFontLoader, resetSceneTime, resizeCharFillColors, resolveAnimatedScalar, resolveCustomEngineId, resolveFontFamilyName, restoreLetterSpacing, scanLottieFonts, scanTextLayers, sceneToConfig, setCharFillColor, setSceneTime, setTracks, shouldUsePerCharFill, snapshotScene, sortKeyframes, supportsCtxFilter, supportsLetterSpacing, supportsOffscreenCanvas, supportsRoundRect, supportsWebGL2, syncCompositorFromScene, textEffectConfigToScene, trackId, updateKeyframe, updateStaticProperty, updateTimeline, updateTrack, updateTrackMatte, upsertKeyframe, waitForFontsReady, wrapTextToWidth };
|
|
2567
|
+
export { type AnimBuildOpts, type AnimKeyframe, type AnimTrack, type AnimTrackDef, type AnimatableParamDef, type AnimationCategory, AnimationSchema, type BatchInjection, COMPOSITION_PRESETS, CUSTOM_ENGINE_IDS, CanvasDevice, type CompositionPreset, type CompositorFromScene, type CompositorSettings, type CustomEngineId, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_DURATION, DEFAULT_FONT_SIZE, DEFAULT_FPS, DEFAULT_TEXT_STYLE, type DotLottieManifest, type DrawPerCharTextOptions, EMPHASIS_PRESETS, ENGINE_ID_TO_LEGACY, ENTRANCE_PRESETS, EXIT_PRESETS, type EasingControlPoint, type EffectBevel, EffectBevelSchema, type EffectFill, EffectFillSchema, type EffectFullDefinition, EffectFullDefinitionSchema, type EffectGlow, EffectGlowSchema, type EffectIndexItem, EffectIndexItemSchema, type EffectLayer, type EffectLayerType, type EffectPanel, EffectPanelSchema, type EffectShadow, EffectShadowSchema, type EffectStack, EffectStackSchema, type EffectStroke, EffectStrokeSchema, type EvaluateOptions, type EvaluatedTextLayer, FONT_WEIGHT_OPTIONS, type FillType, type FontDescriptor, type FontLoadResult, FontLoader, FontSchema, type FontVariant, type GifExportOptions, type GifFrame, type GlowLayer, type GradientDir, type GradientStop, GradientStopSchema, InkBrushEngine, type Keyframe, LEGACY_RENDERER_MAP, LOOP_PRESETS, LOTTIE_ANIM_PRESETS, LOTTIE_TEMPLATE_PRESETS, type LayerTarget, type LottieAnimPreset, type LottieFileInfo, type LottieFontEntry, type LottieFontUsage, type LottieGradientStop, type LottieKeyframe, type LottiePropertyPath, type LottieTemplatePreset, type ParsedTextLayer, type PngSequenceFrame, type PngSequenceOptions, type Preset, SCENE_VERSION, SUPPORTED_FONT_FAMILIES, type SceneCanvas, type SceneDocument, type SceneText, type StyleRecipe, TEMPLATE_CATEGORIES, type TemplatePresetCategory, type TextAlign, type TextCustomization, TextEffectBuilder, type TextEffectConfig, type TextEffectDefinition, TextEffectDefinitionSchema, TextEffectRenderer, type TextLayerConfig, type TextLayerStyle, type TextLayoutBounds, type TextLayoutResult, type TextStyleOverride, type Timeline, type ValidatedEffectDefinition, type ValidatedTextEffectDefinition, WEBM_EXPORT_MAX_FRAMES, WebGLCompositor, type WebMExportOptions, _buildConfig, _resetPlatformCache, addImageLayer, addKeyframeAtTime, addOrUpdateKeyframe, addShapeLayer, addSolidLayer, addTextLayer, addTrack, addVectorShape, advanceSceneTime, alignToLottieJ, applyFillColorToAll, applyLetterSpacing, applyMaskReveal, applyRecipeToScene, applyStyleToLottie, applyStyleToLottieLayer, applyTimelineAtTime, bakeAnimationIntoLayer, blendConfigs, blendScenes, buildDotLottie, buildFontEntries, buildLottieFontName, buildPngSequenceZip, builtInPresets, builtInRecipes, captureLottieFrames, checkFontVariant, clearAnimationFromLayer, clearFontCache, clearRecipeCache, cloneSceneWithNewIds, computeAutoFitFontSize, computeFitZoom, computeTextLayout, countTextGlyphs, createBlankLottie, createCanvas, createDefaultRevealTrack, createEmptyScene, createPulseOpacityTrack, defaultConfig, deleteKeyframe, disposeSharedCompositor, downloadDotLottie, downloadLottieJson, downloadPngSequenceZip, downloadSceneWebM, drawPerCharText, drawRoundedRect, duplicateTrackAtPlayhead, ease, enableKeyframing, encodeGif, ensureDefaultTimeline, ensureFontInLottie, ensureFontsLoaded, evaluateConfig, evaluateScene, findTrackIndex, formatValidationErrors, getAnimPreset, getAnimatableParamDef, getAnimatableParamsForLayer, getDefaultText, getFontLoader, getLayerById, getPresetScene, getSceneTime, getSupportedWebMMimeType, getTemplatePreset, getTemplatesByCategory, getWebMFrameCount, hexToLottieColor, hexToLottieRgb, initializeFontSystem, injectBatch, injectColor, injectFontVariantRules, injectGlobalTextStyle, injectSolidColor, injectText, injectTextStyle, isWebMExportSupported, layerToTextEffectConfig, loadLottieFonts, lottieColorToHex, lottieJToAlign, measureTextFits, mergeSceneIntoConfig, moveKeyframe, newLayerId, parseHistorySnapshot, parseLottieJson, preloadGoogleFont, presetToRecipe, pruneTracksForLayer, rainbowCharFillColors, readLayerScalar, readStyleFromLottieLayer, reindexLayers, releaseCanvas, removeKeyframe, removeTrack, renderPngSequence, renderSceneWebM, renderTextEffectCore, resetFontLoader, resetSceneTime, resizeCharFillColors, resolveAnimatedScalar, resolveCustomEngineId, resolveFontFamilyName, restoreLetterSpacing, scanLottieFonts, scanTextLayers, sceneToConfig, setCharFillColor, setSceneTime, setTracks, shouldUsePerCharFill, snapshotScene, sortKeyframes, supportsCtxFilter, supportsLetterSpacing, supportsOffscreenCanvas, supportsRoundRect, supportsWebGL2, syncCompositorFromScene, textEffectConfigToScene, trackId, updateKeyframe, updateSceneBevel, updateSceneCanvas, updateSceneCustomEngine, updateSceneFill, updateSceneGlow, updateScenePanel, updateSceneShadow, updateSceneStack, updateSceneStroke, updateSceneText, updateStaticProperty, updateTimeline, updateTrack, updateTrackMatte, upsertKeyframe, validateEffectDefinition, validateEffectDefinitionStrict, validateTextEffectDefinition, validateTextEffectDefinitionStrict, waitForFontsReady, wrapTextToWidth };
|