remotion 4.0.475 → 4.0.476

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.
@@ -290,9 +290,7 @@ 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: name === undefined
294
- ? 'https://www.remotion.dev/docs/remotion/html-in-canvas'
295
- : undefined, _experimentalControls: controls, _remotionInternalEffects: memoizedEffectDefinitions, _remotionInternalRefForOutline: 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 }) }));
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", _experimentalControls: controls, _remotionInternalEffects: memoizedEffectDefinitions, _remotionInternalRefForOutline: 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 }) }));
296
294
  });
297
295
  HtmlInCanvasInner.displayName = 'HtmlInCanvas';
298
296
  const htmlInCanvasSchema = {
package/dist/cjs/Img.js CHANGED
@@ -187,7 +187,7 @@ const NativeImgInner = ({ hidden, name, stack, showInTimeline, src, from, durati
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, _remotionInternalStack: stack, _remotionInternalDocumentationLink: name === undefined ? 'https://www.remotion.dev/docs/img' : undefined, _remotionInternalIsMedia: { type: 'image', src }, name: name !== null && name !== void 0 ? name : '<Img>', _experimentalControls: controls, showInTimeline: showInTimeline !== null && showInTimeline !== void 0 ? showInTimeline : true, hidden: hidden, _remotionInternalRefForOutline: refForOutline, children: jsx_runtime_1.jsx(ImgContent, { src: src, refForOutline: refForOutline, ...props }) }));
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, _remotionInternalStack: stack, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img", _remotionInternalIsMedia: { type: 'image', src }, name: name !== null && name !== void 0 ? name : '<Img>', _experimentalControls: controls, showInTimeline: showInTimeline !== null && showInTimeline !== void 0 ? showInTimeline : true, hidden: hidden, _remotionInternalRefForOutline: 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 = {
@@ -254,7 +254,7 @@ const ImgInner = ({ effects = [], ref, hidden, name, stack, showInTimeline, src,
254
254
  const canvasHeight = typeof height === 'number' ? height : undefined;
255
255
  const canvasProps = props;
256
256
  const canvasFit = (_a = getFitFromObjectFit(style)) !== null && _a !== void 0 ? _a : 'fill';
257
- 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, hidden: hidden, name: name !== null && name !== void 0 ? name : '<Img>', showInTimeline: showInTimeline, stack: stack, _remotionInternalDocumentationLink: name === undefined ? 'https://www.remotion.dev/docs/img' : undefined, _experimentalControls: controls, _remotionInternalRefForOutline: refForOutline, ...canvasProps }));
257
+ 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, hidden: hidden, name: name !== null && name !== void 0 ? name : '<Img>', showInTimeline: showInTimeline, stack: stack, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img", _experimentalControls: controls, _remotionInternalRefForOutline: refForOutline, ...canvasProps }));
258
258
  };
