@pixerate/editor 0.126.0 → 0.127.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.
Files changed (97) hide show
  1. package/dist/animation/index.d.cts +2 -3
  2. package/dist/animation/index.d.ts +2 -3
  3. package/dist/animation-editor/index.cjs +63 -63
  4. package/dist/animation-editor/index.cjs.map +1 -1
  5. package/dist/animation-editor/index.d.cts +6 -8
  6. package/dist/animation-editor/index.d.ts +6 -8
  7. package/dist/animation-editor/index.js +10 -10
  8. package/dist/{bezier-CBzKKDjl.d.cts → bezier-DBz0IgEt.d.cts} +22 -2
  9. package/dist/{bezier-CWv6LQal.d.ts → bezier-DWI5MEkI.d.ts} +22 -2
  10. package/dist/{brushstrokeRender-LRV7GXGD.js → brushstrokeRender-7RUITO42.js} +3 -3
  11. package/dist/{brushstrokeRender-EELTV7U4.cjs → brushstrokeRender-OW6ENCZG.cjs} +7 -7
  12. package/dist/{brushstrokeRender-EELTV7U4.cjs.map → brushstrokeRender-OW6ENCZG.cjs.map} +1 -1
  13. package/dist/canvas/index.cjs +423 -37
  14. package/dist/canvas/index.cjs.map +1 -1
  15. package/dist/canvas/index.d.cts +189 -11
  16. package/dist/canvas/index.d.ts +189 -11
  17. package/dist/canvas/index.js +395 -9
  18. package/dist/canvas/index.js.map +1 -1
  19. package/dist/{chunk-7LQO6OHH.cjs → chunk-33SO3QWP.cjs} +4 -4
  20. package/dist/{chunk-7LQO6OHH.cjs.map → chunk-33SO3QWP.cjs.map} +1 -1
  21. package/dist/{chunk-MPQAO33O.js → chunk-A6KHMKI4.js} +3 -3
  22. package/dist/{chunk-V5YGPRCZ.cjs → chunk-BEGEWQHD.cjs} +41 -41
  23. package/dist/{chunk-V5YGPRCZ.cjs.map → chunk-BEGEWQHD.cjs.map} +1 -1
  24. package/dist/{chunk-N3FVUOZD.cjs → chunk-BJTCSLF6.cjs} +7 -7
  25. package/dist/{chunk-N3FVUOZD.cjs.map → chunk-BJTCSLF6.cjs.map} +1 -1
  26. package/dist/{chunk-WUDPFWAN.js → chunk-F7Q2NE2Y.js} +3 -3
  27. package/dist/{chunk-GUZ47CJM.cjs → chunk-IZ4WRXZA.cjs} +1 -1
  28. package/dist/{chunk-GUZ47CJM.cjs.map → chunk-IZ4WRXZA.cjs.map} +1 -1
  29. package/dist/{chunk-GLWZXQ4Q.js → chunk-KHNZ6MOU.js} +1 -1
  30. package/dist/chunk-KHNZ6MOU.js.map +1 -0
  31. package/dist/{chunk-GCJWMEYW.cjs → chunk-KSJLDRHK.cjs} +46 -46
  32. package/dist/{chunk-GCJWMEYW.cjs.map → chunk-KSJLDRHK.cjs.map} +1 -1
  33. package/dist/{chunk-QQKTOA4U.cjs → chunk-ORE334I6.cjs} +132 -132
  34. package/dist/{chunk-QQKTOA4U.cjs.map → chunk-ORE334I6.cjs.map} +1 -1
  35. package/dist/{chunk-X6KTSFAE.js → chunk-Q4NBEVV5.js} +2 -2
  36. package/dist/{chunk-FPRIUR4T.js → chunk-ROZFX4QI.js} +3 -3
  37. package/dist/{chunk-J67OLQUQ.js → chunk-UABQTYQF.js} +3 -3
  38. package/dist/{chunk-O5RVCDEC.cjs → chunk-XLUYXUBD.cjs} +88 -88
  39. package/dist/{chunk-O5RVCDEC.cjs.map → chunk-XLUYXUBD.cjs.map} +1 -1
  40. package/dist/{chunk-FG274FYT.js → chunk-YGJIER2R.js} +2 -2
  41. package/dist/effects/index.d.cts +6 -38
  42. package/dist/effects/index.d.ts +6 -38
  43. package/dist/evaluate-BbCeF6pt.d.ts +114 -0
  44. package/dist/evaluate-BsxYieLN.d.cts +114 -0
  45. package/dist/{export-DVl4fWy5.d.cts → export-Cbr9IqpJ.d.cts} +1 -1
  46. package/dist/{export-Bp7ji2r4.d.cts → export-CcldobdN.d.cts} +3 -3
  47. package/dist/{export-C1s4eolZ.d.ts → export-ClPKUB-v.d.ts} +1 -1
  48. package/dist/{export-DAyPY94f.d.ts → export-PGhOpDmz.d.ts} +3 -3
  49. package/dist/{helpers-i95Ob6Vi.d.cts → helpers-C5aAd44p.d.cts} +67 -4
  50. package/dist/{helpers-BBLlekuM.d.ts → helpers-CPWcK504.d.ts} +67 -4
  51. package/dist/image-editor/index.cjs +606 -606
  52. package/dist/image-editor/index.cjs.map +1 -1
  53. package/dist/image-editor/index.d.cts +9 -11
  54. package/dist/image-editor/index.d.ts +9 -11
  55. package/dist/image-editor/index.js +4 -4
  56. package/dist/{opentype-14PDI5D2.d.ts → opentype-01rMIuQR.d.ts} +1 -1
  57. package/dist/{opentype-D80AVmMu.d.cts → opentype-BgqvmGT-.d.cts} +1 -1
  58. package/dist/paint-editor/index.cjs +9 -9
  59. package/dist/paint-editor/index.cjs.map +1 -1
  60. package/dist/paint-editor/index.d.cts +6 -8
  61. package/dist/paint-editor/index.d.ts +6 -8
  62. package/dist/paint-editor/index.js +4 -4
  63. package/dist/{pathfinder-DjISxkUv.d.ts → pathfinder-D-h0Imus.d.ts} +1 -1
  64. package/dist/{pathfinder-C0UoFypx.d.cts → pathfinder-DgG0Z9Lr.d.cts} +1 -1
  65. package/dist/{player-cGLrngL_.d.ts → player-BK2kKbfd.d.ts} +1 -1
  66. package/dist/{player-CBtEoU2x.d.cts → player-CmbY3218.d.cts} +1 -1
  67. package/dist/pool-C7GtrL34.d.cts +34 -0
  68. package/dist/pool-CTrtciaN.d.ts +34 -0
  69. package/dist/{svg-DJKriJ4A.d.ts → svg-BRLwcibA.d.ts} +2 -3
  70. package/dist/{svg-BkRL-fZJ.d.cts → svg-DLBBPQP9.d.cts} +2 -3
  71. package/dist/{tools-CM8Oe8F3.d.ts → tools-AugT22z3.d.ts} +1 -1
  72. package/dist/{tools-DZCv2kX1.d.cts → tools-BpCmUNxb.d.cts} +1 -1
  73. package/dist/vector/index.cjs +918 -918
  74. package/dist/vector/index.cjs.map +1 -1
  75. package/dist/vector/index.d.cts +10 -12
  76. package/dist/vector/index.d.ts +10 -12
  77. package/dist/vector/index.js +11 -11
  78. package/dist/video-editor/index.d.cts +6 -8
  79. package/dist/video-editor/index.d.ts +6 -8
  80. package/dist/{warp-CH9MM435.d.cts → warp-C13L_GRn.d.cts} +1 -1
  81. package/dist/{warp-k_PdtXOG.d.ts → warp-q8FK5HHi.d.ts} +1 -1
  82. package/package.json +1 -1
  83. package/skills/pixerate-canvas/SKILL.md +19 -0
  84. package/dist/behavior-Ymbld6jL.d.cts +0 -60
  85. package/dist/behavior-Ymbld6jL.d.ts +0 -60
  86. package/dist/chunk-GLWZXQ4Q.js.map +0 -1
  87. package/dist/evaluate-2S3vSPLy.d.cts +0 -55
  88. package/dist/evaluate-CfmT6xA3.d.ts +0 -55
  89. package/dist/gradient-KDfCvhuj.d.cts +0 -66
  90. package/dist/gradient-KDfCvhuj.d.ts +0 -66
  91. /package/dist/{brushstrokeRender-LRV7GXGD.js.map → brushstrokeRender-7RUITO42.js.map} +0 -0
  92. /package/dist/{chunk-MPQAO33O.js.map → chunk-A6KHMKI4.js.map} +0 -0
  93. /package/dist/{chunk-WUDPFWAN.js.map → chunk-F7Q2NE2Y.js.map} +0 -0
  94. /package/dist/{chunk-X6KTSFAE.js.map → chunk-Q4NBEVV5.js.map} +0 -0
  95. /package/dist/{chunk-FPRIUR4T.js.map → chunk-ROZFX4QI.js.map} +0 -0
  96. /package/dist/{chunk-J67OLQUQ.js.map → chunk-UABQTYQF.js.map} +0 -0
  97. /package/dist/{chunk-FG274FYT.js.map → chunk-YGJIER2R.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  formatNumber,
4
4
  parseSvgPath,
5
5
  polygonToSvgPath
6
- } from "./chunk-GLWZXQ4Q.js";
6
+ } from "./chunk-KHNZ6MOU.js";
7
7
 
