framefields 2.9.0 → 2.9.2

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 (41) hide show
  1. package/dist/cli/check-worker.mjs +2 -2
  2. package/dist/components/index.d.mts +2 -2
  3. package/dist/components/index.mjs +2 -2
  4. package/dist/effects/index.d.mts +1 -1
  5. package/dist/effects/index.mjs +1 -1
  6. package/dist/{index-CZjrnylh.d.mts → index-Bnh42ouE.d.mts} +657 -636
  7. package/dist/index-Bnh42ouE.d.mts.map +1 -0
  8. package/dist/index-CFoAmh7q.d.mts.map +1 -1
  9. package/dist/{index-Du5YgdzM.d.mts → index-CQ-bbZk3.d.mts} +16 -3
  10. package/dist/index-CQ-bbZk3.d.mts.map +1 -0
  11. package/dist/index.d.mts +2 -2
  12. package/dist/index.mjs +4 -4
  13. package/dist/preview/index.mjs +1 -1
  14. package/dist/{preview-BQVgn6Ho.mjs → preview-DvP8AZuV.mjs} +2 -2
  15. package/dist/{preview-BQVgn6Ho.mjs.map → preview-DvP8AZuV.mjs.map} +1 -1
  16. package/dist/preview-engine/{chunk-GEUUXTDL.mjs → chunk-D73ZKPFN.mjs} +4 -4
  17. package/dist/preview-engine/{chunk-UQKPDGEH.mjs → chunk-EJJITH6U.mjs} +1 -1
  18. package/dist/preview-engine/{chunk-374QY63R.mjs → chunk-KXLXP66K.mjs} +3 -3
  19. package/dist/preview-engine/chunk-XYGDTPO7.mjs +39 -0
  20. package/dist/preview-engine/components.mjs +1 -1
  21. package/dist/preview-engine/effects.mjs +1 -1
  22. package/dist/preview-engine/framefields.mjs +1 -1
  23. package/dist/preview-engine/player.mjs +1 -1
  24. package/dist/preview-engine/{renderers-O55BEDQZ.mjs → renderers-MDHPQY6D.mjs} +1 -1
  25. package/dist/preview-engine/src-4IUYUKIZ.mjs +8 -0
  26. package/dist/renderer/index.mjs +1 -1
  27. package/dist/{renderer-B0piZg9r.mjs → renderer-B2P1vgb7.mjs} +41 -22
  28. package/dist/renderer-B2P1vgb7.mjs.map +1 -0
  29. package/dist/renderer-D5bjOx83.mjs +3 -0
  30. package/dist/{renderer-DsEyjwfT.mjs → renderer-DPAD6fL1.mjs} +2 -2
  31. package/dist/{renderer-DsEyjwfT.mjs.map → renderer-DPAD6fL1.mjs.map} +1 -1
  32. package/dist/{src-CK5rGVbh.mjs → src-DFEqficI.mjs} +72 -24
  33. package/dist/src-DFEqficI.mjs.map +1 -0
  34. package/package.json +59 -59
  35. package/dist/index-CZjrnylh.d.mts.map +0 -1
  36. package/dist/index-Du5YgdzM.d.mts.map +0 -1
  37. package/dist/preview-engine/chunk-CCB3VTY2.mjs +0 -39
  38. package/dist/preview-engine/src-NGVAJYHC.mjs +0 -8
  39. package/dist/renderer-B0piZg9r.mjs.map +0 -1
  40. package/dist/renderer-COR66Sby.mjs +0 -3
  41. package/dist/src-CK5rGVbh.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { $o as VirtualMediaData, A as RingGeometryOptions, B as SphereGeometryOptions, Bi as FrameContext, Ca as MeshAudioDeformConfig, E as PolyhedronGeometryOptions, H as TubeGeometryOptions, Ha as NormalRelightingOptions, Hi as FrameSignal, Io as TextSpan, Lt as KineticMarqueeConfig, Oi as EffectDomain, P as ShardGeometryOptions, Pr as Path3D, R as SlugFontCache, T as Points3DGeometryOptions, Ti as Effect$1, U as TubePathSpec, V as TorusGeometryOptions, _ as Line3DGeometryOptions, _i as DataType, ao as ResolvedMediaTimeRemap, ct as AdvancedTextAnimator, d as CylinderGeometryOptions, eo as ProgrammaticSignal, g as LatheGeometryOptions, hn as TextPathOptions, io as RenderDiagnostic, j as RoundedBoxGeometryOptions, kn as TypewriterAnimator, ma as MediaSourceInput, ot as AETextAnimator, p as ExtrudeShapeGeometryOptions, rs as VisionTask, sa as MediaMetadata, u as CapsuleGeometryOptions, uo as Signal, va as MediaTimeRemapInput, xa as MediaTimeSignalRemap, xi as DeflickerOptions } from "./index-D5UDyVMb.mjs";
2
2
  import { i as RegisterFontOptions } from "./index-BfDFmIBE.mjs";
3
- import { $n as ResizerScalerProps, $t as FlipProps, An as Paint, At as CameraParallax3DProps, B as PBRGlass, Bn as Pixelate, Bt as ContourProps, C as GradientMapProps, Cn as MeshWarp, Ct as AudioParametricEq, D as HalftoneScreen, Dn as NoiseGeneratorProps, Dt as CRT, Ei as TensorPipeline, En as NoiseGenerator, Et as AudioReverbProps, F as LevelsProps, Fn as Painterly, Ft as ColorBalance, G as SSAOProps, Gn as ProceduralVFXProps, Gt as DatamoshProps, H as Relight3D, Hn as Posterize, I as Modulate, In as PainterlyProps, It as ColorBalanceProps, J as SelectiveColorProps, Jn as RefineEdge, Jr as ClipSubjectSource, Jt as Dither, K as SelectiveColor, Kn as RGBSplit, Kr as COCO17_KEYPOINT_NAMES, Kt as DisplacementMap, L as ModulateProps, Ln as PatchHeal, Lt as ColorKey, M as HighPassProps, Mt as ChannelMergerProps, Nt as ChannelSplitter, O as HalftoneScreenProps, On as OpArt, Ot as CRTProps, P as Levels, Pt as ChannelSplitterProps, Q as TileOffset, Qn as ResizerScaler, Qt as Flip, R as MotionBlur, Rt as ColorKeyProps, S as GradientMap, Sn as MaskMathProps, St as AudioNoiseGateProps, Tn as MeshWarpProps, Tt as AudioReverb, U as Relight3DProps, Un as PosterizeProps, Ut as CornerPinProps, V as PBRGlassProps, Vn as PixelateProps, Vt as CornerPin, W as SSAO, Wn as ProceduralVFX, Wt as Datamosh, X as ShadowsHighlightsProps, Xn as RefractionCaustics3D, Xr as LandmarkCoordinateSignals, Xt as ExtractLUT, Y as ShadowsHighlights, Yn as RefineEdgeProps, Yr as InstanceMask, Yt as DitherProps, Z as TemporalDeflicker, Zn as RefractionCaustics3DProps, Zr as MaskTrackSignals, Zt as ExtractLUTProps, _t as AudioDelay, a as ApplyLUTProps, ai as PinToLandmarkOptions, an as KaleidoscopeProps, ar as Toon, b as FilmGrain, bn as LiquifyProps, bt as AudioFadeProps, c as Crop, cn as KenBurnsProps, cr as TrailsProps, dr as EffectProp, dt as Blur, en as Gooey, er as Rotate, et as TileOffsetProps, f as CurvesProps, ft as BlurProps, g as DepthOfFieldProps, gi as VisionNode, gn as LayerStyleProps, gt as AudioCompressorProps, h as DepthOfField, hi as VisionBundle, ht as AudioCompressor, i as ApplyLUT, in as Kaleidoscope, it as VisionProps, j as HighPass, jn as PaintProps, jt as ChannelMerger, kn as OpArtProps, kt as CameraParallax3D, l as CropProps, ln as LayerStyle, lr as Vignette, m as DeflickerProps, mi as VisionAnalysisReport, mt as AsciiProps, n as AnyEffect, nn as Iridescence, nr as StereoPanning, nt as UnsharpMaskProps, oi as PinToObjectOptions, on as KenBurns, or as ToonProps, p as CustomEffect, pt as Ascii, qn as RGBSplitProps, qt as DisplacementMapProps, r as AnyVisualEffect, ri as ObjectTrackSignals, rn as IridescenceProps, rr as StereoPanningProps, rt as Vision, sr as Trails, t as AnyAudioEffect, tn as GooeyProps, tr as RotateProps, tt as UnsharpMask, u as Curves, ur as VignetteProps, vn as Liquify, vt as AudioDelayProps, wt as AudioParametricEqProps, x as FilmGrainProps, xn as MaskMath, xt as AudioNoiseGate, yt as AudioFade, z as MotionBlurProps, zn as PatchHealProps, zt as Contour } from "./index-Du5YgdzM.mjs";
3
+ import { $n as ResizerScalerProps, $t as FlipProps, An as Paint, At as CameraParallax3DProps, B as PBRGlass, Bn as Pixelate, Bt as ContourProps, C as GradientMapProps, Cn as MeshWarp, Ct as AudioParametricEq, D as HalftoneScreen, Di as TensorPipeline, Dn as NoiseGeneratorProps, Dt as CRT, En as NoiseGenerator, Et as AudioReverbProps, F as LevelsProps, Fn as Painterly, Ft as ColorBalance, G as SSAOProps, Gn as ProceduralVFXProps, Gt as DatamoshProps, H as Relight3D, Hn as Posterize, I as Modulate, In as PainterlyProps, It as ColorBalanceProps, J as SelectiveColorProps, Jn as RefineEdge, Jr as ClipPose, Jt as Dither, K as SelectiveColor, Kn as RGBSplit, Kr as COCO17_KEYPOINT_NAMES, Kt as DisplacementMap, L as ModulateProps, Ln as PatchHeal, Lt as ColorKey, M as HighPassProps, Mt as ChannelMergerProps, Nt as ChannelSplitter, O as HalftoneScreenProps, On as OpArt, Ot as CRTProps, P as Levels, Pt as ChannelSplitterProps, Q as TileOffset, Qn as ResizerScaler, Qr as MaskTrackSignals, Qt as Flip, R as MotionBlur, Rt as ColorKeyProps, S as GradientMap, Sn as MaskMathProps, St as AudioNoiseGateProps, Tn as MeshWarpProps, Tt as AudioReverb, U as Relight3DProps, Un as PosterizeProps, Ut as CornerPinProps, V as PBRGlassProps, Vn as PixelateProps, Vt as CornerPin, W as SSAO, Wn as ProceduralVFX, Wt as Datamosh, X as ShadowsHighlightsProps, Xn as RefractionCaustics3D, Xr as InstanceMask, Xt as ExtractLUT, Y as ShadowsHighlights, Yn as RefineEdgeProps, Yr as ClipSubjectSource, Yt as DitherProps, Z as TemporalDeflicker, Zn as RefractionCaustics3DProps, Zr as LandmarkCoordinateSignals, Zt as ExtractLUTProps, _i as VisionNode, _t as AudioDelay, a as ApplyLUTProps, an as KaleidoscopeProps, ar as Toon, b as FilmGrain, bn as LiquifyProps, bt as AudioFadeProps, c as Crop, cn as KenBurnsProps, cr as TrailsProps, dr as EffectProp, dt as Blur, en as Gooey, er as Rotate, et as TileOffsetProps, f as CurvesProps, ft as BlurProps, g as DepthOfFieldProps, gi as VisionBundle, gn as LayerStyleProps, gt as AudioCompressorProps, h as DepthOfField, hi as VisionAnalysisReport, ht as AudioCompressor, i as ApplyLUT, ii as ObjectTrackSignals, in as Kaleidoscope, it as VisionProps, j as HighPass, jn as PaintProps, jt as ChannelMerger, kn as OpArtProps, kt as CameraParallax3D, l as CropProps, ln as LayerStyle, lr as Vignette, m as DeflickerProps, mt as AsciiProps, n as AnyEffect, nn as Iridescence, nr as StereoPanning, nt as UnsharpMaskProps, oi as PinToLandmarkOptions, on as KenBurns, or as ToonProps, p as CustomEffect, pt as Ascii, qn as RGBSplitProps, qt as DisplacementMapProps, r as AnyVisualEffect, rn as IridescenceProps, rr as StereoPanningProps, rt as Vision, si as PinToObjectOptions, sr as Trails, t as AnyAudioEffect, tn as GooeyProps, tr as RotateProps, tt as UnsharpMask, u as Curves, ur as VignetteProps, vn as Liquify, vt as AudioDelayProps, wt as AudioParametricEqProps, x as FilmGrainProps, xn as MaskMath, xt as AudioNoiseGate, yt as AudioFade, z as MotionBlurProps, zn as PatchHealProps, zt as Contour } from "./index-CQ-bbZk3.mjs";
4
4
  import { c as HeadlessMediaRenderer, f as RenderProgress, m as VideoQaReport, p as VideoQaOptions, t as FrameGridOptions } from "./index-CJL0JAU8.mjs";
