@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.
@@ -3581,8 +3581,9 @@ var cutPath = (d, length) => {
3581
3581
  if (summedUpLength + instructionAndInfo.length > length) {
3582
3582
  const remainingLength = length - summedUpLength;
3583
3583
  const progress = remainingLength / instructionAndInfo.length;
3584
+ const { instruction } = instructionAndInfo;
3584
3585
  const cut = cutInstruction({
3585
- instruction: instructionAndInfo.instruction,
3586
+ instruction: instruction.type === "Z" ? { type: "L", x: segment.startPoint.x, y: segment.startPoint.y } : instruction,
3586
3587
  lastPoint: instructionAndInfo.startPoint,
3587
3588
  progress
3588
3589
  });
@@ -4315,7 +4316,7 @@ var setComponentIdentityResolver = (resolver) => {
4315
4316
  var resolveComponentIdentity = (component) => {
4316
4317
  return componentIdentityResolver?.(component) ?? component;
4317
4318
  };
4318
- var getSingleChildComponent = (children) => {
4319
+ var getSingleChildElement = (children) => {
4319
4320
  const mountedChildren = React4.Children.toArray(children);
4320
4321
  if (mountedChildren.length !== 1) {
4321
4322
  return null;
@@ -4325,12 +4326,19 @@ var getSingleChildComponent = (children) => {
4325
4326
  return null;
4326
4327
  }
4327
4328
  if (child.type === IsNotInsideSeriesProvider) {
4328
- return getSingleChildComponent(child.props.children);
4329
+ return getSingleChildElement(child.props.children);
4329
4330
  }
4330
4331
  if (typeof child.type !== "function" && typeof child.type !== "object") {
4331
4332
  return null;
4332
4333
  }
4333
- return resolveComponentIdentity(child.type);
4334
+ return child;
4335
+ };
4336
+ var getSingleChildComponent = (children) => {
4337
+ const child = getSingleChildElement(children);
4338
+ return child === null ? null : resolveComponentIdentity(child.type);
4339
+ };
4340
+ var getSingleChildProps = (children) => {
4341
+ return getSingleChildElement(children)?.props ?? null;
4334
4342
  };
4335
4343
  var CompositionRegistryFallbackContext = createContext5(null);
4336
4344
  var useIsomorphicLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
@@ -5738,9 +5746,11 @@ var makeOriginalSourceStack = ({
5738
5746
  fileName,
5739
5747
  lineNumber,
5740
5748
  columnNumber
5741
- }) => {
5742
- return `Error
5749
+ }, compiledSourceHash = null) => {
5750
+ const location = `Error
5743
5751
  at remotionOriginalSource (${ORIGINAL_SOURCE_STACK_PREFIX}${encodeURIComponent(fileName)}:${lineNumber}:${columnNumber})`;
5752
+ return compiledSourceHash === null ? location : `${location}
5753
+ at remotionCompiledSource (remotion-source-sha256:${compiledSourceHash})`;
5744
5754
  };
5745
5755
  var parseOriginalSourceStack = (stack) => {
5746
5756
  if (!stack) {
@@ -5770,7 +5780,7 @@ var setStackForControls = (controls, stack) => {
5770
5780
  var getStackForControls = (controls) => {
5771
5781
  return stacksByControls.get(controls) ?? null;
5772
5782
  };
5773
- var VERSION = "4.0.540";
5783
+ var VERSION = "4.0.541";
5774
5784
  var checkMultipleRemotionVersions = () => {
5775
5785
  if (typeof globalThis === "undefined") {
5776
5786
  return;
@@ -9526,7 +9536,7 @@ function hslToRgb(h, s, l) {
9526
9536
  return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;
9527
9537
  }
9528
9538
  function parse255(str) {
9529
- const int = Number.parseInt(str, 10);
9539
+ const int = Math.round(Number.parseFloat(str));
9530
9540
  if (int < 0) {
9531
9541
  return 0;
9532
9542
  }
@@ -11278,6 +11288,7 @@ var setSequenceWrapperRef = (ref, wrapperRef, node) => {
11278
11288
  ref.current = node;
11279
11289
  }
11280
11290
  };
11291
+ var getSingleChildPropsFromRef = (childrenRef) => getSingleChildProps(childrenRef.current);
11281
11292
  var RegularSequenceContentRefForwardingFunction = ({
11282
11293
  timing,
11283
11294
  from = 0,
@@ -11298,6 +11309,7 @@ var RegularSequenceContentRefForwardingFunction = ({
11298
11309
  _remotionInternalLoopDisplay: loopDisplay,
11299
11310
  _remotionInternalStack: stack,
11300
11311
  _remotionInternalSingleChildComponent: childComponentOverride,
11312
+ _remotionInternalSingleChildren: authoredChildrenOverride,
11301
11313
  _remotionInternalDocumentationLink: documentationLink,
11302
11314
  _remotionInternalPremountDisplay: premountDisplay,
11303
11315
  _remotionInternalPostmountDisplay: postmountDisplay,
@@ -11348,6 +11360,7 @@ var RegularSequenceContentRefForwardingFunction = ({
11348
11360
  loopPeriod,
11349
11361
  loopIteration,
11350
11362
  contentVisible,
11363
+ inheritedFrozenFrame,
11351
11364
  currentFrameRef
11352
11365
  } = timing;
11353
11366
  if (typeof contentDurationInFrames !== "number") {
@@ -11472,7 +11485,13 @@ var RegularSequenceContentRefForwardingFunction = ({
11472
11485
  }, [name]);
11473
11486
  const resolvedDocumentationLink = documentationLink ?? "https://www.remotion.dev/docs/sequence";
11474
11487
  const isInsideSeries = useContext28(IsInsideSeriesContext);
11475
- const singleChildComponent = useMemo22(() => childComponentOverride === undefined ? getSingleChildComponent(children) : childComponentOverride, [children, childComponentOverride]);
11488
+ const authoredChildren = authoredChildrenOverride === undefined ? children : authoredChildrenOverride;
11489
+ const singleChildComponent = useMemo22(() => childComponentOverride === undefined ? getSingleChildComponent(authoredChildren) : childComponentOverride, [authoredChildren, childComponentOverride]);
11490
+ const childrenRef = useRef8(authoredChildren);
11491
+ useLayoutEffect9(() => {
11492
+ childrenRef.current = authoredChildren;
11493
+ }, [authoredChildren]);
11494
+ const getRegisteredSingleChildProps = useMemo22(() => childComponentOverride === undefined ? getSingleChildPropsFromRef.bind(null, childrenRef) : null, [childComponentOverride]);
11476
11495
  const registrationStack = controls ? getStackForControls(controls) ?? stack ?? null : stack ?? null;
11477
11496
  const getStack = useMemo22(() => getSequenceStack.bind(null, registrationStack), [registrationStack]);
11478
11497
  const registeredFrozenFrame = typeof freeze === "number" ? freeze : null;
@@ -11481,7 +11500,8 @@ var RegularSequenceContentRefForwardingFunction = ({
11481
11500
  const parentCumulatedNegativeFrom = parentSequence?.cumulatedNegativeFrom ?? 0;
11482
11501
  const startMediaFrom = isMedia && isMedia.type !== "image" ? isMedia.data.startMediaFrom + parentCumulatedNegativeFrom - cumulatedNegativeFrom : null;
11483
11502
  const mediaFrameAtSequenceZero = isMedia && isMedia.type !== "image" ? isMedia.data.startMediaFrom + parentCumulatedNegativeFrom : null;
11484
- const frozenMediaFrame = isMedia && isMedia.type !== "image" && mediaFrameAtSequenceZero !== null ? registeredFrozenFrame === null ? null : mediaFrameAtSequenceZero + (resolvedLoopDisplay ? registeredFrozenFrame % resolvedLoopDisplay.durationInFrames : registeredFrozenFrame) * isMedia.data.playbackRate : null;
11503
+ const mediaFreezeFrame = registeredFrozenFrame ?? (contentVisible && !parentDormant && !premounting && !postmounting ? inheritedFrozenFrame : null);
11504
+ const frozenMediaFrame = isMedia && isMedia.type !== "image" && mediaFrameAtSequenceZero !== null && mediaFreezeFrame !== null ? mediaFrameAtSequenceZero + (resolvedLoopDisplay ? mediaFreezeFrame % resolvedLoopDisplay.durationInFrames : mediaFreezeFrame) * isMedia.data.playbackRate : null;
11485
11505
  const controlsSchema = controls?.schema;
11486
11506
  const controlsRuntimeValues = controls?.runtimeValues;
11487
11507
  const controlsOverrideId = controls?.overrideId;
@@ -11489,8 +11509,7 @@ var RegularSequenceContentRefForwardingFunction = ({
11489
11509
  const controlsComponentIdentity = controls?.componentIdentity;
11490
11510
  const controlsComponentName = controls?.componentName;
11491
11511
  const controlsVideoConfigValues = controls?.videoConfigValues;
11492
- const isInsideNonPremountFreeze = useIsInsideNonPremountFreeze();
11493
- const canInferDuration = (controlsComponentIdentity === "dev.remotion.remotion.Series" || controlsComponentIdentity === "dev.remotion.transitions.TransitionSeries") && !loop && registeredFrozenFrame === null && !isInsideNonPremountFreeze && !hidden;
11512
+ const canInferDuration = (controlsComponentIdentity === "dev.remotion.remotion.Series" || controlsComponentIdentity === "dev.remotion.transitions.TransitionSeries") && !loop && registeredFrozenFrame === null && inheritedFrozenFrame === null && !hidden;
11494
11513
  const autoDuration = canInferDuration && durationInFrames === undefined;
11495
11514
  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";
11496
11515
  const effectRuntimeValues = useMemo22(() => _remotionInternalEffects?.runtimeValues ?? null, [_remotionInternalEffects]);
@@ -11552,7 +11571,8 @@ var RegularSequenceContentRefForwardingFunction = ({
11552
11571
  refForOutline: refForOutline ?? null,
11553
11572
  isInsideSeries,
11554
11573
  frozenFrame: registeredFrozenFrame,
11555
- singleChildComponent: singleChildComponent ?? null
11574
+ singleChildComponent: singleChildComponent ?? null,
11575
+ getSingleChildProps: getRegisteredSingleChildProps
11556
11576
  };
11557
11577
  }
11558
11578
  return {
@@ -11585,7 +11605,8 @@ var RegularSequenceContentRefForwardingFunction = ({
11585
11605
  isInsideSeries,
11586
11606
  frozenFrame: registeredFrozenFrame,
11587
11607
  frozenMediaFrame,
11588
- singleChildComponent: singleChildComponent ?? null
11608
+ singleChildComponent: singleChildComponent ?? null,
11609
+ getSingleChildProps: getRegisteredSingleChildProps
11589
11610
  };
11590
11611
  }
11591
11612
  return {
@@ -11615,7 +11636,8 @@ var RegularSequenceContentRefForwardingFunction = ({
11615
11636
  refForOutline: refForOutline ?? null,
11616
11637
  isInsideSeries,
11617
11638
  frozenFrame: registeredFrozenFrame,
11618
- singleChildComponent: singleChildComponent ?? null
11639
+ singleChildComponent: singleChildComponent ?? null,
11640
+ getSingleChildProps: getRegisteredSingleChildProps
11619
11641
  };
11620
11642
  }, [
11621
11643
  id,
@@ -11649,7 +11671,8 @@ var RegularSequenceContentRefForwardingFunction = ({
11649
11671
  startMediaFrom,
11650
11672
  mediaFrameAtSequenceZero,
11651
11673
  frozenMediaFrame,
11652
- singleChildComponent
11674
+ singleChildComponent,
11675
+ getRegisteredSingleChildProps
11653
11676
  ]);
11654
11677
  const getSequenceForRegistration = useMemo22(() => getSequenceRegistration.bind(null, sequenceForRegistration), [sequenceForRegistration]);
11655
11678
  const registration = useSequenceRegistration({
@@ -11813,6 +11836,7 @@ var RegularSequenceRefForwardingFunction = (props, ref) => {
11813
11836
  const loopOffset = loopPeriod === null ? 0 : loopIteration * loopPeriod;
11814
11837
  const currentSequenceStart = cumulatedFrom + (from + loopOffset - trimBefore / playbackRate) / parentPlaybackRate;
11815
11838
  const currentFrame = typeof freeze === "number" ? freeze : (absoluteFrame - currentSequenceStart) * (parentPlaybackRate * playbackRate);
11839
+ const inheritedFrozenFrame = useIsInsideNonPremountFreeze() ? currentFrame : null;
11816
11840
  const currentFrameRef = useRef8(currentFrame);
11817
11841
  const timing = useMemo22(() => ({
11818
11842
  contentDurationInFrames,
@@ -11821,6 +11845,7 @@ var RegularSequenceRefForwardingFunction = (props, ref) => {
11821
11845
  loopPeriod,
11822
11846
  loopIteration,
11823
11847
  contentVisible,
11848
+ inheritedFrozenFrame,
11824
11849
  currentFrameRef
11825
11850
  }), [
11826
11851
  contentDurationInFrames,
@@ -11828,7 +11853,8 @@ var RegularSequenceRefForwardingFunction = (props, ref) => {
11828
11853
  actualDurationInFrames,
11829
11854
  loopPeriod,
11830
11855
  loopIteration,
11831
- contentVisible
11856
+ contentVisible,
11857
+ inheritedFrozenFrame
11832
11858
  ]);
11833
11859
  return /* @__PURE__ */ jsxs2(React27.Fragment, {
11834
11860
  children: [
@@ -12108,6 +12134,16 @@ var AbsoluteFill = withInteractivitySchema({
12108
12134
  supportsEffects: false
12109
12135
  });
12110
12136
  addSequenceStackTraces(AbsoluteFill);
12137
+ var getCanvasPropsFromSequenceProps = (props) => {
12138
+ const canvasProps = {};
12139
+ const mutableCanvasProps = canvasProps;
12140
+ for (const key in props) {
12141
+ if (Object.prototype.hasOwnProperty.call(props, key) && (key.startsWith("data-") || key.startsWith("aria-"))) {
12142
+ mutableCanvasProps[key] = props[key];
12143
+ }
12144
+ }
12145
+ return canvasProps;
12146
+ };
12111
12147
  var useCropStyle = ({
12112
12148
  cropLeft,
12113
12149
  cropRight,
@@ -13395,16 +13431,6 @@ var animatedImageSchema = {
13395
13431
  ...borderSchema2,
13396
13432
  ...borderRadiusSchema2
13397
13433
  };
13398
- var getCanvasPropsFromSequenceProps = (props) => {
13399
- const canvasProps = {};
13400
- const mutableCanvasProps = canvasProps;
13401
- for (const key in props) {
13402
- if (Object.prototype.hasOwnProperty.call(props, key) && (key.startsWith("data-") || key.startsWith("aria-"))) {
13403
- mutableCanvasProps[key] = props[key];
13404
- }
13405
- }
13406
- return canvasProps;
13407
- };
13408
13434
  var AnimatedImageContent = forwardRef4(({
13409
13435
  src,
13410
13436
  width,
@@ -13890,6 +13916,16 @@ var RenderAssetManagerProvider = ({ children, collectAssets }) => {
13890
13916
  });
13891
13917
  };
13892
13918
  var ArtifactThumbnail = Symbol("Thumbnail");
13919
+ var encodeBinaryArtifact = (bytes) => {
13920
+ if ("toBase64" in bytes && typeof bytes.toBase64 === "function") {
13921
+ return bytes.toBase64();
13922
+ }
13923
+ let binary = "";
13924
+ for (let offset = 0;offset < bytes.length; offset += 32768) {
13925
+ binary += String.fromCharCode(...bytes.subarray(offset, offset + 32768));
13926
+ }
13927
+ return btoa(binary);
13928
+ };
13893
13929
  var Artifact = ({ filename, content, downloadBehavior }) => {
13894
13930
  const { registerRenderAsset, unregisterRenderAsset } = useContext30(RenderAssetManager);
13895
13931
  const env = useRemotionEnvironment();
@@ -13905,7 +13941,7 @@ var Artifact = ({ filename, content, downloadBehavior }) => {
13905
13941
  registerRenderAsset({
13906
13942
  type: "artifact",
13907
13943
  id,
13908
- content: btoa(new TextDecoder("utf8").decode(content)),
13944
+ content: encodeBinaryArtifact(content),
13909
13945
  filename,
13910
13946
  frame,
13911
13947
  contentType: "binary",
@@ -15686,9 +15722,7 @@ var getMediaSyncAction = (input) => {
15686
15722
  ended,
15687
15723
  desiredUnclampedTime,
15688
15724
  mediaTagTime,
15689
- mediaTagLastUpdate,
15690
15725
  rvcTime,
15691
- rvcLastUpdate,
15692
15726
  isVariableFpsVideo,
15693
15727
  acceptableTimeShift,
15694
15728
  lastSeekDueToShift,
@@ -15700,13 +15734,11 @@ var getMediaSyncAction = (input) => {
15700
15734
  onlyWarnForMediaSeekingError,
15701
15735
  isPremounting,
15702
15736
  isPostmounting,
15703
- pauseWhenBuffering
15737
+ pauseWhenBuffering,
15738
+ mediaType
15704
15739
  } = input;
15705
15740
  const shouldBeTime = !Number.isNaN(duration) && Number.isFinite(duration) ? Math.min(duration, desiredUnclampedTime) : desiredUnclampedTime;
15706
- const timeShiftMediaTag = Math.abs(shouldBeTime - mediaTagTime);
15707
- const timeShiftRvcTag = rvcTime ? Math.abs(shouldBeTime - rvcTime) : null;
15708
- const mostRecentTimeshift = rvcLastUpdate && rvcTime > mediaTagLastUpdate ? timeShiftRvcTag : timeShiftMediaTag;
15709
- const timeShift = timeShiftRvcTag && !isVariableFpsVideo ? mostRecentTimeshift : timeShiftMediaTag;
15741
+ const timeShift = Math.abs(shouldBeTime - mediaTagTime);
15710
15742
  if (timeShift > acceptableTimeShift && lastSeekDueToShift !== shouldBeTime) {
15711
15743
  return {
15712
15744
  type: "seek-due-to-shift",
@@ -15719,18 +15751,23 @@ var getMediaSyncAction = (input) => {
15719
15751
  }
15720
15752
  const seekThreshold = playing ? 0.15 : 0.01;
15721
15753
  const makesSenseToSeek = Math.abs(currentTime - shouldBeTime) > seekThreshold;
15754
+ const audioLead = currentTime - shouldBeTime;
15755
+ const holdAudioUntilTimelineCatchesUp = mediaType === "audio" && playing && playbackRate > 0 && makesSenseToSeek && audioLead > 0 && audioLead <= acceptableTimeShift;
15722
15756
  const isSomethingElseBuffering = playerBuffering && !mediaTagBufferingOrStalled;
15723
15757
  if (!playing || isSomethingElseBuffering) {
15724
15758
  return {
15725
15759
  type: "seek-if-not-playing",
15726
15760
  shouldBeTime,
15727
- why: makesSenseToSeek ? `not playing or something else is buffering. time offset is over seek threshold (${seekThreshold})` : null
15761
+ why: makesSenseToSeek && !holdAudioUntilTimelineCatchesUp ? `not playing or something else is buffering. time offset is over seek threshold (${seekThreshold})` : null
15728
15762
  };
15729
15763
  }
15730
15764
  if (!playing || playerBuffering) {
15731
15765
  return { type: "none" };
15732
15766
  }
15733
15767
  const pausedCondition = paused && !ended;
15768
+ if (pausedCondition && holdAudioUntilTimelineCatchesUp) {
15769
+ return { type: "none" };
15770
+ }
15734
15771
  const firstFrameCondition = absoluteFrame === 0;
15735
15772
  if (pausedCondition || firstFrameCondition) {
15736
15773
  const reason = pausedCondition ? "media tag is paused" : "absolute frame is 0";
@@ -15744,19 +15781,15 @@ var getMediaSyncAction = (input) => {
15744
15781
  }
15745
15782
  return { type: "none" };
15746
15783
  };
15747
- var useCurrentTimeOfMediaTagWithUpdateTimeStamp = (mediaRef) => {
15748
- const lastUpdate = React35.useRef({
15749
- time: mediaRef.current?.currentTime ?? 0,
15750
- lastUpdate: performance.now()
15784
+ var useCurrentTimeOfMediaTag = (mediaRef) => {
15785
+ const currentTime = React35.useRef({
15786
+ time: mediaRef.current?.currentTime ?? 0
15751
15787
  });
15752
15788
  const nowCurrentTime = mediaRef.current?.currentTime ?? null;
15753
15789
  if (nowCurrentTime !== null) {
15754
- if (lastUpdate.current.time !== nowCurrentTime) {
15755
- lastUpdate.current.time = nowCurrentTime;
15756
- lastUpdate.current.lastUpdate = performance.now();
15757
- }
15790
+ currentTime.current.time = nowCurrentTime;
15758
15791
  }
15759
- return lastUpdate;
15792
+ return currentTime;
15760
15793
  };
15761
15794
  var seek = ({
15762
15795
  mediaRef,
@@ -15923,8 +15956,7 @@ var useRequestVideoCallbackTime = ({
15923
15956
  const { current } = mediaRef;
15924
15957
  if (current) {
15925
15958
  currentTime.current = {
15926
- time: current.currentTime,
15927
- lastUpdate: performance.now()
15959
+ time: current.currentTime
15928
15960
  };
15929
15961
  } else {
15930
15962
  currentTime.current = null;
@@ -15954,8 +15986,7 @@ var useRequestVideoCallbackTime = ({
15954
15986
  }
15955
15987
  }
15956
15988
  currentTime.current = {
15957
- time: info.mediaTime,
15958
- lastUpdate: performance.now()
15989
+ time: info.mediaTime
15959
15990
  };
15960
15991
  request();
15961
15992
  });
@@ -16086,7 +16117,7 @@ var useMediaPlayback = ({
16086
16117
  lastSeek,
16087
16118
  onVariableFpsVideoDetected
16088
16119
  });
16089
- const mediaTagCurrentTime = useCurrentTimeOfMediaTagWithUpdateTimeStamp(mediaRef);
16120
+ const mediaTagCurrentTime = useCurrentTimeOfMediaTag(mediaRef);
16090
16121
  const desiredUnclampedTime = getMediaTime({
16091
16122
  frame,
16092
16123
  playbackRate: localPlaybackRate,
@@ -16167,9 +16198,7 @@ var useMediaPlayback = ({
16167
16198
  ended: current.ended,
16168
16199
  desiredUnclampedTime,
16169
16200
  mediaTagTime: mediaTagCurrentTime.current.time,
16170
- mediaTagLastUpdate: mediaTagCurrentTime.current.lastUpdate,
16171
16201
  rvcTime: rvcCurrentTime.current?.time ?? null,
16172
- rvcLastUpdate: rvcCurrentTime.current?.lastUpdate ?? null,
16173
16202
  isVariableFpsVideo: Boolean(isVariableFpsVideoMap.current[src]),
16174
16203
  acceptableTimeShift: acceptableTimeShiftButLessThanDuration,
16175
16204
  lastSeekDueToShift: lastSeekDueToShift.current,
@@ -16181,7 +16210,8 @@ var useMediaPlayback = ({
16181
16210
  onlyWarnForMediaSeekingError,
16182
16211
  isPremounting,
16183
16212
  isPostmounting,
16184
- pauseWhenBuffering
16213
+ pauseWhenBuffering,
16214
+ mediaType
16185
16215
  });
16186
16216
  if (action.type === "none") {
16187
16217
  return;
@@ -17025,7 +17055,8 @@ var SolidInner = ({
17025
17055
  pixelDensity,
17026
17056
  overrideId,
17027
17057
  videoConfigValues,
17028
- reference
17058
+ reference,
17059
+ canvasProps
17029
17060
  }) => {
17030
17061
  const { delayRender, continueRender, cancelRender } = useDelayRender();
17031
17062
  const resolvedPixelDensity = resolveSolidPixelDensity(pixelDensity);
@@ -17113,6 +17144,7 @@ var SolidInner = ({
17113
17144
  };
17114
17145
  }, [height, style, width]);
17115
17146
  return /* @__PURE__ */ jsx31("canvas", {
17147
+ ...canvasProps,
17116
17148
  ref: canvasRef,
17117
17149
  width: canvasWidth,
17118
17150
  height: canvasHeight,
@@ -17209,6 +17241,7 @@ var SolidOuter = forwardRef8(({
17209
17241
  _remotionInternalIsPostmounting: postmountingActive,
17210
17242
  children: /* @__PURE__ */ jsx31(SequenceContent, {
17211
17243
  children: /* @__PURE__ */ jsx31(SolidInner, {
17244
+ canvasProps: getCanvasPropsFromSequenceProps(props),
17212
17245
  reference: actualRef,
17213
17246
  videoConfigValues: controls?.videoConfigValues ?? null,
17214
17247
  overrideId: controls?.overrideId ?? null,
@@ -19619,7 +19652,7 @@ var createElementSourceProxy = (api, sourceArgumentIndex, getSourceFileName) =>
19619
19652
  fileName: getSourceFileName(source.fileName),
19620
19653
  lineNumber: source.lineNumber,
19621
19654
  columnNumber: source.columnNumber - 1
19622
- });
19655
+ }, typeof source.__remotionCompiledSourceHash === "string" ? source.__remotionCompiledSourceHash : null);
19623
19656
  } else {
19624
19657
  const { stackTraceLimit } = Error;
19625
19658
  const canLimitStack = typeof stackTraceLimit === "number" && stackTraceLimit > 2 && Object.getOwnPropertyDescriptor(Error, "stackTraceLimit")?.writable;
@@ -32467,6 +32500,8 @@ var FreePricing = ({ termsHref, faqHref }) => {
32467
32500
  children: [
32468
32501
  /* @__PURE__ */ jsx54("a", {
32469
32502
  href: termsHref,
32503
+ target: termsHref.startsWith("http") ? "_blank" : undefined,
32504
+ rel: "noopener noreferrer",
32470
32505
  className: "underline underline-offset-4 text-inherit font-brand",
32471
32506
  children: "Terms"
32472
32507
  }),
@@ -32920,7 +32955,7 @@ var Pricing = ({
32920
32955
  faqHref = "/docs/license/faq",
32921
32956
  faqLabel = "License FAQ",
32922
32957
  licenseHref = "https://github.com/remotion-dev/remotion/blob/main/LICENSE.md",
32923
- termsHref = "/docs/terms",
32958
+ termsHref = "https://www.remotion.dev/docs/terms",
32924
32959
  purchaseHref = "https://remotion.pro/dashboard"
32925
32960
  }) => {
32926
32961
  const faqLinkTarget = useMemo65(() => {