8
8
  // src/canvas/pathops/bezier.ts
9
9
  var sub = (a, b) => [a[0] - b[0], a[1] - b[1]];
@@ -2706,4 +2706,4 @@ export {
2706
2706
  outlineStroke,
2707
2707
  offsetPath
2708
2708
  };
2709
- //# sourceMappingURL=chunk-FG274FYT.js.map
2709
+ //# sourceMappingURL=chunk-YGJIER2R.js.map
@@ -1,12 +1,11 @@
1
- import { E as EffectProvider, A as EffectProviderCapabilities, B as EffectRenderRequest, a as EffectUse, C as EffectValue, D as EffectDescription, F as EffectPixels, G as EffectSummary } from '../helpers-i95Ob6Vi.cjs';
2
- export { H as EFFECT_KINDS, I as EFFECT_USES, J as EffectControlSchema, K as EffectImageSource, L as EffectInputSpec, M as EffectKind, N as EffectPreset, O as EffectRenderer, P as EffectRendererOptions, Q as EffectSearchOptions, R as EffectSvgAnimation, S as EffectValues, T as EffectVectorMotion, U as EffectVectorTarget, W as EffectsSlot, X as applyEffectMask, Y as createEffectPixels, Z as effectValueErrors, _ as encodeEffectFloat, $ as isEffectPixels, a0 as linearToSrgb, a1 as resolveEffectValues, a2 as searchEffectSummaries, a3 as srgbToLinear } from '../helpers-i95Ob6Vi.cjs';
1
+ import { E as EffectProvider, d as EffectProviderCapabilities, a as EffectRenderRequest, c as EffectUse, e as EffectValue, f as EffectDescription, b as EffectPixels, g as EffectSummary } from '../helpers-C5aAd44p.cjs';
2
+ export { h as EFFECT_KINDS, i as EFFECT_USES, j as EffectControlSchema, k as EffectImageSource, l as EffectInputSpec, m as EffectKind, n as EffectPreset, o as EffectRenderer, p as EffectRendererOptions, q as EffectSearchOptions, r as EffectSvgAnimation, s as EffectValues, t as EffectVectorMotion, u as EffectVectorTarget, v as EffectsSlot, w as applyEffectMask, x as createEffectPixels, y as effectValueErrors, z as encodeEffectFloat, A as isEffectPixels, B as linearToSrgb, D as resolveEffectValues, F as searchEffectSummaries, G as srgbToLinear } from '../helpers-C5aAd44p.cjs';
3
3
  import { S as SchemaValidationError, J as JsonSchema } from '../schema-Di0CS6Pe.cjs';
4
- export { A as AppliedEffectInfo, E as EffectChangeResult, a as EffectTargetEffects, b as EffectToolContext, c as EffectToolHost, d as createEffectToolProvider } from '../tools-DZCv2kX1.cjs';
4
+ export { A as AppliedEffectInfo, E as EffectChangeResult, a as EffectTargetEffects, b as EffectToolContext, c as EffectToolHost, d as createEffectToolProvider } from '../tools-BpCmUNxb.cjs';
5
5
  import { P as ParameterField, a as ParameterValue } from '../types-DMcf_z4J.cjs';
6
- import '../behavior-Ymbld6jL.cjs';
6
+ export { E as EffectRendererPool, a as EffectRendererPoolOptions } from '../pool-C7GtrL34.cjs';
7
+ import '../evaluate-BsxYieLN.cjs';
7
8
  import '../easing-lM0Xo9Ni.cjs';
8
- import '../evaluate-2S3vSPLy.cjs';
9
- import '../gradient-KDfCvhuj.cjs';
10
9
  import '../types-CwMPoRMU.cjs';
11
10
  import '../registry-BqA1AZt0.cjs';
12
11
 
@@ -128,35 +127,4 @@ declare function groupEffectsByCategory<T extends EffectSummary>(effects: readon
128
127
  effects: T[];
129
128
  }[];
130
129
 
