gitframes 1.2.35 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio/index.mjs +4 -4
- package/dist/{audio-C4kiPbrV.mjs → audio-DvL7gQQ8.mjs} +3 -3
- package/dist/{audio-C4kiPbrV.mjs.map → audio-DvL7gQQ8.mjs.map} +1 -1
- package/dist/{audio-CiXUMGyk.mjs → audio-sZdRh_qg.mjs} +3 -3
- package/dist/{audio-CiXUMGyk.mjs.map → audio-sZdRh_qg.mjs.map} +1 -1
- package/dist/{dist-C37594c6.mjs → dist-8vbhZYqX.mjs} +471 -152
- package/dist/dist-8vbhZYqX.mjs.map +1 -0
- package/dist/{dist-CMF9eNLB.mjs → dist-B0vCkDzJ.mjs} +37 -3
- package/dist/dist-B0vCkDzJ.mjs.map +1 -0
- package/dist/effects/index.d.mts +2 -2
- package/dist/effects/index.mjs +3 -3
- package/dist/{effects-4t4qk-BR.mjs → effects-C3nV-k4T.mjs} +949 -1559
- package/dist/effects-C3nV-k4T.mjs.map +1 -0
- package/dist/fonts/index.mjs +1 -1
- package/dist/{fonts-Dn18r_ST.mjs → fonts-dn-pl4Pe.mjs} +3 -3
- package/dist/{fonts-Dn18r_ST.mjs.map → fonts-dn-pl4Pe.mjs.map} +1 -1
- package/dist/{index-YZsTjqut.d.mts → index-D-O2kwLx.d.mts} +3 -3
- package/dist/{index-YZsTjqut.d.mts.map → index-D-O2kwLx.d.mts.map} +1 -1
- package/dist/{index-B1557AUi.d.mts → index-t9GyO4Ei.d.mts} +35 -50
- package/dist/index-t9GyO4Ei.d.mts.map +1 -0
- package/dist/index.d.mts +89 -79
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +142 -126
- package/dist/index.mjs.map +1 -1
- package/dist/react/index.mjs +2 -2
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +3 -3
- package/dist/{renderer-DVi31fSv.mjs → renderer-CMDIVxhv.mjs} +317 -14
- package/dist/renderer-CMDIVxhv.mjs.map +1 -0
- package/dist/{renderers-CLJQRPVU-CMZnHNK0.mjs → renderers-CLJQRPVU-DuQ7-PaC.mjs} +3 -3
- package/dist/{renderers-CLJQRPVU-CMZnHNK0.mjs.map → renderers-CLJQRPVU-DuQ7-PaC.mjs.map} +1 -1
- package/dist/signals/index.mjs +5 -5
- package/dist/{signals-BB_kdndF.mjs → signals-CLaCq092.mjs} +2 -2
- package/dist/{signals-BB_kdndF.mjs.map → signals-CLaCq092.mjs.map} +1 -1
- package/package.json +55 -55
- package/dist/dist-C37594c6.mjs.map +0 -1
- package/dist/dist-CMF9eNLB.mjs.map +0 -1
- package/dist/effects-4t4qk-BR.mjs.map +0 -1
- package/dist/index-B1557AUi.d.mts.map +0 -1
- package/dist/renderer-DVi31fSv.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,19 +1,33 @@
|
|
|
1
1
|
import "./chunk-GMkBE123.mjs";
|
|
2
|
-
import { $ as DataTypes, $t as frameArraySignal, At as TextOperationSchema, B as BaseMediaOperationPropsSchema, Bt as VideoTimingPropsSchema, C as preloadFont, Ct as SignalDataSchema, D as useCurrentFrame, Dt as SingleOutputGenericSchema, E as springCalculation, Et as SignalStatsSchema, Ft as VideoAnimationSchema, G as ConfigHandleSchema, Gt as computed, H as CAPTION_LAYER_DEFAULTS, Ht as appendOperation, It as VideoLayerTypeSchema, J as DEFAULT_DURATION_MS, Jt as createVirtualMedia, K as ConfigSchemaRegistry, Kt as cosineSignal, L as AnimationTypeSchema, Lt as VideoSpatialPropsSchema, Mt as TimelineTransformSchema, Nt as TransitionSchema, O as useVideoConfig, Ot as SourceOperationSchema, Pt as TransitionTypeSchema, Q as DataTypeVal, Qt as findSourceAsset, R as AnyOutputUnionSchema, Rt as VideoStylePropsSchema, S as parseColorToRgb, Sn as
|
|
3
|
-
import { $ as
|
|
4
|
-
import "./renderers-CLJQRPVU-
|
|
5
|
-
import "./signals-
|
|
6
|
-
import { t as AudioSignal } from "./audio-
|
|
7
|
-
import { t as FontManager } from "./fonts-
|
|
8
|
-
import { i as softLimit, n as mixSfxInto, r as renderSfx, t as encodeStereoWav } from "./audio-
|
|
9
|
-
import {
|
|
10
|
-
import { a as HeadlessWebGPURenderer, i as HeadlessMediaRenderer, n as renderFrameGrid, o as
|
|
2
|
+
import { $ as DataTypes, $t as frameArraySignal, At as TextOperationSchema, B as BaseMediaOperationPropsSchema, Bt as VideoTimingPropsSchema, C as preloadFont, Cn as timeSignal, Ct as SignalDataSchema, D as useCurrentFrame, Dt as SingleOutputGenericSchema, E as springCalculation, Et as SignalStatsSchema, Ft as VideoAnimationSchema, G as ConfigHandleSchema, Gt as computed, H as CAPTION_LAYER_DEFAULTS, Ht as appendOperation, It as VideoLayerTypeSchema, J as DEFAULT_DURATION_MS, Jt as createVirtualMedia, K as ConfigSchemaRegistry, Kt as cosineSignal, L as AnimationTypeSchema, Lt as VideoSpatialPropsSchema, Mt as TimelineTransformSchema, Nt as TransitionSchema, O as useVideoConfig, Ot as SourceOperationSchema, Pt as TransitionTypeSchema, Q as DataTypeVal, Qt as findSourceAsset, R as AnyOutputUnionSchema, Rt as VideoStylePropsSchema, S as parseColorToRgb, Sn as takeRenderDiagnostics, St as SignalChannelMetaSchema, T as spring, Tt as SignalMathDataSchema, U as COMPOSITE_OPERATIONS, Ut as checkNodeResultCache, V as BaseVideoLayerPropsSchema, Vt as VirtualMediaDataSchema, W as COMPOSITOR_DEFAULTS, Wt as computeVideoCropRenderProps, X as DEFAULT_MEDIA_DIMENSION, Xt as deserializeSignalData, Y as DEFAULT_FPS, Yt as dataTypeColors, Z as DataType, Zt as extractSvgDimensions, _ as interpolate, _n as serializeSignalData, _t as NodeResultSchema, a as mixAudioTracks, an as getLeafMediaType, at as GeneratorSignalDataSchema, b as measureText, bn as sineSignal, bt as ProgrammaticSignal, c as LIGHT_UNIFORM_SIZE_BYTES, cn as hasOnlySingleSource, ct as JsonValueSchema, d as PlaybackContext, dn as isVirtualMediaData, dt as MediaOperationSchema, en as frameSignal, et as Effect$1, f as PlaybackProvider, fn as programmaticSignal, ft as MediaSourceSchema, g as hasDelayRender, gn as resolveMediaMimeType, gt as NodeMetadataSchema, h as computeStrokeRect, hn as reportRenderDiagnostic, ht as MultiOutputGenericSchema, in as getFingerprint, it as FileDataSchema, jt as TimelineSegmentSchema, k as ColorSchema, kt as TEXT_LAYER_DEFAULTS, l as MAX_LIGHTS, ln as isEqual, lt as MIME_TYPES, m as bezier, mn as registerSignalDependency, mt as ModerationUnrefundableError, nn as getActiveMediaMetadata, nt as ExtendedLayerSchema, on as getMediaType, ot as GlobalCompositeOperation, p as Vector3Math, pn as progressSignal, pt as ModerationError, q as DATA_TYPE_EXTENSIONS, qt as createOutputItemSchema, rn as getFileDataMetadata, rt as FileAssetSchema, s as Easing, sn as getRenderFingerprint, st as HandleTypeVal, tn as generateId, tt as ExportResultSchema, u as Matrix4Math, un as isSignal, ut as MediaMetadataSchema, v as mapBlendModeToSkia, vn as signal, vt as NodeVisualConfigSchema, w as requiresIsolation, wn as updateClockSignals, wt as SignalGateDataSchema, x as measureTextAsync, xn as stampResult, xt as Signal, y as measureSpring, yn as signalBuilder, yt as OutputItemSchema, z as AudioExtractorSignalDataSchema, zt as VideoTextPropsSchema } from "./dist-B0vCkDzJ.mjs";
|
|
3
|
+
import { $ as parseMTL, B as ensureDevice, D as chartBridgeCache, G as inputStore, J as loadOBJ, K as loadFBX, M as drawChartNode, Q as parseFBX, S as SlugFontCache, V as generateExtrudedTextGeometry, X as mediaDecoderCache, Y as lutStore, _ as Renderer2D, a as Camera3D, b as ShadowPipeline, c as GlassPipeline, d as HeadlessGPUCanvasContextMock, et as parseOBJ, f as Light3D, h as Path3D, it as textureCache, l as HeadlessChartCanvasElementMock, n as AudioLatentTrackCache, nt as shaderStore, o as ChartGPUEngineBridge, p as MotionBlurPipeline, q as loadModel3D, r as AudioMeshDeformPipeline, rt as signalRegistry, s as EffectPipeline, t as AudioLatentEngine, u as HeadlessChartContainerMock, v as Renderer3D, w as SlugPipeline, y as SSAOPipeline } from "./dist-8vbhZYqX.mjs";
|
|
4
|
+
import "./renderers-CLJQRPVU-DuQ7-PaC.mjs";
|
|
5
|
+
import "./signals-CLaCq092.mjs";
|
|
6
|
+
import { t as AudioSignal } from "./audio-sZdRh_qg.mjs";
|
|
7
|
+
import { t as FontManager } from "./fonts-dn-pl4Pe.mjs";
|
|
8
|
+
import { i as softLimit, n as mixSfxInto, r as renderSfx, t as encodeStereoWav } from "./audio-DvL7gQQ8.mjs";
|
|
9
|
+
import { Ct as OpticalFlowComputePipeline, D as Vignette, E as ColorKey, S as Vision, St as DepthNormalsComputePipeline, T as ColorBalance, Tt as TensorPipeline, _ as SelectiveColor, _t as pinNodeToLandmark, a as CustomEffect, b as TileOffset, bt as CannyComputePipeline, c as GradientMap, ct as COCO17_KEYPOINT_NAMES, d as Levels, dt as SpatialLandmarkTransformer, f as Modulate, ft as TemporalObjectTracker, g as SSAO, gt as analyzeSequence, h as Relight3D, ht as VisionRunner, i as Curves, l as HalftoneScreen, lt as PoseSkeletonRenderer, m as PBRGlass, mt as VisionNode, n as AudioSignalExtractor, o as DepthOfField, ot as COCO17_BONES, p as MotionBlur, pt as VisionBundle, r as Crop, s as FilmGrain, st as COCO17_KEYPOINTS, t as ApplyLUT, u as HighPass, ut as SegmentationTexturePool, v as ShadowsHighlights, vt as pinNodeToObject, w as Blur, wt as TemporalDeflickerPipeline, x as UnsharpMask, xt as ControlNetMultiplexer, y as TemporalDeflicker, yt as COCO_CLASSES } from "./effects-C3nV-k4T.mjs";
|
|
10
|
+
import { a as HeadlessWebGPURenderer, i as HeadlessMediaRenderer, n as renderFrameGrid, o as formatQaReport, r as resolveSamplePoints, s as renderSemaphore, t as computeGridLayout } from "./renderer-CMDIVxhv.mjs";
|
|
11
11
|
import "./dist-cjs-Bsz2eGzl.mjs";
|
|
12
12
|
import { z } from "zod";
|
|
13
13
|
import path from "node:path";
|
|
14
14
|
import fs from "node:fs/promises";
|
|
15
15
|
import { loadYoga } from "yoga-layout/load";
|
|
16
16
|
|
|
17
|
+
//#region src/ids.ts
|
|
18
|
+
/**
|
|
19
|
+
* Default ids for nodes created without one. A counter per prefix rather than
|
|
20
|
+
* a random suffix: the same composition script builds the same ids on every
|
|
21
|
+
* run and in every render worker, so specs, caches and diffs stay stable.
|
|
22
|
+
*/
|
|
23
|
+
const counters = /* @__PURE__ */ new Map();
|
|
24
|
+
function autoId(prefix) {
|
|
25
|
+
const n = (counters.get(prefix) ?? 0) + 1;
|
|
26
|
+
counters.set(prefix, n);
|
|
27
|
+
return `${prefix}-auto-${n}`;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
17
31
|
//#region src/rich-text.ts
|
|
18
32
|
/**
|
|
19
33
|
* Tagged template literal for authoring rich, multi-style text runs.
|
|
@@ -334,7 +348,8 @@ function containerStyle(node) {
|
|
|
334
348
|
wrap
|
|
335
349
|
};
|
|
336
350
|
}
|
|
337
|
-
function isAbsolutePositioned(
|
|
351
|
+
function isAbsolutePositioned(layoutNode) {
|
|
352
|
+
const node = layoutNode;
|
|
338
353
|
return node.position === "absolute" || node.position === void 0 && (node.x !== void 0 || node.y !== void 0);
|
|
339
354
|
}
|
|
340
355
|
/** Flow children (non-absolute). */
|
|
@@ -346,7 +361,8 @@ function absoluteChildren(node) {
|
|
|
346
361
|
if ("children" in node && node.children) return node.children.filter((c) => isAbsolutePositioned(c));
|
|
347
362
|
return [];
|
|
348
363
|
}
|
|
349
|
-
function buildYogaNode(yoga,
|
|
364
|
+
function buildYogaNode(yoga, layoutNode, parentExtent, measure, parentDir) {
|
|
365
|
+
const node = layoutNode;
|
|
350
366
|
const yn = yoga.Node.create();
|
|
351
367
|
const dir = dirOf(node);
|
|
352
368
|
const isContainer = dir !== null;
|
|
@@ -661,6 +677,10 @@ var LayerAnimation = class LayerAnimation$1 {
|
|
|
661
677
|
static fromTo(prop, fromValue, toValue, options = {}) {
|
|
662
678
|
return new LayerAnimation$1().fromTo(prop, fromValue, toValue, options);
|
|
663
679
|
}
|
|
680
|
+
/** A track from a list of `[frame, value, ease?]` keyframes; see {@link LayerAnimation.keys}. */
|
|
681
|
+
static keys(prop, keyframes) {
|
|
682
|
+
return new LayerAnimation$1().keys(prop, keyframes);
|
|
683
|
+
}
|
|
664
684
|
static signal(prop, signalOrHandleId, options = {}) {
|
|
665
685
|
return new LayerAnimation$1().signal(prop, signalOrHandleId, options);
|
|
666
686
|
}
|
|
@@ -764,6 +784,15 @@ var LayerAnimation = class LayerAnimation$1 {
|
|
|
764
784
|
return this;
|
|
765
785
|
}
|
|
766
786
|
/**
|
|
787
|
+
* Adds several keyframes to prop's track at once:
|
|
788
|
+
* `.keys("scale", [[0, 0], [12, 1.1, "back.out"], [20, 1]])`.
|
|
789
|
+
* Frames are rounded to whole frames, so beat math can be passed straight in.
|
|
790
|
+
*/
|
|
791
|
+
keys(prop, keyframes) {
|
|
792
|
+
for (const [frame, value, ease] of keyframes) this.keyframe(prop, Math.round(frame), value, ease);
|
|
793
|
+
return this;
|
|
794
|
+
}
|
|
795
|
+
/**
|
|
767
796
|
* Animates opacity from 0 to 1 between startFrame and endFrame.
|
|
768
797
|
*/
|
|
769
798
|
fadeIn(startFrame = 0, endFrame = 20, ease = "power2.out") {
|
|
@@ -2173,6 +2202,7 @@ const ExtendedGlyphPropertiesSchema = z.object({
|
|
|
2173
2202
|
rotationX: z.number().optional(),
|
|
2174
2203
|
rotationY: z.number().optional(),
|
|
2175
2204
|
rotationZ: z.number().optional(),
|
|
2205
|
+
formation: VolumetricFormationConfigSchema.optional(),
|
|
2176
2206
|
skew: z.number().optional(),
|
|
2177
2207
|
skewAxis: z.number().optional(),
|
|
2178
2208
|
tracking: z.number().optional(),
|
|
@@ -4449,7 +4479,7 @@ const BaseNodeFields = {
|
|
|
4449
4479
|
fresnelPower: z.number().min(1).max(10).optional(),
|
|
4450
4480
|
envIntensity: z.number().min(0).max(10).optional(),
|
|
4451
4481
|
animation: LayerAnimationSchema.default({ tracks: [] }),
|
|
4452
|
-
|
|
4482
|
+
vision: z.unknown().optional(),
|
|
4453
4483
|
relighting: z.unknown().optional()
|
|
4454
4484
|
};
|
|
4455
4485
|
const TextShadowSchema = z.object({
|
|
@@ -5087,11 +5117,12 @@ const CompositorProgramSchema = z.object({
|
|
|
5087
5117
|
volume: z.number().min(0).max(1).default(1),
|
|
5088
5118
|
fps: z.number().int().min(1).max(120).default(24),
|
|
5089
5119
|
mode: z.enum(["Video", "Image"]).default("Video"),
|
|
5120
|
+
antialias3d: z.boolean().optional(),
|
|
5090
5121
|
layout: z.array(LayoutNodeSchema).default([]),
|
|
5091
5122
|
fonts: z.array(z.string()).optional(),
|
|
5092
5123
|
signals: z.record(z.string(), z.unknown()).optional(),
|
|
5093
5124
|
effects: z.array(z.unknown()).optional(),
|
|
5094
|
-
|
|
5125
|
+
vision: z.unknown().optional(),
|
|
5095
5126
|
onRequestFrame: z.custom().optional()
|
|
5096
5127
|
}).strict();
|
|
5097
5128
|
/**
|
|
@@ -5152,7 +5183,8 @@ const SceneDefinitionSchema = z.object({
|
|
|
5152
5183
|
]).default("left")
|
|
5153
5184
|
}).default({
|
|
5154
5185
|
type: "cut",
|
|
5155
|
-
durationFrames: 0
|
|
5186
|
+
durationFrames: 0,
|
|
5187
|
+
whipDirection: "left"
|
|
5156
5188
|
})
|
|
5157
5189
|
}).passthrough();
|
|
5158
5190
|
function computeCarrierContinuity(stateAtCut, targetInitialState) {
|
|
@@ -5349,16 +5381,16 @@ function nodeToVirtualMedia(node, resolveMedia, fps, inheritedOffset = 0, compDu
|
|
|
5349
5381
|
children: [media]
|
|
5350
5382
|
};
|
|
5351
5383
|
}
|
|
5352
|
-
if (media && node.
|
|
5353
|
-
const
|
|
5354
|
-
const
|
|
5384
|
+
if (media && node.vision) {
|
|
5385
|
+
const visionRaw = node.vision;
|
|
5386
|
+
const visionOp = typeof visionRaw.toOperation === "function" ? visionRaw.toOperation() : visionRaw;
|
|
5355
5387
|
media = {
|
|
5356
5388
|
metadata: { ...media.metadata },
|
|
5357
5389
|
operation: {
|
|
5358
|
-
op: "
|
|
5390
|
+
op: "Vision",
|
|
5359
5391
|
id: node.id,
|
|
5360
|
-
effect:
|
|
5361
|
-
...
|
|
5392
|
+
effect: visionRaw,
|
|
5393
|
+
...visionOp,
|
|
5362
5394
|
dataType: media.operation.dataType
|
|
5363
5395
|
},
|
|
5364
5396
|
children: [media]
|
|
@@ -5389,7 +5421,7 @@ function nodeToVirtualMedia(node, resolveMedia, fps, inheritedOffset = 0, compDu
|
|
|
5389
5421
|
let dur = typeof node.durationFrames === "number" && Number.isFinite(node.durationFrames) && node.durationFrames > 0 ? Math.round(node.durationFrames) : void 0;
|
|
5390
5422
|
const defaultCompDuration = inheritedDurationFrames ?? Math.round((compDurationMs ?? 1e4) / 1e3 * fps);
|
|
5391
5423
|
if (isContainer && children.length > 0) {
|
|
5392
|
-
if (
|
|
5424
|
+
if (dur === void 0) {
|
|
5393
5425
|
const childEnds = children.map((c) => (c.operation?.startFrame ?? 0) + (c.operation?.durationFrames ?? defaultCompDuration));
|
|
5394
5426
|
dur = Math.max(1, Math.max(...childEnds) - startFrame);
|
|
5395
5427
|
}
|
|
@@ -5432,6 +5464,7 @@ function compositorToProgram(config, options) {
|
|
|
5432
5464
|
fps,
|
|
5433
5465
|
mode: config.mode ?? "Video",
|
|
5434
5466
|
backgroundColor: config.backgroundColor,
|
|
5467
|
+
...config.antialias3d !== void 0 && { antialias3d: config.antialias3d },
|
|
5435
5468
|
volume: config.volume ?? 1,
|
|
5436
5469
|
dataType: isVideoMode ? "Video" : "Image",
|
|
5437
5470
|
layout: config.layout,
|
|
@@ -5452,14 +5485,14 @@ function compositorToProgram(config, options) {
|
|
|
5452
5485
|
children: [rootMedia]
|
|
5453
5486
|
};
|
|
5454
5487
|
}
|
|
5455
|
-
const
|
|
5456
|
-
if (
|
|
5457
|
-
const
|
|
5488
|
+
const visionRaw = config.vision ?? options.vision;
|
|
5489
|
+
if (visionRaw) {
|
|
5490
|
+
const visionOp = typeof visionRaw.toOperation === "function" ? visionRaw.toOperation() : visionRaw;
|
|
5458
5491
|
rootMedia = {
|
|
5459
5492
|
metadata: { ...rootMedia.metadata },
|
|
5460
5493
|
operation: {
|
|
5461
|
-
op: "
|
|
5462
|
-
...
|
|
5494
|
+
op: "Vision",
|
|
5495
|
+
...visionOp,
|
|
5463
5496
|
dataType: rootMedia.operation.dataType
|
|
5464
5497
|
},
|
|
5465
5498
|
children: [rootMedia]
|
|
@@ -5480,6 +5513,12 @@ function collectNodeOps(nodes) {
|
|
|
5480
5513
|
|
|
5481
5514
|
//#endregion
|
|
5482
5515
|
//#region src/shapes3d.ts
|
|
5516
|
+
/** Largest initial scale of an extruded text node along its outline's axes. */
|
|
5517
|
+
function extrudedTextScale(options) {
|
|
5518
|
+
const scale = options.scale ?? 1;
|
|
5519
|
+
const s = Math.max(Math.abs(scale * (options.scaleX ?? 1)), Math.abs(scale * (options.scaleY ?? 1)));
|
|
5520
|
+
return s > 0 ? s : 1;
|
|
5521
|
+
}
|
|
5483
5522
|
const Layer3D = {
|
|
5484
5523
|
cube(options) {
|
|
5485
5524
|
const size$1 = options.size;
|
|
@@ -5589,7 +5628,7 @@ const Layer3D = {
|
|
|
5589
5628
|
})
|
|
5590
5629
|
];
|
|
5591
5630
|
const container = Layer.box({
|
|
5592
|
-
id: options.id ?? "cube
|
|
5631
|
+
id: options.id ?? autoId("cube"),
|
|
5593
5632
|
position: "absolute",
|
|
5594
5633
|
x: options.x ?? 0,
|
|
5595
5634
|
y: options.y ?? 0,
|
|
@@ -5633,7 +5672,7 @@ const Layer3D = {
|
|
|
5633
5672
|
return node;
|
|
5634
5673
|
});
|
|
5635
5674
|
const container = Layer.box({
|
|
5636
|
-
id: options.id ?? "carousel
|
|
5675
|
+
id: options.id ?? autoId("carousel"),
|
|
5637
5676
|
position: "absolute",
|
|
5638
5677
|
x: options.x ?? 0,
|
|
5639
5678
|
y: options.y ?? 0,
|
|
@@ -5684,7 +5723,7 @@ const Layer3D = {
|
|
|
5684
5723
|
}));
|
|
5685
5724
|
}
|
|
5686
5725
|
const container = Layer.box({
|
|
5687
|
-
id: options.id ?? "prism
|
|
5726
|
+
id: options.id ?? autoId("prism"),
|
|
5688
5727
|
position: "absolute",
|
|
5689
5728
|
x: options.x ?? 0,
|
|
5690
5729
|
y: options.y ?? 0,
|
|
@@ -5709,7 +5748,7 @@ const Layer3D = {
|
|
|
5709
5748
|
},
|
|
5710
5749
|
plane(options) {
|
|
5711
5750
|
return Layer.box({
|
|
5712
|
-
id: options.id ?? "plane
|
|
5751
|
+
id: options.id ?? autoId("plane"),
|
|
5713
5752
|
position: "absolute",
|
|
5714
5753
|
width: options.width,
|
|
5715
5754
|
height: options.height,
|
|
@@ -5729,7 +5768,7 @@ const Layer3D = {
|
|
|
5729
5768
|
},
|
|
5730
5769
|
grid(options) {
|
|
5731
5770
|
const { width, height } = options;
|
|
5732
|
-
const id = options.id ?? "grid
|
|
5771
|
+
const id = options.id ?? autoId("grid");
|
|
5733
5772
|
const divisions = Math.max(1, Math.round(options.divisions ?? 10));
|
|
5734
5773
|
const lineWidth = options.lineWidth ?? 2;
|
|
5735
5774
|
const color$1 = options.color ?? "rgba(59, 130, 246, 0.5)";
|
|
@@ -5784,11 +5823,10 @@ const Layer3D = {
|
|
|
5784
5823
|
text(options) {
|
|
5785
5824
|
if (options.extrusionDepth && options.extrusionDepth > 0) return Layer3D.extrudedText({
|
|
5786
5825
|
...options,
|
|
5787
|
-
depth: options.extrusionDepth
|
|
5788
|
-
slices: options.extrusionSteps
|
|
5826
|
+
depth: options.extrusionDepth
|
|
5789
5827
|
});
|
|
5790
5828
|
return Layer.text(options.text, {
|
|
5791
|
-
id: options.id ?? "text3d
|
|
5829
|
+
id: options.id ?? autoId("text3d"),
|
|
5792
5830
|
position: "absolute",
|
|
5793
5831
|
x: options.x ?? 0,
|
|
5794
5832
|
y: options.y ?? 0,
|
|
@@ -5824,6 +5862,7 @@ const Layer3D = {
|
|
|
5824
5862
|
extrudedText(options) {
|
|
5825
5863
|
const { depth, text, fill = "#ffffff", bevelColor } = options;
|
|
5826
5864
|
let modelData;
|
|
5865
|
+
const curveTolerance = (options.curveTolerance ?? .1) / extrudedTextScale(options);
|
|
5827
5866
|
const parsedFont = (options.fontFamily ? SlugFontCache.getParsed(options.fontFamily) : null) ?? SlugFontCache.getParsed("Inter") ?? SlugFontCache.getParsed("Unbounded") ?? SlugFontCache.getFirstParsed();
|
|
5828
5867
|
if (parsedFont) modelData = generateExtrudedTextGeometry({
|
|
5829
5868
|
text,
|
|
@@ -5832,19 +5871,18 @@ const Layer3D = {
|
|
|
5832
5871
|
depth,
|
|
5833
5872
|
fill,
|
|
5834
5873
|
bevelColor,
|
|
5835
|
-
curveSegments: options.curveSegments
|
|
5874
|
+
curveSegments: options.curveSegments,
|
|
5875
|
+
curveTolerance,
|
|
5836
5876
|
align: options.align,
|
|
5837
5877
|
verticalAlign: options.verticalAlign,
|
|
5838
5878
|
letterSpacing: options.letterSpacing,
|
|
5839
|
-
material: options.material,
|
|
5879
|
+
material: options.material === "lit" || options.material === "unlit" || options.material === "toon" ? options.material : void 0,
|
|
5840
5880
|
shininess: options.shininess,
|
|
5841
5881
|
roughness: options.roughness,
|
|
5842
|
-
specularIntensity: options.specularIntensity,
|
|
5843
|
-
ambientIntensity: options.ambientIntensity,
|
|
5844
5882
|
metallic: options.metallic
|
|
5845
5883
|
}).modelData;
|
|
5846
5884
|
const modelNode = Layer.model({
|
|
5847
|
-
id: options.id ??
|
|
5885
|
+
id: options.id ?? autoId("extruded-text"),
|
|
5848
5886
|
modelData,
|
|
5849
5887
|
is3D: true,
|
|
5850
5888
|
x: options.x ?? 0,
|
|
@@ -5865,7 +5903,10 @@ const Layer3D = {
|
|
|
5865
5903
|
ambientIntensity: options.ambientIntensity ?? 1,
|
|
5866
5904
|
metallic: options.metallic,
|
|
5867
5905
|
twoSided: options.twoSided ?? true,
|
|
5868
|
-
text3dOptions:
|
|
5906
|
+
text3dOptions: {
|
|
5907
|
+
...options,
|
|
5908
|
+
curveTolerance
|
|
5909
|
+
}
|
|
5869
5910
|
});
|
|
5870
5911
|
return Object.assign(modelNode, {
|
|
5871
5912
|
faces: [modelNode],
|
|
@@ -5947,9 +5988,9 @@ function decorateTrackSignals(track, source) {
|
|
|
5947
5988
|
});
|
|
5948
5989
|
return track;
|
|
5949
5990
|
}
|
|
5950
|
-
const
|
|
5951
|
-
|
|
5952
|
-
const bundle =
|
|
5991
|
+
const origVisionAttach = VisionNode.attach;
|
|
5992
|
+
VisionNode.attach = function(source, config, bundleOptions) {
|
|
5993
|
+
const bundle = origVisionAttach.call(this, source, config, bundleOptions);
|
|
5953
5994
|
if (bundle?.objects) {
|
|
5954
5995
|
const src = source;
|
|
5955
5996
|
const origGet = bundle.objects.get.bind(bundle.objects);
|
|
@@ -6052,67 +6093,60 @@ var Composition = class Composition {
|
|
|
6052
6093
|
fps;
|
|
6053
6094
|
durationMs;
|
|
6054
6095
|
backgroundColor;
|
|
6096
|
+
antialias3d;
|
|
6055
6097
|
fonts;
|
|
6056
6098
|
children = [];
|
|
6057
6099
|
audioTracks = [];
|
|
6058
6100
|
signals = {};
|
|
6059
6101
|
_frameHooks = [];
|
|
6060
|
-
|
|
6061
|
-
|
|
6102
|
+
_visionConfig;
|
|
6103
|
+
_visionBundle;
|
|
6062
6104
|
_effects = [];
|
|
6063
6105
|
/**
|
|
6064
6106
|
* Applies a whole-composition post-processing effect or vision pipeline.
|
|
6065
6107
|
*/
|
|
6066
6108
|
apply(effect) {
|
|
6067
|
-
if (effect
|
|
6068
|
-
this.
|
|
6109
|
+
if (effect instanceof Vision) {
|
|
6110
|
+
this.withVision(effect);
|
|
6069
6111
|
return this;
|
|
6070
6112
|
}
|
|
6071
6113
|
this._effects.push(effect);
|
|
6072
6114
|
return this;
|
|
6073
6115
|
}
|
|
6074
6116
|
/**
|
|
6075
|
-
*
|
|
6076
|
-
*
|
|
6117
|
+
* Runs vision on the whole composition — the rendered frame (composition, blur, crop,
|
|
6118
|
+
* anything upstream) is the inference input. Models are LAZY: nothing downloads until
|
|
6119
|
+
* the first frame actually runs a task.
|
|
6120
|
+
* Returns the reactive VisionBundle (objects / masks / pose / classes signals).
|
|
6077
6121
|
*/
|
|
6078
|
-
|
|
6079
|
-
|
|
6080
|
-
return this.withYolo(new MediaPipe(props));
|
|
6081
|
-
}
|
|
6082
|
-
/**
|
|
6083
|
-
* Attaches YOLO11 on top of the whole composition in one go — the rendered frame
|
|
6084
|
-
* (composition, blur, modulate, crop — anything upstream) is the inference input.
|
|
6085
|
-
* Models are LAZY: nothing downloads until the first frame actually runs a task.
|
|
6086
|
-
* Returns a reactive YoloVisionBundle (objects / masks / pose / classes signals).
|
|
6087
|
-
*/
|
|
6088
|
-
withYolo(config = {}) {
|
|
6089
|
-
if (!this._yoloBundle) this._yoloBundle = new YoloVisionBundle({
|
|
6122
|
+
withVision(config = {}) {
|
|
6123
|
+
this._visionBundle ??= new VisionBundle({
|
|
6090
6124
|
width: this.width,
|
|
6091
6125
|
height: this.height,
|
|
6092
6126
|
fps: this.fps
|
|
6093
6127
|
});
|
|
6094
|
-
this.
|
|
6095
|
-
...config instanceof
|
|
6096
|
-
visionBundle: this.
|
|
6128
|
+
this._visionConfig = {
|
|
6129
|
+
...config instanceof Vision ? config.config : config,
|
|
6130
|
+
visionBundle: this._visionBundle
|
|
6097
6131
|
};
|
|
6098
|
-
return this.
|
|
6132
|
+
return this._visionBundle;
|
|
6099
6133
|
}
|
|
6100
6134
|
/**
|
|
6101
|
-
* One-shot, ffmpeg-free vision analysis of a media source
|
|
6135
|
+
* One-shot, ffmpeg-free vision analysis of a media source.
|
|
6102
6136
|
*
|
|
6103
6137
|
* Decodes frames through the same mediabunny pipeline the renderer uses, runs the requested
|
|
6104
|
-
*
|
|
6105
|
-
*
|
|
6138
|
+
* tasks lazily (only those models download), temporally tracks detections, and returns a
|
|
6139
|
+
* zod-serializable report. The decoder is released and the runner closed on completion.
|
|
6106
6140
|
*/
|
|
6107
6141
|
async analyzeVisionSequence(source, options = {}) {
|
|
6108
6142
|
const fps = options.fps ?? this.fps;
|
|
6109
6143
|
const durationMs = this.durationMs ?? await this.computeDuration();
|
|
6110
6144
|
const totalFrames = options.totalFrames ?? Math.max(1, Math.round(durationMs / 1e3 * fps));
|
|
6111
|
-
const runner =
|
|
6112
|
-
|
|
6113
|
-
|
|
6145
|
+
const runner = VisionRunner.create({
|
|
6146
|
+
modelsDir: options.modelsDir,
|
|
6147
|
+
baseUrl: options.baseUrl,
|
|
6114
6148
|
...options.confidence !== void 0 ? { confidence: options.confidence } : {},
|
|
6115
|
-
...options.
|
|
6149
|
+
...options.variant !== void 0 ? { variant: options.variant } : {}
|
|
6116
6150
|
});
|
|
6117
6151
|
const decoder = mediaDecoderCache.getVideo(source, true);
|
|
6118
6152
|
async function* frameSource() {
|
|
@@ -6158,6 +6192,7 @@ var Composition = class Composition {
|
|
|
6158
6192
|
this.fps = options.fps ?? 60;
|
|
6159
6193
|
this.durationMs = options.durationMs ?? (options.durationFrames !== void 0 ? options.durationFrames / this.fps * 1e3 : void 0);
|
|
6160
6194
|
this.backgroundColor = options.backgroundColor ?? "#000000";
|
|
6195
|
+
this.antialias3d = options.antialias3d;
|
|
6161
6196
|
this.fonts = options.fonts ?? [];
|
|
6162
6197
|
this.signals = options.signals ?? {};
|
|
6163
6198
|
}
|
|
@@ -6170,7 +6205,7 @@ var Composition = class Composition {
|
|
|
6170
6205
|
}
|
|
6171
6206
|
add(layerOrFirst, ...rest) {
|
|
6172
6207
|
if (layerOrFirst instanceof TensorPipeline) this.children.push(layerOrFirst.toNode());
|
|
6173
|
-
else if (layerOrFirst instanceof
|
|
6208
|
+
else if (layerOrFirst instanceof VisionNode) this.children.push(layerOrFirst.toNode());
|
|
6174
6209
|
else if (layerOrFirst && typeof layerOrFirst === "object" && "node" in layerOrFirst) {
|
|
6175
6210
|
this.add(layerOrFirst.node, ...rest);
|
|
6176
6211
|
return this;
|
|
@@ -6200,7 +6235,7 @@ var Composition = class Composition {
|
|
|
6200
6235
|
* 3. Top Layer: Subject cutout video with continuous matte alpha registered at identical coordinates
|
|
6201
6236
|
*/
|
|
6202
6237
|
addSubjectSandwich(options) {
|
|
6203
|
-
const src = typeof options.source === "string" ? options.source : options.source.
|
|
6238
|
+
const src = typeof options.source === "string" ? options.source : options.source.inputHandleId ?? "";
|
|
6204
6239
|
const fit = options.fit ?? "cover";
|
|
6205
6240
|
const feather = options.feather ?? 4;
|
|
6206
6241
|
const featherVal = feather > 1 ? feather / 100 : feather;
|
|
@@ -6226,7 +6261,7 @@ var Composition = class Composition {
|
|
|
6226
6261
|
fit,
|
|
6227
6262
|
muted: true,
|
|
6228
6263
|
volume: 0
|
|
6229
|
-
}).
|
|
6264
|
+
}).withVision({
|
|
6230
6265
|
mode: "matte",
|
|
6231
6266
|
enableSegmentation: true,
|
|
6232
6267
|
variant,
|
|
@@ -6244,7 +6279,7 @@ var Composition = class Composition {
|
|
|
6244
6279
|
* tracked subject with smooth camera physics and lead headroom.
|
|
6245
6280
|
*/
|
|
6246
6281
|
addSmartFraming(options) {
|
|
6247
|
-
const src = typeof options.source === "string" ? options.source : options.source.
|
|
6282
|
+
const src = typeof options.source === "string" ? options.source : options.source.inputHandleId ?? "";
|
|
6248
6283
|
const damping = Math.max(0, Math.min(.99, options.damping ?? .8));
|
|
6249
6284
|
const headroom = options.leadHeadroom ?? .18;
|
|
6250
6285
|
const compW = this.width;
|
|
@@ -6336,7 +6371,7 @@ var Composition = class Composition {
|
|
|
6336
6371
|
muted: options.muted ?? false,
|
|
6337
6372
|
volume: options.muted ? 0 : options.volume ?? 1
|
|
6338
6373
|
});
|
|
6339
|
-
container.children.push(videoPlate);
|
|
6374
|
+
(container.children ??= []).push(videoPlate);
|
|
6340
6375
|
this.add(container);
|
|
6341
6376
|
return this;
|
|
6342
6377
|
}
|
|
@@ -6353,7 +6388,7 @@ var Composition = class Composition {
|
|
|
6353
6388
|
fps: this.fps,
|
|
6354
6389
|
label: "outline_pulse"
|
|
6355
6390
|
}) : 1;
|
|
6356
|
-
const src = typeof options.source === "string" ? options.source : options.source?.
|
|
6391
|
+
const src = typeof options.source === "string" ? options.source : options.source?.inputHandleId ?? "";
|
|
6357
6392
|
const outlineLayer = Layer.box({
|
|
6358
6393
|
width: compW,
|
|
6359
6394
|
height: compH,
|
|
@@ -6372,11 +6407,11 @@ var Composition = class Composition {
|
|
|
6372
6407
|
fit: "cover",
|
|
6373
6408
|
muted: true,
|
|
6374
6409
|
volume: 0
|
|
6375
|
-
}).
|
|
6410
|
+
}).withVision({
|
|
6376
6411
|
mode: "mask",
|
|
6377
6412
|
enableSegmentation: true
|
|
6378
6413
|
});
|
|
6379
|
-
outlineLayer.children.push(maskVideo);
|
|
6414
|
+
(outlineLayer.children ??= []).push(maskVideo);
|
|
6380
6415
|
}
|
|
6381
6416
|
outlineLayer.apply(new Blur({
|
|
6382
6417
|
strength: blur,
|
|
@@ -6469,11 +6504,12 @@ var Composition = class Composition {
|
|
|
6469
6504
|
fps: this.fps,
|
|
6470
6505
|
mode: "Video",
|
|
6471
6506
|
backgroundColor: this.backgroundColor,
|
|
6507
|
+
...this.antialias3d !== void 0 && { antialias3d: this.antialias3d },
|
|
6472
6508
|
layout: layoutItems,
|
|
6473
6509
|
fonts: mergedFonts,
|
|
6474
6510
|
signals: this.signals,
|
|
6475
6511
|
...this._effects.length > 0 && { effects: this._effects },
|
|
6476
|
-
...this.
|
|
6512
|
+
...this._visionConfig && { vision: this._visionConfig },
|
|
6477
6513
|
...this._frameHooks.length > 0 && { onRequestFrame: (ctx) => this.notifyFrame(ctx) }
|
|
6478
6514
|
};
|
|
6479
6515
|
}
|
|
@@ -6487,7 +6523,7 @@ var Composition = class Composition {
|
|
|
6487
6523
|
durationMs: options.durationMs ?? this.durationMs,
|
|
6488
6524
|
signals: options.signals ?? this.signals,
|
|
6489
6525
|
...this._effects.length > 0 && { effects: this._effects },
|
|
6490
|
-
...this.
|
|
6526
|
+
...this._visionConfig && { vision: this._visionConfig },
|
|
6491
6527
|
...options
|
|
6492
6528
|
});
|
|
6493
6529
|
}
|
|
@@ -6503,7 +6539,7 @@ var Composition = class Composition {
|
|
|
6503
6539
|
durationMs,
|
|
6504
6540
|
signals: options.signals ?? this.signals,
|
|
6505
6541
|
...this._effects.length > 0 && { effects: this._effects },
|
|
6506
|
-
...this.
|
|
6542
|
+
...this._visionConfig && { vision: this._visionConfig },
|
|
6507
6543
|
...options
|
|
6508
6544
|
});
|
|
6509
6545
|
}
|
|
@@ -6586,16 +6622,6 @@ function withAnimation(node) {
|
|
|
6586
6622
|
writable: true,
|
|
6587
6623
|
configurable: true
|
|
6588
6624
|
});
|
|
6589
|
-
Object.defineProperty(target, "driveBlendshapes", {
|
|
6590
|
-
value: (blendshapes) => {
|
|
6591
|
-
target.blendshapes = blendshapes;
|
|
6592
|
-
target.hasBlendshapes = true;
|
|
6593
|
-
return target;
|
|
6594
|
-
},
|
|
6595
|
-
enumerable: false,
|
|
6596
|
-
writable: true,
|
|
6597
|
-
configurable: true
|
|
6598
|
-
});
|
|
6599
6625
|
Object.defineProperty(target, "withMask", {
|
|
6600
6626
|
value: (mask) => {
|
|
6601
6627
|
target.mask = mask;
|
|
@@ -6632,18 +6658,9 @@ function withAnimation(node) {
|
|
|
6632
6658
|
writable: true,
|
|
6633
6659
|
configurable: true
|
|
6634
6660
|
});
|
|
6635
|
-
Object.defineProperty(target, "
|
|
6636
|
-
value: (config) => {
|
|
6637
|
-
target.yolo = config instanceof MediaPipe ? config : new MediaPipe(config);
|
|
6638
|
-
return target;
|
|
6639
|
-
},
|
|
6640
|
-
enumerable: false,
|
|
6641
|
-
writable: true,
|
|
6642
|
-
configurable: true
|
|
6643
|
-
});
|
|
6644
|
-
Object.defineProperty(target, "withYolo", {
|
|
6661
|
+
Object.defineProperty(target, "withVision", {
|
|
6645
6662
|
value: (config) => {
|
|
6646
|
-
target.
|
|
6663
|
+
target.vision = config instanceof Vision ? config : new Vision(config);
|
|
6647
6664
|
return target;
|
|
6648
6665
|
},
|
|
6649
6666
|
enumerable: false,
|
|
@@ -6744,7 +6761,7 @@ function withAnimation(node) {
|
|
|
6744
6761
|
}
|
|
6745
6762
|
const Layer = {
|
|
6746
6763
|
video: (src, options = {}) => withAnimation({
|
|
6747
|
-
id: options.id ?? "video
|
|
6764
|
+
id: options.id ?? autoId("video"),
|
|
6748
6765
|
kind: "media",
|
|
6749
6766
|
inputHandleId: src,
|
|
6750
6767
|
dataType: "Video",
|
|
@@ -6752,7 +6769,7 @@ const Layer = {
|
|
|
6752
6769
|
...options
|
|
6753
6770
|
}),
|
|
6754
6771
|
image: (src, options = {}) => withAnimation({
|
|
6755
|
-
id: options.id ?? "img
|
|
6772
|
+
id: options.id ?? autoId("img"),
|
|
6756
6773
|
kind: "media",
|
|
6757
6774
|
inputHandleId: src,
|
|
6758
6775
|
dataType: "Image",
|
|
@@ -6760,7 +6777,7 @@ const Layer = {
|
|
|
6760
6777
|
...options
|
|
6761
6778
|
}),
|
|
6762
6779
|
svg: (src, options = {}) => withAnimation({
|
|
6763
|
-
id: options.id ?? "svg
|
|
6780
|
+
id: options.id ?? autoId("svg"),
|
|
6764
6781
|
kind: "media",
|
|
6765
6782
|
inputHandleId: src,
|
|
6766
6783
|
dataType: "SVG",
|
|
@@ -6768,7 +6785,7 @@ const Layer = {
|
|
|
6768
6785
|
...options
|
|
6769
6786
|
}),
|
|
6770
6787
|
lottie: (src, options = {}) => withAnimation({
|
|
6771
|
-
id: options.id ?? "lottie
|
|
6788
|
+
id: options.id ?? autoId("lottie"),
|
|
6772
6789
|
kind: "media",
|
|
6773
6790
|
inputHandleId: src,
|
|
6774
6791
|
dataType: "Lottie",
|
|
@@ -6776,7 +6793,7 @@ const Layer = {
|
|
|
6776
6793
|
...options
|
|
6777
6794
|
}),
|
|
6778
6795
|
audio: (src, options = {}) => withAnimation({
|
|
6779
|
-
id: options.id ?? "audio
|
|
6796
|
+
id: options.id ?? autoId("audio"),
|
|
6780
6797
|
kind: "media",
|
|
6781
6798
|
inputHandleId: src,
|
|
6782
6799
|
dataType: "Audio",
|
|
@@ -6797,7 +6814,7 @@ const Layer = {
|
|
|
6797
6814
|
else textContent = options.text ?? "";
|
|
6798
6815
|
else textContent = typeof contentOrOptions === "string" ? contentOrOptions : String(contentOrOptions ?? "");
|
|
6799
6816
|
return withAnimation({
|
|
6800
|
-
id: options.id ?? "text
|
|
6817
|
+
id: options.id ?? autoId("text"),
|
|
6801
6818
|
kind: "text",
|
|
6802
6819
|
fontFamily: options.fontFamily ?? FontManager.getAll()[0]?.family ?? "Inter",
|
|
6803
6820
|
fontSize: options.fontSize ?? 48,
|
|
@@ -6808,7 +6825,7 @@ const Layer = {
|
|
|
6808
6825
|
});
|
|
6809
6826
|
},
|
|
6810
6827
|
caption: (src, options = {}) => withAnimation({
|
|
6811
|
-
id: options.id ?? "caption
|
|
6828
|
+
id: options.id ?? autoId("caption"),
|
|
6812
6829
|
kind: "media",
|
|
6813
6830
|
inputHandleId: src,
|
|
6814
6831
|
dataType: options.dataType ?? "Caption",
|
|
@@ -6818,21 +6835,21 @@ const Layer = {
|
|
|
6818
6835
|
...options
|
|
6819
6836
|
}),
|
|
6820
6837
|
shape: (shapeType = "rect", options = {}) => withAnimation({
|
|
6821
|
-
id: options.id ?? "shape
|
|
6838
|
+
id: options.id ?? autoId("shape"),
|
|
6822
6839
|
kind: "shape",
|
|
6823
6840
|
shapeType: options.shapeType ?? shapeType,
|
|
6824
6841
|
fillColor: options.fillColor ?? "#3b82f6",
|
|
6825
6842
|
...options
|
|
6826
6843
|
}),
|
|
6827
6844
|
flex: (options = {}) => withAnimation({
|
|
6828
|
-
id: options.id ?? "flex
|
|
6845
|
+
id: options.id ?? autoId("flex"),
|
|
6829
6846
|
kind: "flex",
|
|
6830
6847
|
dir: options.dir ?? "column",
|
|
6831
6848
|
children: options.children ?? [],
|
|
6832
6849
|
...options
|
|
6833
6850
|
}),
|
|
6834
6851
|
box: (options = {}) => withAnimation({
|
|
6835
|
-
id: options.id ?? "box
|
|
6852
|
+
id: options.id ?? autoId("box"),
|
|
6836
6853
|
kind: "box",
|
|
6837
6854
|
background: options.background ?? "transparent",
|
|
6838
6855
|
children: options.children ?? [],
|
|
@@ -6873,7 +6890,7 @@ const Layer = {
|
|
|
6873
6890
|
const boxWidth = target ? target.bounds.screenWidth.add(padding * 2) : opts.width !== void 0 ? opts.width : compW;
|
|
6874
6891
|
const boxHeight = target ? target.bounds.screenHeight.add(padding * 2) : opts.height !== void 0 ? opts.height : compH;
|
|
6875
6892
|
const boxChildren = [innerMedia, ...opts.children ?? []];
|
|
6876
|
-
const boxId = opts.id ?? (target ? `section-track-${target.trackId}
|
|
6893
|
+
const boxId = opts.id ?? (target ? autoId(`section-track-${target.trackId}`) : autoId("section"));
|
|
6877
6894
|
let box = Layer.box({
|
|
6878
6895
|
id: boxId,
|
|
6879
6896
|
position: opts.position ?? "absolute",
|
|
@@ -6947,13 +6964,13 @@ const Layer = {
|
|
|
6947
6964
|
});
|
|
6948
6965
|
},
|
|
6949
6966
|
chart: (options, props = {}) => withAnimation({
|
|
6950
|
-
id: props.id ?? "chart
|
|
6967
|
+
id: props.id ?? autoId("chart"),
|
|
6951
6968
|
kind: "chart",
|
|
6952
6969
|
chartOptions: options,
|
|
6953
6970
|
...props
|
|
6954
6971
|
}),
|
|
6955
6972
|
camera: (options = {}) => withAnimation({
|
|
6956
|
-
id: options.id ?? "camera
|
|
6973
|
+
id: options.id ?? autoId("camera"),
|
|
6957
6974
|
kind: "camera",
|
|
6958
6975
|
mode: options.mode ?? "lookAt",
|
|
6959
6976
|
pitch: options.pitch ?? 0,
|
|
@@ -6962,7 +6979,7 @@ const Layer = {
|
|
|
6962
6979
|
...options
|
|
6963
6980
|
}),
|
|
6964
6981
|
light: (options = {}) => withAnimation({
|
|
6965
|
-
id: options.id ?? "light
|
|
6982
|
+
id: options.id ?? autoId("light"),
|
|
6966
6983
|
kind: "light",
|
|
6967
6984
|
lightType: options.lightType ?? "point",
|
|
6968
6985
|
color: options.color ?? "#ffffff",
|
|
@@ -6978,7 +6995,7 @@ const Layer = {
|
|
|
6978
6995
|
plane3d: (options) => Layer3D.plane(options),
|
|
6979
6996
|
prism3d: (options) => Layer3D.prism(options),
|
|
6980
6997
|
model: (options = {}) => withAnimation({
|
|
6981
|
-
id: options.id ?? "model3d
|
|
6998
|
+
id: options.id ?? autoId("model3d"),
|
|
6982
6999
|
kind: "model3d",
|
|
6983
7000
|
is3D: options.is3D ?? true,
|
|
6984
7001
|
modelFormat: options.modelFormat ?? "auto",
|
|
@@ -7038,7 +7055,7 @@ const Layer = {
|
|
|
7038
7055
|
};
|
|
7039
7056
|
const Light = {
|
|
7040
7057
|
ambient: (color$1 = "#ffffff", intensity = .5, options = {}) => withAnimation({
|
|
7041
|
-
id: options.id ?? "light-ambient
|
|
7058
|
+
id: options.id ?? autoId("light-ambient"),
|
|
7042
7059
|
kind: "light",
|
|
7043
7060
|
lightType: "ambient",
|
|
7044
7061
|
color: color$1,
|
|
@@ -7046,7 +7063,7 @@ const Light = {
|
|
|
7046
7063
|
...options
|
|
7047
7064
|
}),
|
|
7048
7065
|
directional: (options = {}) => withAnimation({
|
|
7049
|
-
id: options.id ?? "light-directional
|
|
7066
|
+
id: options.id ?? autoId("light-directional"),
|
|
7050
7067
|
kind: "light",
|
|
7051
7068
|
lightType: "directional",
|
|
7052
7069
|
color: options.color ?? "#ffffff",
|
|
@@ -7060,7 +7077,7 @@ const Light = {
|
|
|
7060
7077
|
...options
|
|
7061
7078
|
}),
|
|
7062
7079
|
point: (options = {}) => withAnimation({
|
|
7063
|
-
id: options.id ?? "light-point
|
|
7080
|
+
id: options.id ?? autoId("light-point"),
|
|
7064
7081
|
kind: "light",
|
|
7065
7082
|
lightType: "point",
|
|
7066
7083
|
color: options.color ?? "#ffffff",
|
|
@@ -7073,7 +7090,7 @@ const Light = {
|
|
|
7073
7090
|
...options
|
|
7074
7091
|
}),
|
|
7075
7092
|
spot: (options = {}) => withAnimation({
|
|
7076
|
-
id: options.id ?? "light-spot
|
|
7093
|
+
id: options.id ?? autoId("light-spot"),
|
|
7077
7094
|
kind: "light",
|
|
7078
7095
|
lightType: "spot",
|
|
7079
7096
|
color: options.color ?? "#ffffff",
|
|
@@ -7122,8 +7139,7 @@ const Effect = Object.assign(Effect$1, {
|
|
|
7122
7139
|
pbrGlass: (config) => new PBRGlass(config),
|
|
7123
7140
|
depthOfField: (config) => new DepthOfField(config),
|
|
7124
7141
|
crop: (config) => new Crop(config),
|
|
7125
|
-
|
|
7126
|
-
yolo: (config) => new Yolo(config),
|
|
7142
|
+
vision: (config) => new Vision(config),
|
|
7127
7143
|
relight3d: (config) => new Relight3D(config),
|
|
7128
7144
|
modulate: (config) => new Modulate(config),
|
|
7129
7145
|
deflicker: (config) => new TemporalDeflicker(config),
|
|
@@ -7131,5 +7147,5 @@ const Effect = Object.assign(Effect$1, {
|
|
|
7131
7147
|
});
|
|
7132
7148
|
|
|
7133
7149
|
//#endregion
|
|
7134
|
-
export { AETextAnimatorSchema, AdvancedTextAnimatorBuilder, AdvancedTextAnimatorSchema, AnchorGroupingSchema, AnchorPresetSchema, AnimatableGlyphPropsSchema, AnimationTypeSchema, AnyOutputUnionSchema, ApplyLUT, AudioExtractorSignalDataSchema, AudioLatentEngine, AudioLatentTrackCache, AudioMeshDeformPipeline, AudioSignal, AudioSignalExtractor, AudioSpectrumTypographySchema, BaseMediaOperationPropsSchema, BaseVideoLayerPropsSchema, Blur, BoxNodeSchema, CAPTION_LAYER_DEFAULTS, COMPOSITE_OPERATIONS, COMPOSITOR_DEFAULTS, Camera3D, CameraAnimation, CameraNodeSchema, CannyComputePipeline, CarrierHandoffConfigSchema, ChartAreaStyleSchema, ChartAxisSchema, ChartDataPoint2DSchema, ChartDataPointOHLCSchema, ChartGPUEngineBridge, ChartGPUOptionsSchema, ChartLineStyleSchema, ChartNodeSchema, ChartPointStyleSchema, ChartSeriesSchema, ChartSeriesTypeSchema, ChromaticGlitchConfigSchema, ColorBalance, ColorKey, ColorStopSchema, Composition, CompositionChartNodeSchema, CompositorProgramSchema, ConfigHandleSchema, ConfigSchemaRegistry, ControlNetMultiplexer, Crop, CubicBezierSegmentSchema, Curves, CustomEffect, DATA_TYPE_EXTENSIONS, DEFAULT_DURATION_MS, DEFAULT_FPS, DEFAULT_MEDIA_DIMENSION, DataType, DataTypeVal, DataTypes, DepthNormalsComputePipeline, DepthOfField, DynamicStrokePropertiesSchema, Easing, Effect, EffectPipeline, EnhancedTextNodeSchema, ExportResultSchema, ExpressionSelectorSchema, ExtendedGlyphPropertiesSchema, ExtendedLayerSchema, FileAssetSchema, FileDataSchema, FilmGrain, FlexNodeSchema, FontManager, GeneratorSignalDataSchema, GlassPipeline, GlobalCompositeOperation, GlyphAnchorGroupingSchema, GlyphAnchorPointSchema, GradientMap, HalftoneScreen, HandleTypeVal, HeadlessChartCanvasElementMock, HeadlessChartContainerMock, HeadlessGPUCanvasContextMock, HeadlessMediaRenderer, HeadlessWebGPURenderer, HighPass, JsonValueSchema, KineticMarqueeConfigSchema, LIGHT_UNIFORM_SIZE_BYTES, Layer, Layer3D, LayerAnimation, LayoutNodeSchema, Levels, Light, Light3D, LightNodeSchema, LightTypeSchema, LineSpacingDynamicsSchema, LongShadowConfigSchema, MAX_LIGHTS,
|
|
7150
|
+
export { AETextAnimatorSchema, AdvancedTextAnimatorBuilder, AdvancedTextAnimatorSchema, AnchorGroupingSchema, AnchorPresetSchema, AnimatableGlyphPropsSchema, AnimationTypeSchema, AnyOutputUnionSchema, ApplyLUT, AudioExtractorSignalDataSchema, AudioLatentEngine, AudioLatentTrackCache, AudioMeshDeformPipeline, AudioSignal, AudioSignalExtractor, AudioSpectrumTypographySchema, BaseMediaOperationPropsSchema, BaseVideoLayerPropsSchema, Blur, BoxNodeSchema, CAPTION_LAYER_DEFAULTS, COCO17_BONES, COCO17_KEYPOINTS, COCO17_KEYPOINT_NAMES, COCO_CLASSES, COMPOSITE_OPERATIONS, COMPOSITOR_DEFAULTS, Camera3D, CameraAnimation, CameraNodeSchema, CannyComputePipeline, CarrierHandoffConfigSchema, ChartAreaStyleSchema, ChartAxisSchema, ChartDataPoint2DSchema, ChartDataPointOHLCSchema, ChartGPUEngineBridge, ChartGPUOptionsSchema, ChartLineStyleSchema, ChartNodeSchema, ChartPointStyleSchema, ChartSeriesSchema, ChartSeriesTypeSchema, ChromaticGlitchConfigSchema, ColorBalance, ColorKey, ColorStopSchema, Composition, CompositionChartNodeSchema, CompositorProgramSchema, ConfigHandleSchema, ConfigSchemaRegistry, ControlNetMultiplexer, Crop, CubicBezierSegmentSchema, Curves, CustomEffect, DATA_TYPE_EXTENSIONS, DEFAULT_DURATION_MS, DEFAULT_FPS, DEFAULT_MEDIA_DIMENSION, DataType, DataTypeVal, DataTypes, DepthNormalsComputePipeline, DepthOfField, DynamicStrokePropertiesSchema, Easing, Effect, EffectPipeline, EnhancedTextNodeSchema, ExportResultSchema, ExpressionSelectorSchema, ExtendedGlyphPropertiesSchema, ExtendedLayerSchema, FileAssetSchema, FileDataSchema, FilmGrain, FlexNodeSchema, FontManager, GeneratorSignalDataSchema, GlassPipeline, GlobalCompositeOperation, GlyphAnchorGroupingSchema, GlyphAnchorPointSchema, GradientMap, HalftoneScreen, HandleTypeVal, HeadlessChartCanvasElementMock, HeadlessChartContainerMock, HeadlessGPUCanvasContextMock, HeadlessMediaRenderer, HeadlessWebGPURenderer, HighPass, JsonValueSchema, KineticMarqueeConfigSchema, LIGHT_UNIFORM_SIZE_BYTES, Layer, Layer3D, LayerAnimation, LayoutNodeSchema, Levels, Light, Light3D, LightNodeSchema, LightTypeSchema, LineSpacingDynamicsSchema, LongShadowConfigSchema, MAX_LIGHTS, MIME_TYPES, MaterialTypeSchema, Matrix4Math, Media, MediaMetadataSchema, MediaNodeSchema, MediaOperationSchema, MediaSourceSchema, Model3DNodeSchema, ModerationError, ModerationUnrefundableError, Modulate, MotionBlur, MotionBlurPipeline, MultiOutputGenericSchema, NodeMetadataSchema, NodeResultSchema, NodeVisualConfigSchema, OpticalFlowComputePipeline, OutputItemSchema, PBRGlass, ParticleDissolveConfigSchema, Path3D, PlaybackContext, PlaybackProvider, PoseSkeletonRenderer, ProgrammaticSignal, Relight3D, Renderer2D, Renderer3D, SSAO, SSAOPipeline, Scene, SceneDefinitionSchema, SceneTransitionTypeSchema, SegmentationTexturePool, SelectiveColor, SelectorBasedOnSchema, SelectorModeSchema, SelectorShapeSchema, SelectorUnitsSchema, Sequence, ShadowPipeline, ShadowsHighlights, ShapeNodeSchema, Signal, SignalChannelMetaSchema, SignalDataSchema, SignalGateDataSchema, SignalMathDataSchema, SignalStatsSchema, SingleOutputGenericSchema, SkewPropertiesSchema, SlugFontCache, SlugPipeline, SourceOperationSchema, Spatial3DPropertiesSchema, SpatialLandmarkTransformer, SpringPhysicsSchema, TEXT_LAYER_DEFAULTS, TemporalDeflicker, TemporalDeflickerPipeline, TemporalObjectTracker, TensorPipeline, TextAnchorConfigSchema, TextAnimator, TextAnimatorBuilder, TextAnimatorSchema, TextCursorConfigSchema, TextCursorStyleSchema, TextNodeSchema, TextOperationSchema, TextPathBuilder, TextPathOptionsSchema, TextPathSourceSchema, TextRangeSelectorSchema, TextScrambleConfigSchema, TextSelectorSchema, TextSignalSelectorSchema, TextSpanMarkSchema, TextSpanSchema, TextWigglySelectorSchema, TileOffset, TimelineSegmentSchema, TimelineTransformSchema, TransitionSchema, TransitionTypeSchema, TypewriterAnimatorSchema, TypingCadenceSchema, UnsharpMask, VariableFontAxesSchema, Vec2Schema, Vector3Math, VideoAnimationSchema, VideoLayerTypeSchema, VideoSpatialPropsSchema, VideoStylePropsSchema, VideoTextPropsSchema, VideoTimingPropsSchema, Vignette, VirtualMediaDataSchema, Vision, VisionBundle, VisionNode, VisionRunner, VolumetricFormationConfigSchema, VolumetricFormationModeSchema, accent, analyzeSequence, appendOperation, applyStaggerToChildren, bezier, blurRegion, bold, buildPathLUT, calculateSequenceTimeline, chartBridgeCache, checkNodeResultCache, code, collectNodeOps, color, compositorToProgram, computeAnchorPivotOffset, computeCarrierContinuity, computeGridLayout, computeLayout, computeLayoutSync, computeLineLeadingDisplacement, computeRangeSelectorWeight, computeStaggerDelay, computeStrokeRect, computeVideoCropRenderProps, computed, cosineSignal, createOutputItemSchema, createVirtualMedia, dataTypeColors, deserializeSignalData, deterministicWigglyNoise, distanceToCurveParameter, drawChartNode, editTrackedRegion, ellipseToCubicBeziers, encodeStereoWav, ensureDevice, evaluateAnimationAtFrame, evaluateCubicBezier, evaluateCubicBezierDerivative, evaluateExpressionSelector, evaluateMarqueeOffset, evaluateSelectorCombination, evaluateSkewMatrix, evaluateSpringProgress, evaluateTrackAtFrame, evaluateTypewriterState, evaluateVolumetricFormation, extractSvgDimensions, findSourceAsset, formatQaReport, frameArraySignal, frameSignal, generateArcLengthLUT, generateId, generatePathSegments, getActiveMediaMetadata, getFileDataMetadata, getFingerprint, getLeafMediaType, getMediaType, getRenderFingerprint, getScramblePool, getShuffledOrder, hasDelayRender, hasOnlySingleSource, inputStore, interpolate, isEqual, isSignal, isVirtualMediaData, italic, loadFBX, loadModel3D, loadOBJ, lutStore, mapBlendModeToSkia, mark, measureSpring, measureText, measureTextAsync, mixAudioTracks, mixSfxInto, normalizeTextSpans, parseColorToRgb, parseFBX, parseMTL, parseMarkup, parseOBJ, parseSvgPathToCubicBeziers, pinNodeToLandmark, pinNodeToObject, preloadFont, programmaticSignal, progressSignal, registerSignalDependency, renderFrameGrid, renderSemaphore, renderSfx, reportRenderDiagnostic, requiresIsolation, resolveMediaMimeType, resolveSamplePoints, rich, sampleAudioSpectrumScale, sampleCurveGeometry, samplePathChainGeometry, section, serializeSignalData, shaderStore, signal, signalBuilder, signalRegistry, sineSignal, size, softLimit, span, spring, springCalculation, stampResult, sub, sup, takeRenderDiagnostics, textureCache, timeSignal, updateClockSignals, useCurrentFrame, useVideoConfig, waveToCubicBeziers };
|
|
7135
7151
|
//# sourceMappingURL=index.mjs.map
|