remotion 4.0.533 → 4.0.535

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 (107) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/AbsoluteFill.d.ts +1 -6
  3. package/dist/cjs/AbsoluteFill.js +1 -1
  4. package/dist/cjs/Composition.js +15 -20
  5. package/dist/cjs/CompositionManager.d.ts +4 -4
  6. package/dist/cjs/CompositionManagerContext.d.ts +1 -6
  7. package/dist/cjs/CompositionManagerContext.js +0 -4
  8. package/dist/cjs/CompositionManagerProvider.js +77 -172
  9. package/dist/cjs/CompositionRegistryProvider.d.ts +5 -0
  10. package/dist/cjs/CompositionRegistryProvider.js +142 -0
  11. package/dist/cjs/DefaultPremountContext.d.ts +1 -0
  12. package/dist/cjs/DefaultPremountContext.js +6 -0
  13. package/dist/cjs/Folder.js +11 -20
  14. package/dist/cjs/HtmlInCanvas.d.ts +2 -2
  15. package/dist/cjs/HtmlInCanvas.js +179 -31
  16. package/dist/cjs/IFrame.js +40 -8
  17. package/dist/cjs/Img.js +2 -1
  18. package/dist/cjs/Interactive.d.ts +12 -0
  19. package/dist/cjs/Interactive.js +19 -8
  20. package/dist/cjs/RemotionRoot.js +2 -1
  21. package/dist/cjs/Sequence.d.ts +6 -2
  22. package/dist/cjs/Sequence.js +107 -40
  23. package/dist/cjs/SequenceActivityBoundary.d.ts +10 -0
  24. package/dist/cjs/SequenceActivityBoundary.js +88 -0
  25. package/dist/cjs/SequenceActivityBudget.d.ts +13 -0
  26. package/dist/cjs/SequenceActivityBudget.js +181 -0
  27. package/dist/cjs/SequenceManager.d.ts +13 -29
  28. package/dist/cjs/SequenceManager.js +36 -176
  29. package/dist/cjs/SequenceRegistryProvider.d.ts +4 -0
  30. package/dist/cjs/SequenceRegistryProvider.js +292 -0
  31. package/dist/cjs/Track.d.ts +13 -0
  32. package/dist/cjs/Track.js +33 -0
  33. package/dist/cjs/animated-image/AnimatedImage.js +42 -30
  34. package/dist/cjs/audio/AudioForPreview.js +54 -41
  35. package/dist/cjs/audio/get-audio-sync-anchor-tolerance.d.ts +1 -0
  36. package/dist/cjs/audio/get-audio-sync-anchor-tolerance.js +11 -0
  37. package/dist/cjs/audio/use-audio-context.js +26 -7
  38. package/dist/cjs/canvas-image/CanvasImage.js +4 -2
  39. package/dist/cjs/committed-metadata.d.ts +68 -0
  40. package/dist/cjs/committed-metadata.js +39 -0
  41. package/dist/cjs/component-identity.d.ts +6 -0
  42. package/dist/cjs/component-identity.js +39 -0
  43. package/dist/cjs/composition-registry-fallback.d.ts +14 -0
  44. package/dist/cjs/composition-registry-fallback.js +35 -0
  45. package/dist/cjs/create-element-source-proxy.d.ts +4 -0
  46. package/dist/cjs/create-element-source-proxy.js +46 -0
  47. package/dist/cjs/default-premount-in-seconds.d.ts +3 -0
  48. package/dist/cjs/default-premount-in-seconds.js +12 -0
  49. package/dist/cjs/effects/Solid.js +5 -3
  50. package/dist/cjs/effects/canvas-pool.d.ts +1 -0
  51. package/dist/cjs/effects/canvas-pool.js +15 -10
  52. package/dist/cjs/effects/run-effect-chain.js +3 -3
  53. package/dist/cjs/effects/use-memoized-effects.d.ts +3 -1
  54. package/dist/cjs/effects/use-memoized-effects.js +104 -21
  55. package/dist/cjs/enable-sequence-stack-traces.d.ts +2 -8
  56. package/dist/cjs/enable-sequence-stack-traces.js +7 -38
  57. package/dist/cjs/evaluate-source-expressions.d.ts +5 -0
  58. package/dist/cjs/evaluate-source-expressions.js +98 -0
  59. package/dist/cjs/freeze.js +9 -8
  60. package/dist/cjs/index.d.ts +2 -2
  61. package/dist/cjs/index.js +3 -3
  62. package/dist/cjs/interactivity-schema.d.ts +45 -9
  63. package/dist/cjs/interactivity-schema.js +30 -3
  64. package/dist/cjs/internals.d.ts +113 -27
  65. package/dist/cjs/internals.js +37 -7
  66. package/dist/cjs/interpolate-keyframed-status.d.ts +4 -0
  67. package/dist/cjs/interpolate-keyframed-status.js +38 -1
  68. package/dist/cjs/interpolate.d.ts +12 -0
  69. package/dist/cjs/interpolate.js +7 -0
  70. package/dist/cjs/no-react.d.ts +6 -0
  71. package/dist/cjs/no-react.js +9 -0
  72. package/dist/cjs/optimistic-sequence-deletion.d.ts +17 -0
  73. package/dist/cjs/optimistic-sequence-deletion.js +114 -0
  74. package/dist/cjs/registry-store.d.ts +17 -0
  75. package/dist/cjs/registry-store.js +68 -0
  76. package/dist/cjs/sequence-activity-context.d.ts +13 -0
  77. package/dist/cjs/sequence-activity-context.js +20 -0
  78. package/dist/cjs/sequence-activity-defaults.d.ts +1 -0
  79. package/dist/cjs/sequence-activity-defaults.js +4 -0
  80. package/dist/cjs/sequence-outline.js +1 -2
  81. package/dist/cjs/sequence-registry-context.d.ts +26 -0
  82. package/dist/cjs/sequence-registry-context.js +71 -0
  83. package/dist/cjs/series/index.d.ts +2 -1
  84. package/dist/cjs/series/index.js +15 -5
  85. package/dist/cjs/timeline-position-state.js +11 -3
  86. package/dist/cjs/timeline-track-context.d.ts +10 -0
  87. package/dist/cjs/timeline-track-context.js +6 -0
  88. package/dist/cjs/use-lazy-component.js +29 -15
  89. package/dist/cjs/use-media-in-timeline.d.ts +7 -14
  90. package/dist/cjs/use-media-in-timeline.js +29 -119
  91. package/dist/cjs/use-premounting.js +3 -4
  92. package/dist/cjs/use-schema.d.ts +32 -18
  93. package/dist/cjs/use-sequence-registration.d.ts +1 -1
  94. package/dist/cjs/use-sequence-registration.js +22 -6
  95. package/dist/cjs/use-video.d.ts +7 -2
  96. package/dist/cjs/use-video.js +11 -3
  97. package/dist/cjs/version.d.ts +1 -1
  98. package/dist/cjs/version.js +1 -1
  99. package/dist/cjs/video/VideoForPreview.js +55 -42
  100. package/dist/cjs/video/html5-video.js +1 -1
  101. package/dist/cjs/with-interactivity-schema.js +48 -16
  102. package/dist/cjs/wrap-remotion-context.d.ts +17 -2
  103. package/dist/cjs/wrap-remotion-context.js +108 -4
  104. package/dist/esm/index.mjs +3526 -2259
  105. package/dist/esm/no-react.mjs +149 -35
  106. package/dist/esm/version.mjs +1 -1
  107. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sequenceSchemaDefaultLayoutNone = exports.sequenceSchemaWithoutFrom = exports.baseSchemaWithoutFrom = exports.sequenceSchema = exports.baseSchemaWithoutPlaybackRate = exports.baseSchema = exports.freezeField = exports.loopField = exports.trimAfterField = exports.trimBeforeField = exports.fromField = exports.durationInFramesField = exports.extendSchemaWithSequenceName = exports.sequenceNameField = exports.hiddenField = exports.sequenceStyleSchema = exports.sequenceCropSchema = exports.cropSchema = exports.sequencePremountSchema = exports.premountSchema = exports.textContentSchema = exports.svgPaintSchema = exports.svgStrokeSchema = exports.backgroundSchema = exports.borderRadiusSchema = exports.borderSchema = exports.textSchema = exports.sequenceVisualStyleSchema = exports.transformSchema = exports.captionsSchema = void 0;