131
- /**
132
- * `EffectRendererPool`: keeps a few live renderers, reused per effect, size and depth.
133
- *
134
- * GPU providers hold one graphics context per renderer, and browsers allow only about sixteen
135
- * WebGL contexts at a time (the oldest is lost after that). So the pool keeps at most
136
- * `maxRenderers` renderers. It disposes the least recently used one once its renders finish, and it
137
- * runs one render at a time per renderer, as the contract requires.
138
- */
139
-
140
- interface EffectRendererPoolOptions {
141
- /** Most live renderers (default 4). */
142
- maxRenderers?: number;
143
- }
144
- declare class EffectRendererPool {
145
- private readonly entries;
146
- private readonly maxRenderers;
147
- constructor(options?: EffectRendererPoolOptions);
148
- /** Live renderers now. */
149
- get size(): number;
150
- /** Renders `request` with the provider's renderer for this effect, size and depth (made on first use). */
151
- render(provider: EffectProvider, id: string, size: {
152
- width: number;
153
- height: number;
154
- depth?: 8 | 16 | 32;
155
- }, request: EffectRenderRequest): Promise<EffectPixels>;
156
- /** Disposes the least recently used renderers over the limit, after their queued renders. */
157
- private evict;
158
- /** Disposes every renderer (after its queued renders). */
159
- clear(): void;
160
- }
161
-
162
- export { EFFECT_ERROR_CODES, EFFECT_USE_LABELS, type EffectConformanceIssue, type EffectConformanceOptions, EffectControlError, EffectDescription, EffectDisposedError, EffectError, type EffectErrorCode, EffectPixels, EffectProvider, EffectProviderCapabilities, EffectRenderRequest, EffectRendererPool, type EffectRendererPoolOptions, EffectSummary, EffectUnsupportedError, EffectUse, EffectValue, type FakeEffectProviderOptions, NoEffectsProviderError, UnknownEffectError, checkEffectProvider, createFakeEffectProvider, effectControlField, effectFieldValue, effectParameterFields, effectSamplePicture, groupEffectsByCategory, isEffectError, renderEffectThumbnail };
130
+ export { EFFECT_ERROR_CODES, EFFECT_USE_LABELS, type EffectConformanceIssue, type EffectConformanceOptions, EffectControlError, EffectDescription, EffectDisposedError, EffectError, type EffectErrorCode, EffectPixels, EffectProvider, EffectProviderCapabilities, EffectRenderRequest, EffectSummary, EffectUnsupportedError, EffectUse, EffectValue, type FakeEffectProviderOptions, NoEffectsProviderError, UnknownEffectError, checkEffectProvider, createFakeEffectProvider, effectControlField, effectFieldValue, effectParameterFields, effectSamplePicture, groupEffectsByCategory, isEffectError, renderEffectThumbnail };
@@ -1,12 +1,11 @@
1
- import { E as EffectProvider, A as EffectProviderCapabilities, B as EffectRenderRequest, a as EffectUse, C as EffectValue, D as EffectDescription, F as EffectPixels, G as EffectSummary } from '../helpers-BBLlekuM.js';
2
- export { H as EFFECT_KINDS, I as EFFECT_USES, J as EffectControlSchema, K as EffectImageSource, L as EffectInputSpec, M as EffectKind, N as EffectPreset, O as EffectRenderer, P as EffectRendererOptions, Q as EffectSearchOptions, R as EffectSvgAnimation, S as EffectValues, T as EffectVectorMotion, U as EffectVectorTarget, W as EffectsSlot, X as applyEffectMask, Y as createEffectPixels, Z as effectValueErrors, _ as encodeEffectFloat, $ as isEffectPixels, a0 as linearToSrgb, a1 as resolveEffectValues, a2 as searchEffectSummaries, a3 as srgbToLinear } from '../helpers-BBLlekuM.js';
1
+ import { E as EffectProvider, d as EffectProviderCapabilities, a as EffectRenderRequest, c as EffectUse, e as EffectValue, f as EffectDescription, b as EffectPixels, g as EffectSummary } from '../helpers-CPWcK504.js';
2
+ export { h as EFFECT_KINDS, i as EFFECT_USES, j as EffectControlSchema, k as EffectImageSource, l as EffectInputSpec, m as EffectKind, n as EffectPreset, o as EffectRenderer, p as EffectRendererOptions, q as EffectSearchOptions, r as EffectSvgAnimation, s as EffectValues, t as EffectVectorMotion, u as EffectVectorTarget, v as EffectsSlot, w as applyEffectMask, x as createEffectPixels, y as effectValueErrors, z as encodeEffectFloat, A as isEffectPixels, B as linearToSrgb, D as resolveEffectValues, F as searchEffectSummaries, G as srgbToLinear } from '../helpers-CPWcK504.js';
3
3
  import { S as SchemaValidationError, J as JsonSchema } from '../schema-Di0CS6Pe.js';
4
- export { A as AppliedEffectInfo, E as EffectChangeResult, a as EffectTargetEffects, b as EffectToolContext, c as EffectToolHost, d as createEffectToolProvider } from '../tools-CM8Oe8F3.js';
4
+ export { A as AppliedEffectInfo, E as EffectChangeResult, a as EffectTargetEffects, b as EffectToolContext, c as EffectToolHost, d as createEffectToolProvider } from '../tools-AugT22z3.js';
5
5
  import { P as ParameterField, a as ParameterValue } from '../types-D3-J3TFf.js';
6
- import '../behavior-Ymbld6jL.js';
6
+ export { E as EffectRendererPool, a as EffectRendererPoolOptions } from '../pool-CTrtciaN.js';
7
+ import '../evaluate-BbCeF6pt.js';
7
8
  import '../easing-lM0Xo9Ni.js';
8
- import '../evaluate-CfmT6xA3.js';
9
- import '../gradient-KDfCvhuj.js';
10
9
  import '../types-CwMPoRMU.js';
11
10
  import '../registry-D-4fit9C.js';
12
11
 
@@ -128,35 +127,4 @@ declare function groupEffectsByCategory<T extends EffectSummary>(effects: readon
128
127
  effects: T[];
129
128
  }[];
130
129
 
