remotion 4.0.519 → 4.0.521

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 (61) hide show
  1. package/THIRD_PARTY_LICENSES.md +28 -0
  2. package/dist/cjs/AbsoluteFill.d.ts +3 -15
  3. package/dist/cjs/Composition.js +5 -5
  4. package/dist/cjs/CompositionManager.d.ts +2 -3
  5. package/dist/cjs/CompositionManagerContext.d.ts +1 -2
  6. package/dist/cjs/CompositionManagerProvider.js +119 -5
  7. package/dist/cjs/Folder.d.ts +1 -2
  8. package/dist/cjs/Folder.js +6 -5
  9. package/dist/cjs/Img.d.ts +1 -0
  10. package/dist/cjs/Img.js +1 -0
  11. package/dist/cjs/Interactive.d.ts +3 -15
  12. package/dist/cjs/RemotionRoot.js +1 -8
  13. package/dist/cjs/Sequence.js +47 -60
  14. package/dist/cjs/SequenceManager.d.ts +1 -0
  15. package/dist/cjs/SequenceManager.js +85 -3
  16. package/dist/cjs/TimelineContext.d.ts +14 -8
  17. package/dist/cjs/TimelineContext.js +40 -23
  18. package/dist/cjs/animated-image/AnimatedImage.d.ts +1 -0
  19. package/dist/cjs/animated-image/AnimatedImage.js +1 -0
  20. package/dist/cjs/audio/AudioForPreview.js +6 -2
  21. package/dist/cjs/audio/shared-audio-tags.d.ts +1 -0
  22. package/dist/cjs/audio/shared-audio-tags.js +10 -1
  23. package/dist/cjs/audio/wait-until-actually-resumed.d.ts +1 -1
  24. package/dist/cjs/audio/wait-until-actually-resumed.js +16 -14
  25. package/dist/cjs/buffering.d.ts +3 -19
  26. package/dist/cjs/buffering.js +16 -77
  27. package/dist/cjs/canvas-image/CanvasImage.d.ts +1 -0
  28. package/dist/cjs/canvas-image/CanvasImage.js +1 -0
  29. package/dist/cjs/freeze.js +1 -4
  30. package/dist/cjs/index.d.ts +0 -1
  31. package/dist/cjs/interactivity-schema.d.ts +11 -16
  32. package/dist/cjs/interactivity-schema.js +3 -15
  33. package/dist/cjs/internals.d.ts +18 -45
  34. package/dist/cjs/internals.js +12 -4
  35. package/dist/cjs/runtime-value-store.d.ts +7 -7
  36. package/dist/cjs/runtime-value-store.js +1 -1
  37. package/dist/cjs/sequence-order-marker.d.ts +57 -0
  38. package/dist/cjs/sequence-order-marker.js +44 -0
  39. package/dist/cjs/timeline-position-state.d.ts +2 -8
  40. package/dist/cjs/timeline-position-state.js +5 -7
  41. package/dist/cjs/use-buffer-state.js +1 -3
  42. package/dist/cjs/use-buffering.d.ts +1 -0
  43. package/dist/cjs/use-buffering.js +11 -0
  44. package/dist/cjs/use-media-in-timeline.d.ts +0 -1
  45. package/dist/cjs/use-media-in-timeline.js +15 -29
  46. package/dist/cjs/use-media-playback.js +48 -56
  47. package/dist/cjs/use-media-tag.js +25 -3
  48. package/dist/cjs/use-playing.d.ts +1 -0
  49. package/dist/cjs/use-playing.js +14 -0
  50. package/dist/cjs/use-sequence-registration.d.ts +5 -0
  51. package/dist/cjs/use-sequence-registration.js +37 -0
  52. package/dist/cjs/use-sync-external-store.d.ts +28 -0
  53. package/dist/cjs/use-sync-external-store.js +116 -0
  54. package/dist/cjs/version.d.ts +1 -1
  55. package/dist/cjs/version.js +1 -1
  56. package/dist/cjs/video/VideoForPreview.js +5 -1
  57. package/dist/cjs/wrap-remotion-context.d.ts +1 -12
  58. package/dist/cjs/wrap-remotion-context.js +1 -8
  59. package/dist/esm/index.mjs +1145 -919
  60. package/dist/esm/version.mjs +1 -1
  61. package/package.json +3 -3