259
259
  /*
260
260
  * @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.
@@ -62,7 +62,7 @@ const makeInteractiveElement = (tag, displayName) => {
62
62
  refForOutline.current = element;
63
63
  setRef(ref, element);
64
64
  }, [ref]);
65
- 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, hidden: hidden, name: name !== null && name !== void 0 ? name : displayName, showInTimeline: showInTimeline !== null && showInTimeline !== void 0 ? showInTimeline : true, _experimentalControls: _experimentalControls, _remotionInternalStack: stack, _remotionInternalRefForOutline: refForOutline, children: react_1.default.createElement(tag, {
65
+ 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, hidden: hidden, name: name !== null && name !== void 0 ? name : displayName, showInTimeline: showInTimeline !== null && showInTimeline !== void 0 ? showInTimeline : true, _experimentalControls: _experimentalControls, _remotionInternalStack: stack, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/interactive", _remotionInternalRefForOutline: refForOutline, children: react_1.default.createElement(tag, {
66
66
  ...props,
67
67
  ref: callbackRef,
68
68
  }) }));
@@ -20,7 +20,7 @@ const v5_flag_js_1 = require("./v5-flag.js");
20
20
  const wrap_in_schema_js_1 = require("./wrap-in-schema.js");
21
21
  const EMPTY_EFFECTS = [];
22
22
  const RegularSequenceRefForwardingFunction = ({ from = 0, durationInFrames = Infinity, children, name, height, width, showInTimeline = true, hidden = false, _experimentalControls: controls, _remotionInternalEffects, _remotionInternalLoopDisplay: loopDisplay, _remotionInternalStack: stack, _remotionInternalDocumentationLink: documentationLink, _remotionInternalPremountDisplay: premountDisplay, _remotionInternalPostmountDisplay: postmountDisplay, _remotionInternalIsMedia: isMedia, _remotionInternalRefForOutline: refForOutline, ...other }, ref) => {
23
- var _a;
23
+ var _a, _b;
24
24
  const { layout = 'absolute-fill' } = other;
25
25
  const [id] = (0, react_1.useState)(() => String(Math.random()));
26
26
  const parentSequence = (0, react_1.useContext)(SequenceContext_js_1.SequenceContext);
@@ -28,6 +28,7 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, durationInFrames = Inf
28
28
  const cumulatedFrom = parentSequence
29
29
  ? parentSequence.cumulatedFrom + parentSequence.relativeFrom
30
30
  : 0;
31
+ const absoluteFrom = ((_a = parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.absoluteFrom) !== null && _a !== void 0 ? _a : 0) + from;
31
32
  const nonce = (0, nonce_js_1.useNonce)();
32
33
  if (layout !== 'absolute-fill' && layout !== 'none') {
33
34
  throw new TypeError(`The layout prop of <Sequence /> expects either "absolute-fill" or "none", but you passed: ${layout}`);
@@ -92,6 +93,7 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, durationInFrames = Inf
92
93
  const contextValue = (0, react_1.useMemo)(() => {
93
94
  var _a, _b, _c;
94
95
  return {
96
+ absoluteFrom,
95
97
  cumulatedFrom,
96
98
  relativeFrom: from,
97
99
  cumulatedNegativeFrom,
@@ -107,6 +109,7 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, durationInFrames = Inf
107
109
  };
108
110
  }, [
109
111
  cumulatedFrom,
112
+ absoluteFrom,
110
113
  from,
111
114
  actualDurationInFrames,
112
115
  parentSequence,
@@ -122,10 +125,10 @@ const RegularSequenceRefForwardingFunction = ({ from = 0, durationInFrames = Inf
122
125
  const timelineClipName = (0, react_1.useMemo)(() => {
123
126
  return name !== null && name !== void 0 ? name : '';
124
127
  }, [name]);
125
- const resolvedDocumentationLink = documentationLink !== null && documentationLink !== void 0 ? documentationLink : (name === undefined ? 'https://www.remotion.dev/docs/sequence' : null);
128
+ const resolvedDocumentationLink = documentationLink !== null && documentationLink !== void 0 ? documentationLink : 'https://www.remotion.dev/docs/sequence';
126
129
  const env = (0, use_remotion_environment_js_1.useRemotionEnvironment)();
127
130
  const isInsideSeries = (0, react_1.useContext)(is_inside_series_js_1.IsInsideSeriesContext);
128
- const inheritedStack = (_a = other === null || other === void 0 ? void 0 : other.stack) !== null && _a !== void 0 ? _a : null;
131
+ const inheritedStack = (_b = other === null || other === void 0 ? void 0 : other.stack) !== null && _b !== void 0 ? _b : null;
129
132
  // Our assumption: Stack doesnt' change. After we symbolicate we assign it a nodePath
130
133
  // and if it changes, it would lead to-remounting of the sequence.
131
134
  const stackRef = (0, react_1.useRef)(null);
@@ -1,5 +1,6 @@
1
1
  export declare const SequenceContext: import("react").Context<SequenceContextType | null>;
2
2
  export type SequenceContextType = {
3
+ absoluteFrom: number;
3
4
  cumulatedFrom: number;
4
5
  cumulatedNegativeFrom: number;
5
6
  relativeFrom: number;
@@ -134,7 +134,7 @@ const AudioForDevelopmentForwardRefFunction = (props, ref) => {
134
134
  premountDisplay: (_a = sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.premountDisplay) !== null && _a !== void 0 ? _a : null,
135
135
  postmountDisplay: (_b = sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.postmountDisplay) !== null && _b !== void 0 ? _b : null,
136
136
  loopDisplay: undefined,
137
- documentationLink: name === undefined ? 'https://www.remotion.dev/docs/html5-audio' : null,
137
+ documentationLink: 'https://www.remotion.dev/docs/html5-audio',
138
138
  refForOutline: null,
139
139
  });
140
140
  // putting playback before useVolume
@@ -1,3 +1,5 @@
1
+ import type { SpringConfig } from './spring/spring-utils.js';
2
+ export type EasingSpringConfig = Partial<Pick<SpringConfig, 'damping' | 'mass' | 'stiffness' | 'overshootClamping'>>;
1
3
  /**
2
4
  * @description The Easing module implements common easing functions. You can use it with the interpolate() API.
3
5
  * @see [Documentation](https://www.remotion.dev/docs/easing)
@@ -15,6 +17,7 @@ export declare class Easing {
15
17
  static exp(t: number): number;
16
18
  static elastic(bounciness?: number): (t: number) => number;
17
19
  static back(s?: number): (t: number) => number;
20
+ static spring(config?: EasingSpringConfig): (t: number) => number;
18
21
  static bounce(t: number): number;
19
22
  static bezier(x1: number, y1: number, x2: number, y2: number): (t: number) => number;
20
23
  static in(easing: (t: number) => number): (t: number) => number;
@@ -3,10 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Easing = void 0;
5
5
  const bezier_js_1 = require("./bezier.js");
6
+ const index_js_1 = require("./spring/index.js");
6
7
  // Some easing curves are only defined on [0, 1] (e.g. quarter circle, bounce segments).
7
8
  // `interpolate(..., { extrapolate: 'extend' })` can pass values outside that interval; clamp
8
9
  // there so we return endpoints instead of NaN or unintended extrapolation.
9
10
  const clampUnit = (t) => Math.min(1, Math.max(0, t));
11
+ const springEasingDurationInFrames = 30;
10
12
  /**
11
13
  * @description The Easing module implements common easing functions. You can use it with the interpolate() API.
12
14
  * @see [Documentation](https://www.remotion.dev/docs/easing)
@@ -50,6 +52,22 @@ class Easing {
50
52
  static back(s = 1.70158) {
51
53
  return (t) => t * t * ((s + 1) * t - s);
52
54
  }
55
+ static spring(config = {}) {
56
+ return (t) => {
57
+ if (t <= 0) {
58
+ return 0;
59
+ }
60
+ if (t >= 1) {
61
+ return 1;
62
+ }
63
+ return (0, index_js_1.spring)({
64
+ fps: springEasingDurationInFrames,
65
+ frame: t * springEasingDurationInFrames,
66
+ config,
67
+ durationInFrames: springEasingDurationInFrames,
68
+ });
69
+ };
70
+ }
53
71
  static bounce(t) {
54
72
  const u = clampUnit(t);
55
73
  if (u < 1 / 2.75) {
@@ -148,7 +148,7 @@ const SolidOuter = (0, react_1.forwardRef)(({ effects = [], _experimentalControl
148
148
  (0, react_1.useImperativeHandle)(ref, () => {
149
149
  return actualRef.current;
150
150
  }, []);
151
- return (jsx_runtime_1.jsx(Sequence_js_1.Sequence, { layout: "none", from: from, hidden: hidden, showInTimeline: showInTimeline, _experimentalControls: controls, _remotionInternalEffects: memoizedEffectDefinitions, durationInFrames: durationInFrames, name: name !== null && name !== void 0 ? name : '<Solid>', _remotionInternalRefForOutline: actualRef, _remotionInternalDocumentationLink: name === undefined ? 'https://www.remotion.dev/docs/solid' : undefined, ...props, children: jsx_runtime_1.jsx(SolidInner, { reference: actualRef, overrideId: (_a = controls === null || controls === void 0 ? void 0 : controls.overrideId) !== null && _a !== void 0 ? _a : null, color: color, height: height, width: width, className: className, style: style, effects: effects, pixelDensity: pixelDensity }) }));
151
+ return (jsx_runtime_1.jsx(Sequence_js_1.Sequence, { layout: "none", from: from, hidden: hidden, showInTimeline: showInTimeline, _experimentalControls: controls, _remotionInternalEffects: memoizedEffectDefinitions, durationInFrames: durationInFrames, name: name !== null && name !== void 0 ? name : '<Solid>', _remotionInternalRefForOutline: actualRef, _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/solid", ...props, children: jsx_runtime_1.jsx(SolidInner, { reference: actualRef, overrideId: (_a = controls === null || controls === void 0 ? void 0 : controls.overrideId) !== null && _a !== void 0 ? _a : null, color: color, height: height, width: width, className: className, style: style, effects: effects, pixelDensity: pixelDensity }) }));
152
152
  });
153
153
  exports.Solid = (0, wrap_in_schema_js_1.wrapInSchema)({
154
154
  Component: SolidOuter,
@@ -86,6 +86,7 @@ export declare const Internals: {
86
86
  }) => import("react").ComponentType<Props>;
87
87
  readonly sequenceSchema: {
88
88
  readonly hidden: import("./sequence-field-schema.js").BooleanFieldSchema;
89
+ readonly showInTimeline: import("./sequence-field-schema.js").HiddenFieldSchema;
89
90
  readonly from: {
90
91
  readonly type: "number";
91
92
  readonly default: 0;
@@ -164,6 +165,8 @@ export declare const Internals: {
164
165
  readonly none: {};
165
166
  };
166
167
  };
168
+ } & {
169
+ name: SequenceFieldSchema;
167
170
  };
168
171
  readonly SequenceWithoutSchema: import("react").ForwardRefExoticComponent<import("./Sequence.js").SequenceProps & import("react").RefAttributes<HTMLDivElement>>;
169
172
  readonly sequenceStyleSchema: {
@@ -84,7 +84,7 @@ const Loop = ({ durationInFrames, times = Infinity, children, name, showInTimeli
84
84
  durationInFrames,
85
85
  };
86
86
  }, [currentFrame, durationInFrames]);
87
- return (jsx_runtime_1.jsx(LoopContext.Provider, { value: loopContext, children: jsx_runtime_1.jsx(Sequence_js_1.Sequence, { durationInFrames: durationInFrames, from: from, name: name !== null && name !== void 0 ? name : '<Loop>', _remotionInternalDocumentationLink: name === undefined ? 'https://www.remotion.dev/docs/loop' : undefined, _remotionInternalLoopDisplay: loopDisplay, layout: props.layout, style: style, showInTimeline: showInTimeline, children: children }) }));
87
+ return (jsx_runtime_1.jsx(LoopContext.Provider, { value: loopContext, children: jsx_runtime_1.jsx(Sequence_js_1.Sequence, { durationInFrames: durationInFrames, from: from, name: name !== null && name !== void 0 ? name : '<Loop>', _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/loop", _remotionInternalLoopDisplay: loopDisplay, layout: props.layout, style: style, showInTimeline: showInTimeline, children: children }) }));
88
88
  };
89
89
  exports.Loop = Loop;
90
90
  exports.Loop.useLoop = useLoop;
@@ -63,6 +63,7 @@ export declare const NoReactInternals: {
63
63
  }) => string[];
64
64
  sequenceSchema: {
65
65
  readonly hidden: import("./sequence-field-schema").BooleanFieldSchema;
66
+ readonly showInTimeline: import("./sequence-field-schema").HiddenFieldSchema;
66
67
  readonly from: {
67
68
  readonly type: "number";
68
69
  readonly default: 0;
@@ -141,6 +142,8 @@ export declare const NoReactInternals: {
141
142
  readonly none: {};
142
143
  };
143
144
  };
145
+ } & {
146
+ name: import("./sequence-field-schema").SequenceFieldSchema;
144
147
  };
145
148
  parseScaleValue: (value: unknown) => import("./scale-value").ScaleValue;
146
149
  serializeScaleValue: ([x, y, z]: import("./scale-value").ScaleValue) => string | number;
@@ -225,6 +225,10 @@ export declare const sequenceStyleSchema: {
225
225
  };
226
226
  };
227
227
  export declare const hiddenField: SequenceFieldSchema;
228
+ export declare const sequenceNameField: SequenceFieldSchema;
229
+ export declare const extendSchemaWithSequenceName: <S extends SequenceSchema>(schema: S) => S & {
230
+ name: SequenceFieldSchema;
231
+ };
228
232
  export declare const durationInFramesField: {
229
233
  readonly type: "number";
230
234
  readonly default: undefined;
@@ -240,6 +244,7 @@ export declare const fromField: {
240
244
  };
241
245
  export declare const sequenceSchema: {
242
246
  readonly hidden: BooleanFieldSchema;
247
+ readonly showInTimeline: HiddenFieldSchema;
243
248
  readonly from: {
244
249
  readonly type: "number";
245
250
  readonly default: 0;
@@ -318,9 +323,12 @@ export declare const sequenceSchema: {
318
323
  readonly none: {};
319
324
  };
320
325
  };
326
+ } & {
327
+ name: SequenceFieldSchema;
321
328
  };
322
329
  export declare const sequenceSchemaWithoutFrom: {
323
330
  readonly hidden: BooleanFieldSchema;
331
+ readonly showInTimeline: HiddenFieldSchema;
324
332
  readonly durationInFrames: {
325
333
  readonly type: "number";
326
334
  readonly default: undefined;
@@ -393,5 +401,7 @@ export declare const sequenceSchemaWithoutFrom: {
393
401
  readonly none: {};
394
402
  };
395
403
  };
404
+ } & {
405
+ name: SequenceFieldSchema;
396
406
  };
397
407
  export declare const sequenceSchemaDefaultLayoutNone: SequenceSchema;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sequenceSchemaDefaultLayoutNone = exports.sequenceSchemaWithoutFrom = exports.sequenceSchema = exports.fromField = exports.durationInFramesField = exports.hiddenField = exports.sequenceStyleSchema = exports.sequencePremountSchema = exports.sequenceVisualStyleSchema = void 0;
3
+ exports.sequenceSchemaDefaultLayoutNone = exports.sequenceSchemaWithoutFrom = exports.sequenceSchema = exports.fromField = exports.durationInFramesField = exports.extendSchemaWithSequenceName = exports.sequenceNameField = exports.hiddenField = exports.sequenceStyleSchema = exports.sequencePremountSchema = exports.sequenceVisualStyleSchema = void 0;
4
4
  exports.sequenceVisualStyleSchema = {
5
5
  'style.transformOrigin': {
6
6
  type: 'transform-origin',
@@ -69,6 +69,19 @@ exports.hiddenField = {
69
69
  default: false,
70
70
  description: 'Hidden',
71
71
  };
72
+ const showInTimelineField = {
73
+ type: 'hidden',
74
+ };
75
+ exports.sequenceNameField = {
76
+ type: 'hidden',
77
+ };
78
+ const extendSchemaWithSequenceName = (schema) => {
79
+ return {
80
+ name: exports.sequenceNameField,
81
+ ...schema,
82
+ };
83
+ };
84
+ exports.extendSchemaWithSequenceName = extendSchemaWithSequenceName;
72
85
  exports.durationInFramesField = {
73
86
  type: 'number',
74
87
  default: undefined,
@@ -82,8 +95,9 @@ exports.fromField = {
82
95
  step: 1,
83
96
  hiddenFromList: true,
84
97
  };
85
- exports.sequenceSchema = {
98
+ exports.sequenceSchema = (0, exports.extendSchemaWithSequenceName)({
86
99
  hidden: exports.hiddenField,
100
+ showInTimeline: showInTimelineField,
87
101
  from: exports.fromField,
88
102
  durationInFrames: exports.durationInFramesField,
89
103
  layout: {
@@ -95,12 +109,13 @@ exports.sequenceSchema = {
95
109
  none: {},
96
110
  },
97
111
  },
98
- };
99
- exports.sequenceSchemaWithoutFrom = {
112
+ });
113
+ exports.sequenceSchemaWithoutFrom = (0, exports.extendSchemaWithSequenceName)({
100
114
  hidden: exports.hiddenField,
115
+ showInTimeline: showInTimelineField,
101
116
  durationInFrames: exports.durationInFramesField,
102
117
  layout: exports.sequenceSchema.layout,
103
- };
118
+ });
104
119
  exports.sequenceSchemaDefaultLayoutNone = {
105
120
  ...exports.sequenceSchema,
106
121
  layout: {
@@ -4,7 +4,7 @@ type SeriesSequenceProps = PropsWithChildren<{
4
4
  readonly durationInFrames: number;
5
5
  readonly offset?: number;
6
6
  readonly className?: string;
7
- } & Pick<SequenceProps, 'layout' | 'name' | 'hidden'> & LayoutAndStyle>;
7
+ } & Pick<SequenceProps, 'layout' | 'name' | 'hidden' | 'showInTimeline'> & LayoutAndStyle>;
8
8
  declare const SeriesSequence: React.ForwardRefExoticComponent<SeriesSequenceProps & React.RefAttributes<HTMLDivElement>>;
9
9
  type SeriesProps = SequenceProps;
10
10
  /**
@@ -3,4 +3,4 @@
3
3
  * @see [Documentation](https://remotion.dev/docs/version)
4
4
  * @returns {string} The current version of the remotion package
5
5
  */
