remotion 4.0.537 → 4.0.539
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/cjs/AbsoluteFill.d.ts +62 -62
- package/dist/cjs/AbsoluteFill.js +3 -3
- package/dist/cjs/AbsoluteFillElement.d.ts +1 -1
- package/dist/cjs/AbsoluteFillElement.js +43 -5
- package/dist/cjs/CanUseRemotionHooks.js +1 -1
- package/dist/cjs/Composition.js +5 -11
- package/dist/cjs/CompositionErrorBoundary.js +5 -2
- package/dist/cjs/CompositionManager.d.ts +1 -0
- package/dist/cjs/CompositionManagerProvider.d.ts +1 -1
- package/dist/cjs/CompositionManagerProvider.js +1 -1
- package/dist/cjs/CompositionRegistryProvider.d.ts +1 -1
- package/dist/cjs/CompositionRegistryProvider.js +1 -1
- package/dist/cjs/EditorProps.d.ts +2 -2
- package/dist/cjs/EditorProps.js +1 -1
- package/dist/cjs/Folder.js +1 -1
- package/dist/cjs/HtmlInCanvas.d.ts +58 -67
- package/dist/cjs/HtmlInCanvas.js +22 -9
- package/dist/cjs/HtmlInCanvasFallback.d.ts +6 -0
- package/dist/cjs/HtmlInCanvasFallback.js +39 -0
- package/dist/cjs/IFrame.d.ts +2 -2
- package/dist/cjs/IFrame.js +1 -1
- package/dist/cjs/Img.d.ts +62 -62
- package/dist/cjs/Img.js +160 -132
- package/dist/cjs/Interactive.d.ts +147 -145
- package/dist/cjs/Interactive.js +2 -2
- package/dist/cjs/RemotionRoot.js +1 -1
- package/dist/cjs/RenderAssetManager.js +1 -1
- package/dist/cjs/Sequence.js +37 -27
- package/dist/cjs/SequenceActivityBoundary.js +1 -1
- package/dist/cjs/SequenceActivityBudget.js +1 -1
- package/dist/cjs/SequenceActivitySuspensionProvider.js +1 -1
- package/dist/cjs/SequenceManager.d.ts +6 -0
- package/dist/cjs/SequenceManager.js +71 -27
- package/dist/cjs/SequenceRegistryProvider.js +16 -3
- package/dist/cjs/TimelineContext.js +1 -1
- package/dist/cjs/Track.js +2 -2
- package/dist/cjs/animated-image/AnimatedImage.d.ts +69 -69
- package/dist/cjs/animated-image/AnimatedImage.js +6 -6
- package/dist/cjs/animated-image/canvas.d.ts +6 -5
- package/dist/cjs/animated-image/canvas.js +1 -1
- package/dist/cjs/animated-image/create-image-decoder.d.ts +1 -1
- package/dist/cjs/animated-image/decode-image.d.ts +1 -1
- package/dist/cjs/animated-image/decode-image.js +2 -0
- package/dist/cjs/animated-image/get-duration-in-seconds.d.ts +1 -1
- package/dist/cjs/animated-image/index.js +1 -1
- package/dist/cjs/audio/AudioForPreview.js +5 -28
- package/dist/cjs/audio/AudioForRendering.d.ts +5 -20
- package/dist/cjs/audio/AudioForRendering.js +44 -5
- package/dist/cjs/audio/html5-audio.d.ts +36 -36
- package/dist/cjs/audio/html5-audio.js +8 -10
- package/dist/cjs/audio/index.js +1 -1
- package/dist/cjs/audio/shared-audio-tags.js +10 -16
- package/dist/cjs/audio/shared-element-source-node.d.ts +1 -1
- package/dist/cjs/audio/use-audio-context.d.ts +2 -1
- package/dist/cjs/audio/wait-until-actually-resumed.d.ts +2 -1
- package/dist/cjs/buffer-until-first-frame.d.ts +4 -3
- package/dist/cjs/buffering.js +1 -1
- package/dist/cjs/cancel-render.js +3 -0
- package/dist/cjs/canvas-image/CanvasImage.d.ts +71 -71
- package/dist/cjs/canvas-image/CanvasImage.js +27 -24
- package/dist/cjs/canvas-image/index.js +1 -1
- package/dist/cjs/codec.d.ts +1 -1
- package/dist/cjs/committed-metadata.d.ts +4 -2
- package/dist/cjs/composition-registry-fallback.d.ts +4 -2
- package/dist/cjs/composition-registry-fallback.js +12 -10
- package/dist/cjs/create-element-source-proxy.js +46 -6
- package/dist/cjs/default-css.d.ts +1 -1
- package/dist/cjs/delay-render.d.ts +2 -1
- package/dist/cjs/delay-render.js +4 -2
- package/dist/cjs/easing.js +3 -1
- package/dist/cjs/effects/Solid.d.ts +60 -60
- package/dist/cjs/effects/Solid.js +2 -2
- package/dist/cjs/effects/canvas-pool.js +6 -9
- package/dist/cjs/effects/create-curve-sampler.d.ts +1 -0
- package/dist/cjs/effects/create-curve-sampler.js +100 -0
- package/dist/cjs/effects/effect-source-observer.d.ts +13 -0
- package/dist/cjs/effects/effect-source-observer.js +177 -0
- package/dist/cjs/effects/index.js +1 -1
- package/dist/cjs/effects/run-effect-chain.js +3 -0
- package/dist/cjs/effects/use-memoized-effects.d.ts +2 -1
- package/dist/cjs/effects/use-memoized-effects.js +29 -13
- package/dist/cjs/freeze.js +2 -2
- package/dist/cjs/get-cross-origin-value.d.ts +1 -1
- package/dist/cjs/get-effective-visual-mode-value.d.ts +2 -2
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +32 -32
- package/dist/cjs/interactivity-schema.d.ts +286 -286
- package/dist/cjs/internals.d.ts +412 -595
- package/dist/cjs/internals.js +11 -0
- package/dist/cjs/interpolate-colors.d.ts +1 -1
- package/dist/cjs/interpolate-colors.js +28 -23
- package/dist/cjs/interpolate.d.ts +2 -9
- package/dist/cjs/interpolate.js +37 -33
- package/dist/cjs/is-player.js +1 -1
- package/dist/cjs/loading-indicator.js +2 -6
- package/dist/cjs/log-level-context.d.ts +1 -1
- package/dist/cjs/log.d.ts +12 -7
- package/dist/cjs/loop/index.js +1 -1
- package/dist/cjs/media-resource-manager.d.ts +1 -1
- package/dist/cjs/media-tag-current-time-timestamp.d.ts +1 -1
- package/dist/cjs/no-react.d.ts +85 -91
- package/dist/cjs/no-react.js +2 -2
- package/dist/cjs/nonce.d.ts +11 -0
- package/dist/cjs/nonce.js +42 -0
- package/dist/cjs/play-and-handle-not-allowed-error.d.ts +5 -4
- package/dist/cjs/playback-logging.d.ts +2 -1
- package/dist/cjs/playback-pitch-context.d.ts +1 -0
- package/dist/cjs/playback-pitch-context.js +5 -0
- package/dist/cjs/prefetch-state.js +1 -1
- package/dist/cjs/prefetch.d.ts +7 -6
- package/dist/cjs/prefetch.js +30 -5
- package/dist/cjs/props-if-has-props.d.ts +2 -1
- package/dist/cjs/prores-profile.d.ts +1 -1
- package/dist/cjs/register-root.d.ts +2 -2
- package/dist/cjs/render-resource-manager.d.ts +1 -1
- package/dist/cjs/render-types.d.ts +2 -2
- package/dist/cjs/resolve-video-config.d.ts +8 -8
- package/dist/cjs/runtime-value-store.d.ts +1 -1
- package/dist/cjs/scale-value.d.ts +1 -1
- package/dist/cjs/seek.d.ts +3 -2
- package/dist/cjs/sequence-activity-context.js +1 -1
- package/dist/cjs/sequence-crop.js +1 -4
- package/dist/cjs/sequence-order-marker.d.ts +58 -0
- package/dist/cjs/sequence-order-marker.js +44 -0
- package/dist/cjs/series/flatten-children.d.ts +3 -1
- package/dist/cjs/series/index.js +4 -5
- package/dist/cjs/series/is-inside-series.js +2 -2
- package/dist/cjs/spring/index.d.ts +1 -1
- package/dist/cjs/spring/index.js +2 -4
- package/dist/cjs/spring/measure-spring.d.ts +1 -1
- package/dist/cjs/spring/spring-utils.d.ts +1 -1
- package/dist/cjs/spring/spring-utils.js +11 -5
- package/dist/cjs/timeline-position-state.d.ts +1 -1
- package/dist/cjs/timeline-position-state.js +2 -2
- package/dist/cjs/use-amplification.d.ts +4 -7
- package/dist/cjs/use-current-scale.d.ts +2 -2
- package/dist/cjs/use-delay-render.d.ts +2 -1
- package/dist/cjs/use-lazy-component.d.ts +1 -1
- package/dist/cjs/use-lazy-component.js +20 -9
- package/dist/cjs/use-media-buffering.d.ts +3 -2
- package/dist/cjs/use-media-duration.d.ts +4 -0
- package/dist/cjs/use-media-duration.js +36 -0
- package/dist/cjs/use-media-enabled.d.ts +1 -1
- package/dist/cjs/use-media-enabled.js +1 -1
- package/dist/cjs/use-media-in-timeline.d.ts +1 -1
- package/dist/cjs/use-media-playback.d.ts +3 -3
- package/dist/cjs/use-media-tag.d.ts +2 -2
- package/dist/cjs/use-pixel-density.d.ts +1 -1
- package/dist/cjs/use-premounting.d.ts +1 -1
- package/dist/cjs/use-premounting.js +6 -2
- package/dist/cjs/use-request-video-callback-time.d.ts +3 -3
- package/dist/cjs/use-schema.d.ts +4 -4
- package/dist/cjs/use-video.js +1 -1
- package/dist/cjs/validate-media-props.d.ts +1 -1
- package/dist/cjs/validation/validate-default-props.d.ts +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/video/MediaPlaybackError.js +0 -1
- package/dist/cjs/video/OffthreadVideo.js +5 -5
- package/dist/cjs/video/OffthreadVideoForRendering.js +9 -7
- package/dist/cjs/video/VideoForPreview.js +6 -28
- package/dist/cjs/video/VideoForRendering.d.ts +5 -3
- package/dist/cjs/video/VideoForRendering.js +4 -2
- package/dist/cjs/video/duration-state.d.ts +1 -0
- package/dist/cjs/video/duration-state.js +8 -2
- package/dist/cjs/video/emit-video-frame.d.ts +1 -1
- package/dist/cjs/video/html5-video.d.ts +36 -36
- package/dist/cjs/video/html5-video.js +8 -10
- package/dist/cjs/video/index.js +2 -2
- package/dist/cjs/video/seek-until-right.d.ts +3 -2
- package/dist/cjs/warn-about-non-seekable-media.d.ts +1 -1
- package/dist/cjs/with-interactivity-schema.d.ts +1 -1
- package/dist/cjs/with-interactivity-schema.js +3 -8
- package/dist/cjs/wrap-remotion-context.d.ts +4 -4
- package/dist/cjs/wrap-remotion-context.js +2 -2
- package/dist/esm/index.mjs +1304 -819
- package/dist/esm/no-react.mjs +74 -52
- package/dist/esm/version.mjs +1 -1
- package/package.json +4 -4
package/dist/cjs/Interactive.js
CHANGED
|
@@ -157,7 +157,7 @@ const withSchema = (untypedOptions) => {
|
|
|
157
157
|
style: premountingStyle,
|
|
158
158
|
componentName,
|
|
159
159
|
});
|
|
160
|
-
return (jsx_runtime_1.jsx(freeze_js_1.Freeze, { frame: freezeFrame, active: isPremountingOrPostmounting, children: jsx_runtime_1.jsx(Sequence_js_1.SequenceWithoutSchema, { _remotionInternalSingleChildComponent: isCurrentComposition ? null : componentIdentity, layout: layout, ...(layout === 'absolute-fill'
|
|
160
|
+
return ((0, jsx_runtime_1.jsx)(freeze_js_1.Freeze, { frame: freezeFrame, active: isPremountingOrPostmounting, children: (0, jsx_runtime_1.jsx)(Sequence_js_1.SequenceWithoutSchema, { _remotionInternalSingleChildComponent: isCurrentComposition ? null : componentIdentity, layout: layout, ...(layout === 'absolute-fill'
|
|
161
161
|
? {
|
|
162
162
|
width,
|
|
163
163
|
height,
|
|
@@ -228,7 +228,7 @@ const makeInteractiveElement = (tag, displayName, schema) => {
|
|
|
228
228
|
const callbackRef = (0, react_1.useCallback)((element) => {
|
|
229
229
|
setRef(ref, element);
|
|
230
230
|
}, [ref]);
|
|
231
|
-
return (jsx_runtime_1.jsx(freeze_js_1.Freeze, { frame: freezeFrame, active: isPremountingOrPostmounting, _remotionInternalIsPremounting: premountingActive, children: jsx_runtime_1.jsx(Sequence_js_1.Sequence, { layout: "none", from: from !== null && from !== void 0 ? from : 0, trimBefore: trimBefore, playbackRate: playbackRate, loop: loop, durationInFrames: durationInFrames, freeze: freeze, hidden: hidden, name: name !== null && name !== void 0 ? name : displayName, showInTimeline: showInTimeline !== null && showInTimeline !== void 0 ? showInTimeline : true, controls: controls, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/interactive", _remotionInternalPremountDisplay: effectivePremountFor || null, _remotionInternalPostmountDisplay: effectivePostmountFor || null, _remotionInternalIsPremounting: premountingActive, _remotionInternalIsPostmounting: postmountingActive, children: react_1.default.createElement(tag, {
|
|
231
|
+
return ((0, jsx_runtime_1.jsx)(freeze_js_1.Freeze, { frame: freezeFrame, active: isPremountingOrPostmounting, _remotionInternalIsPremounting: premountingActive, children: (0, jsx_runtime_1.jsx)(Sequence_js_1.Sequence, { layout: "none", from: from !== null && from !== void 0 ? from : 0, trimBefore: trimBefore, playbackRate: playbackRate, loop: loop, durationInFrames: durationInFrames, freeze: freeze, hidden: hidden, name: name !== null && name !== void 0 ? name : displayName, showInTimeline: showInTimeline !== null && showInTimeline !== void 0 ? showInTimeline : true, controls: controls, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/interactive", _remotionInternalPremountDisplay: effectivePremountFor || null, _remotionInternalPostmountDisplay: effectivePostmountFor || null, _remotionInternalIsPremounting: premountingActive, _remotionInternalIsPostmounting: postmountingActive, children: react_1.default.createElement(tag, {
|
|
232
232
|
...props,
|
|
233
233
|
style: croppedStyle !== null && croppedStyle !== void 0 ? croppedStyle : undefined,
|
|
234
234
|
ref: callbackRef,
|
package/dist/cjs/RemotionRoot.js
CHANGED
|
@@ -17,6 +17,6 @@ const RemotionRootContexts = ({ children, numberOfAudioTags, logLevel, audioLate
|
|
|
17
17
|
const logging = (0, react_1.useMemo)(() => {
|
|
18
18
|
return { logLevel, mountTime: Date.now() };
|
|
19
19
|
}, [logLevel]);
|
|
20
|
-
return (jsx_runtime_1.jsx(log_level_context_js_1.LogLevelContext.Provider, { value: logging, children: jsx_runtime_1.jsx(TimelineContext_js_1.TimelineContextProvider, { frameState: frameState, children: jsx_runtime_1.jsx(use_media_enabled_js_1.MediaEnabledProvider, { videoEnabled: videoEnabled, audioEnabled: audioEnabled, children: jsx_runtime_1.jsx(EditorProps_js_1.EditorPropsProvider, { children: jsx_runtime_1.jsx(prefetch_state_js_1.PrefetchProvider, { children: jsx_runtime_1.jsx(SequenceManager_js_1.SequenceManagerProvider, { children: jsx_runtime_1.jsx(duration_state_js_1.DurationsContextProvider, { children: jsx_runtime_1.jsx(buffering_js_1.BufferingProvider, { children: jsx_runtime_1.jsx(shared_audio_tags_js_1.SharedAudioContextProvider, { audioLatencyHint: audioLatencyHint, audioEnabled: audioEnabled, previewSampleRate: previewSampleRate, _experimentalKeepAudioContextAlive: _experimentalKeepAudioContextAlive, children: jsx_runtime_1.jsx(shared_audio_tags_js_1.SharedAudioTagsContextProvider, { numberOfAudioTags: numberOfAudioTags, children: jsx_runtime_1.jsx(use_video_js_1.VideoProvider, { children: children }) }) }) }) }) }) }) }) }) }) }));
|
|
20
|
+
return ((0, jsx_runtime_1.jsx)(log_level_context_js_1.LogLevelContext.Provider, { value: logging, children: (0, jsx_runtime_1.jsx)(TimelineContext_js_1.TimelineContextProvider, { frameState: frameState, children: (0, jsx_runtime_1.jsx)(use_media_enabled_js_1.MediaEnabledProvider, { videoEnabled: videoEnabled, audioEnabled: audioEnabled, children: (0, jsx_runtime_1.jsx)(EditorProps_js_1.EditorPropsProvider, { children: (0, jsx_runtime_1.jsx)(prefetch_state_js_1.PrefetchProvider, { children: (0, jsx_runtime_1.jsx)(SequenceManager_js_1.SequenceManagerProvider, { children: (0, jsx_runtime_1.jsx)(duration_state_js_1.DurationsContextProvider, { children: (0, jsx_runtime_1.jsx)(buffering_js_1.BufferingProvider, { children: (0, jsx_runtime_1.jsx)(shared_audio_tags_js_1.SharedAudioContextProvider, { audioLatencyHint: audioLatencyHint, audioEnabled: audioEnabled, previewSampleRate: previewSampleRate, _experimentalKeepAudioContextAlive: _experimentalKeepAudioContextAlive, children: (0, jsx_runtime_1.jsx)(shared_audio_tags_js_1.SharedAudioTagsContextProvider, { numberOfAudioTags: numberOfAudioTags, children: (0, jsx_runtime_1.jsx)(use_video_js_1.VideoProvider, { children: children }) }) }) }) }) }) }) }) }) }) }));
|
|
21
21
|
};
|
|
22
22
|
exports.RemotionRootContexts = RemotionRootContexts;
|
|
@@ -52,6 +52,6 @@ const RenderAssetManagerProvider = ({ children, collectAssets }) => {
|
|
|
52
52
|
renderAssets,
|
|
53
53
|
};
|
|
54
54
|
}, [renderAssets, registerRenderAsset, unregisterRenderAsset]);
|
|
55
|
-
return (jsx_runtime_1.jsx(exports.RenderAssetManager.Provider, { value: contextValue, children: children }));
|
|
55
|
+
return ((0, jsx_runtime_1.jsx)(exports.RenderAssetManager.Provider, { value: contextValue, children: children }));
|
|
56
56
|
};
|
|
57
57
|
exports.RenderAssetManagerProvider = RenderAssetManagerProvider;
|
package/dist/cjs/Sequence.js
CHANGED
|
@@ -64,6 +64,26 @@ const with_interactivity_schema_js_1 = require("./with-interactivity-schema.js")
|
|
|
64
64
|
const SeriesContentVisibilityContext = (0, react_1.createContext)(true);
|
|
65
65
|
const SequenceContextProvider = (0, committed_metadata_js_1.withCommittedMetadata)(SequenceContext_js_1.SequenceContext.Provider);
|
|
66
66
|
const EMPTY_EFFECTS = [];
|
|
67
|
+
// Bind explicit arguments instead of capturing render variables. Extracted hooks
|
|
68
|
+
// can be inlined by minifiers and retain children through their shared scope.
|
|
69
|
+
const getSequenceRegistration = (sequence) => {
|
|
70
|
+
return sequence;
|
|
71
|
+
};
|
|
72
|
+
const getSequenceStack = (stack) => {
|
|
73
|
+
return stack;
|
|
74
|
+
};
|
|
75
|
+
const getSequenceCurrentFrame = (ref) => {
|
|
76
|
+
return ref.current;
|
|
77
|
+
};
|
|
78
|
+
const setSequenceWrapperRef = (ref, wrapperRef, node) => {
|
|
79
|
+
wrapperRef.current = node;
|
|
80
|
+
if (typeof ref === 'function') {
|
|
81
|
+
ref(node);
|
|
82
|
+
}
|
|
83
|
+
else if (ref) {
|
|
84
|
+
ref.current = node;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
67
87
|
const RegularSequenceRefForwardingFunction = ({ from = 0, trimBefore = 0, playbackRate = 1, loop = false, freeze, durationInFrames, children, name, height, width, showInTimeline = true, hidden = false, controls, _remotionInternalEffects, _remotionInternalTimelineTrack: timelineTrackItem, _remotionInternalLoopDisplay: loopDisplay, _remotionInternalStack: stack, _remotionInternalSingleChildComponent: childComponentOverride, _remotionInternalDocumentationLink: documentationLink, _remotionInternalPremountDisplay: premountDisplay, _remotionInternalPostmountDisplay: postmountDisplay, _remotionInternalIsMedia: isMedia, cropLeft, cropRight, cropTop, cropBottom, ...other }, ref) => {
|
|
68
88
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
69
89
|
const { layout = 'absolute-fill' } = other;
|
|
@@ -307,14 +327,14 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, trimBefore = 0, playba
|
|
|
307
327
|
const registrationStack = controls
|
|
308
328
|
? ((_f = (_e = (0, enable_sequence_stack_traces_js_1.getStackForControls)(controls)) !== null && _e !== void 0 ? _e : stack) !== null && _f !== void 0 ? _f : null)
|
|
309
329
|
: (stack !== null && stack !== void 0 ? stack : null);
|
|
310
|
-
const getStack = (0, react_1.
|
|
330
|
+
const getStack = (0, react_1.useMemo)(() => getSequenceStack.bind(null, registrationStack), [registrationStack]);
|
|
311
331
|
const registeredFrozenFrame = typeof freeze === 'number' ? freeze : null;
|
|
312
332
|
const currentFrame = registeredFrozenFrame !== null && registeredFrozenFrame !== void 0 ? registeredFrozenFrame : (absoluteFrame - currentSequenceStart) * cumulativePlaybackRate;
|
|
313
333
|
const currentFrameRef = (0, react_1.useRef)(currentFrame);
|
|
314
334
|
(0, react_1.useLayoutEffect)(() => {
|
|
315
335
|
currentFrameRef.current = currentFrame;
|
|
316
336
|
}, [currentFrame]);
|
|
317
|
-
const getCurrentFrame = (0, react_1.
|
|
337
|
+
const getCurrentFrame = (0, react_1.useMemo)(() => getSequenceCurrentFrame.bind(null, currentFrameRef), [currentFrameRef]);
|
|
318
338
|
const registeredTrimBefore = trimBefore === 0 ? null : trimBefore;
|
|
319
339
|
const parentCumulatedNegativeFrom = (_g = parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.cumulatedNegativeFrom) !== null && _g !== void 0 ? _g : 0;
|
|
320
340
|
const startMediaFrom = isMedia && isMedia.type !== 'image'
|
|
@@ -358,10 +378,7 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, trimBefore = 0, playba
|
|
|
358
378
|
controlsComponentIdentity ===
|
|
359
379
|
'dev.remotion.transitions.TransitionSeries.Overlay';
|
|
360
380
|
const seriesContentVisible = (0, react_1.useContext)(SeriesContentVisibilityContext);
|
|
361
|
-
const effectRuntimeValues = (0, react_1.useMemo)(() => {
|
|
362
|
-
var _a;
|
|
363
|
-
return (_a = _remotionInternalEffects === null || _remotionInternalEffects === void 0 ? void 0 : _remotionInternalEffects.runtimeValues) !== null && _a !== void 0 ? _a : null;
|
|
364
|
-
}, [_remotionInternalEffects]);
|
|
381
|
+
const effectRuntimeValues = (0, react_1.useMemo)(() => { var _a; return (_a = _remotionInternalEffects === null || _remotionInternalEffects === void 0 ? void 0 : _remotionInternalEffects.runtimeValues) !== null && _a !== void 0 ? _a : null; }, [_remotionInternalEffects]);
|
|
365
382
|
const registrationControls = (0, react_1.useMemo)(() => {
|
|
366
383
|
if (controlsSchema === undefined ||
|
|
367
384
|
controlsRuntimeValues === undefined ||
|
|
@@ -390,7 +407,7 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, trimBefore = 0, playba
|
|
|
390
407
|
controlsSchema,
|
|
391
408
|
controlsSupportsEffects,
|
|
392
409
|
]);
|
|
393
|
-
const
|
|
410
|
+
const sequenceForRegistration = (0, react_1.useMemo)(() => {
|
|
394
411
|
var _a, _b, _c;
|
|
395
412
|
const trackRegistration = timelineTrack
|
|
396
413
|
? {
|
|
@@ -527,6 +544,7 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, trimBefore = 0, playba
|
|
|
527
544
|
frozenMediaFrame,
|
|
528
545
|
singleChildComponent,
|
|
529
546
|
]);
|
|
547
|
+
const getSequenceForRegistration = (0, react_1.useMemo)(() => getSequenceRegistration.bind(null, sequenceForRegistration), [sequenceForRegistration]);
|
|
530
548
|
const registration = (0, use_sequence_registration_js_1.useSequenceRegistration)({
|
|
531
549
|
getSequence: env.isStudio || sequenceRegistrationEnabled
|
|
532
550
|
? getSequenceForRegistration
|
|
@@ -569,8 +587,8 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, trimBefore = 0, playba
|
|
|
569
587
|
const content = (activityEnabled ? renderActivity : contentVisible)
|
|
570
588
|
? children
|
|
571
589
|
: null;
|
|
572
|
-
const frozenContent = content === null || typeof freeze === 'undefined' || freeze === null ? (content) : (jsx_runtime_1.jsx(freeze_js_1.Freeze, { frame: freeze, children: content }));
|
|
573
|
-
const loopedContent = frozenContent === null || loopContextValue === null ? (frozenContent) : (jsx_runtime_1.jsx(loop_context_js_1.LoopContext.Provider, { value: loopContextValue, children: frozenContent }));
|
|
590
|
+
const frozenContent = content === null || typeof freeze === 'undefined' || freeze === null ? (content) : ((0, jsx_runtime_1.jsx)(freeze_js_1.Freeze, { frame: freeze, children: content }));
|
|
591
|
+
const loopedContent = frozenContent === null || loopContextValue === null ? (frozenContent) : ((0, jsx_runtime_1.jsx)(loop_context_js_1.LoopContext.Provider, { value: loopContextValue, children: frozenContent }));
|
|
574
592
|
const styleIfThere = other.layout === 'none' ? undefined : other.style;
|
|
575
593
|
const cropClipPath = (0, sequence_crop_js_1.getSequenceCropClipPath)({
|
|
576
594
|
left: resolvedCropLeft,
|
|
@@ -579,15 +597,7 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, trimBefore = 0, playba
|
|
|
579
597
|
bottom: resolvedCropBottom,
|
|
580
598
|
style: styleIfThere,
|
|
581
599
|
});
|
|
582
|
-
const sequenceRef = (0, react_1.
|
|
583
|
-
wrapperRefForOutline.current = node;
|
|
584
|
-
if (typeof ref === 'function') {
|
|
585
|
-
ref(node);
|
|
586
|
-
}
|
|
587
|
-
else if (ref) {
|
|
588
|
-
ref.current = node;
|
|
589
|
-
}
|
|
590
|
-
}, [ref]);
|
|
600
|
+
const sequenceRef = (0, react_1.useMemo)(() => setSequenceWrapperRef.bind(null, ref, wrapperRefForOutline), [ref, wrapperRefForOutline]);
|
|
591
601
|
const defaultStyle = (0, react_1.useMemo)(() => {
|
|
592
602
|
return {
|
|
593
603
|
flexDirection: undefined,
|
|
@@ -613,17 +623,17 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, trimBefore = 0, playba
|
|
|
613
623
|
}
|
|
614
624
|
: null, [automaticOutlineRef, id, registration, shouldDiscoverOutline]);
|
|
615
625
|
if (hidden) {
|
|
616
|
-
return shouldDiscoverOutline || registration !== null ? (jsx_runtime_1.jsx(SequenceContextProvider, { value: contextValue, _remotionCommitMetadata: metadata, children: null })) : null;
|
|
626
|
+
return shouldDiscoverOutline || registration !== null ? ((0, jsx_runtime_1.jsx)(SequenceContextProvider, { value: contextValue, _remotionCommitMetadata: metadata, children: null })) : null;
|
|
617
627
|
}
|
|
618
628
|
// Retain resolved scene registrations so Studio can recover the natural end
|
|
619
629
|
// even when seeking past an explicit wrapper trim. Scene contents stay hidden.
|
|
620
630
|
const retainSeriesRegistration = env.isStudio && canInferDuration;
|
|
621
|
-
const contentForLayout = renderActivity ? (jsx_runtime_1.jsx(SequenceActivityBoundary_js_1.SequenceActivityContent, { dormant: activityDormant, children: loopedContent })) : (loopedContent);
|
|
622
|
-
const renderedContent = loopedContent === null ? (retainSeriesRegistration ? (children) : null) : other.layout === 'none' ? (contentForLayout) : (jsx_runtime_1.jsx(AbsoluteFillElement_js_1.AbsoluteFillElement, { ref: sequenceRef, style: defaultStyle, className: other.className, children: contentForLayout }));
|
|
623
|
-
const activityContent = renderActivity ? (jsx_runtime_1.jsx(SequenceActivityBoundary_js_1.SequenceActivityBoundary, { dormant: activityDormant, frame: firstFrame, children: renderedContent })) : (renderedContent);
|
|
624
|
-
const sequenceContent = (jsx_runtime_1.jsx(SequenceContextProvider, { value: contextValue, _remotionCommitMetadata: metadata, children: retainSeriesRegistration ? (jsx_runtime_1.jsx(SeriesContentVisibilityContext.Provider, { value: renderActivity || contentVisible, children: activityContent })) : (activityContent) }));
|
|
631
|
+
const contentForLayout = renderActivity ? ((0, jsx_runtime_1.jsx)(SequenceActivityBoundary_js_1.SequenceActivityContent, { dormant: activityDormant, children: loopedContent })) : (loopedContent);
|
|
632
|
+
const renderedContent = loopedContent === null ? (retainSeriesRegistration ? (children) : null) : other.layout === 'none' ? (contentForLayout) : ((0, jsx_runtime_1.jsx)(AbsoluteFillElement_js_1.AbsoluteFillElement, { ref: sequenceRef, style: defaultStyle, className: other.className, children: contentForLayout }));
|
|
633
|
+
const activityContent = renderActivity ? ((0, jsx_runtime_1.jsx)(SequenceActivityBoundary_js_1.SequenceActivityBoundary, { dormant: activityDormant, frame: firstFrame, children: renderedContent })) : (renderedContent);
|
|
634
|
+
const sequenceContent = ((0, jsx_runtime_1.jsx)(SequenceContextProvider, { value: contextValue, _remotionCommitMetadata: metadata, children: retainSeriesRegistration ? ((0, jsx_runtime_1.jsx)(SeriesContentVisibilityContext.Provider, { value: renderActivity || contentVisible, children: activityContent })) : (activityContent) }));
|
|
625
635
|
// Keep the provider mounted when track grouping changes so clip state survives.
|
|
626
|
-
const sequence = (jsx_runtime_1.jsx(timeline_track_context_js_1.TimelineTrackContext.Provider, { value: timelineTrackRole === 'track' ||
|
|
636
|
+
const sequence = ((0, jsx_runtime_1.jsx)(timeline_track_context_js_1.TimelineTrackContext.Provider, { value: timelineTrackRole === 'track' ||
|
|
627
637
|
(timelineTrackRole === 'clip' && !showInTimeline)
|
|
628
638
|
? timelineTrack
|
|
629
639
|
: null, children: sequenceContent }));
|
|
@@ -649,7 +659,7 @@ const PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {
|
|
|
649
659
|
styleWhilePostmounted: styleWhilePostmounted !== null && styleWhilePostmounted !== void 0 ? styleWhilePostmounted : null,
|
|
650
660
|
hideWhilePremounted: 'opacity',
|
|
651
661
|
});
|
|
652
|
-
return (jsx_runtime_1.jsx(freeze_js_1.Freeze, { frame: freezeFrame, active: isPremountingOrPostmounting, _remotionInternalIsPremounting: premountingActive, children: jsx_runtime_1.jsx(RegularSequence, { ref: ref, from: from, durationInFrames: durationInFrames, style: premountingStyle !== null && premountingStyle !== void 0 ? premountingStyle : undefined, _remotionInternalPremountDisplay: premountFor, _remotionInternalPostmountDisplay: postmountFor, _remotionInternalIsPremounting: premountingActive, _remotionInternalIsPostmounting: postmountingActive, ...otherProps }) }));
|
|
662
|
+
return ((0, jsx_runtime_1.jsx)(freeze_js_1.Freeze, { frame: freezeFrame, active: isPremountingOrPostmounting, _remotionInternalIsPremounting: premountingActive, children: (0, jsx_runtime_1.jsx)(RegularSequence, { ref: ref, from: from, durationInFrames: durationInFrames, style: premountingStyle !== null && premountingStyle !== void 0 ? premountingStyle : undefined, _remotionInternalPremountDisplay: premountFor, _remotionInternalPostmountDisplay: postmountFor, _remotionInternalIsPremounting: premountingActive, _remotionInternalIsPostmounting: postmountingActive, ...otherProps }) }));
|
|
653
663
|
};
|
|
654
664
|
const PremountedPostmountedSequence = (0, react_1.forwardRef)(PremountedPostmountedSequenceRefForwardingFunction);
|
|
655
665
|
const SequenceRefForwardingFunction = (props, ref) => {
|
|
@@ -660,10 +670,10 @@ const SequenceRefForwardingFunction = (props, ref) => {
|
|
|
660
670
|
if (props.layout !== 'none' && !env.isRendering) {
|
|
661
671
|
const effectivePremountFor = (_a = props.premountFor) !== null && _a !== void 0 ? _a : Math.round(defaultPremountInSeconds * fps);
|
|
662
672
|
if (effectivePremountFor || props.postmountFor) {
|
|
663
|
-
return (jsx_runtime_1.jsx(PremountedPostmountedSequence, { ref: ref, ...props, premountFor: effectivePremountFor }));
|
|
673
|
+
return ((0, jsx_runtime_1.jsx)(PremountedPostmountedSequence, { ref: ref, ...props, premountFor: effectivePremountFor }));
|
|
664
674
|
}
|
|
665
675
|
}
|
|
666
|
-
return jsx_runtime_1.jsx(RegularSequence, { ...props, ref: ref });
|
|
676
|
+
return (0, jsx_runtime_1.jsx)(RegularSequence, { ...props, ref: ref });
|
|
667
677
|
};
|
|
668
678
|
const SequenceInner = (0, react_1.forwardRef)(SequenceRefForwardingFunction);
|
|
669
679
|
exports.SequenceWithoutSchema = SequenceInner;
|
|
@@ -96,6 +96,6 @@ const SequenceActivityBoundary = ({ children, dormant, frame }) => {
|
|
|
96
96
|
// Keep the providers and Activity at the same position when activating a
|
|
97
97
|
// scene. Unlike Freeze, discovery does not reset SequenceContext origins or
|
|
98
98
|
// disable Series duration inference.
|
|
99
|
-
return (jsx_runtime_1.jsx(sequence_activity_context_js_1.SequenceActivityDormantContext.Provider, { value: dormant, children: jsx_runtime_1.jsx(sequence_activity_context_js_1.SequenceActivityTimelineContext.Provider, { value: dormant ? dormantTimeline : null, children: jsx_runtime_1.jsx(sequence_activity_context_js_1.SequenceActivityAbsoluteTimeContext.Provider, { value: dormant ? dormantTimeline : null, children: jsx_runtime_1.jsx(TimelineContext_js_1.TimelineContext.Provider, { value: dormant ? dormantTimeline : timeline, children: jsx_runtime_1.jsx(TimelineContext_js_1.AbsoluteTimeContext.Provider, { value: dormant ? dormantTimeline : absoluteTime, children: jsx_runtime_1.jsx(react_1.default.Activity, { mode: dormant && !parentDormant ? 'hidden' : 'visible', children: jsx_runtime_1.jsx(SuspendSequenceActivity, { dormant: dormant, children: children }) }) }) }) }) }) }));
|
|
99
|
+
return ((0, jsx_runtime_1.jsx)(sequence_activity_context_js_1.SequenceActivityDormantContext.Provider, { value: dormant, children: (0, jsx_runtime_1.jsx)(sequence_activity_context_js_1.SequenceActivityTimelineContext.Provider, { value: dormant ? dormantTimeline : null, children: (0, jsx_runtime_1.jsx)(sequence_activity_context_js_1.SequenceActivityAbsoluteTimeContext.Provider, { value: dormant ? dormantTimeline : null, children: (0, jsx_runtime_1.jsx)(TimelineContext_js_1.TimelineContext.Provider, { value: dormant ? dormantTimeline : timeline, children: (0, jsx_runtime_1.jsx)(TimelineContext_js_1.AbsoluteTimeContext.Provider, { value: dormant ? dormantTimeline : absoluteTime, children: (0, jsx_runtime_1.jsx)(react_1.default.Activity, { mode: dormant && !parentDormant ? 'hidden' : 'visible', children: (0, jsx_runtime_1.jsx)(SuspendSequenceActivity, { dormant: dormant, children: children }) }) }) }) }) }) }));
|
|
100
100
|
};
|
|
101
101
|
exports.SequenceActivityBoundary = SequenceActivityBoundary;
|
|
@@ -165,7 +165,7 @@ const SequenceActivityBudgetProvider = ({ children }) => {
|
|
|
165
165
|
budget.setFrame(timeline.frame);
|
|
166
166
|
}
|
|
167
167
|
}, [admitting, budget, limit, suspended, timeline]);
|
|
168
|
-
return (jsx_runtime_1.jsx(ActivityBudgetContext.Provider, { value: admitting ? budget : null, children: jsx_runtime_1.jsx(ActivitySelectionContext.Provider, { value: admitted, children: children }) }));
|
|
168
|
+
return ((0, jsx_runtime_1.jsx)(ActivityBudgetContext.Provider, { value: admitting ? budget : null, children: (0, jsx_runtime_1.jsx)(ActivitySelectionContext.Provider, { value: admitted, children: children }) }));
|
|
169
169
|
};
|
|
170
170
|
exports.SequenceActivityBudgetProvider = SequenceActivityBudgetProvider;
|
|
171
171
|
const useSequenceActivityAdmission = (candidate) => {
|
|
@@ -40,6 +40,6 @@ const SequenceActivitySuspensionProvider = ({ children }) => {
|
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
}, [enabled, isPlaying, seek, subscribePlaying]);
|
|
43
|
-
return (jsx_runtime_1.jsx(sequence_activity_context_js_1.SequenceActivitySuspensionContext.Provider, { value: suspended, children: children }));
|
|
43
|
+
return ((0, jsx_runtime_1.jsx)(sequence_activity_context_js_1.SequenceActivitySuspensionContext.Provider, { value: suspended, children: children }));
|
|
44
44
|
};
|
|
45
45
|
exports.SequenceActivitySuspensionProvider = SequenceActivitySuspensionProvider;
|
|
@@ -81,9 +81,15 @@ export type CanUpdateSequencePropsResponse<Numeric = SourceNumericValue> = CanUp
|
|
|
81
81
|
export declare const makeSequencePropsSubscriptionKey: (key: SequencePropsSubscriptionKey) => string;
|
|
82
82
|
export declare const VisualModePropStatusesContext: React.Context<VisualModePropStatuses>;
|
|
83
83
|
export declare const VisualModePropStatusesRefContext: React.Context<VisualModePropStatusesRef>;
|
|
84
|
+
export type VisualModePropStatusesSubscription = {
|
|
85
|
+
subscribe: (key: string | null, listener: () => void) => () => void;
|
|
86
|
+
getSnapshot: (key: string | null) => CanUpdateSequencePropsResponse | null;
|
|
87
|
+
};
|
|
88
|
+
export declare const VisualModePropStatusesSubscriptionContext: React.Context<VisualModePropStatusesSubscription>;
|
|
84
89
|
export declare const VisualModeDragOverridesContext: React.Context<VisualModeDragOverrides>;
|
|
85
90
|
export declare const VisualModeDragOverridesRefContext: React.Context<React.RefObject<VisualModeDragOverrides>>;
|
|
86
91
|
export declare const useDragOverridesForNodePath: (nodePath: SequencePropsSubscriptionKey | null) => Record<string, DragOverrideValue>;
|
|
92
|
+
export declare const usePropStatusForNodePath: (nodePath: SequencePropsSubscriptionKey | null) => CanUpdateSequencePropsResponse | null;
|
|
87
93
|
export declare const useActiveFromDragOverrideKeys: () => ReadonlySet<string>;
|
|
88
94
|
export declare const useEffectDragOverridesForNodePath: (nodePath: SequencePropsSubscriptionKey | null) => Record<string, Record<string, DragOverrideValue>>;
|
|
89
95
|
export declare const VisualModeSettersContext: React.Context<VisualModeSetters>;
|
|
@@ -37,7 +37,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
37
37
|
};
|
|
38
38
|
var _a;
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.SequenceManagerProvider = exports.VisualModeBatchSettersContext = exports.VisualModeSettersContext = exports.useEffectDragOverridesForNodePath = exports.useActiveFromDragOverrideKeys = exports.useDragOverridesForNodePath = exports.VisualModeDragOverridesRefContext = exports.VisualModeDragOverridesContext = exports.VisualModePropStatusesRefContext = exports.VisualModePropStatusesContext = exports.makeSequencePropsSubscriptionKey = exports.VisualModeDragOverridesSubscriptionContext = void 0;
|
|
40
|
+
exports.SequenceManagerProvider = exports.VisualModeBatchSettersContext = exports.VisualModeSettersContext = exports.useEffectDragOverridesForNodePath = exports.useActiveFromDragOverrideKeys = exports.usePropStatusForNodePath = exports.useDragOverridesForNodePath = exports.VisualModeDragOverridesRefContext = exports.VisualModeDragOverridesContext = exports.VisualModePropStatusesSubscriptionContext = exports.VisualModePropStatusesRefContext = exports.VisualModePropStatusesContext = exports.makeSequencePropsSubscriptionKey = exports.VisualModeDragOverridesSubscriptionContext = void 0;
|
|
41
41
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
42
42
|
const react_1 = __importStar(require("react"));
|
|
43
43
|
__exportStar(require("./sequence-registry-context.js"), exports);
|
|
@@ -60,10 +60,10 @@ const SequenceManagerScopeProviders = ({ children, dragOverridesSubscription, fr
|
|
|
60
60
|
const manager = (0, react_1.useContext)(sequence_registry_context_js_1.SequenceManagerActionsContext);
|
|
61
61
|
const scopedDragOverridesSubscription = (0, react_1.useMemo)(() => ({ ...dragOverridesSubscription, manager }), [dragOverridesSubscription, manager]);
|
|
62
62
|
const activeFromDragOverrideKeys = (0, react_1.useMemo)(() => ({ manager, keys: fromKeys }), [fromKeys, manager]);
|
|
63
|
-
return (jsx_runtime_1.jsx(ActiveFromDragOverrideKeysContext.Provider, { value: activeFromDragOverrideKeys, children: jsx_runtime_1.jsx(exports.VisualModeDragOverridesSubscriptionContext.Provider, { value: scopedDragOverridesSubscription, children: jsx_runtime_1.jsx(sequence_activity_context_js_1.SequenceActivityContext.Provider, { value: ((_a = activitySettings === null || activitySettings === void 0 ? void 0 : activitySettings.limit) !== null && _a !== void 0 ? _a : sequence_activity_context_js_1.DEFAULT_SEQUENCE_ACTIVITY_LIMIT) > 0 &&
|
|
63
|
+
return ((0, jsx_runtime_1.jsx)(ActiveFromDragOverrideKeysContext.Provider, { value: activeFromDragOverrideKeys, children: (0, jsx_runtime_1.jsx)(exports.VisualModeDragOverridesSubscriptionContext.Provider, { value: scopedDragOverridesSubscription, children: (0, jsx_runtime_1.jsx)(sequence_activity_context_js_1.SequenceActivityContext.Provider, { value: ((_a = activitySettings === null || activitySettings === void 0 ? void 0 : activitySettings.limit) !== null && _a !== void 0 ? _a : sequence_activity_context_js_1.DEFAULT_SEQUENCE_ACTIVITY_LIMIT) > 0 &&
|
|
64
64
|
isStudio &&
|
|
65
65
|
commitRegistrationEnabled &&
|
|
66
|
-
typeof react_1.default.Activity !== 'undefined', children: jsx_runtime_1.jsx(SequenceActivitySuspensionProvider_js_1.SequenceActivitySuspensionProvider, { children: jsx_runtime_1.jsx(SequenceActivityBudget_js_1.SequenceActivityBudgetProvider, { children: children }) }) }) }) }));
|
|
66
|
+
typeof react_1.default.Activity !== 'undefined', children: (0, jsx_runtime_1.jsx)(SequenceActivitySuspensionProvider_js_1.SequenceActivitySuspensionProvider, { children: (0, jsx_runtime_1.jsx)(SequenceActivityBudget_js_1.SequenceActivityBudgetProvider, { children: children }) }) }) }) }));
|
|
67
67
|
};
|
|
68
68
|
const emptyDragOverrides = {};
|
|
69
69
|
const emptyFromOverrideKeys = new Set();
|
|
@@ -78,6 +78,10 @@ exports.VisualModePropStatusesContext = react_1.default.createContext({
|
|
|
78
78
|
exports.VisualModePropStatusesRefContext = react_1.default.createContext({
|
|
79
79
|
current: {},
|
|
80
80
|
});
|
|
81
|
+
exports.VisualModePropStatusesSubscriptionContext = react_1.default.createContext({
|
|
82
|
+
subscribe: () => () => undefined,
|
|
83
|
+
getSnapshot: () => null,
|
|
84
|
+
});
|
|
81
85
|
const defaultVisualModeDragOverrides = {
|
|
82
86
|
getDragOverrides: () => {
|
|
83
87
|
throw new Error('VisualModeDragOverridesContext not initialized');
|
|
@@ -88,7 +92,7 @@ const defaultVisualModeDragOverrides = {
|
|
|
88
92
|
};
|
|
89
93
|
exports.VisualModeDragOverridesContext = react_1.default.createContext(defaultVisualModeDragOverrides);
|
|
90
94
|
exports.VisualModeDragOverridesRefContext = react_1.default.createContext({ current: defaultVisualModeDragOverrides });
|
|
91
|
-
const
|
|
95
|
+
const useVisualModeSnapshot = (subscribe, getSnapshot) => {
|
|
92
96
|
const dormant = (0, react_1.useContext)(sequence_activity_context_js_1.SequenceActivityDormantContext);
|
|
93
97
|
const [, forceUpdate] = (0, react_1.useState)(0);
|
|
94
98
|
const snapshot = (0, use_sync_external_store_js_1.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
|
|
@@ -107,17 +111,21 @@ const useDragOverridesForNodePath = (nodePath) => {
|
|
|
107
111
|
const manager = (0, react_1.useContext)(sequence_registry_context_js_1.SequenceManagerActionsContext);
|
|
108
112
|
const scopedSubscription = (subscription === null || subscription === void 0 ? void 0 : subscription.manager) === manager ? subscription : null;
|
|
109
113
|
const key = nodePath === null ? null : (0, exports.makeSequencePropsSubscriptionKey)(nodePath);
|
|
110
|
-
const subscribe = (0, react_1.useCallback)((listener) => {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}, [key, scopedSubscription]);
|
|
114
|
-
const getSnapshot = (0, react_1.useCallback)(() => {
|
|
115
|
-
var _a;
|
|
116
|
-
return (_a = scopedSubscription === null || scopedSubscription === void 0 ? void 0 : scopedSubscription.getSnapshot(key)) !== null && _a !== void 0 ? _a : emptyDragOverrides;
|
|
117
|
-
}, [key, scopedSubscription]);
|
|
118
|
-
return useDragOverrideSnapshot(subscribe, getSnapshot);
|
|
114
|
+
const subscribe = (0, react_1.useCallback)((listener) => { var _a; return (_a = scopedSubscription === null || scopedSubscription === void 0 ? void 0 : scopedSubscription.subscribe(key, listener)) !== null && _a !== void 0 ? _a : (() => undefined); }, [key, scopedSubscription]);
|
|
115
|
+
const getSnapshot = (0, react_1.useCallback)(() => { var _a; return (_a = scopedSubscription === null || scopedSubscription === void 0 ? void 0 : scopedSubscription.getSnapshot(key)) !== null && _a !== void 0 ? _a : emptyDragOverrides; }, [key, scopedSubscription]);
|
|
116
|
+
return useVisualModeSnapshot(subscribe, getSnapshot);
|
|
119
117
|
};
|
|
120
118
|
exports.useDragOverridesForNodePath = useDragOverridesForNodePath;
|
|
119
|
+
// Every visual element reads its own status. Subscribing to the whole map would
|
|
120
|
+
// rerender all of them whenever any status in the project changes.
|
|
121
|
+
const usePropStatusForNodePath = (nodePath) => {
|
|
122
|
+
const subscription = (0, react_1.useContext)(exports.VisualModePropStatusesSubscriptionContext);
|
|
123
|
+
const key = nodePath === null ? null : (0, exports.makeSequencePropsSubscriptionKey)(nodePath);
|
|
124
|
+
const subscribe = (0, react_1.useCallback)((listener) => subscription.subscribe(key, listener), [key, subscription]);
|
|
125
|
+
const getSnapshot = (0, react_1.useCallback)(() => subscription.getSnapshot(key), [key, subscription]);
|
|
126
|
+
return useVisualModeSnapshot(subscribe, getSnapshot);
|
|
127
|
+
};
|
|
128
|
+
exports.usePropStatusForNodePath = usePropStatusForNodePath;
|
|
121
129
|
const useActiveFromDragOverrideKeys = () => {
|
|
122
130
|
const snapshot = (0, react_1.useContext)(ActiveFromDragOverrideKeysContext);
|
|
123
131
|
const manager = (0, react_1.useContext)(sequence_registry_context_js_1.SequenceManagerActionsContext);
|
|
@@ -129,15 +137,9 @@ const useEffectDragOverridesForNodePath = (nodePath) => {
|
|
|
129
137
|
const manager = (0, react_1.useContext)(sequence_registry_context_js_1.SequenceManagerActionsContext);
|
|
130
138
|
const scopedSubscription = (subscription === null || subscription === void 0 ? void 0 : subscription.manager) === manager ? subscription : null;
|
|
131
139
|
const key = nodePath === null ? null : (0, exports.makeSequencePropsSubscriptionKey)(nodePath);
|
|
132
|
-
const subscribe = (0, react_1.useCallback)((listener) => {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}, [key, scopedSubscription]);
|
|
136
|
-
const getSnapshot = (0, react_1.useCallback)(() => {
|
|
137
|
-
var _a;
|
|
138
|
-
return (_a = scopedSubscription === null || scopedSubscription === void 0 ? void 0 : scopedSubscription.getEffectSnapshot(key)) !== null && _a !== void 0 ? _a : emptyEffectDragOverrides;
|
|
139
|
-
}, [key, scopedSubscription]);
|
|
140
|
-
return useDragOverrideSnapshot(subscribe, getSnapshot);
|
|
140
|
+
const subscribe = (0, react_1.useCallback)((listener) => { var _a; return (_a = scopedSubscription === null || scopedSubscription === void 0 ? void 0 : scopedSubscription.subscribeEffects(key, listener)) !== null && _a !== void 0 ? _a : (() => undefined); }, [key, scopedSubscription]);
|
|
141
|
+
const getSnapshot = (0, react_1.useCallback)(() => { var _a; return (_a = scopedSubscription === null || scopedSubscription === void 0 ? void 0 : scopedSubscription.getEffectSnapshot(key)) !== null && _a !== void 0 ? _a : emptyEffectDragOverrides; }, [key, scopedSubscription]);
|
|
142
|
+
return useVisualModeSnapshot(subscribe, getSnapshot);
|
|
141
143
|
};
|
|
142
144
|
exports.useEffectDragOverridesForNodePath = useEffectDragOverridesForNodePath;
|
|
143
145
|
exports.VisualModeSettersContext = react_1.default.createContext({
|
|
@@ -180,8 +182,21 @@ const SequenceManagerProvider = ({ children }) => {
|
|
|
180
182
|
});
|
|
181
183
|
const [propStatuses, setPropStatusesMapState] = (0, react_1.useState)({});
|
|
182
184
|
const propStatusesRef = (0, react_1.useRef)(propStatuses);
|
|
185
|
+
// Elements read their own status from the latest requested map, so one that
|
|
186
|
+
// rerenders together with a status update never renders the previous status.
|
|
187
|
+
// The layout effect wakes up the elements that did not rerender.
|
|
188
|
+
const requestedPropStatusesRef = (0, react_1.useRef)(propStatuses);
|
|
189
|
+
const propStatusListeners = (0, react_1.useRef)(new Map());
|
|
183
190
|
useIsomorphicLayoutEffect(() => {
|
|
191
|
+
const previous = propStatusesRef.current;
|
|
184
192
|
propStatusesRef.current = propStatuses;
|
|
193
|
+
for (const [key, listeners] of propStatusListeners.current) {
|
|
194
|
+
if (previous[key] !== propStatuses[key]) {
|
|
195
|
+
for (const listener of listeners) {
|
|
196
|
+
listener();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
185
200
|
}, [propStatuses]);
|
|
186
201
|
const setDragOverridesBatch = (0, react_1.useCallback)((overrides) => {
|
|
187
202
|
setDragOverrideState((prevState) => {
|
|
@@ -372,8 +387,17 @@ const SequenceManagerProvider = ({ children }) => {
|
|
|
372
387
|
return next;
|
|
373
388
|
});
|
|
374
389
|
}, []);
|
|
390
|
+
const updatePropStatuses = (0, react_1.useCallback)((update) => {
|
|
391
|
+
const previous = requestedPropStatusesRef.current;
|
|
392
|
+
const next = update(previous);
|
|
393
|
+
if (next === previous) {
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
396
|
+
requestedPropStatusesRef.current = next;
|
|
397
|
+
setPropStatusesMapState(next);
|
|
398
|
+
}, []);
|
|
375
399
|
const setPropStatuses = (0, react_1.useCallback)((nodePath, values) => {
|
|
376
|
-
|
|
400
|
+
updatePropStatuses((prev) => {
|
|
377
401
|
const key = (0, exports.makeSequencePropsSubscriptionKey)(nodePath);
|
|
378
402
|
const prevKey = prev[key];
|
|
379
403
|
const newKey = values(prevKey);
|
|
@@ -382,9 +406,9 @@ const SequenceManagerProvider = ({ children }) => {
|
|
|
382
406
|
}
|
|
383
407
|
return { ...prev, [key]: newKey };
|
|
384
408
|
});
|
|
385
|
-
}, []);
|
|
409
|
+
}, [updatePropStatuses]);
|
|
386
410
|
const remapPropStatuses = (0, react_1.useCallback)((remappings) => {
|
|
387
|
-
|
|
411
|
+
updatePropStatuses((prev) => {
|
|
388
412
|
const next = { ...prev };
|
|
389
413
|
for (const remapping of remappings) {
|
|
390
414
|
delete next[(0, exports.makeSequencePropsSubscriptionKey)(remapping.previousNodePath)];
|
|
@@ -397,7 +421,7 @@ const SequenceManagerProvider = ({ children }) => {
|
|
|
397
421
|
}
|
|
398
422
|
return next;
|
|
399
423
|
});
|
|
400
|
-
}, []);
|
|
424
|
+
}, [updatePropStatuses]);
|
|
401
425
|
const dragOverridesSubscription = (0, react_1.useMemo)(() => ({
|
|
402
426
|
subscribe: subscribeDragOverrides,
|
|
403
427
|
getSnapshot: getDragOverridesSnapshot,
|
|
@@ -422,6 +446,26 @@ const SequenceManagerProvider = ({ children }) => {
|
|
|
422
446
|
propStatuses,
|
|
423
447
|
};
|
|
424
448
|
}, [propStatuses]);
|
|
449
|
+
const propStatusesSubscription = (0, react_1.useMemo)(() => ({
|
|
450
|
+
subscribe: (key, listener) => {
|
|
451
|
+
if (key === null) {
|
|
452
|
+
return () => undefined;
|
|
453
|
+
}
|
|
454
|
+
let listeners = propStatusListeners.current.get(key);
|
|
455
|
+
if (!listeners) {
|
|
456
|
+
listeners = new Set();
|
|
457
|
+
propStatusListeners.current.set(key, listeners);
|
|
458
|
+
}
|
|
459
|
+
listeners.add(listener);
|
|
460
|
+
return () => {
|
|
461
|
+
listeners.delete(listener);
|
|
462
|
+
if (listeners.size === 0) {
|
|
463
|
+
propStatusListeners.current.delete(key);
|
|
464
|
+
}
|
|
465
|
+
};
|
|
466
|
+
},
|
|
467
|
+
getSnapshot: (key) => { var _a; return key === null ? null : ((_a = requestedPropStatusesRef.current[key]) !== null && _a !== void 0 ? _a : null); },
|
|
468
|
+
}), []);
|
|
425
469
|
const dragOverridesContext = (0, react_1.useMemo)(() => {
|
|
426
470
|
return {
|
|
427
471
|
getDragOverrides,
|
|
@@ -451,6 +495,6 @@ const SequenceManagerProvider = ({ children }) => {
|
|
|
451
495
|
remapPropStatuses,
|
|
452
496
|
]);
|
|
453
497
|
const batchSettersContext = (0, react_1.useMemo)(() => ({ setDragOverridesBatch, setEffectDragOverridesBatch }), [setDragOverridesBatch, setEffectDragOverridesBatch]);
|
|
454
|
-
return (jsx_runtime_1.jsx(SequenceRegistryProvider_js_1.SequenceRegistryProvider, { children: jsx_runtime_1.jsx(exports.VisualModePropStatusesRefContext.Provider, { value: propStatusesRef, children: jsx_runtime_1.jsx(exports.VisualModePropStatusesContext.Provider, { value: propStatusesContext, children: jsx_runtime_1.jsx(SequenceManagerScopeProviders, { dragOverridesSubscription: dragOverridesSubscription, fromKeys: dragOverrideState.fromKeys, children: jsx_runtime_1.jsx(exports.VisualModeDragOverridesContext.Provider, { value: dragOverridesContext, children: jsx_runtime_1.jsx(exports.VisualModeDragOverridesRefContext.Provider, { value: dragOverridesRef, children: jsx_runtime_1.jsx(exports.VisualModeSettersContext.Provider, { value: settersContext, children: jsx_runtime_1.jsx(exports.VisualModeBatchSettersContext.Provider, { value: batchSettersContext, children: children }) }) }) }) }) }) }) }));
|
|
498
|
+
return ((0, jsx_runtime_1.jsx)(SequenceRegistryProvider_js_1.SequenceRegistryProvider, { children: (0, jsx_runtime_1.jsx)(exports.VisualModePropStatusesRefContext.Provider, { value: propStatusesRef, children: (0, jsx_runtime_1.jsx)(exports.VisualModePropStatusesSubscriptionContext.Provider, { value: propStatusesSubscription, children: (0, jsx_runtime_1.jsx)(exports.VisualModePropStatusesContext.Provider, { value: propStatusesContext, children: (0, jsx_runtime_1.jsx)(SequenceManagerScopeProviders, { dragOverridesSubscription: dragOverridesSubscription, fromKeys: dragOverrideState.fromKeys, children: (0, jsx_runtime_1.jsx)(exports.VisualModeDragOverridesContext.Provider, { value: dragOverridesContext, children: (0, jsx_runtime_1.jsx)(exports.VisualModeDragOverridesRefContext.Provider, { value: dragOverridesRef, children: (0, jsx_runtime_1.jsx)(exports.VisualModeSettersContext.Provider, { value: settersContext, children: (0, jsx_runtime_1.jsx)(exports.VisualModeBatchSettersContext.Provider, { value: batchSettersContext, children: children }) }) }) }) }) }) }) }) }));
|
|
455
499
|
};
|
|
456
500
|
exports.SequenceManagerProvider = SequenceManagerProvider;
|
|
@@ -37,6 +37,8 @@ exports.SequenceRegistryProvider = void 0;
|
|
|
37
37
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
38
|
const react_1 = __importStar(require("react"));
|
|
39
39
|
const committed_metadata_js_1 = require("./committed-metadata.js");
|
|
40
|
+
const log_level_context_js_1 = require("./log-level-context.js");
|
|
41
|
+
const log_js_1 = require("./log.js");
|
|
40
42
|
const registry_store_js_1 = require("./registry-store.js");
|
|
41
43
|
const sequence_registry_context_js_1 = require("./sequence-registry-context.js");
|
|
42
44
|
const use_remotion_environment_js_1 = require("./use-remotion-environment.js");
|
|
@@ -44,6 +46,7 @@ const useIsomorphicLayoutEffect = typeof window === 'undefined' ? react_1.defaul
|
|
|
44
46
|
const SequenceManagerRefProvider = (0, committed_metadata_js_1.withCommittedMetadata)(sequence_registry_context_js_1.SequenceManagerRefContext.Provider);
|
|
45
47
|
const SequenceRegistryProvider = ({ children }) => {
|
|
46
48
|
const { isStudio } = (0, use_remotion_environment_js_1.useRemotionEnvironment)();
|
|
49
|
+
const logLevel = (0, log_level_context_js_1.useLogLevel)();
|
|
47
50
|
const sequenceRegistrationEnabled = (0, react_1.useContext)(sequence_registry_context_js_1.SequenceRegistrationContext);
|
|
48
51
|
const shouldObserveCommits = isStudio || sequenceRegistrationEnabled;
|
|
49
52
|
const [sequenceManagerId] = (0, react_1.useState)(() => String(Math.random()));
|
|
@@ -116,6 +119,13 @@ const SequenceRegistryProvider = ({ children }) => {
|
|
|
116
119
|
committedOrderIdsRef.current = ids;
|
|
117
120
|
committedOrderRef.current = order;
|
|
118
121
|
committedRegistrationIdsRef.current = nextIds;
|
|
122
|
+
if (isStudio && logLevel === 'trace') {
|
|
123
|
+
for (const sequence of sequences) {
|
|
124
|
+
if (!previousIds.has(sequence.id)) {
|
|
125
|
+
log_js_1.Log.trace({ logLevel, tag: null }, `[Sequence registration] Registered "${sequence.displayName}" (${sequence.id}) after commit`, sequence);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
119
129
|
setSequences((current) => (0, registry_store_js_1.reconcileRegistryEntries)({
|
|
120
130
|
current,
|
|
121
131
|
entries: sequences,
|
|
@@ -127,7 +137,7 @@ const SequenceRegistryProvider = ({ children }) => {
|
|
|
127
137
|
orderProperty: 'timelineOrder',
|
|
128
138
|
}));
|
|
129
139
|
});
|
|
130
|
-
}, [sequenceManagerId, setSequences]);
|
|
140
|
+
}, [isStudio, logLevel, sequenceManagerId, setSequences]);
|
|
131
141
|
const onCommitRootSequences = (0, react_1.useCallback)((sequences, sequenceIds) => {
|
|
132
142
|
if (!rootObservationFailedRef.current) {
|
|
133
143
|
observedCommitRef.current = true;
|
|
@@ -233,6 +243,9 @@ const SequenceRegistryProvider = ({ children }) => {
|
|
|
233
243
|
onCommitSequences,
|
|
234
244
|
]);
|
|
235
245
|
const registerSequence = (0, react_1.useCallback)((seq) => {
|
|
246
|
+
if (isStudio) {
|
|
247
|
+
log_js_1.Log.trace({ logLevel, tag: null }, `[Sequence registration] Registered "${seq.displayName}" (${seq.id}) after commit`, seq);
|
|
248
|
+
}
|
|
236
249
|
setSequences((seqs) => {
|
|
237
250
|
var _a;
|
|
238
251
|
var _b;
|
|
@@ -244,7 +257,7 @@ const SequenceRegistryProvider = ({ children }) => {
|
|
|
244
257
|
},
|
|
245
258
|
];
|
|
246
259
|
});
|
|
247
|
-
}, [setSequences]);
|
|
260
|
+
}, [isStudio, logLevel, setSequences]);
|
|
248
261
|
const updateSequence = (0, react_1.useCallback)((seq) => {
|
|
249
262
|
setSequences((seqs) => {
|
|
250
263
|
var _a;
|
|
@@ -287,6 +300,6 @@ const SequenceRegistryProvider = ({ children }) => {
|
|
|
287
300
|
sequenceManagerId,
|
|
288
301
|
shouldObserveCommits,
|
|
289
302
|
]);
|
|
290
|
-
return (jsx_runtime_1.jsx(SequenceManagerRefProvider, { value: sequencesRef, _remotionCommitMetadata: metadata, children: jsx_runtime_1.jsx(sequence_registry_context_js_1.SequenceRegistryScopeContext.Provider, { value: registryScope, children: jsx_runtime_1.jsx(sequence_registry_context_js_1.SequenceManagerActionsContext.Provider, { value: actions, children: jsx_runtime_1.jsx(sequence_registry_context_js_1.SequenceRegistryContext.Provider, { value: registry, children: jsx_runtime_1.jsx(sequence_registry_context_js_1.SequenceCommitRegistrationContext.Provider, { value: commitRegistrationEnabled, children: children }) }) }) }) }));
|
|
303
|
+
return ((0, jsx_runtime_1.jsx)(SequenceManagerRefProvider, { value: sequencesRef, _remotionCommitMetadata: metadata, children: (0, jsx_runtime_1.jsx)(sequence_registry_context_js_1.SequenceRegistryScopeContext.Provider, { value: registryScope, children: (0, jsx_runtime_1.jsx)(sequence_registry_context_js_1.SequenceManagerActionsContext.Provider, { value: actions, children: (0, jsx_runtime_1.jsx)(sequence_registry_context_js_1.SequenceRegistryContext.Provider, { value: registry, children: (0, jsx_runtime_1.jsx)(sequence_registry_context_js_1.SequenceCommitRegistrationContext.Provider, { value: commitRegistrationEnabled, children: children }) }) }) }) }));
|
|
291
304
|
};
|
|
292
305
|
exports.SequenceRegistryProvider = SequenceRegistryProvider;
|
|
@@ -110,6 +110,6 @@ const TimelineContextProvider = ({ children, frameState }) => {
|
|
|
110
110
|
audioAndVideoTags,
|
|
111
111
|
};
|
|
112
112
|
}, [bufferingStore, playingStore, readIsBuffering, readIsPlaying, seek]);
|
|
113
|
-
return (jsx_runtime_1.jsx(exports.AbsoluteTimeContext.Provider, { value: timelineContextValue, children: jsx_runtime_1.jsx(exports.PlaybackRateContext.Provider, { value: playbackRateContextValue, children: jsx_runtime_1.jsx(exports.TimelineContext.Provider, { value: timelineContextValue, children: jsx_runtime_1.jsx(exports.SetTimelineContext.Provider, { value: setTimelineContextValue, children: children }) }) }) }));
|
|
113
|
+
return ((0, jsx_runtime_1.jsx)(exports.AbsoluteTimeContext.Provider, { value: timelineContextValue, children: (0, jsx_runtime_1.jsx)(exports.PlaybackRateContext.Provider, { value: playbackRateContextValue, children: (0, jsx_runtime_1.jsx)(exports.TimelineContext.Provider, { value: timelineContextValue, children: (0, jsx_runtime_1.jsx)(exports.SetTimelineContext.Provider, { value: setTimelineContextValue, children: children }) }) }) }));
|
|
114
114
|
};
|
|
115
115
|
exports.TimelineContextProvider = TimelineContextProvider;
|
package/dist/cjs/Track.js
CHANGED
|
@@ -18,12 +18,12 @@ const trackSchema = {
|
|
|
18
18
|
const TrackWithoutSchema = ({ name = 'Track', children, layout = 'none', ...props }) => {
|
|
19
19
|
const [id] = (0, react_1.useState)(() => String(Math.random()));
|
|
20
20
|
const value = (0, react_1.useMemo)(() => ({ id, name }), [id, name]);
|
|
21
|
-
return (jsx_runtime_1.jsx(timeline_track_context_js_1.TimelineTrackContext.Provider, { value: value, children: jsx_runtime_1.jsx(Sequence_js_1.SequenceWithoutSchema, { _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/track", ...props, name: name, layout: layout, _remotionInternalTimelineTrack: { role: 'track', seriesOffset: null }, children: children }) }));
|
|
21
|
+
return ((0, jsx_runtime_1.jsx)(timeline_track_context_js_1.TimelineTrackContext.Provider, { value: value, children: (0, jsx_runtime_1.jsx)(Sequence_js_1.SequenceWithoutSchema, { _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/track", ...props, name: name, layout: layout, _remotionInternalTimelineTrack: { role: 'track', seriesOffset: null }, children: children }) }));
|
|
22
22
|
};
|
|
23
23
|
exports.TrackWithoutSchema = TrackWithoutSchema;
|
|
24
24
|
/** Groups clips on one Studio timeline row and applies Sequence timing. */
|
|
25
25
|
exports.Track = (0, with_interactivity_schema_js_1.withInteractivitySchema)({
|
|
26
|
-
Component: (props) => jsx_runtime_1.jsx(exports.TrackWithoutSchema, { ...props, layout: "none" }),
|
|
26
|
+
Component: (props) => (0, jsx_runtime_1.jsx)(exports.TrackWithoutSchema, { ...props, layout: "none" }),
|
|
27
27
|
componentName: '<Track>',
|
|
28
28
|
componentIdentity: 'dev.remotion.remotion.Track',
|
|
29
29
|
schema: trackSchema,
|