@@ -22,6 +22,7 @@ const with_interactivity_schema_js_1 = require("../with-interactivity-schema.js"
22
22
  exports.canvasImageSchema = {
23
23
  src: {
24
24
  type: 'asset',
25
+ assetType: 'image',
25
26
  default: undefined,
26
27
  description: 'Source',
27
28
  keyframable: false,
@@ -45,10 +45,7 @@ const Freeze = ({ frame: frameToFreeze, children, active = true, }) => {
45
45
  }
46
46
  return {
47
47
  ...timelineContext,
48
- playing: false,
49
- imperativePlaying: {
50
- current: false,
51
- },
48
+ isPlaying: () => false,
52
49
  frame: {
53
50
  [videoConfig.id]: frameToFreeze + relativeFrom,
54
51
  },
@@ -136,7 +136,6 @@ export { interpolateColors, type InterpolateColorsOptions, } from './interpolate
136
136
  export { LogLevel } from './log.js';
137
137
  export { Loop } from './loop/index.js';
138
138
  export { assertValidInterpolateEasingOption, assertValidInterpolatePosterizeOption, EasingFunction, ExtrapolateType, interpolate, InterpolateOutputOption, InterpolateOptions, random, RandomSeed, } from './no-react';
139
- export type { NonceHistory } from './nonce.js';
140
139
  export { prefetch, PrefetchOnProgress } from './prefetch.js';
141
140
  export { registerRoot } from './register-root.js';
142
141
  export type { PixelFormat, VideoImageFormat } from './render-types.js';
@@ -97,8 +97,15 @@ export type FontFamilyFieldSchema = {
97
97
  description?: string;
98
98
  keyframable?: false;
99
99
  };
100
+ export type FontWeightFieldSchema = {
101
+ type: 'font-weight';
102
+ default: number | string | undefined;
103
+ description?: string;
104
+ keyframable?: false;
105
+ };
100
106
  export type AssetFieldSchema = {
101
107
  type: 'asset';
108
+ assetType?: 'audio' | 'video' | 'image';
102
109
  default: string | undefined;
103
110
  description?: string;
104
111
  keyframable?: false;
@@ -138,7 +145,7 @@ export type CaptionsFieldSchema = {
138
145
  description?: string;
139
146
  keyframable: false;
140
147
  };
141
- export type VisibleFieldSchema = NumberFieldSchema | BooleanFieldSchema | RotationCssFieldSchema | RotationDegreesFieldSchema | TranslateFieldSchema | TransformOriginFieldSchema | ScaleFieldSchema | UvCoordinateFieldSchema | ColorFieldSchema | TextContentFieldSchema | FontFamilyFieldSchema | AssetFieldSchema | ArrayFieldSchema | CaptionsFieldSchema | EnumFieldSchema;
148
+ export type VisibleFieldSchema = NumberFieldSchema | BooleanFieldSchema | RotationCssFieldSchema | RotationDegreesFieldSchema | TranslateFieldSchema | TransformOriginFieldSchema | ScaleFieldSchema | UvCoordinateFieldSchema | ColorFieldSchema | TextContentFieldSchema | FontFamilyFieldSchema | FontWeightFieldSchema | AssetFieldSchema | ArrayFieldSchema | CaptionsFieldSchema | EnumFieldSchema;
142
149
  export type InteractivitySchemaField = VisibleFieldSchema | HiddenFieldSchema;
143
150
  export type InteractivitySchema = {
144
151
  [key: string]: InteractivitySchemaField;
@@ -255,22 +262,10 @@ export declare const textSchema: {
255
262
  readonly hiddenFromList: false;
256
263
  };
257
264
  readonly 'style.fontWeight': {
258
- readonly type: "enum";
259
- readonly default: "400";
265
+ readonly type: "font-weight";
266
+ readonly default: 400;
260
267
  readonly description: "Font weight";
261
- readonly variants: {
262
- readonly '100': {};
263
- readonly '200': {};
264
- readonly '300': {};
265
- readonly '400': {};
266
- readonly '500': {};
267
- readonly '600': {};
268
- readonly '700': {};
269
- readonly '800': {};
270
- readonly '900': {};
271
- readonly normal: {};
272
- readonly bold: {};
273
- };
268
+ readonly keyframable: false;
274
269
  };
275
270
  readonly 'style.fontStyle': {
276
271
  readonly type: "enum";
@@ -76,22 +76,10 @@ exports.textSchema = {
76
76
  hiddenFromList: false,
77
77
  },
78
78
  'style.fontWeight': {
79
- type: 'enum',
80
- default: '400',
79
+ type: 'font-weight',
80
+ default: 400,
81
81
  description: 'Font weight',
82
- variants: {
83
- '100': {},
84
- '200': {},
85
- '300': {},
86
- '400': {},
87
- '500': {},
88
- '600': {},
89
- '700': {},
90
- '800': {},
91
- '900': {},
92
- normal: {},
93
- bold: {},
94
- },
82
+ keyframable: false,
95
83
  },
96
84
  'style.fontStyle': {
97
85
  type: 'enum',
@@ -8,7 +8,6 @@ import * as CSSUtils from './default-css.js';
8
8
  import type { SerializedJSONWithCustomFields } from './input-props-serialization.js';
9
9
  import { type AssetFieldSchema, type ArrayFieldSchema, type ArrayItemFieldSchema, type InteractivitySchemaField, type InteractivitySchema, type VisibleFieldSchema } from './interactivity-schema.js';
10
10
  import type { LoggingContextValue } from './log-level-context.js';
11
- import type { NonceHistory } from './nonce.js';
12
11
  import type { RemotionEnvironment } from './remotion-environment-context.js';
13
12
  import type { OverrideIdToNodePaths, OverrideToNodePathGetters, OverrideToNodeSetters } from './sequence-node-path.js';
14
13
  import { OverrideIdsToNodePathsGettersContext, OverrideIdsToNodePathsSettersContext } from './sequence-node-path.js';
@@ -16,7 +15,7 @@ import type { ResolvedStackLocation } from './sequence-stack-traces.js';
16
15
  import type { CannotUpdateSequenceReason } from './SequenceManager.js';
17
16
  import { type CanUpdateEffectPropsResponse, type CanUpdateEffectPropsResponseFalse, type CanUpdateEffectPropsResponseTrue, type CanUpdateSequencePropsResponse, type CanUpdateSequencePropsResponseFalse, type CanUpdateSequencePropsResponseTrue, type SequenceNodePath, type SequencePropsSubscriptionKey, type SequencePropsStatusRemapping, type VideoConfigValues } from './SequenceManager.js';
18
17
  import * as TimelinePosition from './timeline-position-state.js';
19
- import { type PlaybackRateContextValue, type SetTimelineContextValue, type TimelineImperativeContextValue, type TimelineContextValue } from './TimelineContext.js';
18
+ import { type PlaybackRateContextValue, type SetTimelineContextValue, type TimelineContextValue } from './TimelineContext.js';
20
19
  import { truthy } from './truthy.js';
21
20
  import type { CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusEasing, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, DragOverrideValue, GetDragOverrides, GetEffectDragOverrides, GetEffectPropStatuses, GetPropStatuses, VideoConfigNumericExpression } from './use-schema.js';
22
21
  import { type CanUpdateSequencePropStatus, type DragOverrides, type EffectDragOverrides, type PropStatuses } from './use-schema.js';
@@ -38,6 +37,7 @@ export declare const Internals: {
38
37
  readonly MEDIABUNNY_DURATION_VALUE_KEY: "mediabunny-duration";
39
38
  readonly makeRenderResourceManager: () => import("./render-resource-manager.js").RenderResourceManager;
40
39
  readonly RenderResourceManagerContext: import("react").Context<import("./render-resource-manager.js").RenderResourceManager | null>;
40
+ readonly createRuntimeValueStore: <TSnapshot extends Readonly<Record<string, unknown>>>(initialSnapshot: TSnapshot) => import("./runtime-value-store.js").RuntimeValueStoreController<TSnapshot>;
41
41
  readonly useUnsafeVideoConfig: () => import("./video-config.js").VideoConfig | null;
42
42
  readonly useFrameForVolumeProp: (behavior: import("./index.js").LoopVolumeCurveBehavior) => number;
43
43
  readonly useTimelinePosition: () => number;
@@ -98,6 +98,14 @@ export declare const Internals: {
98
98
  }>;
99
99
  readonly SequenceManagerRefContext: import("react").Context<import("./SequenceManager.js").SequenceManagerRef>;
100
100
  readonly SequenceRegistrationContext: import("react").Context<boolean>;
101
+ readonly CommitOrderInternals: {
102
+ compositionManagerMarker: symbol;
103
+ compositionMarker: symbol;
104
+ folderMarker: symbol;
105
+ sequenceManagerMarker: symbol;
106
+ sequenceMarker: symbol;
107
+ eventName: string;
108
+ };
101
109
  readonly SequenceStackTracesUpdateContext: import("react").Context<import("./sequence-stack-traces.js").UpdateResolvedStackTraceFn>;
102
110
  readonly baseSchema: {
103
111
  readonly durationInFrames: {
@@ -637,22 +645,10 @@ export declare const Internals: {
637
645
  readonly hiddenFromList: false;
638
646
  };
639
647
  readonly 'style.fontWeight': {
640
- readonly type: "enum";
641
- readonly default: "400";
648
+ readonly type: "font-weight";
649
+ readonly default: 400;
642
650
  readonly description: "Font weight";
643
- readonly variants: {
644
- readonly '100': {};
645
- readonly '200': {};
646
- readonly '300': {};
647
- readonly '400': {};
648
- readonly '500': {};
649
- readonly '600': {};
650
- readonly '700': {};
651
- readonly '800': {};
652
- readonly '900': {};
653
- readonly normal: {};
654
- readonly bold: {};
655
- };
651
+ readonly keyframable: false;
656
652
  };
657
653
  readonly 'style.fontStyle': {
658
654
  readonly type: "enum";
@@ -829,6 +825,7 @@ export declare const Internals: {
829
825
  audioSyncAnchorEmitter: import("./audio/shared-audio-tags.js").AudioSyncAnchorEmitter;
830
826
  scheduleAudioNode: (options: ScheduleAudioNodeOptions) => ScheduleAudioNodeResult;
831
827
  resume: () => Promise<void>;
828
+ resumeAsAutoPlay: () => Promise<void>;
832
829
  suspend: () => Promise<void>;
833
830
  getIsResumingAudioContext: () => Promise<import("./audio/wait-until-actually-resumed.js").AudioContextResumeResult> | null;
834
831
  unscheduleAudioNode: (node: AudioBufferSourceNode) => void;
@@ -918,7 +915,6 @@ export declare const Internals: {
918
915
  }>;
919
916
  readonly EditorPropsContext: import("react").Context<import("./EditorProps.js").EditorPropsContextType>;
920
917
  readonly usePreload: (src: string) => string;
921
- readonly NonceContext: import("react").Context<import("./nonce.js").TNonceContext>;
922
918
  readonly resolveVideoConfig: (params: {
923
919
  compositionId: string;
924
920
  compositionWidth: number | null;
@@ -1015,18 +1011,9 @@ export declare const Internals: {
1015
1011
  readonly children: import("react").ReactNode;
1016
1012
  }>;
1017
1013
  readonly BufferingContextReact: import("react").Context<{
1018
- addBlock: (block: {
1019
- id: string;
1020
- }) => {
1014
+ addBlock: () => {
1021
1015
  unblock: () => void;
1022
1016
  };
1023
- listenForBuffering: (callback: () => void) => {
1024
- remove: () => void;
1025
- };
1026
- listenForResume: (callback: () => void) => {
1027
- remove: () => void;
1028
- };
1029
- buffering: import("react").RefObject<boolean>;
1030
1017
  } | null>;
1031
1018
  readonly getComponentsToAddStacksTo: () => unknown[];
1032
1019
  readonly getSequenceComponent: () => unknown;
@@ -1165,7 +1152,6 @@ export declare const Internals: {
1165
1152
  volumes: string | number;
1166
1153
  duration: number;
1167
1154
  doesVolumeChange: boolean;
1168
- nonce: import("./nonce.js").NonceHistoryContext;
1169
1155
  finalDisplayName: string;
1170
1156
  startMediaFrom: number;
1171
1157
  src: string;
@@ -1176,24 +1162,11 @@ export declare const Internals: {
1176
1162
  readonly setInputPropsOverride: (override: Record<string, unknown> | null) => void;
1177
1163
  readonly useVideoEnabled: () => boolean;
1178
1164
  readonly useAudioEnabled: () => boolean;
1179
- readonly useIsPlayerBuffering: (bufferManager: {
1180
- addBlock: (block: {
1181
- id: string;
1182
- }) => {
1183
- unblock: () => void;
1184
- };
1185
- listenForBuffering: (callback: () => void) => {
1186
- remove: () => void;
1187
- };
1188
- listenForResume: (callback: () => void) => {
1189
- remove: () => void;
1190
- };
1191
- buffering: import("react").RefObject<boolean>;
1192
- }) => boolean;
1165
+ readonly useBuffering: () => boolean;
1193
1166
  readonly TimelinePosition: typeof TimelinePosition;
1194
1167
  readonly DelayRenderContextType: import("react").Context<import("./delay-render.js").DelayRenderScope | null>;
1195
1168
  readonly TimelineContext: import("react").Context<TimelineContextValue | null>;
1196
- readonly TimelineImperativeContext: import("react").Context<TimelineImperativeContextValue | null>;
1169
+ readonly usePlaying: () => boolean;
1197
1170
  readonly PlaybackRateContext: import("react").Context<PlaybackRateContextValue | null>;
1198
1171
  readonly AbsoluteTimeContext: import("react").Context<TimelineContextValue | null>;
1199
1172
  readonly RenderAssetManagerProvider: import("react").FC<{
@@ -1300,4 +1273,4 @@ export declare const Internals: {
1300
1273
  readonly componentName: string;
1301
1274
  }) => import("react").CSSProperties | null;
1302
1275
  };
1303
- export type { ArrayFieldSchema, AssetFieldSchema, ArrayItemFieldSchema, CannotUpdateSequenceReason, CanUpdateEffectPropsResponse, CanUpdateEffectPropsResponseFalse, CanUpdateEffectPropsResponseTrue, CanUpdateSequencePropsResponse, CanUpdateSequencePropsResponseFalse, CanUpdateSequencePropsResponseTrue, CanUpdateSequencePropStatus, CanUpdateSequencePropStatusEasing, CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, VideoConfigNumericExpression, CompositionManagerContext, CompProps, DragOverrides, DragOverrideValue, EffectDragOverrides, GetDragOverrides, GetEffectDragOverrides, GetEffectPropStatuses, GetPropStatuses, JsxComponentIdentity, LoggingContextValue, MediaVolumeContextValue, NonceHistory, OverrideIdsToNodePathsGettersContext, OverrideIdsToNodePathsSettersContext, OverrideIdToNodePaths, OverrideToNodePathGetters, OverrideToNodeSetters, PlaybackRateContextValue, PropStatuses, RemotionAudioContextState, RemotionEnvironment, ResolvedStackLocation, ScheduleAudioNodeOptions, ScheduleAudioNodeResult, InteractivitySchemaField, SequenceNodePath, SequencePropsSubscriptionKey, SequencePropsStatusRemapping, VideoConfigValues, InteractivitySchema, SerializedJSONWithCustomFields, SetMediaVolumeContextValue, SetTimelineContextValue, TCompMetadata, TComposition, TimelineContextValue, TimelineImperativeContextValue, TRenderAsset, TSequence, VisibleFieldSchema, WatchRemotionStaticFilesPayload, };
1276
+ export type { ArrayFieldSchema, AssetFieldSchema, ArrayItemFieldSchema, CannotUpdateSequenceReason, CanUpdateEffectPropsResponse, CanUpdateEffectPropsResponseFalse, CanUpdateEffectPropsResponseTrue, CanUpdateSequencePropsResponse, CanUpdateSequencePropsResponseFalse, CanUpdateSequencePropsResponseTrue, CanUpdateSequencePropStatus, CanUpdateSequencePropStatusEasing, CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, VideoConfigNumericExpression, CompositionManagerContext, CompProps, DragOverrides, DragOverrideValue, EffectDragOverrides, GetDragOverrides, GetEffectDragOverrides, GetEffectPropStatuses, GetPropStatuses, JsxComponentIdentity, LoggingContextValue, MediaVolumeContextValue, OverrideIdsToNodePathsGettersContext, OverrideIdsToNodePathsSettersContext, OverrideIdToNodePaths, OverrideToNodePathGetters, OverrideToNodeSetters, PlaybackRateContextValue, PropStatuses, RemotionAudioContextState, RemotionEnvironment, ResolvedStackLocation, ScheduleAudioNodeOptions, ScheduleAudioNodeResult, InteractivitySchemaField, SequenceNodePath, SequencePropsSubscriptionKey, SequencePropsStatusRemapping, VideoConfigValues, InteractivitySchema, SerializedJSONWithCustomFields, SetMediaVolumeContextValue, SetTimelineContextValue, TCompMetadata, TComposition, TimelineContextValue, TRenderAsset, TSequence, VisibleFieldSchema, WatchRemotionStaticFilesPayload, };
@@ -71,7 +71,6 @@ const log_level_context_js_1 = require("./log-level-context.js");
71
71
  const log_js_1 = require("./log.js");
72
72
  const max_video_cache_size_js_1 = require("./max-video-cache-size.js");
73
73
  const media_resource_manager_js_1 = require("./media-resource-manager.js");
74
- const nonce_js_1 = require("./nonce.js");
75
74
  const playback_logging_js_1 = require("./playback-logging.js");
76
75
  const portal_node_js_1 = require("./portal-node.js");
77
76
  const prefetch_state_js_1 = require("./prefetch-state.js");
@@ -84,8 +83,10 @@ const render_resource_manager_js_1 = require("./render-resource-manager.js");
84
83
  const RenderAssetManager_js_1 = require("./RenderAssetManager.js");
85
84
  const resolve_video_config_js_1 = require("./resolve-video-config.js");
86
85
  const ResolveCompositionConfig_js_1 = require("./ResolveCompositionConfig.js");
86
+ const runtime_value_store_js_1 = require("./runtime-value-store.js");
87
87
  const sequence_crop_js_1 = require("./sequence-crop.js");
88
88
  const sequence_node_path_js_1 = require("./sequence-node-path.js");
89
+ const sequence_order_marker_js_1 = require("./sequence-order-marker.js");
89
90
  const sequence_stack_traces_js_1 = require("./sequence-stack-traces.js");
90
91
  const Sequence_js_1 = require("./Sequence.js");
91
92
  const SequenceContext_js_1 = require("./SequenceContext.js");
@@ -95,6 +96,7 @@ const TimelinePosition = __importStar(require("./timeline-position-state.js"));
95
96
  const timeline_position_state_js_1 = require("./timeline-position-state.js");
96
97
  const TimelineContext_js_1 = require("./TimelineContext.js");
97
98
  const truthy_js_1 = require("./truthy.js");
99
+ const use_buffering_js_1 = require("./use-buffering.js");
98
100
  const use_crop_style_js_1 = require("./use-crop-style.js");
99
101
  const use_current_scale_js_1 = require("./use-current-scale.js");
100
102
  const use_delay_render_js_1 = require("./use-delay-render.js");
@@ -102,8 +104,10 @@ const use_lazy_component_js_1 = require("./use-lazy-component.js");
102
104
  const use_media_enabled_js_1 = require("./use-media-enabled.js");
103
105
  const use_media_in_timeline_js_1 = require("./use-media-in-timeline.js");
104
106
  const use_pixel_density_js_1 = require("./use-pixel-density.js");
107
+ const use_playing_js_1 = require("./use-playing.js");
105
108
  const use_premounting_js_1 = require("./use-premounting.js");
106
109
  const use_schema_js_1 = require("./use-schema.js");
110
+ const use_sync_external_store_js_1 = require("./use-sync-external-store.js");
107
111
  const use_unsafe_video_config_js_1 = require("./use-unsafe-video-config.js");
108
112
  const use_video_js_1 = require("./use-video.js");
109
113
  const validate_media_props_js_1 = require("./validate-media-props.js");
@@ -134,6 +138,7 @@ exports.Internals = {
134
138
  MEDIABUNNY_DURATION_VALUE_KEY: media_resource_manager_js_1.MEDIABUNNY_DURATION_VALUE_KEY,
135
139
  makeRenderResourceManager: render_resource_manager_js_1.makeRenderResourceManager,
136
140
  RenderResourceManagerContext: render_resource_manager_js_1.RenderResourceManagerContext,
141
+ createRuntimeValueStore: runtime_value_store_js_1.createRuntimeValueStore,
137
142
  useUnsafeVideoConfig: use_unsafe_video_config_js_1.useUnsafeVideoConfig,
138
143
  useFrameForVolumeProp: use_audio_frame_js_1.useFrameForVolumeProp,
139
144
  useTimelinePosition: TimelinePosition.useTimelinePosition,
@@ -157,6 +162,7 @@ exports.Internals = {
157
162
  SequenceManagerProvider: SequenceManager_js_1.SequenceManagerProvider,
158
163
  SequenceManagerRefContext: SequenceManager_js_1.SequenceManagerRefContext,
159
164
  SequenceRegistrationContext: SequenceManager_js_1.SequenceRegistrationContext,
165
+ CommitOrderInternals: sequence_order_marker_js_1.CommitOrderInternals,
160
166
  SequenceStackTracesUpdateContext: sequence_stack_traces_js_1.SequenceStackTracesUpdateContext,
161
167
  baseSchema: interactivity_schema_js_1.baseSchema,
162
168
  sequenceSchema: interactivity_schema_js_1.sequenceSchema,
@@ -214,7 +220,6 @@ exports.Internals = {
214
220
  EditorPropsProvider: EditorProps_js_1.EditorPropsProvider,
215
221
  EditorPropsContext: EditorProps_js_1.EditorPropsContext,
216
222
  usePreload: prefetch_js_1.usePreload,
217
- NonceContext: nonce_js_1.NonceContext,
218
223
  resolveVideoConfig: resolve_video_config_js_1.resolveVideoConfig,
219
224
  resolveVideoConfigOrCatch: resolve_video_config_js_1.resolveVideoConfigOrCatch,
220
225
  resolveVideoConfigWithMetadataOrCatch: resolve_video_config_js_1.resolveVideoConfigWithMetadataOrCatch,
@@ -260,11 +265,11 @@ exports.Internals = {
260
265
  setInputPropsOverride: input_props_override_js_1.setInputPropsOverride,
261
266
  useVideoEnabled: use_media_enabled_js_1.useVideoEnabled,
262
267
  useAudioEnabled: use_media_enabled_js_1.useAudioEnabled,
263
- useIsPlayerBuffering: buffering_js_1.useIsPlayerBuffering,
268
+ useBuffering: use_buffering_js_1.useBuffering,
264
269
  TimelinePosition,
265
270
  DelayRenderContextType: use_delay_render_js_1.DelayRenderContextType,
266
271
  TimelineContext: TimelineContext_js_1.TimelineContext,
267
- TimelineImperativeContext: TimelineContext_js_1.TimelineImperativeContext,
272
+ usePlaying: use_playing_js_1.usePlaying,
268
273
  PlaybackRateContext: TimelineContext_js_1.PlaybackRateContext,
269
274
  AbsoluteTimeContext: TimelineContext_js_1.AbsoluteTimeContext,
270
275
  RenderAssetManagerProvider: RenderAssetManager_js_1.RenderAssetManagerProvider,
@@ -298,3 +303,6 @@ exports.Internals = {
298
303
  resolveSequenceCrop: sequence_crop_js_1.resolveSequenceCrop,
299
304
  useCropStyle: use_crop_style_js_1.useCropStyle,
300
305
  };
306
+ // Keep this available to other Remotion packages without adding it to the
307
+ // public type of Internals.
308
+ Object.assign(exports.Internals, { useSyncExternalStore: use_sync_external_store_js_1.useSyncExternalStore });
@@ -1,10 +1,10 @@
1
1
  export type RuntimeValueSnapshot = Readonly<Record<string, unknown>>;
2
- export type RuntimeValueStore = {
3
- getSnapshot: () => RuntimeValueSnapshot;
4
- subscribe: (listener: () => void) => () => void;
2
+ export type RuntimeValueStore<TSnapshot extends RuntimeValueSnapshot = RuntimeValueSnapshot> = {
3
+ getSnapshot: () => TSnapshot;
4
+ subscribe: (listener: (snapshot: TSnapshot) => void) => () => void;
5
5
  };
6
- export type RuntimeValueStoreController = {
7
- store: RuntimeValueStore;
8
- setSnapshot: (newSnapshot: RuntimeValueSnapshot) => void;
6
+ export type RuntimeValueStoreController<TSnapshot extends RuntimeValueSnapshot = RuntimeValueSnapshot> = {
7
+ store: RuntimeValueStore<TSnapshot>;
8
+ setSnapshot: (newSnapshot: TSnapshot) => void;
9
9
  };
10
- export declare const createRuntimeValueStore: (initialSnapshot: Readonly<Record<string, unknown>>) => RuntimeValueStoreController;
10
+ export declare const createRuntimeValueStore: <TSnapshot extends Readonly<Record<string, unknown>>>(initialSnapshot: TSnapshot) => RuntimeValueStoreController<TSnapshot>;
@@ -21,7 +21,7 @@ const createRuntimeValueStore = (initialSnapshot) => {
21
21
  }
22
22
  snapshot = newSnapshot;
23
23
  for (const listener of listeners) {
24
- listener();
24
+ listener(snapshot);
25
25
  }
26
26
  },
27
27
  };
@@ -0,0 +1,57 @@
1
+ import type React from 'react';
2
+ export declare const SEQUENCE_ORDER_MARKER: unique symbol;
3
+ export declare const SEQUENCE_MANAGER_ORDER_MARKER: unique symbol;
4
+ export declare const COMPOSITION_ORDER_MARKER: unique symbol;
5
+ export declare const FOLDER_ORDER_MARKER: unique symbol;
6
+ export declare const COMPOSITION_MANAGER_ORDER_MARKER: unique symbol;
7
+ export declare const COMMIT_ORDER_EVENT = "remotion:commit-order";
8
+ export type CompositionAndFolderOrderItem = {
9
+ readonly type: 'composition';
10
+ readonly id: string;
11
+ } | {
12
+ readonly type: 'folder';
13
+ readonly id: string;
14
+ };
15
+ export declare const getCompositionAndFolderOrderKey: (item: CompositionAndFolderOrderItem) => string;
16
+ export type CommitOrderEventDetail = {
17
+ readonly sequenceManagers: readonly {
18
+ readonly managerId: string;
19
+ readonly sequenceIds: readonly string[];
20
+ }[];
21
+ readonly compositionManagers: readonly {
22
+ readonly managerId: string;
23
+ readonly compositionAndFolderOrder: readonly CompositionAndFolderOrderItem[];
24
+ }[];
25
+ };
26
+ export declare const getFolderOrderId: ({ name, parent, }: {
27
+ readonly name: string;
28
+ readonly parent: string | null;
29
+ }) => string;
30
+ export declare const SequenceOrderMarker: React.FC<{
31
+ readonly children: React.ReactNode;
32
+ readonly sequenceId: string;
33
+ }>;
34
+ export declare const SequenceManagerOrderMarker: React.FC<{
35
+ readonly children: React.ReactNode;
36
+ readonly managerId: string;
37
+ }>;
38
+ export declare const CompositionOrderMarker: React.FC<{
39
+ readonly children: React.ReactNode;
40
+ readonly compositionId: string;
41
+ }>;
42
+ export declare const FolderOrderMarker: React.FC<{
43
+ readonly children: React.ReactNode;
44
+ readonly folderId: string;
45
+ }>;
46
+ export declare const CompositionManagerOrderMarker: React.FC<{
47
+ readonly children: React.ReactNode;
48
+ readonly managerId: string;
49
+ }>;
50
+ export declare const CommitOrderInternals: {
51
+ compositionManagerMarker: symbol;
52
+ compositionMarker: symbol;
53
+ folderMarker: symbol;
54
+ sequenceManagerMarker: symbol;
55
+ sequenceMarker: symbol;
56
+ eventName: string;
57
+ };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommitOrderInternals = exports.CompositionManagerOrderMarker = exports.FolderOrderMarker = exports.CompositionOrderMarker = exports.SequenceManagerOrderMarker = exports.SequenceOrderMarker = exports.getFolderOrderId = exports.getCompositionAndFolderOrderKey = exports.COMMIT_ORDER_EVENT = exports.COMPOSITION_MANAGER_ORDER_MARKER = exports.FOLDER_ORDER_MARKER = exports.COMPOSITION_ORDER_MARKER = exports.SEQUENCE_MANAGER_ORDER_MARKER = exports.SEQUENCE_ORDER_MARKER = void 0;
4
+ exports.SEQUENCE_ORDER_MARKER = Symbol.for('remotion.sequence-order-marker');
5
+ exports.SEQUENCE_MANAGER_ORDER_MARKER = Symbol.for('remotion.sequence-manager-order-marker');
6
+ exports.COMPOSITION_ORDER_MARKER = Symbol.for('remotion.composition-order-marker');
7
+ exports.FOLDER_ORDER_MARKER = Symbol.for('remotion.folder-order-marker');
8
+ exports.COMPOSITION_MANAGER_ORDER_MARKER = Symbol.for('remotion.composition-manager-order-marker');
9
+ exports.COMMIT_ORDER_EVENT = 'remotion:commit-order';
10
+ const getCompositionAndFolderOrderKey = (item) => `${item.type}:${item.id}`;
11
+ exports.getCompositionAndFolderOrderKey = getCompositionAndFolderOrderKey;
12
+ const getFolderOrderId = ({ name, parent, }) => [parent, name].filter(Boolean).join('/');
13
+ exports.getFolderOrderId = getFolderOrderId;
14
+ const SequenceOrderMarker = ({ children }) => children;
15
+ exports.SequenceOrderMarker = SequenceOrderMarker;
16
+ Object.defineProperty(exports.SequenceOrderMarker, exports.SEQUENCE_ORDER_MARKER, {
17
+ value: true,
18
+ });
19
+ const SequenceManagerOrderMarker = ({ children }) => children;
20
+ exports.SequenceManagerOrderMarker = SequenceManagerOrderMarker;
21
+ Object.defineProperty(exports.SequenceManagerOrderMarker, exports.SEQUENCE_MANAGER_ORDER_MARKER, {
22
+ value: true,
23
+ });
24
+ const CompositionOrderMarker = ({ children }) => children;
25
+ exports.CompositionOrderMarker = CompositionOrderMarker;
26
+ Object.defineProperty(exports.CompositionOrderMarker, exports.COMPOSITION_ORDER_MARKER, {
27
+ value: true,
28
+ });
29
+ const FolderOrderMarker = ({ children }) => children;
30
+ exports.FolderOrderMarker = FolderOrderMarker;
31
+ Object.defineProperty(exports.FolderOrderMarker, exports.FOLDER_ORDER_MARKER, {
32
+ value: true,
33
+ });
34
+ const CompositionManagerOrderMarker = ({ children }) => children;
35
+ exports.CompositionManagerOrderMarker = CompositionManagerOrderMarker;
36
+ Object.defineProperty(exports.CompositionManagerOrderMarker, exports.COMPOSITION_MANAGER_ORDER_MARKER, { value: true });
37
+ exports.CommitOrderInternals = {
38
+ compositionManagerMarker: exports.COMPOSITION_MANAGER_ORDER_MARKER,
39
+ compositionMarker: exports.COMPOSITION_ORDER_MARKER,
40
+ folderMarker: exports.FOLDER_ORDER_MARKER,
41
+ sequenceManagerMarker: exports.SEQUENCE_MANAGER_ORDER_MARKER,
42
+ sequenceMarker: exports.SEQUENCE_ORDER_MARKER,
43
+ eventName: exports.COMMIT_ORDER_EVENT,
44
+ };
@@ -1,4 +1,3 @@
1
- import type { RefObject } from 'react';
2
1
  import { type PlaybackRateContextValue, type TimelineContextValue } from './TimelineContext.js';
3
2
  export type PlayableMediaTag = {
4
3
  play: (reason: string) => void;
@@ -14,10 +13,5 @@ export declare const usePlaybackRate: () => PlaybackRateContextValue;
14
13
  export declare const useTimelinePosition: () => number;
15
14
  export declare const useAbsoluteTimelinePosition: () => number;
16
15
  export declare const useTimelineSetFrame: () => (u: import("react").SetStateAction<Record<string, number>>) => void;
17
- type PlayingReturnType = readonly [
18
- boolean,
19
- (u: React.SetStateAction<boolean>) => void,
20
- RefObject<boolean>
21
- ];
22
- export declare const usePlayingState: () => PlayingReturnType;
23
- export {};
16
+ export { usePlaying } from './use-playing.js';
17
+ export { useBuffering } from './use-buffering.js';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.usePlayingState = exports.useTimelineSetFrame = exports.useAbsoluteTimelinePosition = exports.useTimelinePosition = exports.usePlaybackRate = exports.useTimelineContext = exports.clampFrameToCompositionRange = exports.getFrameForComposition = exports.getInitialFrameState = exports.persistCurrentFrame = void 0;
3
+ exports.useBuffering = exports.usePlaying = exports.useTimelineSetFrame = exports.useAbsoluteTimelinePosition = exports.useTimelinePosition = exports.usePlaybackRate = exports.useTimelineContext = exports.clampFrameToCompositionRange = exports.getFrameForComposition = exports.getInitialFrameState = exports.persistCurrentFrame = void 0;
4
4
  const react_1 = require("react");
5
5
  const TimelineContext_js_1 = require("./TimelineContext.js");
6
6
  const use_remotion_environment_js_1 = require("./use-remotion-environment.js");
@@ -82,9 +82,7 @@ const useTimelineSetFrame = () => {
82
82
  return setFrame;
83
83
  };
84
84
  exports.useTimelineSetFrame = useTimelineSetFrame;
85
- const usePlayingState = () => {
86
- const { playing, imperativePlaying } = (0, exports.useTimelineContext)();
87
- const { setPlaying } = (0, react_1.useContext)(TimelineContext_js_1.SetTimelineContext);
88
- return (0, react_1.useMemo)(() => [playing, setPlaying, imperativePlaying], [imperativePlaying, playing, setPlaying]);
89
- };
90
- exports.usePlayingState = usePlayingState;
85
+ const use_playing_js_1 = require("./use-playing.js");
86
+ Object.defineProperty(exports, "usePlaying", { enumerable: true, get: function () { return use_playing_js_1.usePlaying; } });
87
+ const use_buffering_js_1 = require("./use-buffering.js");
88
+ Object.defineProperty(exports, "useBuffering", { enumerable: true, get: function () { return use_buffering_js_1.useBuffering; } });
@@ -17,9 +17,7 @@ const useBufferState = () => {
17
17
  throw new Error('Tried to enable the buffering state, but a Remotion context was not found. This API can only be called in a component that was passed to the Remotion Player or a <Composition>. Or you might have experienced a version mismatch - run `npx remotion versions` and ensure all packages have the same version. This error is thrown by the buffer state https://remotion.dev/docs/player/buffer-state');
18
18
  }
19
19
  log_1.Log.trace({ logLevel, tag: '[buffer-state]' }, 'Adding buffer handle', new Error().stack);
20
- const { unblock } = addBlock({
21
- id: String(Math.random()),
22
- });
20
+ const { unblock } = addBlock();
23
21
  let unblocked = false;
24
22
  return {
25
23
  unblock: () => {
@@ -0,0 +1 @@
1
+ export declare const useBuffering: () => boolean;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useBuffering = void 0;
4
+ const react_1 = require("react");
5
+ const TimelineContext_js_1 = require("./TimelineContext.js");
6
+ const use_sync_external_store_js_1 = require("./use-sync-external-store.js");
7
+ const useBuffering = () => {
8
+ const { isBuffering, subscribeBuffering } = (0, react_1.useContext)(TimelineContext_js_1.SetTimelineContext);
9
+ return (0, use_sync_external_store_js_1.useSyncExternalStore)(subscribeBuffering, isBuffering, isBuffering);
10
+ };
11
+ exports.useBuffering = useBuffering;
@@ -17,7 +17,6 @@ export declare const useBasicMediaInTimeline: ({ volume, mediaVolume, mediaType,
17
17
  volumes: string | number;
18
18
  duration: number;
19
19
  doesVolumeChange: boolean;
20
- nonce: import("./nonce.js").NonceHistoryContext;
21
20
  finalDisplayName: string;
22
21
  startMediaFrom: number;
23
22
  src: string;