6
- export declare const VERSION = "4.0.475";
6
+ export declare const VERSION = "4.0.476";
@@ -7,4 +7,4 @@ exports.VERSION = void 0;
7
7
  * @see [Documentation](https://remotion.dev/docs/version)
8
8
  * @returns {string} The current version of the remotion package
9
9
  */
10
- exports.VERSION = '4.0.475';
10
+ exports.VERSION = '4.0.476';
@@ -131,11 +131,9 @@ const VideoForDevelopmentRefForwardingFunction = (props, ref) => {
131
131
  premountDisplay: (_c = parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.premountDisplay) !== null && _c !== void 0 ? _c : null,
132
132
  postmountDisplay: (_d = parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.postmountDisplay) !== null && _d !== void 0 ? _d : null,
133
133
  loopDisplay: undefined,
134
- documentationLink: name === undefined
135
- ? onlyWarnForMediaSeekingError
136
- ? 'https://www.remotion.dev/docs/offthreadvideo'
137
- : 'https://www.remotion.dev/docs/html5-video'
138
- : null,
134
+ documentationLink: onlyWarnForMediaSeekingError
135
+ ? 'https://www.remotion.dev/docs/offthreadvideo'
136
+ : 'https://www.remotion.dev/docs/html5-video',
139
137
  refForOutline: videoRef,
140
138
  });
