remotion 4.0.471 → 4.0.472

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/cjs/CompositionManager.d.ts +2 -0
  2. package/dist/cjs/CompositionManagerContext.d.ts +1 -1
  3. package/dist/cjs/CompositionManagerProvider.js +2 -1
  4. package/dist/cjs/Folder.d.ts +1 -0
  5. package/dist/cjs/Folder.js +6 -2
  6. package/dist/cjs/HtmlInCanvas.d.ts +4 -0
  7. package/dist/cjs/HtmlInCanvas.js +65 -15
  8. package/dist/cjs/Img.d.ts +16 -2
  9. package/dist/cjs/Img.js +7 -1
  10. package/dist/cjs/Sequence.js +15 -4
  11. package/dist/cjs/SequenceManager.d.ts +4 -3
  12. package/dist/cjs/animated-image/AnimatedImage.js +9 -1
  13. package/dist/cjs/canvas-image/CanvasImage.d.ts +16 -2
  14. package/dist/cjs/canvas-image/CanvasImage.js +7 -1
  15. package/dist/cjs/effects/Solid.d.ts +1 -0
  16. package/dist/cjs/effects/Solid.js +39 -10
  17. package/dist/cjs/effects/use-memoized-effects.d.ts +1 -1
  18. package/dist/cjs/effects/use-memoized-effects.js +13 -3
  19. package/dist/cjs/get-effective-visual-mode-value.d.ts +15 -4
  20. package/dist/cjs/get-effective-visual-mode-value.js +35 -4
  21. package/dist/cjs/index.d.ts +6 -3
  22. package/dist/cjs/index.js +5 -1
  23. package/dist/cjs/internals.d.ts +83 -37
  24. package/dist/cjs/internals.js +11 -0
  25. package/dist/cjs/interpolate-keyframed-status.js +0 -6
  26. package/dist/cjs/interpolate.d.ts +2 -0
  27. package/dist/cjs/interpolate.js +218 -37
  28. package/dist/cjs/no-react.d.ts +24 -3
  29. package/dist/cjs/no-react.js +3 -0
  30. package/dist/cjs/normalize-number.d.ts +1 -0
  31. package/dist/cjs/normalize-number.js +7 -0
  32. package/dist/cjs/scale-value.d.ts +4 -0
  33. package/dist/cjs/scale-value.js +48 -0
  34. package/dist/cjs/sequence-field-schema.d.ts +105 -12
  35. package/dist/cjs/sequence-field-schema.js +25 -4
  36. package/dist/cjs/series/index.d.ts +1 -2
  37. package/dist/cjs/series/index.js +5 -1
  38. package/dist/cjs/use-media-in-timeline.js +1 -0
  39. package/dist/cjs/use-pixel-density.d.ts +7 -0
  40. package/dist/cjs/use-pixel-density.js +66 -0
  41. package/dist/cjs/use-schema.d.ts +26 -12
  42. package/dist/cjs/use-schema.js +62 -9
  43. package/dist/cjs/version.d.ts +1 -1
  44. package/dist/cjs/version.js +1 -1
  45. package/dist/cjs/video/OffthreadVideo.js +2 -2
  46. package/dist/cjs/video/VideoForPreview.d.ts +1 -1
  47. package/dist/cjs/video/VideoForRendering.d.ts +2 -19
  48. package/dist/cjs/video/VideoForRendering.js +2 -0
  49. package/dist/cjs/video/emit-video-frame.js +10 -4
  50. package/dist/cjs/video/html5-video.d.ts +2 -0
  51. package/dist/cjs/video/html5-video.js +3 -4
  52. package/dist/cjs/video/props.d.ts +5 -5
  53. package/dist/cjs/wrap-in-schema.d.ts +7 -3
  54. package/dist/cjs/wrap-in-schema.js +2 -1
  55. package/dist/esm/index.mjs +1082 -597
  56. package/dist/esm/no-react.mjs +293 -35
  57. package/dist/esm/version.mjs +1 -1
  58. package/package.json +2 -2
@@ -11,7 +11,20 @@ const wrap_in_schema_js_1 = require("../wrap-in-schema.js");
11
11
  const run_effect_chain_js_1 = require("./run-effect-chain.js");
12
12
  const use_effect_chain_state_js_1 = require("./use-effect-chain-state.js");
13
13
  const use_memoized_effects_js_1 = require("./use-memoized-effects.js");
