@remotion/promo-pages 4.0.504 → 4.0.506

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.
@@ -4194,7 +4194,13 @@ import React13, { createContext as createContext14 } from "react";
4194
4194
  import { jsx as jsx11 } from "react/jsx-runtime";
4195
4195
  import { useContext as useContext15, useMemo as useMemo13 } from "react";
4196
4196
  import { createContext as createContext15 } from "react";
4197
- import React14, { forwardRef as forwardRef2, useContext as useContext17, useMemo as useMemo14, useState as useState4 } from "react";
4197
+ import React14, {
4198
+ forwardRef as forwardRef2,
4199
+ useContext as useContext17,
4200
+ useLayoutEffect as useLayoutEffect2,
4201
+ useMemo as useMemo14,
4202
+ useState as useState4
4203
+ } from "react";
4198
4204
  import { useContext as useContext16, useRef as useRef5 } from "react";
4199
4205
  import { createContext as createContext16 } from "react";
4200
4206
  import { jsx as jsx12 } from "react/jsx-runtime";
@@ -4204,7 +4210,7 @@ import {
4204
4210
  forwardRef as forwardRef4,
4205
4211
  useEffect as useEffect5,
4206
4212
  useImperativeHandle as useImperativeHandle2,
4207
- useLayoutEffect as useLayoutEffect2,
4213
+ useLayoutEffect as useLayoutEffect3,
4208
4214
  useRef as useRef10,
4209
4215
  useState as useState6
4210
4216
  } from "react";