5
5
  import { z, z as z$2 } from "zod";
6
6
  import { Yoga } from "yoga-layout/load";
@@ -36,38 +36,38 @@ type ProgramEffect = Effect$1<object, string, EffectDomain> | EffectSpec | (Reco
36
36
  declare const AnimatablePropSchema: z.ZodEnum<{
37
37
  x: "x";
38
38
  y: "y";
39
- scale: "scale";
40
- rotation: "rotation";
41
- opacity: "opacity";
42
39
  width: "width";
43
40
  height: "height";
41
+ rotation: "rotation";
42
+ scale: "scale";
43
+ opacity: "opacity";
44
+ trimStart: "trimStart";
45
+ trimEnd: "trimEnd";
46
+ text: "text";
47
+ fontSize: "fontSize";
48
+ fill: "fill";
49
+ letterSpacing: "letterSpacing";
50
+ padding: "padding";
51
+ strokeWidth: "strokeWidth";
52
+ borderColor: "borderColor";
53
+ borderWidth: "borderWidth";
44
54
  volume: "volume";
55
+ color: "color";
56
+ offset: "offset";
45
57
  hidden: "hidden";
46
58
  muted: "muted";
47
59
  gap: "gap";
48
- padding: "padding";
49
60
  borderRadius: "borderRadius";
50
- fontSize: "fontSize";
51
- text: "text";
52
- fill: "fill";
53
- color: "color";
54
- letterSpacing: "letterSpacing";
55
61
  d: "d";
56
- trimStart: "trimStart";
57
- trimEnd: "trimEnd";
58
62
  trimOffset: "trimOffset";
59
- strokeWidth: "strokeWidth";
60
63
  strokeDashOffset: "strokeDashOffset";
61
64
  cornerRadius: "cornerRadius";
62
65
  starInnerRadiusRatio: "starInnerRadiusRatio";
63
66
  fillColor: "fillColor";
64
67
  strokeColor: "strokeColor";
65
- borderColor: "borderColor";
66
- borderWidth: "borderWidth";
67
68
  motionBlurShutter: "motionBlurShutter";
68
69
  rangeStart: "rangeStart";
69
70
  rangeEnd: "rangeEnd";
70
- offset: "offset";
71
71
  animatorRangeStart: "animatorRangeStart";
72
72
  animatorRangeEnd: "animatorRangeEnd";
73
73
  animatorOffset: "animatorOffset";
@@ -177,6 +177,7 @@ declare const MaterialTypeSchema: z.ZodEnum<{
177
177
  type MaterialType = z.infer<typeof MaterialTypeSchema>;
178
178
  declare const EaseRefSchema: z.ZodObject<{
179
179
  name: z.ZodEnum<{
180
+ bounce: "bounce";
180
181
  none: "none";
181
182
  power1: "power1";
182
183
  power2: "power2";
@@ -186,7 +187,6 @@ declare const EaseRefSchema: z.ZodObject<{
186
187
  expo: "expo";
187
188
  back: "back";
188
189
  elastic: "elastic";
189
- bounce: "bounce";
190
190
  spring: "spring";
191
191
  cubic: "cubic";
192
192
  hold: "hold";
@@ -205,6 +205,7 @@ declare const KeyframeSchema: z.ZodObject<{
205
205
  value: z.ZodUnion<readonly [z.ZodNumber, z.ZodBoolean, z.ZodString]>;
206
206
  ease: z.ZodOptional<z.ZodObject<{
207
207
  name: z.ZodEnum<{
208
+ bounce: "bounce";
208
209
  none: "none";
209
210
  power1: "power1";
210
211
  power2: "power2";
@@ -214,7 +215,6 @@ declare const KeyframeSchema: z.ZodObject<{
214
215
  expo: "expo";
215
216
  back: "back";
216
217
  elastic: "elastic";
217
- bounce: "bounce";
218
218
  spring: "spring";
219
219
  cubic: "cubic";
220
220
  hold: "hold";
@@ -280,38 +280,38 @@ declare const AnimationTrackSchema: z.ZodObject<{
280
280
  prop: z.ZodEnum<{
281
281
  x: "x";
282
282
  y: "y";
283
- scale: "scale";
284
- rotation: "rotation";
285
- opacity: "opacity";
286
283
  width: "width";
287
284
  height: "height";
285
+ rotation: "rotation";
286
+ scale: "scale";
287
+ opacity: "opacity";
288
+ trimStart: "trimStart";
289
+ trimEnd: "trimEnd";
290
+ text: "text";
291
+ fontSize: "fontSize";
292
+ fill: "fill";
293
+ letterSpacing: "letterSpacing";
294
+ padding: "padding";
295
+ strokeWidth: "strokeWidth";
296
+ borderColor: "borderColor";
297
+ borderWidth: "borderWidth";
288
298
  volume: "volume";
299
+ color: "color";
300
+ offset: "offset";
289
301
  hidden: "hidden";
290
302
  muted: "muted";
291
303
  gap: "gap";
292
- padding: "padding";
293
304
  borderRadius: "borderRadius";
294
- fontSize: "fontSize";
295
- text: "text";
296
- fill: "fill";
297
- color: "color";
298
- letterSpacing: "letterSpacing";
299
305
  d: "d";
300
- trimStart: "trimStart";
301
- trimEnd: "trimEnd";
302
306
  trimOffset: "trimOffset";
303
- strokeWidth: "strokeWidth";
304
307
  strokeDashOffset: "strokeDashOffset";
305
308
  cornerRadius: "cornerRadius";
306
309
  starInnerRadiusRatio: "starInnerRadiusRatio";
307
310
  fillColor: "fillColor";
308
311
  strokeColor: "strokeColor";
309
- borderColor: "borderColor";
310
- borderWidth: "borderWidth";
311
312
  motionBlurShutter: "motionBlurShutter";
312
313
  rangeStart: "rangeStart";
313
314
  rangeEnd: "rangeEnd";
314
- offset: "offset";
315
315
  animatorRangeStart: "animatorRangeStart";
316
316
  animatorRangeEnd: "animatorRangeEnd";
317
317
  animatorOffset: "animatorOffset";
@@ -414,6 +414,7 @@ declare const AnimationTrackSchema: z.ZodObject<{
414
414
  value: z.ZodUnion<readonly [z.ZodNumber, z.ZodBoolean, z.ZodString]>;
415
415
  ease: z.ZodOptional<z.ZodObject<{
416
416
  name: z.ZodEnum<{
417
+ bounce: "bounce";
417
418
  none: "none";
418
419
  power1: "power1";
419
420
  power2: "power2";
@@ -423,7 +424,6 @@ declare const AnimationTrackSchema: z.ZodObject<{
423
424
  expo: "expo";
424
425
  back: "back";
425
426
  elastic: "elastic";
426
- bounce: "bounce";
427
427
  spring: "spring";
428
428
  cubic: "cubic";
429
429
  hold: "hold";
@@ -460,38 +460,38 @@ declare const LayerAnimationSchema: z.ZodObject<{
460
460
  prop: z.ZodEnum<{
461
461
  x: "x";
462
462
  y: "y";
463
- scale: "scale";
464
- rotation: "rotation";
465
- opacity: "opacity";
466
463
  width: "width";
467
464
  height: "height";
465
+ rotation: "rotation";
466
+ scale: "scale";
467
+ opacity: "opacity";
468
+ trimStart: "trimStart";
469
+ trimEnd: "trimEnd";
470
+ text: "text";
471
+ fontSize: "fontSize";
472
+ fill: "fill";
473
+ letterSpacing: "letterSpacing";
474
+ padding: "padding";
475
+ strokeWidth: "strokeWidth";
476
+ borderColor: "borderColor";
477
+ borderWidth: "borderWidth";
468
478
  volume: "volume";
479
+ color: "color";
480
+ offset: "offset";
469
481
  hidden: "hidden";
470
482
  muted: "muted";
471
483
  gap: "gap";
472
- padding: "padding";
473
484
  borderRadius: "borderRadius";
474
- fontSize: "fontSize";
475
- text: "text";
476
- fill: "fill";
477
- color: "color";
478
- letterSpacing: "letterSpacing";
479
485
  d: "d";
480
- trimStart: "trimStart";
481
- trimEnd: "trimEnd";
482
486
  trimOffset: "trimOffset";
483
- strokeWidth: "strokeWidth";
484
487
  strokeDashOffset: "strokeDashOffset";
485
488
  cornerRadius: "cornerRadius";
486
489
  starInnerRadiusRatio: "starInnerRadiusRatio";
487
490
  fillColor: "fillColor";
488
491
  strokeColor: "strokeColor";
489
- borderColor: "borderColor";
490
- borderWidth: "borderWidth";
491
492
  motionBlurShutter: "motionBlurShutter";
492
493
  rangeStart: "rangeStart";
493
494
  rangeEnd: "rangeEnd";
494
- offset: "offset";
495
495
  animatorRangeStart: "animatorRangeStart";
496
496
  animatorRangeEnd: "animatorRangeEnd";
497
497
  animatorOffset: "animatorOffset";
@@ -594,6 +594,7 @@ declare const LayerAnimationSchema: z.ZodObject<{
594
594
  value: z.ZodUnion<readonly [z.ZodNumber, z.ZodBoolean, z.ZodString]>;
595
595
  ease: z.ZodOptional<z.ZodObject<{
596
596
  name: z.ZodEnum<{
597
+ bounce: "bounce";
597
598
  none: "none";
598
599
  power1: "power1";
599
600
  power2: "power2";
@@ -603,7 +604,6 @@ declare const LayerAnimationSchema: z.ZodObject<{
603
604
  expo: "expo";
604
605
  back: "back";
605
606
  elastic: "elastic";
606
- bounce: "bounce";
607
607
  spring: "spring";
608
608
  cubic: "cubic";
609
609
  hold: "hold";
@@ -1895,134 +1895,394 @@ declare function collectNodeOps(nodes: VirtualMediaData[]): VirtualMediaData[];
1895
1895
  //#endregion
1896
1896
  //#region src/program/validate.d.ts
1897
1897
  //#endregion
1898
- //#region ../components/dist/toolkit-HF1uj72e.d.mts
1899
- //#region src/core/audio.d.ts
1900
-
1901
- /** A track's spectrum and loudness per frame, every value 0–1. */
1902
- interface AudioLevels {
1903
- fps: number;
1904
- /** Length in frames. */
1905
- frames: number;
1906
- /** `[band][frame]`, low → high frequencies. */
1907
- bands: number[][];
1908
- /** Loudness envelope, `[frame]`. */
1909
- level: number[];
1910
- /** Onset frames (kicks, plosives), from low-band flux. */
1911
- beats: number[];
1912
- }
1913
- interface AnalyzeOptions {
1914
- /** Frame rate of the composition. Default 30. */
1915
- fps?: number;
1916
- /** Log-spaced bands. Default 32. */
1917
- bands?: number;
1918
- /** Lowest band edge, Hz. Default 50. */
1919
- minHz?: number;
1920
- /** Highest band edge, Hz. Default 12 000 (or Nyquist). */
1921
- maxHz?: number;
1922
- }
1923
- /** Band edges in Hz, log-spaced. */
1924
- declare function bandEdges(count: number, minHz: number, maxHz: number): number[];
1898
+ //#region ../components/dist/typing-c419Mp0t.d.mts
1899
+ //#region src/core/path.d.ts
1925
1900
  /**
1926
- * Analyse decoded audio: a Hann-windowed FFT per frame into log-spaced
1927
- * bands, each normalised to its own 98th percentile (floored 30 dB under the
1928
- * loudest band's, so a quiet band is not stretched into noise), an RMS level
1929
- * envelope, and onsets from low-band spectral flux.
1901
+ * 2D path math: smooth curves through points, arc-length sampling, and SVG
1902
+ * path strings. Used for pointer travel, camera moves and drawn marks.
1930
1903
  */
1931
- declare function analyzeChannels(channels: readonly Float32Array[], sampleRate: number, options?: AnalyzeOptions): AudioLevels;
1932
- /** Average adjacent bands down (or repeat them up) to `count` bands. */
1933
- declare function resampleBands(bands: readonly (readonly number[])[], count: number): number[][];
1934
- /** Each value falls no faster than `release` frames from its peak (attack is instant). */
1935
- declare function smoothRelease(values: readonly number[], release: number): number[];
1936
- /** The schema for `AudioLevels` props (Waveform, Captions `pulse`). */
1937
- declare function audioLevelsSchema(): z.ZodType<AudioLevels>;
1938
- //#endregion
1939
- //#region src/core/bake.d.ts
1904
+ type Vec2$1 = [x: number, y: number];
1905
+ declare const dist: (a: Vec2$1, b: Vec2$1) => number;
1906
+ declare const lerp2: (a: Vec2$1, b: Vec2$1, t: number) => Vec2$1;
1940
1907
  /**
1941
- * Turn per-frame values into a few linear keyframes. Components solve motion
1942
- * offline (springs, camera follow, arc-length travel) and bake it, so the
1943
- * output stays plain keyframe JSON that seeks exactly.
1908
+ * Centripetal Catmull-Rom through `points`, flattened to a polyline with
1909
+ * `steps` samples per segment. Centripetal (alpha 0.5) never loops or cusps
1910
+ * between close points, which matters for pointer paths.
1944
1911
  */
1945
- /** `[frame, value]`: a linear keyframe, as `LayerAnimation.keys` takes it. */
1946
- type BakedKey = [frame: number, value: number];
1947
- interface BakeOptions {
1948
- /** Max deviation (in the value's units) of the simplified curve. Default 0.25. */
1949
- tolerance?: number;
1912
+ declare function catmullRom(points: readonly Vec2$1[], steps?: number): Vec2$1[];
1913
+ /** A polyline with a cumulative arc-length table, sampled by distance. */
1914
+ interface ArcPath {
1915
+ readonly points: readonly Vec2$1[];
1916
+ readonly length: number;
1917
+ /** Point at `u` ∈ [0, 1] of the total length. */
1918
+ at(u: number): Vec2$1;
1919
+ /** Unit tangent direction (radians) at `u`. */
1920
+ angleAt(u: number): number;
1950
1921
  }
1922
+ declare function arcPath(points: readonly Vec2$1[]): ArcPath;
1923
+ /** SVG path data for a polyline (optionally closed). Rounded to 0.01 px. */
1924
+ declare function toPathData(points: readonly Vec2$1[], closed?: boolean): string;
1951
1925
  /**
1952
- * Simplify `values` (one per frame, starting at `startFrame`) to linear keys
1953
- * whose interpolation stays within `tolerance` of every sample
1954
- * (Ramer–Douglas–Peucker on the frame/value polyline). First and last
1955
- * samples are always kept.
1956
- */
1957
- declare function bakeSamples(values: readonly number[], startFrame?: number, options?: BakeOptions): BakedKey[];
1958
- /** Sample `fn` on every frame in [start, end] and bake it. */
1959
- declare function bakeFunction(fn: (frame: number) => number, start: number, end: number, options?: BakeOptions): BakedKey[];
1960
- /**
1961
- * Damped spring from 0 to 1 in closed form: `stiffness` (k), `damping` (c),
1962
- * `mass` (m), sampled in seconds. Under-damped springs overshoot.
1963
- */
1964
- declare function springAt(seconds: number, {
1965
- stiffness,
1966
- damping,
1967
- mass
1968
- }?: {
1969
- stiffness?: number | undefined;
1970
- damping?: number | undefined;
1971
- mass?: number | undefined;
1972
- }): number;
1973
- /**
1974
- * Frames until a spring stays within `epsilon` of rest, at `fps`; capped at
1975
- * `max` frames.
1976
- */
1977
- declare function springSettleFrames(fps: number, options?: Parameters<typeof springAt>[1], epsilon?: number, max?: number): number;
1978
- /**
1979
- * A spring from `from` to `to` starting at frame `start`, baked to linear
1980
- * keys (within `tolerance`, default 0.2 % of the distance).
1981
- */
1982
- declare function springKeys(start: number, from: number, to: number, fps: number, options?: Parameters<typeof springAt>[1], tolerance?: number): BakedKey[];
1983
- /**
1984
- * Per-frame values (frames 0…`length`) that spring to each new target from
1985
- * wherever they are: a retarget mid-flight starts from the current value
1986
- * (velocity isn't carried over). Bake with `bakeSamples` or bind as a signal.
1926
+ * Scale and offset SVG path data: `x' = x × scale + dx`. Absolute commands
1927
+ * move by the offset; relative ones (and arc radii) only scale. Used to
1928
+ * size glyphs designed on a small grid, and logo marks in their viewBox.
1987
1929
  */
1988
- declare function springTrack(changes: ReadonlyArray<readonly [frame: number, target: number]>, initial: number, length: number, fps: number, options?: {
1989
- stiffness: number;
1990
- damping: number;
1991
- }): number[];
1930
+ declare function transformPathData(d: string, scale: number, dx?: number, dy?: number): string;
1992
1931
  //#endregion
1993
- //#region src/core/color.d.ts
1994
- /**
1995
- * Color math for components: parse, fade, mix and judge lightness. Accepts
1996
- * `#rgb`, `#rgba`, `#rrggbb`, `#rrggbbaa`, `rgb()` / `rgba()` (comma or
1997
- * space syntax) and `white` / `black` / `transparent`. Anything else (a
1998
- * gradient, `oklch()`, a CSS variable) passes through untouched where a
1999
- * function returns a color, and counts as unknown where it returns a number.
2000
- */
2001
- /** Red, green, blue (0–255) and alpha (0–1). */
2002
- type Rgba = [r: number, g: number, b: number, a: number];
2003
- /** The color's channels, or null when the format isn't one listed above. */
2004
- declare function parseColor(color: string): Rgba | null;
2005
- /** `color` at `alpha` (replacing its own); unknown formats pass through. */
2006
- declare function withAlpha(color: string, alpha: number): string;
2007
- /**
2008
- * `color` fully transparent, keeping its hue, so a gradient fading to it has
2009
- * no dark fringe. Unknown formats give plain `rgba(0,0,0,0)`.
2010
- */
2011
- declare function transparent(color: string): string;
2012
- /** Mix `a` toward `b` by `t` (0 → a, 1 → b): `#rrggbb` when both are opaque. */
2013
- declare function mix(a: string, b: string, t: number): string;
2014
- /** WCAG relative luminance (0 black … 1 white), or null for unknown formats. */
2015
- declare function luminance(color: string): number | null;
2016
- /** WCAG contrast ratio of two colors, or null when either is unknown. */
2017
- declare function contrastRatio(a: string, b: string): number | null;
1932
+ //#region src/core/draw.d.ts
1933
+ interface Rect {
1934
+ x: number;
1935
+ y: number;
1936
+ width: number;
1937
+ height: number;
1938
+ }
1939
+ interface HandOptions {
1940
+ /** Wobble amount in px at theme scale 1. 0 = clean geometry. */
1941
+ wobble?: number;
1942
+ seed?: number;
1943
+ }
1944
+ /** Keys for `trimEnd` 0 → 1 between `start` and `start + duration`. */
1945
+ declare function drawOnKeys(start: number, duration: number, ease?: string): KeyframeTuple[];
2018
1946
  /**
2019
- * True when black text reads better than white on `color` (luminance above
2020
- * ~0.18). Unknown formats count as dark.
1947
+ * Perturb points with seeded, low-frequency noise: neighbouring points move
1948
+ * together, so lines bend instead of jittering.
2021
1949
  */
2022
- declare function isLight(color: string): boolean;
2023
- /** Whichever of `light` / `dark` ink reads better on `background`. */
2024
- declare function inkOn(background: string, light?: string, dark?: string): string;
2025
- //#endregion
1950
+ declare function wobblePoints(points: readonly Vec2$1[], {
1951
+ wobble,
1952
+ seed
1953
+ }?: HandOptions, variant?: number): Vec2$1[];
1954
+ /** An ellipse around `rect` (+ padding); hand-drawn ellipses overshoot their start. */
1955
+ declare function ellipsePath(rect: Rect, {
1956
+ padding,
1957
+ wobble,
1958
+ seed
1959
+ }?: HandOptions & {
1960
+ padding?: number;
1961
+ }, variant?: number): string;
1962
+ /** A rectangle around `rect` (+ padding). */
1963
+ declare function boxPath(rect: Rect, {
1964
+ padding,
1965
+ wobble,
1966
+ seed
1967
+ }?: HandOptions & {
1968
+ padding?: number;
1969
+ }, variant?: number): string;
1970
+ /** A horizontal stroke from `from` to `to`. */
1971
+ declare function linePath(from: Vec2$1, to: Vec2$1, {
1972
+ wobble,
1973
+ seed
1974
+ }?: HandOptions, variant?: number): string;
1975
+ /** A wavy line from `from` to `to`, `waves` crests of `amplitude` px. */
1976
+ declare function squigglePath(from: Vec2$1, to: Vec2$1, {
1977
+ amplitude,
1978
+ waves,
1979
+ wobble,
1980
+ seed
1981
+ }?: HandOptions & {
1982
+ amplitude?: number;
1983
+ waves?: number;
1984
+ }, variant?: number): string;
1985
+ type ArrowCurve = "straight" | "arc" | "swoop";
1986
+ interface ArrowGeometry {
1987
+ /** The shaft, drawn from `from` to just before `to`. */
1988
+ shaft: string;
1989
+ /** The head, two strokes meeting at `to`. */
1990
+ head: string;
1991
+ }
1992
+ /** An arrow from `from` to `to` with a separate head path. */
1993
+ declare function arrowPaths(from: Vec2$1, to: Vec2$1, {
1994
+ curve,
1995
+ headSize,
1996
+ wobble,
1997
+ seed
1998
+ }?: HandOptions & {
1999
+ curve?: ArrowCurve;
2000
+ headSize?: number;
2001
+ }, variant?: number): ArrowGeometry;
2002
+ /**
2003
+ * Hand-drawn "boil": `d` keys that switch between `variants` poses every
2004
+ * `every` frames with hold interpolation, from `start` to `end`.
2005
+ * `makePath(variant)` must be deterministic for a variant index.
2006
+ */
2007
+ declare function boilKeys(makePath: (variant: number) => string, {
2008
+ start,
2009
+ end,
2010
+ every,
2011
+ variants
2012
+ }: {
2013
+ start: number;
2014
+ end: number;
2015
+ every: number;
2016
+ variants?: number;
2017
+ }): KeyframeTuple[];
2018
+ //#endregion
2019
+ //#region src/core/text.d.ts
2020
+ /** The subset of `FontManager.measure` options components pass. */
2021
+ interface MeasureOptions {
2022
+ fontFamily: string;
2023
+ fontSize?: number;
2024
+ fontWeight?: string | number;
2025
+ letterSpacing?: number;
2026
+ lineHeight?: number;
2027
+ width?: number;
2028
+ align?: "left" | "center" | "right";
2029
+ direction?: "ltr" | "rtl" | "auto";
2030
+ }
2031
+ interface GlyphBox {
2032
+ char: string;
2033
+ index: number;
2034
+ x: number;
2035
+ width: number;
2036
+ line: number;
2037
+ rtl?: boolean;
2038
+ }
2039
+ /** The subset of `FontManager.measure` results components read. */
2040
+ interface Metrics$1 {
2041
+ width: number;
2042
+ height: number;
2043
+ lines: number;
2044
+ lineHeight: number;
2045
+ glyphs: GlyphBox[];
2046
+ caretX(count: number): number;
2047
+ }
2048
+ type MeasureFn = (text: string, options: MeasureOptions) => Metrics$1;
2049
+ interface WordRange {
2050
+ text: string;
2051
+ /** Index of the first character (code units). */
2052
+ start: number;
2053
+ /** Index after the last character. */
2054
+ end: number;
2055
+ index: number;
2056
+ }
2057
+ /** Whitespace-separated words with their character ranges. */
2058
+ declare function wordRanges(text: string): WordRange[];
2059
+ /** Character range of the `nth` match of `match` in `text`, or null. */
2060
+ declare function findRange(text: string, match: string | RegExp, nth?: number): [number, number] | null;
2061
+ /**
2062
+ * Per-line x offset that `align` adds inside a box of `options.width`
2063
+ * (measurement itself lays every line out from the left edge).
2064
+ */
2065
+ declare function lineShift(metrics: Metrics$1, line: number, options: MeasureOptions): number;
2066
+ /**
2067
+ * The boxes characters [start, end) cover: one rect per line, spanning the
2068
+ * glyphs' advances, `lineHeight` tall. Whitespace at a line's ends is
2069
+ * excluded.
2070
+ */
2071
+ declare function rangeRects(metrics: Metrics$1, start: number, end: number, options: MeasureOptions): Rect[];
2072
+ //#endregion
2073
+ //#region src/core/targets.d.ts
2074
+ type Anchor = "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right"
2075
+ /** Where a pointer should land: the centre, or mid-left for text. */ | "tip";
2076
+ /** A node as targets read it: absolute numeric geometry, or text. */
2077
+ interface TargetNode {
2078
+ id?: string;
2079
+ kind?: string;
2080
+ x?: unknown;
2081
+ y?: unknown;
2082
+ width?: unknown;
2083
+ height?: unknown;
2084
+ text?: unknown;
2085
+ content?: unknown;
2086
+ [key: string]: unknown;
2087
+ }
2088
+ /** The frame context signals are read with. */
2089
+ interface FrameContextLike {
2090
+ frame: number;
2091
+ fps: number;
2092
+ time: number;
2093
+ duration: number;
2094
+ durationMs: number;
2095
+ progress: number;
2096
+ deltaTime: number;
2097
+ }
2098
+ /** A per-frame value: a signal (what tracked objects expose) or a function. */
2099
+ type FrameValue = {
2100
+ get(ctx?: FrameContextLike): number;
2101
+ } | ((frame: number) => number);
2102
+ interface TrackedObjectLike {
2103
+ x: FrameValue;
2104
+ y: FrameValue;
2105
+ width: FrameValue;
2106
+ height: FrameValue;
2107
+ }
2108
+ type Target = Vec2$1 | Rect | {
2109
+ node: TargetNode;
2110
+ anchor?: Anchor;
2111
+ } | {
2112
+ text: TargetNode;
2113
+ match?: string | RegExp;
2114
+ range?: [number, number];
2115
+ nth?: number;
2116
+ anchor?: Anchor;
2117
+ } | {
2118
+ track: TrackedObjectLike;
2119
+ anchor?: Anchor;
2120
+ } | ((frame: number) => Vec2$1 | Rect);
2121
+ interface TargetContext {
2122
+ measure?: MeasureFn;
2123
+ /** Frame rate signals are sampled at (tracked targets). Default 30. */
2124
+ fps?: number;
2125
+ /** Font defaults for text nodes that don't set them. */
2126
+ textDefaults?: Partial<MeasureOptions>;
2127
+ }
2128
+ type ResolvedTarget = {
2129
+ kind: "static";
2130
+ rects: Rect[];
2131
+ anchor: Anchor;
2132
+ } | {
2133
+ kind: "dynamic";
2134
+ at: (frame: number) => Rect;
2135
+ anchor: Anchor;
2136
+ };
2137
+ /** Resolve a target to rects (static) or a per-frame rect (dynamic). */
2138
+ declare function resolveTarget(target: Target, ctx?: TargetContext): ResolvedTarget;
2139
+ /** A text target's string, measured glyphs and range, and where the node sits. */
2140
+ interface TextLayout {
2141
+ content: string;
2142
+ metrics: ReturnType<MeasureFn>;
2143
+ options: MeasureOptions;
2144
+ range: [number, number];
2145
+ /** The node's x / y: add to measured glyph positions. */
2146
+ x: number;
2147
+ y: number;
2148
+ }
2149
+ /** Measure a text target the way the renderer lays it out. */
2150
+ declare function textLayout(target: Extract<Target, {
2151
+ text: TargetNode;
2152
+ }>, ctx: TargetContext): TextLayout;
2153
+ /** The union rect of `rects`. */
2154
+ declare function boundsOf(rects: readonly Rect[]): Rect;
2155
+ /** The point of `rect` named by `anchor`. `tip` on text = start of the first line, mid-height. */
2156
+ declare function anchorPoint(rect: Rect, anchor?: Anchor, isText?: boolean): Vec2$1;
2157
+ /** The point a resolved target names at `frame` (static targets ignore frame). */
2158
+ declare function targetPoint(resolved: ResolvedTarget, frame?: number, isText?: boolean): Vec2$1;
2159
+ //#endregion
2160
+ //#region src/core/audio.d.ts
2161
+ /** A track's spectrum and loudness per frame, every value 0–1. */
2162
+ interface AudioLevels {
2163
+ fps: number;
2164
+ /** Length in frames. */
2165
+ frames: number;
2166
+ /** `[band][frame]`, low → high frequencies. */
2167
+ bands: number[][];
2168
+ /** Loudness envelope, `[frame]`. */
2169
+ level: number[];
2170
+ /** Onset frames (kicks, plosives), from low-band flux. */
2171
+ beats: number[];
2172
+ }
2173
+ interface AnalyzeOptions {
2174
+ /** Frame rate of the composition. Default 30. */
2175
+ fps?: number;
2176
+ /** Log-spaced bands. Default 32. */
2177
+ bands?: number;
2178
+ /** Lowest band edge, Hz. Default 50. */
2179
+ minHz?: number;
2180
+ /** Highest band edge, Hz. Default 12 000 (or Nyquist). */
2181
+ maxHz?: number;
2182
+ }
2183
+ /** Band edges in Hz, log-spaced. */
2184
+ declare function bandEdges(count: number, minHz: number, maxHz: number): number[];
2185
+ /**
2186
+ * Analyse decoded audio: a Hann-windowed FFT per frame into log-spaced
2187
+ * bands, each normalised to its own 98th percentile (floored 30 dB under the
2188
+ * loudest band's, so a quiet band is not stretched into noise), an RMS level
2189
+ * envelope, and onsets from low-band spectral flux.
2190
+ */
2191
+ declare function analyzeChannels(channels: readonly Float32Array[], sampleRate: number, options?: AnalyzeOptions): AudioLevels;
2192
+ /** Average adjacent bands down (or repeat them up) to `count` bands. */
2193
+ declare function resampleBands(bands: readonly (readonly number[])[], count: number): number[][];
2194
+ /** Each value falls no faster than `release` frames from its peak (attack is instant). */
2195
+ declare function smoothRelease(values: readonly number[], release: number): number[];
2196
+ /** The schema for `AudioLevels` props (Waveform, Captions `pulse`). */
2197
+ declare function audioLevelsSchema(): z.ZodType<AudioLevels>;
2198
+ //#endregion
2199
+ //#region src/core/bake.d.ts
2200
+ /**
2201
+ * Turn per-frame values into a few linear keyframes. Components solve motion
2202
+ * offline (springs, camera follow, arc-length travel) and bake it, so the
2203
+ * output stays plain keyframe JSON that seeks exactly.
2204
+ */
2205
+ /** `[frame, value]`: a linear keyframe, as `LayerAnimation.keys` takes it. */
2206
+ type BakedKey = [frame: number, value: number];
2207
+ interface BakeOptions {
2208
+ /** Max deviation (in the value's units) of the simplified curve. Default 0.25. */
2209
+ tolerance?: number;
2210
+ }
2211
+ /**
2212
+ * Simplify `values` (one per frame, starting at `startFrame`) to linear keys
2213
+ * whose interpolation stays within `tolerance` of every sample
2214
+ * (Ramer–Douglas–Peucker on the frame/value polyline). First and last
2215
+ * samples are always kept.
2216
+ */
2217
+ declare function bakeSamples(values: readonly number[], startFrame?: number, options?: BakeOptions): BakedKey[];
2218
+ /** Sample `fn` on every frame in [start, end] and bake it. */
2219
+ declare function bakeFunction(fn: (frame: number) => number, start: number, end: number, options?: BakeOptions): BakedKey[];
2220
+ /**
2221
+ * Damped spring from 0 to 1 in closed form: `stiffness` (k), `damping` (c),
2222
+ * `mass` (m), sampled in seconds. Under-damped springs overshoot.
2223
+ */
2224
+ declare function springAt(seconds: number, {
2225
+ stiffness,
2226
+ damping,
2227
+ mass
2228
+ }?: {
2229
+ stiffness?: number | undefined;
2230
+ damping?: number | undefined;
2231
+ mass?: number | undefined;
2232
+ }): number;
2233
+ /**
2234
+ * Frames until a spring stays within `epsilon` of rest, at `fps`; capped at
2235
+ * `max` frames.
2236
+ */
2237
+ declare function springSettleFrames(fps: number, options?: Parameters<typeof springAt>[1], epsilon?: number, max?: number): number;
2238
+ /**
2239
+ * A spring from `from` to `to` starting at frame `start`, baked to linear
2240
+ * keys (within `tolerance`, default 0.2 % of the distance).
2241
+ */
2242
+ declare function springKeys(start: number, from: number, to: number, fps: number, options?: Parameters<typeof springAt>[1], tolerance?: number): BakedKey[];
2243
+ /**
2244
+ * Per-frame values (frames 0…`length`) that spring to each new target from
2245
+ * wherever they are: a retarget mid-flight starts from the current value
2246
+ * (velocity isn't carried over). Bake with `bakeSamples` or bind as a signal.
2247
+ */
2248
+ declare function springTrack(changes: ReadonlyArray<readonly [frame: number, target: number]>, initial: number, length: number, fps: number, options?: {
2249
+ stiffness: number;
2250
+ damping: number;
2251
+ }): number[];
2252
+ //#endregion
2253
+ //#region src/core/color.d.ts
2254
+ /**
2255
+ * Color math for components: parse, fade, mix and judge lightness. Accepts
2256
+ * `#rgb`, `#rgba`, `#rrggbb`, `#rrggbbaa`, `rgb()` / `rgba()` (comma or
2257
+ * space syntax) and `white` / `black` / `transparent`. Anything else (a
2258
+ * gradient, `oklch()`, a CSS variable) passes through untouched where a
2259
+ * function returns a color, and counts as unknown where it returns a number.
2260
+ */
2261
+ /** Red, green, blue (0–255) and alpha (0–1). */
2262
+ type Rgba = [r: number, g: number, b: number, a: number];
2263
+ /** The color's channels, or null when the format isn't one listed above. */
2264
+ declare function parseColor(color: string): Rgba | null;
2265
+ /** `color` at `alpha` (replacing its own); unknown formats pass through. */
2266
+ declare function withAlpha(color: string, alpha: number): string;
2267
+ /**
2268
+ * `color` fully transparent, keeping its hue, so a gradient fading to it has
2269
+ * no dark fringe. Unknown formats give plain `rgba(0,0,0,0)`.
2270
+ */
2271
+ declare function transparent(color: string): string;
2272
+ /** Mix `a` toward `b` by `t` (0 → a, 1 → b): `#rrggbb` when both are opaque. */
2273
+ declare function mix(a: string, b: string, t: number): string;
2274
+ /** WCAG relative luminance (0 black … 1 white), or null for unknown formats. */
2275
+ declare function luminance(color: string): number | null;
2276
+ /** WCAG contrast ratio of two colors, or null when either is unknown. */
2277
+ declare function contrastRatio(a: string, b: string): number | null;
2278
+ /**
2279
+ * True when black text reads better than white on `color` (luminance above
2280
+ * ~0.18). Unknown formats count as dark.
2281
+ */
2282
+ declare function isLight(color: string): boolean;
2283
+ /** Whichever of `light` / `dark` ink reads better on `background`. */
2284
+ declare function inkOn(background: string, light?: string, dark?: string): string;
2285
+ //#endregion
2026
2286
  //#region src/core/theme.d.ts
2027
2287
  /** A spring, as `springKeys` / `springAt` take it. */
2028
2288
  interface Spring {
@@ -2105,191 +2365,48 @@ interface Theme {
2105
2365
  slow: number;
2106
2366
  };
2107
2367
  /** `settle` lands without overshoot, `base` overshoots a little, `pop` bounces. */
2108
- spring: {
2109
- settle: Spring;
2110
- base: Spring;
2111
- pop: Spring;
2112
- };
2113
- };
2114
- /** Code token colors (CodeBlock); unset kinds use the built-in palette. */
2115
- syntax?: Partial<Record<SyntaxKind, string>>;
2116
- /** 1 = designed for 1080p. 2 for 4K, 0.5 for 540p. */
2117
- scale: number;
2118
- }
2119
- /** Token kinds CodeBlock colors. */
2120
- type SyntaxKind = "plain" | "keyword" | "string" | "number" | "comment" | "function" | "type" | "property" | "punctuation" | "operator";
2121
- type ThemeInput = DeepPartial<Theme>;
2122
- type DeepPartial<T> = { [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K] };
2123
- /** Built-in themes. Fonts are never bundled: register the families you use. */
2124
- declare const themes: {
2125
- /** Dark neutral: product demos, dev tools. */
2126
- readonly graphite: {
2127
- readonly elevation: {
2128
- low: Elevation;
2129
- mid: Elevation;
2130
- high: Elevation;
2131
- };
2132
- readonly motion: {
2133
- ease: {
2134
- enter: string;
2135
- exit: string;
2136
- move: string;
2137
- snap: string;
2138
- };
2139
- /** Durations in frames at 30 fps; see {@link themeFrames}. */
2140
- speed: {
2141
- fast: number;
2142
- base: number;
2143
- slow: number;
2144
- };
2145
- /** `settle` lands without overshoot, `base` overshoots a little, `pop` bounces. */
2146
- spring: {
2147
- settle: Spring;
2148
- base: Spring;
2149
- pop: Spring;
2150
- };
2151
- };
2152
- readonly scale: 1;
2153
- readonly radius: {
2154
- sm: number;
2155
- md: number;
2156
- lg: number;
2157
- pill: number;
2158
- };
2159
- readonly stroke: {
2160
- hair: number;
2161
- base: number;
2162
- bold: number;
2163
- };
2164
- readonly mode: "dark";
2165
- readonly color: {
2166
- readonly bg: "#0d0e11";
2167
- readonly surface: "#16181d";
2168
- readonly raised: "#1f2229";
2169
- readonly line: "#2b2f38";
2170
- readonly ink: "#f3f4f6";
2171
- readonly muted: "#8b909c";
2172
- readonly accent: "#5b8cff";
2173
- readonly accent2: "#b07cff";
2174
- readonly positive: "#3ecf8e";
2175
- readonly negative: "#ff5c5c";
2176
- readonly highlight: "#ffd23f";
2177
- readonly shadow: "#000000";
2178
- };
2179
- readonly font: {
2180
- display: string;
2181
- body: string;
2182
- mono: string;
2183
- hand?: string;
2184
- };
2185
- readonly weight: {
2186
- regular: number;
2187
- medium: number;
2188
- semibold: number;
2189
- bold: number;
2190
- heavy: number;
2191
- };
2192
- };
2193
- /** Light editorial: explainers, documentaries. */
2194
- readonly paper: {
2195
- readonly elevation: {
2196
- low: Elevation;
2197
- mid: Elevation;
2198
- high: Elevation;
2199
- };
2200
- readonly motion: {
2201
- ease: {
2202
- enter: string;
2203
- exit: string;
2204
- move: string;
2205
- snap: string;
2206
- };
2207
- /** Durations in frames at 30 fps; see {@link themeFrames}. */
2208
- speed: {
2209
- fast: number;
2210
- base: number;
2211
- slow: number;
2212
- };
2213
- /** `settle` lands without overshoot, `base` overshoots a little, `pop` bounces. */
2214
- spring: {
2215
- settle: Spring;
2216
- base: Spring;
2217
- pop: Spring;
2218
- };
2219
- };
2220
- readonly scale: 1;
2221
- readonly radius: {
2222
- sm: number;
2223
- md: number;
2224
- lg: number;
2225
- pill: number;
2226
- };
2227
- readonly stroke: {
2228
- hair: number;
2229
- base: number;
2230
- bold: number;
2231
- };
2232
- readonly mode: "light";
2233
- readonly color: {
2234
- readonly bg: "#f4f1ea";
2235
- readonly surface: "#fffdf8";
2236
- readonly raised: "#ffffff";
2237
- readonly line: "#dcd6c8";
2238
- readonly ink: "#1a1814";
2239
- readonly muted: "#6b665c";
2240
- readonly accent: "#e0451f";
2241
- readonly accent2: "#1f5fe0";
2242
- readonly positive: "#1f8a4c";
2243
- readonly negative: "#c8282d";
2244
- readonly highlight: "#ffe066";
2245
- readonly shadow: "#3b2f1e";
2246
- };
2247
- readonly font: {
2248
- display: string;
2249
- body: string;
2250
- mono: string;
2251
- hand?: string;
2252
- };
2253
- readonly weight: {
2254
- regular: number;
2255
- medium: number;
2256
- semibold: number;
2257
- bold: number;
2258
- heavy: number;
2368
+ spring: {
2369
+ settle: Spring;
2370
+ base: Spring;
2371
+ pop: Spring;
2259
2372
  };
2260
2373
  };
2261
- /** High contrast, saturated accent: social clips. */
2262
- readonly signal: {
2374
+ /** Code token colors (CodeBlock); unset kinds use the built-in palette. */
2375
+ syntax?: Partial<Record<SyntaxKind, string>>;
2376
+ /** 1 = designed for 1080p. 2 for 4K, 0.5 for 540p. */
2377
+ scale: number;
2378
+ }
2379
+ /** Token kinds CodeBlock colors. */
2380
+ type SyntaxKind = "plain" | "keyword" | "string" | "number" | "comment" | "function" | "type" | "property" | "punctuation" | "operator";
2381
+ type ThemeInput = DeepPartial<Theme>;
2382
+ type DeepPartial<T> = { [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K] };
2383
+ /** Built-in themes. Fonts are never bundled: register the families you use. */
2384
+ declare const themes: {
2385
+ /** Dark neutral: product demos, dev tools. */
2386
+ readonly graphite: {
2263
2387
  readonly elevation: {
2264
2388
  low: Elevation;
2265
2389
  mid: Elevation;
2266
2390
  high: Elevation;
2267
2391
  };
2268
2392
  readonly motion: {
2269
- readonly ease: {
2270
- readonly enter: "back.out(1.8)";
2271
- readonly exit: string;
2272
- readonly move: string;
2273
- readonly snap: string;
2393
+ ease: {
2394
+ enter: string;
2395
+ exit: string;
2396
+ move: string;
2397
+ snap: string;
2274
2398
  };
2275
- readonly speed: {
2276
- readonly fast: 6;
2277
- readonly base: 12;
2278
- readonly slow: 24;
2399
+ /** Durations in frames at 30 fps; see {@link themeFrames}. */
2400
+ speed: {
2401
+ fast: number;
2402
+ base: number;
2403
+ slow: number;
2279
2404
  };
2280
- readonly spring: {
2281
- readonly settle: {
2282
- readonly stiffness: 300;
2283
- readonly damping: 26;
2284
- };
2285
- readonly base: {
2286
- readonly stiffness: 340;
2287
- readonly damping: 22;
2288
- };
2289
- readonly pop: {
2290
- readonly stiffness: 400;
2291
- readonly damping: 14;
2292
- };
2405
+ /** `settle` lands without overshoot, `base` overshoots a little, `pop` bounces. */
2406
+ spring: {
2407
+ settle: Spring;
2408
+ base: Spring;
2409
+ pop: Spring;
2293
2410
  };
2294
2411
  };
2295
2412
  readonly scale: 1;
@@ -2306,17 +2423,17 @@ declare const themes: {
2306
2423
  };
2307
2424
  readonly mode: "dark";
2308
2425
  readonly color: {
2309
- readonly bg: "#000000";
2310
- readonly surface: "#111111";
2311
- readonly raised: "#1c1c1c";
2312
- readonly line: "#333333";
2313
- readonly ink: "#ffffff";
2314
- readonly muted: "#a3a3a3";
2315
- readonly accent: "#c6ff00";
2316
- readonly accent2: "#ff2e88";
2317
- readonly positive: "#00e676";
2318
- readonly negative: "#ff1744";
2319
- readonly highlight: "#c6ff00";
2426
+ readonly bg: "#0d0e11";
2427
+ readonly surface: "#16181d";
2428
+ readonly raised: "#1f2229";
2429
+ readonly line: "#2b2f38";
2430
+ readonly ink: "#f3f4f6";
2431
+ readonly muted: "#8b909c";
2432
+ readonly accent: "#5b8cff";
2433
+ readonly accent2: "#b07cff";
2434
+ readonly positive: "#3ecf8e";
2435
+ readonly negative: "#ff5c5c";
2436
+ readonly highlight: "#ffd23f";
2320
2437
  readonly shadow: "#000000";
2321
2438
  };
2322
2439
  readonly font: {
@@ -2333,189 +2450,158 @@ declare const themes: {
2333
2450
  heavy: number;
2334
2451
  };
2335
2452
  };
2336
- };
2337
- type ThemeName = keyof typeof themes;
2338
- /**
2339
- * Merge a partial theme over a base (default `themes.graphite`). Throws when
2340
- * `ink` on `surface` falls below WCAG 4.5:1 and both are hex colors.
2341
- */
2342
- declare function defineTheme(input?: ThemeInput | Theme, base?: Theme): Theme;
2343
- /** A theme's duration token in frames at `fps`. */
2344
- declare function themeFrames(theme: Theme, speed: keyof Theme["motion"]["speed"], fps?: number): number;
2345
- //#endregion
2346
- //#region src/core/path.d.ts
2347
- /**
2348
- * 2D path math: smooth curves through points, arc-length sampling, and SVG
2349
- * path strings. Used for pointer travel, camera moves and drawn marks.
2350
- */
2351
- type Vec2$1 = [x: number, y: number];
2352
- declare const dist: (a: Vec2$1, b: Vec2$1) => number;
2353
- declare const lerp2: (a: Vec2$1, b: Vec2$1, t: number) => Vec2$1;
2354
- /**
2355
- * Centripetal Catmull-Rom through `points`, flattened to a polyline with
2356
- * `steps` samples per segment. Centripetal (alpha 0.5) never loops or cusps
2357
- * between close points, which matters for pointer paths.
2358
- */
2359
- declare function catmullRom(points: readonly Vec2$1[], steps?: number): Vec2$1[];
2360
- /** A polyline with a cumulative arc-length table, sampled by distance. */
2361
- interface ArcPath {
2362
- readonly points: readonly Vec2$1[];
2363
- readonly length: number;
2364
- /** Point at `u` ∈ [0, 1] of the total length. */
2365
- at(u: number): Vec2$1;
2366
- /** Unit tangent direction (radians) at `u`. */
2367
- angleAt(u: number): number;
2368
- }
2369
- declare function arcPath(points: readonly Vec2$1[]): ArcPath;
2370
- /** SVG path data for a polyline (optionally closed). Rounded to 0.01 px. */
2371
- declare function toPathData(points: readonly Vec2$1[], closed?: boolean): string;
2372
- /**
2373
- * Scale and offset SVG path data: `x' = x × scale + dx`. Absolute commands
2374
- * move by the offset; relative ones (and arc radii) only scale. Used to
2375
- * size glyphs designed on a small grid, and logo marks in their viewBox.
2376
- */
2377
- declare function transformPathData(d: string, scale: number, dx?: number, dy?: number): string;
2378
- //#endregion
2379
- //#region src/core/draw.d.ts
2380
- interface Rect {
2381
- x: number;
2382
- y: number;
2383
- width: number;
2384
- height: number;
2385
- }
2386
- interface HandOptions {
2387
- /** Wobble amount in px at theme scale 1. 0 = clean geometry. */
2388
- wobble?: number;
2389
- seed?: number;
2390
- }
2391
- /** Keys for `trimEnd` 0 → 1 between `start` and `start + duration`. */
2392
- declare function drawOnKeys(start: number, duration: number, ease?: string): KeyframeTuple[];
2393
- /**
2394
- * Perturb points with seeded, low-frequency noise: neighbouring points move
2395
- * together, so lines bend instead of jittering.
2396
- */
2397
- declare function wobblePoints(points: readonly Vec2$1[], {
2398
- wobble,
2399
- seed
2400
- }?: HandOptions, variant?: number): Vec2$1[];
2401
- /** An ellipse around `rect` (+ padding); hand-drawn ellipses overshoot their start. */
2402
- declare function ellipsePath(rect: Rect, {
2403
- padding,
2404
- wobble,
2405
- seed
2406
- }?: HandOptions & {
2407
- padding?: number;
2408
- }, variant?: number): string;
2409
- /** A rectangle around `rect` (+ padding). */
2410
- declare function boxPath(rect: Rect, {
2411
- padding,
2412
- wobble,
2413
- seed
2414
- }?: HandOptions & {
2415
- padding?: number;
2416
- }, variant?: number): string;
2417
- /** A horizontal stroke from `from` to `to`. */
2418
- declare function linePath(from: Vec2$1, to: Vec2$1, {
2419
- wobble,
2420
- seed
2421
- }?: HandOptions, variant?: number): string;
2422
- /** A wavy line from `from` to `to`, `waves` crests of `amplitude` px. */
2423
- declare function squigglePath(from: Vec2$1, to: Vec2$1, {
2424
- amplitude,
2425
- waves,
2426
- wobble,
2427
- seed
2428
- }?: HandOptions & {
2429
- amplitude?: number;
2430
- waves?: number;
2431
- }, variant?: number): string;
2432
- type ArrowCurve = "straight" | "arc" | "swoop";
2433
- interface ArrowGeometry {
2434
- /** The shaft, drawn from `from` to just before `to`. */
2435
- shaft: string;
2436
- /** The head, two strokes meeting at `to`. */
2437
- head: string;
2438
- }
2439
- /** An arrow from `from` to `to` with a separate head path. */
2440
- declare function arrowPaths(from: Vec2$1, to: Vec2$1, {
2441
- curve,
2442
- headSize,
2443
- wobble,
2444
- seed
2445
- }?: HandOptions & {
2446
- curve?: ArrowCurve;
2447
- headSize?: number;
2448
- }, variant?: number): ArrowGeometry;
2449
- /**
2450
- * Hand-drawn "boil": `d` keys that switch between `variants` poses every
2451
- * `every` frames with hold interpolation, from `start` to `end`.
2452
- * `makePath(variant)` must be deterministic for a variant index.
2453
- */
2454
- declare function boilKeys(makePath: (variant: number) => string, {
2455
- start,
2456
- end,
2457
- every,
2458
- variants
2459
- }: {
2460
- start: number;
2461
- end: number;
2462
- every: number;
2463
- variants?: number;
2464
- }): KeyframeTuple[];
2465
- //#endregion
2466
- //#region src/core/text.d.ts
2467
- /** The subset of `FontManager.measure` options components pass. */
2468
- interface MeasureOptions {
2469
- fontFamily: string;
2470
- fontSize?: number;
2471
- fontWeight?: string | number;
2472
- letterSpacing?: number;
2473
- lineHeight?: number;
2474
- width?: number;
2475
- align?: "left" | "center" | "right";
2476
- direction?: "ltr" | "rtl" | "auto";
2477
- }
2478
- interface GlyphBox {
2479
- char: string;
2480
- index: number;
2481
- x: number;
2482
- width: number;
2483
- line: number;
2484
- rtl?: boolean;
2485
- }
2486
- /** The subset of `FontManager.measure` results components read. */
2487
- interface Metrics$1 {
2488
- width: number;
2489
- height: number;
2490
- lines: number;
2491
- lineHeight: number;
2492
- glyphs: GlyphBox[];
2493
- caretX(count: number): number;
2494
- }
2495
- type MeasureFn = (text: string, options: MeasureOptions) => Metrics$1;
2496
- interface WordRange {
2497
- text: string;
2498
- /** Index of the first character (code units). */
2499
- start: number;
2500
- /** Index after the last character. */
2501
- end: number;
2502
- index: number;
2503
- }
2504
- /** Whitespace-separated words with their character ranges. */
2505
- declare function wordRanges(text: string): WordRange[];
2506
- /** Character range of the `nth` match of `match` in `text`, or null. */
2507
- declare function findRange(text: string, match: string | RegExp, nth?: number): [number, number] | null;
2508
- /**
2509
- * Per-line x offset that `align` adds inside a box of `options.width`
2510
- * (measurement itself lays every line out from the left edge).
2511
- */
2512
- declare function lineShift(metrics: Metrics$1, line: number, options: MeasureOptions): number;
2453
+ /** Light editorial: explainers, documentaries. */
2454
+ readonly paper: {
2455
+ readonly elevation: {
2456
+ low: Elevation;
2457
+ mid: Elevation;
2458
+ high: Elevation;
2459
+ };
2460
+ readonly motion: {
2461
+ ease: {
2462
+ enter: string;
2463
+ exit: string;
2464
+ move: string;
2465
+ snap: string;
2466
+ };
2467
+ /** Durations in frames at 30 fps; see {@link themeFrames}. */
2468
+ speed: {
2469
+ fast: number;
2470
+ base: number;
2471
+ slow: number;
2472
+ };
2473
+ /** `settle` lands without overshoot, `base` overshoots a little, `pop` bounces. */
2474
+ spring: {
2475
+ settle: Spring;
2476
+ base: Spring;
2477
+ pop: Spring;
2478
+ };
2479
+ };
2480
+ readonly scale: 1;
2481
+ readonly radius: {
2482
+ sm: number;
2483
+ md: number;
2484
+ lg: number;
2485
+ pill: number;
2486
+ };
2487
+ readonly stroke: {
2488
+ hair: number;
2489
+ base: number;
2490
+ bold: number;
2491
+ };
2492
+ readonly mode: "light";
2493
+ readonly color: {
2494
+ readonly bg: "#f4f1ea";
2495
+ readonly surface: "#fffdf8";
2496
+ readonly raised: "#ffffff";
2497
+ readonly line: "#dcd6c8";
2498
+ readonly ink: "#1a1814";
2499
+ readonly muted: "#6b665c";
2500
+ readonly accent: "#e0451f";
2501
+ readonly accent2: "#1f5fe0";
2502
+ readonly positive: "#1f8a4c";
2503
+ readonly negative: "#c8282d";
2504
+ readonly highlight: "#ffe066";
2505
+ readonly shadow: "#3b2f1e";
2506
+ };
2507
+ readonly font: {
2508
+ display: string;
2509
+ body: string;
2510
+ mono: string;
2511
+ hand?: string;
2512
+ };
2513
+ readonly weight: {
2514
+ regular: number;
2515
+ medium: number;
2516
+ semibold: number;
2517
+ bold: number;
2518
+ heavy: number;
2519
+ };
2520
+ };
2521
+ /** High contrast, saturated accent: social clips. */
2522
+ readonly signal: {
2523
+ readonly elevation: {
2524
+ low: Elevation;
2525
+ mid: Elevation;
2526
+ high: Elevation;
2527
+ };
2528
+ readonly motion: {
2529
+ readonly ease: {
2530
+ readonly enter: "back.out(1.8)";
2531
+ readonly exit: string;
2532
+ readonly move: string;
2533
+ readonly snap: string;
2534
+ };
2535
+ readonly speed: {
2536
+ readonly fast: 6;
2537
+ readonly base: 12;
2538
+ readonly slow: 24;
2539
+ };
2540
+ readonly spring: {
2541
+ readonly settle: {
2542
+ readonly stiffness: 300;
2543
+ readonly damping: 26;
2544
+ };
2545
+ readonly base: {
2546
+ readonly stiffness: 340;
2547
+ readonly damping: 22;
2548
+ };
2549
+ readonly pop: {
2550
+ readonly stiffness: 400;
2551
+ readonly damping: 14;
2552
+ };
2553
+ };
2554
+ };
2555
+ readonly scale: 1;
2556
+ readonly radius: {
2557
+ sm: number;
2558
+ md: number;
2559
+ lg: number;
2560
+ pill: number;
2561
+ };
2562
+ readonly stroke: {
2563
+ hair: number;
2564
+ base: number;
2565
+ bold: number;
2566
+ };
2567
+ readonly mode: "dark";
2568
+ readonly color: {
2569
+ readonly bg: "#000000";
2570
+ readonly surface: "#111111";
2571
+ readonly raised: "#1c1c1c";
2572
+ readonly line: "#333333";
2573
+ readonly ink: "#ffffff";
2574
+ readonly muted: "#a3a3a3";
2575
+ readonly accent: "#c6ff00";
2576
+ readonly accent2: "#ff2e88";
2577
+ readonly positive: "#00e676";
2578
+ readonly negative: "#ff1744";
2579
+ readonly highlight: "#c6ff00";
2580
+ readonly shadow: "#000000";
2581
+ };
2582
+ readonly font: {
2583
+ display: string;
2584
+ body: string;
2585
+ mono: string;
2586
+ hand?: string;
2587
+ };
2588
+ readonly weight: {
2589
+ regular: number;
2590
+ medium: number;
2591
+ semibold: number;
2592
+ bold: number;
2593
+ heavy: number;
2594
+ };
2595
+ };
2596
+ };
2597
+ type ThemeName = keyof typeof themes;
2513
2598
  /**
2514
- * The boxes characters [start, end) cover: one rect per line, spanning the
2515
- * glyphs' advances, `lineHeight` tall. Whitespace at a line's ends is
2516
- * excluded.
2599
+ * Merge a partial theme over a base (default `themes.graphite`). Throws when
2600
+ * `ink` on `surface` falls below WCAG 4.5:1 and both are hex colors.
2517
2601
  */
2518
- declare function rangeRects(metrics: Metrics$1, start: number, end: number, options: MeasureOptions): Rect[];
2602
+ declare function defineTheme(input?: ThemeInput | Theme, base?: Theme): Theme;
2603
+ /** A theme's duration token in frames at `fps`. */
2604
+ declare function themeFrames(theme: Theme, speed: keyof Theme["motion"]["speed"], fps?: number): number;
2519
2605
  //#endregion
2520
2606
  //#region src/core/host.d.ts
2521
2607
  /** Photoshop-style layer styles (framefields' `LayerStyle`). Omitted styles are off. */
@@ -3417,97 +3503,6 @@ interface FontNeed {
3417
3503
  }
3418
3504
  declare function defineMeta(meta: ComponentMeta): ComponentMeta;
3419
3505
  //#endregion
3420
- //#region src/core/targets.d.ts
3421
- type Anchor = "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right"
3422
- /** Where a pointer should land: the centre, or mid-left for text. */ | "tip";
3423
- /** A node as targets read it: absolute numeric geometry, or text. */
3424
- interface TargetNode {
3425
- id?: string;
3426
- kind?: string;
3427
- x?: unknown;
3428
- y?: unknown;
3429
- width?: unknown;
3430
- height?: unknown;
3431
- text?: unknown;
3432
- content?: unknown;
3433
- [key: string]: unknown;
3434
- }
3435
- /** The frame context signals are read with. */
3436
- interface FrameContextLike {
3437
- frame: number;
3438
- fps: number;
3439
- time: number;
3440
- duration: number;
3441
- durationMs: number;
3442
- progress: number;
3443
- deltaTime: number;
3444
- }
3445
- /** A per-frame value: a signal (what tracked objects expose) or a function. */
3446
- type FrameValue = {
3447
- get(ctx?: FrameContextLike): number;
3448
- } | ((frame: number) => number);
3449
- interface TrackedObjectLike {
3450
- x: FrameValue;
3451
- y: FrameValue;
3452
- width: FrameValue;
3453
- height: FrameValue;
3454
- }
3455
- type Target = Vec2$1 | Rect | {
3456
- node: TargetNode;
3457
- anchor?: Anchor;
3458
- } | {
3459
- text: TargetNode;
3460
- match?: string | RegExp;
3461
- range?: [number, number];
3462
- nth?: number;
3463
- anchor?: Anchor;
3464
- } | {
3465
- track: TrackedObjectLike;
3466
- anchor?: Anchor;
3467
- } | ((frame: number) => Vec2$1 | Rect);
3468
- interface TargetContext {
3469
- measure?: MeasureFn;
3470
- /** Frame rate signals are sampled at (tracked targets). Default 30. */
3471
- fps?: number;
3472
- /** Font defaults for text nodes that don't set them. */
3473
- textDefaults?: Partial<MeasureOptions>;
3474
- }
3475
- type ResolvedTarget = {
3476
- kind: "static";
3477
- rects: Rect[];
3478
- anchor: Anchor;
3479
- } | {
3480
- kind: "dynamic";
3481
- at: (frame: number) => Rect;
3482
- anchor: Anchor;
3483
- };
3484
- /** Resolve a target to rects (static) or a per-frame rect (dynamic). */
3485
- declare function resolveTarget(target: Target, ctx?: TargetContext): ResolvedTarget;
3486
- /** A text target's string, measured glyphs and range, and where the node sits. */
3487
- interface TextLayout {
3488
- content: string;
3489
- metrics: ReturnType<MeasureFn>;
3490
- options: MeasureOptions;
3491
- range: [number, number];
3492
- /** The node's x / y: add to measured glyph positions. */
3493
- x: number;
3494
- y: number;
3495
- }
3496
- /** Measure a text target the way the renderer lays it out. */
3497
- declare function textLayout(target: Extract<Target, {
3498
- text: TargetNode;
3499
- }>, ctx: TargetContext): TextLayout;
3500
- /** The union rect of `rects`. */
3501
- declare function boundsOf(rects: readonly Rect[]): Rect;
3502
- /** The point of `rect` named by `anchor`. `tip` on text = start of the first line, mid-height. */
3503
- declare function anchorPoint(rect: Rect, anchor?: Anchor, isText?: boolean): Vec2$1;
3504
- /** The point a resolved target names at `frame` (static targets ignore frame). */
3505
- declare function targetPoint(resolved: ResolvedTarget, frame?: number, isText?: boolean): Vec2$1;
3506
- //#endregion
3507
- //#region src/core/schemas.d.ts
3508
- /** Any `Target`: [x, y], a rect, { node }, { text }, { track }, or (frame) => point. */
3509
- declare function targetSchema(): z.ZodType<Target>;
3510
- //#endregion
3511
3506
  //#region src/core/surface.d.ts
3512
3507
  type ElevationLevel = keyof Theme["elevation"];
3513
3508
  /** Layer styles for `level`: a drop shadow and, when the theme asks, a top-edge highlight. */
@@ -3564,6 +3559,13 @@ declare function chain(durations: readonly number[], start?: number, gap?: numbe
3564
3559
  declare function typingFrames(text: string, cps: number, fps: number, r: Rng, start?: number): number[];
3565
3560
  //#endregion
3566
3561
  //#endregion
3562
+ //#region ../components/dist/toolkit.d.mts
3563
+ //#region src/core/schemas.d.ts
3564
+
3565
+ /** Any `Target`: [x, y], a rect, { node }, { text }, { track }, or (frame) => point. */
3566
+ declare function targetSchema(): z.ZodType<Target>;
3567
+ //#endregion
3568
+ //#endregion
3567
3569
  //#region ../ai/dist/index.d.mts
3568
3570
  //#region src/types.d.ts
3569
3571
  /** Model input or output when its shape isn't declared. Pass a type argument to name it. */
@@ -3880,7 +3882,7 @@ declare const DEFAULT_CHART_COLORS: readonly ["#6366f1", "#22d3ee", "#f59e0b", "
3880
3882
  //#region src/clip-vision.d.ts
3881
3883
  type PoseKeypointName = (typeof COCO17_KEYPOINT_NAMES)[number];
3882
3884
  interface ClipVisionOptions {
3883
- /** Prompted SAM 2.1 (Tiny or Small) video segmentation. Pose is opt-in in this mode. */
3885
+ /** Prompted SAM 2.1 (Tiny or Small) video segmentation. Pose is opt-in in this mode, as with sam3. */
3884
3886
  sam2?: Sam2Options;
3885
3887
  /** SAM 3 point/box or text selection with temporal tracking. Mutually exclusive with sam2. */
3886
3888
  sam3?: Sam3Options;
@@ -3896,7 +3898,10 @@ interface ClipVisionOptions {
3896
3898
  durationFrames?: number;
3897
3899
  /** Analysis frame rate (default: the composition's). */
3898
3900
  fps?: number;
3899
- /** Track 17 COCO keypoints (default true). */
3901
+ /**
3902
+ * Track 17 COCO keypoints (default true; opt-in with sam2/sam3, where each frame's pose
3903
+ * is the detected person whose keypoints fall most inside the selection).
3904
+ */
3900
3905
  pose?: boolean;
3901
3906
  /** Track the person's silhouette, dress and held things included (default true). */
3902
3907
  mask?: boolean;
@@ -4021,6 +4026,20 @@ declare class ClipVision implements ClipSubjectSource {
4021
4026
  * subjects kept, null when it holds no subject.
4022
4027
  */
4023
4028
  subject(frame: number, fps: number): InstanceMask | null | undefined;
4029
+ /**
4030
+ * @internal The pose matched to the subject at a source frame of the clip
4031
+ * (`frame` at `fps`), normalized to the source size, for a render-time
4032
+ * skeleton: undefined until that frame and its smoothing window are
4033
+ * analysed, null when no pose matched there.
4034
+ */
4035
+ pose(frame: number, fps: number): ClipPose | null | undefined;
4036
+ /** Whether frames carry keypoints: on by default, opt-in for prompted (SAM) clips. */
4037
+ get tracksPose(): boolean;
4038
+ /**
4039
+ * The analysed source frame a render-time read at `frame` (at `fps`) maps to;
4040
+ * undefined for an unprompted clip read between its analysed frames.
4041
+ */
4042
+ private sourceFrame;
4024
4043
  /** Composition frame → clip frame (fractional). */
4025
4044
  clipFrame(frame: number): number;
4026
4045
  private localFrame;
@@ -6452,13 +6471,15 @@ declare class Composition {
6452
6471
  */
6453
6472
  prepareVision(frame: number): Promise<void>;
6454
6473
  /**
6455
- * Points matte-family `withVision` layers at the `comp.vision` clip they
6456
- * show, so the cutout reuses that clip's per-frame subject instead of
6457
- * segmenting the frame again during render. Only layers whose settings
6458
- * would give the same subject are linked; the rest keep their own pass.
6474
+ * Points matte-family and skeleton `withVision` layers at the `comp.vision`
6475
+ * clip they show, so the cutout reuses that clip's per-frame subject and the
6476
+ * skeleton draws its matched pose, instead of analysing the frame again
6477
+ * during render. Only layers whose settings would give the same subject are
6478
+ * linked; the rest keep their own pass.
6459
6479
  */
6460
- private linkClipMattes;
6461
- private clipForMatte;
6480
+ private linkClipLayers;
6481
+ /** The `comp.vision` clip a matte or skeleton layer of the same source reads instead of analysing. */
6482
+ private clipForLayer;
6462
6483
  /**
6463
6484
  * One-shot, ffmpeg-free vision analysis of a media source.
6464
6485
  *
@@ -6844,5 +6865,5 @@ type ComponentNode<C extends Cues = Cues> = AnimatableNode<BoxNode> & ComponentE
6844
6865
  */
6845
6866
  declare function bindComponent<S$1 extends z.ZodRawShape, C extends Cues, E extends object = object>(definition: ComponentDefinition<S$1, C, E>): (props: z.input<z.ZodObject<S$1>> & BaseProps) => ComponentNode<C> & E;
6846
6867
  //#endregion
6847
- export { InterpolateOptions as $, toPathData as $a, drawOnKeys as $i, FRAMEFIELDS_AI_PROXY_URL as $n, MaterialType as $o, MotionSize as $r, Swarm3DOptions as $t, SubjectSandwichOptions as A, resolveTarget as Aa, anchorPoint as Ai, ChartSeries as An, ColorStopSchema as Ao, ExtrudedTextOptions as Ar, TextSpanSchema as As, Grid3DOptions as At, FieldSample2D as B, springTrack as Ba, bind as Bi, color as Bn, EnvironmentPresetSchema as Bo, GrainOptions as Br, computeLayout as Bs, Primitive3DNodeOptions as Bt, Sam3Options$1 as C, parseColor as Ca, TrackedObjectLike as Ci, PoseKeypointName as Cn, CameraNodeSchema as Co, Cue as Cr, SpringOptions as Cs, Carousel3DOptions as Ct, SectionOptions as D, rendererChars as Da, WordRange as Di, ChartDatum as Dn, CarrierState as Do, EaseFn as Dr, TextNode as Ds, Cylinder3DOptions as Dt, SectionNode as E, rangeRects as Ea, Vec2$1 as Ei, ChartCandle as En, CarrierHandoffConfigSchema as Eo, CutoutOptions as Er, TextAnimatorSchema as Es, CubeFaceInput as Et, section as F, scheduleExpression as Fa, bakeFunction as Fi, MarkOptions as Fn, EnvironmentFloor as Fo, FrameWindow as Fr, applyStaggerToChildren as Fs, Layer3D as Ft, PhysicsSpringOptions as G, supersede as Ga, chain as Gi, rich as Gn, KeyframeTuple as Go, MOTION_PRESETS as Gr, hoistMattes as Gs, Shape3DContainer as Gt, PhysicsGroundOptions as H, staggerOffsets as Ha, boundsOf as Hi, mark as Hn, FlexNodeSchema as Ho, Host as Hr, computeStaggerDelay as Hs, Pyramid3DOptions as Ht, StyleName as I, smoothRelease as Ia, bakeSamples as Ii, TextSpanItem as In, EnvironmentFloorSchema as Io, GlyphAnimator as Ir, calculateSequenceTimeline as Is, Line3DOptions as It, World2DOptions as J, targetSchema as Ja, cover as Ji, sub as Jn, LayoutNodeSchema as Jo, MediaOptions as Jr, Sphere3DOptions as Jt, PhysicsWallsOptions as K, surfaceFill as Ka, constantExpression as Ki, size as Kn, LayerAnimation as Ko, MeasureFn as Kr, lintComposition as Ks, Shard3DOptions as Kt, Styles as L, springAt as La, bandEdges as Li, accent as Ln, EnvironmentFog as Lo, GlyphBox as Lr, collectNodeOps as Ls, Plane3DOptions as Lt, TrackedRegionOptions as M, round as Ma, arrowPaths as Mi, ChartType as Mn, CompositorProgramSchema as Mo, FontRole as Mr, ToneMappingSchema as Ms, InstanceTransform3D as Mt, blurRegion as N, safeArea as Na, ascending as Ni, ChartX as Nn, CompositorToProgramOptions as No, FrameContextLike as Nr, TrackSource as Ns, Instances3DOptions as Nt, SmartFramingOptions as O, resampleBands as Oa, after as Oi, ChartOptions as On, ColorSignalOptions as Oo, Elevation as Or, TextNodeSchema as Os, ExtrudeShape3DOptions as Ot, editTrackedRegion as P, scaleFrames as Pa, audioLevelsSchema as Pi, DEFAULT_CHART_COLORS as Pn, EaseRef as Po, FrameValue as Pr, WiggleOptions as Ps, Lathe3DOptions as Pt, Easing as Q, toFrames as Qa, dist as Qi, ApiError as Qn, LightTypeSchema as Qo, MotionPresetName as Qr, Tube3DOptions as Qt, Physics as R, springKeys as Ra, basePropsSchema as Ri, bold as Rn, EnvironmentFogSchema as Ro, GlyphProps as Rr, compositorToProgram as Rs, Points3DOptions as Rt, Sam2Prompt as S, offsetCues as Sa, Track as Si, PersonTrack as Sn, CameraNode as So, ComponentMeta as Sr, SizeSpec as Ss, Capsule3DOptions as St, Sam3Prompt as T, quantize as Ta, UnitSchedule as Ti, ChartAxisOptions as Tn, CarrierHandoffConfig as To, CuesOf as Tr, TextAnimator as Ts, CubeFaceConfig as Tt, PhysicsRect as U, staggerRanks as Ua, boxPath as Ui, normalizeTextSpans as Un, FromToOptions as Uo, KeyBook as Ur, evaluateAnimationAtFrame as Us, Ring3DOptions as Ut, PhysicsBody2D as V, squigglePath as Va, boilKeys as Vi, italic as Vn, FlexNode as Vo, HandOptions as Vr, computeLayoutSync as Vs, Prism3DOptions as Vt, PhysicsRopeOptions as W, stepExpression as Wa, catmullRom as Wi, parseMarkup as Wn, Keyframe as Wo, LayerStyleConfig as Wr, evaluateTrackAtFrame as Ws, RoundedBox3DOptions as Wt, LightingRig as X, themeFrames as Xa, defineMeta as Xi, Ai as Xn, LightNodeSchema as Xo, MotionOptions as Xr, Text3DOptions as Xt, Lighting as Y, textLayout as Ya, defineComponent as Yi, sup as Yn, LightNode as Yo, Metrics$1 as Yr, Surface3DOptions as Yt, LightingRigOptions as Z, themes as Za, defineTheme as Zi, AiConfig as Zn, LightType as Zo, MotionPreset as Zr, Torus3DOptions as Zt, RenderVideoResult as _, lerp2 as _a, TargetNode as _i, ParticleBounds as _n, BoxNode as _o, BuildResult as _r, SequenceTimelineResult as _s, SequenceEntry as _t, AnimatableNode as a, evaluateEase as aa, Rect as ai, PhysicsSpring3DOptions as an, windowExpression as ao, AnalyzeOptions as ar, MediaNodeSchema as as, computeStrokeRect as at, Sam2Options$1 as b, luminance as ba, ThemeInput as bi, ClipVisionOptions as bn, CameraDoF as bo, ComponentDefinition as br, ShapeNodeSchema as bs, TransitionDirection as bt, CompositionOptions as c, findRange as ca, Rgba as ci, Particles as cn, within as co, AnimatableMethods as cr, Model3DNodeSchema as cs, measureSpring as ct, EnvironmentOptions as d, hashRng as da, SafeInsets as di, PhysicsBakeOptions as dn, AnimatableProp as do, ArrowGeometry as dr, SceneDefinitionSchema as ds, preloadCompositionFonts as dt, ease$1 as ea, ParticleOptions as ei, Body3DOptions as en, toSeconds as eo, QueueStatus as er, MaterialTypeSchema as es, SpringConfig as et, Layer as f, hashString as fa, Spring as fi, PhysicsCollision as fn, AnimatablePropsFor as fo, AudioLevels as fr, SceneOptions as fs, preloadFont as ft, RenderVideoOptions as g, last as ga, TargetContext as gi, ParticleBlend as gn, BloomConfigSchema as go, BuildContext as gr, SequenceOptions as gs, SceneSequenceOptions as gt, NodeCapability as h, isLight as ha, Target as hi, EmitterShape as hn, BloomConfig as ho, BaseProps as hr, Sequence as hs, springCalculation as ht, analyzeAudio as i, enterAnimation as ia, PulseOptions as ii, PhysicsRope3DOptions as in, valueAt as io, ai as ir, MediaNode as is, bezier as it, TrackEditing as j, rng as ja, arcPath as ji, ChartSlice as jn, CompositorProgramConfig as jo, FontNeed as jr, ToneMapping as js, Icosphere3DOptions as jt, SubjectOutlineOptions as k, resolveMotion as ka, analyzeChannels as ki, ChartPadding as kn, ColorStop as ko, ElevationLevel as kr, TextSpanMarkSchema as ks, ExtrudedText3DOptions as kt, EditableObjectTrack as l, frameSpan as la, Rng as li, ParticlesOptions as ln, wobblePoints as lo, ArcPath as lr, Scene as ls, measureText as lt, Media as m, inkOn as ma, SyntaxKind as mi, PhysicsWorldOptions as mn, BlockNode as mo, BakedKey as mr, SceneTransitionTypeSchema as ms, spring as mt, bindComponent as n, elevationStyle as na, ProjectDefaults as ni, PhysicsBody3D as nn, transparent as no, RunOptions as nr, MatteModeSchema as ns, TextMeasureResult as nt, CompatibleEffect as o, evaluateGlyphExpression as oa, ResolvedMotion as oi, PhysicsWorld3D as on, withAlpha as oo, Anchor as or, Model3DAnimatableProp as os, interpolate as ot, Light as p, holdFirstKeys as pa, StaggerOrder as pi, PhysicsDriver as pn, AnimationTrack as po, BakeOptions as pr, SceneTransitionType as ps, requiresIsolation as pt, PhysicsWorld2D as q, targetPoint as qa, contrastRatio as qi, span as qn, LayoutNode as qo, MeasureOptions as qr, mergeAnimationTracks as qs, SolidShape3DNode as qt, z$2 as r, ellipsePath as ra, PropsOf as ri, PhysicsBox3D as rn, typingFrames as ro, ValidationError as rr, MediaAnimatableProp as rs, TextMeasureStyle as rt, Composition as s, exitAnimation as sa, ResolvedTarget as si, World3DOptions as sn, withDefaults as so, Animatable as sr, Model3DNode as ss, mapBlendModeToSkia as st, ComponentNode as t, elevate as ta, Placement as ti, FieldSample3D as tn, transformPathData as to, Result as tr, MatteMode as ts, StrokeRect as tt, Effect as u, glyphAnimator as ua, SAFE_INSETS as ui, BodyCommonOptions as un, wordRanges as uo, ArrowCurve as ur, SceneDefinition as us, measureTextAsync as ut, Sam2FrameResult as v, linePath as va, TextLayout as vi, ParticleShape as vn, BoxNodeSchema as vo, CanvasSize as vr, ShapeAnimatableProp as vs, SequenceNode as vt, Sam3Precision as w, pulseKeys as wa, UNIT_INDEX as wi, ChartAnimationOptions as wn, CameraShake as wo, Cues as wr, TextAnimatableProp as ws, Cube3DOptions as wt, Sam2Point as x, mix as xa, ThemeName as xi, PersonPlacement as xn, CameraLens as xo, ComponentExtras as xr, SignalTrackOptions as xs, TransitionSpec as xt, Sam2Model as y, lineShift as ya, Theme as yi, ClipVision as yn, CameraAnimation as yo, ComponentDefaults as yr, ShapeNode as ys, Transition as yt, Body2DOptions as z, springSettleFrames as za, beats as zi, code as zn, EnvironmentPreset as zo, GlyphUnit as zr, computeCarrierContinuity as zs, Polyhedron3DOptions as zt };
6848
- //# sourceMappingURL=index-CZjrnylh.d.mts.map
6868
+ export { InterpolateOptions as $, toPathData as $a, dist as $i, FRAMEFIELDS_AI_PROXY_URL as $n, MaterialType as $o, MotionPresetName as $r, Swarm3DOptions as $t, SubjectSandwichOptions as A, resolveMotion as Aa, analyzeChannels as Ai, ChartSeries as An, ColorStopSchema as Ao, ElevationLevel as Ar, TextSpanSchema as As, Grid3DOptions as At, FieldSample2D as B, springSettleFrames as Ba, beats as Bi, color as Bn, EnvironmentPresetSchema as Bo, GlyphUnit as Br, computeLayout as Bs, Primitive3DNodeOptions as Bt, Sam3Options$1 as C, offsetCues as Ca, Track as Ci, PoseKeypointName as Cn, CameraNodeSchema as Co, ComponentMeta as Cr, SpringOptions as Cs, Carousel3DOptions as Ct, SectionOptions as D, rangeRects as Da, Vec2$1 as Di, ChartDatum as Dn, CarrierState as Do, CutoutOptions as Dr, TextNode as Ds, Cylinder3DOptions as Dt, SectionNode as E, quantize as Ea, UnitSchedule as Ei, ChartCandle as En, CarrierHandoffConfigSchema as Eo, CuesOf as Er, TextAnimatorSchema as Es, CubeFaceInput as Et, section as F, scaleFrames as Fa, audioLevelsSchema as Fi, MarkOptions as Fn, EnvironmentFloor as Fo, FrameValue as Fr, applyStaggerToChildren as Fs, Layer3D as Ft, PhysicsSpringOptions as G, stepExpression as Ga, catmullRom as Gi, rich as Gn, KeyframeTuple as Go, LayerStyleConfig as Gr, hoistMattes as Gs, Shape3DContainer as Gt, PhysicsGroundOptions as H, squigglePath as Ha, boilKeys as Hi, mark as Hn, FlexNodeSchema as Ho, HandOptions as Hr, computeStaggerDelay as Hs, Pyramid3DOptions as Ht, StyleName as I, scheduleExpression as Ia, bakeFunction as Ii, TextSpanItem as In, EnvironmentFloorSchema as Io, FrameWindow as Ir, calculateSequenceTimeline as Is, Line3DOptions as It, World2DOptions as J, targetPoint as Ja, contrastRatio as Ji, sub as Jn, LayoutNodeSchema as Jo, MeasureOptions as Jr, Sphere3DOptions as Jt, PhysicsWallsOptions as K, supersede as Ka, chain as Ki, size as Kn, LayerAnimation as Ko, MOTION_PRESETS as Kr, lintComposition as Ks, Shard3DOptions as Kt, Styles as L, smoothRelease as La, bakeSamples as Li, accent as Ln, EnvironmentFog as Lo, GlyphAnimator as Lr, collectNodeOps as Ls, Plane3DOptions as Lt, TrackedRegionOptions as M, rng as Ma, arcPath as Mi, ChartType as Mn, CompositorProgramSchema as Mo, FontNeed as Mr, ToneMappingSchema as Ms, InstanceTransform3D as Mt, blurRegion as N, round as Na, arrowPaths as Ni, ChartX as Nn, CompositorToProgramOptions as No, FontRole as Nr, TrackSource as Ns, Instances3DOptions as Nt, SmartFramingOptions as O, rendererChars as Oa, WordRange as Oi, ChartOptions as On, ColorSignalOptions as Oo, EaseFn as Or, TextNodeSchema as Os, ExtrudeShape3DOptions as Ot, editTrackedRegion as P, safeArea as Pa, ascending as Pi, DEFAULT_CHART_COLORS as Pn, EaseRef as Po, FrameContextLike as Pr, WiggleOptions as Ps, Lathe3DOptions as Pt, Easing as Q, toFrames as Qa, defineTheme as Qi, ApiError as Qn, LightTypeSchema as Qo, MotionPreset as Qr, Tube3DOptions as Qt, Physics as R, springAt as Ra, bandEdges as Ri, bold as Rn, EnvironmentFogSchema as Ro, GlyphBox as Rr, compositorToProgram as Rs, Points3DOptions as Rt, Sam2Prompt as S, mix as Sa, ThemeName as Si, PersonTrack as Sn, CameraNode as So, ComponentExtras as Sr, SizeSpec as Ss, Capsule3DOptions as St, Sam3Prompt as T, pulseKeys as Ta, UNIT_INDEX as Ti, ChartAxisOptions as Tn, CarrierHandoffConfig as To, Cues as Tr, TextAnimator as Ts, CubeFaceConfig as Tt, PhysicsRect as U, staggerOffsets as Ua, boundsOf as Ui, normalizeTextSpans as Un, FromToOptions as Uo, Host as Ur, evaluateAnimationAtFrame as Us, Ring3DOptions as Ut, PhysicsBody2D as V, springTrack as Va, bind as Vi, italic as Vn, FlexNode as Vo, GrainOptions as Vr, computeLayoutSync as Vs, Prism3DOptions as Vt, PhysicsRopeOptions as W, staggerRanks as Wa, boxPath as Wi, parseMarkup as Wn, Keyframe as Wo, KeyBook as Wr, evaluateTrackAtFrame as Ws, RoundedBox3DOptions as Wt, LightingRig as X, themeFrames as Xa, defineComponent as Xi, Ai as Xn, LightNodeSchema as Xo, Metrics$1 as Xr, Text3DOptions as Xt, Lighting as Y, textLayout as Ya, cover as Yi, sup as Yn, LightNode as Yo, MediaOptions as Yr, Surface3DOptions as Yt, LightingRigOptions as Z, themes as Za, defineMeta as Zi, AiConfig as Zn, LightType as Zo, MotionOptions as Zr, Torus3DOptions as Zt, RenderVideoResult as _, last as _a, TargetContext as _i, ParticleBounds as _n, BoxNode as _o, BuildContext as _r, SequenceTimelineResult as _s, SequenceEntry as _t, AnimatableNode as a, enterAnimation as aa, PulseOptions as ai, PhysicsSpring3DOptions as an, windowExpression as ao, targetSchema as ar, MediaNodeSchema as as, computeStrokeRect as at, Sam2Options$1 as b, lineShift as ba, Theme as bi, ClipVisionOptions as bn, CameraDoF as bo, ComponentDefaults as br, ShapeNodeSchema as bs, TransitionDirection as bt, CompositionOptions as c, exitAnimation as ca, ResolvedTarget as ci, Particles as cn, within as co, Animatable as cr, Model3DNodeSchema as cs, measureSpring as ct, EnvironmentOptions as d, glyphAnimator as da, SAFE_INSETS as di, PhysicsBakeOptions as dn, AnimatableProp as do, ArrowCurve as dr, SceneDefinitionSchema as ds, preloadCompositionFonts as dt, drawOnKeys as ea, MotionSize as ei, Body3DOptions as en, toSeconds as eo, QueueStatus as er, MaterialTypeSchema as es, SpringConfig as et, Layer as f, hashRng as fa, SafeInsets as fi, PhysicsCollision as fn, AnimatablePropsFor as fo, ArrowGeometry as fr, SceneOptions as fs, preloadFont as ft, RenderVideoOptions as g, isLight as ga, Target as gi, ParticleBlend as gn, BloomConfigSchema as go, BaseProps as gr, SequenceOptions as gs, SceneSequenceOptions as gt, NodeCapability as h, inkOn as ha, SyntaxKind as hi, EmitterShape as hn, BloomConfig as ho, BakedKey as hr, Sequence as hs, springCalculation as ht, analyzeAudio as i, ellipsePath as ia, PropsOf as ii, PhysicsRope3DOptions as in, valueAt as io, ai as ir, MediaNode as is, bezier as it, TrackEditing as j, resolveTarget as ja, anchorPoint as ji, ChartSlice as jn, CompositorProgramConfig as jo, ExtrudedTextOptions as jr, ToneMapping as js, Icosphere3DOptions as jt, SubjectOutlineOptions as k, resampleBands as ka, after as ki, ChartPadding as kn, ColorStop as ko, Elevation as kr, TextSpanMarkSchema as ks, ExtrudedText3DOptions as kt, EditableObjectTrack as l, findRange as la, Rgba as li, ParticlesOptions as ln, wobblePoints as lo, AnimatableMethods as lr, Scene as ls, measureText as lt, Media as m, holdFirstKeys as ma, StaggerOrder as mi, PhysicsWorldOptions as mn, BlockNode as mo, BakeOptions as mr, SceneTransitionTypeSchema as ms, spring as mt, bindComponent as n, elevate as na, Placement as ni, PhysicsBody3D as nn, transparent as no, RunOptions as nr, MatteModeSchema as ns, TextMeasureResult as nt, CompatibleEffect as o, evaluateEase as oa, Rect as oi, PhysicsWorld3D as on, withAlpha as oo, AnalyzeOptions as or, Model3DAnimatableProp as os, interpolate as ot, Light as p, hashString as pa, Spring as pi, PhysicsDriver as pn, AnimationTrack as po, AudioLevels as pr, SceneTransitionType as ps, requiresIsolation as pt, PhysicsWorld2D as q, surfaceFill as qa, constantExpression as qi, span as qn, LayoutNode as qo, MeasureFn as qr, mergeAnimationTracks as qs, SolidShape3DNode as qt, z$2 as r, elevationStyle as ra, ProjectDefaults as ri, PhysicsBox3D as rn, typingFrames as ro, ValidationError as rr, MediaAnimatableProp as rs, TextMeasureStyle as rt, Composition as s, evaluateGlyphExpression as sa, ResolvedMotion as si, World3DOptions as sn, withDefaults as so, Anchor as sr, Model3DNode as ss, mapBlendModeToSkia as st, ComponentNode as t, ease$1 as ta, ParticleOptions as ti, FieldSample3D as tn, transformPathData as to, Result as tr, MatteMode as ts, StrokeRect as tt, Effect as u, frameSpan as ua, Rng as ui, BodyCommonOptions as un, wordRanges as uo, ArcPath as ur, SceneDefinition as us, measureTextAsync as ut, Sam2FrameResult as v, lerp2 as va, TargetNode as vi, ParticleShape as vn, BoxNodeSchema as vo, BuildResult as vr, ShapeAnimatableProp as vs, SequenceNode as vt, Sam3Precision as w, parseColor as wa, TrackedObjectLike as wi, ChartAnimationOptions as wn, CameraShake as wo, Cue as wr, TextAnimatableProp as ws, Cube3DOptions as wt, Sam2Point as x, luminance as xa, ThemeInput as xi, PersonPlacement as xn, CameraLens as xo, ComponentDefinition as xr, SignalTrackOptions as xs, TransitionSpec as xt, Sam2Model as y, linePath as ya, TextLayout as yi, ClipVision as yn, CameraAnimation as yo, CanvasSize as yr, ShapeNode as ys, Transition as yt, Body2DOptions as z, springKeys as za, basePropsSchema as zi, code as zn, EnvironmentPreset as zo, GlyphProps as zr, computeCarrierContinuity as zs, Polyhedron3DOptions as zt };
6869
+ //# sourceMappingURL=index-Bnh42ouE.d.mts.map