remotion 4.0.478 → 4.0.479
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/CompositionManager.d.ts +2 -2
- package/dist/cjs/HtmlInCanvas.d.ts +4 -3
- package/dist/cjs/HtmlInCanvas.js +7 -10
- package/dist/cjs/Img.d.ts +6 -4
- package/dist/cjs/Img.js +10 -13
- package/dist/cjs/Interactive.d.ts +187 -2
- package/dist/cjs/Interactive.js +12 -10
- package/dist/cjs/Sequence.d.ts +4 -3
- package/dist/cjs/Sequence.js +7 -7
- package/dist/cjs/animated-image/AnimatedImage.d.ts +2 -3
- package/dist/cjs/animated-image/AnimatedImage.js +7 -10
- package/dist/cjs/animated-image/props.d.ts +2 -3
- package/dist/cjs/canvas-image/CanvasImage.d.ts +5 -3
- package/dist/cjs/canvas-image/CanvasImage.js +86 -42
- package/dist/cjs/canvas-image/props.d.ts +5 -4
- package/dist/cjs/effects/Solid.d.ts +2 -2
- package/dist/cjs/effects/Solid.js +7 -10
- package/dist/cjs/effects/create-effect.d.ts +2 -2
- package/dist/cjs/effects/effect-types.d.ts +2 -2
- package/dist/cjs/effects/index.d.ts +2 -1
- package/dist/cjs/effects/index.js +3 -0
- package/dist/cjs/find-props-to-delete.d.ts +2 -2
- package/dist/cjs/flatten-schema.d.ts +3 -3
- package/dist/cjs/index.d.ts +4 -4
- package/dist/cjs/index.js +16 -14
- package/dist/cjs/interactivity-schema.d.ts +524 -0
- package/dist/cjs/interactivity-schema.js +143 -0
- package/dist/cjs/internals.d.ts +95 -21
- package/dist/cjs/internals.js +12 -11
- package/dist/cjs/interpolate-keyframed-status.js +14 -3
- package/dist/cjs/no-react.d.ts +11 -12
- package/dist/cjs/no-react.js +2 -2
- package/dist/cjs/series/index.js +4 -4
- package/dist/cjs/use-schema.d.ts +21 -3
- package/dist/cjs/use-schema.js +5 -2
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/with-interactivity-schema.d.ts +20 -0
- package/dist/cjs/with-interactivity-schema.js +203 -0
- package/dist/cjs/wrap-in-schema.d.ts +3 -3
- package/dist/cjs/wrap-in-schema.js +2 -2
- package/dist/esm/index.mjs +222 -165
- package/dist/esm/no-react.mjs +133 -131
- package/dist/esm/version.mjs +1 -1
- package/package.json +2 -2
|
@@ -4,9 +4,9 @@ import type { AnyZodObject } from './any-zod-type.js';
|
|
|
4
4
|
import type { CalculateMetadataFunction } from './Composition.js';
|
|
5
5
|
import type { DownloadBehavior } from './download-behavior.js';
|
|
6
6
|
import type { EffectDefinition } from './effects/effect-types.js';
|
|
7
|
+
import type { InteractivitySchema } from './interactivity-schema.js';
|
|
7
8
|
import type { NonceHistory } from './nonce.js';
|
|
8
9
|
import type { InferProps, PropsIfHasProps } from './props-if-has-props.js';
|
|
9
|
-
import type { SequenceSchema } from './sequence-field-schema.js';
|
|
10
10
|
export type TComposition<Schema extends AnyZodObject, Props extends Record<string, unknown>> = {
|
|
11
11
|
width: number | undefined;
|
|
12
12
|
height: number | undefined;
|
|
@@ -54,7 +54,7 @@ export type LoopDisplay = {
|
|
|
54
54
|
};
|
|
55
55
|
export type JsxComponentIdentity = string;
|
|
56
56
|
export type SequenceControls = {
|
|
57
|
-
schema:
|
|
57
|
+
schema: InteractivitySchema;
|
|
58
58
|
currentRuntimeValueDotNotation: Record<string, unknown>;
|
|
59
59
|
overrideId: string;
|
|
60
60
|
supportsEffects: boolean;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { EffectsProp } from './effects/effect-types.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { InteractiveBaseProps } from './Interactive.js';
|
|
4
|
+
import type { AbsoluteFillLayout } from './Sequence.js';
|
|
4
5
|
declare global {
|
|
5
6
|
interface ElementImage {
|
|
6
7
|
readonly width: number;
|
|
@@ -53,7 +54,7 @@ export type HtmlInCanvasOnPaint = (params: HtmlInCanvasOnPaintParams) => void |
|
|
|
53
54
|
export type HtmlInCanvasOnInitCleanup = () => void;
|
|
54
55
|
export type HtmlInCanvasOnInit = (params: HtmlInCanvasOnPaintParams) => HtmlInCanvasOnInitCleanup | Promise<HtmlInCanvasOnInitCleanup>;
|
|
55
56
|
export type HtmlInCanvasPixelDensity = number;
|
|
56
|
-
export type HtmlInCanvasProps = Omit<
|
|
57
|
+
export type HtmlInCanvasProps = Omit<InteractiveBaseProps, 'children'> & Omit<AbsoluteFillLayout, 'layout' | 'styleWhilePostmounted' | 'postmountFor' | 'premountFor' | 'styleWhilePremounted'> & {
|
|
57
58
|
readonly durationInFrames?: number;
|
|
58
59
|
readonly width: number;
|
|
59
60
|
readonly height: number;
|
|
@@ -63,7 +64,7 @@ export type HtmlInCanvasProps = Omit<SequenceProps, 'children' | 'durationInFram
|
|
|
63
64
|
readonly onInit?: HtmlInCanvasOnInit;
|
|
64
65
|
readonly pixelDensity?: HtmlInCanvasPixelDensity;
|
|
65
66
|
};
|
|
66
|
-
export declare const HtmlInCanvas: React.ForwardRefExoticComponent<Omit<
|
|
67
|
+
export declare const HtmlInCanvas: React.ForwardRefExoticComponent<Omit<InteractiveBaseProps, "children"> & Omit<AbsoluteFillLayout, "layout" | "postmountFor" | "premountFor" | "styleWhilePostmounted" | "styleWhilePremounted"> & {
|
|
67
68
|
readonly durationInFrames?: number | undefined;
|
|
68
69
|
readonly width: number;
|
|
69
70
|
readonly height: number;
|
package/dist/cjs/HtmlInCanvas.js
CHANGED
|
@@ -8,11 +8,11 @@ const run_effect_chain_js_1 = require("./effects/run-effect-chain.js");
|
|
|
8
8
|
const use_effect_chain_state_js_1 = require("./effects/use-effect-chain-state.js");
|
|
9
9
|
const use_memoized_effects_js_1 = require("./effects/use-memoized-effects.js");
|
|
10
10
|
const enable_sequence_stack_traces_js_1 = require("./enable-sequence-stack-traces.js");
|
|
11
|
-
const
|
|
11
|
+
const interactivity_schema_js_1 = require("./interactivity-schema.js");
|
|
12
12
|
const Sequence_js_1 = require("./Sequence.js");
|
|
13
13
|
const use_delay_render_js_1 = require("./use-delay-render.js");
|
|
14
14
|
const use_video_config_js_1 = require("./use-video-config.js");
|
|
15
|
-
const
|
|
15
|
+
const with_interactivity_schema_js_1 = require("./with-interactivity-schema.js");
|
|
16
16
|
// Memoize the support check across the session — neither the platform
|
|
17
17
|
// capability nor the chrome://flags toggle can change between calls.
|
|
18
18
|
// SSR results are not cached so the check runs again once `document` exists.
|
|
@@ -275,7 +275,7 @@ const HtmlInCanvasContent = (0, react_1.forwardRef)(({ width, height, effects, c
|
|
|
275
275
|
return (jsx_runtime_1.jsx(HtmlInCanvasAncestorContext.Provider, { value: true, children: jsx_runtime_1.jsx("canvas", { ref: setLayoutCanvasRef, width: canvasWidth, height: canvasHeight, style: canvasStyle, children: jsx_runtime_1.jsx("div", { ref: divRef, style: innerStyle, children: children }) }, canvasSizeKey) }));
|
|
276
276
|
});
|
|
277
277
|
HtmlInCanvasContent.displayName = 'HtmlInCanvasContent';
|
|
278
|
-
const HtmlInCanvasInner = (0, react_1.forwardRef)(({ width, height, effects = [], children, onPaint, onInit, pixelDensity,
|
|
278
|
+
const HtmlInCanvasInner = (0, react_1.forwardRef)(({ width, height, effects = [], children, onPaint, onInit, pixelDensity, controls, style, durationInFrames, name, ...sequenceProps }, ref) => {
|
|
279
279
|
const { durationInFrames: videoDuration } = (0, use_video_config_js_1.useVideoConfig)();
|
|
280
280
|
const resolvedDuration = durationInFrames !== null && durationInFrames !== void 0 ? durationInFrames : videoDuration;
|
|
281
281
|
const memoizedEffectDefinitions = (0, use_memoized_effects_js_1.useMemoizedEffectDefinitions)(effects);
|
|
@@ -290,17 +290,14 @@ const HtmlInCanvasInner = (0, react_1.forwardRef)(({ width, height, effects = []
|
|
|
290
290
|
node;
|
|
291
291
|
}
|
|
292
292
|
}, [ref]);
|
|
293
|
-
return (jsx_runtime_1.jsx(Sequence_js_1.Sequence, { durationInFrames: resolvedDuration, name: name !== null && name !== void 0 ? name : '<HtmlInCanvas>', _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/remotion/html-in-canvas",
|
|
293
|
+
return (jsx_runtime_1.jsx(Sequence_js_1.Sequence, { durationInFrames: resolvedDuration, name: name !== null && name !== void 0 ? name : '<HtmlInCanvas>', _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/remotion/html-in-canvas", controls: controls, _remotionInternalEffects: memoizedEffectDefinitions, outlineRef: actualRef, layout: "none", ...sequenceProps, children: jsx_runtime_1.jsx(HtmlInCanvasContent, { ref: setCanvasRef, width: width, height: height, effects: effects, onPaint: onPaint, onInit: onInit, pixelDensity: pixelDensity, controls: controls, style: style, children: children }) }));
|
|
294
294
|
});
|
|
295
295
|
HtmlInCanvasInner.displayName = 'HtmlInCanvas';
|
|
296
296
|
const htmlInCanvasSchema = {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
freeze: sequence_field_schema_js_1.freezeField,
|
|
300
|
-
...sequence_field_schema_js_1.sequenceVisualStyleSchema,
|
|
301
|
-
hidden: sequence_field_schema_js_1.hiddenField,
|
|
297
|
+
...interactivity_schema_js_1.baseSchema,
|
|
298
|
+
...interactivity_schema_js_1.transformSchema,
|
|
302
299
|
};
|
|
303
|
-
const HtmlInCanvasWrapped = (0,
|
|
300
|
+
const HtmlInCanvasWrapped = (0, with_interactivity_schema_js_1.withInteractivitySchema)({
|
|
304
301
|
Component: HtmlInCanvasInner,
|
|
305
302
|
componentIdentity: 'dev.remotion.remotion.HtmlInCanvas',
|
|
306
303
|
schema: htmlInCanvasSchema,
|
package/dist/cjs/Img.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { EffectsProp } from './effects/effect-types.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { InteractiveBaseProps } from './Interactive.js';
|
|
4
4
|
type NativeImgProps = Omit<React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, 'src'>;
|
|
5
5
|
export type ImgProps = NativeImgProps & {
|
|
6
6
|
readonly maxRetries?: number;
|
|
@@ -16,7 +16,7 @@ export type ImgProps = NativeImgProps & {
|
|
|
16
16
|
* @deprecated For internal use only
|
|
17
17
|
*/
|
|
18
18
|
readonly stack?: string;
|
|
19
|
-
} &
|
|
19
|
+
} & InteractiveBaseProps;
|
|
20
20
|
export declare const imgSchema: {
|
|
21
21
|
readonly 'style.transformOrigin': {
|
|
22
22
|
readonly type: "transform-origin";
|
|
@@ -71,7 +71,9 @@ export declare const imgSchema: {
|
|
|
71
71
|
readonly step: 1;
|
|
72
72
|
readonly hiddenFromList: true;
|
|
73
73
|
};
|
|
74
|
-
readonly hidden: import("./
|
|
74
|
+
readonly hidden: import("./interactivity-schema.js").BooleanFieldSchema;
|
|
75
|
+
readonly name: import("./interactivity-schema.js").HiddenFieldSchema;
|
|
76
|
+
readonly showInTimeline: import("./interactivity-schema.js").HiddenFieldSchema;
|
|
75
77
|
};
|
|
76
78
|
export declare const Img: React.ComponentType<NativeImgProps & {
|
|
77
79
|
readonly maxRetries?: number | undefined;
|
|
@@ -87,5 +89,5 @@ export declare const Img: React.ComponentType<NativeImgProps & {
|
|
|
87
89
|
* @deprecated For internal use only
|
|
88
90
|
*/
|
|
89
91
|
readonly stack?: string | undefined;
|
|
90
|
-
} &
|
|
92
|
+
} & InteractiveBaseProps>;
|
|
91
93
|
export {};
|
package/dist/cjs/Img.js
CHANGED
|
@@ -6,15 +6,15 @@ const react_1 = require("react");
|
|
|
6
6
|
const index_js_1 = require("./canvas-image/index.js");
|
|
7
7
|
const enable_sequence_stack_traces_js_1 = require("./enable-sequence-stack-traces.js");
|
|
8
8
|
const get_cross_origin_value_js_1 = require("./get-cross-origin-value.js");
|
|
9
|
+
const interactivity_schema_js_1 = require("./interactivity-schema.js");
|
|
9
10
|
const prefetch_js_1 = require("./prefetch.js");
|
|
10
|
-
const sequence_field_schema_js_1 = require("./sequence-field-schema.js");
|
|
11
11
|
const Sequence_js_1 = require("./Sequence.js");
|
|
12
12
|
const SequenceContext_js_1 = require("./SequenceContext.js");
|
|
13
13
|
const truncate_src_for_label_js_1 = require("./truncate-src-for-label.js");
|
|
14
14
|
const use_buffer_state_js_1 = require("./use-buffer-state.js");
|
|
15
15
|
const use_delay_render_js_1 = require("./use-delay-render.js");
|
|
16
16
|
const use_remotion_environment_js_1 = require("./use-remotion-environment.js");
|
|
17
|
-
const
|
|
17
|
+
const with_interactivity_schema_js_1 = require("./with-interactivity-schema.js");
|
|
18
18
|
function exponentialBackoff(errorCount) {
|
|
19
19
|
return 1000 * 2 ** (errorCount - 1);
|
|
20
20
|
}
|
|
@@ -183,19 +183,16 @@ const ImgContent = ({ onError, maxRetries = 2, src, pauseWhenLoading, delayRende
|
|
|
183
183
|
// src gets set once we've loaded and decoded the image.
|
|
184
184
|
return (jsx_runtime_1.jsx("img", { ...props, ref: imageCallbackRef, crossOrigin: crossOriginValue, onError: didGetError, decoding: isRendering ? 'sync' : decoding }));
|
|
185
185
|
};
|
|
186
|
-
const NativeImgInner = ({ hidden, name, stack, showInTimeline, src, from, durationInFrames, freeze,
|
|
186
|
+
const NativeImgInner = ({ hidden, name, stack, showInTimeline, src, from, durationInFrames, freeze, controls, outlineRef: refForOutline, ...props }) => {
|
|
187
187
|
if (!src) {
|
|
188
188
|
throw new Error('No "src" prop was passed to <Img>.');
|
|
189
189
|
}
|
|
190
|
-
return (jsx_runtime_1.jsx(Sequence_js_1.Sequence, { layout: "none", from: from !== null && from !== void 0 ? from : 0, durationInFrames: durationInFrames !== null && durationInFrames !== void 0 ? durationInFrames : Infinity, freeze: freeze, _remotionInternalStack: stack, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img", _remotionInternalIsMedia: { type: 'image', src }, name: name !== null && name !== void 0 ? name : '<Img>',
|
|
190
|
+
return (jsx_runtime_1.jsx(Sequence_js_1.Sequence, { layout: "none", from: from !== null && from !== void 0 ? from : 0, durationInFrames: durationInFrames !== null && durationInFrames !== void 0 ? durationInFrames : Infinity, freeze: freeze, _remotionInternalStack: stack, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img", _remotionInternalIsMedia: { type: 'image', src }, name: name !== null && name !== void 0 ? name : '<Img>', controls: controls, showInTimeline: showInTimeline !== null && showInTimeline !== void 0 ? showInTimeline : true, hidden: hidden, outlineRef: refForOutline, children: jsx_runtime_1.jsx(ImgContent, { src: src, refForOutline: refForOutline, ...props }) }));
|
|
191
191
|
};
|
|
192
192
|
const CanvasImageWithPrivateProps = index_js_1.CanvasImage;
|
|
193
193
|
exports.imgSchema = {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
freeze: sequence_field_schema_js_1.freezeField,
|
|
197
|
-
...sequence_field_schema_js_1.sequenceVisualStyleSchema,
|
|
198
|
-
hidden: sequence_field_schema_js_1.hiddenField,
|
|
194
|
+
...interactivity_schema_js_1.baseSchema,
|
|
195
|
+
...interactivity_schema_js_1.transformSchema,
|
|
199
196
|
};
|
|
200
197
|
const imgCanvasFallbackIncompatibleProps = new Set([
|
|
201
198
|
'alt',
|
|
@@ -236,11 +233,11 @@ const getFitFromObjectFit = (style) => {
|
|
|
236
233
|
}
|
|
237
234
|
return undefined;
|
|
238
235
|
};
|
|
239
|
-
const ImgInner = ({ effects = [], ref, hidden, name, stack, showInTimeline, src, from, durationInFrames, freeze,
|
|
236
|
+
const ImgInner = ({ effects = [], ref, hidden, name, stack, showInTimeline, src, from, durationInFrames, freeze, controls, width, height, className, style, id, pauseWhenLoading, maxRetries, delayRenderRetries, delayRenderTimeoutInMilliseconds, ...props }) => {
|
|
240
237
|
var _a;
|
|
241
238
|
const refForOutline = (0, react_1.useRef)(null);
|
|
242
239
|
if (effects.length === 0) {
|
|
243
|
-
return (jsx_runtime_1.jsx(NativeImgInner, { ...props, ref: ref, hidden: hidden, name: name, stack: stack, showInTimeline: showInTimeline, src: src, from: from, durationInFrames: durationInFrames, freeze: freeze,
|
|
240
|
+
return (jsx_runtime_1.jsx(NativeImgInner, { ...props, ref: ref, hidden: hidden, name: name, stack: stack, showInTimeline: showInTimeline, src: src, from: from, durationInFrames: durationInFrames, freeze: freeze, controls: controls, width: width, height: height, className: className, style: style, id: id, pauseWhenLoading: pauseWhenLoading, maxRetries: maxRetries, delayRenderRetries: delayRenderRetries, delayRenderTimeoutInMilliseconds: delayRenderTimeoutInMilliseconds, outlineRef: refForOutline }));
|
|
244
241
|
}
|
|
245
242
|
if (!src) {
|
|
246
243
|
throw new Error('No "src" prop was passed to <Img>.');
|
|
@@ -255,13 +252,13 @@ const ImgInner = ({ effects = [], ref, hidden, name, stack, showInTimeline, src,
|
|
|
255
252
|
const canvasHeight = typeof height === 'number' ? height : undefined;
|
|
256
253
|
const canvasProps = props;
|
|
257
254
|
const canvasFit = (_a = getFitFromObjectFit(style)) !== null && _a !== void 0 ? _a : 'fill';
|
|
258
|
-
return (jsx_runtime_1.jsx(CanvasImageWithPrivateProps, { src: src, width: canvasWidth, height: canvasHeight, fit: canvasFit, effects: effects, className: className, style: style, id: id, pauseWhenLoading: pauseWhenLoading, maxRetries: maxRetries, delayRenderRetries: delayRenderRetries, delayRenderTimeoutInMilliseconds: delayRenderTimeoutInMilliseconds, from: from, durationInFrames: durationInFrames, freeze: freeze, hidden: hidden, name: name !== null && name !== void 0 ? name : '<Img>', showInTimeline: showInTimeline, stack: stack, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img",
|
|
255
|
+
return (jsx_runtime_1.jsx(CanvasImageWithPrivateProps, { src: src, width: canvasWidth, height: canvasHeight, fit: canvasFit, effects: effects, className: className, style: style, id: id, pauseWhenLoading: pauseWhenLoading, maxRetries: maxRetries, delayRenderRetries: delayRenderRetries, delayRenderTimeoutInMilliseconds: delayRenderTimeoutInMilliseconds, from: from, durationInFrames: durationInFrames, freeze: freeze, hidden: hidden, name: name !== null && name !== void 0 ? name : '<Img>', showInTimeline: showInTimeline, stack: stack, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img", controls: controls, outlineRef: refForOutline, ...canvasProps }));
|
|
259
256
|
};
|
|
260
257
|
/*
|
|
261
258
|
* @description Works just like a regular HTML img tag. When you use the <Img> tag, Remotion will ensure that the image is loaded before rendering the frame.
|
|
262
259
|
* @see [Documentation](https://remotion.dev/docs/img)
|
|
263
260
|
*/
|
|
264
|
-
exports.Img = (0,
|
|
261
|
+
exports.Img = (0, with_interactivity_schema_js_1.withInteractivitySchema)({
|
|
265
262
|
Component: ImgInner,
|
|
266
263
|
componentIdentity: 'dev.remotion.remotion.Img',
|
|
267
264
|
schema: exports.imgSchema,
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { SequenceControls } from './CompositionManager.js';
|
|
3
|
+
import { type InteractivitySchema } from './interactivity-schema.js';
|
|
4
|
+
import type { AbsoluteFillLayout, SequenceProps } from './Sequence.js';
|
|
3
5
|
type InteractiveHtmlTag = 'a' | 'article' | 'aside' | 'button' | 'code' | 'div' | 'em' | 'footer' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'header' | 'label' | 'li' | 'main' | 'nav' | 'ol' | 'p' | 'pre' | 'section' | 'small' | 'span' | 'strong' | 'ul';
|
|
4
6
|
type InteractiveSvgTag = 'circle' | 'ellipse' | 'g' | 'line' | 'path' | 'rect' | 'svg' | 'text';
|
|
5
7
|
type InteractiveTag = InteractiveHtmlTag | InteractiveSvgTag;
|
|
6
8
|
type ElementForTag<Tag extends InteractiveTag> = Tag extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[Tag] : Tag extends keyof SVGElementTagNameMap ? SVGElementTagNameMap[Tag] : Element;
|
|
7
|
-
type
|
|
9
|
+
export type InteractiveBaseProps = Pick<SequenceProps, 'durationInFrames' | 'from' | 'freeze' | 'hidden' | 'name' | 'showInTimeline'>;
|
|
10
|
+
export type InteractiveTransformProps = Pick<AbsoluteFillLayout, 'style'>;
|
|
11
|
+
export type InteractivePremountProps = Pick<AbsoluteFillLayout, 'premountFor' | 'postmountFor' | 'styleWhilePremounted' | 'styleWhilePostmounted'>;
|
|
12
|
+
type InteractiveSequenceProps = InteractiveBaseProps & {
|
|
8
13
|
/**
|
|
9
14
|
* @deprecated For internal use only
|
|
10
15
|
*/
|
|
@@ -16,6 +21,186 @@ type InteractiveElementComponent<Tag extends InteractiveTag> = React.ComponentTy
|
|
|
16
21
|
* @description HTML and SVG elements that are registered in the Remotion Studio timeline and can be visually edited.
|
|
17
22
|
*/
|
|
18
23
|
export declare const Interactive: {
|
|
24
|
+
baseSchema: {
|
|
25
|
+
readonly durationInFrames: {
|
|
26
|
+
readonly type: "number";
|
|
27
|
+
readonly default: undefined;
|
|
28
|
+
readonly min: 1;
|
|
29
|
+
readonly step: 1;
|
|
30
|
+
readonly hiddenFromList: true;
|
|
31
|
+
};
|
|
32
|
+
readonly from: {
|
|
33
|
+
readonly type: "number";
|
|
34
|
+
readonly default: 0;
|
|
35
|
+
readonly step: 1;
|
|
36
|
+
readonly hiddenFromList: true;
|
|
37
|
+
};
|
|
38
|
+
readonly freeze: {
|
|
39
|
+
readonly type: "number";
|
|
40
|
+
readonly default: null;
|
|
41
|
+
readonly step: 1;
|
|
42
|
+
readonly hiddenFromList: true;
|
|
43
|
+
};
|
|
44
|
+
readonly hidden: import("./interactivity-schema.js").BooleanFieldSchema;
|
|
45
|
+
readonly name: import("./interactivity-schema.js").HiddenFieldSchema;
|
|
46
|
+
readonly showInTimeline: import("./interactivity-schema.js").HiddenFieldSchema;
|
|
47
|
+
};
|
|
48
|
+
transformSchema: {
|
|
49
|
+
readonly 'style.transformOrigin': {
|
|
50
|
+
readonly type: "transform-origin";
|
|
51
|
+
readonly step: 1;
|
|
52
|
+
readonly default: "50% 50%";
|
|
53
|
+
readonly description: "Transform origin";
|
|
54
|
+
};
|
|
55
|
+
readonly 'style.translate': {
|
|
56
|
+
readonly type: "translate";
|
|
57
|
+
readonly step: 1;
|
|
58
|
+
readonly default: "0px 0px";
|
|
59
|
+
readonly description: "Offset";
|
|
60
|
+
};
|
|
61
|
+
readonly 'style.scale': {
|
|
62
|
+
readonly type: "scale";
|
|
63
|
+
readonly max: 100;
|
|
64
|
+
readonly step: 0.01;
|
|
65
|
+
readonly default: 1;
|
|
66
|
+
readonly description: "Scale";
|
|
67
|
+
};
|
|
68
|
+
readonly 'style.rotate': {
|
|
69
|
+
readonly type: "rotation-css";
|
|
70
|
+
readonly step: 1;
|
|
71
|
+
readonly default: "0deg";
|
|
72
|
+
readonly description: "Rotation";
|
|
73
|
+
};
|
|
74
|
+
readonly 'style.opacity': {
|
|
75
|
+
readonly type: "number";
|
|
76
|
+
readonly min: 0;
|
|
77
|
+
readonly max: 1;
|
|
78
|
+
readonly step: 0.01;
|
|
79
|
+
readonly default: 1;
|
|
80
|
+
readonly description: "Opacity";
|
|
81
|
+
readonly hiddenFromList: false;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
premountSchema: {
|
|
85
|
+
readonly premountFor: {
|
|
86
|
+
readonly type: "number";
|
|
87
|
+
readonly default: 0;
|
|
88
|
+
readonly description: "Premount For";
|
|
89
|
+
readonly min: 0;
|
|
90
|
+
readonly step: 1;
|
|
91
|
+
readonly hiddenFromList: false;
|
|
92
|
+
};
|
|
93
|
+
readonly postmountFor: {
|
|
94
|
+
readonly type: "number";
|
|
95
|
+
readonly default: 0;
|
|
96
|
+
readonly min: 0;
|
|
97
|
+
readonly step: 1;
|
|
98
|
+
readonly hiddenFromList: true;
|
|
99
|
+
};
|
|
100
|
+
readonly styleWhilePremounted: {
|
|
101
|
+
readonly type: "hidden";
|
|
102
|
+
};
|
|
103
|
+
readonly styleWhilePostmounted: {
|
|
104
|
+
readonly type: "hidden";
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
sequenceSchema: {
|
|
108
|
+
readonly durationInFrames: {
|
|
109
|
+
readonly type: "number";
|
|
110
|
+
readonly default: undefined;
|
|
111
|
+
readonly min: 1;
|
|
112
|
+
readonly step: 1;
|
|
113
|
+
readonly hiddenFromList: true;
|
|
114
|
+
};
|
|
115
|
+
readonly from: {
|
|
116
|
+
readonly type: "number";
|
|
117
|
+
readonly default: 0;
|
|
118
|
+
readonly step: 1;
|
|
119
|
+
readonly hiddenFromList: true;
|
|
120
|
+
};
|
|
121
|
+
readonly freeze: {
|
|
122
|
+
readonly type: "number";
|
|
123
|
+
readonly default: null;
|
|
124
|
+
readonly step: 1;
|
|
125
|
+
readonly hiddenFromList: true;
|
|
126
|
+
};
|
|
127
|
+
readonly hidden: import("./interactivity-schema.js").BooleanFieldSchema;
|
|
128
|
+
readonly name: import("./interactivity-schema.js").HiddenFieldSchema;
|
|
129
|
+
readonly showInTimeline: import("./interactivity-schema.js").HiddenFieldSchema;
|
|
130
|
+
readonly layout: {
|
|
131
|
+
readonly type: "enum";
|
|
132
|
+
readonly default: "absolute-fill";
|
|
133
|
+
readonly description: "Layout";
|
|
134
|
+
readonly variants: {
|
|
135
|
+
readonly 'absolute-fill': {
|
|
136
|
+
readonly 'style.transformOrigin': {
|
|
137
|
+
readonly type: "transform-origin";
|
|
138
|
+
readonly step: 1;
|
|
139
|
+
readonly default: "50% 50%";
|
|
140
|
+
readonly description: "Transform origin";
|
|
141
|
+
};
|
|
142
|
+
readonly 'style.translate': {
|
|
143
|
+
readonly type: "translate";
|
|
144
|
+
readonly step: 1;
|
|
145
|
+
readonly default: "0px 0px";
|
|
146
|
+
readonly description: "Offset";
|
|
147
|
+
};
|
|
148
|
+
readonly 'style.scale': {
|
|
149
|
+
readonly type: "scale";
|
|
150
|
+
readonly max: 100;
|
|
151
|
+
readonly step: 0.01;
|
|
152
|
+
readonly default: 1;
|
|
153
|
+
readonly description: "Scale";
|
|
154
|
+
};
|
|
155
|
+
readonly 'style.rotate': {
|
|
156
|
+
readonly type: "rotation-css";
|
|
157
|
+
readonly step: 1;
|
|
158
|
+
readonly default: "0deg";
|
|
159
|
+
readonly description: "Rotation";
|
|
160
|
+
};
|
|
161
|
+
readonly 'style.opacity': {
|
|
162
|
+
readonly type: "number";
|
|
163
|
+
readonly min: 0;
|
|
164
|
+
readonly max: 1;
|
|
165
|
+
readonly step: 0.01;
|
|
166
|
+
readonly default: 1;
|
|
167
|
+
readonly description: "Opacity";
|
|
168
|
+
readonly hiddenFromList: false;
|
|
169
|
+
};
|
|
170
|
+
readonly premountFor: {
|
|
171
|
+
readonly type: "number";
|
|
172
|
+
readonly default: 0;
|
|
173
|
+
readonly description: "Premount For";
|
|
174
|
+
readonly min: 0;
|
|
175
|
+
readonly step: 1;
|
|
176
|
+
readonly hiddenFromList: false;
|
|
177
|
+
};
|
|
178
|
+
readonly postmountFor: {
|
|
179
|
+
readonly type: "number";
|
|
180
|
+
readonly default: 0;
|
|
181
|
+
readonly min: 0;
|
|
182
|
+
readonly step: 1;
|
|
183
|
+
readonly hiddenFromList: true;
|
|
184
|
+
};
|
|
185
|
+
readonly styleWhilePremounted: {
|
|
186
|
+
readonly type: "hidden";
|
|
187
|
+
};
|
|
188
|
+
readonly styleWhilePostmounted: {
|
|
189
|
+
readonly type: "hidden";
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
readonly none: {};
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
withSchema: <S extends InteractivitySchema, Props extends object>({ Component, componentIdentity, schema, supportsEffects, }: {
|
|
197
|
+
Component: React.ComponentType<Props & {
|
|
198
|
+
readonly controls: SequenceControls | undefined;
|
|
199
|
+
}>;
|
|
200
|
+
componentIdentity: string | null;
|
|
201
|
+
schema: S;
|
|
202
|
+
supportsEffects: boolean;
|
|
203
|
+
}) => React.ComponentType<Props>;
|
|
19
204
|
A: InteractiveElementComponent<"a">;
|
|
20
205
|
Article: InteractiveElementComponent<"article">;
|
|
21
206
|
Aside: InteractiveElementComponent<"aside">;
|
package/dist/cjs/Interactive.js
CHANGED
|
@@ -37,15 +37,12 @@ exports.Interactive = void 0;
|
|
|
37
37
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
38
|
const react_1 = __importStar(require("react"));
|
|
39
39
|
const enable_sequence_stack_traces_js_1 = require("./enable-sequence-stack-traces.js");
|
|
40
|
-
const
|
|
40
|
+
const interactivity_schema_js_1 = require("./interactivity-schema.js");
|
|
41
41
|
const Sequence_js_1 = require("./Sequence.js");
|
|
42
|
-
const
|
|
42
|
+
const with_interactivity_schema_js_1 = require("./with-interactivity-schema.js");
|
|
43
43
|
const interactiveElementSchema = {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
freeze: sequence_field_schema_js_1.freezeField,
|
|
47
|
-
...sequence_field_schema_js_1.sequenceVisualStyleSchema,
|
|
48
|
-
hidden: sequence_field_schema_js_1.hiddenField,
|
|
44
|
+
...interactivity_schema_js_1.baseSchema,
|
|
45
|
+
...interactivity_schema_js_1.transformSchema,
|
|
49
46
|
};
|
|
50
47
|
const setRef = (ref, value) => {
|
|
51
48
|
if (typeof ref === 'function') {
|
|
@@ -57,19 +54,19 @@ const setRef = (ref, value) => {
|
|
|
57
54
|
};
|
|
58
55
|
const makeInteractiveElement = (tag, displayName) => {
|
|
59
56
|
const Inner = (0, react_1.forwardRef)((propsWithControls, ref) => {
|
|
60
|
-
const { durationInFrames, from, freeze, hidden, name, showInTimeline, stack,
|
|
57
|
+
const { durationInFrames, from, freeze, hidden, name, showInTimeline, stack, controls, ...props } = propsWithControls;
|
|
61
58
|
const refForOutline = (0, react_1.useRef)(null);
|
|
62
59
|
const callbackRef = (0, react_1.useCallback)((element) => {
|
|
63
60
|
refForOutline.current = element;
|
|
64
61
|
setRef(ref, element);
|
|
65
62
|
}, [ref]);
|
|
66
|
-
return (jsx_runtime_1.jsx(Sequence_js_1.Sequence, { layout: "none", from: from !== null && from !== void 0 ? from : 0, durationInFrames: durationInFrames !== null && durationInFrames !== void 0 ? durationInFrames : Infinity, freeze: freeze, hidden: hidden, name: name !== null && name !== void 0 ? name : displayName, showInTimeline: showInTimeline !== null && showInTimeline !== void 0 ? showInTimeline : true,
|
|
63
|
+
return (jsx_runtime_1.jsx(Sequence_js_1.Sequence, { layout: "none", from: from !== null && from !== void 0 ? from : 0, durationInFrames: durationInFrames !== null && durationInFrames !== void 0 ? durationInFrames : Infinity, freeze: freeze, hidden: hidden, name: name !== null && name !== void 0 ? name : displayName, showInTimeline: showInTimeline !== null && showInTimeline !== void 0 ? showInTimeline : true, controls: controls, _remotionInternalStack: stack, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/interactive", outlineRef: refForOutline, children: react_1.default.createElement(tag, {
|
|
67
64
|
...props,
|
|
68
65
|
ref: callbackRef,
|
|
69
66
|
}) }));
|
|
70
67
|
});
|
|
71
68
|
Inner.displayName = displayName;
|
|
72
|
-
const Wrapped = (0,
|
|
69
|
+
const Wrapped = (0, with_interactivity_schema_js_1.withInteractivitySchema)({
|
|
73
70
|
Component: Inner,
|
|
74
71
|
componentIdentity: `dev.remotion.remotion.${displayName.slice(1, -1)}`,
|
|
75
72
|
schema: interactiveElementSchema,
|
|
@@ -83,6 +80,11 @@ const makeInteractiveElement = (tag, displayName) => {
|
|
|
83
80
|
* @description HTML and SVG elements that are registered in the Remotion Studio timeline and can be visually edited.
|
|
84
81
|
*/
|
|
85
82
|
exports.Interactive = {
|
|
83
|
+
baseSchema: interactivity_schema_js_1.baseSchema,
|
|
84
|
+
transformSchema: interactivity_schema_js_1.transformSchema,
|
|
85
|
+
premountSchema: interactivity_schema_js_1.premountSchema,
|
|
86
|
+
sequenceSchema: interactivity_schema_js_1.sequenceSchema,
|
|
87
|
+
withSchema: with_interactivity_schema_js_1.withInteractivitySchema,
|
|
86
88
|
A: makeInteractiveElement('a', '<Interactive.A>'),
|
|
87
89
|
Article: makeInteractiveElement('article', '<Interactive.Article>'),
|
|
88
90
|
Aside: makeInteractiveElement('aside', '<Interactive.Aside>'),
|
package/dist/cjs/Sequence.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export type SequencePropsWithoutDuration = {
|
|
|
23
23
|
readonly name?: string;
|
|
24
24
|
readonly showInTimeline?: boolean;
|
|
25
25
|
readonly hidden?: boolean;
|
|
26
|
-
readonly
|
|
26
|
+
readonly controls?: SequenceControls;
|
|
27
27
|
readonly _remotionInternalEffects?: readonly EffectDefinition<unknown>[];
|
|
28
28
|
/**
|
|
29
29
|
* @deprecated For internal use only.
|
|
@@ -64,9 +64,10 @@ export type SequencePropsWithoutDuration = {
|
|
|
64
64
|
src: string;
|
|
65
65
|
};
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
67
|
+
* A React ref pointing to the element that Remotion Studio should use for
|
|
68
|
+
* drawing the selection outline in the preview.
|
|
68
69
|
*/
|
|
69
|
-
readonly
|
|
70
|
+
readonly outlineRef?: React.RefObject<Element | null> | null;
|
|
70
71
|
} & LayoutAndStyle;
|
|
71
72
|
export type SequenceProps = {
|
|
72
73
|
readonly durationInFrames?: number;
|
package/dist/cjs/Sequence.js
CHANGED
|
@@ -6,9 +6,9 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const AbsoluteFill_js_1 = require("./AbsoluteFill.js");
|
|
8
8
|
const freeze_js_1 = require("./freeze.js");
|
|
9
|
+
const interactivity_schema_js_1 = require("./interactivity-schema.js");
|
|
9
10
|
const nonce_js_1 = require("./nonce.js");
|
|
10
11
|
const PremountContext_js_1 = require("./PremountContext.js");
|
|
11
|
-
const sequence_field_schema_js_1 = require("./sequence-field-schema.js");
|
|
12
12
|
const SequenceContext_js_1 = require("./SequenceContext.js");
|
|
13
13
|
const SequenceManager_js_1 = require("./SequenceManager.js");
|
|
14
14
|
const is_inside_series_js_1 = require("./series/is-inside-series.js");
|
|
@@ -17,9 +17,9 @@ const use_current_frame_1 = require("./use-current-frame");
|
|
|
17
17
|
const use_remotion_environment_js_1 = require("./use-remotion-environment.js");
|
|
18
18
|
const use_video_config_js_1 = require("./use-video-config.js");
|
|
19
19
|
const v5_flag_js_1 = require("./v5-flag.js");
|
|
20
|
-
const
|
|
20
|
+
const with_interactivity_schema_js_1 = require("./with-interactivity-schema.js");
|
|
21
21
|
const EMPTY_EFFECTS = [];
|
|
22
|
-
const RegularSequenceRefForwardingFunction = ({ from = 0, freeze, durationInFrames = Infinity, children, name, height, width, showInTimeline = true, hidden = false,
|
|
22
|
+
const RegularSequenceRefForwardingFunction = ({ from = 0, freeze, durationInFrames = Infinity, children, name, height, width, showInTimeline = true, hidden = false, controls, _remotionInternalEffects, _remotionInternalLoopDisplay: loopDisplay, _remotionInternalStack: stack, _remotionInternalDocumentationLink: documentationLink, _remotionInternalPremountDisplay: premountDisplay, _remotionInternalPostmountDisplay: postmountDisplay, _remotionInternalIsMedia: isMedia, outlineRef: passedRefForOutline, ...other }, ref) => {
|
|
23
23
|
var _a, _b, _c;
|
|
24
24
|
const { layout = 'absolute-fill' } = other;
|
|
25
25
|
const [id] = (0, react_1.useState)(() => String(Math.random()));
|
|
@@ -375,15 +375,15 @@ exports.SequenceWithoutSchema = SequenceInner;
|
|
|
375
375
|
* @description A component that time-shifts its children and wraps them in an absolutely positioned <div>.
|
|
376
376
|
* @see [Documentation](https://www.remotion.dev/docs/sequence)
|
|
377
377
|
*/
|
|
378
|
-
exports.Sequence = (0,
|
|
378
|
+
exports.Sequence = (0, with_interactivity_schema_js_1.withInteractivitySchema)({
|
|
379
379
|
Component: SequenceInner,
|
|
380
380
|
componentIdentity: 'dev.remotion.remotion.Sequence',
|
|
381
|
-
schema:
|
|
381
|
+
schema: interactivity_schema_js_1.sequenceSchema,
|
|
382
382
|
supportsEffects: false,
|
|
383
383
|
});
|
|
384
|
-
exports.SequenceWithoutFrom = (0,
|
|
384
|
+
exports.SequenceWithoutFrom = (0, with_interactivity_schema_js_1.withInteractivitySchema)({
|
|
385
385
|
Component: SequenceInner,
|
|
386
386
|
componentIdentity: null,
|
|
387
|
-
schema:
|
|
387
|
+
schema: interactivity_schema_js_1.sequenceSchemaWithoutFrom,
|
|
388
388
|
supportsEffects: false,
|
|
389
389
|
});
|
|
@@ -2,10 +2,9 @@ import type React from 'react';
|
|
|
2
2
|
import type { SequenceControls } from '../CompositionManager.js';
|
|
3
3
|
import type { EffectsProp } from '../effects/effect-types.js';
|
|
4
4
|
import type { RemotionAnimatedImageProps } from './props';
|
|
5
|
-
export declare const AnimatedImage: React.ComponentType<
|
|
6
|
-
readonly durationInFrames?: number | undefined;
|
|
5
|
+
export declare const AnimatedImage: React.ComponentType<import("../Interactive.js").InteractiveBaseProps & RemotionAnimatedImageProps & {
|
|
7
6
|
readonly effects?: EffectsProp | undefined;
|
|
8
7
|
} & {
|
|
9
|
-
readonly
|
|
8
|
+
readonly controls?: SequenceControls | undefined;
|
|
10
9
|
readonly ref?: React.Ref<HTMLCanvasElement> | undefined;
|
|
11
10
|
}>;
|
|
@@ -6,20 +6,18 @@ const react_1 = require("react");
|
|
|
6
6
|
const cancel_render_js_1 = require("../cancel-render.js");
|
|
7
7
|
const use_memoized_effects_js_1 = require("../effects/use-memoized-effects.js");
|
|
8
8
|
const enable_sequence_stack_traces_js_1 = require("../enable-sequence-stack-traces.js");
|
|
9
|
-
const
|
|
9
|
+
const interactivity_schema_js_1 = require("../interactivity-schema.js");
|
|
10
10
|
const Sequence_js_1 = require("../Sequence.js");
|
|
11
11
|
const use_current_frame_js_1 = require("../use-current-frame.js");
|
|
12
12
|
const use_delay_render_js_1 = require("../use-delay-render.js");
|
|
13
13
|
const use_video_config_js_1 = require("../use-video-config.js");
|
|
14
|
-
const
|
|
14
|
+
const with_interactivity_schema_js_1 = require("../with-interactivity-schema.js");
|
|
15
15
|
const canvas_1 = require("./canvas");
|
|
16
16
|
const decode_image_js_1 = require("./decode-image.js");
|
|
17
17
|
const request_init_1 = require("./request-init");
|
|
18
18
|
const resolve_image_source_1 = require("./resolve-image-source");
|
|
19
19
|
const animatedImageSchema = {
|
|
20
|
-
|
|
21
|
-
from: sequence_field_schema_js_1.fromField,
|
|
22
|
-
freeze: sequence_field_schema_js_1.freezeField,
|
|
20
|
+
...interactivity_schema_js_1.baseSchema,
|
|
23
21
|
playbackRate: {
|
|
24
22
|
type: 'number',
|
|
25
23
|
min: 0,
|
|
@@ -30,8 +28,7 @@ const animatedImageSchema = {
|
|
|
30
28
|
hiddenFromList: false,
|
|
31
29
|
keyframable: false,
|
|
32
30
|
},
|
|
33
|
-
...
|
|
34
|
-
hidden: sequence_field_schema_js_1.hiddenField,
|
|
31
|
+
...interactivity_schema_js_1.transformSchema,
|
|
35
32
|
};
|
|
36
33
|
const AnimatedImageContent = (0, react_1.forwardRef)(({ src, width, height, onError, loopBehavior = 'loop', playbackRate = 1, fit = 'fill', requestInit, effects, controls, ...props }, canvasRef) => {
|
|
37
34
|
var _a;
|
|
@@ -153,7 +150,7 @@ const AnimatedImageContent = (0, react_1.forwardRef)(({ src, width, height, onEr
|
|
|
153
150
|
return (jsx_runtime_1.jsx(canvas_1.Canvas, { ref: ref, width: width, height: height, fit: fit, effects: memoizedEffects, ...props }));
|
|
154
151
|
});
|
|
155
152
|
AnimatedImageContent.displayName = 'AnimatedImageContent';
|
|
156
|
-
const AnimatedImageInner = ({ src, width, height, onError, fit, playbackRate, loopBehavior, id, className, style, durationInFrames, requestInit, effects = [],
|
|
153
|
+
const AnimatedImageInner = ({ src, width, height, onError, fit, playbackRate, loopBehavior, id, className, style, durationInFrames, requestInit, effects = [], controls, ref, ...sequenceProps }) => {
|
|
157
154
|
const { durationInFrames: videoDuration } = (0, use_video_config_js_1.useVideoConfig)();
|
|
158
155
|
const resolvedDuration = durationInFrames !== null && durationInFrames !== void 0 ? durationInFrames : videoDuration;
|
|
159
156
|
const actualRef = (0, react_1.useRef)(null);
|
|
@@ -174,9 +171,9 @@ const AnimatedImageInner = ({ src, width, height, onError, fit, playbackRate, lo
|
|
|
174
171
|
style,
|
|
175
172
|
requestInit,
|
|
176
173
|
};
|
|
177
|
-
return (jsx_runtime_1.jsx(Sequence_js_1.Sequence, { layout: "none", durationInFrames: resolvedDuration, name: "<AnimatedImage>", _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/animatedimage",
|
|
174
|
+
return (jsx_runtime_1.jsx(Sequence_js_1.Sequence, { layout: "none", durationInFrames: resolvedDuration, name: "<AnimatedImage>", _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/animatedimage", controls: controls, _remotionInternalEffects: memoizedEffectDefinitions, ...sequenceProps, outlineRef: actualRef, children: jsx_runtime_1.jsx(AnimatedImageContent, { ...animatedImageProps, ref: actualRef, effects: effects, controls: controls }) }));
|
|
178
175
|
};
|
|
179
|
-
exports.AnimatedImage = (0,
|
|
176
|
+
exports.AnimatedImage = (0, with_interactivity_schema_js_1.withInteractivitySchema)({
|
|
180
177
|
Component: AnimatedImageInner,
|
|
181
178
|
componentIdentity: 'dev.remotion.remotion.AnimatedImage',
|
|
182
179
|
schema: animatedImageSchema,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ImageFit } from '../calculate-image-fit.js';
|
|
2
2
|
import type { EffectsProp } from '../effects/effect-types.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { InteractiveBaseProps } from '../Interactive.js';
|
|
4
4
|
export type RemotionAnimatedImageLoopBehavior = 'loop' | 'pause-after-finish' | 'clear-after-finish';
|
|
5
5
|
export type RemotionAnimatedImageProps = {
|
|
6
6
|
src: string;
|
|
@@ -15,8 +15,7 @@ export type RemotionAnimatedImageProps = {
|
|
|
15
15
|
className?: string;
|
|
16
16
|
requestInit?: RequestInit;
|
|
17
17
|
};
|
|
18
|
-
export type AnimatedImageProps =
|
|
19
|
-
readonly durationInFrames?: number;
|
|
18
|
+
export type AnimatedImageProps = InteractiveBaseProps & RemotionAnimatedImageProps & {
|
|
20
19
|
readonly effects?: EffectsProp;
|
|
21
20
|
};
|
|
22
21
|
export type AnimatedImageFillMode = ImageFit;
|