131
- /**
132
- * `EffectRendererPool`: keeps a few live renderers, reused per effect, size and depth.
133
- *
134
- * GPU providers hold one graphics context per renderer, and browsers allow only about sixteen
135
- * WebGL contexts at a time (the oldest is lost after that). So the pool keeps at most
136
- * `maxRenderers` renderers. It disposes the least recently used one once its renders finish, and it
137
- * runs one render at a time per renderer, as the contract requires.
138
- */
139
-
140
- interface EffectRendererPoolOptions {
141
- /** Most live renderers (default 4). */
142
- maxRenderers?: number;
143
- }
144
- declare class EffectRendererPool {
145
- private readonly entries;
146
- private readonly maxRenderers;
147
- constructor(options?: EffectRendererPoolOptions);
148
- /** Live renderers now. */
149
- get size(): number;
150
- /** Renders `request` with the provider's renderer for this effect, size and depth (made on first use). */
151
- render(provider: EffectProvider, id: string, size: {
152
- width: number;
153
- height: number;
154
- depth?: 8 | 16 | 32;
155
- }, request: EffectRenderRequest): Promise<EffectPixels>;
156
- /** Disposes the least recently used renderers over the limit, after their queued renders. */
157
- private evict;
158
- /** Disposes every renderer (after its queued renders). */
159
- clear(): void;
160
- }
161
-
162
- export { EFFECT_ERROR_CODES, EFFECT_USE_LABELS, type EffectConformanceIssue, type EffectConformanceOptions, EffectControlError, EffectDescription, EffectDisposedError, EffectError, type EffectErrorCode, EffectPixels, EffectProvider, EffectProviderCapabilities, EffectRenderRequest, EffectRendererPool, type EffectRendererPoolOptions, EffectSummary, EffectUnsupportedError, EffectUse, EffectValue, type FakeEffectProviderOptions, NoEffectsProviderError, UnknownEffectError, checkEffectProvider, createFakeEffectProvider, effectControlField, effectFieldValue, effectParameterFields, effectSamplePicture, groupEffectsByCategory, isEffectError, renderEffectThumbnail };
130
+ export { EFFECT_ERROR_CODES, EFFECT_USE_LABELS, type EffectConformanceIssue, type EffectConformanceOptions, EffectControlError, EffectDescription, EffectDisposedError, EffectError, type EffectErrorCode, EffectPixels, EffectProvider, EffectProviderCapabilities, EffectRenderRequest, EffectSummary, EffectUnsupportedError, EffectUse, EffectValue, type FakeEffectProviderOptions, NoEffectsProviderError, UnknownEffectError, checkEffectProvider, createFakeEffectProvider, effectControlField, effectFieldValue, effectParameterFields, effectSamplePicture, groupEffectsByCategory, isEffectError, renderEffectThumbnail };
@@ -0,0 +1,114 @@
1
+ import { b as AnimationEasing } from './easing-lM0Xo9Ni.js';
2
+
3
+ /**
4
+ * Behaviours: how a change gets from `from` to `to` other than straight along its ease (a
5
+ * pulse there and back, an oscillation, a seeded wriggle, a springy overshoot). Ported from
6
+ * `@pixerate/flair` (MIT): `SvgBehavior` and `behaviorProgress` in `vector/motion.ts`, the
7
+ * oscillate and overshoot evaluators in `scene/behavior.ts` and the noise in `time/noise.ts`.
8
+ * The numbers must stay identical to Flair's, so a behaviour exported to Flair plays the same
9
+ * frames there as here (the animation editor writes them as Flair `behavior`s, Flair ≥ 0.38).
10
+ */
11
+ /**
12
+ * A behaviour: its progress `u` at each moment, where 0 is `from`, 1 is `to`, and numbers go
13
+ * past either. `t` is the change's time, 0–1, through its ease (linear unless given).
14
+ *
15
+ * - `pulse`: there and back `count` times (default 1): u = sin²(π·count·t).
16
+ * - `oscillate`: swings round `from`, out to `to` and as far the other way, `count` times
17
+ * (default 1), dying away by (1 − t)^`decay` (default 0, no decay).
18
+ * - `wriggle`: wanders round `from` by up to about `to − from`, as seeded smooth fractal noise
19
+ * at `frequency` Hz (default 2) with `octaves` layers (default 2); each number in a value
20
+ * wanders on its own channel. It eases out of and back to rest over the first and last 15%
21
+ * of its time. The same `seed` (default 42) gives the same wander.
22
+ * - `overshoot`: goes to `to`, past it and back, settling like a spring:
23
+ * u = 1 − e^(−damping·t)·cos(cycles·π·t) (default 3 cycles, damping 4).
24
+ */
25
+ type MotionBehavior = {
26
+ type: 'pulse';
27
+ count?: number;
28
+ } | {
29
+ type: 'oscillate';
30
+ count?: number;
31
+ decay?: number;
32
+ wave?: 'sine' | 'triangle' | 'square' | 'sawtooth';
33
+ } | {
34
+ type: 'wriggle';
35
+ frequency?: number;
36
+ octaves?: number;
37
+ seed?: number;
38
+ } | {
39
+ type: 'overshoot';
40
+ cycles?: number;
41
+ damping?: number;
42
+ };
43
+ /** Every `MotionBehavior` type. */
44
+ declare const MOTION_BEHAVIORS: readonly ["pulse", "oscillate", "wriggle", "overshoot"];
45
+ /**
46
+ * A behaviour's progress at `t` (0–1, eased) of a change lasting `ms`, for the `index`-th number
47
+ * in a value (only a wriggle tells numbers apart).
48
+ */
49
+ declare function behaviorProgress(behavior: MotionBehavior, t: number, index?: number, ms?: number): number;
50
+ /** Whether `value` is a well-formed `MotionBehavior`. */
51
+ declare function isMotionBehavior(value: unknown): value is MotionBehavior;
52
+ /** A seed from an id (FNV-1a), so each element wriggles its own way: Flair's `seedOf`. */
53
+ declare function motionSeedFromId(id: string): number;
54
+ /** 6t⁵ − 15t⁴ + 10t³: zero slope and curvature at 0 and 1. */
55
+ declare function quinticFade(t: number): number;
56
+ /**
57
+ * Multi-octave smooth noise (After Effects' `wiggle`): the sum over `octaves` of
58
+ * amp·ampMult^k · noise(freq·2^k·t), each octave and `dimension` seeded apart. `t` in seconds.
59
+ */
60
+ declare function fractalWiggle(freq: number, amp: number, octaves?: number, ampMult?: number, t?: number, seed?: number, dimension?: number): number;
61
+
62
+ /**
63
+ * Keyframe tracks, independent of what they animate: each track is a list of keyframes
64
+ * `{ time (ms), value, easing }`, where the easing governs the segment *leaving* the keyframe
65
+ * (filmcraft / After Effects convention).
66
+ */
67
+ /** Keyframe times closer than this (ms) are the same time. */
68
+ declare const ANIMATION_TIME_EPSILON = 0.000001;
69
+ /** A keyframe value: a number, or a CSS colour for colour properties. */
70
+ type AnimationValue = number | string;
71
+ interface AnimationKeyframe {
72
+ /** Time in milliseconds from the start of the timeline. */
73
+ time: number;
74
+ value: AnimationValue;
75
+ /** Easing of the segment from this keyframe to the next (default `linear`). */
76
+ easing?: AnimationEasing;
77
+ }
78
+ interface AnimationTrack {
79
+ keyframes: AnimationKeyframe[];
80
+ /** Disabled tracks keep their keyframes but do not animate (default `true`). */
81
+ enabled?: boolean;
82
+ }
83
+ /** How a track's values interpolate: numbers linearly, colours in OKLab. */
84
+ type AnimationValueType = 'number' | 'color';
85
+ /** Whether `value` is a well-formed keyframe. */
86
+ declare function isAnimationKeyframe(value: unknown): value is AnimationKeyframe;
87
+ /**
88
+ * Keyframes sorted by time, invalid entries dropped and duplicate times merged (the *later*
89
+ * entry in the array wins, so appending a keyframe replaces one at the same time). Cached per
90
+ * array (revalidated by element identity), so evaluating every frame does not re-sort; treat
91
+ * keyframe objects as immutable.
92
+ */
93
+ declare function normalizeKeyframes(keyframes: readonly AnimationKeyframe[] | undefined | null): AnimationKeyframe[];
94
+
95
+ /** How time past the end of the timeline maps back into it. */
96
+ type AnimationLoopMode = 'none' | 'loop' | 'ping-pong';
97
+ /**
98
+ * Interpolates between two keyframe values: numbers linearly, colours in OKLab (premultiplied
99
+ * alpha). Mismatched or unreadable values hold `from` until `t` reaches 1.
100
+ */
101
+ declare function interpolateAnimationValue(from: AnimationValue, to: AnimationValue, t: number, type?: AnimationValueType): AnimationValue;
102
+ /**
103
+ * A track's value at `time`. Before the first keyframe it holds the first value, after the
104
+ * last the last value. Keyframes may be unsorted or share times (see `normalizeKeyframes`).
105
+ * Returns `undefined` for a track without valid keyframes.
106
+ */
107
+ declare function evaluateTrack(track: AnimationTrack | readonly AnimationKeyframe[] | undefined | null, time: number, type?: AnimationValueType): AnimationValue | undefined;
108
+ /**
109
+ * Maps a running time onto the timeline `[0, duration]`: clamped (`none`), wrapped (`loop`)
110
+ * or bounced (`ping-pong`).
111
+ */
112
+ declare function wrapAnimationTime(time: number, duration: number, loop?: AnimationLoopMode): number;
113
+
114
+ export { ANIMATION_TIME_EPSILON as A, MOTION_BEHAVIORS as M, type AnimationKeyframe as a, type AnimationLoopMode as b, type AnimationTrack as c, type AnimationValue as d, type AnimationValueType as e, type MotionBehavior as f, behaviorProgress as g, evaluateTrack as h, fractalWiggle as i, interpolateAnimationValue as j, isAnimationKeyframe as k, isMotionBehavior as l, motionSeedFromId as m, normalizeKeyframes as n, quinticFade as q, wrapAnimationTime as w };
@@ -0,0 +1,114 @@
1
+ import { b as AnimationEasing } from './easing-lM0Xo9Ni.cjs';
2
+
3
+ /**
4
+ * Behaviours: how a change gets from `from` to `to` other than straight along its ease (a
5
+ * pulse there and back, an oscillation, a seeded wriggle, a springy overshoot). Ported from
6
+ * `@pixerate/flair` (MIT): `SvgBehavior` and `behaviorProgress` in `vector/motion.ts`, the
7
+ * oscillate and overshoot evaluators in `scene/behavior.ts` and the noise in `time/noise.ts`.
8
+ * The numbers must stay identical to Flair's, so a behaviour exported to Flair plays the same
9
+ * frames there as here (the animation editor writes them as Flair `behavior`s, Flair ≥ 0.38).
10
+ */
11
+ /**
12
+ * A behaviour: its progress `u` at each moment, where 0 is `from`, 1 is `to`, and numbers go
13
+ * past either. `t` is the change's time, 0–1, through its ease (linear unless given).
14
+ *
15
+ * - `pulse`: there and back `count` times (default 1): u = sin²(π·count·t).
16
+ * - `oscillate`: swings round `from`, out to `to` and as far the other way, `count` times
17
+ * (default 1), dying away by (1 − t)^`decay` (default 0, no decay).
18
+ * - `wriggle`: wanders round `from` by up to about `to − from`, as seeded smooth fractal noise
19
+ * at `frequency` Hz (default 2) with `octaves` layers (default 2); each number in a value
20
+ * wanders on its own channel. It eases out of and back to rest over the first and last 15%
21
+ * of its time. The same `seed` (default 42) gives the same wander.
22
+ * - `overshoot`: goes to `to`, past it and back, settling like a spring:
23
+ * u = 1 − e^(−damping·t)·cos(cycles·π·t) (default 3 cycles, damping 4).
24
+ */
25
+ type MotionBehavior = {
26
+ type: 'pulse';
27
+ count?: number;
28
+ } | {
29
+ type: 'oscillate';
30
+ count?: number;
31
+ decay?: number;
32
+ wave?: 'sine' | 'triangle' | 'square' | 'sawtooth';
33
+ } | {
34
+ type: 'wriggle';
35
+ frequency?: number;
36
+ octaves?: number;
37
+ seed?: number;
38
+ } | {
39
+ type: 'overshoot';
40
+ cycles?: number;
41
+ damping?: number;
42
+ };
43
+ /** Every `MotionBehavior` type. */
44
+ declare const MOTION_BEHAVIORS: readonly ["pulse", "oscillate", "wriggle", "overshoot"];
45
+ /**
46
+ * A behaviour's progress at `t` (0–1, eased) of a change lasting `ms`, for the `index`-th number
47
+ * in a value (only a wriggle tells numbers apart).
48
+ */
49
+ declare function behaviorProgress(behavior: MotionBehavior, t: number, index?: number, ms?: number): number;
50
+ /** Whether `value` is a well-formed `MotionBehavior`. */
51
+ declare function isMotionBehavior(value: unknown): value is MotionBehavior;
52
+ /** A seed from an id (FNV-1a), so each element wriggles its own way: Flair's `seedOf`. */
53
+ declare function motionSeedFromId(id: string): number;
54
+ /** 6t⁵ − 15t⁴ + 10t³: zero slope and curvature at 0 and 1. */
55
+ declare function quinticFade(t: number): number;
56
+ /**
57
+ * Multi-octave smooth noise (After Effects' `wiggle`): the sum over `octaves` of
58
+ * amp·ampMult^k · noise(freq·2^k·t), each octave and `dimension` seeded apart. `t` in seconds.
59
+ */
60
+ declare function fractalWiggle(freq: number, amp: number, octaves?: number, ampMult?: number, t?: number, seed?: number, dimension?: number): number;
61
+
62
+ /**
63
+ * Keyframe tracks, independent of what they animate: each track is a list of keyframes
64
+ * `{ time (ms), value, easing }`, where the easing governs the segment *leaving* the keyframe
65
+ * (filmcraft / After Effects convention).
66
+ */
67
+ /** Keyframe times closer than this (ms) are the same time. */
68
+ declare const ANIMATION_TIME_EPSILON = 0.000001;
69
+ /** A keyframe value: a number, or a CSS colour for colour properties. */
70
+ type AnimationValue = number | string;
71
+ interface AnimationKeyframe {
72
+ /** Time in milliseconds from the start of the timeline. */
73
+ time: number;
74
+ value: AnimationValue;
75
+ /** Easing of the segment from this keyframe to the next (default `linear`). */
76
+ easing?: AnimationEasing;
77
+ }
78
+ interface AnimationTrack {
79
+ keyframes: AnimationKeyframe[];
80
+ /** Disabled tracks keep their keyframes but do not animate (default `true`). */
81
+ enabled?: boolean;
82
+ }
83
+ /** How a track's values interpolate: numbers linearly, colours in OKLab. */
84
+ type AnimationValueType = 'number' | 'color';
85
+ /** Whether `value` is a well-formed keyframe. */
86
+ declare function isAnimationKeyframe(value: unknown): value is AnimationKeyframe;
87
+ /**
88
+ * Keyframes sorted by time, invalid entries dropped and duplicate times merged (the *later*
89
+ * entry in the array wins, so appending a keyframe replaces one at the same time). Cached per
90
+ * array (revalidated by element identity), so evaluating every frame does not re-sort; treat
91
+ * keyframe objects as immutable.
92
+ */
93
+ declare function normalizeKeyframes(keyframes: readonly AnimationKeyframe[] | undefined | null): AnimationKeyframe[];
94
+
95
+ /** How time past the end of the timeline maps back into it. */
96
+ type AnimationLoopMode = 'none' | 'loop' | 'ping-pong';
97
+ /**
98
+ * Interpolates between two keyframe values: numbers linearly, colours in OKLab (premultiplied
99
+ * alpha). Mismatched or unreadable values hold `from` until `t` reaches 1.
100
+ */
101
+ declare function interpolateAnimationValue(from: AnimationValue, to: AnimationValue, t: number, type?: AnimationValueType): AnimationValue;
102
+ /**
103
+ * A track's value at `time`. Before the first keyframe it holds the first value, after the
104
+ * last the last value. Keyframes may be unsorted or share times (see `normalizeKeyframes`).
105
+ * Returns `undefined` for a track without valid keyframes.
106
+ */
107
+ declare function evaluateTrack(track: AnimationTrack | readonly AnimationKeyframe[] | undefined | null, time: number, type?: AnimationValueType): AnimationValue | undefined;
108
+ /**
109
+ * Maps a running time onto the timeline `[0, duration]`: clamped (`none`), wrapped (`loop`)
110
+ * or bounced (`ping-pong`).
111
+ */
112
+ declare function wrapAnimationTime(time: number, duration: number, loop?: AnimationLoopMode): number;
113
+
114
+ export { ANIMATION_TIME_EPSILON as A, MOTION_BEHAVIORS as M, type AnimationKeyframe as a, type AnimationLoopMode as b, type AnimationTrack as c, type AnimationValue as d, type AnimationValueType as e, type MotionBehavior as f, behaviorProgress as g, evaluateTrack as h, fractalWiggle as i, interpolateAnimationValue as j, isAnimationKeyframe as k, isMotionBehavior as l, motionSeedFromId as m, normalizeKeyframes as n, quinticFade as q, wrapAnimationTime as w };
@@ -1,4 +1,4 @@
1
- import { C as EffectValue, W as EffectsSlot, F as EffectPixels, E as EffectProvider, D as EffectDescription } from './helpers-i95Ob6Vi.cjs';
1
+ import { e as EffectValue, v as EffectsSlot, b as EffectPixels, E as EffectProvider, f as EffectDescription } from './helpers-C5aAd44p.cjs';
2
2
 
