@remotion/promo-pages 4.0.540 → 4.0.541

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.
@@ -20874,8 +20874,9 @@ var cutPath = (d, length) => {
20874
20874
  if (summedUpLength + instructionAndInfo.length > length) {
20875
20875
  const remainingLength = length - summedUpLength;
20876
20876
  const progress = remainingLength / instructionAndInfo.length;
20877
+ const { instruction } = instructionAndInfo;
20877
20878
  const cut = cutInstruction({
20878
- instruction: instructionAndInfo.instruction,
20879
+ instruction: instruction.type === "Z" ? { type: "L", x: segment.startPoint.x, y: segment.startPoint.y } : instruction,
20879
20880
  lastPoint: instructionAndInfo.startPoint,
20880
20881
  progress
20881
20882
  });
@@ -21608,7 +21609,7 @@ var setComponentIdentityResolver = (resolver) => {
21608
21609
  var resolveComponentIdentity = (component) => {
21609
21610
  return componentIdentityResolver?.(component) ?? component;
21610
21611
  };
21611
- var getSingleChildComponent = (children) => {
21612
+ var getSingleChildElement = (children) => {
21612
21613
  const mountedChildren = React4.Children.toArray(children);
21613
21614
  if (mountedChildren.length !== 1) {
21614
21615
  return null;
@@ -21618,12 +21619,19 @@ var getSingleChildComponent = (children) => {
21618
21619
  return null;
21619
21620
  }
21620
21621
  if (child.type === IsNotInsideSeriesProvider) {
21621
- return getSingleChildComponent(child.props.children);
21622
+ return getSingleChildElement(child.props.children);
21622
21623
  }
21623
21624
  if (typeof child.type !== "function" && typeof child.type !== "object") {
21624
21625
  return null;
21625
21626
  }
21626
- return resolveComponentIdentity(child.type);
21627
+ return child;
21628
+ };
21629
+ var getSingleChildComponent = (children) => {
21630
+ const child = getSingleChildElement(children);
21631
+ return child === null ? null : resolveComponentIdentity(child.type);
21632
+ };
21633
+ var getSingleChildProps = (children) => {
21634
+ return getSingleChildElement(children)?.props ?? null;
21627
21635
  };
21628
21636
  var CompositionRegistryFallbackContext = createContext5(null);
21629
21637
  var useIsomorphicLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
@@ -23031,9 +23039,11 @@ var makeOriginalSourceStack = ({
23031
23039
  fileName,
23032
23040
  lineNumber,
23033
23041
  columnNumber
23034
- }) => {
23035
- return `Error
23042
+ }, compiledSourceHash = null) => {
23043
+ const location2 = `Error
23036
23044
  at remotionOriginalSource (${ORIGINAL_SOURCE_STACK_PREFIX}${encodeURIComponent(fileName)}:${lineNumber}:${columnNumber})`;
23045
+ return compiledSourceHash === null ? location2 : `${location2}
23046
+ at remotionCompiledSource (remotion-source-sha256:${compiledSourceHash})`;
23037
23047
  };
23038
23048
  var parseOriginalSourceStack = (stack) => {
23039
23049
  if (!stack) {
@@ -23063,7 +23073,7 @@ var setStackForControls = (controls, stack) => {
23063
23073
  var getStackForControls = (controls) => {
23064
23074
  return stacksByControls.get(controls) ?? null;
23065
23075
  };
23066
- var VERSION = "4.0.540";
23076
+ var VERSION = "4.0.541";
23067
23077
  var checkMultipleRemotionVersions = () => {
23068
23078
  if (typeof globalThis === "undefined") {
23069
23079
  return;
@@ -26819,7 +26829,7 @@ function hslToRgb(h, s, l) {
26819
26829
  return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;
26820
26830
  }
26821
26831
  function parse255(str) {
26822
- const int = Number.parseInt(str, 10);
26832
+ const int = Math.round(Number.parseFloat(str));
26823
26833
  if (int < 0) {
26824
26834
  return 0;
26825
26835
  }
@@ -28571,6 +28581,7 @@ var setSequenceWrapperRef = (ref, wrapperRef, node) => {
28571
28581
  ref.current = node;
28572
28582
  }
28573
28583
  };
28584
+ var getSingleChildPropsFromRef = (childrenRef) => getSingleChildProps(childrenRef.current);
28574
28585
  var RegularSequenceContentRefForwardingFunction = ({
28575
28586
  timing,
28576
28587
  from = 0,
@@ -28591,6 +28602,7 @@ var RegularSequenceContentRefForwardingFunction = ({
28591
28602
  _remotionInternalLoopDisplay: loopDisplay,
28592
28603
  _remotionInternalStack: stack,
28593
28604
  _remotionInternalSingleChildComponent: childComponentOverride,
28605
+ _remotionInternalSingleChildren: authoredChildrenOverride,
28594
28606
  _remotionInternalDocumentationLink: documentationLink,
28595
28607
  _remotionInternalPremountDisplay: premountDisplay,
28596
28608
  _remotionInternalPostmountDisplay: postmountDisplay,
@@ -28641,6 +28653,7 @@ var RegularSequenceContentRefForwardingFunction = ({
28641
28653
  loopPeriod,
28642
28654
  loopIteration,
28643
28655
  contentVisible,
28656
+ inheritedFrozenFrame,
28644
28657
  currentFrameRef
28645
28658
  } = timing;
28646
28659
  if (typeof contentDurationInFrames !== "number") {
@@ -28765,7 +28778,13 @@ var RegularSequenceContentRefForwardingFunction = ({
28765
28778
  }, [name]);
28766
28779
  const resolvedDocumentationLink = documentationLink ?? "https://www.remotion.dev/docs/sequence";
28767
28780
  const isInsideSeries = useContext28(IsInsideSeriesContext);
28768
- const singleChildComponent = useMemo22(() => childComponentOverride === undefined ? getSingleChildComponent(children) : childComponentOverride, [children, childComponentOverride]);
28781
+ const authoredChildren = authoredChildrenOverride === undefined ? children : authoredChildrenOverride;
28782
+ const singleChildComponent = useMemo22(() => childComponentOverride === undefined ? getSingleChildComponent(authoredChildren) : childComponentOverride, [authoredChildren, childComponentOverride]);
28783
+ const childrenRef = useRef8(authoredChildren);
28784
+ useLayoutEffect9(() => {
28785
+ childrenRef.current = authoredChildren;
28786
+ }, [authoredChildren]);
28787
+ const getRegisteredSingleChildProps = useMemo22(() => childComponentOverride === undefined ? getSingleChildPropsFromRef.bind(null, childrenRef) : null, [childComponentOverride]);
28769
28788
  const registrationStack = controls ? getStackForControls(controls) ?? stack ?? null : stack ?? null;
28770
28789
  const getStack = useMemo22(() => getSequenceStack.bind(null, registrationStack), [registrationStack]);
28771
28790
  const registeredFrozenFrame = typeof freeze === "number" ? freeze : null;
@@ -28774,7 +28793,8 @@ var RegularSequenceContentRefForwardingFunction = ({
28774
28793
  const parentCumulatedNegativeFrom = parentSequence?.cumulatedNegativeFrom ?? 0;
28775
28794
  const startMediaFrom = isMedia && isMedia.type !== "image" ? isMedia.data.startMediaFrom + parentCumulatedNegativeFrom - cumulatedNegativeFrom : null;
28776
28795
  const mediaFrameAtSequenceZero = isMedia && isMedia.type !== "image" ? isMedia.data.startMediaFrom + parentCumulatedNegativeFrom : null;
28777
- const frozenMediaFrame = isMedia && isMedia.type !== "image" && mediaFrameAtSequenceZero !== null ? registeredFrozenFrame === null ? null : mediaFrameAtSequenceZero + (resolvedLoopDisplay ? registeredFrozenFrame % resolvedLoopDisplay.durationInFrames : registeredFrozenFrame) * isMedia.data.playbackRate : null;
28796
+ const mediaFreezeFrame = registeredFrozenFrame ?? (contentVisible && !parentDormant && !premounting && !postmounting ? inheritedFrozenFrame : null);
28797
+ const frozenMediaFrame = isMedia && isMedia.type !== "image" && mediaFrameAtSequenceZero !== null && mediaFreezeFrame !== null ? mediaFrameAtSequenceZero + (resolvedLoopDisplay ? mediaFreezeFrame % resolvedLoopDisplay.durationInFrames : mediaFreezeFrame) * isMedia.data.playbackRate : null;
28778
28798
  const controlsSchema = controls?.schema;
28779
28799
  const controlsRuntimeValues = controls?.runtimeValues;
28780
28800
  const controlsOverrideId = controls?.overrideId;
@@ -28782,8 +28802,7 @@ var RegularSequenceContentRefForwardingFunction = ({
28782
28802
  const controlsComponentIdentity = controls?.componentIdentity;
28783
28803
  const controlsComponentName = controls?.componentName;
28784
28804
  const controlsVideoConfigValues = controls?.videoConfigValues;
28785
- const isInsideNonPremountFreeze = useIsInsideNonPremountFreeze();
28786
- const canInferDuration = (controlsComponentIdentity === "dev.remotion.remotion.Series" || controlsComponentIdentity === "dev.remotion.transitions.TransitionSeries") && !loop && registeredFrozenFrame === null && !isInsideNonPremountFreeze && !hidden;
28805
+ const canInferDuration = (controlsComponentIdentity === "dev.remotion.remotion.Series" || controlsComponentIdentity === "dev.remotion.transitions.TransitionSeries") && !loop && registeredFrozenFrame === null && inheritedFrozenFrame === null && !hidden;
28787
28806
  const autoDuration = canInferDuration && durationInFrames === undefined;
28788
28807
  const isSeriesChild = controlsComponentIdentity === "dev.remotion.remotion.Series.Sequence" || controlsComponentIdentity === "dev.remotion.transitions.TransitionSeries.Sequence" || controlsComponentIdentity === "dev.remotion.transitions.TransitionSeries.Transition" || controlsComponentIdentity === "dev.remotion.transitions.TransitionSeries.Overlay";
28789
28808
  const effectRuntimeValues = useMemo22(() => _remotionInternalEffects?.runtimeValues ?? null, [_remotionInternalEffects]);
@@ -28845,7 +28864,8 @@ var RegularSequenceContentRefForwardingFunction = ({
28845
28864
  refForOutline: refForOutline ?? null,
28846
28865
  isInsideSeries,
28847
28866
  frozenFrame: registeredFrozenFrame,
28848
- singleChildComponent: singleChildComponent ?? null
28867
+ singleChildComponent: singleChildComponent ?? null,
28868
+ getSingleChildProps: getRegisteredSingleChildProps
28849
28869
  };
28850
28870
  }
28851
28871
  return {
@@ -28878,7 +28898,8 @@ var RegularSequenceContentRefForwardingFunction = ({
28878
28898
  isInsideSeries,
28879
28899
  frozenFrame: registeredFrozenFrame,
28880
28900
  frozenMediaFrame,
28881
- singleChildComponent: singleChildComponent ?? null
28901
+ singleChildComponent: singleChildComponent ?? null,
28902
+ getSingleChildProps: getRegisteredSingleChildProps
28882
28903
  };
28883
28904
  }
28884
28905
  return {
@@ -28908,7 +28929,8 @@ var RegularSequenceContentRefForwardingFunction = ({
28908
28929
  refForOutline: refForOutline ?? null,
28909
28930
  isInsideSeries,
28910
28931
  frozenFrame: registeredFrozenFrame,
28911
- singleChildComponent: singleChildComponent ?? null
28932
+ singleChildComponent: singleChildComponent ?? null,
28933
+ getSingleChildProps: getRegisteredSingleChildProps
28912
28934
  };
28913
28935
  }, [
28914
28936
  id,
@@ -28942,7 +28964,8 @@ var RegularSequenceContentRefForwardingFunction = ({
28942
28964
  startMediaFrom,
28943
28965
  mediaFrameAtSequenceZero,
28944
28966
  frozenMediaFrame,
28945
- singleChildComponent
28967
+ singleChildComponent,
28968
+ getRegisteredSingleChildProps
28946
28969
  ]);
28947
28970
  const getSequenceForRegistration = useMemo22(() => getSequenceRegistration.bind(null, sequenceForRegistration), [sequenceForRegistration]);
28948
28971
  const registration = useSequenceRegistration({
@@ -29106,6 +29129,7 @@ var RegularSequenceRefForwardingFunction = (props, ref) => {
29106
29129
  const loopOffset = loopPeriod === null ? 0 : loopIteration * loopPeriod;
29107
29130
  const currentSequenceStart = cumulatedFrom + (from + loopOffset - trimBefore / playbackRate) / parentPlaybackRate;
29108
29131
  const currentFrame = typeof freeze === "number" ? freeze : (absoluteFrame - currentSequenceStart) * (parentPlaybackRate * playbackRate);
29132
+ const inheritedFrozenFrame = useIsInsideNonPremountFreeze() ? currentFrame : null;
29109
29133
  const currentFrameRef = useRef8(currentFrame);
29110
29134
  const timing = useMemo22(() => ({
29111
29135
  contentDurationInFrames,
@@ -29114,6 +29138,7 @@ var RegularSequenceRefForwardingFunction = (props, ref) => {
29114
29138
  loopPeriod,
29115
29139
  loopIteration,
29116
29140
  contentVisible,
29141
+ inheritedFrozenFrame,
29117
29142
  currentFrameRef
29118
29143
  }), [
29119
29144
  contentDurationInFrames,
@@ -29121,7 +29146,8 @@ var RegularSequenceRefForwardingFunction = (props, ref) => {
29121
29146
  actualDurationInFrames,
29122
29147
  loopPeriod,
29123
29148
  loopIteration,
29124
- contentVisible
29149
+ contentVisible,
29150
+ inheritedFrozenFrame
29125
29151
  ]);
29126
29152
  return /* @__PURE__ */ jsxs2(React27.Fragment, {
29127
29153
  children: [
@@ -29401,6 +29427,16 @@ var AbsoluteFill = withInteractivitySchema({
29401
29427
  supportsEffects: false
29402
29428
  });
29403
29429
  addSequenceStackTraces(AbsoluteFill);
29430
+ var getCanvasPropsFromSequenceProps = (props) => {
29431
+ const canvasProps = {};
29432
+ const mutableCanvasProps = canvasProps;
29433
+ for (const key in props) {
29434
+ if (Object.prototype.hasOwnProperty.call(props, key) && (key.startsWith("data-") || key.startsWith("aria-"))) {
29435
+ mutableCanvasProps[key] = props[key];
29436
+ }
29437
+ }
29438
+ return canvasProps;
29439
+ };
29404
29440
  var useCropStyle = ({
29405
29441
  cropLeft,
29406
29442
  cropRight,
@@ -30688,16 +30724,6 @@ var animatedImageSchema = {
30688
30724
  ...borderSchema2,
30689
30725
  ...borderRadiusSchema2
30690
30726
  };
30691
- var getCanvasPropsFromSequenceProps = (props) => {
30692
- const canvasProps = {};
30693
- const mutableCanvasProps = canvasProps;
30694
- for (const key in props) {
30695
- if (Object.prototype.hasOwnProperty.call(props, key) && (key.startsWith("data-") || key.startsWith("aria-"))) {
30696
- mutableCanvasProps[key] = props[key];
30697
- }
30698
- }
30699
- return canvasProps;
30700
- };
30701
30727
  var AnimatedImageContent = forwardRef4(({
30702
30728
  src,
30703
30729
  width,
@@ -31183,6 +31209,16 @@ var RenderAssetManagerProvider = ({ children, collectAssets }) => {
31183
31209
  });
31184
31210
  };
31185
31211
  var ArtifactThumbnail = Symbol("Thumbnail");
31212
+ var encodeBinaryArtifact = (bytes) => {
31213
+ if ("toBase64" in bytes && typeof bytes.toBase64 === "function") {
31214
+ return bytes.toBase64();
31215
+ }
31216
+ let binary = "";
31217
+ for (let offset = 0;offset < bytes.length; offset += 32768) {
31218
+ binary += String.fromCharCode(...bytes.subarray(offset, offset + 32768));
31219
+ }
31220
+ return btoa(binary);
31221
+ };
31186
31222
  var Artifact = ({ filename, content, downloadBehavior }) => {
31187
31223
  const { registerRenderAsset, unregisterRenderAsset } = useContext30(RenderAssetManager);
31188
31224
  const env = useRemotionEnvironment();
@@ -31198,7 +31234,7 @@ var Artifact = ({ filename, content, downloadBehavior }) => {
31198
31234
  registerRenderAsset({
31199
31235
  type: "artifact",
31200
31236
  id,
31201
- content: btoa(new TextDecoder("utf8").decode(content)),
31237
+ content: encodeBinaryArtifact(content),
31202
31238
  filename,
31203
31239
  frame,
31204
31240
  contentType: "binary",
@@ -32979,9 +33015,7 @@ var getMediaSyncAction = (input) => {
32979
33015
  ended,
32980
33016
  desiredUnclampedTime,
32981
33017
  mediaTagTime,
32982
- mediaTagLastUpdate,
32983
33018
  rvcTime,
32984
- rvcLastUpdate,
32985
33019
  isVariableFpsVideo,
32986
33020
  acceptableTimeShift,
32987
33021
  lastSeekDueToShift,
@@ -32993,13 +33027,11 @@ var getMediaSyncAction = (input) => {
32993
33027
  onlyWarnForMediaSeekingError,
32994
33028
  isPremounting,
32995
33029
  isPostmounting,
32996
- pauseWhenBuffering
33030
+ pauseWhenBuffering,
33031
+ mediaType
32997
33032
  } = input;
32998
33033
  const shouldBeTime = !Number.isNaN(duration) && Number.isFinite(duration) ? Math.min(duration, desiredUnclampedTime) : desiredUnclampedTime;
32999
- const timeShiftMediaTag = Math.abs(shouldBeTime - mediaTagTime);
33000
- const timeShiftRvcTag = rvcTime ? Math.abs(shouldBeTime - rvcTime) : null;
33001
- const mostRecentTimeshift = rvcLastUpdate && rvcTime > mediaTagLastUpdate ? timeShiftRvcTag : timeShiftMediaTag;
33002
- const timeShift = timeShiftRvcTag && !isVariableFpsVideo ? mostRecentTimeshift : timeShiftMediaTag;
33034
+ const timeShift = Math.abs(shouldBeTime - mediaTagTime);
33003
33035
  if (timeShift > acceptableTimeShift && lastSeekDueToShift !== shouldBeTime) {
33004
33036
  return {
33005
33037
  type: "seek-due-to-shift",
@@ -33012,18 +33044,23 @@ var getMediaSyncAction = (input) => {
33012
33044
  }
33013
33045
  const seekThreshold = playing ? 0.15 : 0.01;
33014
33046
  const makesSenseToSeek = Math.abs(currentTime - shouldBeTime) > seekThreshold;
33047
+ const audioLead = currentTime - shouldBeTime;
33048
+ const holdAudioUntilTimelineCatchesUp = mediaType === "audio" && playing && playbackRate > 0 && makesSenseToSeek && audioLead > 0 && audioLead <= acceptableTimeShift;
33015
33049
  const isSomethingElseBuffering = playerBuffering && !mediaTagBufferingOrStalled;
33016
33050
  if (!playing || isSomethingElseBuffering) {
33017
33051
  return {
33018
33052
  type: "seek-if-not-playing",
33019
33053
  shouldBeTime,
33020
- why: makesSenseToSeek ? `not playing or something else is buffering. time offset is over seek threshold (${seekThreshold})` : null
33054
+ why: makesSenseToSeek && !holdAudioUntilTimelineCatchesUp ? `not playing or something else is buffering. time offset is over seek threshold (${seekThreshold})` : null
33021
33055
  };
33022
33056
  }
33023
33057
  if (!playing || playerBuffering) {
33024
33058
  return { type: "none" };
33025
33059
  }
33026
33060
  const pausedCondition = paused && !ended;
33061
+ if (pausedCondition && holdAudioUntilTimelineCatchesUp) {
33062
+ return { type: "none" };
33063
+ }
33027
33064
  const firstFrameCondition = absoluteFrame === 0;
33028
33065
  if (pausedCondition || firstFrameCondition) {
33029
33066
  const reason = pausedCondition ? "media tag is paused" : "absolute frame is 0";
@@ -33037,19 +33074,15 @@ var getMediaSyncAction = (input) => {
33037
33074
  }
33038
33075
  return { type: "none" };
33039
33076
  };
33040
- var useCurrentTimeOfMediaTagWithUpdateTimeStamp = (mediaRef) => {
33041
- const lastUpdate = React35.useRef({
33042
- time: mediaRef.current?.currentTime ?? 0,
33043
- lastUpdate: performance.now()
33077
+ var useCurrentTimeOfMediaTag = (mediaRef) => {
33078
+ const currentTime = React35.useRef({
33079
+ time: mediaRef.current?.currentTime ?? 0
33044
33080
  });
33045
33081
  const nowCurrentTime = mediaRef.current?.currentTime ?? null;
33046
33082
  if (nowCurrentTime !== null) {
33047
- if (lastUpdate.current.time !== nowCurrentTime) {
33048
- lastUpdate.current.time = nowCurrentTime;
33049
- lastUpdate.current.lastUpdate = performance.now();
33050
- }
33083
+ currentTime.current.time = nowCurrentTime;
33051
33084
  }
33052
- return lastUpdate;
33085
+ return currentTime;
33053
33086
  };
33054
33087
  var seek = ({
33055
33088
  mediaRef,
@@ -33216,8 +33249,7 @@ var useRequestVideoCallbackTime = ({
33216
33249
  const { current } = mediaRef;
33217
33250
  if (current) {
33218
33251
  currentTime.current = {
33219
- time: current.currentTime,
33220
- lastUpdate: performance.now()
33252
+ time: current.currentTime
33221
33253
  };
33222
33254
  } else {
33223
33255
  currentTime.current = null;
@@ -33247,8 +33279,7 @@ var useRequestVideoCallbackTime = ({
33247
33279
  }
33248
33280
  }
33249
33281
  currentTime.current = {
33250
- time: info.mediaTime,
33251
- lastUpdate: performance.now()
33282
+ time: info.mediaTime
33252
33283
  };
33253
33284
  request();
33254
33285
  });
@@ -33379,7 +33410,7 @@ var useMediaPlayback = ({
33379
33410
  lastSeek,
33380
33411
  onVariableFpsVideoDetected
33381
33412
  });
33382
- const mediaTagCurrentTime = useCurrentTimeOfMediaTagWithUpdateTimeStamp(mediaRef);
33413
+ const mediaTagCurrentTime = useCurrentTimeOfMediaTag(mediaRef);
33383
33414
  const desiredUnclampedTime = getMediaTime({
33384
33415
  frame,
33385
33416
  playbackRate: localPlaybackRate,
@@ -33460,9 +33491,7 @@ var useMediaPlayback = ({
33460
33491
  ended: current.ended,
33461
33492
  desiredUnclampedTime,
33462
33493
  mediaTagTime: mediaTagCurrentTime.current.time,
33463
- mediaTagLastUpdate: mediaTagCurrentTime.current.lastUpdate,
33464
33494
  rvcTime: rvcCurrentTime.current?.time ?? null,
33465
- rvcLastUpdate: rvcCurrentTime.current?.lastUpdate ?? null,
33466
33495
  isVariableFpsVideo: Boolean(isVariableFpsVideoMap.current[src]),
33467
33496
  acceptableTimeShift: acceptableTimeShiftButLessThanDuration,
33468
33497
  lastSeekDueToShift: lastSeekDueToShift.current,
@@ -33474,7 +33503,8 @@ var useMediaPlayback = ({
33474
33503
  onlyWarnForMediaSeekingError,
33475
33504
  isPremounting,
33476
33505
  isPostmounting,
33477
- pauseWhenBuffering
33506
+ pauseWhenBuffering,
33507
+ mediaType
33478
33508
  });
33479
33509
  if (action.type === "none") {
33480
33510
  return;
@@ -34318,7 +34348,8 @@ var SolidInner = ({
34318
34348
  pixelDensity,
34319
34349
  overrideId,
34320
34350
  videoConfigValues,
34321
- reference
34351
+ reference,
34352
+ canvasProps
34322
34353
  }) => {
34323
34354
  const { delayRender, continueRender, cancelRender } = useDelayRender();
34324
34355
  const resolvedPixelDensity = resolveSolidPixelDensity(pixelDensity);
@@ -34406,6 +34437,7 @@ var SolidInner = ({
34406
34437
  };
34407
34438
  }, [height, style, width]);
34408
34439
  return /* @__PURE__ */ jsx31("canvas", {
34440
+ ...canvasProps,
34409
34441
  ref: canvasRef,
34410
34442
  width: canvasWidth,
34411
34443
  height: canvasHeight,
@@ -34502,6 +34534,7 @@ var SolidOuter = forwardRef8(({
34502
34534
  _remotionInternalIsPostmounting: postmountingActive,
34503
34535
  children: /* @__PURE__ */ jsx31(SequenceContent, {
34504
34536
  children: /* @__PURE__ */ jsx31(SolidInner, {
34537
+ canvasProps: getCanvasPropsFromSequenceProps(props),
34505
34538
  reference: actualRef,
34506
34539
  videoConfigValues: controls?.videoConfigValues ?? null,
34507
34540
  overrideId: controls?.overrideId ?? null,
@@ -36912,7 +36945,7 @@ var createElementSourceProxy = (api, sourceArgumentIndex, getSourceFileName) =>
36912
36945
  fileName: getSourceFileName(source.fileName),
36913
36946
  lineNumber: source.lineNumber,
36914
36947
  columnNumber: source.columnNumber - 1
36915
- });
36948
+ }, typeof source.__remotionCompiledSourceHash === "string" ? source.__remotionCompiledSourceHash : null);
36916
36949
  } else {
36917
36950
  const { stackTraceLimit } = Error;
36918
36951
  const canLimitStack = typeof stackTraceLimit === "number" && stackTraceLimit > 2 && Object.getOwnPropertyDescriptor(Error, "stackTraceLimit")?.writable;