3
+ exports.sequenceSchemaDefaultLayoutNone = exports.sequenceSchemaWithoutFrom = exports.baseSchemaWithoutFrom = exports.sequenceSchema = exports.baseSchemaWithoutPlaybackRate = exports.baseSchema = exports.freezeField = exports.loopField = exports.trimAfterField = exports.sequenceTimingSchema = exports.trimBeforeField = exports.fromField = exports.durationInFramesField = exports.extendSchemaWithSequenceName = exports.sequenceNameField = exports.hiddenField = exports.sequenceStyleSchema = exports.sequenceCropSchema = exports.cropSchema = exports.sequencePremountSchema = exports.premountSchema = exports.textContentSchema = exports.childrenSchema = exports.svgPaintSchema = exports.svgStrokeSchema = exports.backgroundSchema = exports.borderRadiusSchema = exports.borderSchema = exports.textSchema = exports.sequenceVisualStyleSchema = exports.transformSchema = exports.captionsSchema = void 0;
4
4
  exports.captionsSchema = {
5
5
  captions: {
6
6
  type: 'remotion-captions',
@@ -228,14 +228,20 @@ exports.svgPaintSchema = {
228
228
  },
229
229
  ...exports.svgStrokeSchema,
230
230
  };
231
- exports.textContentSchema = {
231
+ /**
232
+ * Controls for children content. Currently uses a string field, but the field
233
+ * type may evolve to support richer content.
234
+ */
235
+ exports.childrenSchema = {
232
236
  children: {
233
- type: 'text-content',
237
+ type: 'string',
234
238
  default: '',
235
239
  description: 'Text',
236
240
  keyframable: false,
237
241
  },
238
242
  };
243
+ /** @deprecated Use childrenSchema instead. */
244
+ exports.textContentSchema = exports.childrenSchema;
239
245
  exports.premountSchema = {
240
246
  premountFor: {
241
247
  type: 'number',
@@ -347,6 +353,27 @@ exports.trimBeforeField = {
347
353
  step: 1,
348
354
  hiddenFromList: true,
349
355
  };
356
+ // Packed timeline containers expose timing through the inspector.
357
+ exports.sequenceTimingSchema = {
358
+ from: {
359
+ ...exports.fromField,
360
+ description: 'From',
361
+ hiddenFromList: false,
362
+ keyframable: false,
363
+ },
364
+ durationInFrames: {
365
+ ...exports.durationInFramesField,
366
+ description: 'Duration',
367
+ hiddenFromList: false,
368
+ keyframable: false,
369
+ },
370
+ trimBefore: {
371
+ ...exports.trimBeforeField,
372
+ description: 'Trim before',
373
+ hiddenFromList: false,
374
+ keyframable: false,
375
+ },
376
+ };
350
377
  exports.trimAfterField = {
351
378
  type: 'number',
352
379
  default: undefined,
@@ -7,24 +7,62 @@ import type { CompositionManagerContext } from './CompositionManagerContext.js';
7
7
  import * as CSSUtils from './default-css.js';
8
8
  import { type OriginalSourceLocation } from './enable-sequence-stack-traces.js';
9
9
  import type { SerializedJSONWithCustomFields } from './input-props-serialization.js';
10
- import { type AssetFieldSchema, type ArrayFieldSchema, type ArrayItemFieldSchema, type InteractivitySchemaField, type InteractivitySchema, type VisibleFieldSchema } from './interactivity-schema.js';
10
+ import { type ArrayFieldSchema, type ArrayItemFieldSchema, type AssetFieldSchema, type InteractivitySchema, type InteractivitySchemaField, type VisibleFieldSchema } from './interactivity-schema.js';
11
11
  import type { LoggingContextValue } from './log-level-context.js';
12
12
  import type { RemotionEnvironment } from './remotion-environment-context.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';
16
16
  import type { CannotUpdateSequenceReason } from './SequenceManager.js';
17
- import { type CanUpdateEffectPropsResponse, type CanUpdateEffectPropsResponseFalse, type CanUpdateEffectPropsResponseTrue, type CanUpdateSequencePropsResponse, type CanUpdateSequencePropsResponseFalse, type CanUpdateSequencePropsResponseTrue, type SequenceNodePath, type SequencePropsSubscriptionKey, type SequencePropsStatusRemapping, type VideoConfigValues } from './SequenceManager.js';
17
+ import { type CanUpdateEffectPropsResponse, type CanUpdateEffectPropsResponseFalse, type CanUpdateEffectPropsResponseTrue, type CanUpdateSequencePropsResponse, type CanUpdateSequencePropsResponseFalse, type CanUpdateSequencePropsResponseTrue, type SequenceNodePath, type SequencePropsStatusRemapping, type SequencePropsSubscriptionKey, type VideoConfigValues } from './SequenceManager.js';
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, CanUpdateSequencePropStatusEasing, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, DragOverrideValue, GetDragOverrides, GetEffectDragOverrides, GetEffectPropStatuses, GetPropStatuses, VideoConfigNumericExpression } from './use-schema.js';
21
+ import type { CanUpdateSequencePropStatusEasing, CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, DragOverrideValue, GetDragOverrides, GetEffectDragOverrides, GetEffectPropStatuses, GetPropStatuses, VideoConfigNumericExpression } from './use-schema.js';
22
22
  import { type CanUpdateSequencePropStatus, type DragOverrides, type EffectDragOverrides, type PropStatuses } 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';
25
25
  import { useRemotionContexts } from './wrap-remotion-context.js';
26
26
  export type { EffectChainState } from './effects/run-effect-chain.js';
27
27
  export declare const Internals: {
28
+ readonly OptimisticSequenceDeletion: {
29
+ register: (stack: string | null, node: {
30
+ absolutePath: string;
31
+ nodePath: SequenceNodePath;
32
+ } | null) => void;
33
+ isDeleted: (node: {
34
+ absolutePath: string;
35
+ nodePath: SequenceNodePath;
36
+ } | null, pending: ReadonlySet<string>) => boolean;
37
+ isElementDeleted: (element: import("react").ReactNode, pending: ReadonlySet<string>) => boolean;
38
+ set: (nodes: readonly {
39
+ absolutePath: string;
40
+ nodePath: SequenceNodePath;
41
+ }[], revision: number, deleted: boolean) => void;
42
+ rollback: (nodes: readonly {
43
+ absolutePath: string;
44
+ nodePath: SequenceNodePath;
45
+ }[], revision: number) => void;
46
+ restore: (nodes: readonly {
47
+ absolutePath: string;
48
+ nodePath: SequenceNodePath;
49
+ }[], revision: number, deleted: boolean) => void;
50
+ prepareRetirement: (nodes: readonly {
51
+ absolutePath: string;
52
+ nodePath: SequenceNodePath;
53
+ }[], dispatchedRevision: number) => () => void;
54
+ };
55
+ readonly usePendingSequenceDeletions: () => ReadonlySet<string>;
56
+ readonly createElementSourceProxy: <T extends typeof import("react").createElement | typeof import("react/jsx-runtime").jsx | typeof import("react/jsx-dev-runtime").jsxDEV>(api: T, sourceArgumentIndex: number | null, getSourceFileName: (fileName: string) => string) => T;
57
+ readonly CommittedMetadataProvider: import("react").ProviderExoticComponent<import("react").ProviderProps<null> & {
58
+ readonly _remotionCommitMetadata: import("./committed-metadata.js").CommittedMetadata | null;
59
+ }>;
60
+ readonly withCommittedMetadata: <T>(provider: import("react").Provider<T>) => import("react").ProviderExoticComponent<import("react").ProviderProps<T> & {
61
+ readonly _remotionCommitMetadata: import("./committed-metadata.js").CommittedMetadata | null;
62
+ }>;
63
+ readonly DefaultPremountContext: import("react").Context<number>;
64
+ readonly evaluateSourceNumericValue: (expression: import("./use-schema.js").SourceNumericValue, config: VideoConfigValues | null) => number;
65
+ readonly evaluateSourcePropStatuses: (props: Record<string, import("./use-schema.js").CanUpdateSequencePropSource>, config: VideoConfigValues | null) => Record<string, CanUpdateSequencePropStatus>;
28
66
  readonly AbsoluteFillElement: import("react").ForwardRefExoticComponent<Omit<import("./AbsoluteFillElement.js").AbsoluteFillElementProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
29
67
  readonly MaxMediaCacheSizeContext: import("react").Context<number | null>;
30
68
  readonly getMediabunnyInputResourceKey: ({ src, credentials, requestInitFingerprint, revision, }: {
@@ -100,25 +138,26 @@ export declare const Internals: {
100
138
  readonly VisualModePropStatusesRefContext: import("react").Context<import("./SequenceManager.js").VisualModePropStatusesRef>;
101
139
  readonly VisualModeBatchSettersContext: import("react").Context<import("./SequenceManager.js").VisualModeBatchSetters | null>;
102
140
  readonly VisualModeDragOverridesContext: import("react").Context<import("./SequenceManager.js").VisualModeDragOverrides>;
141
+ readonly VisualModeDragOverridesRefContext: import("react").Context<import("react").RefObject<import("./SequenceManager.js").VisualModeDragOverrides>>;
103
142
  readonly VisualModeSettersContext: import("react").Context<import("./SequenceManager.js").VisualModeSetters>;
104
- readonly SequenceManager: import("react").Context<import("./SequenceManager.js").SequenceManagerContext>;
105
143
  readonly SequenceManagerProvider: import("react").FC<{
106
144
  readonly children: import("react").ReactNode;
107
145
  }>;
108
- readonly SequenceManagerRefContext: import("react").Context<import("./SequenceManager.js").SequenceManagerRef>;
146
+ readonly SequenceManagerRefContext: import("react").Context<import("./sequence-registry-context.js").SequenceManagerRef>;
147
+ readonly SequenceRegistryContext: import("react").Context<import("./registry-store.js").RegistryStore<TSequence[]> | null>;
109
148
  readonly useActiveFromDragOverrideKeys: () => ReadonlySet<string>;
149
+ readonly useDragOverridesForNodePath: (nodePath: SequencePropsSubscriptionKey | null) => Record<string, DragOverrideValue>;
110
150
  readonly useSequenceManagerSequences: () => TSequence[];
111
151
  readonly SequenceRegistrationContext: import("react").Context<boolean>;
112
152
  readonly DisableSequenceRegistrationProvider: import("react").FC<{
113
153
  readonly children: import("react").ReactNode;
114
154
  }>;
115
- readonly CommitOrderInternals: {
116
- compositionManagerMarker: symbol;
117
- compositionMarker: symbol;
118
- folderMarker: symbol;
119
- sequenceManagerMarker: symbol;
120
- sequenceMarker: symbol;
155
+ readonly CommittedMetadataInternals: {
156
+ metadataProp: "_remotionCommitMetadata";
121
157
  eventName: string;
158
+ installationMarker: symbol;
159
+ failureMarker: symbol;
160
+ registrationErrorEventName: string;
122
161
  };
123
162
  readonly SequenceOutlineInternals: {
124
163
  createRef: () => import("react").RefObject<Element | null>;
@@ -385,6 +424,42 @@ export declare const Internals: {
385
424
  };
386
425
  };
387
426
  };
427
+ readonly sequenceTimingSchema: {
428
+ readonly from: {
429
+ readonly type: "number";
430
+ readonly default: 0;
431
+ readonly step: 1;
432
+ readonly description: "From";
433
+ readonly hiddenFromList: false;
434
+ readonly keyframable: false;
435
+ };
436
+ readonly durationInFrames: {
437
+ readonly type: "number";
438
+ readonly default: undefined;
439
+ readonly min: 1;
440
+ readonly step: 1;
441
+ readonly description: "Duration";
442
+ readonly hiddenFromList: false;
443
+ readonly keyframable: false;
444
+ };
445
+ readonly trimBefore: {
446
+ readonly type: "number";
447
+ readonly default: 0;
448
+ readonly min: 0;
449
+ readonly step: 1;
450
+ readonly description: "Trim before";
451
+ readonly hiddenFromList: false;
452
+ readonly keyframable: false;
453
+ };
454
+ };
455
+ readonly SequenceContent: import("react").FC<{
456
+ readonly children: import("react").ReactNode;
457
+ }>;
458
+ readonly DEFAULT_SEQUENCE_ACTIVITY_LIMIT: 20;
459
+ readonly SequenceActivitySettingsContext: import("react").Context<{
460
+ readonly enabled: boolean;
461
+ readonly limit: number;
462
+ } | null>;
388
463
  readonly SequenceWithoutSchema: import("react").ForwardRefExoticComponent<import("./Sequence.js").SequenceProps & import("react").RefAttributes<HTMLDivElement>>;
389
464
  readonly sequenceStyleSchema: {
390
465
  readonly 'style.transformOrigin': {
@@ -794,15 +869,20 @@ export declare const Internals: {
794
869
  readonly initialCompositions: import("./CompositionManager.js").AnyComposition[];
795
870
  readonly initialCanvasContent: import("./CompositionManagerContext.js").CanvasContent | null;
796
871
  }) => import("react/jsx-runtime").JSX.Element;
872
+ readonly CompositionRegistryProvider: import("react").ForwardRefExoticComponent<{
873
+ readonly children: import("react").ReactNode;
874
+ readonly onSnapshot: (snapshot: import("./committed-metadata.js").CommittedCompositionSnapshot) => void;
875
+ } & import("react").RefAttributes<() => void>>;
797
876
  readonly useVideo: () => (import("./video-config.js").VideoConfig & {
798
877
  component: import("react").LazyExoticComponent<import("react").ComponentType<Record<string, unknown>>> | import("react").ComponentType<Record<string, unknown>>;
799
878
  }) | null;
879
+ readonly VideoProvider: import("react").FC<{
880
+ readonly children: import("react").ReactNode;
881
+ }>;
800
882
  readonly getRoot: () => import("react").FC<{}> | null;
801
883
  readonly useMediaVolumeState: () => readonly [number, (u: number) => void];
802
884
  readonly usePlayerMutedState: () => readonly [boolean, (u: import("react").SetStateAction<boolean>) => void];
803
- readonly useMediaInTimeline: ({ volume, mediaVolume, src, mediaType, playbackRate, displayName, id, getStack, showInTimeline, premountDisplay, postmountDisplay, loopDisplay, loopVolumeCurveBehavior, documentationLink, muted, }: {
804
- volume: import("./volume-prop.js").VolumeProp | undefined;
805
- mediaVolume: number;
885
+ readonly useMediaInTimeline: ({ src, mediaType, playbackRate, displayName, id, getStack, showInTimeline, premountDisplay, postmountDisplay, loopDisplay, documentationLink, muted, }: {
806
886
  src: string | undefined;
807
887
  mediaType: "audio" | "video";
808
888
  playbackRate: number;
@@ -813,10 +893,12 @@ export declare const Internals: {
813
893
  premountDisplay: number | null;
814
894
  postmountDisplay: number | null;
815
895
  loopDisplay: import("./CompositionManager.js").LoopDisplay | undefined;
816
- loopVolumeCurveBehavior: import("./index.js").LoopVolumeCurveBehavior;
817
896
  documentationLink: string | null;
818
897
  muted: boolean;
819
- }) => import("react").RefObject<Element | null> | null;
898
+ }) => {
899
+ automaticOutlineRef: import("react").RefObject<Element | null> | null;
900
+ registration: TSequence | null;
901
+ };
820
902
  readonly useLazyComponent: <Props>({ compProps, componentName, noSuspense, }: {
821
903
  compProps: CompProps<Props>;
822
904
  componentName: string;
@@ -826,6 +908,9 @@ export declare const Internals: {
826
908
  });
827
909
  readonly truthy: typeof truthy;
828
910
  readonly SequenceContext: import("react").Context<import("./SequenceContext.js").SequenceContextType | null>;
911
+ readonly TimelineTrackContext: import("react").Context<import("./timeline-track-context.js").TimelineTrack | null>;
912
+ readonly ExperimentalTracksEnabledContext: import("react").Context<boolean>;
913
+ readonly TrackWithoutSchema: import("react").FC<import("./Track.js").TrackWithoutSchemaProps>;
829
914
  readonly PremountContext: import("react").Context<import("./PremountContext.js").PremountContextValue>;
830
915
  readonly usePremounting: ({ from, durationInFrames, premountFor, postmountFor, style, styleWhilePremounted, styleWhilePostmounted, hideWhilePremounted, }: {
831
916
  readonly from: number;
@@ -918,6 +1003,7 @@ export declare const Internals: {
918
1003
  readonly numberOfAudioTags: number;
919
1004
  readonly children: import("react").ReactNode;
920
1005
  }>;
1006
+ readonly getAudioSyncAnchorTolerance: (audioContext: AudioContext) => number;
921
1007
  readonly invalidCompositionErrorMessage: string;
922
1008
  readonly invalidFolderNameErrorMessage: string;
923
1009
  readonly calculateMediaDuration: ({ trimAfter, mediaDurationInFrames, playbackRate, trimBefore, }: {
@@ -1064,7 +1150,6 @@ export declare const Internals: {
1064
1150
  };
1065
1151
  } | null>;
1066
1152
  readonly getComponentsToAddStacksTo: () => unknown[];
1067
- readonly getSequenceComponent: () => unknown;
1068
1153
  readonly getSingleChildComponent: (children: import("react").ReactNode) => unknown;
1069
1154
  readonly getStackForControls: (controls: import("./CompositionManager.js").SequenceControls) => string | null;
1070
1155
  readonly makeOriginalSourceStack: ({ fileName, lineNumber, columnNumber, }: {
@@ -1189,9 +1274,7 @@ export declare const Internals: {
1189
1274
  }, "ref"> & import("react").RefAttributes<HTMLAudioElement>>;
1190
1275
  readonly OBJECTFIT_CONTAIN_CLASS_NAME: "__remotion_objectfitcontain";
1191
1276
  readonly InnerOffthreadVideo: import("react").FC<import("./video/props.js").AllOffthreadVideoProps>;
1192
- readonly useBasicMediaInTimeline: ({ volume, mediaVolume, src, displayName, trimBefore, trimAfter, playbackRate, sequenceDurationInFrames, mediaStartsAt, mediaFrom, loop, muted, }: {
1193
- volume: import("./volume-prop.js").VolumeProp | undefined;
1194
- mediaVolume: number;
1277
+ readonly useBasicMediaInTimeline: ({ src, displayName, trimBefore, trimAfter, playbackRate, sequenceDurationInFrames, mediaStartsAt, loop, muted, }: {
1195
1278
  src: string | undefined;
1196
1279
  displayName: string | null;
1197
1280
  trimBefore: number | undefined;
@@ -1199,13 +1282,10 @@ export declare const Internals: {
1199
1282
  playbackRate: number;
1200
1283
  sequenceDurationInFrames: number;
1201
1284
  mediaStartsAt: number;
1202
- mediaFrom: number;
1203
1285
  loop: boolean;
1204
1286
  muted: boolean;
1205
1287
  }) => {
1206
- volumes: string | number;
1207
1288
  duration: number;
1208
- doesVolumeChange: boolean;
1209
1289
  finalDisplayName: string;
1210
1290
  startMediaFrom: number;
1211
1291
  src: string;
@@ -1242,9 +1322,10 @@ export declare const Internals: {
1242
1322
  readonly createEffectChainState: (width: number, height: number) => import("./internals.js").EffectChainState;
1243
1323
  readonly cleanupEffectChainState: (state: import("./internals.js").EffectChainState) => void;
1244
1324
  readonly runEffectChain: ({ state, source, effects, output, width, height, }: import("./effects/run-effect-chain.js").RunEffectChainOptions) => Promise<boolean>;
1245
- readonly useMemoizedEffects: ({ effects, overrideId, }: {
1325
+ readonly useMemoizedEffects: ({ effects, overrideId, videoConfigValues, }: {
1246
1326
  effects: readonly import("./index.js").EffectDescriptor<unknown>[];
1247
1327
  readonly overrideId: string | null;
1328
+ videoConfigValues: VideoConfigValues | null;
1248
1329
  }) => import("./index.js").EffectDefinitionAndStack<unknown>[];
1249
1330
  readonly useMemoizedEffectDefinitions: (effects: readonly import("./index.js").EffectDescriptor<unknown>[]) => readonly import("./index.js").EffectDefinition<unknown>[] & {
1250
1331
  readonly runtimeValues: readonly import("./runtime-value-store.js").RuntimeValueStore[];
@@ -1256,7 +1337,7 @@ export declare const Internals: {
1256
1337
  schema: InteractivitySchema;
1257
1338
  currentValue: Record<string, unknown>;
1258
1339
  overrideValues: Record<string, DragOverrideValue>;
1259
- propStatus: Record<string, CanUpdateSequencePropStatus> | undefined;
1340
+ propStatus: Record<string, CanUpdateSequencePropStatus<number>> | undefined;
1260
1341
  frame: number | null;
1261
1342
  }) => {
1262
1343
  merged: Record<string, unknown>;
@@ -1267,6 +1348,10 @@ export declare const Internals: {
1267
1348
  forceSpringAllowTail: boolean | null;
1268
1349
  status: CanUpdateSequencePropStatusKeyframed;
1269
1350
  }) => string | number | boolean | readonly number[] | null;
1351
+ readonly prepareNumericKeyframedStatus: ({ forceSpringAllowTail, status, }: {
1352
+ forceSpringAllowTail: boolean | null;
1353
+ status: CanUpdateSequencePropStatusKeyframed;
1354
+ }) => ((frame: number) => number | null) | null;
1270
1355
  readonly setInterpolatePaths: (interpolator: (input: number, inputRange: readonly number[], outputRange: readonly string[], options: Pick<Partial<{
1271
1356
  easing: readonly import("./interpolate.js").EasingFunction[] | import("./interpolate.js").EasingFunction;
1272
1357
  extrapolateLeft: import("./interpolate.js").ExtrapolateType;
@@ -1280,7 +1365,7 @@ export declare const Internals: {
1280
1365
  }) => string) => void;
1281
1366
  readonly makeStaticDragOverride: (value: unknown) => DragOverrideValue;
1282
1367
  readonly makeKeyframedDragOverride: ({ status, frame, value, defaultEasing, }: {
1283
- status: CanUpdateSequencePropStatusKeyframed;
1368
+ status: CanUpdateSequencePropStatusKeyframed<number>;
1284
1369
  frame: number;
1285
1370
  value: unknown;
1286
1371
  defaultEasing?: CanUpdateSequencePropStatusEasing | undefined;
@@ -1346,4 +1431,5 @@ export declare const Internals: {
1346
1431
  readonly componentName: string;
1347
1432
  }) => import("react").CSSProperties | null;
1348
1433
  };
1349
- 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, OriginalSourceLocation, 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, };
1434
+ export type { ArrayFieldSchema, ArrayItemFieldSchema, AssetFieldSchema, CannotUpdateSequenceReason, CanUpdateEffectPropsResponse, CanUpdateEffectPropsResponseFalse, CanUpdateEffectPropsResponseTrue, CanUpdateSequencePropsResponse, CanUpdateSequencePropsResponseFalse, CanUpdateSequencePropsResponseTrue, CanUpdateSequencePropStatus, CanUpdateSequencePropStatusEasing, CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, CompositionManagerContext, CompProps, DragOverrides, DragOverrideValue, EffectDragOverrides, GetDragOverrides, GetEffectDragOverrides, GetEffectPropStatuses, GetPropStatuses, InteractivitySchema, InteractivitySchemaField, JsxComponentIdentity, LoggingContextValue, MediaVolumeContextValue, OriginalSourceLocation, OverrideIdsToNodePathsGettersContext, OverrideIdsToNodePathsSettersContext, OverrideIdToNodePaths, OverrideToNodePathGetters, OverrideToNodeSetters, PlaybackRateContextValue, PropStatuses, RemotionAudioContextState, RemotionEnvironment, ResolvedStackLocation, ScheduleAudioNodeOptions, ScheduleAudioNodeResult, SequenceNodePath, SequencePropsStatusRemapping, SequencePropsSubscriptionKey, SerializedJSONWithCustomFields, SetMediaVolumeContextValue, SetTimelineContextValue, TCompMetadata, TComposition, TimelineContextValue, TRenderAsset, TSequence, VideoConfigNumericExpression, VideoConfigValues, VisibleFieldSchema, WatchRemotionStaticFilesPayload, };
1435
+ export type { CanUpdateSequencePropSource, SourceNumericValue, VideoConfigNumericBinding, } from './use-schema.js';
@@ -39,18 +39,24 @@ const absolute_src_js_1 = require("./absolute-src.js");
39
39
  const AbsoluteFillElement_js_1 = require("./AbsoluteFillElement.js");
40
40
  const get_duration_in_seconds_js_1 = require("./animated-image/get-duration-in-seconds.js");
41
41
  const AudioForPreview_js_1 = require("./audio/AudioForPreview.js");
42
+ const get_audio_sync_anchor_tolerance_js_1 = require("./audio/get-audio-sync-anchor-tolerance.js");
42
43
  const shared_audio_tags_js_1 = require("./audio/shared-audio-tags.js");
43
44
  const use_audio_frame_js_1 = require("./audio/use-audio-frame.js");
44
45
  const use_media_audio_state_js_1 = require("./audio/use-media-audio-state.js");
45
46
  const buffering_js_1 = require("./buffering.js");
46
47
  const calculate_media_duration_js_1 = require("./calculate-media-duration.js");
47
48
  const CanUseRemotionHooks_js_1 = require("./CanUseRemotionHooks.js");
49
+ const committed_metadata_js_1 = require("./committed-metadata.js");
50
+ const component_identity_js_1 = require("./component-identity.js");
48
51
  const composition_render_error_context_js_1 = require("./composition-render-error-context.js");
49
52
  const CompositionManager_js_1 = require("./CompositionManager.js");
50
53
  const CompositionManagerContext_js_1 = require("./CompositionManagerContext.js");
51
54
  const CompositionManagerProvider_js_1 = require("./CompositionManagerProvider.js");
55
+ const CompositionRegistryProvider_js_1 = require("./CompositionRegistryProvider.js");
56
+ const create_element_source_proxy_js_1 = require("./create-element-source-proxy.js");
52
57
  const CSSUtils = __importStar(require("./default-css.js"));
53
58
  const default_css_js_1 = require("./default-css.js");
59
+ const DefaultPremountContext_js_1 = require("./DefaultPremountContext.js");
54
60
  const EditorProps_js_1 = require("./EditorProps.js");
55
61
  const create_effect_js_1 = require("./effects/create-effect.js");
56
62
  const run_effect_chain_js_1 = require("./effects/run-effect-chain.js");
@@ -58,6 +64,7 @@ const use_effect_chain_state_js_1 = require("./effects/use-effect-chain-state.js
58
64
  const use_memoized_effects_js_1 = require("./effects/use-memoized-effects.js");
59
65
  const webgl2_context_error_js_1 = require("./effects/webgl2-context-error.js");
60
66
  const enable_sequence_stack_traces_js_1 = require("./enable-sequence-stack-traces.js");
67
+ const evaluate_source_expressions_js_1 = require("./evaluate-source-expressions.js");
61
68
  const find_props_to_delete_js_1 = require("./find-props-to-delete.js");
62
69
  const flatten_schema_js_1 = require("./flatten-schema.js");
63
70
  const freeze_js_1 = require("./freeze.js");
@@ -73,6 +80,7 @@ const log_level_context_js_1 = require("./log-level-context.js");
73
80
  const log_js_1 = require("./log.js");
74
81
  const max_video_cache_size_js_1 = require("./max-video-cache-size.js");
75
82
  const media_resource_manager_js_1 = require("./media-resource-manager.js");
83
+ const optimistic_sequence_deletion_js_1 = require("./optimistic-sequence-deletion.js");
76
84
  const playback_logging_js_1 = require("./playback-logging.js");
77
85
  const portal_node_js_1 = require("./portal-node.js");
78
86
  const prefetch_state_js_1 = require("./prefetch-state.js");
@@ -88,9 +96,9 @@ const resolve_sequence_duration_js_1 = require("./resolve-sequence-duration.js")
88
96
  const resolve_video_config_js_1 = require("./resolve-video-config.js");
89
97
  const ResolveCompositionConfig_js_1 = require("./ResolveCompositionConfig.js");
90
98
  const runtime_value_store_js_1 = require("./runtime-value-store.js");
99
+ const sequence_activity_context_js_1 = require("./sequence-activity-context.js");
91
100
  const sequence_crop_js_1 = require("./sequence-crop.js");
92
101
  const sequence_node_path_js_1 = require("./sequence-node-path.js");
93
- const sequence_order_marker_js_1 = require("./sequence-order-marker.js");
94
102
  const sequence_outline_js_1 = require("./sequence-outline.js");
95
103
  const sequence_stack_traces_js_1 = require("./sequence-stack-traces.js");
96
104
  const Sequence_js_1 = require("./Sequence.js");
@@ -99,7 +107,9 @@ const SequenceManager_js_1 = require("./SequenceManager.js");
99
107
  const setup_env_variables_js_1 = require("./setup-env-variables.js");
100
108
  const TimelinePosition = __importStar(require("./timeline-position-state.js"));
101
109
  const timeline_position_state_js_1 = require("./timeline-position-state.js");
110
+ const timeline_track_context_js_1 = require("./timeline-track-context.js");
102
111
  const TimelineContext_js_1 = require("./TimelineContext.js");
112
+ const Track_js_1 = require("./Track.js");
103
113
  const truthy_js_1 = require("./truthy.js");
104
114
  const use_buffering_js_1 = require("./use-buffering.js");
105
115
  const use_crop_style_js_1 = require("./use-crop-style.js");
@@ -136,6 +146,14 @@ const compositionSelectorRef = (0, react_1.createRef)();
136
146
  // Mark them as Internals so use don't assume this is public
137
147
  // API and are less likely to use it
138
148
  exports.Internals = {
149
+ OptimisticSequenceDeletion: optimistic_sequence_deletion_js_1.OptimisticSequenceDeletion,
150
+ usePendingSequenceDeletions: optimistic_sequence_deletion_js_1.usePendingSequenceDeletions,
151
+ createElementSourceProxy: create_element_source_proxy_js_1.createElementSourceProxy,
152
+ CommittedMetadataProvider: committed_metadata_js_1.CommittedMetadataProvider,
153
+ withCommittedMetadata: committed_metadata_js_1.withCommittedMetadata,
154
+ DefaultPremountContext: DefaultPremountContext_js_1.DefaultPremountContext,
155
+ evaluateSourceNumericValue: evaluate_source_expressions_js_1.evaluateSourceNumericValue,
156
+ evaluateSourcePropStatuses: evaluate_source_expressions_js_1.evaluateSourcePropStatuses,
139
157
  AbsoluteFillElement: AbsoluteFillElement_js_1.AbsoluteFillElement,
140
158
  MaxMediaCacheSizeContext: max_video_cache_size_js_1.MaxMediaCacheSizeContext,
141
159
  getMediabunnyInputResourceKey: media_resource_manager_js_1.getMediabunnyInputResourceKey,
@@ -167,20 +185,26 @@ exports.Internals = {
167
185
  VisualModePropStatusesRefContext: SequenceManager_js_1.VisualModePropStatusesRefContext,
168
186
  VisualModeBatchSettersContext: SequenceManager_js_1.VisualModeBatchSettersContext,
169
187
  VisualModeDragOverridesContext: SequenceManager_js_1.VisualModeDragOverridesContext,
188
+ VisualModeDragOverridesRefContext: SequenceManager_js_1.VisualModeDragOverridesRefContext,
170
189
  VisualModeSettersContext: SequenceManager_js_1.VisualModeSettersContext,
171
- SequenceManager: SequenceManager_js_1.SequenceManager,
172
190
  SequenceManagerProvider: SequenceManager_js_1.SequenceManagerProvider,
173
191
  SequenceManagerRefContext: SequenceManager_js_1.SequenceManagerRefContext,
192
+ SequenceRegistryContext: SequenceManager_js_1.SequenceRegistryContext,
174
193
  useActiveFromDragOverrideKeys: SequenceManager_js_1.useActiveFromDragOverrideKeys,
194
+ useDragOverridesForNodePath: SequenceManager_js_1.useDragOverridesForNodePath,
175
195
  useSequenceManagerSequences: SequenceManager_js_1.useSequenceManagerSequences,
176
196
  SequenceRegistrationContext: SequenceManager_js_1.SequenceRegistrationContext,
177
197
  DisableSequenceRegistrationProvider: SequenceManager_js_1.DisableSequenceRegistrationProvider,
178
- CommitOrderInternals: sequence_order_marker_js_1.CommitOrderInternals,
198
+ CommittedMetadataInternals: committed_metadata_js_1.CommittedMetadataInternals,
179
199
  SequenceOutlineInternals: sequence_outline_js_1.SequenceOutlineInternals,
180
200
  SequenceOutlineContext: sequence_outline_js_1.SequenceOutlineContext,
181
201
  SequenceStackTracesUpdateContext: sequence_stack_traces_js_1.SequenceStackTracesUpdateContext,
182
202
  baseSchema: interactivity_schema_js_1.baseSchema,
183
203
  sequenceSchema: interactivity_schema_js_1.sequenceSchema,
204
+ sequenceTimingSchema: interactivity_schema_js_1.sequenceTimingSchema,
205
+ SequenceContent: sequence_activity_context_js_1.SequenceContent,
206
+ DEFAULT_SEQUENCE_ACTIVITY_LIMIT: sequence_activity_context_js_1.DEFAULT_SEQUENCE_ACTIVITY_LIMIT,
207
+ SequenceActivitySettingsContext: sequence_activity_context_js_1.SequenceActivitySettingsContext,
184
208
  SequenceWithoutSchema: Sequence_js_1.SequenceWithoutSchema,
185
209
  sequenceStyleSchema: interactivity_schema_js_1.sequenceStyleSchema,
186
210
  sequenceVisualStyleSchema: interactivity_schema_js_1.sequenceVisualStyleSchema,
@@ -193,14 +217,19 @@ exports.Internals = {
193
217
  getFlatSchemaWithAllKeys: flatten_schema_js_1.getFlatSchemaWithAllKeys,
194
218
  RemotionRootContexts: RemotionRoot_js_1.RemotionRootContexts,
195
219
  CompositionManagerProvider: CompositionManagerProvider_js_1.CompositionManagerProvider,
220
+ CompositionRegistryProvider: CompositionRegistryProvider_js_1.CompositionRegistryProvider,
196
221
  useVideo: use_video_js_1.useVideo,
222
+ VideoProvider: use_video_js_1.VideoProvider,
197
223
  getRoot: register_root_js_1.getRoot,
198
224
  useMediaVolumeState: volume_position_state_js_1.useMediaVolumeState,
199
225
  usePlayerMutedState: volume_position_state_js_1.usePlayerMutedState,
200
- useMediaInTimeline: use_media_in_timeline_js_1.useMediaInTimeline,
226
+ useMediaInTimeline: use_media_in_timeline_js_1.useMediaInTimelineRegistration,
201
227
  useLazyComponent: use_lazy_component_js_1.useLazyComponent,
202
228
  truthy: truthy_js_1.truthy,
203
229
  SequenceContext: SequenceContext_js_1.SequenceContext,
230
+ TimelineTrackContext: timeline_track_context_js_1.TimelineTrackContext,
231
+ ExperimentalTracksEnabledContext: timeline_track_context_js_1.ExperimentalTracksEnabledContext,
232
+ TrackWithoutSchema: Track_js_1.TrackWithoutSchema,
204
233
  PremountContext: PremountContext_js_1.PremountContext,
205
234
  usePremounting: use_premounting_js_1.usePremounting,
206
235
  resolveSequenceDuration: resolve_sequence_duration_js_1.resolveSequenceDuration,
@@ -215,6 +244,7 @@ exports.Internals = {
215
244
  SharedAudioContextProvider: shared_audio_tags_js_1.SharedAudioContextProvider,
216
245
  SharedAudioTagsContext: shared_audio_tags_js_1.SharedAudioTagsContext,
217
246
  SharedAudioTagsContextProvider: shared_audio_tags_js_1.SharedAudioTagsContextProvider,
247
+ getAudioSyncAnchorTolerance: get_audio_sync_anchor_tolerance_js_1.getAudioSyncAnchorTolerance,
218
248
  invalidCompositionErrorMessage: validate_composition_id_js_1.invalidCompositionErrorMessage,
219
249
  invalidFolderNameErrorMessage: validate_folder_name_js_1.invalidFolderNameErrorMessage,
220
250
  calculateMediaDuration: calculate_media_duration_js_1.calculateMediaDuration,
@@ -258,13 +288,12 @@ exports.Internals = {
258
288
  BufferingProvider: buffering_js_1.BufferingProvider,
259
289
  BufferingContextReact: buffering_js_1.BufferingContextReact,
260
290
  getComponentsToAddStacksTo: enable_sequence_stack_traces_js_1.getComponentsToAddStacksTo,
261
- getSequenceComponent: enable_sequence_stack_traces_js_1.getSequenceComponent,
262
- getSingleChildComponent: enable_sequence_stack_traces_js_1.getSingleChildComponent,
291
+ getSingleChildComponent: component_identity_js_1.getSingleChildComponent,
263
292
  getStackForControls: enable_sequence_stack_traces_js_1.getStackForControls,
264
293
  makeOriginalSourceStack: enable_sequence_stack_traces_js_1.makeOriginalSourceStack,
265
294
  parseOriginalSourceStack: enable_sequence_stack_traces_js_1.parseOriginalSourceStack,
266
295
  REMOTION_INTERNAL_STACK_PROP: enable_sequence_stack_traces_js_1.REMOTION_INTERNAL_STACK_PROP,
267
- setComponentIdentityResolver: enable_sequence_stack_traces_js_1.setComponentIdentityResolver,
296
+ setComponentIdentityResolver: component_identity_js_1.setComponentIdentityResolver,
268
297
  CurrentScaleContext: use_current_scale_js_1.CurrentScaleContext,
269
298
  PixelDensityContext: use_pixel_density_js_1.PixelDensityContext,
270
299
  PreviewSizeContext: use_current_scale_js_1.PreviewSizeContext,
@@ -308,6 +337,7 @@ exports.Internals = {
308
337
  createWebGL2ContextError: webgl2_context_error_js_1.createWebGL2ContextError,
309
338
  computeEffectiveSchemaValuesDotNotation: use_schema_js_1.computeEffectiveSchemaValuesDotNotation,
310
339
  interpolateKeyframedStatus: interpolate_keyframed_status_js_1.interpolateKeyframedStatus,
340
+ prepareNumericKeyframedStatus: interpolate_keyframed_status_js_1.prepareNumericKeyframedStatus,
311
341
  setInterpolatePaths: interpolate_keyframed_status_js_1.setInterpolatePaths,
312
342
  makeStaticDragOverride: use_schema_js_1.makeStaticDragOverride,
313
343
  makeKeyframedDragOverride: use_schema_js_1.makeKeyframedDragOverride,
@@ -6,6 +6,10 @@ type PathInterpolator = (input: number, inputRange: readonly number[], outputRan
6
6
  extrapolateRight: Exclude<ExtrapolateType, 'identity'>;
7
7
  }) => string;
8
8
  export declare const setInterpolatePaths: (interpolator: PathInterpolator) => void;
9
+ export declare const prepareNumericKeyframedStatus: ({ forceSpringAllowTail, status, }: {
10
+ forceSpringAllowTail: boolean | null;
11
+ status: CanUpdateSequencePropStatusKeyframed;
12
+ }) => ((frame: number) => number | null) | null;
9
13
  export declare const interpolateKeyframedStatus: ({ frame, forceSpringAllowTail, status, }: {
10
14
  frame: number;
11
15
  forceSpringAllowTail: boolean | null;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.interpolateKeyframedStatus = exports.setInterpolatePaths = void 0;
3
+ exports.interpolateKeyframedStatus = exports.prepareNumericKeyframedStatus = exports.setInterpolatePaths = void 0;
4
4
  const bezier_js_1 = require("./bezier.js");
5
5
  const easing_js_1 = require("./easing.js");
6
6
  const interpolate_colors_js_1 = require("./interpolate-colors.js");
@@ -34,6 +34,43 @@ const easingToFn = ({ easing, forceSpringAllowTail, }) => {
34
34
  throw new TypeError(`Unsupported easing: ${JSON.stringify(easing)}`);
35
35
  }
36
36
  };
37
+ const prepareNumericKeyframedStatus = ({ forceSpringAllowTail, status, }) => {
38
+ if (status.interpolationFunction !== 'interpolate' ||
39
+ status.keyframes.length === 0) {
40
+ return null;
41
+ }
42
+ const sortedKeyframes = [...status.keyframes].sort((a, b) => a.frame - b.frame);
43
+ const inputRange = sortedKeyframes.map((keyframe) => keyframe.frame);
44
+ const outputRange = sortedKeyframes.map((keyframe) => keyframe.value);
45
+ if (!outputRange.every((value) => typeof value === 'number')) {
46
+ return null;
47
+ }
48
+ try {
49
+ const evaluate = (0, interpolate_js_1.prepareNumericInterpolation)({
50
+ inputRange,
51
+ outputRange,
52
+ options: {
53
+ easing: status.easing.map((easing) => easingToFn({ easing, forceSpringAllowTail })),
54
+ extrapolateLeft: status.clamping.left,
55
+ extrapolateRight: status.clamping.right,
56
+ output: status.output,
57
+ posterize: status.posterize,
58
+ },
59
+ });
60
+ return (frame) => {
61
+ try {
62
+ return evaluate(frame);
63
+ }
64
+ catch (_a) {
65
+ return null;
66
+ }
67
+ };
68
+ }
69
+ catch (_a) {
70
+ return null;
71
+ }
72
+ };
73
+ exports.prepareNumericKeyframedStatus = prepareNumericKeyframedStatus;
37
74
  const interpolateKeyframedStatus = ({ frame, forceSpringAllowTail, status, }) => {
38
75
  const { keyframes, easing, clamping, interpolationFunction } = status;
39
76
  if (keyframes.length === 0) {
@@ -32,4 +32,16 @@ export declare function interpolate(input: number, inputRange: readonly number[]
32
32
  export declare function interpolate<const Tuple extends NumericTuple>(input: number, inputRange: readonly number[], outputRange: readonly Tuple[], options?: InterpolateOptions): WidenNumericTuple<Tuple>;
33
33
  export declare function interpolate(input: number, inputRange: readonly number[], outputRange: readonly (readonly number[])[], options?: InterpolateOptions): number[];
34
34
  export declare function interpolate(input: number, inputRange: readonly number[], outputRange: readonly InterpolateOutputValue[], options?: InterpolateOptions): number | string | boolean | readonly number[];
35
+ export declare const prepareNumericInterpolation: ({ inputRange, outputRange, options, }: {
36
+ inputRange: readonly number[];
37
+ outputRange: readonly number[];
38
+ options: Omit<Partial<{
39
+ easing: readonly EasingFunction[] | EasingFunction;
40
+ extrapolateLeft: ExtrapolateType;
41
+ extrapolateRight: ExtrapolateType;
42
+ output: InterpolateOutputOption;
43
+ outputType: InterpolateOutputType;
44
+ posterize: number;
45
+ }>, "outputType">;
46
+ }) => (input: number) => number;
35
47
  export {};
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prepareNumericInterpolation = void 0;
3
4
  exports.assertValidInterpolateEasingOption = assertValidInterpolateEasingOption;
4
5
  exports.assertValidInterpolatePosterizeOption = assertValidInterpolatePosterizeOption;
5
6
  exports.interpolate = interpolate;
@@ -895,3 +896,9 @@ function interpolate(input, inputRange, outputRange, options) {
895
896
  return interpolateNumber({ input, inputRange, outputRange, options });
896
897
  }
897
898
  /* eslint-enable no-redeclare */
899
+ const prepareNumericInterpolation = ({ inputRange, outputRange, options, }) => {
900
+ // Validate the fixed inputs once, using the same checks as interpolate().
901
+ interpolate(inputRange[0], inputRange, outputRange, options);
902
+ return (input) => interpolateNumber({ input, inputRange, outputRange, options });
903
+ };
904
+ exports.prepareNumericInterpolation = prepareNumericInterpolation;
@@ -12,6 +12,12 @@ import { validateDimension } from './validation/validate-dimensions';
12
12
  import { validateDurationInFrames } from './validation/validate-duration-in-frames';
13
13
  import { validateFps } from './validation/validate-fps';
14
14
  export declare const NoReactInternals: {
15
+ DEFAULT_PREMOUNT_IN_SECONDS: number;
16
+ DEFAULT_STUDIO_PREMOUNT_IN_SECONDS: number;
17
+ DEFAULT_SEQUENCE_ACTIVITY_LIMIT: number;
18
+ validateDefaultPremountInSeconds: (value: unknown) => void;
19
+ evaluateSourceNumericValue: (expression: import("./use-schema.js").SourceNumericValue, config: import("./video-config").VideoConfigValues | null) => number;
20
+ evaluateSourcePropStatuses: (props: Record<string, import("./use-schema.js").CanUpdateSequencePropSource>, config: import("./video-config").VideoConfigValues | null) => Record<string, import("./use-schema.js").CanUpdateSequencePropStatus>;
15
21
  processColor: typeof processColor;
16
22
  truthy: typeof truthy;
17
23
  validateFps: typeof validateFps;