@@ -4213,12 +4219,12 @@ import React17, { useCallback as useCallback8, useImperativeHandle, useMemo as u
4213
4219
  import { useEffect as useEffect4, useMemo as useMemo17, useRef as useRef8 } from "react";
4214
4220
  import { jsx as jsx14 } from "react/jsx-runtime";
4215
4221
  import { jsx as jsx15 } from "react/jsx-runtime";
4216
- import { useContext as useContext19, useLayoutEffect as useLayoutEffect4, useState as useState8 } from "react";
4222
+ import { useContext as useContext19, useLayoutEffect as useLayoutEffect5, useState as useState8 } from "react";
4217
4223
  import {
4218
4224
  createContext as createContext17,
4219
4225
  useCallback as useCallback9,
4220
4226
  useImperativeHandle as useImperativeHandle3,
4221
- useLayoutEffect as useLayoutEffect3,
4227
+ useLayoutEffect as useLayoutEffect4,
4222
4228
  useMemo as useMemo19,
4223
4229
  useRef as useRef11,
4224
4230
  useState as useState7
@@ -4242,7 +4248,7 @@ import React24, {
4242
4248
  useRef as useRef20,
4243
4249
  useState as useState14
4244
4250
  } from "react";
4245
- import { useContext as useContext22, useLayoutEffect as useLayoutEffect5, useRef as useRef15 } from "react";
4251
+ import { useContext as useContext22, useLayoutEffect as useLayoutEffect6, useRef as useRef15 } from "react";
4246
4252
  import React21, {
4247
4253
  createContext as createContext21,
4248
4254
  createRef as createRef2,
@@ -4262,7 +4268,7 @@ import {
4262
4268
  useCallback as useCallback13,
4263
4269
  useContext as useContext27,
4264
4270
  useEffect as useEffect12,
4265
- useLayoutEffect as useLayoutEffect7,
4271
+ useLayoutEffect as useLayoutEffect8,
4266
4272
  useRef as useRef19
4267
4273
  } from "react";
4268
4274
  import { useCallback as useCallback12, useMemo as useMemo27, useRef as useRef17 } from "react";
@@ -4271,7 +4277,7 @@ import React22, {
4271
4277
  useCallback as useCallback11,
4272
4278
  useContext as useContext25,
4273
4279
  useEffect as useEffect9,
4274
- useLayoutEffect as useLayoutEffect6,
4280
+ useLayoutEffect as useLayoutEffect7,
4275
4281
  useMemo as useMemo25,
4276
4282
  useRef as useRef16,
4277
4283
  useState as useState12
@@ -4288,7 +4294,7 @@ import {
4288
4294
  useContext as useContext30,
4289
4295
  useEffect as useEffect15,
4290
4296
  useImperativeHandle as useImperativeHandle5,
4291
- useLayoutEffect as useLayoutEffect8,
4297
+ useLayoutEffect as useLayoutEffect9,
4292
4298
  useMemo as useMemo30,
4293
4299
  useRef as useRef21
4294
4300
  } from "react";
@@ -4309,7 +4315,7 @@ import {
4309
4315
  forwardRef as forwardRef9,
4310
4316
  useCallback as useCallback17,
4311
4317
  useContext as useContext32,
4312
- useLayoutEffect as useLayoutEffect9,
4318
+ useLayoutEffect as useLayoutEffect10,
4313
4319
  useMemo as useMemo32,
4314
4320
  useRef as useRef23
4315
4321
  } from "react";
@@ -4319,7 +4325,7 @@ import {
4319
4325
  useCallback as useCallback18,
4320
4326
  useContext as useContext33,
4321
4327
  useImperativeHandle as useImperativeHandle7,
4322
- useLayoutEffect as useLayoutEffect10,
4328
+ useLayoutEffect as useLayoutEffect11,
4323
4329
  useMemo as useMemo33,
4324
4330
  useRef as useRef24,
4325
4331
  useState as useState16
@@ -4330,7 +4336,7 @@ import { jsx as jsx28 } from "react/jsx-runtime";
4330
4336
  import {
4331
4337
  useCallback as useCallback20,
4332
4338
  useContext as useContext34,
4333
- useLayoutEffect as useLayoutEffect11,
4339
+ useLayoutEffect as useLayoutEffect12,
4334
4340
  useRef as useRef25,
4335
4341
  useState as useState18
4336
4342
  } from "react";
@@ -4360,7 +4366,7 @@ import {
4360
4366
  useCallback as useCallback23,
4361
4367
  useContext as useContext37,
4362
4368
  useEffect as useEffect17,
4363
- useLayoutEffect as useLayoutEffect12,
4369
+ useLayoutEffect as useLayoutEffect13,
4364
4370
  useMemo as useMemo37,
4365
4371
  useState as useState20
4366
4372
  } from "react";
@@ -4393,7 +4399,7 @@ import {
4393
4399
  useContext as useContext39,
4394
4400
  useEffect as useEffect20,
4395
4401
  useImperativeHandle as useImperativeHandle10,
4396
- useLayoutEffect as useLayoutEffect13,
4402
+ useLayoutEffect as useLayoutEffect14,
4397
4403
  useMemo as useMemo41,
4398
4404
  useRef as useRef29
4399
4405
  } from "react";
@@ -5586,7 +5592,7 @@ var getSingleChildComponent = (children) => {
5586
5592
  }
5587
5593
  return child.type;
5588
5594
  };
5589
- var VERSION = "4.0.504";
5595
+ var VERSION = "4.0.506";
5590
5596
  var checkMultipleRemotionVersions = () => {
5591
5597
  if (typeof globalThis === "undefined") {
5592
5598
  return;
@@ -5637,6 +5643,7 @@ var SetTimelineContext = createContext13({
5637
5643
  }
5638
5644
  });
5639
5645
  var TimelineContext = createContext13(null);
5646
+ var TimelineImperativeContext = createContext13(null);
5640
5647
  var PlaybackRateContext = createContext13(null);
5641
5648
  var AbsoluteTimeContext = createContext13(null);
5642
5649
  var TimelineContextProvider = ({ children, frameState }) => {
@@ -5646,6 +5653,8 @@ var TimelineContextProvider = ({ children, frameState }) => {
5646
5653
  const audioAndVideoTags = useRef3([]);
5647
5654
  const [_frame, setFrame] = useState2(() => getInitialFrameState());
5648
5655
  const frame = frameState ?? _frame;
5656
+ const frameRef = useRef3(frame);
5657
+ frameRef.current = frame;
5649
5658
  const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
5650
5659
  if (typeof window !== "undefined") {
5651
5660
  useLayoutEffect(() => {
@@ -5681,6 +5690,13 @@ var TimelineContextProvider = ({ children, frameState }) => {
5681
5690
  audioAndVideoTags
5682
5691
  };
5683
5692
  }, [frame, playing]);
5693
+ const timelineImperativeContextValue = useMemo8(() => {
5694
+ return {
5695
+ frameRef,
5696
+ imperativePlaying,
5697
+ audioAndVideoTags
5698
+ };
5699
+ }, []);
5684
5700
  const playbackRateContextValue = useMemo8(() => {
5685
5701
  return {
5686
5702
  playbackRate,
@@ -5697,11 +5713,14 @@ var TimelineContextProvider = ({ children, frameState }) => {
5697
5713
  value: timelineContextValue,
5698
5714
  children: /* @__PURE__ */ jsx8(PlaybackRateContext.Provider, {
5699
5715
  value: playbackRateContextValue,
5700
- children: /* @__PURE__ */ jsx8(TimelineContext.Provider, {
5701
- value: timelineContextValue,
5702
- children: /* @__PURE__ */ jsx8(SetTimelineContext.Provider, {
5703
- value: setTimelineContextValue,
5704
- children
5716
+ children: /* @__PURE__ */ jsx8(TimelineImperativeContext.Provider, {
5717
+ value: timelineImperativeContextValue,
5718
+ children: /* @__PURE__ */ jsx8(TimelineContext.Provider, {
5719
+ value: timelineContextValue,
5720
+ children: /* @__PURE__ */ jsx8(SetTimelineContext.Provider, {
5721
+ value: setTimelineContextValue,
5722
+ children
5723
+ })
5705
5724
  })
5706
5725
  })
5707
5726
  })
@@ -8526,6 +8545,31 @@ var getFlatSchemaWithAllKeys = (schema) => {
8526
8545
  }
8527
8546
  return out;
8528
8547
  };
8548
+ var createRuntimeValueStore = (initialSnapshot) => {
8549
+ let snapshot = initialSnapshot;
8550
+ const listeners = new Set;
8551
+ const store = {
8552
+ getSnapshot: () => snapshot,
8553
+ subscribe: (listener) => {
8554
+ listeners.add(listener);
8555
+ return () => {
8556
+ listeners.delete(listener);
8557
+ };
8558
+ }
8559
+ };
8560
+ return {
8561
+ store,
8562
+ setSnapshot: (newSnapshot) => {
8563
+ if (snapshot === newSnapshot) {
8564
+ return;
8565
+ }
8566
+ snapshot = newSnapshot;
8567
+ for (const listener of listeners) {
8568
+ listener();
8569
+ }
8570
+ }
8571
+ };
8572
+ };
8529
8573
  var findPropsToDelete = ({
8530
8574
  schema,
8531
8575
  key,
@@ -8827,16 +8871,21 @@ var withInteractivitySchema = ({
8827
8871
  props: cleanProps
8828
8872
  }));
8829
8873
  const currentRuntimeValueDotNotation = useMemo14(() => readValuesFromProps(cleanProps, flatKeys, flatSchema), runtimeValues);
8874
+ const [runtimeValueStore] = useState4(() => createRuntimeValueStore(currentRuntimeValueDotNotation));
8875
+ useLayoutEffect2(() => {
8876
+ runtimeValueStore.setSnapshot(currentRuntimeValueDotNotation);
8877
+ }, [currentRuntimeValueDotNotation, runtimeValueStore]);
8830
8878
  const controls = useMemo14(() => {
8831
8879
  return {
8832
8880
  schema: schemaWithSequenceName,
8833
8881
  currentRuntimeValueDotNotation,
8882
+ runtimeValues: runtimeValueStore.store,
8834
8883
  overrideId,
8835
8884
  supportsEffects,
8836
8885
  componentIdentity,
8837
8886
  componentName
8838
8887
  };
8839
- }, [currentRuntimeValueDotNotation, overrideId]);
8888
+ }, [currentRuntimeValueDotNotation, overrideId, runtimeValueStore.store]);
8840
8889
  setStackForControls(controls, internalStack);
8841
8890
  const { merged: valuesDotNotation, propsToDelete } = useMemo14(() => {
8842
8891
  return computeEffectiveSchemaValuesDotNotation({
@@ -9021,6 +9070,32 @@ var RegularSequenceRefForwardingFunction = ({
9021
9070
  const startMediaFrom = isMedia && isMedia.type !== "image" ? isMedia.data.startMediaFrom + parentCumulatedNegativeFrom - cumulatedNegativeFrom : null;
9022
9071
  const mediaFrameAtSequenceZero = isMedia && isMedia.type !== "image" ? isMedia.data.startMediaFrom + parentCumulatedNegativeFrom : null;
9023
9072
  const frozenMediaFrame = isMedia && isMedia.type !== "image" && mediaFrameAtSequenceZero !== null ? registeredFrozenFrame === null ? null : mediaFrameAtSequenceZero + (loopDisplay ? registeredFrozenFrame % loopDisplay.durationInFrames : registeredFrozenFrame) * isMedia.data.playbackRate : null;
9073
+ const controlsSchema = controls?.schema;
9074
+ const controlsRuntimeValues = controls?.runtimeValues;
9075
+ const controlsOverrideId = controls?.overrideId;
9076
+ const controlsSupportsEffects = controls?.supportsEffects;
9077
+ const controlsComponentIdentity = controls?.componentIdentity;
9078
+ const controlsComponentName = controls?.componentName;
9079
+ const registrationControls = useMemo15(() => {
9080
+ if (controlsSchema === undefined || controlsRuntimeValues === undefined || controlsOverrideId === undefined || controlsSupportsEffects === undefined || controlsComponentIdentity === undefined || controlsComponentName === undefined) {
9081
+ return null;
9082
+ }
9083
+ return {
9084
+ schema: controlsSchema,
9085
+ runtimeValues: controlsRuntimeValues,
9086
+ overrideId: controlsOverrideId,
9087
+ supportsEffects: controlsSupportsEffects,
9088
+ componentIdentity: controlsComponentIdentity,
9089
+ componentName: controlsComponentName
9090
+ };
9091
+ }, [
9092
+ controlsComponentIdentity,
9093
+ controlsComponentName,
9094
+ controlsOverrideId,
9095
+ controlsRuntimeValues,
9096
+ controlsSchema,
9097
+ controlsSupportsEffects
9098
+ ]);
9024
9099
  useEffect3(() => {
9025
9100
  if (!env.isStudio) {
9026
9101
  return;
@@ -9029,7 +9104,7 @@ var RegularSequenceRefForwardingFunction = ({
9029
9104
  if (isMedia.type === "image") {
9030
9105
  registerSequence({
9031
9106
  type: "image",
9032
- controls: controls ?? null,
9107
+ controls: registrationControls,
9033
9108
  effects: _remotionInternalEffects ?? EMPTY_EFFECTS,
9034
9109
  displayName: timelineClipName,
9035
9110
  documentationLink: resolvedDocumentationLink,
@@ -9053,7 +9128,7 @@ var RegularSequenceRefForwardingFunction = ({
9053
9128
  } else {
9054
9129
  registerSequence({
9055
9130
  type: isMedia.type,
9056
- controls: controls ?? null,
9131
+ controls: registrationControls,
9057
9132
  effects: _remotionInternalEffects ?? EMPTY_EFFECTS,
9058
9133
  displayName: timelineClipName,
9059
9134
  documentationLink: resolvedDocumentationLink,
@@ -9100,7 +9175,7 @@ var RegularSequenceRefForwardingFunction = ({
9100
9175
  getStack: () => stackRef.current,
9101
9176
  premountDisplay: premountDisplay ?? null,
9102
9177
  postmountDisplay: postmountDisplay ?? null,
9103
- controls: controls ?? null,
9178
+ controls: registrationControls,
9104
9179
  effects: _remotionInternalEffects ?? EMPTY_EFFECTS,
9105
9180
  refForOutline: refForOutline ?? null,
9106
9181
  isInsideSeries,
@@ -9128,7 +9203,7 @@ var RegularSequenceRefForwardingFunction = ({
9128
9203
  premountDisplay,
9129
9204
  postmountDisplay,
9130
9205
  env.isStudio,
9131
- controls,
9206
+ registrationControls,
9132
9207
  _remotionInternalEffects,
9133
9208
  isMedia,
9134
9209
  resolvedDocumentationLink,
@@ -10054,7 +10129,7 @@ var AnimatedImageContent = forwardRef4(({
10054
10129
  imageDecoder?.close();
10055
10130
  };
10056
10131
  }, [imageDecoder]);
10057
- useLayoutEffect2(() => {
10132
+ useLayoutEffect3(() => {
10058
10133
  if (!imageDecoder) {
10059
10134
  return;
10060
10135
  }
@@ -10311,7 +10386,7 @@ var RenderAssetManagerProvider = ({ children, collectAssets }) => {
10311
10386
  renderAssetsRef.current = renderAssetsRef.current.filter((a2) => a2.id !== id);
10312
10387
  setRenderAssets(renderAssetsRef.current);
10313
10388
  }, []);
10314
- useLayoutEffect3(() => {
10389
+ useLayoutEffect4(() => {
10315
10390
  if (typeof window !== "undefined") {
10316
10391
  window.remotion_collectAssets = () => {
10317
10392
  const assets = renderAssetsRef.current;
@@ -10341,7 +10416,7 @@ var Artifact = ({ filename, content, downloadBehavior }) => {
10341
10416
  const [id] = useState8(() => {
10342
10417
  return String(Math.random());
10343
10418
  });
10344
- useLayoutEffect4(() => {
10419
+ useLayoutEffect5(() => {
10345
10420
  if (!env.isRendering) {
10346
10421
  return;
10347
10422
  }
@@ -11659,7 +11734,7 @@ var useVolume = ({
11659
11734
  }
11660
11735
  const { audioContext, gainNode: masterGainNode } = sharedAudioContext;
11661
11736
  if (typeof window !== "undefined") {
11662
- useLayoutEffect5(() => {
11737
+ useLayoutEffect6(() => {
11663
11738
  if (!audioContext) {
11664
11739
  return;
11665
11740
  }
@@ -12025,7 +12100,7 @@ var useBufferManager = (logLevel, mountTime) => {
12025
12100
  }
12026
12101
  }, [blocks]);
12027
12102
  if (typeof window !== "undefined") {
12028
- useLayoutEffect6(() => {
12103
+ useLayoutEffect7(() => {
12029
12104
  if (rendering) {
12030
12105
  return;
12031
12106
  }
@@ -12659,7 +12734,7 @@ var useMediaPlayback = ({
12659
12734
  isPostmounting
12660
12735
  ]);
12661
12736
  const env = useRemotionEnvironment();
12662
- useLayoutEffect7(() => {
12737
+ useLayoutEffect8(() => {
12663
12738
  const playbackRateToSet = Math.max(0, playbackRate);
12664
12739
  if (mediaRef.current && mediaRef.current.playbackRate !== playbackRateToSet) {
12665
12740
  mediaRef.current.playbackRate = playbackRateToSet;
@@ -13137,7 +13212,7 @@ var AudioForRenderingRefForwardingFunction = (props, ref) => {
13137
13212
  ]);
13138
13213
  const { src } = props;
13139
13214
  const needsToRenderAudioTag = ref || _remotionInternalNeedsDurationCalculation;
13140
- useLayoutEffect8(() => {
13215
+ useLayoutEffect9(() => {
13141
13216
  if (window.process?.env?.NODE_ENV === "test") {
13142
13217
  return;
13143
13218
  }
@@ -13784,7 +13859,7 @@ var HtmlInCanvasContent = forwardRef9(({
13784
13859
  resolvedPixelDensity,
13785
13860
  canRetryMissingPaintRecord
13786
13861
  ]);
13787
- useLayoutEffect9(() => {
13862
+ useLayoutEffect10(() => {
13788
13863
  const placeholder = canvas2dRef.current;
13789
13864
  if (!placeholder) {
13790
13865
  throw new Error("Canvas not found");
@@ -13816,7 +13891,7 @@ var HtmlInCanvasContent = forwardRef9(({
13816
13891
  usesDirectLayoutCanvas
13817
13892
  ]);
13818
13893
  const onPaintChangedRef = useRef23(false);
13819
- useLayoutEffect9(() => {
13894
+ useLayoutEffect10(() => {
13820
13895
  if (!onPaintChangedRef.current) {
13821
13896
  onPaintChangedRef.current = true;
13822
13897
  return;
@@ -13827,7 +13902,7 @@ var HtmlInCanvasContent = forwardRef9(({
13827
13902
  }
13828
13903
  canvas.requestPaint?.();
13829
13904
  }, [onPaint, memoizedEffects]);
13830
- useLayoutEffect9(() => {
13905
+ useLayoutEffect10(() => {
13831
13906
  const canvas = canvas2dRef.current;
13832
13907
  if (!canvas) {
13833
13908
  return;
@@ -14125,7 +14200,7 @@ var CanvasImageContent = forwardRef10(({
14125
14200
  ref.current = canvas;
14126
14201
  }
14127
14202
  }, [ref, refForOutline]);
14128
- useLayoutEffect10(() => {
14203
+ useLayoutEffect11(() => {
14129
14204
  if (!pauseWhenLoading || !isLoadPending || isPremounting || isPostmounting) {
14130
14205
  return;
14131
14206
  }
@@ -14137,7 +14212,7 @@ var CanvasImageContent = forwardRef10(({
14137
14212
  isPremounting,
14138
14213
  pauseWhenLoading
14139
14214
  ]);
14140
- useLayoutEffect10(() => {
14215
+ useLayoutEffect11(() => {
14141
14216
  const handle = delayRender2(`Rendering <CanvasImage> with src="${truncateSrcForLabel(actualSrc)}"`, {
14142
14217
  retries: delayRenderRetries ?? undefined,
14143
14218
  timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
@@ -14199,7 +14274,7 @@ var CanvasImageContent = forwardRef10(({
14199
14274
  maxRetries,
14200
14275
  onError
14201
14276
  ]);
14202
- useLayoutEffect10(() => {
14277
+ useLayoutEffect11(() => {
14203
14278
  if (!loadedImage || !outputCanvas || !sourceCanvas) {
14204
14279
  return;
14205
14280
  }
@@ -14527,7 +14602,7 @@ var ImgContent = ({
14527
14602
  } catch {}
14528
14603
  }, [cancelRender2, maxRetries, onError, retryIn]);
14529
14604
  if (typeof window !== "undefined") {
14530
- useLayoutEffect11(() => {
14605
+ useLayoutEffect12(() => {
14531
14606
  if (!pauseWhenLoading || !isLoading || isPremounting || isPostmounting) {
14532
14607
  return;
14533
14608
  }
@@ -14539,7 +14614,7 @@ var ImgContent = ({
14539
14614
  isPremounting,
14540
14615
  pauseWhenLoading
14541
14616
  ]);
14542
- useLayoutEffect11(() => {
14617
+ useLayoutEffect12(() => {
14543
14618
  if (window.process?.env?.NODE_ENV === "test") {
14544
14619
  if (imageRef.current) {
14545
14620
  imageRef.current.src = actualSrc;
@@ -14890,7 +14965,8 @@ var makeRemotionComponentIdentity = ({
14890
14965
  };
14891
14966
  var interactiveElementSchema = {
14892
14967
  ...baseSchema,
14893
- ...transformSchema
14968
+ ...transformSchema,
14969
+ ...cropSchema
14894
14970
  };
14895
14971
  var interactiveBackgroundElementSchema = {
14896
14972
  ...interactiveElementSchema,
@@ -14947,8 +15023,21 @@ var makeInteractiveElement = (tag, displayName, schema) => {
14947
15023
  name,
14948
15024
  showInTimeline,
14949
15025
  controls,
15026
+ cropLeft,
15027
+ cropRight,
15028
+ cropTop,
15029
+ cropBottom,
15030
+ style,
14950
15031
  ...props2
14951
15032
  } = propsWithControls;
15033
+ const croppedStyle = useCropStyle({
15034
+ cropLeft,
15035
+ cropRight,
15036
+ cropTop,
15037
+ cropBottom,
15038
+ style: style ?? null,
15039
+ componentName: displayName
15040
+ });
14952
15041
  const refForOutline = useRef26(null);
14953
15042
  const callbackRef = useCallback21((element) => {
14954
15043
  refForOutline.current = element;
@@ -14968,6 +15057,7 @@ var makeInteractiveElement = (tag, displayName, schema) => {
14968
15057
  outlineRef: refForOutline,
14969
15058
  children: React31.createElement(tag, {
14970
15059
  ...props2,
15060
+ style: croppedStyle ?? undefined,
14971
15061
  ref: callbackRef
14972
15062
  })
14973
15063
  });
@@ -15669,7 +15759,7 @@ var OffthreadVideoForRendering = ({
15669
15759
  }, [toneMapped, currentTime, src, transparent]);
15670
15760
  const [imageSrc, setImageSrc] = useState20(null);
15671
15761
  const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
15672
- useLayoutEffect12(() => {
15762
+ useLayoutEffect13(() => {
15673
15763
  if (!window.remotion_videoEnabled) {
15674
15764
  return;
15675
15765
  }
@@ -16204,6 +16294,7 @@ var WATCH_REMOTION_STATIC_FILES = "remotion_staticFilesChanged";
16204
16294
  function useRemotionContexts() {
16205
16295
  const compositionManagerCtx = React41.useContext(CompositionManager);
16206
16296
  const timelineContext = React41.useContext(TimelineContext);
16297
+ const timelineImperativeContext = React41.useContext(TimelineImperativeContext);
16207
16298
  const setTimelineContext = React41.useContext(SetTimelineContext);
16208
16299
  const sequenceContext = React41.useContext(SequenceContext);
16209
16300
  const nonceContext = React41.useContext(NonceContext);
@@ -16219,6 +16310,7 @@ function useRemotionContexts() {
16219
16310
  return useMemo39(() => ({
16220
16311
  compositionManagerCtx,
16221
16312
  timelineContext,
16313
+ timelineImperativeContext,
16222
16314
  setTimelineContext,
16223
16315
  sequenceContext,
16224
16316
  nonceContext,
@@ -16237,6 +16329,7 @@ function useRemotionContexts() {
16237
16329
  sequenceContext,
16238
16330
  setTimelineContext,
16239
16331
  timelineContext,
16332
+ timelineImperativeContext,
16240
16333
  canUseRemotionHooksContext,
16241
16334
  preloadContext,
16242
16335
  resolveCompositionContext,
@@ -16270,15 +16363,18 @@ var RemotionContextProvider = (props2) => {
16270
16363
  value: contexts.renderAssetManagerContext,
16271
16364
  children: /* @__PURE__ */ jsx37(ResolveCompositionContext.Provider, {
16272
16365
  value: contexts.resolveCompositionContext,
16273
- children: /* @__PURE__ */ jsx37(TimelineContext.Provider, {
16274
- value: contexts.timelineContext,
16275
- children: /* @__PURE__ */ jsx37(SetTimelineContext.Provider, {
16276
- value: contexts.setTimelineContext,
16277
- children: /* @__PURE__ */ jsx37(SequenceContext.Provider, {
16278
- value: contexts.sequenceContext,
16279
- children: /* @__PURE__ */ jsx37(BufferingContextReact.Provider, {
16280
- value: contexts.bufferManagerContext,
16281
- children
16366
+ children: /* @__PURE__ */ jsx37(TimelineImperativeContext.Provider, {
16367
+ value: contexts.timelineImperativeContext,
16368
+ children: /* @__PURE__ */ jsx37(TimelineContext.Provider, {
16369
+ value: contexts.timelineContext,
16370
+ children: /* @__PURE__ */ jsx37(SetTimelineContext.Provider, {
16371
+ value: contexts.setTimelineContext,
16372
+ children: /* @__PURE__ */ jsx37(SequenceContext.Provider, {
16373
+ value: contexts.sequenceContext,
16374
+ children: /* @__PURE__ */ jsx37(BufferingContextReact.Provider, {
16375
+ value: contexts.bufferManagerContext,
16376
+ children
16377
+ })
16282
16378
  })
16283
16379
  })
16284
16380
  })
@@ -16422,6 +16518,7 @@ var Internals = {
16422
16518
  TimelinePosition: exports_timeline_position_state,
16423
16519
  DelayRenderContextType,
16424
16520
  TimelineContext,
16521
+ TimelineImperativeContext,
16425
16522
  PlaybackRateContext,
16426
16523
  AbsoluteTimeContext,
16427
16524
  RenderAssetManagerProvider,
@@ -17006,7 +17103,7 @@ var VideoForRenderingForwardFunction = ({
17006
17103
  ]);
17007
17104
  const { src } = props2;
17008
17105
  if (environment.isRendering) {
17009
- useLayoutEffect13(() => {
17106
+ useLayoutEffect14(() => {
17010
17107
  if (window.process?.env?.NODE_ENV === "test") {
17011
17108
  return;
17012
17109
  }
package/dist/tailwind.css CHANGED
@@ -220,6 +220,9 @@
220
220
  .mt-\[3px\] {
221
221
  margin-top: 3px;
222
222
  }
223
+ .mt-\[60px\] {
224
+ margin-top: 60px;
225
+ }
223
226
  .mt-\[75px\] {
224
227
  margin-top: 75px;
225
228
  }
@@ -271,6 +274,9 @@
271
274
  .mb-10 {
272
275
  margin-bottom: calc(var(--spacing) * 10);
273
276
  }
277
+ .mb-16 {
278
+ margin-bottom: calc(var(--spacing) * 16);
279
+ }
274
280
  .mb-20 {
275
281
  margin-bottom: calc(var(--spacing) * 20);
276
282
  }
@@ -1493,6 +1499,11 @@
1493
1499
  max-width: 400px;
1494
1500
  }
1495
1501
  }
1502
+ .md\:grid-cols-2 {
1503
+ @media (width >= 48rem) {
1504
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1505
+ }
1506
+ }
1496
1507
  .md\:flex-col {
1497
1508
  @media (width >= 48rem) {
1498
1509
  flex-direction: column;
@@ -1575,14 +1586,14 @@
1575
1586
  margin-left: auto;
1576
1587
  }
1577
1588
  }
1578
- .lg\:aspect-square {
1589
+ .lg\:flex {
1579
1590
  @media (width >= 64rem) {
1580
- aspect-ratio: 1 / 1;
1591
+ display: flex;
1581
1592
  }
1582
1593
  }
1583
- .lg\:w-\[300px\] {
1594
+ .lg\:aspect-square {
1584
1595
  @media (width >= 64rem) {
1585
- width: 300px;
1596
+ aspect-ratio: 1 / 1;
1586
1597
  }
1587
1598
  }
1588
1599
  .lg\:w-auto {