@remotion/promo-pages 4.0.473 → 4.0.474

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/experts.js CHANGED
@@ -2332,7 +2332,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
2332
2332
  var addSequenceStackTraces = (component) => {
2333
2333
  componentsToAddStacksTo.push(component);
2334
2334
  };
2335
- var VERSION = "4.0.473";
2335
+ var VERSION = "4.0.474";
2336
2336
  var checkMultipleRemotionVersions = () => {
2337
2337
  if (typeof globalThis === "undefined") {
2338
2338
  return;
@@ -2808,11 +2808,17 @@ var SequenceManager = React11.createContext({
2808
2808
  },
2809
2809
  sequences: []
2810
2810
  });
2811
+ var SequenceManagerRefContext = React11.createContext({
2812
+ current: []
2813
+ });
2811
2814
  var makeSequencePropsSubscriptionKey = (key) => {
2812
2815
  return `${key.nodePath.join(".")}.${key.sequenceKeys.join(".")}.${key.effectKeys.map((keys) => keys.join(".")).join(".")}`;
2813
2816
  };
2814
- var VisualModeCodeValuesContext = React11.createContext({
2815
- codeValues: {}
2817
+ var VisualModePropStatusesContext = React11.createContext({
2818
+ propStatuses: {}
2819
+ });
2820
+ var VisualModePropStatusesRefContext = React11.createContext({
2821
+ current: {}
2816
2822
  });
2817
2823
  var VisualModeDragOverridesContext = React11.createContext({
2818
2824
  getDragOverrides: () => {
@@ -2835,18 +2841,22 @@ var VisualModeSettersContext = React11.createContext({
2835
2841
  clearEffectDragOverrides: () => {
2836
2842
  throw new Error("VisualModeSettersContext not initialized");
2837
2843
  },
2838
- setCodeValues: () => {
2844
+ setPropStatuses: () => {
2839
2845
  throw new Error("VisualModeSettersContext not initialized");
2840
2846
  }
2841
2847
  });
2842
2848
  var effectDragOverridesKey = (nodePath, effectIndex) => `${makeSequencePropsSubscriptionKey(nodePath)}.effects.${effectIndex}`;
2843
2849
  var SequenceManagerProvider = ({ children }) => {
2844
2850
  const [sequences, setSequences] = useState3([]);
2851
+ const sequencesRef = useRef4(sequences);
2852
+ sequencesRef.current = sequences;
2845
2853
  const [dragOverrides, setControlOverrides] = useState3({});
2846
2854
  const controlOverridesRef = useRef4(dragOverrides);
2847
2855
  controlOverridesRef.current = dragOverrides;
2848
2856
  const [effectDragOverridesState, setEffectDragOverridesState] = useState3({});
2849
- const [codeValues, setCodeValuesMapState] = useState3({});
2857
+ const [propStatuses, setPropStatusesMapState] = useState3({});
2858
+ const propStatusesRef = useRef4(propStatuses);
2859
+ propStatusesRef.current = propStatuses;
2850
2860
  const setDragOverrides = useCallback5((nodePath, key, value) => {
2851
2861
  setControlOverrides((prev) => ({
2852
2862
  ...prev,
@@ -2890,8 +2900,8 @@ var SequenceManagerProvider = ({ children }) => {
2890
2900
  return next;
2891
2901
  });
2892
2902
  }, []);
2893
- const setCodeValues = useCallback5((nodePath, values) => {
2894
- setCodeValuesMapState((prev) => {
2903
+ const setPropStatuses = useCallback5((nodePath, values) => {
2904
+ setPropStatusesMapState((prev) => {
2895
2905
  const key = makeSequencePropsSubscriptionKey(nodePath);
2896
2906
  const prevKey = prev[key];
2897
2907
  const newKey = values(prevKey);
@@ -2922,11 +2932,11 @@ var SequenceManagerProvider = ({ children }) => {
2922
2932
  const getEffectDragOverrides = useCallback5((nodePath, effectIndex) => {
2923
2933
  return effectDragOverridesState[effectDragOverridesKey(nodePath, effectIndex)] ?? {};
2924
2934
  }, [effectDragOverridesState]);
2925
- const codeValuesContext = useMemo12(() => {
2935
+ const propStatusesContext = useMemo12(() => {
2926
2936
  return {
2927
- codeValues
2937
+ propStatuses
2928
2938
  };
2929
- }, [codeValues]);
2939
+ }, [propStatuses]);
2930
2940
  const dragOverridesContext = useMemo12(() => {
2931
2941
  return {
2932
2942
  getDragOverrides,
@@ -2939,24 +2949,30 @@ var SequenceManagerProvider = ({ children }) => {
2939
2949
  clearDragOverrides,
2940
2950
  setEffectDragOverrides,
2941
2951
  clearEffectDragOverrides,
2942
- setCodeValues
2952
+ setPropStatuses
2943
2953
  };
2944
2954
  }, [
2945
2955
  setDragOverrides,
2946
2956
  clearDragOverrides,
2947
2957
  setEffectDragOverrides,
2948
2958
  clearEffectDragOverrides,
2949
- setCodeValues
2959
+ setPropStatuses
2950
2960
  ]);
2951
- return /* @__PURE__ */ jsx10(SequenceManager.Provider, {
2952
- value: sequenceContext,
2953
- children: /* @__PURE__ */ jsx10(VisualModeCodeValuesContext.Provider, {
2954
- value: codeValuesContext,
2955
- children: /* @__PURE__ */ jsx10(VisualModeDragOverridesContext.Provider, {
2956
- value: dragOverridesContext,
2957
- children: /* @__PURE__ */ jsx10(VisualModeSettersContext.Provider, {
2958
- value: settersContext,
2959
- children
2961
+ return /* @__PURE__ */ jsx10(SequenceManagerRefContext.Provider, {
2962
+ value: sequencesRef,
2963
+ children: /* @__PURE__ */ jsx10(SequenceManager.Provider, {
2964
+ value: sequenceContext,
2965
+ children: /* @__PURE__ */ jsx10(VisualModePropStatusesRefContext.Provider, {
2966
+ value: propStatusesRef,
2967
+ children: /* @__PURE__ */ jsx10(VisualModePropStatusesContext.Provider, {
2968
+ value: propStatusesContext,
2969
+ children: /* @__PURE__ */ jsx10(VisualModeDragOverridesContext.Provider, {
2970
+ value: dragOverridesContext,
2971
+ children: /* @__PURE__ */ jsx10(VisualModeSettersContext.Provider, {
2972
+ value: settersContext,
2973
+ children
2974
+ })
2975
+ })
2960
2976
  })
2961
2977
  })
2962
2978
  })
@@ -4126,7 +4142,7 @@ var resolveDragOverrideValue = ({
4126
4142
  return { type: "resolved", value: interpolated };
4127
4143
  };
4128
4144
  var getEffectiveVisualModeValue = ({
4129
- codeValue,
4145
+ propStatus,
4130
4146
  dragOverrideValue,
4131
4147
  defaultValue,
4132
4148
  frame = null,
@@ -4139,16 +4155,19 @@ var getEffectiveVisualModeValue = ({
4139
4155
  if (dragOverride.type === "resolved" && dragOverride.value !== undefined) {
4140
4156
  return dragOverride.value;
4141
4157
  }
4142
- if (codeValue.status === "keyframed" && frame !== null) {
4143
- return interpolateKeyframedStatus({
4144
- frame,
4145
- status: codeValue
4146
- });
4158
+ if (propStatus.status === "keyframed") {
4159
+ if (frame !== null) {
4160
+ return interpolateKeyframedStatus({
4161
+ frame,
4162
+ status: propStatus
4163
+ });
4164
+ }
4165
+ return shouldResortToDefaultValueIfUndefined ? defaultValue : undefined;
4147
4166
  }
4148
- if (codeValue.codeValue === undefined && shouldResortToDefaultValueIfUndefined) {
4167
+ if (propStatus.codeValue === undefined && shouldResortToDefaultValueIfUndefined) {
4149
4168
  return defaultValue;
4150
4169
  }
4151
- return codeValue.codeValue;
4170
+ return propStatus.codeValue;
4152
4171
  };
4153
4172
  var OverrideIdsToNodePathsGettersContext = createContext16({
4154
4173
  overrideIdToNodePathMappings: {}
@@ -4160,18 +4179,18 @@ var OverrideIdsToNodePathsSettersContext = createContext16({
4160
4179
  });
4161
4180
  var mergeOverrides = ({
4162
4181
  descriptor,
4163
- codeOverrides,
4182
+ propStatusOverrides,
4164
4183
  dragOverrides,
4165
4184
  frame
4166
4185
  }) => {
4167
- if (!codeOverrides && !dragOverrides) {
4186
+ if (!propStatusOverrides && !dragOverrides) {
4168
4187
  return { params: descriptor.params, effectKey: descriptor.effectKey };
4169
4188
  }
4170
4189
  const merged = {
4171
4190
  ...descriptor.params
4172
4191
  };
4173
- if (codeOverrides) {
4174
- for (const [key, value] of Object.entries(codeOverrides)) {
4192
+ if (propStatusOverrides) {
4193
+ for (const [key, value] of Object.entries(propStatusOverrides)) {
4175
4194
  if (value !== undefined) {
4176
4195
  merged[key] = value;
4177
4196
  }
@@ -4193,16 +4212,27 @@ var mergeOverrides = ({
4193
4212
  effectKey: descriptor.definition.calculateKey(merged)
4194
4213
  };
4195
4214
  };
4196
- var extractCodeOverrides = (propStatus) => {
4215
+ var resolvePropStatusOverrides = (propStatus, frame) => {
4197
4216
  if (!propStatus) {
4198
4217
  return null;
4199
4218
  }
4200
4219
  const out = {};
4201
4220
  let hasAny = false;
4202
4221
  for (const [key, status] of Object.entries(propStatus)) {
4203
- if (status.status !== "computed") {
4222
+ if (status.status === "static") {
4204
4223
  out[key] = status.codeValue;
4205
4224
  hasAny = true;
4225
+ continue;
4226
+ }
4227
+ if (status.status === "keyframed") {
4228
+ const value = interpolateKeyframedStatus({
4229
+ frame,
4230
+ status
4231
+ });
4232
+ if (value !== null) {
4233
+ out[key] = value;
4234
+ hasAny = true;
4235
+ }
4206
4236
  }
4207
4237
  }
4208
4238
  return hasAny ? out : null;
@@ -4218,12 +4248,12 @@ var useMemoizedEffectDefinitions = (effects) => {
4218
4248
  previousRef.current = definitions;
4219
4249
  return definitions;
4220
4250
  };
4221
- var getEffectCodeValuesCtx = ({
4222
- codeValues,
4251
+ var getEffectPropStatusesCtx = ({
4252
+ propStatuses,
4223
4253
  nodePath,
4224
4254
  effectIndex
4225
4255
  }) => {
4226
- const status = codeValues[makeSequencePropsSubscriptionKey(nodePath)];
4256
+ const status = propStatuses[makeSequencePropsSubscriptionKey(nodePath)];
4227
4257
  if (!status) {
4228
4258
  return { type: "cannot-update-sequence", reason: "not-found" };
4229
4259
  }
@@ -4239,8 +4269,8 @@ var getEffectCodeValuesCtx = ({
4239
4269
  }
4240
4270
  return { type: "can-update-effect", props: effect.props };
4241
4271
  };
4242
- var getCodeValuesCtx = (codeValues, nodePath) => {
4243
- const status = codeValues[makeSequencePropsSubscriptionKey(nodePath)];
4272
+ var getPropStatusesCtx = (propStatuses, nodePath) => {
4273
+ const status = propStatuses[makeSequencePropsSubscriptionKey(nodePath)];
4244
4274
  if (!status) {
4245
4275
  return;
4246
4276
  }
@@ -4254,7 +4284,7 @@ var useMemoizedEffects = ({
4254
4284
  overrideId
4255
4285
  }) => {
4256
4286
  const previousRef = useRef5(null);
4257
- const { codeValues } = useContext15(VisualModeCodeValuesContext);
4287
+ const { propStatuses } = useContext15(VisualModePropStatusesContext);
4258
4288
  const { getEffectDragOverrides } = useContext15(VisualModeDragOverridesContext);
4259
4289
  const frame = useCurrentFrame();
4260
4290
  const { overrideIdToNodePathMappings } = useContext15(OverrideIdsToNodePathsGettersContext);
@@ -4268,17 +4298,17 @@ var useMemoizedEffects = ({
4268
4298
  effectKey: descriptor.effectKey
4269
4299
  };
4270
4300
  }
4271
- const effectStatus = getEffectCodeValuesCtx({
4272
- codeValues,
4301
+ const effectStatus = getEffectPropStatusesCtx({
4302
+ propStatuses,
4273
4303
  nodePath,
4274
4304
  effectIndex: index
4275
4305
  });
4276
- const codeOverrides = effectStatus.type === "can-update-effect" ? extractCodeOverrides(effectStatus.props) : null;
4306
+ const propStatusOverrides = effectStatus.type === "can-update-effect" ? resolvePropStatusOverrides(effectStatus.props, frame) : null;
4277
4307
  const dragOverridesMap = getEffectDragOverrides(nodePath, index);
4278
4308
  const dragOverrides = Object.keys(dragOverridesMap).length === 0 ? null : dragOverridesMap;
4279
4309
  const { params, effectKey } = mergeOverrides({
4280
4310
  descriptor,
4281
- codeOverrides,
4311
+ propStatusOverrides,
4282
4312
  dragOverrides,
4283
4313
  frame
4284
4314
  });
@@ -4430,15 +4460,15 @@ var computeEffectiveSchemaValuesDotNotation = ({
4430
4460
  const merged = {};
4431
4461
  const propsToDelete = new Set;
4432
4462
  for (const key of Object.keys(currentValue)) {
4433
- const codeValueStatus = propStatus?.[key] ?? null;
4463
+ const status = propStatus?.[key] ?? null;
4434
4464
  const field = findFieldInSchema(schema, key);
4435
4465
  if (field?.type === "hidden") {
4436
4466
  continue;
4437
4467
  }
4438
4468
  let value;
4439
- if (codeValueStatus === null) {
4469
+ if (status === null) {
4440
4470
  value = currentValue[key];
4441
- } else if (isKeyframedStatus(codeValueStatus)) {
4471
+ } else if (isKeyframedStatus(status)) {
4442
4472
  if (field?.type === "array" || field?.keyframable === false) {
4443
4473
  value = currentValue[key];
4444
4474
  } else {
@@ -4451,18 +4481,18 @@ var computeEffectiveSchemaValuesDotNotation = ({
4451
4481
  } else if (frame !== null) {
4452
4482
  const interpolated = interpolateKeyframedStatus({
4453
4483
  frame,
4454
- status: codeValueStatus
4484
+ status
4455
4485
  });
4456
4486
  value = interpolated ?? currentValue[key];
4457
4487
  } else {
4458
4488
  value = currentValue[key];
4459
4489
  }
4460
4490
  }
4461
- } else if (codeValueStatus.status === "computed") {
4491
+ } else if (status.status === "computed") {
4462
4492
  value = currentValue[key];
4463
4493
  } else {
4464
4494
  value = getEffectiveVisualModeValue({
4465
- codeValue: codeValueStatus,
4495
+ propStatus: status,
4466
4496
  dragOverrideValue: overrideValues[key],
4467
4497
  defaultValue: field?.default,
4468
4498
  frame,
@@ -4554,7 +4584,7 @@ var wrapInSchema = ({
4554
4584
  ref
4555
4585
  });
4556
4586
  }
4557
- const { codeValues } = useContext16(VisualModeCodeValuesContext);
4587
+ const { propStatuses } = useContext16(VisualModePropStatusesContext);
4558
4588
  const { getDragOverrides } = useContext16(VisualModeDragOverridesContext);
4559
4589
  const nodePathMapping = useContext16(OverrideIdsToNodePathsGettersContext);
4560
4590
  const frame = useCurrentFrame();
@@ -4593,14 +4623,14 @@ var wrapInSchema = ({
4593
4623
  schema,
4594
4624
  currentValue: currentRuntimeValueDotNotation,
4595
4625
  overrideValues: nodePath === null ? {} : getDragOverrides(nodePath),
4596
- propStatus: nodePath === null ? undefined : getCodeValuesCtx(codeValues, nodePath),
4626
+ propStatus: nodePath === null ? undefined : getPropStatusesCtx(propStatuses, nodePath),
4597
4627
  frame
4598
4628
  });
4599
4629
  }, [
4600
4630
  currentRuntimeValueDotNotation,
4601
4631
  getDragOverrides,
4602
4632
  nodePath,
4603
- codeValues,
4633
+ propStatuses,
4604
4634
  frame
4605
4635
  ]);
4606
4636
  const activeKeys = selectActiveKeys(schema, valuesDotNotation);
@@ -5838,7 +5868,7 @@ var calculateMediaDuration = ({
5838
5868
  duration -= trimBefore;
5839
5869
  }
5840
5870
  const actualDuration = duration / playbackRate;
5841
- return Math.floor(actualDuration);
5871
+ return Number(actualDuration.toFixed(10));
5842
5872
  };
5843
5873
  var LoopContext = createContext18(null);
5844
5874
  var useLoop = () => {
@@ -10960,6 +10990,8 @@ function useRemotionContexts() {
10960
10990
  const resolveCompositionContext = React38.useContext(ResolveCompositionContext);
10961
10991
  const renderAssetManagerContext = React38.useContext(RenderAssetManager);
10962
10992
  const sequenceManagerContext = React38.useContext(SequenceManager);
10993
+ const sequenceManagerRefContext = React38.useContext(SequenceManagerRefContext);
10994
+ const visualModePropStatusesRefContext = React38.useContext(VisualModePropStatusesRefContext);
10963
10995
  const bufferManagerContext = React38.useContext(BufferingContextReact);
10964
10996
  const logLevelContext = React38.useContext(LogLevelContext);
10965
10997
  return useMemo37(() => ({
@@ -10973,6 +11005,8 @@ function useRemotionContexts() {
10973
11005
  resolveCompositionContext,
10974
11006
  renderAssetManagerContext,
10975
11007
  sequenceManagerContext,
11008
+ sequenceManagerRefContext,
11009
+ visualModePropStatusesRefContext,
10976
11010
  bufferManagerContext,
10977
11011
  logLevelContext
10978
11012
  }), [
@@ -10986,6 +11020,8 @@ function useRemotionContexts() {
10986
11020
  resolveCompositionContext,
10987
11021
  renderAssetManagerContext,
10988
11022
  sequenceManagerContext,
11023
+ sequenceManagerRefContext,
11024
+ visualModePropStatusesRefContext,
10989
11025
  bufferManagerContext,
10990
11026
  logLevelContext
10991
11027
  ]);
@@ -11002,21 +11038,27 @@ var RemotionContextProvider = (props2) => {
11002
11038
  value: contexts.preloadContext,
11003
11039
  children: /* @__PURE__ */ jsx35(CompositionManager.Provider, {
11004
11040
  value: contexts.compositionManagerCtx,
11005
- children: /* @__PURE__ */ jsx35(SequenceManager.Provider, {
11006
- value: contexts.sequenceManagerContext,
11007
- children: /* @__PURE__ */ jsx35(RenderAssetManager.Provider, {
11008
- value: contexts.renderAssetManagerContext,
11009
- children: /* @__PURE__ */ jsx35(ResolveCompositionContext.Provider, {
11010
- value: contexts.resolveCompositionContext,
11011
- children: /* @__PURE__ */ jsx35(TimelineContext.Provider, {
11012
- value: contexts.timelineContext,
11013
- children: /* @__PURE__ */ jsx35(SetTimelineContext.Provider, {
11014
- value: contexts.setTimelineContext,
11015
- children: /* @__PURE__ */ jsx35(SequenceContext.Provider, {
11016
- value: contexts.sequenceContext,
11017
- children: /* @__PURE__ */ jsx35(BufferingContextReact.Provider, {
11018
- value: contexts.bufferManagerContext,
11019
- children
11041
+ children: /* @__PURE__ */ jsx35(SequenceManagerRefContext.Provider, {
11042
+ value: contexts.sequenceManagerRefContext,
11043
+ children: /* @__PURE__ */ jsx35(SequenceManager.Provider, {
11044
+ value: contexts.sequenceManagerContext,
11045
+ children: /* @__PURE__ */ jsx35(VisualModePropStatusesRefContext.Provider, {
11046
+ value: contexts.visualModePropStatusesRefContext,
11047
+ children: /* @__PURE__ */ jsx35(RenderAssetManager.Provider, {
11048
+ value: contexts.renderAssetManagerContext,
11049
+ children: /* @__PURE__ */ jsx35(ResolveCompositionContext.Provider, {
11050
+ value: contexts.resolveCompositionContext,
11051
+ children: /* @__PURE__ */ jsx35(TimelineContext.Provider, {
11052
+ value: contexts.timelineContext,
11053
+ children: /* @__PURE__ */ jsx35(SetTimelineContext.Provider, {
11054
+ value: contexts.setTimelineContext,
11055
+ children: /* @__PURE__ */ jsx35(SequenceContext.Provider, {
11056
+ value: contexts.sequenceContext,
11057
+ children: /* @__PURE__ */ jsx35(BufferingContextReact.Provider, {
11058
+ value: contexts.bufferManagerContext,
11059
+ children
11060
+ })
11061
+ })
11020
11062
  })
11021
11063
  })
11022
11064
  })
@@ -11047,10 +11089,12 @@ var Internals = {
11047
11089
  VideoForPreview,
11048
11090
  CompositionManager,
11049
11091
  CompositionSetters,
11050
- VisualModeCodeValuesContext,
11092
+ VisualModePropStatusesContext,
11093
+ VisualModePropStatusesRefContext,
11051
11094
  VisualModeDragOverridesContext,
11052
11095
  VisualModeSettersContext,
11053
11096
  SequenceManager,
11097
+ SequenceManagerRefContext,
11054
11098
  SequenceStackTracesUpdateContext,
11055
11099
  wrapInSchema,
11056
11100
  sequenceSchema,
@@ -11169,8 +11213,8 @@ var Internals = {
11169
11213
  OverrideIdsToNodePathsSettersContext,
11170
11214
  findPropsToDelete,
11171
11215
  makeSequencePropsSubscriptionKey,
11172
- getCodeValuesCtx,
11173
- getEffectCodeValuesCtx,
11216
+ getPropStatusesCtx,
11217
+ getEffectPropStatusesCtx,
11174
11218
  hiddenField,
11175
11219
  durationInFramesField,
11176
11220
  fromField