141
139
  // putting playback before useVolume
@@ -282,6 +280,6 @@ const VideoForDevelopmentRefForwardingFunction = (props, ref) => {
282
280
  requestsVideoFrame: Boolean(onVideoFrame),
283
281
  isClientSideRendering: false,
284
282
  });
285
- return (jsx_runtime_1.jsx("video", { ref: videoRef, muted: muted || mediaMuted || userPreferredVolume <= 0, playsInline: true, src: actualSrc, loop: _remotionInternalNativeLoopPassed, style: actualStyle, disableRemotePlayback: true, crossOrigin: crossOriginValue, ...nativeProps }));
283
+ return (jsx_runtime_1.jsx("video", { ...nativeProps, ref: videoRef, muted: muted || mediaMuted || userPreferredVolume <= 0, playsInline: true, src: actualSrc, loop: _remotionInternalNativeLoopPassed, style: actualStyle, disableRemotePlayback: true, crossOrigin: crossOriginValue, controls: false }));
286
284
  };
287
285
  exports.VideoForPreview = (0, react_1.forwardRef)(VideoForDevelopmentRefForwardingFunction);
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { SequenceControls } from './CompositionManager.js';
3
- import type { SequenceSchema } from './sequence-field-schema.js';
3
+ import { type SequenceSchema } from './sequence-field-schema.js';
4
4
  export declare const getNestedValue: (obj: Record<string, unknown>, key: string) => unknown;