3
3
  /**
4
4
  * Keyframes for a clip's opacity, volume and transform. A property is either a plain number or
@@ -2,9 +2,9 @@ import { a2 as RasterLayerBase, a3 as RasterMask$1, a5 as RasterPixelLayer, H as
2
2
  import { c as PixelSurface, a as BlendMode, T as TiledSurface, R as RasterRect } from './surface-1MRncXpF.cjs';
3
3
  import { b as BuiltinProfileId, j as Intent, P as Profile, T as Transform, d as ColorSpace } from './builtin-CY97ppKM.cjs';
4
4
  import { A as AffineMatrix, Q as Quad, a as WarpMesh, V as Vec2, H as Homography } from './types-CwMPoRMU.cjs';
5
- import { B as BezierPath } from './bezier-CBzKKDjl.cjs';
6
- import { b as TextRun, P as ParagraphRun, T as TextShaper, c as ParagraphStyle, d as TextStyle, L as LaidFragment, W as WarpPreset, e as TextLayout } from './warp-CH9MM435.cjs';
7
- import { C as EffectValue, x as VectorSubpath, W as EffectsSlot, E as EffectProvider, F as EffectPixels, D as EffectDescription, p as Vec2$1 } from './helpers-i95Ob6Vi.cjs';
5
+ import { B as BezierPath } from './bezier-DBz0IgEt.cjs';
6
+ import { b as TextRun, P as ParagraphRun, T as TextShaper, c as ParagraphStyle, d as TextStyle, L as LaidFragment, W as WarpPreset, e as TextLayout } from './warp-C13L_GRn.cjs';
7
+ import { e as EffectValue, a3 as VectorSubpath, v as EffectsSlot, E as EffectProvider, b as EffectPixels, f as EffectDescription, X as Vec2$1 } from './helpers-C5aAd44p.cjs';
8
8
  import { B as BrushSettings, P as PaintSource, M as MixerSettings, a as MixerLoad, R as RetouchSettings, S as StrokeCoverage, b as MixerTarget, c as MixerStroke, d as RetouchApply, e as StrokePoint, f as RetouchPaint, C as CoverageMap, g as PaintTileTarget, h as StrokeApply } from './rand-CfinE-1c.cjs';
9
9
 
10
10
  /**
@@ -1,4 +1,4 @@
1
- import { C as EffectValue, W as EffectsSlot, F as EffectPixels, E as EffectProvider, D as EffectDescription } from './helpers-BBLlekuM.js';
1
+ import { e as EffectValue, v as EffectsSlot, b as EffectPixels, E as EffectProvider, f as EffectDescription } from './helpers-CPWcK504.js';
2
2
 
3
3
  /**
4
4
  * Keyframes for a clip's opacity, volume and transform. A property is either a plain number or
@@ -2,9 +2,9 @@ import { a2 as RasterLayerBase, a3 as RasterMask$1, a5 as RasterPixelLayer, H as
2
2
  import { c as PixelSurface, a as BlendMode, T as TiledSurface, R as RasterRect } from './surface-1MRncXpF.js';
3
3
  import { b as BuiltinProfileId, j as Intent, P as Profile, T as Transform, d as ColorSpace } from './builtin-CY97ppKM.js';
4
4
  import { A as AffineMatrix, Q as Quad, a as WarpMesh, V as Vec2, H as Homography } from './types-CwMPoRMU.js';
5
- import { B as BezierPath } from './bezier-CWv6LQal.js';
6
- import { b as TextRun, P as ParagraphRun, T as TextShaper, c as ParagraphStyle, d as TextStyle, L as LaidFragment, W as WarpPreset, e as TextLayout } from './warp-k_PdtXOG.js';
7
- import { C as EffectValue, x as VectorSubpath, W as EffectsSlot, E as EffectProvider, F as EffectPixels, D as EffectDescription, p as Vec2$1 } from './helpers-BBLlekuM.js';
5
+ import { B as BezierPath } from './bezier-DWI5MEkI.js';
6
+ import { b as TextRun, P as ParagraphRun, T as TextShaper, c as ParagraphStyle, d as TextStyle, L as LaidFragment, W as WarpPreset, e as TextLayout } from './warp-q8FK5HHi.js';
7
+ import { e as EffectValue, a3 as VectorSubpath, v as EffectsSlot, E as EffectProvider, b as EffectPixels, f as EffectDescription, X as Vec2$1 } from './helpers-CPWcK504.js';
8
8
  import { B as BrushSettings, P as PaintSource, M as MixerSettings, a as MixerLoad, R as RetouchSettings, S as StrokeCoverage, b as MixerTarget, c as MixerStroke, d as RetouchApply, e as StrokePoint, f as RetouchPaint, C as CoverageMap, g as PaintTileTarget, h as StrokeApply } from './rand-DtazXGOB.js';
9
9
 
10
10
  /**
@@ -1,8 +1,6 @@
1
1
  import { J as JsonSchema, S as SchemaValidationError } from './schema-Di0CS6Pe.cjs';
2
- import { a as MotionBehavior } from './behavior-Ymbld6jL.cjs';
2
+ import { f as MotionBehavior, b as AnimationLoopMode } from './evaluate-BsxYieLN.cjs';
3
3
  import { b as AnimationEasing } from './easing-lM0Xo9Ni.cjs';
4
- import { b as AnimationLoopMode } from './evaluate-2S3vSPLy.cjs';
5
- import { C as CanvasGradientDef } from './gradient-KDfCvhuj.cjs';
6
4
  import { W as WarpStyle, a as WarpMesh } from './types-CwMPoRMU.cjs';
7
5
 
8
6
  /**
@@ -383,6 +381,71 @@ interface EffectProvider {
383
381
  applyVectorEffect?(id: string, target: EffectVectorTarget, values?: EffectValues): MaybePromise<EffectVectorMotion>;
384
382
  }
385
383
 
384
+ /**
385
+ * Canvas gradient models, parsing, presets, and SVG defs generation.
386
+ * Supports linear and radial gradients for shape fills, strokes, and freehand drawing.
387
+ */
388
+ interface GradientStop {
389
+ offset: number;
390
+ color: string;
391
+ opacity?: number;
392
+ }
393
+ interface CanvasLinearGradient {
394
+ type: 'linear';
395
+ angle?: number;
396
+ stops: GradientStop[];
397
+ }
398
+ interface CanvasRadialGradient {
399
+ type: 'radial';
400
+ cx?: number;
401
+ cy?: number;
402
+ r?: number;
403
+ stops: GradientStop[];
404
+ }
405
+ type CanvasGradientDef = CanvasLinearGradient | CanvasRadialGradient;
406
+ interface SvgGradientStop {
407
+ offset: string;
408
+ stopColor: string;
409
+ stopOpacity?: number;
410
+ }
411
+ interface SvgGradientDef {
412
+ id: string;
413
+ type: 'linear' | 'radial';
414
+ attrs: Record<string, string | number>;
415
+ stops: SvgGradientStop[];
416
+ }
417
+ declare const PIXERATE_BRAND_GRADIENT: CanvasLinearGradient;
418
+ declare const CANVAS_GRADIENT_PRESETS: Record<string, CanvasLinearGradient>;
419
+ /** Whether an arbitrary value matches a CanvasGradientDef object. */
420
+ declare function isCanvasGradient(value: unknown): value is CanvasGradientDef;
421
+ /**
422
+ * Parses CSS linear-gradient or radial-gradient strings into CanvasGradientDef.
423
+ * Supports forms like:
424
+ * - linear-gradient(90deg, #ff0000 0%, #0000ff 100%)
425
+ * - linear-gradient(to right, red, blue)
426
+ * - radial-gradient(circle, red 0%, blue 100%)
427
+ */
428
+ declare function parseCssGradient(css: string): CanvasGradientDef | null;
429
+ /**
430
+ * Resolves a paint value (which could be a CSS color, preset name, CSS gradient string, or CanvasGradientDef)
431
+ * into either a CanvasGradientDef (if gradient) or null (if solid color or invalid).
432
+ */
433
+ declare function resolveCanvasGradient(value: unknown): CanvasGradientDef | null;
434
+ /**
435
+ * Converts degrees clockwise (CSS angle: 0 = top, 90 = right, 180 = bottom, 270 = left)
436
+ * to SVG linearGradient vector coordinates (x1, y1, x2, y2) normalized [0, 1].
437
+ */
438
+ declare function angleToSvgLinearCoords(angleDeg?: number): {
439
+ x1: number;
440
+ y1: number;
441
+ x2: number;
442
+ y2: number;
443
+ };
444
+ /**
445
+ * Converts a CanvasGradientDef to an SvgGradientDef descriptor ready for rendering `<linearGradient>` / `<radialGradient>`.
446
+ */
447
+ declare function gradientToSvgDef(gradient: CanvasGradientDef, id: string): SvgGradientDef;
448
+
386
449
  /** An affine matrix `[a, b, c, d, e, f]`: `x' = a·x + c·y + e`, `y' = b·x + d·y + f` (SVG order). */