14
+ const resolveSolidPixelDensity = (pixelDensity) => {
15
+ if (pixelDensity === undefined) {
16
+ return 1;
17
+ }
18
+ if (typeof pixelDensity !== 'number' ||
19
+ !Number.isFinite(pixelDensity) ||
20
+ pixelDensity <= 0) {
21
+ throw new Error(`<Solid>: \`pixelDensity\` must be a positive finite number. Received: ${String(pixelDensity)}.`);
22
+ }
23
+ return pixelDensity;
24
+ };
14
25
  const solidSchema = {
26
+ durationInFrames: sequence_field_schema_js_1.durationInFramesField,
27
+ from: sequence_field_schema_js_1.fromField,
15
28
  color: {
16
29
  type: 'color',
17
30
  default: 'transparent',
@@ -23,6 +36,7 @@ const solidSchema = {
23
36
  step: 1,
24
37
  default: 1920,
25
38
  description: 'Width',
39
+ hiddenFromList: false,
26
40
  },
27
41
  height: {
28
42
  type: 'number',
@@ -30,12 +44,16 @@ const solidSchema = {
30
44
  step: 1,
31
45
  default: 1080,
32
46
  description: 'Height',
47
+ hiddenFromList: false,
33
48
  },
34
49
  ...sequence_field_schema_js_1.sequenceVisualStyleSchema,
35
50
  hidden: sequence_field_schema_js_1.hiddenField,
36
51
  };
37
- const SolidInner = ({ color, width, height, effects = [], className, style, overrideId, reference, }) => {
52
+ const SolidInner = ({ color, width, height, effects = [], className, style, pixelDensity, overrideId, reference, }) => {
38
53
  const { delayRender, continueRender, cancelRender } = (0, use_delay_render_js_1.useDelayRender)();
54
+ const resolvedPixelDensity = resolveSolidPixelDensity(pixelDensity);
55
+ const canvasWidth = Math.ceil(width * resolvedPixelDensity);
56
+ const canvasHeight = Math.ceil(height * resolvedPixelDensity);
39
57
  const [outputCanvas, setOutputCanvas] = (0, react_1.useState)(null);
40
58
  const memoizedEffects = (0, use_memoized_effects_js_1.useMemoizedEffects)({
41
59
  effects,
@@ -83,12 +101,12 @@ const SolidInner = ({ color, width, height, effects = [], className, style, over
83
101
  ctx.fillRect(0, 0, 1, 1);
84
102
  }
85
103
  (0, run_effect_chain_js_1.runEffectChain)({
86
- state: chainState.get(width, height),
104
+ state: chainState.get(canvasWidth, canvasHeight),
87
105
  source: sourceCanvas,
88
106
  effects: memoizedEffects,
89
107
  output: outputCanvas,
90
- width,
91
- height,
108
+ width: canvasWidth,
109
+ height: canvasHeight,
92
110
  })
93
111
  .then((completed) => {
94
112
  if (completed) {
@@ -106,16 +124,23 @@ const SolidInner = ({ color, width, height, effects = [], className, style, over
106
124
  outputCanvas,
107
125
  sourceCanvas,
108
126
  chainState,
109
- width,
110
- height,
127
+ canvasWidth,
128
+ canvasHeight,
111
129
  delayRender,
112
130
  continueRender,
113
131
  cancelRender,
114
132
  memoizedEffects,
115
133
  ]);
116
- return (jsx_runtime_1.jsx("canvas", { ref: canvasRef, width: width, height: height, className: className, style: style }));
134
+ const canvasStyle = (0, react_1.useMemo)(() => {
135
+ return {
136
+ width,
137
+ height,
138
+ ...(style !== null && style !== void 0 ? style : {}),
139
+ };
140
+ }, [height, style, width]);
141
+ return (jsx_runtime_1.jsx("canvas", { ref: canvasRef, width: canvasWidth, height: canvasHeight, className: className, style: canvasStyle }));
117
142
  };
118
- const SolidOuter = (0, react_1.forwardRef)(({ effects = [], _experimentalControls: controls, color, height, width, className, durationInFrames, style, name, from, hidden, showInTimeline, ...props }, ref) => {
143
+ const SolidOuter = (0, react_1.forwardRef)(({ effects = [], _experimentalControls: controls, color, height, width, className, durationInFrames, style, name, from, hidden, showInTimeline, pixelDensity, ...props }, ref) => {
119
144
  var _a;
120
145
  props;
121
146
  const memoizedEffectDefinitions = (0, use_memoized_effects_js_1.useMemoizedEffectDefinitions)(effects);
@@ -123,8 +148,12 @@ const SolidOuter = (0, react_1.forwardRef)(({ effects = [], _experimentalControl
123
148
  (0, react_1.useImperativeHandle)(ref, () => {
124
149
  return actualRef.current;
125
150
  }, []);
126
- 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 }) }));
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 }) }));
152
+ });
153
+ exports.Solid = (0, wrap_in_schema_js_1.wrapInSchema)({
154
+ Component: SolidOuter,
155
+ schema: solidSchema,
156
+ supportsEffects: true,
127
157
  });
128
- exports.Solid = (0, wrap_in_schema_js_1.wrapInSchema)(SolidOuter, solidSchema);
129
158
  exports.Solid.displayName = 'Solid';
130
159
  (0, enable_sequence_stack_traces_js_1.addSequenceStackTraces)(exports.Solid);
@@ -1,6 +1,6 @@
1
1
  import type { CannotUpdateEffectReason, CannotUpdateSequenceReason } from '../SequenceManager.js';
2
2
  import { type SequencePropsSubscriptionKey } from '../SequenceManager.js';
3
- import type { CanUpdateSequencePropStatus, CodeValues } from '../use-schema.js';
3
+ import { type CanUpdateSequencePropStatus, type CodeValues } from '../use-schema.js';
4
4
  import type { EffectDefinition, EffectDefinitionAndStack, EffectDescriptor } from './effect-types.js';
5
5
  export declare const useMemoizedEffectDefinitions: (effects: readonly EffectDescriptor<unknown>[]) => readonly EffectDefinition<unknown>[];
6
6
  type EffectStatus = {
@@ -2,10 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useMemoizedEffects = exports.getCodeValuesCtx = exports.getEffectCodeValuesCtx = exports.useMemoizedEffectDefinitions = void 0;
4
4
  const react_1 = require("react");
5
+ const get_effective_visual_mode_value_js_1 = require("../get-effective-visual-mode-value.js");
5
6
  const sequence_node_path_js_1 = require("../sequence-node-path.js");
6
7
  const SequenceManager_js_1 = require("../SequenceManager.js");
7
8
  const SequenceManager_js_2 = require("../SequenceManager.js");
8
- const mergeOverrides = ({ descriptor, codeOverrides, dragOverrides, }) => {
9
+ const use_current_frame_js_1 = require("../use-current-frame.js");
10
+ const mergeOverrides = ({ descriptor, codeOverrides, dragOverrides, frame, }) => {
9
11
  if (!codeOverrides && !dragOverrides) {
10
12
  return { params: descriptor.params, effectKey: descriptor.effectKey };
11
13
  }
@@ -21,7 +23,13 @@ const mergeOverrides = ({ descriptor, codeOverrides, dragOverrides, }) => {
21
23
  }
22
24
  if (dragOverrides) {
23
25
  for (const [key, value] of Object.entries(dragOverrides)) {
24
- merged[key] = value;
26
+ const resolved = (0, get_effective_visual_mode_value_js_1.resolveDragOverrideValue)({
27
+ dragOverrideValue: value,
28
+ frame,
29
+ });
30
+ if (resolved.type === 'resolved') {
31
+ merged[key] = resolved.value;
32
+ }
25
33
  }
26
34
  }
27
35
  return {
@@ -36,7 +44,7 @@ const extractCodeOverrides = (propStatus) => {
36
44
  const out = {};
37
45
  let hasAny = false;
38
46
  for (const [key, status] of Object.entries(propStatus)) {
39
- if (status.canUpdate) {
47
+ if (status.status !== 'computed') {
40
48
  out[key] = status.codeValue;
41
49
  hasAny = true;
42
50
  }
@@ -91,6 +99,7 @@ const useMemoizedEffects = ({ effects, overrideId, }) => {
91
99
  const previousRef = (0, react_1.useRef)(null);
92
100
  const { codeValues } = (0, react_1.useContext)(SequenceManager_js_2.VisualModeCodeValuesContext);
93
101
  const { getEffectDragOverrides } = (0, react_1.useContext)(SequenceManager_js_2.VisualModeDragOverridesContext);
102
+ const frame = (0, use_current_frame_js_1.useCurrentFrame)();
94
103
  const { overrideIdToNodePathMappings } = (0, react_1.useContext)(sequence_node_path_js_1.OverrideIdsToNodePathsGettersContext);
95
104
  const previous = previousRef.current;
96
105
  const nodePath = overrideId
@@ -118,6 +127,7 @@ const useMemoizedEffects = ({ effects, overrideId, }) => {
118
127
  descriptor,
119
128
  codeOverrides,
120
129
  dragOverrides,
130
+ frame,
121
131
  });
122
132
  return { descriptor, params, effectKey };
123
133
  });
@@ -1,7 +1,18 @@
1
- import type { CanUpdateSequencePropStatusTrue } from './use-schema';
2
- export declare const getEffectiveVisualModeValue: ({ codeValue, dragOverrideValue, defaultValue, shouldResortToDefaultValueIfUndefined, }: {
3
- codeValue: CanUpdateSequencePropStatusTrue;
4
- dragOverrideValue: unknown;
1
+ import type { CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, DragOverrideValue } from './use-schema';
2
+ export type ResolvedDragOverrideValue = {
3
+ readonly type: 'none';
4
+ } | {
5
+ readonly type: 'resolved';
6
+ readonly value: unknown;
7
+ };
8
+ export declare const resolveDragOverrideValue: ({ dragOverrideValue, frame, }: {
9
+ dragOverrideValue: DragOverrideValue | undefined;
10
+ frame: number | null;
11
+ }) => ResolvedDragOverrideValue;
12
+ export declare const getEffectiveVisualModeValue: ({ codeValue, dragOverrideValue, defaultValue, frame, shouldResortToDefaultValueIfUndefined, }: {
13
+ codeValue: CanUpdateSequencePropStatusKeyframed | CanUpdateSequencePropStatusStatic;
14
+ dragOverrideValue: DragOverrideValue | undefined;
5
15
  defaultValue: unknown;
16
+ frame?: number | null | undefined;
6
17
  shouldResortToDefaultValueIfUndefined: boolean;
7
18
  }) => unknown;
@@ -1,9 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEffectiveVisualModeValue = void 0;
4
- const getEffectiveVisualModeValue = ({ codeValue, dragOverrideValue, defaultValue, shouldResortToDefaultValueIfUndefined = false, }) => {
5
- if (dragOverrideValue !== undefined) {
6
- return dragOverrideValue;
3
+ exports.getEffectiveVisualModeValue = exports.resolveDragOverrideValue = void 0;
4
+ const interpolate_keyframed_status_1 = require("./interpolate-keyframed-status");
5
+ const resolveDragOverrideValue = ({ dragOverrideValue, frame, }) => {
6
+ if (dragOverrideValue === undefined) {
7
+ return { type: 'none' };
8
+ }
9
+ if (dragOverrideValue.type === 'static') {
10
+ return { type: 'resolved', value: dragOverrideValue.value };
11
+ }
12
+ if (frame === null) {
13
+ return { type: 'none' };
14
+ }
15
+ const interpolated = (0, interpolate_keyframed_status_1.interpolateKeyframedStatus)({
16
+ frame,
17
+ status: dragOverrideValue.status,
18
+ });
19
+ if (interpolated === null) {
20
+ return { type: 'none' };
21
+ }
22
+ return { type: 'resolved', value: interpolated };
23
+ };
24
+ exports.resolveDragOverrideValue = resolveDragOverrideValue;
25
+ const getEffectiveVisualModeValue = ({ codeValue, dragOverrideValue, defaultValue, frame = null, shouldResortToDefaultValueIfUndefined = false, }) => {
26
+ const dragOverride = (0, exports.resolveDragOverrideValue)({
27
+ dragOverrideValue,
28
+ frame,
29
+ });
30
+ if (dragOverride.type === 'resolved' && dragOverride.value !== undefined) {
31
+ return dragOverride.value;
32
+ }
33
+ if (codeValue.status === 'keyframed' && frame !== null) {
34
+ return (0, interpolate_keyframed_status_1.interpolateKeyframedStatus)({
35
+ frame,
36
+ status: codeValue,
37
+ });
7
38
  }
8
39
  if (codeValue.codeValue === undefined &&
9
40
  shouldResortToDefaultValueIfUndefined) {
@@ -3,11 +3,12 @@ import './asset-types.js';
3
3
  import type { Codec } from './codec.js';
4
4
  import type { AnyCompMetadata, AnyComposition, AudioOrVideoAsset, LoopDisplay, SequenceControls, TRenderAsset } from './CompositionManager.js';
5
5
  import type { DelayRenderScope } from './delay-render.js';
6
+ import { type TFolder } from './Folder.js';
6
7
  import type { StaticFile } from './get-static-files.js';
7
8
  import type { LogLevel } from './log.js';
8
9
  import type { ProResProfile } from './prores-profile.js';
9
10
  import type { PixelFormat, VideoImageFormat } from './render-types.js';
10
- import type { SequenceFieldSchema, SequenceSchema } from './sequence-field-schema.js';
11
+ import type { ArrayFieldSchema, ArrayItemFieldSchema, SequenceFieldSchema, SequenceSchema } from './sequence-field-schema.js';
11
12
  import type { UseBufferState } from './use-buffer-state';
12
13
  import type { VideoConfig } from './video-config.js';
13
14
  export type VideoConfigWithSerializedProps = Omit<VideoConfig, 'defaultProps' | 'props'> & {
@@ -105,7 +106,7 @@ export type { LoopVolumeCurveBehavior } from './audio/use-audio-frame.js';
105
106
  export { cancelRender } from './cancel-render.js';
106
107
  export { Solid } from './effects/Solid.js';
107
108
  export type { SolidProps } from './effects/Solid.js';
108
- export { HTML_IN_CANVAS_UNSUPPORTED_MESSAGE, HtmlInCanvas, isHtmlInCanvasSupported, type HtmlInCanvasOnInit, type HtmlInCanvasOnInitCleanup, type HtmlInCanvasOnPaint, } from './HtmlInCanvas.js';
109
+ export { HTML_IN_CANVAS_UNSUPPORTED_MESSAGE, HtmlInCanvas, isHtmlInCanvasSupported, type HtmlInCanvasOnInit, type HtmlInCanvasOnInitCleanup, type HtmlInCanvasOnPaint, type HtmlInCanvasPixelDensity, } from './HtmlInCanvas.js';
109
110
  export type { HtmlInCanvasOnPaintParams, HtmlInCanvasProps, } from './HtmlInCanvas.js';
110
111
  /**
111
112
  * @description Renders a static image to a `<canvas>` and applies Remotion effects.
@@ -145,6 +146,7 @@ export { useBufferState } from './use-buffer-state';
145
146
  export { useCurrentFrame } from './use-current-frame.js';
146
147
  export { CurrentScaleContextType, PreviewSize, PreviewSizeCtx, Translation, useCurrentScale, } from './use-current-scale';
147
148
  export { useDelayRender } from './use-delay-render';
149
+ export { usePixelDensity } from './use-pixel-density';
148
150
  export { useRemotionEnvironment } from './use-remotion-environment.js';
149
151
  export * from './use-video-config.js';
150
152
  export * from './version.js';
@@ -170,6 +172,7 @@ export declare const Experimental: {
170
172
  export declare const Config: {};
171
173
  export type _InternalTypes = {
172
174
  AnyComposition: AnyComposition;
175
+ TFolder: TFolder;
173
176
  BundleCompositionState: BundleCompositionState;
174
177
  BundleState: BundleState;
175
178
  VideoConfigWithSerializedProps: VideoConfigWithSerializedProps;
@@ -178,4 +181,4 @@ export type _InternalTypes = {
178
181
  TRenderAsset: TRenderAsset;
179
182
  ProResProfile: ProResProfile;
180
183
  };
181
- export type { AnyComposition, DelayRenderScope, LoopDisplay, SequenceControls, SequenceFieldSchema, SequenceSchema, UseBufferState, };
184
+ export type { AnyComposition, ArrayFieldSchema, ArrayItemFieldSchema, DelayRenderScope, LoopDisplay, SequenceControls, SequenceFieldSchema, SequenceSchema, UseBufferState, };
package/dist/cjs/index.js CHANGED
@@ -14,12 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.Config = exports.Experimental = exports.watchStaticFile = exports.MediaPlaybackError = exports.Video = exports.OffthreadVideo = exports.Html5Video = exports.useRemotionEnvironment = exports.useDelayRender = exports.useCurrentScale = exports.useCurrentFrame = exports.useBufferState = exports.staticFile = exports.Series = exports.Sequence = exports.registerRoot = exports.prefetch = exports.random = exports.interpolate = exports.assertValidInterpolatePosterizeOption = exports.assertValidInterpolateEasingOption = exports.Loop = exports.interpolateColors = exports.Img = exports.getStaticFiles = exports.getRemotionEnvironment = exports.delayRender = exports.continueRender = exports.getInputProps = exports.Composition = exports.CanvasImage = exports.isHtmlInCanvasSupported = exports.HtmlInCanvas = exports.HTML_IN_CANVAS_UNSUPPORTED_MESSAGE = exports.Solid = exports.cancelRender = exports.Html5Audio = exports.Audio = exports.Artifact = void 0;
17
+ exports.Config = exports.Experimental = exports.watchStaticFile = exports.MediaPlaybackError = exports.Video = exports.OffthreadVideo = exports.Html5Video = exports.useRemotionEnvironment = exports.usePixelDensity = exports.useDelayRender = exports.useCurrentScale = exports.useCurrentFrame = exports.useBufferState = exports.staticFile = exports.Series = exports.Sequence = exports.registerRoot = exports.prefetch = exports.random = exports.interpolate = exports.assertValidInterpolatePosterizeOption = exports.assertValidInterpolateEasingOption = exports.Loop = exports.interpolateColors = exports.Img = exports.getStaticFiles = exports.getRemotionEnvironment = exports.delayRender = exports.continueRender = exports.getInputProps = exports.Composition = exports.CanvasImage = exports.isHtmlInCanvasSupported = exports.HtmlInCanvas = exports.HTML_IN_CANVAS_UNSUPPORTED_MESSAGE = exports.Solid = exports.cancelRender = exports.Html5Audio = exports.Audio = exports.Artifact = void 0;
18
18
  require("./_check-rsc.js");
19
19
  require("./asset-types.js");
20
20
  const Clipper_js_1 = require("./Clipper.js");
21
21
  const Composition_js_1 = require("./Composition.js");
22
22
  const enable_sequence_stack_traces_js_1 = require("./enable-sequence-stack-traces.js");
23
+ const Folder_js_1 = require("./Folder.js");
23
24
  const is_player_js_1 = require("./is-player.js");
24
25
  const multiple_versions_warning_js_1 = require("./multiple-versions-warning.js");
25
26
  const Null_js_1 = require("./Null.js");
@@ -93,6 +94,8 @@ const use_current_scale_1 = require("./use-current-scale");
93
94
  Object.defineProperty(exports, "useCurrentScale", { enumerable: true, get: function () { return use_current_scale_1.useCurrentScale; } });
94
95
  const use_delay_render_1 = require("./use-delay-render");
95
96
  Object.defineProperty(exports, "useDelayRender", { enumerable: true, get: function () { return use_delay_render_1.useDelayRender; } });
97
+ const use_pixel_density_1 = require("./use-pixel-density");
98
+ Object.defineProperty(exports, "usePixelDensity", { enumerable: true, get: function () { return use_pixel_density_1.usePixelDensity; } });
96
99
  const use_remotion_environment_js_1 = require("./use-remotion-environment.js");
97
100
  Object.defineProperty(exports, "useRemotionEnvironment", { enumerable: true, get: function () { return use_remotion_environment_js_1.useRemotionEnvironment; } });
98
101
  __exportStar(require("./use-video-config.js"), exports);
@@ -148,3 +151,4 @@ exports.Config = new Proxy(proxyObj, {
148
151
  Sequence_js_1.Sequence.displayName = 'Sequence';
149
152
  (0, enable_sequence_stack_traces_js_1.addSequenceStackTraces)(Sequence_js_1.Sequence);
150
153
  (0, enable_sequence_stack_traces_js_1.addSequenceStackTraces)(Composition_js_1.Composition);
154
+ (0, enable_sequence_stack_traces_js_1.addSequenceStackTraces)(Folder_js_1.Folder);
@@ -9,7 +9,7 @@ import type { SerializedJSONWithCustomFields } from './input-props-serialization
9
9
  import type { LoggingContextValue } from './log-level-context.js';
10
10
  import type { NonceHistory } from './nonce.js';
11
11
  import type { RemotionEnvironment } from './remotion-environment-context.js';
12
- import { type SequenceFieldSchema, type SequenceSchema, type VisibleFieldSchema } from './sequence-field-schema.js';
12
+ import { type ArrayFieldSchema, type ArrayItemFieldSchema, type SequenceFieldSchema, type SequenceSchema, type VisibleFieldSchema } from './sequence-field-schema.js';
13
13
  import type { OverrideIdToNodePaths, OverrideToNodePathGetters, OverrideToNodeSetters } from './sequence-node-path.js';
14
14
  import { OverrideIdsToNodePathsGettersContext, OverrideIdsToNodePathsSettersContext } from './sequence-node-path.js';
15
15
  import type { ResolvedStackLocation } from './sequence-stack-traces.js';
@@ -18,7 +18,7 @@ import { type CanUpdateEffectPropsResponse, type CanUpdateEffectPropsResponseFal
18
18
  import * as TimelinePosition from './timeline-position-state.js';
19
19
  import { type PlaybackRateContextValue, type SetTimelineContextValue, type TimelineContextValue } from './TimelineContext.js';
20
20
  import { truthy } from './truthy.js';
21
- import type { CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusTrue, GetCodeValues, GetDragOverrides, GetEffectCodeValues, GetEffectDragOverrides } from './use-schema.js';
21
+ import type { CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, DragOverrideValue, GetCodeValues, GetDragOverrides, GetEffectCodeValues, GetEffectDragOverrides } from './use-schema.js';
22
22
  import { type CanUpdateSequencePropStatus, type CodeValues, type DragOverrides, type EffectDragOverrides } from './use-schema.js';
23
23
  import type { MediaVolumeContextValue, SetMediaVolumeContextValue } from './volume-position-state.js';
24
24
  import type { WatchRemotionStaticFilesPayload } from './watch-static-file.js';
@@ -58,24 +58,7 @@ export declare const Internals: {
58
58
  trimBeforeValue: number | undefined;
59
59
  trimAfterValue: number | undefined;
60
60
  };
61
- readonly VideoForPreview: import("react").ForwardRefExoticComponent<Omit<import("./video/props.js").NativeVideoProps & {
62
- name?: string | undefined;
63
- volume?: import("./volume-prop.js").VolumeProp | undefined;
64
- playbackRate?: number | undefined;
65
- preservePitch?: boolean | undefined;
66
- acceptableTimeShiftInSeconds?: number | undefined;
67
- allowAmplificationDuringRender?: boolean | undefined;
68
- useWebAudioApi?: boolean | undefined;
69
- toneFrequency?: number | undefined;
70
- pauseWhenBuffering?: boolean | undefined;
71
- showInTimeline?: boolean | undefined;
72
- delayRenderTimeoutInMilliseconds?: number | undefined;
73
- loopVolumeCurveBehavior?: import("./index.js").LoopVolumeCurveBehavior | undefined;
74
- delayRenderRetries?: number | undefined;
75
- onError?: ((err: Error) => void) | undefined;
76
- onAutoPlayError?: (() => void) | null | undefined;
77
- audioStreamIndex?: number | undefined;
78
- } & {
61
+ readonly VideoForPreview: import("react").ForwardRefExoticComponent<Omit<Omit<import("./index.js").RemotionVideoProps, "onVideoFrame"> & {
79
62
  readonly onlyWarnForMediaSeekingError: boolean;
80
63
  readonly onDuration: (src: string, durationInSeconds: number) => void;
81
64
  readonly pauseWhenBuffering: boolean;
@@ -92,11 +75,28 @@ export declare const Internals: {
92
75
  readonly VisualModeSettersContext: import("react").Context<import("./SequenceManager.js").VisualModeSetters>;
93
76
  readonly SequenceManager: import("react").Context<import("./SequenceManager.js").SequenceManagerContext>;
94
77
  readonly SequenceStackTracesUpdateContext: import("react").Context<import("./sequence-stack-traces.js").UpdateResolvedStackTraceFn>;
95
- readonly wrapInSchema: <S extends SequenceSchema, Props extends object>(Component: import("react").ComponentType<Props & {
96
- readonly _experimentalControls: import("./CompositionManager.js").SequenceControls | undefined;
97
- }>, schema: S) => import("react").ComponentType<Props>;
78
+ readonly wrapInSchema: <S extends SequenceSchema, Props extends object>({ Component, schema, supportsEffects, }: {
79
+ Component: import("react").ComponentType<Props & {
80
+ readonly _experimentalControls: import("./CompositionManager.js").SequenceControls | undefined;
81
+ }>;
82
+ schema: S;
83
+ supportsEffects: boolean;
84
+ }) => import("react").ComponentType<Props>;
98
85
  readonly sequenceSchema: {
99
86
  readonly hidden: import("./sequence-field-schema.js").BooleanFieldSchema;
87
+ readonly from: {
88
+ readonly type: "number";
89
+ readonly default: 0;
90
+ readonly step: 1;
91
+ readonly hiddenFromList: true;
92
+ };
93
+ readonly durationInFrames: {
94
+ readonly type: "number";
95
+ readonly default: undefined;
96
+ readonly min: 1;
97
+ readonly step: 1;
98
+ readonly hiddenFromList: true;
99
+ };
100
100
  readonly layout: {
101
101
  readonly type: "enum";
102
102
  readonly default: "absolute-fill";
@@ -110,7 +110,7 @@ export declare const Internals: {
110
110
  readonly description: "Offset";
111
111
  };
112
112
  readonly 'style.scale': {
113
- readonly type: "number";
113
+ readonly type: "scale";
114
114
  readonly min: 0.05;
115
115
  readonly max: 100;
116
116
  readonly step: 0.01;
@@ -118,7 +118,7 @@ export declare const Internals: {
118
118
  readonly description: "Scale";
119
119
  };
120
120
  readonly 'style.rotate': {
121
- readonly type: "rotation";
121
+ readonly type: "rotation-css";
122
122
  readonly step: 1;
123
123
  readonly default: "0deg";
124
124
  readonly description: "Rotation";
@@ -130,6 +130,7 @@ export declare const Internals: {
130
130
  readonly step: 0.01;
131
131
  readonly default: 1;
132
132
  readonly description: "Opacity";
133
+ readonly hiddenFromList: false;
133
134
  };
134
135
  readonly premountFor: {
135
136
  readonly type: "number";
@@ -137,9 +138,14 @@ export declare const Internals: {
137
138
  readonly description: "Premount For";
138
139
  readonly min: 0;
139
140
  readonly step: 1;
141
+ readonly hiddenFromList: false;
140
142
  };
141
143
  readonly postmountFor: {
142
- readonly type: "hidden";
144
+ readonly type: "number";
145
+ readonly default: 0;
146
+ readonly min: 0;
147
+ readonly step: 1;
148
+ readonly hiddenFromList: true;
143
149
  };
144
150
  readonly styleWhilePremounted: {
145
151
  readonly type: "hidden";
@@ -160,7 +166,7 @@ export declare const Internals: {
160
166
  readonly description: "Offset";
161
167
  };
162
168
  readonly 'style.scale': {
163
- readonly type: "number";
169
+ readonly type: "scale";
164
170
  readonly min: 0.05;
165
171
  readonly max: 100;
166
172
  readonly step: 0.01;
@@ -168,7 +174,7 @@ export declare const Internals: {
168
174
  readonly description: "Scale";
169
175
  };
170
176
  readonly 'style.rotate': {
171
- readonly type: "rotation";
177
+ readonly type: "rotation-css";
172
178
  readonly step: 1;
173
179
  readonly default: "0deg";
174
180
  readonly description: "Rotation";
@@ -180,6 +186,7 @@ export declare const Internals: {
180
186
  readonly step: 0.01;
181
187
  readonly default: 1;
182
188
  readonly description: "Opacity";
189
+ readonly hiddenFromList: false;
183
190
  };
184
191
  readonly premountFor: {
185
192
  readonly type: "number";
@@ -187,9 +194,14 @@ export declare const Internals: {
187
194
  readonly description: "Premount For";
188
195
  readonly min: 0;
189
196
  readonly step: 1;
197
+ readonly hiddenFromList: false;
190
198
  };
191
199
  readonly postmountFor: {
192
- readonly type: "hidden";
200
+ readonly type: "number";
201
+ readonly default: 0;
202
+ readonly min: 0;
203
+ readonly step: 1;
204
+ readonly hiddenFromList: true;
193
205
  };
194
206
  readonly styleWhilePremounted: {
195
207
  readonly type: "hidden";
@@ -206,7 +218,7 @@ export declare const Internals: {
206
218
  readonly description: "Offset";
207
219
  };
208
220
  readonly 'style.scale': {
209
- readonly type: "number";
221
+ readonly type: "scale";
210
222
  readonly min: 0.05;
211
223
  readonly max: 100;
212
224
  readonly step: 0.01;
@@ -214,7 +226,7 @@ export declare const Internals: {
214
226
  readonly description: "Scale";
215
227
  };
216
228
  readonly 'style.rotate': {
217
- readonly type: "rotation";
229
+ readonly type: "rotation-css";
218
230
  readonly step: 1;
219
231
  readonly default: "0deg";
220
232
  readonly description: "Rotation";
@@ -226,6 +238,7 @@ export declare const Internals: {
226
238
  readonly step: 0.01;
227
239
  readonly default: 1;
228
240
  readonly description: "Opacity";
241
+ readonly hiddenFromList: false;
229
242
  };
230
243
  };
231
244
  readonly sequencePremountSchema: {
@@ -235,9 +248,14 @@ export declare const Internals: {
235
248
  readonly description: "Premount For";
236
249
  readonly min: 0;
237
250
  readonly step: 1;
251
+ readonly hiddenFromList: false;
238
252
  };
239
253
  readonly postmountFor: {
240
- readonly type: "hidden";
254
+ readonly type: "number";
255
+ readonly default: 0;
256
+ readonly min: 0;
257
+ readonly step: 1;
258
+ readonly hiddenFromList: true;
241
259
  };
242
260
  readonly styleWhilePremounted: {
243
261
  readonly type: "hidden";
@@ -361,6 +379,7 @@ export declare const Internals: {
361
379
  readonly children: import("react").ReactNode;
362
380
  }>;
363
381
  readonly invalidCompositionErrorMessage: string;
382
+ readonly invalidFolderNameErrorMessage: string;
364
383
  readonly calculateMediaDuration: ({ trimAfter, mediaDurationInFrames, playbackRate, trimBefore, }: {
365
384
  mediaDurationInFrames: number;
366
385
  playbackRate: number;
@@ -368,6 +387,7 @@ export declare const Internals: {
368
387
  trimAfter: number | undefined;
369
388
  }) => number;
370
389
  readonly isCompositionIdValid: (id: string) => RegExpMatchArray | null;
390
+ readonly isFolderNameValid: (name: string) => RegExpMatchArray | null;
371
391
  readonly getPreviewDomElement: () => HTMLElement | null;
372
392
  readonly compositionsRef: import("react").RefObject<{
373
393
  getCompositions: () => import("./CompositionManager.js").AnyComposition[];
@@ -484,6 +504,7 @@ export declare const Internals: {
484
504
  } | null>;
485
505
  readonly getComponentsToAddStacksTo: () => unknown[];
486
506
  readonly CurrentScaleContext: import("react").Context<import("./use-current-scale.js").CurrentScaleContextType | null>;
507
+ readonly PixelDensityContext: import("react").Context<number | null>;
487
508
  readonly PreviewSizeContext: import("react").Context<import("./use-current-scale.js").PreviewSizeCtx>;
488
509
  readonly calculateScale: ({ canvasSize, compositionHeight, compositionWidth, previewSize, }: {
489
510
  previewSize: number | "auto";
@@ -619,10 +640,11 @@ export declare const Internals: {
619
640
  children: import("react").ReactNode;
620
641
  collectAssets: import("react").RefObject<import("./RenderAssetManager.js").CollectAssetsRef | null> | null;
621
642
  }>;
622
- readonly getEffectiveVisualModeValue: ({ codeValue, dragOverrideValue, defaultValue, shouldResortToDefaultValueIfUndefined, }: {
623
- codeValue: CanUpdateSequencePropStatusTrue;
624
- dragOverrideValue: unknown;
643
+ readonly getEffectiveVisualModeValue: ({ codeValue, dragOverrideValue, defaultValue, frame, shouldResortToDefaultValueIfUndefined, }: {
644
+ codeValue: CanUpdateSequencePropStatusKeyframed | CanUpdateSequencePropStatusStatic;
645
+ dragOverrideValue: DragOverrideValue | undefined;
625
646
  defaultValue: unknown;
647
+ frame?: number | null | undefined;
626
648
  shouldResortToDefaultValueIfUndefined: boolean;
627
649
  }) => unknown;
628
650
  readonly CompositionRenderErrorContext: import("react").Context<import("./composition-render-error-context.js").CompositionRenderErrorContextType>;
@@ -643,7 +665,7 @@ export declare const Internals: {
643
665
  readonly computeEffectiveSchemaValuesDotNotation: ({ schema, currentValue, overrideValues, propStatus, frame, }: {
644
666
  schema: SequenceSchema;
645
667
  currentValue: Record<string, unknown>;
646
- overrideValues: Record<string, unknown>;
668
+ overrideValues: Record<string, DragOverrideValue>;
647
669
  propStatus: Record<string, CanUpdateSequencePropStatus> | undefined;
648
670
  frame: number | null;
649
671
  }) => {
@@ -654,6 +676,17 @@ export declare const Internals: {
654
676
  frame: number;
655
677
  status: CanUpdateSequencePropStatusKeyframed;
656
678
  }) => string | number | null;
679
+ readonly makeStaticDragOverride: (value: unknown) => DragOverrideValue;
680
+ readonly makeKeyframedDragOverride: ({ status, frame, value, }: {
681
+ status: CanUpdateSequencePropStatusKeyframed;
682
+ frame: number;
683
+ value: unknown;
684
+ }) => DragOverrideValue;
685
+ readonly resolveDragOverrideValue: ({ dragOverrideValue, frame, }: {
686
+ dragOverrideValue: DragOverrideValue | undefined;
687
+ frame: number | null;
688
+ }) => import("./get-effective-visual-mode-value.js").ResolvedDragOverrideValue;
689
+ readonly getStaticDragOverrideValue: (dragOverrideValue: DragOverrideValue | undefined) => unknown;
657
690
  readonly OverrideIdsToNodePathsGettersContext: import("react").Context<OverrideToNodePathGetters>;
658
691
  readonly OverrideIdsToNodePathsSettersContext: import("react").Context<OverrideToNodeSetters>;
659
692
  readonly findPropsToDelete: ({ schema, key, value, }: {
@@ -678,5 +711,18 @@ export declare const Internals: {
678
711
  props: Record<string, CanUpdateSequencePropStatus>;
679
712
  };
680
713
  readonly hiddenField: SequenceFieldSchema;
714
+ readonly durationInFramesField: {
715
+ readonly type: "number";
716
+ readonly default: undefined;
717
+ readonly min: 1;
718
+ readonly step: 1;
719
+ readonly hiddenFromList: true;
720
+ };
721
+ readonly fromField: {
722
+ readonly type: "number";
723
+ readonly default: 0;
724
+ readonly step: 1;
725
+ readonly hiddenFromList: true;
726
+ };
681
727
  };
682
- export type { CannotUpdateSequenceReason, CanUpdateEffectPropsResponse, CanUpdateEffectPropsResponseFalse, CanUpdateEffectPropsResponseTrue, CanUpdateSequencePropsResponse, CanUpdateSequencePropsResponseFalse, CanUpdateSequencePropsResponseTrue, CanUpdateSequencePropStatus, CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusTrue, CodeValues, CompositionManagerContext, CompProps, DragOverrides, EffectDragOverrides, GetCodeValues, GetDragOverrides, GetEffectCodeValues, GetEffectDragOverrides, LoggingContextValue, MediaVolumeContextValue, NonceHistory, OverrideIdsToNodePathsGettersContext, OverrideIdsToNodePathsSettersContext, OverrideIdToNodePaths, OverrideToNodePathGetters, OverrideToNodeSetters, PlaybackRateContextValue, RemotionAudioContextState, RemotionEnvironment, ResolvedStackLocation, ScheduleAudioNodeOptions, ScheduleAudioNodeResult, SequenceFieldSchema, SequenceNodePath, SequencePropsSubscriptionKey, SequenceSchema, SerializedJSONWithCustomFields, SetMediaVolumeContextValue, SetTimelineContextValue, TCompMetadata, TComposition, TimelineContextValue, TRenderAsset, TSequence, VisibleFieldSchema, WatchRemotionStaticFilesPayload, };
728
+ export type { ArrayFieldSchema, ArrayItemFieldSchema, CannotUpdateSequenceReason, CanUpdateEffectPropsResponse, CanUpdateEffectPropsResponseFalse, CanUpdateEffectPropsResponseTrue, CanUpdateSequencePropsResponse, CanUpdateSequencePropsResponseFalse, CanUpdateSequencePropsResponseTrue, CanUpdateSequencePropStatus, CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, CodeValues, CompositionManagerContext, CompProps, DragOverrides, DragOverrideValue, EffectDragOverrides, GetCodeValues, GetDragOverrides, GetEffectCodeValues, GetEffectDragOverrides, LoggingContextValue, MediaVolumeContextValue, NonceHistory, OverrideIdsToNodePathsGettersContext, OverrideIdsToNodePathsSettersContext, OverrideIdToNodePaths, OverrideToNodePathGetters, OverrideToNodeSetters, PlaybackRateContextValue, RemotionAudioContextState, RemotionEnvironment, ResolvedStackLocation, ScheduleAudioNodeOptions, ScheduleAudioNodeResult, SequenceFieldSchema, SequenceNodePath, SequencePropsSubscriptionKey, SequenceSchema, SerializedJSONWithCustomFields, SetMediaVolumeContextValue, SetTimelineContextValue, TCompMetadata, TComposition, TimelineContextValue, TRenderAsset, TSequence, VisibleFieldSchema, WatchRemotionStaticFilesPayload, };