5
5
  export declare const readValuesFromProps: (props: Record<string, unknown>, keys: string[]) => Record<string, unknown>;
6
6
  export declare const selectActiveKeys: (schema: SequenceSchema, values: Record<string, unknown>) => string[];
@@ -38,6 +38,7 @@ const react_1 = __importStar(require("react"));
38
38
  const delete_nested_key_js_1 = require("./delete-nested-key.js");
39
39
  const use_memoized_effects_js_1 = require("./effects/use-memoized-effects.js");
40
40
  const flatten_schema_js_1 = require("./flatten-schema.js");
41
+ const sequence_field_schema_js_1 = require("./sequence-field-schema.js");
41
42
  const sequence_node_path_js_1 = require("./sequence-node-path.js");
42
43
  const SequenceManager_js_1 = require("./SequenceManager.js");
43
44
  const use_current_frame_js_1 = require("./use-current-frame.js");
@@ -99,7 +100,8 @@ exports.mergeValues = mergeValues;
99
100
  const stackToOverrideMap = {};
100
101
  const wrapInSchema = ({ Component, schema, supportsEffects, }) => {
101
102
  // Schema is static for a component, so we move this outside
102
- const flatSchema = (0, flatten_schema_js_1.getFlatSchemaWithAllKeys)(schema);
103
+ const schemaWithSequenceName = (0, sequence_field_schema_js_1.extendSchemaWithSequenceName)(schema);
104
+ const flatSchema = (0, flatten_schema_js_1.getFlatSchemaWithAllKeys)(schemaWithSequenceName);
103
105
  const flatKeys = Object.keys(flatSchema);
104
106
  const Wrapped = (0, react_1.forwardRef)((props, ref) => {
105
107
  var _a;
@@ -154,7 +156,7 @@ const wrapInSchema = ({ Component, schema, supportsEffects, }) => {
154
156
  // eslint-disable-next-line react-hooks/rules-of-hooks
155
157
  const controls = (0, react_1.useMemo)(() => {
156
158
  return {
157
- schema,
159
+ schema: schemaWithSequenceName,
158
160
  currentRuntimeValueDotNotation,
159
161
  overrideId,
160
162
  supportsEffects,
@@ -164,7 +166,7 @@ const wrapInSchema = ({ Component, schema, supportsEffects, }) => {
164
166
  // eslint-disable-next-line react-hooks/rules-of-hooks
165
167
  const { merged: valuesDotNotation, propsToDelete } = (0, react_1.useMemo)(() => {
166
168
  return (0, use_schema_js_1.computeEffectiveSchemaValuesDotNotation)({
167
- schema,
169
+ schema: schemaWithSequenceName,
168
170
  currentValue: currentRuntimeValueDotNotation,
169
171
  overrideValues: nodePath === null ? {} : getDragOverrides(nodePath),
170
172
  propStatus: nodePath === null
@@ -180,7 +182,7 @@ const wrapInSchema = ({ Component, schema, supportsEffects, }) => {
180
182
  frame,
181
183
  ]);
182
184
  // 4. Eliminate values forbidden by the resolved discriminated union.
183
- const activeKeys = (0, exports.selectActiveKeys)(schema, valuesDotNotation);
185
+ const activeKeys = (0, exports.selectActiveKeys)(schemaWithSequenceName, valuesDotNotation);
184
186
  // 5. Apply the active values back onto the props.
185
187
  const mergedProps = (0, exports.mergeValues)({
186
188
  props: props,