387
450
  type VectorMatrix = readonly [number, number, number, number, number, number];
388
451
  /** A point in document coordinates. */
@@ -2006,4 +2069,4 @@ declare class EffectsSlot {
2006
2069
  subscribe(listener: (provider: EffectProvider | null) => void): () => void;
2007
2070
  }
2008
2071
 
2009
- export { isEffectPixels as $, type EffectProviderCapabilities as A, type EffectRenderRequest as B, type EffectValue as C, type EffectDescription as D, type EffectProvider as E, type EffectPixels as F, type EffectSummary as G, EFFECT_KINDS as H, EFFECT_USES as I, type EffectControlSchema as J, type EffectImageSource as K, type EffectInputSpec as L, type EffectKind as M, type EffectPreset as N, type EffectRenderer as O, type EffectRendererOptions as P, type EffectSearchOptions as Q, type EffectSvgAnimation as R, type EffectValues as S, type EffectVectorMotion as T, type EffectVectorTarget as U, type VectorEffectType as V, EffectsSlot as W, applyEffectMask as X, createEffectPixels as Y, effectValueErrors as Z, encodeEffectFloat as _, type EffectUse as a, type MotionExitCommand as a$, linearToSrgb as a0, resolveEffectValues as a1, searchEffectSummaries as a2, srgbToLinear as a3, type MotionCommand as a4, type MotionShot as a5, type MotionScene as a6, type MotionDirection as a7, type MotionIrisShape as a8, type MotionSplitOrientation as a9, type FlairEaseName as aA, type FlairSpringEase as aB, type FlairSvgAnimation as aC, MOTION_BLENDS as aD, MOTION_CAMERA_MS as aE, MOTION_CASCADES as aF, MOTION_CLIP_TARGET as aG, MOTION_COMMAND_TYPES as aH, MOTION_DEFAULT_DURATIONS as aI, MOTION_DEFAULT_HOLD as aJ, MOTION_DIRECTIONS as aK, MOTION_DRAW_MS_PER_UNIT as aL, MOTION_DRAW_RANGE as aM, MOTION_DRIVEN_PROPERTIES as aN, MOTION_ENTER_STYLES as aO, MOTION_EXIT_STYLES as aP, MOTION_IRIS_SHAPES as aQ, MOTION_REPEAT_MODES as aR, MOTION_SPLIT_ORIENTATIONS as aS, MOTION_TEXT_UNITS as aT, MOTION_TRIGGERS as aU, type MotionColorPulseCommand as aV, type MotionCommandBase as aW, type MotionDrawCommand as aX, type MotionDrawOrder as aY, type MotionEffectCommand as aZ, type MotionEnterCommand as a_, type MotionDriver as aa, type MotionDrivenProperty as ab, type MotionRect as ac, type MotionBeatGrid as ad, type MotionCue as ae, type MotionCamera as af, type MotionTextUnit as ag, type MotionCascade as ah, type MotionBlur as ai, type MotionControl as aj, type MotionPreset as ak, type MotionClip as al, type FlairSvgMotion as am, type FlairVectorEffect as an, type MotionEffectSource as ao, type FlairExportOptions as ap, type FlairMotionExport as aq, type FlairEffectOptions as ar, type FlairEffectDocument as as, type MotionEnterStyle as at, type MotionExitStyle as au, type MotionCommandType as av, type MotionNarration as aw, FLAIR_EASES as ax, FLAIR_EXPORT_VERSION as ay, type FlairEase as az, type VectorEffectParamsMap as b, type VectorHorizontalResizing as b$, type MotionFadeCommand as b0, type MotionFollowCommand as b1, type MotionMatchCommand as b2, type MotionMorphCommand as b3, type MotionMoveCommand as b4, type MotionPlayCommand as b5, type MotionPulseCommand as b6, type MotionRotateCommand as b7, type MotionScaleCommand as b8, type MotionShakeCommand as b9, type VectorParagraphStyle as bA, type VectorTextFrame as bB, type VectorTransformHandle as bC, type VectorAnchorRef as bD, type VectorPathfinderOperation as bE, type VectorTool as bF, type VectorDefaults as bG, type VectorTextAlign as bH, type VectorStyle as bI, type VectorHandleRef as bJ, type VectorSegmentRef as bK, type VectorBlendOptions as bL, type VectorModifiers as bM, type VectorProviderEffect as bN, type VectorBlendMode as bO, type VectorAlign as bP, type VectorDistribute as bQ, type VectorArrange as bR, type VectorMaskType as bS, type VectorSymmetryMode as bT, type VectorSymmetry as bU, type VectorFreeformPoint as bV, type VectorMeshGradient as bW, type VectorFreeformGradient as bX, type VectorArrowhead as bY, type VectorResizing as bZ, type VectorFrame as b_, type MotionStyleCommand as ba, type MotionTeeterCommand as bb, type MotionTrigger as bc, type MotionWaitCommand as bd, type MotionWaveCommand as be, type MotionWiggleCommand as bf, flairAtLeast as bg, flairCurveFor as bh, flairEaseFor as bi, motionFlairPrimitive as bj, toFlairEffectDocument as bk, toFlairSvgMotion as bl, toFlairVectorEffect as bm, type VectorAnchor as bn, type VectorTextNode as bo, type VectorAnchorType as bp, type VectorCornerKind as bq, type VectorViewport as br, type VectorConnectorRoute as bs, type VectorConnectorSide as bt, type VectorConnectorEnd as bu, type VectorConnector as bv, type VectorConstraintKind as bw, type VectorConstraint as bx, type VectorCharacterStyle as by, type VectorTextRun as bz, type VectorPathNode as c, type VectorVerticalResizing as c0, type VectorMask as c1, type VectorAverageAxis as c2, type VectorSymbol as c3, type VectorParameter as c4, type VectorBlendSpacing as c5, type VectorGradientInterpolation as c6, type VectorStrokeGradientMode as c7, type VectorArrowAlign as c8, type VectorPaintLayer as c9, VECTOR_TOOLS as cA, VECTOR_TRANSFORM_HANDLES as cB, VECTOR_VERTICAL_RESIZING as cC, type VectorCorner as cD, type VectorGeomRef as cE, type VectorLineCap as cF, type VectorPathTextBaseline as cG, type VectorStrokeLayerKind as cH, type VectorTextRunStyle as cI, type VectorWarpStyle as cJ, type VectorStrokeLayer as ca, type VectorBlend as cb, type VectorMergeMode as cc, type VectorLineJoin as cd, type VectorStrokeSettings as ce, type VectorInstanceOverrides as cf, VECTOR_ARROWHEADS as cg, VECTOR_BLEND_MODES as ch, VECTOR_BLEND_SPACINGS as ci, VECTOR_CONNECTOR_ROUTES as cj, VECTOR_CONNECTOR_SIDES as ck, VECTOR_CONSTRAINT_KINDS as cl, VECTOR_CORNER_KINDS as cm, VECTOR_EFFECT_TYPES as cn, VECTOR_FILTER_TYPES as co, VECTOR_GRADIENT_INTERPOLATIONS as cp, VECTOR_GRADIENT_SPREADS as cq, VECTOR_GRADIENT_TYPES as cr, VECTOR_HORIZONTAL_RESIZING as cs, VECTOR_MASK_TYPES as ct, VECTOR_MERGE_MODES as cu, VECTOR_PATHFINDER_OPERATIONS as cv, VECTOR_PATH_TEXT_BASELINES as cw, VECTOR_STROKE_GRADIENT_MODES as cx, VECTOR_SYMMETRY_MODES as cy, VECTOR_TEXT_ALIGNS as cz, type VectorFillRule as d, type VectorBooleanOperation as e, type VectorNode as f, type VectorEffect as g, type VectorGroupNode as h, type VectorBounds as i, type VectorWarpMesh as j, type VectorInstanceNode as k, type VectorFilterType as l, type VectorFilterParamsMap as m, type VectorFilter as n, type VectorGradient as o, type Vec2 as p, type VectorGradientUnits as q, type VectorGradientSpread as r, type VectorGradientType as s, type VectorPaint as t, type VectorMatrix as u, type VectorGradientStop as v, type VectorStrokeAlign as w, type VectorSubpath as x, type VectorDocument as y, type VectorWidthPoint as z };
2072
+ export { type VectorPaint as $, isEffectPixels as A, linearToSrgb as B, type CanvasGradientDef as C, resolveEffectValues as D, type EffectProvider as E, searchEffectSummaries as F, srgbToLinear as G, type VectorEffectParamsMap as H, type VectorPathNode as I, type VectorFillRule as J, type VectorBooleanOperation as K, type VectorNode as L, type VectorEffect as M, type VectorGroupNode as N, type VectorBounds as O, type VectorWarpMesh as P, type VectorInstanceNode as Q, type VectorFilterType as R, type SvgGradientDef as S, type VectorFilterParamsMap as T, type VectorFilter as U, type VectorEffectType as V, type VectorGradient as W, type Vec2 as X, type VectorGradientUnits as Y, type VectorGradientSpread as Z, type VectorGradientType as _, type EffectRenderRequest as a, type MotionEffectCommand as a$, type VectorMatrix as a0, type VectorGradientStop as a1, type VectorStrokeAlign as a2, type VectorSubpath as a3, type VectorDocument as a4, type VectorWidthPoint as a5, type MotionCommand as a6, type MotionShot as a7, type MotionScene as a8, type MotionDirection as a9, FLAIR_EXPORT_VERSION as aA, type FlairEase as aB, type FlairEaseName as aC, type FlairSpringEase as aD, type FlairSvgAnimation as aE, MOTION_BLENDS as aF, MOTION_CAMERA_MS as aG, MOTION_CASCADES as aH, MOTION_CLIP_TARGET as aI, MOTION_COMMAND_TYPES as aJ, MOTION_DEFAULT_DURATIONS as aK, MOTION_DEFAULT_HOLD as aL, MOTION_DIRECTIONS as aM, MOTION_DRAW_MS_PER_UNIT as aN, MOTION_DRAW_RANGE as aO, MOTION_DRIVEN_PROPERTIES as aP, MOTION_ENTER_STYLES as aQ, MOTION_EXIT_STYLES as aR, MOTION_IRIS_SHAPES as aS, MOTION_REPEAT_MODES as aT, MOTION_SPLIT_ORIENTATIONS as aU, MOTION_TEXT_UNITS as aV, MOTION_TRIGGERS as aW, type MotionColorPulseCommand as aX, type MotionCommandBase as aY, type MotionDrawCommand as aZ, type MotionDrawOrder as a_, type MotionIrisShape as aa, type MotionSplitOrientation as ab, type MotionDriver as ac, type MotionDrivenProperty as ad, type MotionRect as ae, type MotionBeatGrid as af, type MotionCue as ag, type MotionCamera as ah, type MotionTextUnit as ai, type MotionCascade as aj, type MotionBlur as ak, type MotionControl as al, type MotionPreset as am, type MotionClip as an, type FlairSvgMotion as ao, type FlairVectorEffect as ap, type MotionEffectSource as aq, type FlairExportOptions as ar, type FlairMotionExport as as, type FlairEffectOptions as at, type FlairEffectDocument as au, type MotionEnterStyle as av, type MotionExitStyle as aw, type MotionCommandType as ax, type MotionNarration as ay, FLAIR_EASES as az, type EffectPixels as b, type VectorResizing as b$, type MotionEnterCommand as b0, type MotionExitCommand as b1, type MotionFadeCommand as b2, type MotionFollowCommand as b3, type MotionMatchCommand as b4, type MotionMorphCommand as b5, type MotionMoveCommand as b6, type MotionPlayCommand as b7, type MotionPulseCommand as b8, type MotionRotateCommand as b9, type VectorCharacterStyle as bA, type VectorTextRun as bB, type VectorParagraphStyle as bC, type VectorTextFrame as bD, type VectorTransformHandle as bE, type VectorAnchorRef as bF, type VectorPathfinderOperation as bG, type VectorTool as bH, type VectorDefaults as bI, type VectorTextAlign as bJ, type VectorStyle as bK, type VectorHandleRef as bL, type VectorSegmentRef as bM, type VectorBlendOptions as bN, type VectorModifiers as bO, type VectorProviderEffect as bP, type VectorBlendMode as bQ, type VectorAlign as bR, type VectorDistribute as bS, type VectorArrange as bT, type VectorMaskType as bU, type VectorSymmetryMode as bV, type VectorSymmetry as bW, type VectorFreeformPoint as bX, type VectorMeshGradient as bY, type VectorFreeformGradient as bZ, type VectorArrowhead as b_, type MotionScaleCommand as ba, type MotionShakeCommand as bb, type MotionStyleCommand as bc, type MotionTeeterCommand as bd, type MotionTrigger as be, type MotionWaitCommand as bf, type MotionWaveCommand as bg, type MotionWiggleCommand as bh, flairAtLeast as bi, flairCurveFor as bj, flairEaseFor as bk, motionFlairPrimitive as bl, toFlairEffectDocument as bm, toFlairSvgMotion as bn, toFlairVectorEffect as bo, type VectorAnchor as bp, type VectorTextNode as bq, type VectorAnchorType as br, type VectorCornerKind as bs, type VectorViewport as bt, type VectorConnectorRoute as bu, type VectorConnectorSide as bv, type VectorConnectorEnd as bw, type VectorConnector as bx, type VectorConstraintKind as by, type VectorConstraint as bz, type EffectUse as c, type VectorFrame as c0, type VectorHorizontalResizing as c1, type VectorVerticalResizing as c2, type VectorMask as c3, type VectorAverageAxis as c4, type VectorSymbol as c5, type VectorParameter as c6, type VectorBlendSpacing as c7, type VectorGradientInterpolation as c8, type VectorStrokeGradientMode as c9, VECTOR_SYMMETRY_MODES as cA, VECTOR_TEXT_ALIGNS as cB, VECTOR_TOOLS as cC, VECTOR_TRANSFORM_HANDLES as cD, VECTOR_VERTICAL_RESIZING as cE, type VectorCorner as cF, type VectorGeomRef as cG, type VectorLineCap as cH, type VectorPathTextBaseline as cI, type VectorStrokeLayerKind as cJ, type VectorTextRunStyle as cK, type VectorWarpStyle as cL, CANVAS_GRADIENT_PRESETS as cM, type CanvasLinearGradient as cN, type CanvasRadialGradient as cO, type GradientStop as cP, PIXERATE_BRAND_GRADIENT as cQ, type SvgGradientStop as cR, angleToSvgLinearCoords as cS, gradientToSvgDef as cT, isCanvasGradient as cU, parseCssGradient as cV, resolveCanvasGradient as cW, type VectorArrowAlign as ca, type VectorPaintLayer as cb, type VectorStrokeLayer as cc, type VectorBlend as cd, type VectorMergeMode as ce, type VectorLineJoin as cf, type VectorStrokeSettings as cg, type VectorInstanceOverrides as ch, VECTOR_ARROWHEADS as ci, VECTOR_BLEND_MODES as cj, VECTOR_BLEND_SPACINGS as ck, VECTOR_CONNECTOR_ROUTES as cl, VECTOR_CONNECTOR_SIDES as cm, VECTOR_CONSTRAINT_KINDS as cn, VECTOR_CORNER_KINDS as co, VECTOR_EFFECT_TYPES as cp, VECTOR_FILTER_TYPES as cq, VECTOR_GRADIENT_INTERPOLATIONS as cr, VECTOR_GRADIENT_SPREADS as cs, VECTOR_GRADIENT_TYPES as ct, VECTOR_HORIZONTAL_RESIZING as cu, VECTOR_MASK_TYPES as cv, VECTOR_MERGE_MODES as cw, VECTOR_PATHFINDER_OPERATIONS as cx, VECTOR_PATH_TEXT_BASELINES as cy, VECTOR_STROKE_GRADIENT_MODES as cz, type EffectProviderCapabilities as d, type EffectValue as e, type EffectDescription as f, type EffectSummary as g, EFFECT_KINDS as h, EFFECT_USES as i, type EffectControlSchema as j, type EffectImageSource as k, type EffectInputSpec as l, type EffectKind as m, type EffectPreset as n, type EffectRenderer as o, type EffectRendererOptions as p, type EffectSearchOptions as q, type EffectSvgAnimation as r, type EffectValues as s, type EffectVectorMotion as t, type EffectVectorTarget as u, EffectsSlot as v, applyEffectMask as w, createEffectPixels as x, effectValueErrors as y, encodeEffectFloat as z };